본문 바로가기

ComputerScience/Computer Graphics

CG - 7. Texture

728x90

1. texture

- color의 경우 vertex들의 interpolation으로 속을 채운다고 했다.

- 질감도 마찬가지로 특정한 무늬 패턴들의 vertex를 잡아서 interpolation을 수행한다.

- 모양이 복잡하면 복잡할수록 triangle수가 많아지고 따라서 rendering time이 늘어난다.

 - texture이미지를 3차원 모델에 mapping 시켜서 구현한다..

- 정육면체의 12개의 삼각형에 다음과 같은 질감을 surface에 mapping하는 것이다.

 2. Texel 

- texture에 각각의 pixel을 texel이라고 한다. 각각 2차원의 (u,v) coordinate으로 되어있다. [0.0, 1,0]으로 normalize되어있다.

- 결국 3D trianglemesh에 2D texture를 매핑시켜야 한다는 것은 각각 하나의 triangle에 texture를 mapping시키는 것과 같다.

- 각 triangle vertex에 texture coordinate을 정의 한다. 

3. Texture coordinate interpolation

- 다음으로 삼각형이 fragment shader를 거쳐 2D로 표현된다.

- 세 vertex의 texture coordinate를 가지고 특정 픽셀의 texture coordinate를 interpolation으로 구한다.

- 그럼 texture map에서 아까 구한 texture coordinate를 가지고 해당 픽셀의 texture color를 구한다.

- 이전에 구한 texture coordinate(u,v)를 가지고 texture map([0.0, 1,0])에서 해당 color를 선택할때 가장 가까운 지점의 color를 고르는 방식이 nearest neighbor 방식이다.

- 이 방식은 aliasing이 심하게 나타날 수 있다..

 

- 따라서 가장 까까운 점을 선택하는 것이 아니라 네 점으로 interpolation을 수행해서 최종 texture color를 선택하게 된다.

 

- 정리를 해보자.

- 먼저 scan line conversion중에 각 픽셀에 대해 texture coordinate를 구한다.

  

- 이렇게 픽셀마다 texture coordinate를 구하고나면 2차원의 texture image를 매핑하는 것이다.

4. Texture mapping

- planar mapping

- cylindrical mapping은 아래와 같다.

- Spherical Mapping

- cube mapping

- 좀더 사실적인 mapping을 위해서는 surface를 unfold한 map을 만들 수 있다.

- unfold를 쉽게 하기위한 방법도 있다.

- 물체 표면을 여러 조각으로 나누어 unfold하고 하나의 surface에 이어 붙이는 것이다.

728x90
반응형

'ComputerScience > Computer Graphics' 카테고리의 다른 글

CG - 9. Modeling  (0) 2021.10.28
CG - 8. Texture filtering  (0) 2021.10.13
CG - 6. Surface Rendering  (0) 2021.10.08
CG - 5. Lighting  (0) 2021.09.29
CG - 4. Viewing System  (0) 2021.09.24