Duplicate

Texture, Light, and Materials

수강 일자
2023/04/14

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 을 수행할 수 있음.
α,β,γ\alpha, \beta, \gamma 는 점과 각 변까지의 거리에 비례함.
최종으론 다음과 같음.
결국, 삼각형의 각 꼭지점은 u, v coordinate 의 pixel 에 대응되고, 해당 pixel 에서 barycentric coordinate 로 픽셀 값을 찾아서 texture 를 붙여넣을 수 있음.
삼각형 마다 동일한 색상을 넣는 것이 아니라, 좀 더 high resolution 인 디테일을 챙길 수 있음.

Textured Sponza

엄청 큰 구조물의 경우에는 전체를 감싸는 Texture 가 아니라, 반복되는 패턴을 넣도록 할 수 있음.
Lighting
빛을 잘 사용하면 복잡한 효과를 나타낼 수 있음.
사진을 찍었을 때 조명의 위치에 따라 다른 느낌을 낼 수 있음.
Material
빛을 받았을 때 geometry 가 어떻게 반응하는지를 표현함.
Types of Lights
Point Light
L=Φr2L=\frac{\Phi}{r^2}
어떤 coordinate 로부터 빛이 모든방향으로 동등하게 나감
Infinite Directional Light in direction d
지구 위에서 움직여봤자 태양까지의 거리에 비하면 매우 작아 무시함.
Spot Light
L(w)=wdL(w)=w\cdot d
ww 는 광원과 물체의 특정 점 사이의 거리, dd 는 cone 의 중심 방향 벡터
특정 cone 영역 안으로만 빛이 들어감. (무대 조명 등…)
Environment Light
복잡한, 많은 조명
특정 방향의 빛을 알고 싶으며 해당되는 방향의 environment map 을 읽어서 가져옴.
How much Light Hits the Surface at Point P
들어오는 빛 (Irradiance) 은 모든 빛 LiL_i 들에 대해서 입사각의 cos\cos 에 비례하여 이들의 summation 으로 최종 표현됨.
iLicosθi\sum_i L_i\cos\theta_i
나가는 빛은 여기서 반사각에 대한 함수가 추가됨. (pp 는 물체 위 점)
if(p,wi,wo)Licosθi\sum_i f(p, w_i,w_o)L_i\cos\theta_i
ff 가 들어오는 각과 나가는 각에 대한 함수 (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 과 이루는 cos\cos 값만큼 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 를 따름.
ηisinθ=ηtsinθt\eta_i\sin\theta = \eta_t\sin\theta_t
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 을 만들 수 있음.