AcademySoftwareFoundation / AcademySoftwareFoundation/OpenPBR

MaterialX: support thin-walled dielectric

Open
#237 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
CSS
Stars
793
Forks
44
PR merge metrics
No merged PRs in 30d

Description

In OpenPBR's thin walled mode, we describe the behavior of the base dielectric as follows:

>The translucent-base slab can be considered an infinitesimally thin sheet of dielectric (absorbing but non-scattering), with the BSDF fdielectric on both sides. A ladder of inter-reflections occurs inside this slab producing a reflected lobe and un-deflected refracted lobe. The transmission_color can be assumed to give the transmittance through the thin sheet at normal incidence (due to absorption). In the smooth case the BRDF and BTDF of this sheet can be solved exactly by summing over a geometrical series of terms containing Fresnel and absorption factors, and this can be extended to a good approximation of the rough case by appropriately roughening the transmission lobe (as described in [Kulla2017]). This model of thin-walled glass is a cheaper, much more convenient way to render windows than a finite thickness non-thin-walled mesh.

The "Revisiting Physically Based Shading at Imageworks" [notes](https://blog.selfshadow.com/publications/s2017-shading-course/#course_content) from Kulla and Conty describe their implementation of this:

![image](https://github.com/user-attachments/assets/1281cb67-b06e-42a6-ad62-efd0146b1d59)
![image](https://github.com/user-attachments/assets/9e174604-7077-4aae-9d08-ac87889c6f08)

This is implemented natively in Arnold.

It is not currently available in MaterialX it seems. So thin-walled glass is a missing feature currently in the MaterialX implementation.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing OpenPBR's thin-walled mode description and the linked Kulla and Conty shading notes, then inspect the MaterialX implementation to identify where dielectric transmission is defined. Done means the missing thin-walled dielectric behavior is supported in MaterialX with the reflected and un-deflected refracted lobes described in the issue.

Written by the indexing model from the issue text.

Assessment

Domain
computer-graphics
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.