그래픽스

Texture

CMS419 2021. 12. 1. 12:30

Texture Mapping

벽지를 벽에 붙이는 것이라고 생각하면 된다.

Parameterization

여러가지 방식

Texture Mapping

  1. 텍스처 정의
  2. 텍스처에서 표면으로 매핑 지정
  3. 스캔 변환 중 텍스처 값 조회

scan 변환시, 어디로 부터 map을 하는 것인가?

  • 이미지 좌표계(x, y)에서
  • 모델링 좌표계(u, v)에서
  • 텍스처 이미지(s, t) 통해서 값을 읽어온다.

텍스처 매핑은 2D 투영 변환입니다.
텍스처 좌표계(s, t) -> 이미지 좌표계(x, y)

Scan conversion

스캔 라인을 가로질러/아래로 텍스처 좌표 보간

이중선 보간을 이용해서 근사값을 구한다.

  • 폴리곤을 더 작은 폴리곤으로 자른다.
  • 각 픽셀의 원근감 분할

원근 보정 보건

위 방법대로 하면, 왼쪽처럼 나온다.

하지만, OpenGL에서는 원근 보정 보건법을 이용해서 평평하게 보이게 만들어 준다.

Texture Filtering

1:1 이 안되면 Aliasing이 일어난다.

필터의 크기는 투영 왜곡에 따라 다르다.

Mip Maps

보통의 방법은 Original을 가지고, 값을 가져오는 형태이다.

이 방법이 될 수 도 있고, 안되는 수도 있다.

Mip maps 방법을 통해서

각 픽셀에 대해 두 개의 가장 가까운 레벨 사이를 선형으로 보간을 한다.(: 삼선형 보관볍).
빠르고, 쉽다.

Summed-area tables

bounding box의 값을 구하기 위해서 A,B를 빼고, C는 A,B로 인해서 2번 계산되어서 1번 더해준다.

  • 직사각형 내의 모든 값의 합을 계산하려면 두 항목을 빼십시오.
  • 매우 비스듬한 투영을 캡처할 때 더 나은 성능을 보여준다.
  • 그러나 단일 바이트에 값을 저장할 수 없습니다.

Modulation textures

모델의 텍스처를 값을 곱해서, Model에 texture를 입을 수 있다.

Illumination Mapping

Bump Mapping

표면의 질감(normal 값)을 model의 표면에 대입한다.

Displacement Mapping

Normal Mapping Problem(=Bump mapping) 단점

  • 시차를 표현을 못한다.
  • 그림자 표현을 못한다.
  • 실루엣을 표현을 못한다.

Displacement Mapping

객체의 geometry까지 변경한다.

Environment Mapping

저비용으로 완전 반사체를 구현할 수 있다

Cube Mapping

Environment Mapping을 이용해서, 환경맵을 구현할 때 쓸 수 있다.

Solid Textures

내부가 꽉찬 텍츠처를 구현하는 것이다.

3D 위치(x,y,z)로 인덱싱된 texture 값이다.

  • 용량이 크다
  • 계산은 빠르게 된다.
  • ex) Perlin Noise이 있다.