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에 이어 붙이는 것이다.
'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 |