지난번 포스팅에서는 텍스쳐 필터링을 배웠다. 이 것은 화면과 텍스쳐 해상도 간의 차이가 생길 때 어떤식으로 표시할 것 인지에 대한 옵션이였다..
 그렇다면 어드레싱은 무엇일까에 대해 알아보면, 전에 텍스쳐에 관해 설명할 때 텍스쳐는 버텍스와 매칭이 되는 UV 좌표가 있다고 했었다.. UV의 좌표는 0~1.0 사이라고 말했는데, 꼭 그럴 필요는 없다.. - 값이 나올수도 있고, 2.0,3.0 처럼 계속 커질 수도 있다...
 이런 좌표는 어디서 쓰냐면, 타일맵이라던지, 넓은 지형에서 보통 uv 좌표를 딱 0~1.0에 고정시키지 않고, 늘려서 만드는 경우가 많다.
 텍스쳐 어드레싱은 바로 이렇게 UV좌표가 0과 1 사이가 아닌 다른 값이 되었을 때, 어떻게 표현될 것인 지를 결정하는 옵션이다.. 이 부분은 간단한 부분이니까, 설정하는 방법과, 효과만 확인하도록 하자..


먼저 제일 위를 보면 Border 색을 정한다. 현재는 보라색이다. 이 색은 나중에 Border옵션에서 사용된다.


그리고 버텍스 좌표 뒤에 UV 좌표에 3.0f 까지를 최대로 잡아놓았다. 즉, 사각형 버텍스들 안에 채울 텍스쳐를 0.0~3.0 까지 이기 때문에 1.0까지인 텍스쳐를 어떤 방식으로 채울지를 결정해주는게 바로 이번 포스팅에 핵심이다. 
 채우는 방식에는 WRAP,CLAMP,MIRROR,BORDER,MIRRORONCE가 있다.

 


그리고 함수를 보면 알겠지만, U와 V를 따로 설정해준다. 오른쪽으로는 u 아랫쪽으로는 v라고 보면된다..


D3D에서 정의된 옵션 내용은 하나가 더 있지만, 잘 안쓴다..

 


그리고 랜더 함수에서, 옵션이 바뀌면, 바뀐 함수를 호출하고, Border색을 설정하고, 그려주면 끝이다. 이제 각 장면이 어떻게 표현되는지 확인해보자.


이 것이 기본 그림이다. 기본 텍스쳐는 왼쪽상단의 5가 들어간 4가지 색 텍스쳐가 기본이지만, 현재 WRAP모드 이기 때문에 똑같은 텍스쳐를 다 채워놓았다. 이 옵션이 바로 타일맵이라고 보면된다. 흔히 던젼 같이 바닥의 텍스쳐가 같은 색으로 계속 채워지는 형태 말이다.


이 것은 현재 U 만 설정을 CLAMP로 바꾸었다. 그렇게 되면, 제일 끝 픽셀색으로 쭉 그려버린다.


이 것은 V 도 같이 바꾼 상태이다. 이제부터는 2가지를 모두 바꾸겠다.


MIRROR 옵션은 말그대로 거울 옵션이다. 즉 거울처럼 계속 반대로 찍고 반대로 찍는다.


그리고 위가 바로 Border옵션이다. 그냥 실제 텍스쳐 UV좌표 까지만 그리고 나머지는 그리질 않고, 지정해둔 색으로 그린다. 만약 아무색도 지정하지 않는다면, 검정색이 나온다.


그리고 MIRRORONCE 역시, 마지막 부분이 반대로 뒤집혀서 쭉 그려진다. 일단 다른텍스쳐로 테스트를 해보아야 하는지는 모르겠는데, CLAMP와 다른 부분이 확인이 안되었다.

이상의 옵션들로, UV 좌표를 벗어난 버텍스들에 대해, 어떻게 맵핑을 할 것인가에 대한 옵션을 살펴 보았다. 이 방식을 잘 활용하면, 적은 텍스쳐로도 효과적인 화면 표현을 할 수 있다는 장점이 있다.

 

 

Posted by 바람처럼..
|