2013-02-13 3 views
1

저는 꽤 새로운 Direct3D이며 며칠 동안 제 문제에 대한 해결책을 찾고있었습니다. 커버 텍스쳐는 하나의 텍스처 만 사용하는 자습서의 대부분을 사용합니다. 내 프로그램의 경우, 메쉬를 구성하는 특정 정점 컬렉션에 매핑되는 여러 텍스처가 있습니다.관리되는 Direct3D 9에서 다중 텍스처로 렌더링

제 질문은 내 장면에 여러 텍스처를로드하는 방법입니다. 어떻게 하나의 텍스처에만 정점 컬렉션을 매핑합니까? 나는 자동차의 메쉬를했고 내가 좋아하는 질감의 컬렉션을 가지고 예를 들어

:

Tyres.dds 
Body.dds 
Cabin.dds 

나는 tyres.dds에 타이어를 구성하는 정점을지도 어떻게 차를 감안할 때 texture, body.dod, cabin, cabin.dds. 이러한 모든 텍스처는 하나의 텍스처를 렌더링해야합니다.

어떤 도움을 크게 감상 할 수

, 당신에게

답변

1

보통이이 서브 메쉬를 통해 이루어집니다 감사합니다. 즉, 메쉬는 예를 들어,로 표시되는 여러 부분으로 구성됩니다. 삼각형 목록. 각 서브 메쉬에는 재질이 지정됩니다. 이 자료는 필요한대로 정의 할 수 있습니다. 확산 색, 거칠기 및 질감이 포함될 수 있습니다.

메쉬를 렌더링 할 때 기본적으로 모든 서브 메쉬를 반복하고 재료 매개 변수를 그래픽 카드로 보낸 다음 그립니다.

DirectX 10의 다른 가능한 솔루션은 TextureIndex 변수로 정점 선언을 확장하는 것입니다. 또는 3D 텍스처 좌표를 사용할 수도 있습니다. 이렇게하면 모든 텍스처를 텍스처 배열로 그래픽 카드에 보내고 한 번의 그리기 호출로 그릴을 그릴 수 있습니다. 그러나 텍스처 배열은 DirectX 9에서 지원되지 않습니다. 따라서 방법 1을 고수하거나 텍스처 배열을 에뮬레이트 할 수 있습니다.