[DX11 입문 제7장] 책에 보면 fxo 파일을 로드하는데..

GPG 시리즈 관련 질답, 논의 공간.

Moderator: 류광

비회원

책에 보면 fxo 파일을 로드하는데..

Post by 비회원 »

제가 그걸 fx파일로 바꾸려고, 어제 이것저것 시도하면서 해봤습니다..
그런데 계속 이해못할 에러가 뜨더라구요..
뭔가 싶어서 한참을 디버그 해본 결과...

fx 파일 내에서 fx파일을 인크루드하면 아예 D3DCompileFromFile 이부분에서 에러가 뜨더라구요..
이게 이해가 안됩니다..

교재 레퍼런스에선, 라이트 헬퍼를 인크루드해서, 라이트 fx 를 이용해 라이트.fxo파일을 만들어둔듯한 그런 느낌인데..
막상 fx 컴파일로 바꾸니 동작이 안되는게 이상하지 않습니까 ㅠㅠ

그래서 fx 파일 내에 fx 파일을 인크루드 해서 사용하는 것이 잇겟거니.. 하고 구글링을 햇는데, 또 막상 검색이 잘못된건지 정보가 없더라구요..
막막해진 기분에 돌다 돌다, 결국 이곳에 도착해 질문 올립니다.

혹, 이걸 인크루드해서 사용하려면 어떤 방식으로 사용해야하나요...?
류광
Posts: 3805
Joined: 2001-07-25 09:00
Location: GPGstudy
Contact:

Post by 류광 »

잠깐 검색해 보니 viewtopic.php?p=98423 에 조금 논의가 있네요.

추측이지만, fxc.exe로 컴파일할 때에는 Lighting.fx가 있는 곳이 기준 디렉터리라서 #include "LightHelper.fx"가 LightHelper.fx를 잘 찾아내지만, 실행시점에서 컴파일 할 때에는 기준 디렉터리가 달라서 문제가 생기는 게 아닐까요. 어쨌든 경로 부분을 여러 가지로 시험해 보면 답이 나오지 않을까 합니다.
holycaous
Posts: 10
Joined: 2016-02-24 07:02

음.. 그게아니라

Post by holycaous »

아마 D3DCompileFromFile 이부분의 3번째 인자로 해결하는거 같은데...


해석은

ID3에 옵션의 포인터는 컴파일러가 포함 된 파일을 처리하는 데 사용하는 인터페이스를 포함합니다. 당신이 매개 변수를 NULL로 설정하고 쉐이더의 #include가 포함되어있는 경우 컴파일 오류가 발생합니다. 당신은 D3D_COMPILE_STANDARD_FILE는 기본 포인터는 핸들러가 포함 된 매크로를 INCLUDE 전달할 수 있습니다. 이 기본 핸들러는 현재 디렉토리에 상대적인 파일이 포함되어 포함되어 있습니다.

이런식으로 나오더라구요..
음.. 해결해보려고 노력중이긴한데.. 어떻게 쓰는지를 몰라서 예제를 보려고하는데 예제가 안보이네요..
holycaous
Posts: 10
Joined: 2016-02-24 07:02

아 ,,,,,,,,,

Post by holycaous »

자꾸 4번째 인수에 넣으니까 안됫군요...

하...
류광
Posts: 3805
Joined: 2001-07-25 09:00
Location: GPGstudy
Contact:

Post by 류광 »

그렇군요... 책의 제4장 예제에 쓰이는 D3DX11CompileFromFile도 MSDN 문서화( https://msdn.microsoft.com/ko-kr/librar ... 2147217396 )를 보니 셋째 인수가 널이면 #include 시 오류가 나게 되어 있네요. 그런데 D3DCompileFromFile과는 달리 D3D_COMPILE_STANDARD_FILE은 언급이 없고요.

혹시 D3DX11CompileFromFile에서 이 문제를 해결하신 분 있으시면 공유 부탁합니다!
holycaous
Posts: 10
Joined: 2016-02-24 07:02

..으잉? 해결했는데..

Post by holycaous »

말그대로 세번에 해당 디파인 값 그냥 넣어주면 되더라구요.
류광
Posts: 3805
Joined: 2001-07-25 09:00
Location: GPGstudy
Contact:

Re: ..으잉? 해결했는데..

Post by 류광 »

holycaous wrote:말그대로 세번에 해당 디파인 값 그냥 넣어주면 되더라구요.
D3DX11CompileFromFile에서도 되나요? 혹시 Windows Kits의 DX SDK를 기준으로 작업하시는지요... viewtopic.php?p=127814#127814 에 관련 답글을 달았습니다.

아 참 앞의 제 글에서 제4장 예제가 아니라 제6장 예제입니다(Box);;;
류광
Posts: 3805
Joined: 2001-07-25 09:00
Location: GPGstudy
Contact:

Post by 류광 »

이상하게도 책 예제 설정( viewtopic.php?t=25463 ) 하에서는 D3DX11CompileFromFile의 셋째 인수에 0(널)을 넣어도 #include가 잘 되는 것 같습니다. 제6장 Box 예제의 color.fx에서 VertexOut VS(VertexIn vin) 이전 부분을 다른 fx 파일에 옮기고 그 자리에 #include 문을 추가했는데 잘 실행되네요. 다른 분들도 한 번 시험해 보시길~
Post Reply