02.27

신승빈·2023년 2월 27일
0

KGCA 수업

목록 보기
115/128

Environment Mapping

거울, 물방울에서 Object가 반사, 투과 재질이 있다면 주변 이미지를 반영할 수 있어야 한다
Static Environment : Sky Box
Dynamic Environment : Mirror

굴절

진공상태에서만 굴절이 없음
공기도 굴절률이 존재
일반적으로 물에서 사용
매질에 따라서 굴절률이 달라짐

Fresnel 계수

반사재질 객체를 바라보는 시선각도에 대한 반사율 변화를 결정하는 계수
호수에 비쳐보이는건 각도에 따라서 물속, 표면, 하늘 등 다르게 보인다
Schlick's approximate : Fresnel 계수를 직접 계산하기에는 연산이 너무 무거우므로 근사해서 처리한다

Cube Map

Object의 중심에서 6방향으로 Capture한 화면을 Texture로 생성
Map, Object, Effect 중 원하는 Object Type만 Environment Mapping되도록 할 수 있음
DX10 이후로는 Instancing을 이용해서 한번 Object의 Draw call을 수행하면 Cube Map의 모든 Texture에 반영될 수 있도록 가능

MRT(Multi Render Target)

최대 8장까지 지정할 수 있는 다수의 Texture에 1번 Render call을 수행하면 서로 다른 결과를 출력할 수 있음
Texture1 : color, Texutre2 : Normal ...

PBR(Physics Basic Rendering)

물리적인 요소를 기반으로 하는 Rendering 기법
Texture를 만드는 공식이 이미 존재?

Normal Mapping

조명에 의해 계산되어야 하는 Normal을 Texture에 미리 저장
Low Polygon Mesh를 High Polygon처럼 보이도록 할 수 있음
Height Map을 통해 제작하거나 High Polygon-Low Polygon을 비교해서 제작

Displacement Map

Geometry의 Vertex를 실제로 이동시키는 정보를 담은 Texture

Reference : https://en.wikipedia.org/wiki/Displacement_mapping

Tangent Vector

Normal Map은 1장을 사용하기 때문에 실제 조명이 비추는 방향과 Object의 위치에 따라 Normal Map이 World Coordinate로 변환되어야 정확한 값이 계산된다

M33=(tbn)M_{33} = \begin{pmatrix} \vec{t} \\ \vec{b} \\ \vec{n} \end{pmatrix}

단, 이 경우 Normal Map의 Pixel마다 World Coordinate로 변환해야 하므로 연산량이 매우 많이 요구됨
대신, Light를 Texture Coordinate로 변환하면 연산량을 크게 줄일 수 있음

Tangent Vector 생성


u를 Tangent vector, v를 Binormal Vector로 생성

profile
이상을 길잡이 삼아 로망을 추구합니다.

0개의 댓글