inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12

삼각형 띄우기 Shader Create Failed ! 에러 관련.

647

falcfmpcv1

작성한 질문수 1

0

삼각형 띄우기 학습후 코드 실행시
"Shader Create Failed !"
라는 메시지가 뜨는 경우가 있습니다.

이 경우 혹시 .hlsli 파일을 저장할때
인코딩 하여 저장 -> "유니코드(서명 있는 UTF08) - 코드 페이지 65001"
로 저장하지 않았는지 확인해 보시면 좋을것 같습니다.
이경우 에러가 발생하며,

"한국어 - 코드페이지 949"
로 저장시 에러가 발생하지 않더군요.

멀티바이트와 유니코드 관련 문제 인것 같고
D3DCompileFromFile 을 사용할때 아마 셰이더 파일을 읽어서
Blob 이라는 버퍼에 이진데이터로 직렬화하여 저장을 하는거 같은데,
그때 멀티바이트를 직렬화 할때랑 유니코드를 직렬화 할때
값이 달라서 발생하는 문제인것 같은데,
이게 맞는건지. 다른분들은 어떠신지, 같은 문제가 발생하는지 궁금합니다.

directx 게임수학 hlsl .hlsli

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴이에요.
삼각형 띄우기 학습 후 “Shader Create Failed!“라는 메시지가 뜨는 이유는 .hlsli 파일을 저장할때 인코딩을 정확하게 하지 않았기 때문입니다. 코드의 실행을 위해서는 .hlsli 파일을 저장할때 “유니코드(서명 있는 UTF-8) - 코드 페이지 65001”로 저장해야 합니다. 만약 “한국어 - 코드 페이지 949”로 저장하면 에러가 발생하게 됩니다.
멀티바이트와 유니코드 관련 문제로 이해할 수 있는데, D3DCompileFromFile 함수에서 셰이더 파일을 읽어서 Blob 이라는 버퍼에 이진데이터로 직렬화하여 저장하는데, 여기서 멀티바이트를 직렬화 할 때와 유니코드를 직렬화 할 때 값이 달라서 발생하는 문제인 것 같습니다.
이 문제는 .hlsli 파일의 인코딩 방식을 변경하여 해결할 수 있습니다. 다른 분들도 이와 같은 문제가 발생하였는지 알 수 없으므로 확인해 보시는 것이 좋을 것 같습니다.
만약 제시한 해결책으로도 문제가 해결되지 않을 경우, 자세한 상황을 언제든 다시 문의해 주세요. 감사합니다.

복습중에 커맨드 큐 관련 질문이 있습니다.

0

40

1

_vsBlob와 _psBlob에서 nullptr이 뜨면서 실행이 안됩니다

0

60

1

#include d3dx12.h 추가했지만 오류

0

83

1

LNK1104 error, DirectXTexD.lib 파일을 열 수 없습니다.

0

124

1

[DirectXTex LNK2019 에러]

0

247

2

UI 랜더링이 이해가 안되어 질문드립니다

0

177

1

insideTess 값 관련 질문

0

126

1

렌더 타겟을 SRV로 사용하려고 합니다.

0

184

1

C++ 언어 표준과 Engine.lib 오류에 관하여..

0

283

2

실행과정에서의 문제

0

402

3

결과물에 의문이 생겨서 한가지 질문 드립니다

0

149

1

uv좌표변환

0

150

1

Shader 관련 문제

0

224

1

Load 부분에서 문제가 있어 질문드립니다

0

167

1

강의에서 보여진 모습과 다른모양이 되어서 질문드립니다

0

174

1

enumclass 질문입니다

0

155

1

nullptr오류가 발생해요.

0

363

2

Normal Mapping / Assertion failed! 오류

0

223

1

1>LINK : fatal error LNK1104: 'Engine.lib' 파일을 열 수 없습니다.

0

432

2

shared_ptr 과 헤더파일 관련하여 질문있습니다

0

210

1

질문있습니다.

0

178

1

장치 초기화 nullptr이 자꾸 발견 되네요.

0

302

2

용 모델에 분명 Diffuse 텍스쳐가 있는것같은데 왜 적용이 안되나요?

0

255

1

안녕하세요 질문있습니다

0

207

1