Inflearn Community Q&A
shader의 blob관련 질문 드립니다.
Written on
·
440
0
이전 Texture 강의 들으며 실습할 때까지는 문제가 없었는데 DepthStencilBuffer 강의를 들으며 실습한 후 Engine을 빌드하는 것 까지는 성공하였습니다.
그런데 디버그할 시에 blob이 null이어서 예외가 발생하는데 무엇이 문제일까요? 디버깅하며 확인해보니 Shader.h의 멤버변수로 선언된 _vs, _ps, _err 모두 아래와 같이 null값이 저장되어 있습니다.
연관이 있는지는 모르겠지만 아래와 같은 경고가 함께 뜨는데 이것과 연관이 있는 것일까요?
게임수학DirectX
Answer 2
0
쉐이더를 만들때 즉 CreateShader 부분에서 D3D 컴파일 시 HResult 아웃풋을 줍니다.
그때 그 HResult의 에러코드를 확인하면 어떤 종류의 문제인지 알수 있습니다.
HRESULT result = ::D3DCompileFromFile(path.c_str(), nullptr, D3D_COMPILE_STANDARD_FILE_INCLUDE,
name.c_str(), version.c_str(), compile_flag, 0, &blob, &m_err_blob);
이런 형태로 result 아웃풋을 받고, result의 에러를 확인하세요.
대부분의 경우엔 경로 문제거나 쉐이더 컴파일 에러 등등으로 예상됩니다.






올려주신 코드의 솔루션을 실행하면 문제없이 실행 되는데 코드를 제가 만든 프로젝트로 복붙해서 사용하는 건 위와 같이 오류가 발생하네요 ㅜㅜ 여러 가지 시도해보면서 찾아보겠습니다. 감사합니다~