[Unity] UV좌표계

muchan
muchan
∙∙조회 10
[Unity] UV좌표계

개요

UV 좌표는 3D 메시의 표면에 텍스처를 어떻게 붙일지 정의하는 2D 좌표계이다

  • U = 가로축(0~1)
  • V = 세로축(0~1)

이렇게 유니티 Scene에서 Wireframe mode로 보면 삼각형들이 보이는데 이것들이 UV좌표로 표현되는 것들이다.

렌더링 파이프 라인에서 Fragment(Pixel)마다 여러 데이터를 가지고 있다

데이터설명
UV텍스처 어디서 색을 샘플링할지
Position월드/클립 공간에서의 위치
Normal빛 계산용 표면 방향
Tangent노말맵 계산에 사용
Color버텍스 컬러
Depth카메라로부터의 거리

UV도 이런 하나의 데이터라고 생각하면 편하다

적용 원리

이러한 텍스처가 있을 때 UV 좌표는 (0,0)에서 (1,1)로 표현되고

구의 삼각형을

이런식으로 인덱스를 만들면 (1,2,3), (2,3,4) 인덱스 정점의 삼각형이 만들어져 총 6개의 정점이라고 볼 수 있다
각 인덱스는 UV 좌표를 가지며

이런식으로 텍스처 위에 UV좌표가 각각 매핑되어 해당 텍스처의 정보를 가져올 수 있다

그래서 게임 오브젝트에 UV를 매핑 시키면 자연스럽게 텍스처가 할당되는 것을 볼 수 있다

여기서 삼각형 하나의 단위는 모델링 하는 사람들이 정하는 것이며, Unity에서는 수정할 수 없다고 한다.

그래서 처음 텍스처를 할당했을 때 텍스처가 밀집하게 보이거나, 너무 퍼져서 보이는 것은 디자이너가 UV단위를 다르게 설정해서 그런 것이다.

(따로 설정할 수 있는 방법은 Material의 Tiling 값을 조정하면 된다고 한다)