2011-03-07 2 views
1

나는 시뮬레이션 요소를 나타내는 2D 아이콘이 많은 시뮬레이터 비주얼을하고 있는데, 다른 요소를 나타내는 3D (.x로 만든 .x) 아이콘이있다. 그리고 더 중요한 요소.직접적인 x 9와 함께 최상위 표현의 3d 아이콘

다른 2 차원 아이콘 (.tga) 위에이 아이콘을 만들어야하지만이 방법을 찾을 수 없습니다. Direct X가 2D 아이콘의 나머지 부분에 3D 아이콘을 그릴 수 있습니까? 현재 2D 아이콘은 항상 3D 위에 표시됩니다.

도와 주실 수 있습니까? 나는 C++로 프로그래밍하고있다. 대단히 감사드립니다.

답변

0

2D 아이콘을 렌더링 할 때 Z- 쓰기를 비활성화합니다. 그런 다음 Z- 쓰기가 활성화 된 3D 아이콘을 렌더링하면 2D 아이콘 위에 렌더링됩니다.

현재 문제는 2D 아이콘을 렌더링 할 때 z 버퍼의 맨 앞에있는 z 값 (대부분 0 일 가능성이 있음)을 사용하는 것입니다. z 값을 1로 설정할 수도 있습니다 (다시 말하지만 2D 렌더링을 설정 한 방법에 따라 달라집니다). 그러면 2d 아이콘이 z 버퍼의 뒤에 렌더링됩니다.

Z 버퍼의 항목이 Z 순서의 뒤쪽에있는 항목과 동일하지 않습니다.

+0

감사합니다! – Rosa

+0

@Rosa : 답변 중 하나 또는 다른 답변을 수락 할 수 있습니다. :) – Goz

0

심도 버퍼링을 사용한다고 가정하면 아이콘의 Z 값이 모델보다 카메라에서 멀리 떨어져 있는지 확인해야합니다. ID3DXSprite를 사용하는 경우 Draw 함수를 호출하거나 ID3DXSprite::SetTransform() 함수를 사용하여 Z 위치를 지정할 수 있어야합니다.

ID3DXSprite는 ID3DXSprite :: Begin()에 전달하는 플래그에 따라 모델과 다른 프로젝션 행렬로 스프라이트를 그릴 수 있습니다. D3DXSPRITE_OBJECTSPACE 플래그를 사용할 수 있습니다.

관련 문제