텍스처 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에 가장 가까운 텍스처 좌표계의 점을 찾아내고 폴리곤의 각 버텍스에서 이 값을 뺀다. 의사코드는 다음과 같다.
'Coding > Game Programming' 카테고리의 다른 글
.MAP 파일로 만드는 BSP (6) - 모든 브러쉬에 대해 CSG 수행하기 (0) | 2010.12.09 |
---|---|
.MAP 파일로 만드는 BSP (5) - 버텍스 소팅하기 (0) | 2010.11.25 |
.MAP 파일로 만드는 BSP (3) - 맵 파일 구조 (1) | 2010.11.18 |
.MAP 파일로 만드는 BSP (CSG 이용) (2) - 브러쉬를 폴리곤으로 바꾸기 (0) | 2010.11.18 |
.MAP 파일로 만드는 BSP (CSG 이용) (1) - 맵 파서 디자인 (0) | 2010.11.18 |