yuchi's Development Home
글 수 201
Windows Store App기반 게임 만들려는 분들을 위해 참고로 적습니다.
많은 분들이 미칠듯이 많아지는 쉐이더 코드들을 관리하기 위해 전처리기 사용하고 런타임에 쉐이더 소스 코드를 컴파일해서 사용하실텐데요.
Windows Store App에서 D3X라이브러리 자체가 없습니다. 비슷한 기능들은 D3D 9.1, 10.1, 11.1의 런타임 일부로 제공되거나 MS에서 주도하는 오픈소스 프로젝트 DirectXTex라이브러리로 제공합니다.
D3DXCompile..()대신 D3DCompile..()계열 함수를 제공합니다.
그러나 이것은 OS에서 기본적으로 제공하는 런타임의 일부가 아닙니다.배포판에는 사용하지 못햅니다.개발중에는 사용할 수 있다고 문서에 적혀있지만 d3dcompiler.lib를 추가하고 빌드하면 dll이 없다고 어플 시작하자마자 크래시 합니다.
문서에 보면 HLSL파일은 미리 컴파일 해놓고 바이너리만 쓰라고 합니다. 런탐임에 컴파일 하는 방식으로는 윈스토어에선 배포할 수 없다고 합니다. 애플이랑 반대죠.샹...
하여간 D3DCompile_xx.dll은 win8 sdk의 bin폴더에서 찾을 수 있습니다. 이 파일을 프로젝트에 포함시키고 content로 체크해주거나 아니면 바이너리랑 같은 폴더에 카피해서 넣어주면 작동은 합니다.
개발할땐 이렇게 세팅해서 사용하고 hlsl을 컴파일해서 나온 바이너리 파일을 저장해뒀다가 최종 배포할땐 그 바이너리만 읽도록 합니다.
아 짜증나...