Quick Reference
| 항목 | 의미 |
|---|---|
| Microfacet | 표면을 미세 거울들의 분포로 근사 |
| NDF | 미세 표면 방향 분포 |
| Geometry term | 미세 표면끼리 가리고 막는 효과 |
| Fresnel | 시야각에 따른 반사율 변화 |
| IBL | environment map으로 간접광과 반사를 근사 |
f_specular = D(N, H) * F(V, H) * G(N, V, L) / (4 * max(N·V, 0) * max(N·L, 0))
outgoing direct light = f_specular * incoming radiance * max(N·L, 0)구조
microfacet PBR은 specular highlight를 단순한 지수 함수로 만들지 않습니다. 표면이 아주 작은 면들의 집합이라고 보고, 그중 half vector 방향을 향한 미세 표면이 빛을 얼마나 반사하는지 계산합니다.
NDF * Geometry * Fresnel은 specular BRDF의 분자다.
분모와 rendering equation의 N·L 항을 분리하지 않으면 각도와 에너지 관계가 달라진다.NDF는 roughness에 따라 미세 표면 방향이 얼마나 퍼져 있는지 나타냅니다. roughness가 낮으면 정렬된 미세 표면이 많아 하이라이트가 작고 강하며, roughness가 높으면 넓고 흐린 반사가 됩니다.
Geometry term은 미세 표면끼리 빛을 가리거나 시야를 막는 효과를 근사합니다. Fresnel은 표면을 비스듬히 볼수록 반사가 강해지는 현상을 다룹니다.
D, F, G는 서로 독립적인 색 보정 knob가 아닙니다. NDF는 roughness에서 분포를, geometry term은 masking/shadowing을, Fresnel은 입사·시선 각도의 반사율을 담당합니다. direct light contribution에서는 BRDF 외에 incoming radiance, visibility, max(N·L, 0)이 더 필요합니다.
IBL
IBL은 주변 환경을 texture로 저장해 간접광을 근사합니다. diffuse는 irradiance map처럼 넓게 적분한 환경광을 쓰고, specular는 roughness별로 prefilter된 environment map과 BRDF lookup table을 함께 씁니다.
metallic-roughness workflow에서 base color와 emissive는 색 asset의 색 공간 규칙을 따르지만, metallic·roughness·normal·occlusion은 linear data입니다. roughness mip prefilter, environment cubemap, BRDF LUT의 convention이 renderer와 asset exporter 사이에서 다르면 metal이 검거나 reflection lobe가 어긋납니다.
연결 기준
| 문제 | 연결해서 볼 것 |
|---|---|
| 금속이 검게 보임 | environment lighting, reflection |
| roughness 변화가 약함 | specular prefilter, mip chain |
| 가장자리 반사가 어색함 | Fresnel |
| 재질이 플라스틱처럼 보임 | metallic workflow, baseColor |
| 전체가 씻겨 보임 | tone mapping, exposure |
PBR은 재질 카드 하나로 끝나지 않습니다. BRDF, texture color space, environment lighting, shadow, tone mapping이 함께 맞아야 자연스럽게 보입니다.
주의할 점
PBR 값이 물리적으로 그럴듯해도 조명 환경이 비어 있으면 결과는 어둡거나 납작하게 보입니다. 특히 금속은 diffuse가 거의 없고 반사에 크게 의존하므로 IBL 품질이 중요합니다.
또 roughness는 단순 blur 값이 아니라 BRDF와 environment prefilter를 함께 움직이는 파라미터입니다. roughness texture를 sRGB로 읽으면 반사 폭이 의도와 달라질 수 있습니다.
IBL만으로 direct shadow가 생기지는 않습니다. environment diffuse/specular와 direct light의 shadow/visibility를 같은 재질 BRDF에 더하되, ambient 항을 임의로 중복하면 에너지와 exposure가 쉽게 과해집니다.
참고 링크
3 sources