(π)λ²μ - BRDF Layered Diffuse
κ°μΈκ³΅λΆλ₯Ό μν κ°μΈνμ΄μ§μ λλ€.
μ μκΆ κ΄λ ¨ λ¬Έμ μ¬ν λ°μμ μμ λ μ μμ΅λλ€.
λ€μ΄κ°κΈ°μ μμ
I3D 2022μ μΆκ°λ μλ£μ΄λ©°, μ΄ν΄λ₯Ό λκΈ° μν΄ κΈλ§ νκΈλ‘ λ²μν©λλ€.
μ λν°μ ν΄λ¦¬μ΄μ½νΈμ μ μ¬ν κ°λ μΌλ‘, μ΄λ₯Ό μΌλν΄λκ³ μ½μΌλ©΄ μ½κΈ° νΈνμ§λ§,
μΆκ°μ μΈ ν΅κ³μ μ κ·Όλ°©μμ ν΅ν λ€μ€μ°λκ³Ό μ°¨μμΆμμ ν¬ν¨ν κ°λ μ μ°¨μ΄μ μ λλ©΄ μ’μ΅λλ€.
κ°λ¨ν 리뷰λ λ€μκ³Ό κ°μ΅λλ€.
κ°μ
μ΄ λ Όλ¬Έμ μ€μκ°μΌλ‘ λ¨λ²νΈ κΈ°μ μ κ±°μΉ μ μ 체 κ³λ©΄μ΄ μ½ν λ νλ©΄(μΈλΌλ―Ήκ³Ό κ°μ μΈκ΄)μ λ λλ§νκΈ° μν μλ‘μ΄ μ °μ΄λ© λͺ¨λΈμ μ μν©λλ€. μ΄λ¬ν νλ©΄μ ν‘μ 맀μ§λ‘ λΆλ¦¬λμ΄ μμ΅λλ€.
μ£Όμ κΈ°μ¬
- μλ‘μ΄ μ °μ΄λ© λͺ¨λΈ: λ κ°μ BRDF λ‘λΈλ‘ ꡬμ±λ λͺ¨λΈμ μ μνμ¬, μΈ΅ ꡬ쑰μμ λΉ μ μ‘μ μ²μ μΈ κ°μ§ λͺ¨λ©νΈλ₯Ό μμΉμ μΌλ‘ μ°κ΅¬ν΄ ꡬμΆ.
- μ€μκ° νΈνμ±: μ°¨μ μΆμλ₯Ό ν΅ν΄ νμν ν μ΄λΈμ κ΄λ¦¬ κ°λ₯ν ν¬κΈ°λ‘ μμΆνμ¬ μ€μκ° μ μ½μ λ§κ² μ‘°μ .
- μΈ΅μ BRDF νλ μμν¬ νμ₯: Belcour [2018]μ μΈ΅μ BRDF νλ μμν¬μ λ¨λ²νΈ κ³λ©΄ μ§μμ μΆκ°νμ¬, μ€μκ°μΌλ‘ 물리μ μΌλ‘ κΈ°λ°ν μΈκ΄μ λ²μλ₯Ό νμ₯.
ꡬν μΈλΆ μ¬ν
- μ°¨μ μΆμ: κ±°μΉ ν¬κ³Όμ¨μ 4Dμμ 2D + 1D + 1Dλ‘ μμΆ. ν‘μμ κ±°μΉ κΈ°μ λν΄ κ°κ° 2κ°μ κΈ°μ λ₯Ό μ¬μ©.
- GLSL νλκ·Έλ¨ΌνΈ μ °μ΄λ: GLSL νλκ·Έλ¨ΌνΈ μ °μ΄λλ‘ κ΅¬ννμ¬ RTX 2070μμ 720p ν΄μλλ‘ νλ μλΉ μ½ 0.5ms μμ.
- Unity ν΅ν©: Unityμ HDRPμ 컀μ€ν ν¬μλ ν¨μ€λ‘ ν¬ν , μΈν°λν°λΈ νλ μ λ μ΄νΈλ‘ μ€νλλ©° μν°μ€νΈκ° ν μ€μ²λ‘ 맀κ°λ³μλ₯Ό μμ λ‘κ² λ³κ²½ν μ μμ.
κ²μ¦
- Mitsuba νλ¬κ·ΈμΈ: Mitsuba λ λλ§ μμ§μ 컀μ€ν νλ¬κ·ΈμΈμ ν΅ν΄ κ²μ¦, νλ₯ μ μ°Έμ‘° λͺ¨λΈκ³Ό λΉκ΅νμ¬ μ νμ±μ νμΈ.
- λ€μΈ΅ μ¬λ£ κ²μ¦: Mitsuba μμ§μμ μ λ°μ΄νΈλ μΆκ°-μ΄μ€ν μκ³ λ¦¬μ¦μ μ¬μ©νμ¬ λ κ°μ μ μ 체 μΈ΅κ³Ό λ¨λ²νΈ κΈ°μ λ‘ κ΅¬μ±λ νλ©΄μ μΈκ΄μ μ¬ν.
νκ³
- μκ³κ°: Ξ·<1μΈ κ²½μ° μκ³κ°μμ λλ ·ν λΆμ°μμ±μ΄ λ°μνλ©°, GGX λ‘λΈλ‘ μ΄λ₯Ό μμ ν μ¬νν μ μμ.
- μ΄λ°©μ±κ³Ό μ°Έμ¬ λ§€μ§: κ±°μΉ λ±λ°©μ± μ μ 체 μ½ν μΌλ‘ μ ν, λ§€μ§ λ΄ λ€μ€ μ°λμ κ³ λ €νμ§ μμ.
μ λν° ν΄λ¦¬μ΄μ½νΈμμ λΉκ΅
- λ€μ€ μ°λ μ²λ¦¬: λ Όλ¬Έμ λͺ¨λΈμ λ€μ€ μ°λμ κ³ λ €νμ¬ λ μ νν λΉμ μνΈμμ©μ μ¬νν©λλ€. Unityμ Clear Coatλ μ΄λ¬ν 볡μ‘ν μνΈμμ©μ λ¨μνν ννλ‘ μ 곡ν μ μμ΅λλ€.
- μ°¨μ μΆμ: λ Όλ¬Έμμλ νμν λ°μ΄ν°μ μ°¨μμ μΆμνμ¬ μ€μκ° μ±λ₯μ ν₯μμν€λ λ°©λ²μ μ μν©λλ€.
Rendering Layered Materials with Diffuse Interfaces
- Heloise de Dinechin (Unity Technologies, EPFL)
- Laurent Belcour (Unity Technologies)
μλ¬Έ :
https://belcour.github.io/blog/research/publication/2022/04/13/brdf-layered-diffuse.html
https://arxiv.org/pdf/2203.11835
κ°μ(ABSTRACT)
λ³Έ μ°κ΅¬μμλ μ€μκ°μΌλ‘ κ±°μΉ μ μ 체 μ½ν (rough dielectric coating)μ κ°μ§ λ¨λ²νΈ νλ©΄μ λ λλ§νλ μλ‘μ΄ λ°©λ²μ μκ°ν©λλ€.
μ΄λ¬ν ꡬμ±μ μΈκ΄μ΄ κ°κ° μ§μ λ° κ°μ μνΈμμ©μ μ€λͺ νλ λ κ°μ λ§μ΄ν¬λ‘νμ― λ‘λΈ(microfacet lobes)λ‘ μΆ©μ€νκ² ννλλ€λ κ²μ 보μ λλ€.
μ°λ¦¬λ 5μ°¨μ ν μ΄λΈμ μ¬μ©νμ¬ λΉ μ μ‘μ 1μ°¨ λ°©ν₯ ν΅κ³(μλμ§, νκ· λ° λΆμ°)λ₯Ό κΈ°λ°μΌλ‘ μ΄λ¬ν λ‘λΈλ₯Ό μμΉμ μΌλ‘ λ§μΆκ³ , μ΄λ₯Ό λΆμμ νμκ³Ό μ°¨μ μΆμλ₯Ό ν΅ν΄ 2μ°¨μ + 1μ°¨μμΌλ‘ μ’νλλ€.
μ°λ¦¬λ κ±°μΉ νλΌμ€ν±κ³Ό μΈλΌλ―Ήμ ν¨μ¨μ μΌλ‘ λ λλ§νμ¬ μ°λ¦¬ λ°©λ²μ νμ§μ μ μ¦νλ©°, μ΄λ μ§μ€μ λ§€μ° κ°κΉμ΅λλ€. λν, μ°λ¦¬λ μ΅μ²¨λ¨μ μΈ΅μ λ¬Όμ§ λͺ¨λΈμ κ°μ νμ¬ λ¨λ²νΈ κ³λ©΄μ ν¬ν¨μμΌ°μ΅λλ€.
CCS Concepts
- Computing methodologies β Reflectance modeling
Keywords
Layered Materials, Statistical Analysis, Real-Time Rendering
ACM Reference Format:
Heloise de Dinechin and Laurent Belcour. 2022. Rendering Layered Materials with Diffuse Interfaces. In Proceedings of SIGGRAPH I3D (I3Dβ22). ACM, New York, NY, USA, 7 pages. https://doi.org/10.1145/3522620
1. μκ°(INTRODUCTION)
λ¨Έν λ¦¬μΌ λͺ¨λΈμ μ€μκ° λ λλ§ μμ§κ³Ό μ€νλΌμΈ λ λλ§ μμ§ λͺ¨λμ νΈνλκ² μ€κ³νλ κ²μ λμ μ μΈ κ³Όμ μ λλ€. λ§μ κ²½μ°, μ€μκ° μ °μ΄λ© λͺ¨λΈμ μ€νλΌμΈ λ λλ§ λͺ¨λΈμ μ‘°μ νκ² κ·Όμ¬ν©λλ€.
μλ₯Ό λ€μ΄, μ½ν λ μΈλΌλ―Ή λλ κ±°μΉ μ½ν νλΌμ€ν±μ κ²½μ°, λ¨λ²νΈ κΈ°μ μμ κ±°μΉ μ μ 체 μ½ν μ΄ μμΈ κ΅¬μ‘°λ‘ μ μλ©λλ€. μ΄λ¬ν μ¬λ£λ₯Ό κ·Όμ¬νκΈ° μν΄, μ€μκ° λͺ¨λΈμ λ³΄ν΅ κ±°μΉ μ€ννλ¬(rough specular) λ‘λΈμ νμ° λ‘λΈλ₯Ό μν°μ€νΈκ° μ μν κ°μΌλ‘ νΌν©νμ¬ λΉ μ μ‘μ 무μν©λλ€.
κ·Έλ¬λ μ€νλΌμΈ λͺ¨λΈμ μ½ν κ³Ό κΈ°μ κ°μ μνΈμμ©μ μ¬λ°λ₯΄κ² νκ°νμ¬ μ μ‘λ νμ° μμμ μ¬λ°λ₯Έ μ±λμ λ°κΈ°λ₯Ό λ¬μ±ν μ μμ§λ§, ν¨μ¨μ±μ ν¬μν΄μΌ ν©λλ€.
λ³Έ μ°κ΅¬μμλ μ€μκ°μΌλ‘ κ·Έλ¬ν ꡬ쑰λ₯Ό λ λλ§νλ©΄μλ μ§μ€μ κ°κΉμ΄ μκ°μ κ²°κ³Όλ₯Ό μ 곡νλ λͺ¨λΈμ μ μν©λλ€. μ°λ¦¬μ λͺ¨λΈμ κ°λ¨ν μμ΄λμ΄μ κΈ°λ°ν©λλ€.
λ¨Όμ , λ¨μΌ λ° λ€μ€ μ°λ κ°μΈ΅μ 1μ°¨ λ°©ν₯ ν΅κ³(μλμ§, νκ· λ° λΆμ°)λ₯Ό νλ‘ μμ±ν©λλ€. κ·Έλ° λ€μ, μ΄λ¬ν ν΅κ³λ₯Ό κ·Όμ¬νλ BRDF λ‘λΈμ ν©μ μ¬μ©ν©λλ€.
λ¨λ²νΈ κ³λ©΄μ΄ λΉ μ μ‘ μ λΆμ λΉμκ΄ν(decorrelation)νλ μ¬μ€μ μ΄μ©νμ¬ μ΄λ¬ν ν΅κ³λ₯Ό μμμ μ¬μ κ³μ°μΌλ‘ μΆμνκ³ , λΆμμ ννμκ³Ό κ²°ν©ν©λλ€.
μ΄λ¬ν ν΅κ³λ₯Ό μΌμΉμν€λ GGX λ§μ΄ν¬λ‘νμ― λͺ¨λΈ [Walter et al. 2007]μ BRDF λ‘λΈλ₯Ό μ¬μ©νμ¬, μ°λ¦¬λ νλ₯ μ μ°Έμ‘°μ λ§€μ° μ μ¬ν κ·Όμ¬ λͺ¨λΈμ μ»μ΅λλ€.
GPUμ ν μ€μ² μ λμ λ μ νμ©νκΈ° μν΄, μ¬μ κ³μ°λ ν μ΄λΈμ λ°λ³΅μ μΈ μ°¨μ μΆμλ₯Ό μ¬μ©νμ¬ 2D ν μ€μ²λ‘ μμΆν©λλ€. μ°λ¦¬λ μ΄ λͺ¨λΈμ λ λ°μ μμΌ Belcour [2018]μ ν΅κ³μ νλ μμν¬μ λ¨λ²νΈ κ³λ©΄μ ν΅ν©ν©λλ€.
2. μ΄μ μ°κ΅¬ (PREVIOUS WORK)
μμ§μΌλ‘ μμΈ κ°λ³ κ³λ©΄μΌλ‘ μ΄λ£¨μ΄μ§ μ¬λ£λ μΈ΅μ μ¬λ£(layered materials)λΌκ³ ν©λλ€ [Weidlich and Wilkie 2007] (κ·Έλ¦Ό 2 (a)). λ¬Ένμ νΉμ ꡬμ±μ λν νμν λͺ¨λΈμ λνλ΄λ λ°©λ²κ³Ό μμμ μΈ΅ μλ₯Ό κ²°ν©νλ νλ μμν¬λ‘ λλ μ μμ΅λλ€.
νΉμ λͺ¨λΈμ νΉμ μΈ΅ μμ λν νμν ννμμ μ 곡ν©λλ€. μλ₯Ό λ€μ΄, Four-Flux Matrix λ°©λ² [Simonot et al. 2016]μ μ μ 체 μ½ν κ³Ό λ¨λ²νΈ κΈ°μ μ¬μ΄μ μ μ‘μ νΉμ νκ² λͺ¨λΈλ§ν©λλ€. κ·Έλ¬λ μ΄ λ°©λ²μ νμ¬ μ€μκ° λ λλ§μ νμμ μΈ ν리νν°λ§λ μ‘°λͺ (HDRIλ λ©΄μ‘°λͺ )κ³Ό νΈνλλ λͺ¨λΈμ μ 곡νμ§ μμ΅λλ€.
μ€νλΌμΈ μΈ΅μ μ¬λ£ νλ μμν¬. μΌλ°μ μΈ νλ μμν¬λ₯Ό μ€κ³ν λμ μ΄λ €μμ μΈ΅ ꡬ쑰 λ΄μ λ€μ€ μ°λμ μ€λͺ νλ λ° μμ΅λλ€. μ€ννΈλΌ νν [Jakob et al. 2014; Zeltner and Jakob 2018]μ μ΄λ¬ν λͺ¨λΈμ νκ°νλ λ° ν¨μ¨μ μ λλ€. μ¬κΈ°μ λ°μ¬μ¨μ νΈλ¦¬μ κΈ°μ μμ λΆν΄λλ©°, μΆκ°-μ΄μ€ν μκ³ λ¦¬μ¦ [van de Hulst 1980]μ λ€μ€ μ°λμ μ€λͺ ν©λλ€. κ·Έλ¬λ μ΄κ²μ ν μ€μ² μ¬μ©μ κΈμ§νλ©° λμ νκ° μ€λ²ν€λλ₯Ό νμλ‘ ν©λλ€. νλ₯ μ λ°©λ² [Gamboa et al. 2020; Guo et al. 2018]μ λ°μ¬μ¨μ νκ°νκΈ° μν΄ λͺ¬ν μΉ΄λ₯Όλ‘ λ°©λ²μ μ¬μ©ν©λλ€. μ΄λ€μ μ νμ±μ λ Έμ΄μ¦κ³Ό λ§λ°κΎΈλ©°, κ·Έλ‘ μΈν΄ μ °μ΄λ©μ λΆμ°μ μΆκ°νμ¬ μ€νλΌμΈ μλ리μ€λ‘ μ¬μ©μ΄ μ νλ©λλ€.
μ€μκ° μΈ΅μ μ¬λ£ νλ μμν¬. Elek [2010]μ Weidlichμ Wilkie [2007]μ λͺ¨λΈμ μ€μκ° λ λλ§μ μ μ©νμ΅λλ€. κ·Έλ¬λ μλ λ°©λ²κ³Ό λ§μ°¬κ°μ§λ‘, μ μ ν λ€μ€ μ°λ νκ°κ° λΆμ‘±νλ©°, μ κ΄μλ§μ μ§μν©λλ€. λ§μ§λ§μΌλ‘, ν΅κ³ λͺ¨λΈ [Belcour 2018; Guo et al. 2016]μ ꡬ쑰 λ΄μμ λ€μ€ μ°λμ ν΅κ³λ₯Ό μ¬ννλ λ°©ν₯μ± μλ² λ, μ μ¬ λ°©ν₯ λ° κ±°μΉ κΈ°λ₯Ό κ°μ§ λ§μ΄ν¬λ‘νμ― λ‘λΈμ ν©μΌλ‘ λ°μ¬μ¨μ κ·Όμ¬ν©λλ€. μ΄λ₯Ό ν΅ν΄ μ€μκ°μΌλ‘ νμ₯λ κ΄μμ λ λλ§ν μ μμ΅λλ€. λ§μ νμ₯μλ λΆκ΅¬νκ³ [Randrianandrasana et al. 2021; Weierμ Belcour 2020; Yamaguchi et al. 2019], μ΄ λͺ¨λΈμ λ¨λ²νΈ κ³λ©΄μ μ²λ¦¬νμ§ λͺ»ν©λλ€.
κΈ°μ¬ μμ½. λ³Έ μ°κ΅¬μμλ ν΅κ³ νλ μμν¬λ₯Ό μ¬μ©νμ¬ λ¨λ²νΈ κ³λ©΄μ μ²λ¦¬ν μ μλλ‘ νμ₯ν¨μΌλ‘μ¨ λ λ€μν ꡬμ±μ λ λλ§ν μ μκ² ν©λλ€. μ΄λ₯Ό μν΄, μ°λ¦¬λ λ¨λ²νΈ κΈ°μ μμ κ±°μΉ μ μ 체 μ½ν μ μμ ꡬ쑰(κ±°μΉ μ½ν λ¨λ²νΈ, κ·Έλ¦Ό 2 (b))μ ν΅κ³λ₯Ό μ°κ΅¬ν©λλ€. μ΄λ¬ν ν΅κ³λ‘λΆν° μ°λ¦¬λ κ·Έλ¬ν μ¬λ£μ λν λ°μ¬μ¨ λͺ¨λΈμ ꡬμΆνκ³ , λ¨λ²νΈ κΈ°μ μμ ꡬμ±μ μ²λ¦¬ν μ μλλ‘ ν΅κ³μ μΈ΅μ νλ μμν¬λ₯Ό κ°μ ν©λλ€(κ·Έλ¦Ό 2 (c-d)).
3. μ½ν λ λ¨λ²μμμ ν΅κ³
κ±°μΉ μ½ν λ¨λ²νΈ λ°μ¬μ¨
κ±°μΉ μ½ν λ¨λ²νΈ λ°μ¬μ¨μ μ½ν μ μν΄ μ§μ λ°μ¬λ λΉκ³Ό λ¨λ²νΈ κΈ°μ μ μν΄ κ°μ μ μΌλ‘ λ°μ¬λ λΉμ ν©μ λλ€. μ°λ¦¬λ κ²°κ³Όμ μΈ BRDF λͺ¨λΈμ λ κ°μ§ νμΌλ‘ λΆν΄νκΈ°λ‘ νμ΅λλ€: μ§μ ν Ο1βκ³Ό κ°μ ν Ο2+βμ λλ€. μ§μ νμ μ΄μ μ°κ΅¬ [Belcour 2018]μμ μ΄λ―Έ μ€λͺ λμμ΅λλ€. κ°μ νμ κ²½μ°, μ°λ¦¬λ κ·Έ μλμ§, νκ· λ° λΆμ°μ μ°κ΅¬ν©λλ€.
3.1 μλμ§
λ€μ€ μ°λ μ±λΆ Ο2+βμ μλμ§λ λ¨λ²νΈ κΈ°μ μ ν λ² μνΈμμ©νλ κ²½λ‘μ μ λΆμ λλ€. μ΄λ€μ Ξ·1βμμ Ξ·2βλ‘μ κ±°μΉ κ΅΄μ T01β, νμ° μνΈμμ© Ο(x), κ·Έλ¦¬κ³ Ξ·2βμμ Ξ·1βλ‘μ κ±°μΉ λ°μ¬μ κ΅΄μ RΛβ10 λ° TΛβ10μ κ²ͺμ΅λλ€:
Ο2+β=Ξ©nββββ«xβΞ©nββT01β(x0β)Ο(x1β)(k=2βnβ2βRΛ10(xkβ)Ο(xk+1))TΛ10β(xnβ)μ¬κΈ°μ x=xiβ[0,n]βΞ©nβμ κΈΈμ΄ nμ λͺ¨λ κ²½λ‘μ λλ€. λ¨λ²νΈ μνΈμμ©μΌλ‘ μΈν΄, κ° λ²ν μ€μμμ μ λΆμ λΉμκ΄ν(decorrelation)λ©λλ€:
Ο2+β=nββT01βΟ(k=2βnβ2βRΛ10Ο)TΛ10 Β =k=0βββT01βΟk+1RΛk10TΛ10μ¬κΈ°μ T01β=β«T01β(x)dxμ λλ€. μ΄ ννλ μλ ΄νλ κΈμμ λλ€:
Β Ο2+β=T01β1βΟRΛ10TΛ10Οβμ¬κΈ°μ TΛβ01μ Ξ·, Ξ±, μ μ¬κ°μ λ°λΌ λ¬λΌμ§λ©°, RΛβ10κ³Ό TΛ10βμ Ξ·μ Ξ±μ λ°λΌ λ¬λΌμ§λλ€ (κ·Έλ¦Ό 3 (a-c) μ°Έμ‘°). λ°λΌμ, μ΄λ 4μ°¨μ ν¨μ λμ 3μ°¨μ λ° 2μ°¨μ ν¨μλ‘ μλμ§λ₯Ό ννν©λλ€.
3.2 νκ·
κ°μ λ‘λΈμ νκ· μ νμ μ °μ΄λ© λ²μ μ λλ€. μ€μ λ‘, λ¨λ²νΈ μνΈμμ©μ μ °μ΄λ© λ²μ μ μ€μ¬μΌλ‘ λ°κ΅¬μμ μλμ§λ₯Ό λμΉμ μΌλ‘ λΆλ°°ν©λλ€. μ΄νμ κ±°μΉ ν¬κ³Όμ κ±°μΉ λ°μ¬λ μ΄λ¬ν λμΉμ λ³κ²½νμ§ μμ΅λλ€.
3.3 λΆμ°
μ°λ¦¬λ κ°μ κ³ λμ€ν¬ν λ―Έν°(κ³ λμ€ κ΄λκ³,κ΄μμ μΈ‘μ ν λ μ¬μ©λλ 기ꡬ)λ₯Ό μ¬μ©νμ¬ ν¬μλ μ μ νλ©΄μμ λ°©ν₯ λΆμ°μ κΈ°λ‘νμ΅λλ€. μ μ¬ λ°©ν₯μ μν΄ λΉ λΆν¬κ° μν₯μ λ°μ§ μκΈ° λλ¬Έμ, μ°λ¦¬λ νμ° κΈ°μ μμ κ΄μ μ μμνμ¬ μ½ν λ λ¨λ²νΈ ꡬ쑰μμ κ²½λ‘λ₯Ό μΆμ νμ΅λλ€. λ°λΌμ, μ°λ¦¬λ 2μ°¨μ ν μ΄λΈ Ο+2β(Ξ·,Ξ±)μ μ»μμΌλ©°, μ΄λ₯Ό κ·Έλ¦Ό 3 (d)μ νμνμ΅λλ€.
3.4 κ·Όμ¬ λͺ¨λΈ
μ΄ λ°μ΄ν°λ₯Ό μ¬μ©νμ¬ κ±°μΉ μ½ν λ¨λ²νΈ λͺ¨λΈμ λ κ°μ BRDF λ‘λΈμ ν©μΌλ‘ μΈμ€ν΄μ€νν μ μμ΅λλ€: κ±°μΉ κΈ° Ξ±μ κ΅΄μ λ₯ (IOR) Ξ·μ GGX λ Έλ© λΆν¬μ μν λ°μ¬λ§μ κ³ λ €ν κ³ μ μ μΈ λ§μ΄ν¬λ‘νμ― λͺ¨λΈ BRDF1κ³Ό κ°μ ν BRDF2+:
BRDF(Οiβ,Οoβ)=BRDF1(Οiβ,Οoβ)+BRDF2+(Οiβ,Οoβ),λ λ²μ§Έ νμ λ€μκ³Ό κ°μ΅λλ€:
Β BRDF2+(Οiβ,Οoβ)=Ο2+β4cos(ΞΈiβ)cos(ΞΈoβ)D(n,Οoβ,Ξ±2+β)GΛ(n,Οoβ,Ξ±2+β)β,μ¬κΈ°μ D(β ,β )λ λ§μ΄ν¬λ‘νμ― λΆν¬, GΛ(β ,β )λ μ κ·νλ μλμ/λ§μ€νΉ νμ΄λ©°, μλμ§ μμ€μ Ο2+βμ ν¬ν¨λμ΄ μμ΅λλ€. Ξ±2+βλ 3.3μ μμ κ³μ°λ λΆμ°μ λν λ±κ° κ±°μΉ κΈ°μ λλ€. λ Έλ© λΆν¬μ μλμ/λ§μ€νΉ νμ μ μ¬ λ°©ν₯μΌλ‘ μ °μ΄λ© λ Έλ©λ‘ νκ°λ©λλ€.
κ·Έλ¦Ό 4μμ μ΄ μ€μκ° λͺ¨λΈμ μ€νλΌμΈ μ°Έμ‘° λͺ¨λΈκ³Ό λΉκ΅ν©λλ€. μ°λ¦¬μ μμ μ κ΅΄μ λ₯ Ξ·<1κ³Ό κ°μ΄ μ΄λ €μ΄ ꡬμ±μ μΌμΉμν€λ©°, μ¬κΈ°μ μ 체 λ΄λΆ λ°μ¬λ μ μ 체 κ³λ©΄μ κ±°μΉ κΈ°μ λ°λΌ 맀λλ¬μμ΄ λ¬λΌμ§λ μ΄λ λΆμ°μμ μμ±ν©λλ€. μ΄λ¬ν ꡬμ±μ λ λ§μ μΈ΅μ μΆκ°νκ±°λ μμ€ μ₯λ©΄μ λ λλ§νλ €λ©΄ κ³ λ €ν΄μΌ ν©λλ€.
4. μ°¨μ μΆμ
μ°λ¦¬μ λͺ¨λΈμ Beer-Lambert μλ©Έ λ²μΉμ μ²λ¦¬νκΈ° μν΄ Ο=exp(βΟΞ±β)λ₯Ό T01β, TΛβ10, RΛβ10μ μΆκ° μ°¨μμΌλ‘ μΆκ°ν©λλ€. κ·Έλ¬λ T01βμ λν λ°μ§λ 4D ν μ΄λΈμ GPUμ μ μ₯νλ κ²μ κΈμ§λ©λλ€. μ°λ¦¬λ μ£Όμ±λΆ λΆμ(PCA)μ μ μ©νκ³ μ΄λ₯Ό 1D κΈ°μ ν μ΄λΈκ³Ό 3D κ³μ ν μ΄λΈλ‘ λΆν΄νμ¬ λ°μ΄ν°μ μ°¨μμ μ€μ λλ€:
T01β(cos(ΞΈiβ),Ξ±,Ξ·,Ο)βk=0βNβckβ(cos(ΞΈiβ),Ξ±,Ξ·)bkβ(Ο).κ³μ ckβ(cos(ΞΈiβ),Ξ±,Ξ·)λ μ μ¬ν λΆν΄λ‘ μΆκ° λΆν΄λ μ μμ΅λλ€:
ckβ(cos(ΞΈiβ),Ξ±,Ξ·)βj=0βMβcjβ²β(cos(ΞΈiβ),Ξ±)bjβ²β(Ξ·),λ°λΌμ:
T01β(cos(ΞΈiβ),Ξ±,Ξ·,Ο)βk=0βNβj=0βMβcjβ²β(cos(ΞΈiβ),Ξ±)bjβ²β(Ξ·)bkβ(Ο).μ΄ μ λ΅μ μ¬λ¬ λ² μ μ©νλ©΄ ν μ΄λΈμ μ°¨μμ μ€μΌ μ μμ΅λλ€. λ§μ§λ§ μ°¨μμ λ³λμ΄ μ μ£ΌνμμΌ λ, νμν κΈ°μ μ±λΆμ μλ μ μΌλ©° λ¨μΌ ν μ€μ²μ μ μ₯ν μ μμ΅λλ€(μ: 4κ°μ κΈ°μ μ¬μ©). κ·Έλ¦Ό 5μμ μ΄λ¬ν μμΆμ κ²°κ³Όλ₯Ό 보μ¬μ€λλ€.
5. ν΅κ³μ μΈ΅μ νλ μμν¬
3μ₯μμ μμ§ν ν΅κ³λ₯Ό λ°νμΌλ‘, μ°λ¦¬λ ν΅κ³μ μΈ΅μ νλ μμν¬ [Belcour 2018]μ λ¨λ²νΈ κ³λ©΄ μ§μμ μΆκ°ν©λλ€. μ΄λ₯Ό μν΄, μ°λ¦¬λ λ§μ§λ§ μ μ 체 κ³λ©΄κ³Ό λ¨λ²νΈ κ³λ©΄μ νλμ μΈ΅ μΈν°νμ΄μ€λ‘ κ·Έλ£Ήνν©λλ€. λ€λ₯Έ μΈ΅κ³Ό λ¬λ¦¬, μ΄ μλ‘μ΄ μΈ΅μ λ κ°μ BRDF λ‘λΈλ₯Ό μΆλ ₯ν©λλ€. μ΄ μΆκ°μ μΈ λ‘λΈλ₯Ό μ ννκΈ° μν΄, μ°λ¦¬λ μΆκ°-μ΄μ€ν μκ³ λ¦¬μ¦μ λ λ€λ₯Έ μ§ν©μ λ°©ν₯ ν΅κ³λ₯Ό μΆκ°νκ³ (κ·Έλ¦Ό 6), μ΄λ₯Ό μ λ°μ΄νΈν©λλ€ (μκ³ λ¦¬μ¦ 1).
μ΄λ¬ν ν΅κ³μ μ κ·Ό λ°©μμ ν΅ν΄ λ€μν μΈ΅ κ°μ μνΈμμ©μ λ μ ννκ² λͺ¨λΈλ§ν μ μμΌλ©°, νΉν λ¨λ²νΈ κ³λ©΄κ³Ό κ°μ 볡μ‘ν ꡬ쑰λ₯Ό ν¬ν¨ν μ¬λ£λ₯Ό λ³΄λ€ νμ€κ° μκ² λ λλ§ν μ μμ΅λλ€.
μΆκ°-μ΄μ€ν μκ³ λ¦¬μ¦
ν΅κ³μ νλ μμν¬ λ΄μμ, μ°μ°μλ λΉμ΄ μΈ΅μ μν΄ λ°μ¬λκ±°λ κ΅΄μ λ λ λ°©ν₯ λͺ¨λ©νΈ(μλμ§ π, νκ· π, λΆμ° π)μ λ³νλ₯Ό μ€λͺ νλ λ° μ¬μ©λ©λλ€.
μ΄λ¬ν κ΅λΆ ν΅κ³λ νλ©΄ μμμ λ€μ΄μ€λ λΉμ λν μ μ‘ λ° λ°μ¬ κ³μ: (t0iβ)μ (r0iβ), κ·Έλ¦¬κ³ νλ©΄ μλμμ λ€μ΄μ€λ λΉμ λν μ μ‘ λ° λ°μ¬ κ³μ: (ti0β)μ (ri0β)μ κ°μ μ μ ν΅κ³λ₯Ό μ λ°μ΄νΈνλ λ° μ¬μ©λ©λλ€.
λͺ¨λ κ³μλ μΆκ°-μ΄μ€ν μκ³ λ¦¬μ¦ λμ κ³μ°λλ©°, μ¬λ£μ λ°μ¬μ¨μ κ·Όμ¬νλ λ€μν λ‘λΈλ₯Ό νκ°νλ λ° κ²°ν©λ©λλ€.
μλ‘μ΄ μ°μ°μ
μ°λ¦¬λ κ±°μΉ μ½ν λ¨λ²νΈλ₯Ό μν μ°μ°μλ₯Ό λ κ°μ μ°μ°μλ‘ λΆν΄ν©λλ€: νλλ κ±°μΉ μ μ 체 λ°μ¬λ₯Ό μν μ°μ°μμ΄κ³ , λ€λ₯Έ νλλ λ€μ€ μ°λ μ±λΆμ μν μ°μ°μμ λλ€. νμλ μνμ μΌλ‘ λ€μκ³Ό κ°μ΄ μ μλ©λλ€:
e=Ο2+βΒ (EquationΒ 3μμΒ μ μλ¨)ΞΌ=0Β (μ °μ΄λ©Β λ Έλ©κ³ΌΒ μ λ ¬λ¨)Ο=Ο2+βΒ (νμΒ κΈ°λ‘λ¨,Β κ·Έλ¦ΌΒ 3Β (d)Β μ°Έμ‘°)μ΄λ‘ μΈν΄ μ °μ΄λ© λ Έλ©μ μ€μ¬μΌλ‘ νλ μΆκ°μ μΈ λ‘λΈκ° μμ±λ©λλ€ (κ·Έλ¦Ό 6, λ Ήμ λ‘λΈ). νκ· κ³Ό λΆμ°μ΄ λ€λ₯΄κΈ° λλ¬Έμ, μ΄ λ‘λΈμλ μ μ‘ κ³μ (t_{i0})κ° μ ν¨νμ§ μμΌλ©°, μΆκ° 곡μμ μ μ©ν μ μμ΅λλ€. λ°λΌμ, μ°λ¦¬λ μΆκ°-μ΄μ€ν μκ³ λ¦¬μ¦μ λ¨λ²νΈ λ‘λΈμ λν νΉμ κ²½μ°λ₯Ό μΆκ°ν©λλ€.
μΆκ°-μ΄μ€ν μκ³ λ¦¬μ¦μ μμ
μ΄ μΆκ° λ‘λΈλ₯Ό κ³ λ €νκΈ° μν΄, μ°λ¦¬λ μΆκ°-μ΄μ€ν μκ³ λ¦¬μ¦μ μΌλΆλ§ μμ ν©λλ€. μ μ 체 κ³λ©΄μ μ²λ¦¬λ μ¬μ ν Belcour [2018]μ ꡬνμ λ°λ¦ λλ€ (μκ³ λ¦¬μ¦ 1μμ μμΌλ‘ κ°μ‘°λ μ°¨μ΄μ μ μ°Έμ‘°).
μκ³ λ¦¬μ¦μ΄ λ§μ§λ§ μ μ 체 κ³λ©΄μ λλ¬νλ©΄, μΆκ°-μ΄μ€ν 곡μμ μ¬μ©νμ¬ μ§μ λ°μ¬λ λ‘λΈλ₯Ό μΆκ°νμ§λ§, κ°μ λ‘λΈλ λ€λ₯΄κ² μ²λ¦¬ν©λλ€: μ΄ λ‘λΈλ μ °μ΄λ© λ Έλ©κ³Ό μ λ ¬λ νκ· μ κ°μ§λ―λ‘, μΆκ°-μ΄μ€ν ν¨μ€ λμ κ³μ°λ μ μ‘ λ° λ°μ¬ κ³μλ₯Ό μ¬μ©ν μ μμ΅λλ€.
μ΄λ¬ν κ³μλ κ°μ λ‘λΈμ νκ· κ³Ό λΆμ°μ μ¬μ©νμ¬ λͺ¨λ κ³λ©΄μ λν΄ μ¬νκ°λμ΄μΌ ν©λλ€.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# μμ¬μ½λ
def updated_adding_doubling_algorithm(layers):
# μ΄κΈ°ν
r0i, ri0 = 0, 0 # i μΈ΅μ λ°μ¬μ¨
t0i, ti0 = 1, 1 # i μΈ΅μ ν¬κ³Όμ¨
sigma_R0i, sigma_Ri0 = 0, 0 # i μΈ΅μ λ°μ¬μ¨ λΆμ°
sigma_T0i, sigma_Ti0 = 0, 0 # i μΈ΅μ ν¬κ³Όμ¨ λΆμ°
ji0 = 1 # i μΈ΅μμ μ΅μμΈ΅μΌλ‘μ Jacobian
# μ μ 체 λ‘λΈλ₯Ό νκ°νκΈ° μν μλ¨μμ νλ¨μΌλ‘μ 루ν
for i in range(len(layers)):
# μλμ§ μ
λ°μ΄νΈ
r0i, ri0, t0i, ti0 = update_energy()
sigma_R0i, sigma_Ri0, sigma_T0i, sigma_Ti0 = update_variance()
# μλ‘μ΄ λ‘λΈλ₯Ό BRDF λ‘λΈ λͺ©λ‘μ μΆκ°
m = ri0 * r0i / (1 - ri0 * r0i)
add_lobe(t0i * r0i * ti0 / (1 - ri0 * r0i), wr, sigma_Ti0 + ji0 * (sigma_T0i + sigma_Ri * m * (sigma_Ri + sigma_Ri0)))
# Jacobian μ
λ°μ΄νΈ
ji0 = ji0 * ji
#(μμ μ¬ν) κ±°μΉ μ½ν
λ¨λ²νΈμ μ μ 체 μ½ν
μΆκ°
add_lobe(t0i * rN * ti0 / (1 - ri0 * rN), wr, sigma_Ti0 + ji0 * (sigma_T0i + sigma_RN * m * (sigma_RN + sigma_Ri0)))
#(μμ μ¬ν) λ¨λ²νΈ λ‘λΈλ₯Ό νκ°νκΈ° μν νλ¨μμ μλ¨μΌλ‘μ 루ν
riN = t0i * eval_reflectance() # Equation (9)
sigma_iN = eval_variance() # Equation (11)
for i in reversed(range(len(layers) - 1)):
riN = (riN * ti) / (1 - ri * ri + 1)
sigma_iN = ji * sigma_iN + sigma_Ti + ji * (sigma_Ri + sigma_Ri + 1) * ri * ri + 1 / (1 - ri * ri + 1)
sigma_iN = max(sigma_iN, sigma2_plus(eta_i, alpha_i))
add_lobe(riN, n, sigma_iN)
μ°λ¦¬λ νλ¨μμ μλ¨μΌλ‘μ 루νλ₯Ό μ¬μ©νμ¬ μ΄λ₯Ό μνν©λλ€.
μ΄λ μ€μ λ‘ λ¨λ²νΈ μΈ΅μ μν΄ μ‘°λͺ λ μΈ΅ ꡬ쑰μμ ν¬κ³Όμ¨μ λν΄ μΆκ°-μ΄μ€νλ₯Ό μννλ κ²κ³Ό λμΌν©λλ€ (μκ³ λ¦¬μ¦ μ μμ μ¬ν). μ¦, μ°λ¦¬λ νλ¨μμ μλ¨μΌλ‘ λ°μ¬ κ³μμ λΆμ°μ μ λ°μ΄νΈν©λλ€:
riNβ=1βriβri+1βriβ1NβtiββΟNiβ=jiβΟNiβ1β+ΟTiβ+jiβ(ΟRiβ+ΟRi+1β)1βriβri+1βriβri+1ββμ λ Όλ¬Έμ λ°©μ μμ μ¬μ©νμ¬.
λμ λΆμ°
μ μ 체 κ³λ©΄μ ν΅ν΄ μ μ‘ν λ κ³μ°λ λΆμ°μ μ μ 체 μΈ΅μ ν΅ν νμ° μ μ‘μ λΆμ°μ μ΄κ³Όν΄μλ μ λ©λλ€. λ°λΌμ μ°λ¦¬λ μ΄λ₯Ό μ¬μ©νμ¬ λΆμ°μ ν΄λ¨νν©λλ€:
Β Οtβ=min(Οtβ,Ο2+β(Ξ·,Ξ±))6. ꡬν μΈλΆ μ¬ν
μ°¨μ μΆμ
μ°λ¦¬μ ꡬνμμ, μ°λ¦¬λ κ±°μΉ ν¬κ³Όμ¨ T01βμ 4Dμμ 2D + 1D + 1Dλ‘ μμΆνκ³ , νμ° ν¬κ³Όμ¨ TΛβ10 λ° νμ° λ°μ¬μ¨ RΛβ10μ 3Dμμ 2D + 1Dλ‘ μμΆν©λλ€. ν‘μ Ομ λν΄μλ 2κ°μ κΈ°μ λ₯Ό μ¬μ©νκ³ , κ±°μΉ κΈ° Ξ±μ λν΄μλ 2κ° λλ 4κ°μ κΈ°μ λ₯Ό μ¬μ©ν©λλ€.
νμμ κ²½μ°, 2κ°μ κΈ°μ λ 1κ°μ RGBA ν μ€μ²λ§ νμνμ§λ§, 4κ°μ κΈ°μ λ 2κ°μ ν μ€μ²κ° νμν©λλ€. μ°λ¦¬λ 보좩 μλ£μμ μ¬κ΅¬μ±μ νμ§μ 보μ¬μ€λλ€.
κ±°μΉ μ½ν λ¨λ²νΈμ 2μ°¨ λ‘λΈ
μ°λ¦¬μ λΆμμ λ°λ₯΄λ©΄, Ξ·>1μ κ²½μ° κ±°μΉ μ½ν λ¨λ²νΈμ 2μ°¨ λ‘λΈλ μκ°μ μΌλ‘ νμ° λ‘λΈμ κ°κΉμ΅λλ€. κ·Όμ¬ GGX λ‘λΈ(μ μ¬ λ°©ν₯μΌλ‘ μ °μ΄λ© λ Έλ©μ μ¬μ©) λλ νμ° λ‘λΈλ₯Ό μ¬μ©νλ©΄ μ μ¬ν μΈκ΄μ μ»μ μ μμ΅λλ€.
κ·Έλ¬λ Ξ·<1μ κ²½μ°μλ κ·Έλ μ§ μμ΅λλ€. μ΄ κ²½μ° λ‘λΈμ λΆμ°μ μ λ°μ¬(TIR)μ μν΄ μ νλλ©°, λ±κ° λΆμ°μ κ°μ§ GGX λ‘λΈκ° λΆμ°μμ±μ μΌμΉμν΅λλ€(κ·Έλ¦Ό 11 μ°Έμ‘°).
7. κ²°κ³Ό
Mitsubaμμμ κ²μ¦
μ°λ¦¬λ Mitsuba [Jakob 2010]μ 컀μ€ν νλ¬κ·ΈμΈμ ν΅ν΄ κ±°μΉ μ½ν λ¨λ²νΈ λͺ¨λΈμ κ²μ¦νμ΅λλ€. μ΄ μ»€μ€ν νλ¬κ·ΈμΈμ μμμ μΈ΅μ μ¬λ£λ₯Ό λ λλ§ν μ μλ νλ₯ μ μ°Έμ‘° λͺ¨λΈκ³Ό λΉκ΅νμ΅λλ€ (Guo [2018]μ μ μ¬).
κ·Έλ¦Ό 7μ μΌλΆ μ λ ν μ€νΈλ₯Ό 보μ¬μ€λλ€. μΆκ° κ²°κ³Όμ μμ€ μ½λλ 보좩 μλ£λ₯Ό μ°Έμ‘°νμμμ€. Weidlichμ Wilkie [2007]μ μ΄μ μ€μκ° νΈν λͺ¨λΈκ³Ό λ¬λ¦¬, μ°λ¦¬μ λͺ¨λΈμ λ€μ€ μ°λμ κ³ λ €ν©λλ€(κ·Έλ¦Ό 8 μ°Έμ‘°).
μ°λ¦¬λ Ξ·<1μ ꡬμ±μ΄ κ·Έλ΄λ―ν λΆν¬λ₯Ό μμ±ν¨μ νμΈνμ΅λλ€ (κ·Έλ¦Ό 7, μΌμͺ½ μ΄). μ¬κΈ°μ λ΄λΆμ λΉ¨κ° μνμ λ¨λ²νΈ κΈ°μ λ‘ μ μ‘λ κ΄μ μ λνλ΄κ³ , μνμ μΈλΆλ μμ λ°μ¬λ₯Ό λνλ λλ€.
μ΄λ¬ν ꡬμ±μ νμ€μ μ΄μ§ μμ§λ§, μλ‘ λ€λ₯Έ μ¬λ£λ₯Ό μΈ΅μΈ΅μ΄ μμ λ μ€μν©λλ€.
μ€μκ° νλ‘ν νμ
μ°λ¦¬λ κ±°μΉ μ½ν λ¨λ²νΈ λͺ¨λΈμ GLSL νλκ·Έλ¨ΌνΈ μ °μ΄λλ‘ κ΅¬ννμ΅λλ€.
μ΄ λ°λͺ¨λ νκ²½ 맡μ μν΄ μ¬μ νν°λ§λ μ΄λ―Έμ§ κΈ°λ° μ‘°λͺ [Lagarde and De Rousiers 2014]μ μ¬μ©ν©λλ€. μ΄ μ °μ΄λλ Mitsubaμ νλ₯ μ μ°Έμ‘°μ μκ°μ μΌλ‘ μΌμΉν©λλ€(κ·Έλ¦Ό 4 μ°Έμ‘°).
μ΄ νλ‘ν νμ μμ, RTX 2070μμ 720p ν΄μλλ‘ μ 체 νλ©΄μ μ °μ΄λ©νλ λ° νλ μλΉ μ½ 0.5msκ° μμλμμ΅λλ€. μμΈν λ΄μ©μ λΉλμ€λ₯Ό μ°Έμ‘°νμμμ€.
Unityμμμ λ λλ§
μ°λ¦¬λ μ΄ μ °μ΄λλ₯Ό Unityμ κ³ ν΄μλ λ λ νμ΄νλΌμΈ [Lagarde et al. 2018]μ 컀μ€ν ν¬μλ ν¨μ€λ‘ ν¬ν νμ΅λλ€. μ¬κΈ°μ μ°λ¦¬μ λͺ¨λΈμ μΈν°λν°λΈ νλ μ λ μ΄νΈλ‘ μ€νλλ©°, μν°μ€νΈκ° ν μ€μ²λ‘ 맀κ°λ³μλ₯Ό μμ λ‘κ² λ³κ²½ν μ μμ΅λλ€.
κ·Έλ¦Ό 1μμ μ°λ¦¬λ μ½ν λ μΈλΌλ―Ήκ³Ό λ컀 νλ©΄μ μΈκ΄μ μ¬ννμ΅λλ€. μ΄λ μλ² λμ κ±°μΉ κΈ°(μΌμͺ½) λλ κ΅΄μ λ₯ (μ€λ₯Έμͺ½)μ ν μ€μ²λ§νμ¬ μννμ΅λλ€.
κ·Έλ¦Ό 9μμλ ν‘μ Ολ₯Ό μ¬μ©νμ¬ μλ² λλ§μΌλ‘λ μ¬νν μ μλ κ³ λμ€ν¬λ‘맀ν±(goniochromatic, κ΄μ°° κ°λμ λ°λΌ μμμ΄ λ³νλ νΉμ±) ν¨κ³Όλ₯Ό μΆκ°νλ λ°©λ²μ 보μ¬μ€λλ€.
μΈ΅μ μ¬λ£μ κ²μ¦
μ°λ¦¬λ μ λ°μ΄νΈλ μΆκ°-μ΄μ€ν μκ³ λ¦¬μ¦μ Mitsuba λ λλ§ μμ§μ ꡬννμ΅λλ€. μ¬κΈ°μ μ°λ¦¬λ λ¨λ²νΈ κΈ°μ μμ 2κ°μ μ μ 체 μΈ΅μΌλ‘ ꡬμ±λ νλ©΄μ μΈκ΄μ μ¬ννμ΅λλ€. μ°λ¦¬μ λͺ¨λΈμ νλ₯ μ μ°Έμ‘°μ λΉκ΅νμΌλ©°, μ°λ¦¬μ λͺ¨λΈμ΄ μκ°μ μΌλ‘ μ°Έμ‘°μ κ°κΉλ€λ κ²μ 보μ¬μ€λλ€(κ·Έλ¦Ό 10).
8. νκ³
μκ³κ°
κ±°μΉ κΈ°κ° λ§€μ° μκ³ Ξ·<1μΈ κ²½μ°, μκ³κ°μ κ²°κ³Ό BRDFμμ λλ ·ν λΆμ°μμ±μ μμ±ν©λλ€. μ°λ¦¬κ° μ΄λ¬ν λΆν¬λ₯Ό GGX λ‘λΈλ‘ κ·Όμ¬νκ³ μκΈ° λλ¬Έμ μ΄λ₯Ό μ¬νν μ μμ΅λλ€.
μ΄ ν¨κ³Όλ λ°μ¬μ¨ R01βκ³Ό ν¬κ³Όμ¨ T01βμ μν΄ μνλμ§λ§, μ΄ κ²½μ° μ¬κ΅¬μ±μ νμ§μ ν΄λΉ ν μ΄λΈμ ν΄μλμ λ°λΌ λ¬λΌμ§λλ€.
μ΄λ°©μ±κ³Ό μ°Έμ¬ λ§€μ§
μ°λ¦¬λ λͺ¨λΈμ κ±°μΉ λ±λ°©μ± μ μ 체 μ½ν μΌλ‘ μ ννμ΅λλ€. κ·Έλ¬λ μ¬μ κ³μ°λ ν μ΄λΈμ μΆκ°μ μΈ κ±°μΉ κΈ° μ°¨μμ μΆκ°νλ κ²μ λ°©λ²μ ν΅μ¬μ λ³κ²½νμ§ μμ κ²μ λλ€.
μ°λ¦¬λ λͺ κ°μ κΈ°μ μ±λΆμ μ¬μ©νμ¬ μ΄ μ°¨μμ μ€μΌ μ μμ κ²μ΄λΌκ³ κ°μ ν©λλ€. λ λ€λ₯Έ μ ν μ¬νμ λ§€μ§ λ΄μμ λ€μ€ μ°λμ κ³ λ €νμ§ μμλ€λ κ²μ λλ€.
μ΄λ¬ν μ μ‘μ λ§μ λ‘λΈ λ°©ν₯μ μΆμ ν΄μΌ νλ©° [Randrianandrasana et al. 2021], μ΄λ μ±λ₯μ λΆμ μ μΈ μν₯μ λ―ΈμΉ©λλ€.
9. κ²°λ‘
μ°λ¦¬λ λ¨λ²νΈ κΈ°μ μμ κ±°μΉ μ μ 체 κ³λ©΄μ΄ μ½ν λκ³ ν‘μ 맀μ§λ‘ λΆλ¦¬λ μΈλΌλ―Ήκ³Ό μ μ¬ν νλ©΄μ μ€μκ°μΌλ‘ λ λλ§νκΈ° μν μλ‘μ΄ μ °μ΄λ© λͺ¨λΈμ μ μνμ΅λλ€. μ°λ¦¬λ μΈ΅ ꡬ쑰μμ λΉ μ μ‘μ μ²μ μΈ κ°μ§ λͺ¨λ©νΈμ λν μμΉμ μ°κ΅¬λ₯Ό λ°νμΌλ‘ μ΄ λͺ¨λΈμ ꡬμΆνμ΅λλ€.
λ κ°μ BRDF λ‘λΈλ‘ ꡬμ±λ μ°λ¦¬μ λͺ¨λΈμ΄ μ€μ κ°μ μ ννκ² μ¬νν¨μ 보μμ΅λλ€. μ°λ¦¬λ νμν ν μ΄λΈμ μ°¨μ μΆμλ₯Ό ν΅ν΄ κ΄λ¦¬ κ°λ₯ν ν¬κΈ°λ‘ μμΆνμ¬ μ΄ λͺ¨λΈμ μ€μκ° μ μ½μ λ§κ² μ‘°μ νμ΅λλ€. μ΄λ¬ν ν΅κ³λ₯Ό νμ©νμ¬ Belcour [2018]μ μΈ΅μ BRDF νλ μμν¬μ λ¨λ²νΈ κ³λ©΄ μ§μμ μΆκ°νμ΅λλ€. μ΄λ₯Ό ν΅ν΄ μ€μκ°μΌλ‘ 물리μ μΌλ‘ κΈ°λ°ν μΈκ΄μ λ²μλ₯Ό λν μ μκ² λμμ΅λλ€.
μ μκΆ κ΄λ ¨ μ¬ν λ°μμ μμ λ μ μλ κΈμ λλ€.
λΉλ°λ²νΈκ° ν립λλ€.