본문 바로가기
Coding/Game Programming

.MAP 파일로 만드는 BSP (4) - 텍스처 좌표 계산하기

by 생각하는대로살자 2010. 11. 25.

텍스처 tu tv를 계산하는 공식은 다음과 같다.

 
V : 텍스처 계산에 사용될 버텍스

nu/nv : 텍스처 axis normal

w/h : 텍스처의 상대적 w/h

su/sv : 텍스처 scale

ou/ov : 텍스처 offset or Shift

해당값은 앞에 설명한 파일 포맷에서 가져온다.
앞의 UV 값에서 보면 [1 0 0 0] [0 -1 0 0] 이라고 할때, 앞의 괄호는 U, 뒤는 V에 해당하는 값인데, 앞의 세 숫자는 U의 노말, 즉 nu이고 V에서의 세 숫자는 nv이다.
괄호의 마지막 숫자는 각각 ou/ov이다.
그 뒤 나오는 숫자 세개, 0 1 1 에서 0은 의미없는 값이고 1은 su 마지막 1은 sv이다.

그런데, 텍스처 좌표계를 구할 때 문제점이 있다.

텍스처 좌표계들이 노말라이즈 되지 않았다는 점. 노말라이즈(정규화) 되었다는 뜻은 가능한한 0에 가깝다는 뜻이다.

좌표계를 0에 가깝게 만드는 방법은 UV를 각각 노멀라이즈 하는 것이다. 그러나 좌표계가 -1 1사이 범위에 있다면 좌표계는 이미 노멀라이즈 된 것으로 본다. 0에 가장 가까운 텍스처 좌표계의 점을 찾아내고 폴리곤의 각 버텍스에서 이 값을 뺀다. 의사코드는 다음과 같다.