텍셀 (Texel)
- 텍스쳐 영상의 기본단위
- 화소와 마찬가지로 (R, G, B, A) 저장
- 예 (a) : 6☓5 크기의 2차원 배열로 저장. 텍스쳐 좌표는 정규화 형태로 표현.
- 텍스쳐 매핑: (s, t) 좌표로 표현된 2차원 텍스쳐 영상을 (x, y, z) 좌표로 표현된 3차원 물체면으로 사상
평면 다각형의 텍스쳐 맵핑
수작업으로 좌표 명시
매핑 방향 : 다각형에서 텍스쳐
- 화소별로 해당 텍스쳐를 구함. 해당 화소의 무게중심 좌표(Barycentric Coordinates)를 구함.
- 에일리어싱 발생가능 (undersampling)
투상 이후에 텍스쳐를 가하는데 따른 오류
- 원근변환은 특성상 원래의 물체 길이를 보존하지 않음
- 투상 이후의 정점을 기준으로 구해진 무게중심 좌표는 원래 정점을 기준으로 구해진 무게중심 좌표와는 서로 다를 수 있음
곡면의 텍스쳐 맵핑
- 역으로 곡면으로 평면을 만드는데 따르는 어려움
곡면의 텍스쳐 맵핑 - 파라미터 곡면
- 원구좌표 (표면 상의 점을 경도, 위도로 표현 가능)
u는 y축으로부터의 각도, v는 z축으로부터의 각도, r은 반지름의 길이
곡면의 텍스쳐 맵핑 - 다각형 곡면
- 2단계 매핑(2-Stage Mapping)
- 곡면을 매개변수로 표시할 수 없을 때
- S 매핑(S Mapping)에서는 텍스쳐를 원기둥, 육면체, 원구 등 중개면(Intermediate Surface)에 입힘.
- S 매핑의 예: 원기둥 중개면
- O 매핑
- 물체를 중개면 내부에 넣고 물체면에 텍스쳐를 입힘.
- 원기둥, 육면체, 원구 중개면
- O 매핑의 종류
- 물체면 법선 벡터(a), 물체 중심(b), 중개면 법선 벡터 (c), 시점 반사 벡터 (d)
곡면의 텍스쳐 맵핑
곡면의 텍스쳐 맵핑 - Box Mapping
곡면의 텍스쳐 맵핑 - Cylinder Mapping
곡면의 텍스쳐 맵핑 - Sphere Mapping
주편 매핑 (Environmental Mapping)
- 경면 반사(Specular Reflection)를 위주로 표현할 수 있는 물체, 반사 매핑(Reflective Mapping).
- 2단계 매핑 사용
- O 매핑에서 항상 시점 반사벡터를 사용
- 시점 위치에 따라 서로 다른 모습
- 원구 중개면의 예
- 물체주변 모습을 광각으로 반영
- 180도 어안렌즈로 촬영된 텍스쳐
지엘의 텍스쳐 매핑
지엘의 텍스쳐 매핑 - 수동 매핑
glBegin(GL_POLYGON);
glNormal3f(0.0, 0.0, 1.0);
glTexCoord2f(0.2, 0.8); //텍스쳐 정점 a를
glVertex3f(7.5, 10.5, 0.0); //물체 정점 A에 할당
glNormal3f(0.0, 0.0, 1.0);
glTexCoord2f(0.4, 0.2); //텍스쳐 정점 b를
glVertex3f(0.0, 3.8, 0.0); //물체 정점 B에 할당
glNormal3f(0.0, 0.0, 1.0);
glTexCoord2f(0.8, 0.4); //텍스쳐 정점 c를
glVertex3f(12.0, 0.0, 0.0); //물체 정점 C에 할당
glEnd( );
지엘의 텍스쳐 매핑 - 자동 매핑
void glTexGen{ifd}[v](GLenum coord, GLenum pname, TYPE param);
static GLfloat MyPlane[ ] = {1.0, 0.0, 0.0, 0.0};
glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR);
glTexGenfv(GL_S, GL_OBJECT_PLANE, MyPlane);
glEnable(GL_TEXTURE_GEN_S);
지엘의 텍스쳐 매핑 - 주변 매핑
glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);
glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);
glEnable(GL_TEXTURE_GEN_S);
glEnable(GL_TEXTURE_GEN_T);
댓글