2010-12-23 2 views
1

저는 작업중인 취미 3D 게임에서 "유닛"아래의 땅에 "타겟 링"을 그리려합니다. 기본적으로 나는 유닛 아래에있는 지형에 밝은 빨강 무늬의 반지를 투사하고 싶습니다.direct3d를 사용하여 타겟 링을 투영하십시오.

  1. 세계를 두 번 을 그립니다하지만 내 버텍스 쉐이더에서 나는 세상의 X가 정상

  2. 로 한 번 세계를 그리기 - 내가 생각할 수있는

    유일한 방법은 이것이다 , y, z 정점의 좌표와 나는 의 좌표로 전달할 수 있습니다. 강조 표시된 단위는 입니다. u, v 좌표는 내 프로젝트 텍스처에서 입니다. 세계에서 그 점이 이어야합니다. 그 점은 입니다.

    그런 다음 픽셀 쉐이더를 사용하여 대상 링 텍스처에서 픽셀을 선택하고 이전에 그려진 세계에 블렌드합니다.

은 그게 쉽지한다고 생각하고 작업을해야하지만, 그것이 정확히 표적화 링에 떨어질 가능성이 다각형을 결정하기 어렵다 나를 두 번 전체 눈에 보이는 세계를 그리기 포함한다. 한 번 정상적인 불빛이 질감 된 지상에 대한, 그리고 두 번 전체 세계를 그리는 큰 오버 헤드, 그리고 다시 목표 링을 그릴 것 같습니다.

누락 된 더 나은 방법이 있습니까?

+0

첫 번째 패스에서 이러한 종류의 계산을 허용하는 것이 픽셀 쉐이더의 포인트가 아닌가? – TreDubZedd

+0

나는이 두 픽셀을 하나의 픽셀 쉐이더로 결합 할 수 있다고 생각한다. – jcoder

답변

1

Projective Texture Mapping은 (는) 친구입니다.

+0

감사합니다. 그것은 투영 텍스처 매핑이 작동하는 방식입니다 - 픽셀의 x, y, z 위치를 취하고 어떤 텍스처 픽셀이 매핑되는지 확인하려고합니까? – jcoder

+1

@ JohnB : 영사의 위치와 각도를 설정 한 다음 영사 방법에있는 모든 물체에 텍스처를 투영함으로써 작동합니다. 분명히 투영 텍스처가있는 오브젝트를 그리면 투영 텍스처가 투영됩니다. 그러나 투영 텍스처 만 지형에 적용하려면 투영 된 텍스처 만 지형에 적용하십시오. 그것의 효과적이고 아주 설치하기 쉽다. – Goz

관련 문제