Ray Tracing - Texturing
카테고리: Graphics
태그: DirectX
홍정모님의 그래픽스 새싹코스 강의를 듣고 정리한 내용입니다.
🐥 Texture - uv Coordinates
Texturing | uv coordinates |
---|---|
Texturing이란 triangular polygon으로 이루어진 메시에 이미지를 덧씌우는 작업이다. 이를 위해서는 각 vertex마다 uv좌표를 지정해주어야 하고, vertex가 아닌 픽셀의 경우 앞서 배운 무게 중심 좌표계를 이용하여 uv 좌표를 구한다.
- (width x heigt) 크기의 Texture인 경우
- uv의 범위 : [0,1]
- 픽셀 인덱스의 범위 : [0, width - 1] x [0, height - 1]
- 이미지 좌표의 범위 : [-0.5, width - 1 + 0.5] x [-0.5, height - 1 + 0.5]
🐥 Point Sampling vs Linear Sampling
Point Sampling
Formula | Result |
---|---|
- 가장 가까운 픽셀 좌표를 이용해 Texturing
- 가벼운 연산 & Discrete한 결과.
Linear Sampling
Formula | Result |
---|---|
- 주변 4개의 픽셀 값으로 linearly-interpolation
- 조금 비싸지만 연속적인 결과.
🐥 Clamped vs Wrapped
위 그림은 사각형의 전체의 uv좌표를 [0,1]로 대응시킨 결과이다. 만약 uv좌표가 [0,1]을 넘어갈 경우 어떻게 처리해줄 수 있을까? 이 같은 고민을 하는 이유는 반복되는 패턴을 표현하기 위해 의도적으로 [0,1] 범위를 넘기는 경우가 존재하기 때문이다. 가장 간단하게 처리할 수 있는 방법은 [0,1]로 clipping하는 것이지만 이 방법으로는 반복되는 패턴을 표현할 수 없다. 따라서 [0,1]을 주기로 갖는 wrapping 방법을 이용한다.
Clamp | Wrap |
---|---|
댓글 남기기