강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của joyfulgameprgmr
joyfulgameprgmr

câu hỏi đã được viết

[Tuyển tập phát triển game MMORPG bằng C++ và Unreal] Phần 2: Toán học game và DirectX12

shader의 blob관련 질문 드립니다.

Viết

·

458

0

이전 Texture 강의 들으며 실습할 때까지는 문제가 없었는데 DepthStencilBuffer 강의를 들으며 실습한 후 Engine을 빌드하는 것 까지는 성공하였습니다.

그런데 디버그할 시에 blob이 null이어서 예외가 발생하는데 무엇이 문제일까요? 디버깅하며 확인해보니 Shader.h의 멤버변수로 선언된 _vs, _ps, _err 모두 아래와 같이 null값이 저장되어 있습니다.

연관이 있는지는 모르겠지만 아래와 같은 경고가 함께 뜨는데 이것과 연관이 있는 것일까요?

게임수학DirectX

Câu trả lời 2

1

Rookiss님의 프로필 이미지
Rookiss
Người chia sẻ kiến thức

위 내용만으로는 알기가 힘듭니다.
강의 코드를 그대로 복붙해봐도 동일한 문제가 발생하는지 
조금씩 줄여가며 범인을 색출해야 할 것으로 보입니다.
_vsBlob = 로 만들 때 breakpoint를 걸어보거나,
로그 메시지가 없는지 확인이 필요할 것 같네요.

joyfulgameprgmr님의 프로필 이미지
joyfulgameprgmr
Người đặt câu hỏi

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

Rookiss님의 프로필 이미지
Rookiss
Người chia sẻ kiến thức

위로를 드리자면 저도 강의를 만들 때 이런 류의 문제를 100번은 만났습니다 ㅎㅎㅎ
정말 사소한 문제이거나 뭔가 경로가 잘못 되었거나 등 다양한 이유가 있을 수 있으니 무운을 빕니다

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의 에러를 확인하세요.

대부분의 경우엔 경로 문제거나 쉐이더 컴파일 에러 등등으로 예상됩니다.

 

 

Hình ảnh hồ sơ của joyfulgameprgmr
joyfulgameprgmr

câu hỏi đã được viết

Đặt câu hỏi