ConstnatBufferPool관련 질문
안녕하세요. 강의 잘 듣고 있습니다.
CConstantBufferManager.cpp -> CONSTANT_BUFFER_PROPERTY에서 enum값의 사이즈인 sizeof(CONSTANT_BUFFER_TYPE_RAY_TRACING)가 아니라 버퍼 구조체의 사이즈인 sizeof(CONSTANT_BUFFER_RAY_TRACING)를 저장해야 하는거 아닌가요?
이후에 다른 타입들을 추가할땐 구조체 사이즈를 넣는데, 레이트레이싱은 다른지 궁금해서 여쭤봅니다.
답변 2
1
말씀하신대로 sizeof(CONSTANT_BUFFER_TYPE_RAY_TRACING)가 아니라 sizeof(CONSTANT_BUFFER_RAY_TRACING)가 맞습니다.
이것이 문제없이 돌아갔던 이유는 constant buffer의 기본 align 사이즈가 256바이트이고, 버퍼를 만들때 256바이트 align하도록 했기 때문입니다. sizeof(CONSTANT_BUFFER_TYPE_RAY_TRACING)는 4지만 256바이트 align 하면 256이 되므로 sizeof(CONSTANT_BUFFER_RAY_TRACING)보다 충분히 큰 사이즈라 돌아가는데는 문제가 없었습니다. 어쨌든 코드는 잘못되었으므로 수정해서 다시 업로드했습니다. 감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. 오시영님.
CConstantBufferManager.cpp에서 CONSTANT_BUFFER_PROPERTY와 관련하여 enum 값의 크기와 버퍼 구조체의 크기 사용에 대한 질문을 주셨습니다. 일반적으로 Constant Buffer를 관리할 때는 실제 데이터를 저장하기 위한 공간을 정확히 확보해야 하므로, 데이터 구조체의 크기를 사용하는 것이 맞습니다.
관련 설명:
sizeof(CONSTANT_BUFFER_TYPE_RAY_TRACING): 이는 enum 값의 크기를 반환하며, 보통 4바이트로 일반 데이터를 저장하는 데는 사용되지 않습니다.
sizeof(CONSTANT_BUFFER_RAY_TRACING): 이는 실제로 데이터를 저장하는 구조체의 크기를 반환하며, Constant Buffer에 필요한 메모리의 크기를 정확히 정의하는 데 사용됩니다.
DirectX에서 Constant Buffer는 특정 크기(보통 16바이트의 배수)로 정렬되어야 합니다. 데이터의 패딩을 포함한 정확한 크기를 지정하는 것이 중요하며, 잘못된 크기를 사용할 경우 메모리 초과나 의도치 않은 데이터를 읽어오는 문제가 발생할 수 있습니다.
유사한 질문 & 답변 링크:
위 답변들도 함께 살펴보시면 구조적인 이해에 도움이 되실 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
복습중에 커맨드 큐 관련 질문이 있습니다.
0
35
1
assimp-vc143-mtd.dll가 없어서 코드 실행을 진행할 수 없습니다 라는 에러가 뜹니다.
0
78
1
_vsBlob와 _psBlob에서 nullptr이 뜨면서 실행이 안됩니다
0
56
1
혹시 영상이 안되는 이유가 있을까요?
0
87
2
Model.cpp에서 ReadMaterial()의 SpecularTexture 부분 질문입니다.
0
55
0
노멀매핑 자료
0
72
1
셰이더 인텔리센스 문제
0
79
1
#include d3dx12.h 추가했지만 오류
0
81
1
MeshObject 공용 사용 방법
1
95
2
BuildBLAS 할당 리소스 사이즈
0
79
2
4강 삼각형띄우기 오류관련 질문있습니다
0
64
1
LNK1104 error, DirectXTexD.lib 파일을 열 수 없습니다.
0
122
1
64.애니메이션 강의의, AssimpTool 에서 FBX 애니매이션 데이터를 옮길 때의 강의 오류가 있는 것 같습니다.
1
65
1
강의에서 말씀해주신대로 폴더에 넣었는데 실행이 되지않습니다
0
85
2
SkyDemo에서 카메라 입력이 작동하지 않는 문제
0
81
2
섹션6. DirectX 11 3D 입문 강의부터 렌더링이 안됩니다
0
131
2
CommandList의 GraphicsCommandList 변경이유
0
113
2
Metal api 강의
0
109
2
[25:13] Virtual Interface 와 COM Interface간의 차이가 궁금합니다.
0
116
1
텍스처와 UV 강의 관련해서 문의드려요
0
162
2
섹션6 >> Hello color animation 과제에서 궁금한 점이 있습니다.
1
104
2
frame간 보간에 대해서 질문이있습니다.
1
132
1
자료 pptx가 아닌 pdf
0
109
1
어디에 좀더 집중해야하나 고민입니다
0
200
1





