Texture Mapping
•
Geometry 에 색종이를 붙인 것과 같음.
•
여러 layer 의 texture 를 겹칠 수 있음.
◦
사람의 땀, 모공, 털 등 복잡한 것들도 여러 layer 의 조합으로 나타낼 수 있음.
•
Normal Map 을 이용해 세부적인 부분들을 geometry 로 표현하지 않더라도, 섬세한 bump 등을 그래픽스 렌더링 파이프라인에서 구현할 수 있음.
Normal and Displacement Mapping
•
Texture 의 Normal Map 으로 쿠키의 갈라짐을 표현할 수 있음.
◦
하지만, 원래 geometry 를 유지하기 때문에 boundary 와 shadow 가 깔끔함.
◦
Surface Normal 이 어떻게 빛에 반응할 것인지만 정의하기 때문에 geometry 는 그대로고 그럴듯한 효과만 주는 것임.
•
Geometry 에서 약간의 offset 을 주는 형태로 texture 를 만들 수 있는데 이를 Displacement Mapping 이라고 함.
◦
실제 Surface Geometry 를 바꾸는 것임.
•
멀리 있는 배경 같은 경우에는 Texture 로 대신하여 그럴듯하게 대체할 수 있음.
Ambient Occlusion
•
오목한 부분은 면의 모든 부분에 빛을 받지 못하고 가려져 있어 해당 빛만큼 줄여서 색을 표현함.
•
가능한 입사각 180도 중에서 유의미하게 얼마정도로 줄었들었음(몇 %) 을 미리 계산해서 나중에 빛이 들어올 때 빠르게 계산할 수 있게끔 함.
Environment Map
•
전체 환경의 빛을 하나의 파노라마 이미지로 만들어서 해당 이미지에 의한 lighting 효과를 표현한 것이 Environment Map 임.
•
Sphere 상에 Texture 를 입히는 방법으로 복잡하면서도 전체적인 빛의 효과를 표현할 수 있음.
◦
파노라마 형태의 빛을 놓고 해당 Sphere 에 의한 반사를 표현하여 실감나는 영상을 만들 수 있음.
◦
투명하거나 반사가 심한 (반짝일 때) 물체를 표현할 때 효율적으로 쓸 수 있음.
•
Sphere Map 이라고도 부름.
•
Sphere 로 공간을 싸지 않고 Cube 로 싸면 Cube Mapping 이라고 함.
◦
물체에 반사된 ray 가 cube 랑 만나는 지점의 색상을 보게 됨.
Impostors, Sprites, and Layers
•
Sprites 는 옛날 게임에서 단순한 평면 이미지에 Texture 를 넣어 다양한 동작을 표현한 것임.
•
3D 에서는 Sprites 를 Imposters 로, Computer Vision 에서는 Layers 로 부름.
Texture Coordinates
•
Surface Coordinate (3D 상) 과 이미지 상 coordinate 의 대응관계를 나타냄.
•
u, v coorinate 로 정의됨.
•
Texture 로 들어가는 이미지의 픽셀 크기는 무궁무진한데, 가장 큰 부분을 1, 작은 부분을 0 으로 둠.
•
Texture Coordinate 은 각 꼭지점이 어떤 UV coordinate 에 해당하는지만 가지고 있고 꼭지점의 색만 넣었을 때 그 사이의 색을 interpolation 해 주는 것이 graphics engine 에서 rasterizer 가 하는 역할임. (기본은 linear interpolation)
◦
삼각형 안에서는 barycentric coordinate 로 interpolation 을 수행할 수 있음.
▪
는 점과 각 변까지의 거리에 비례함.
▪
최종으론 다음과 같음.
•
결국, 삼각형의 각 꼭지점은 u, v coordinate 의 pixel 에 대응되고, 해당 pixel 에서 barycentric coordinate 로 픽셀 값을 찾아서 texture 를 붙여넣을 수 있음.
•
삼각형 마다 동일한 색상을 넣는 것이 아니라, 좀 더 high resolution 인 디테일을 챙길 수 있음.
Textured Sponza
•
엄청 큰 구조물의 경우에는 전체를 감싸는 Texture 가 아니라, 반복되는 패턴을 넣도록 할 수 있음.
Lighting
•
빛을 잘 사용하면 복잡한 효과를 나타낼 수 있음.
•
사진을 찍었을 때 조명의 위치에 따라 다른 느낌을 낼 수 있음.
Material
•
빛을 받았을 때 geometry 가 어떻게 반응하는지를 표현함.
Types of Lights
•
Point Light
◦
어떤 coordinate 로부터 빛이 모든방향으로 동등하게 나감
•
Infinite Directional Light in direction d
◦
지구 위에서 움직여봤자 태양까지의 거리에 비하면 매우 작아 무시함.
Spot Light
•
는 광원과 물체의 특정 점 사이의 거리, 는 cone 의 중심 방향 벡터
•
특정 cone 영역 안으로만 빛이 들어감. (무대 조명 등…)
Environment Light
•
복잡한, 많은 조명
•
특정 방향의 빛을 알고 싶으며 해당되는 방향의 environment map 을 읽어서 가져옴.
How much Light Hits the Surface at Point P
•
들어오는 빛 (Irradiance) 은 모든 빛 들에 대해서 입사각의 에 비례하여 이들의 summation 으로 최종 표현됨.
•
나가는 빛은 여기서 반사각에 대한 함수가 추가됨. ( 는 물체 위 점)
◦
이 가 들어오는 각과 나가는 각에 대한 함수 (BRDF: Bidirectional Reflectance Distribution Function)
Diffuse / Lambertian Material
•
나가는 각에 상관 없이 일정하게 입사한 광량이 분배됨.
Glossy Material
•
반사각 주변에만 광량이 분배됨.
Perfect Specular Reflection
•
반사각 하나에만 광량이 반사되어 감.
•
Environment Map 으로 싸서 묘사하는 경우가 많음.
Basic Reflection Functions
•
Retro-Reflective 는 빛이 들어간 것이 다시 내쪽으로 오는 경우임.
◦
달, 도로 표지판 등…
Phong Reflection Model
•
앞선 material model 을 조합해서 표현함.
•
Ambient: 빛과 상관없이 칠함
•
Diffuse: 입사한 빛이 Surface Normal 과 이루는 값만큼 attenutation 이 일어남.
•
Specular: 완전한 반사
More Complex Materials
•
Microfacet Model: 확률적으로 언제는 반사, 언제는 반사 X
◦
Sprinkle 과 같은 지글지글한 질감 표현 가능함.
Subsurface Reflection
•
입사각이 딱 떨어지는 점에서 반사가 일어난다고 생각하지 않고, 피부와 같은 곳의 투명한 곳에서 피부 안쪽에서 반사가 일어난다는 점에서 착안한 반사임.
•
피부나 우유같은 것들을 표현 가능함.
Anisotropic Reflection
•
머릿결의 방향마다 BRDF 를 다르게 설정하면 머리카락의 방향성을 렌더링할 수 있음.
Isotropic / Anisotropic Materials
•
Surface Normal 에 따라 방향을 Anisotropic 하게 Normal Map 과 BRDF 를 적용하면 일일히 모델링하지 않더라도 그럴듯하게 렌더링 가능함.
•
한 방향으로 얼라인 되어 반사될 경우에도 Anisotropic BRDF 가 필요함.
•
폭신한 배게를 미는 방향에 따라 달라지는 모습을 Anisotropic BRDF 로 표현 가능함.
Ideal Reflective / Refractive Material (BxDF)
•
x 는 reflectance, scattering, transmission 을 포함한 개념임.
•
물로 이루어진 것, 글라스로 이루어진 것들을 표현할 수 있음.
Transmission
•
파장에 따라 다르게 꺽이는 현상 등은 노을, 하늘, 물, 유리를 통해서 보이는 것들에서 중요함.
•
Snell’s Law 를 따름.
Fresnel Reflection
•
물에서만 반사, 투과가 일어나는 것은 아니고, 일반 물체도 어느 각도에서 보느냐에 따라 얼마나 반사가 되는지 달라질 수 있음. (e.g., 칠판을 보는 방향에 따라서…)
Subsurface Scattering
•
들어온 곳에서 바로 나오지 않고, 들어온 곳에서부터 약간 떨어진 곳에서 반사가 나올 수 있도록 모델링 함. → BSS(Sub Surface)RDF
Translucent Materials
•
옥 (Jude)
•
피부 (Skin)
•
나뭇잎 (Leaves)
•
대리석…
Parameters to Disney BRDF
•
최근 그래픽스 엔진으로 가면 갈 수록 많은 parameter 를 가지고 material 를 표현함.
◦
subsurface scattering 을 얼마나 넣는지
◦
metallic 을 얼마나 넣는지
◦
specular 를 얼마나 넣는지
◦
등등…
Unity’s Shader Graph
•
Parameter 조정을 통해 복잡한, 사실과 같은 material 을 만들 수 있음.