Programming/스크랩

SetTextureStageState() 함수.

leeusin 2008. 12. 10. 14:09

텍스쳐 좌표를 지정해주지않고 자동으로 생성하고 싶을때 사용하는겁니다.

D3DTSS_TCI_PASSTHRU
정점에 주어진 텍스쳐를 그대로 사용
(일반적인 텍스쳐매핑)

D3DTSS_TCI_CAMERASPACENORMAL
정점의 법선을 카메라 공간좌표로 변환한뒤
텍스쳐 변환행렬 적용후 텍스쳐 좌표로 사용
(환경매핑)

D3DTSS_TCI_CAMERASPACEPOSITION
정점의 위치을 카메라 공간좌표로 변환한뒤
텍스쳐 변환행렬 적용후 텍스쳐 좌표로 사용
(그림자매핑 - Example에 있는 그림자 소스가 이것을 사용했습니다.)

D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR
정점의 위치와 법선을 카메라 공간좌표로 변환한뒤 시선에 대한 반사벡터를 구하여
텍스쳐 변환행렬 적용후 텍스쳐 좌표로 사용
(반사 환경매핑)

텍스쳐 변환행렬은 SetTransform과 SetTextureStageState 를 사용해서 설정하게 됩니다.

Example에 있는 그림자 소스는
D3DTSS_TCI_CAMERASPACEPOSITION
을 사용해서 카메라 공간에서의 정점좌표를 구한뒤
이것을 그림자 텍스쳐 좌표계로 변환하기위한 투영행렬을 만들어 설정해주 었죠
SetTransform( D3DTS_TEXTURE1, &matShadowUV )
투영행렬이기 때문에 w로 나누어야 한다는걸 알려줘야 했습니다.
SetTextureStageState( 1, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_COUNT4|D3DTTFF_PROJECTED );


반응형

'Programming > 스크랩' 카테고리의 다른 글

글씨를 멋지게..  (0) 2011.06.07
Visual Assist 의 Refactoring 기능  (0) 2009.12.02
strnicmp() 함수  (0) 2008.12.10
라디오 버튼 사용법  (0) 2008.12.10