거울, 물방울에서 Object가 반사, 투과 재질이 있다면 주변 이미지를 반영할 수 있어야 한다
Static Environment : Sky Box
Dynamic Environment : Mirror
진공상태에서만 굴절이 없음
공기도 굴절률이 존재
일반적으로 물에서 사용
매질에 따라서 굴절률이 달라짐
반사재질 객체를 바라보는 시선각도에 대한 반사율 변화를 결정하는 계수
호수에 비쳐보이는건 각도에 따라서 물속, 표면, 하늘 등 다르게 보인다
Schlick's approximate : Fresnel 계수를 직접 계산하기에는 연산이 너무 무거우므로 근사해서 처리한다
Object의 중심에서 6방향으로 Capture한 화면을 Texture로 생성
Map, Object, Effect 중 원하는 Object Type만 Environment Mapping되도록 할 수 있음
DX10 이후로는 Instancing을 이용해서 한번 Object의 Draw call을 수행하면 Cube Map의 모든 Texture에 반영될 수 있도록 가능
최대 8장까지 지정할 수 있는 다수의 Texture에 1번 Render call을 수행하면 서로 다른 결과를 출력할 수 있음
Texture1 : color, Texutre2 : Normal ...
물리적인 요소를 기반으로 하는 Rendering 기법
Texture를 만드는 공식이 이미 존재?
조명에 의해 계산되어야 하는 Normal을 Texture에 미리 저장
Low Polygon Mesh를 High Polygon처럼 보이도록 할 수 있음
Height Map을 통해 제작하거나 High Polygon-Low Polygon을 비교해서 제작
Geometry의 Vertex를 실제로 이동시키는 정보를 담은 Texture
Normal Map은 1장을 사용하기 때문에 실제 조명이 비추는 방향과 Object의 위치에 따라 Normal Map이 World Coordinate로 변환되어야 정확한 값이 계산된다
단, 이 경우 Normal Map의 Pixel마다 World Coordinate로 변환해야 하므로 연산량이 매우 많이 요구됨
대신, Light를 Texture Coordinate로 변환하면 연산량을 크게 줄일 수 있음
u를 Tangent vector, v를 Binormal Vector로 생성