SniKuz 2024. 5. 5. 14:38

목차

 

Texture Mapping

개요

현실의 물체들은 색이나 법선 방향등이 균일하지 않은 문제점으로 높은 디테일은 모델링하기 어렵습니다.
사실적인 shading을 위해서 색상, 법선에 변화를 주는 것이 필요 → Texture(텍스처, Map이라는 단어도 씁니다.)를 사용해서 복잡한 디테일의 모델링을 대체합니다

형태, 방법에 따라 다양한 결

 

방법

텍스처 자체는 2차원 이미지로 2차원 이미지를 3차원 물체 표면에 덮어씌우는 매핑과정을 통합니다.

물체의 표면이 평면인 경우(벽, 바닥) 그냥 덮어 씌우면 되지만, 곡면을 가진 표면이라면 표면의 parameter인 (u,v)를 texture coordinate로 사용합니다. 즉 표면의 각 점은 텍스처 위의 다른 점으로 매핑합니다. 

 

 

Texture Coordinate Functions

 

● Planar Projection (평면 투영)

텍스처를 그래도 평면으로 투영시키는 방법입니다. 이 경우 x,y평면은 괜찮은데 수직이거나 그 외는 투영이 왜곡이 심해집니다.

● Spherical Projection (구면 투영)

물체를 원으로 감싸듯이 매핑하는 방법입니다. 이 때 아래 설명과 같이 극점에서의 문제점이 있습니다. 극점은 3D에서는 한 점이지만, 2D에서는 한 라인으로 표시되어 유니크하지 않은 점이 있습니다. (지구본 vs 세계지도에서의 북극)

● Cylindrical Projection (원통 투영)

물체를 원통형으로 매핑하는 방법입니다.

 

● Cubemap 

여러 텍스처를 하나의 텍스처로 매핑할 수 있는 방식으로, 정육면체 각 면에 텍스처를 반영한 방식이 Cubemap입니다.
게임에서 배경을 표현하기 위한 Skybox도 cubemap으로 표현할 수 있습니다.

● Interpolated Texture Coordinates - Barycentric Coordinate (보간 텍스처 좌표 - 질량 중심 좌표계)

Barycentric Coordinates는 삼각형의 내부의 점을 표현하는 좌표계입니다. 삼각형 내부 점을 정점 3개의 좌표와 보간된 비율로 표현합니다.
Barycentric은 질량을 뜻하는 접두사 Bary와 중심을 뜻하는 접미사 centric이 합쳐진 단어입니다.

아래가 예시가 다 질량 중심 좌표계인지는 확실하지 않으나, 보간을 바탕으로 텍스처를 매핑하는 방법입니다.

 

 

Mapping Techniques?

● Texture Wrapping Modes - 가장자리 처리 방법

 

● Antialiasing Texture Lookup

Aliasing : Discrete raster device에서는 부드러운 선을 그릴 수 없습니다. 그래서 계단형의(staircased) 라인(jaggies)들을 그리게 됩니다. 이런 끊겨보이는 현상을 aliasing aritfact(staircased pixels, moire patterns)라 합니다.

○ Supersampling : Anti Aliasing 기술로 각 pixel을 칠할 때, point에 정확한 값보다는 point 주변의 area의 평균값으로 pixel의 색상을 결정합니다. (Area 내에서 Blending)

○ Reconstruction : Texel(Texture 내 1개의 Pixel)보다 실제 매핑(texture space footprint)의 크기가 작을 때 texel들 간의 보간(interpolation)을 적용합니다. Texel보다 실제 매핑이 크다면 여러 texel들 간의 평균 값을 효율적으로 계산하는 것이 중요합니다.

○ Mipmapping : 같은 이미지를 downsampling해서 저장한 텍스처들의 계층적 집합인 Mipmap을 가지고, 실제 매핑의 크기와 비슷한 texel을 가진 mipmap에서 pixel 값을 읽습니다.

 

● Normal - Bump Mapping

물체 표면은 보통 부드럽지 않고, 이를 재현하기 위해서는 복잡한 기하 모델이 필요합니다.
이를 위해 normal을 국소적으로 흔들어서 실제로는 부드럽지만 눈으로 보이는 표면의 재질은 부드럽지 않게 표현할 수 있습니다.

 

○ Normal - Bump vs Displacement Mapping

Normal - Bump는 실제 표면의 형태는 바꾸지 않는 shading tick이라 실루엣을 보면 여전히 부드럽게 보입니다.

Displacement mapping은 normal 방향의 height map을 저장해서 normal의 국소적인 흔들기를 surface에도 실제로 적용하는 것입니다

● Environmental Mapping

공간에서 반사되어 나오는 빛을 texture로 저장하는 방법입니다. 반사 효과를 나타내는 가장 저렴한 방법으로 주변 파노라마 이미지를 생성해 물체에 텍스처로 매핑합니다. 사람의 눈은 반사에 대해 둔감하여 효율적입니다.

● Volumetric Textures

텍스처 패턴을 3D domain에서 정의해 물체의 각각의 점에 대해 3D location으로 텍스처를 계산해 매핑합니다.
주로 자연 모습에 메테리얼이나 불규칙적인 텍스처에 사용하는 것 같습니다(돌, 나무, 등등)