DirectX의 텍스쳐 맵핑에 관해서는 이전 포스팅으로 충분히 배웠다. 그렇다면, 만약, 한 폴리곤 내의 맵핑을 2~3개 만들 수는 없을까? 그 것이 바로. MultiTexture를 이용하면된다.
개념도 간단하고, 바로 예제로 넘어가 보자.
먼저 버텍스 설정이다. 보면, 텍스쳐uv가 2개가 있다. 바로 텍스쳐를 2장 사용할 것이기 때문이다. 저 Flags를 보면 TEX2를 쓰는 것도 같은 이유다. 현재 8장까지는 지원가능하지만, 보통 그렇게 많이는 쓰지않고, 3~4장만 쓴다.
loadTexture에서는 역시 2가지 텍스쳐를 다 로드한다.
랜더의 스테이트 설정 부분이다. 각 스테이지 별로 설정을 따로 해준다. 그리고, 아래쪽의 STAGE2 부분에서는 Modulate를 설정하는 부분이 있는데, 색을 섞을 때, Modulate로 설정하면, 각 픽셀의 색을 곱하고, 그 외에 Add를 선택하면, 더하기 연산으로 픽셀의 색을 정한다.
스테이지 1과 2가 내용이 다른 것을 알 수 있다. 그리고 스테이지 0에는 처음 색은 TEXTURE를 쓰고, 스테이지 1에서는 CURRENT를 쓴 것이 다르다.
그리고, SetTexture에 0번에는 0번 텍스쳐, 1번에는 1번 텍스쳐를 설정하면된다.
그러면 2가지 텍스쳐가 합쳐져서 나오게 된다. 지금 이 것이 Modulate 된 것이고,
이 것이 Add된 것이다. 같은 텍스쳐라도 설정에 따라 다르게 표현되는 것이 재밌는 점이다..
'프로그래밍 > DirectX' 카테고리의 다른 글
[DirectX] 알파 블랜딩에 대해서 알아보자!! (0) | 2012.01.11 |
---|---|
[DirectX] texture mipmap에 대해 알아보자!! (2) | 2012.01.04 |
[DirectX] 텍스쳐 어드레싱(Texture addressing ) 에 대해 알아보자 !! (0) | 2011.12.29 |
[DirectX] 텍스쳐 필터링에 대해서 알아보자 !! (0) | 2011.12.29 |
[DirectX] 3D 공간의 물체를 움직여 보자!!! (4) | 2011.12.21 |