2009-07-26 3 views
1

.x 파일에서 블렌더를 사용하여 만든 일부 모델 파일을 가져 오는 directx9를 사용하는 작은 그래픽 프로그램을 작성하고 있습니다. 여태까지는 그런대로 잘됐다..x 파일에 셰이더 정보를 포함하는 방법

모델에는 텍스처가있는 재질이 있으며 재질 이름을 얻고 재질을 적절하게 렌더링하지만 재질 (material)에 다른 효과 (shader) 파일을 사용하고 싶지만 어떤 방식으로도 찾을 수 없습니다. .x 파일에서 모델에 사용할 쉐이더에 대한 정보를 임베드 할 수 있습니다.

내가 가진 가장 좋은 아이디어는 내 d3d9 응용 프로그램에서 텍스처 파일 이름을보고 효과 파일에 텍스처 이름의 찾아보기 테이블을 하드 코딩하는 것이 었습니다. 그러나 그것은 우아한 것처럼 보이지 않습니다. 또한 텍스쳐를 복사하고 이름을 바꿔 버리면 다른 쉐이더에서 같은 텍스쳐를 사용할 수 있습니다.

나는이 일을하는 더 쉬운 방법을 놓치고 있어야한다고 생각합니다. 어떤 제안입니까?

답변

1

텍스처 이미지 파일과 달리 셰이더 프로그램을 지정하는 것은 매우 복잡 할 수 있습니다. 셰이더 텍스트는 물론 필요한 매개 변수의 사양과 파일을 읽는 사람이 매개 변수 및 방법에 대해 설정할 값을 알 수있는 방법이 필요합니다. 일부 셰이더는 차례로 텍스처에 매개 변수를 필요로하고 때로는 이러한 texutres를 응용 프로그램에서 생성해야합니다 (예 : Perlin 노이즈 3D 텍스처의 경우).
요약하면 .x과 같은 파일 형식으로 완전히 통합 될 수있는 쉐이더를 일반적으로 지정하는 표준 방법을 제안 할 방법이 없습니다. 귀하의 유일한 선택은 귀하의 응용 프로그램을위한 특별한 것입니다. 그 질문에서 제안하는 방법은 무엇이든 좋습니다.

+0

많은 이해가되는 것이 좋습니다. 감사합니다. – jcoder

관련 문제