11장. 텍스쳐 학습목표 텍스쳐의 정의와 종류를 이해한다. 평면 다각형의 텍스쳐 매핑 방법을 이해한다. 파라미터로 표현된 곡면 다각형의 텍스쳐 매핑 방법을 이해한다. 파라미터로 표현할 수 없는 곡면 다각형의 텍스쳐 매핑 방법을 이해한다. 텍스쳐 매핑에서 에일리어싱이 일어나는 이유와 앤티-에일리어싱 방법을 이해한다. 지엘의 텍스쳐 매핑방법을 이해한다.
텍스쳐 맵 원래의 정의 물체면에 인위적으로 미세한 굴곡을 부여함으로써 주름 면을 형성 법선벡터 조정 = Bump Map 확산광 계수 변화, 표면 거칠기를 함수화하여 경면광에 반영
텍스쳐 맵 다각형 분할 서로 다른 색, 표면 기울기를 부여 너무 많은 시간이 소요됨 대신 2차원 영상을 직접 평면 표면에 입힘 텍스쳐(Texture, Texture Image, Texture Map)
텍스쳐 매핑 예 일반적 텍스쳐 매핑 라이트 매핑(Light Mapping) 물체면의 밝기를 계산하는 대신 텍스쳐와 조명 결과를 혼합하여 결과적인 영상을 직접 물체면에 입힘.
텍스쳐 매핑 예 주변 매핑(Environmental Mapping) 물체 외부 환경이 해당 물체면에 반사 반짝이는 물체면을 표현
지엘의 텍스쳐 매핑 매핑 시기 기하 파이프라인과 영상 파이프라인 래스터 변환에서 만남
텍셀 Texel(Texture Element) 텍스쳐 영상의 기본단위 화소와 마찬가지로 (R, G, B, A) 저장 예: 6☓5 크기의 2차원 배열로 저장. 텍스쳐 좌표는 정규화 형태로 표현. 텍스쳐 매핑: (s, t) 좌표로 표현된 2차원 텍스쳐 영상을 (x, y, z) 좌표로 표현된 3차원 물체면으로 사상
평면다각형으로의 텍스쳐 매핑 수작업 좌표명시
매핑 방향 다각형에서 텍스쳐로 화소별로 해당 텍스쳐를 구함 에일리어싱 발생가능 투상 이후에 텍스쳐를 가하는데 따른 오류
곡면의 텍스쳐 매핑 평면으로 곡면을 둘러싸는데 따르는 어려움 역으로 곡면으로 평면을 만드는데 따르는 어려움
파라미터 곡면 예: 원구(표면상의 점을 경도, 위도로 표현가능)
다각형 곡면 2 단계 매핑(2-Stage Mapping) 곡면을 매개변수로 표시할 수 없을 때 S 매핑(S Mapping)에서는 텍스쳐를 원기둥, 육면체, 원구 등 중개면(仲介, Intermediate Surface)에 입힘. S 매핑의 예: 원기둥 중개면
다각형 곡면 O 매핑 물체를 중개면 내부에 넣고 물체면에 텍스쳐를 입힘. 원기둥, 육면체, 원구 중개면
다각형 곡면 O 매핑의 종류 물체면 법선벡터, 물체 중심, 중개면 법선벡터, 시점 반사벡터
주변매핑(Environmental Mapping) 경면 반사(Specular Reflection)를 위주로 표현할 수 있는 물체, 반사 매핑(Reflective Mapping). Ex. Terminator II 2단계 매핑 사용 O 매핑에서 시점 반사벡터를 사용 시점 위치에 따라 서로 다른 모습
주변매핑(Environmental Mapping) 원구 중개면의 예 물체주변 모습을 광각으로 반영 180도 어안렌즈로 촬영된 텍스쳐
에일리어싱 텍스쳐 매핑 비선형 매핑(Non-Linear Mapping): 평면 사각형이 곡선 사변형(Curvilinear Quadrilateral)으로 점 샘플링(Point Sampling)에 의한 에일리어싱: 언더샘플링
확장관계와 축소관계 축소관계(Magnification) 여러 텍셀이 한 픽셀로 확장관계(Minification) 텍셀 크기 이하가 한 픽셀로 두 경우 모두 에일리어싱 발생가능
앤티에일리어싱: 양방향 선형보간 확장관계에 주로 사용 화소 중앙점이 텍셀의 점 p로 사상되었을 경우 대부분 그래픽 카드에서 표준으로 채택 텍스쳐 경계선이 흐려짐
점 샘플링과 양방향 선형보간
앤티에일리어싱: 밉맵(MipMap) 축소관계에 주로 적용: 한 화소가 여러 텍셀에 걸쳐짐 MIP Mapping: Multum in Parvo, Many Things in a Small Place 해상도 별로 평균치를 계산하여 텍스쳐 맵에 저장(R, G, B 별) 사전 필터링(Pre-Filtering), 다해상도 텍스쳐(Multi-Resolution Texture)
밉맵 예시 해상도에 따라 밉맵을 선택 1 화소가 1 텍셀로 매핑: Map #1 1 화소가 4 텍셀로 매핑: Map #2 평균 낸 텍스쳐 값을 사용함으로써 앤티-에일리어싱을 기함.
3방향 선형보간 밉맵 적용결과 화면 해상도와 텍스쳐 해상도가 비슷해짐. 확장관계를 추가적으로 적용할 수 있음. 3방향 선형보간 (Tri-linear Interpolation) 1 화소가 2 텍셀로 매핑: Map #1과 Map #2를 보간하여 새로운 맵을 계산 여기에 양방향 선형보간을 적용
앤티에일리어싱 예시 점 샘플링과 밉맵에 의한 점 샘플링
앤티에일리어싱 예시 밉맵을 사용한 점 샘플링과 양방향 선형보간
지엘의 텍스쳐 매핑: glTexImage2D( ); 프로세서 배열에 저장되어 있던 텍스쳐를 텍스쳐 메모리(Texture Memory, Texture Buffer)로 이동시키는 함수 청색 화살표로의 흐름
지엘의 텍스쳐 매핑: 수동 매핑 glBegin(GL_POLYGON); glNormal3f(0.0, 0.0, 1.0); glTexCoord2f(0.2, 0.8); 텍스쳐 정점 a를 glVertex3f(7.5, 10.5, 0.0); 물체 정점 A에 할당 glTexCoord2f(0.4, 0.2); 텍스쳐 정점 b를 glVertex3f(0.0, 3.8, 0.0); 물체 정점 B에 할당 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); 기준평면과의 물체와의 거리
주변 매핑 도구이용, 카메라(180도), 카메라(360)도 카메라(360도)
GL_REPEAT, GL_CLAMP