Skip to content

add bent normals-based IBL anisotropy rendering.#2871

Open
bhouston wants to merge 1 commit intoAcademySoftwareFoundation:mainfrom
bhouston:bent_normal_anisotropy
Open

add bent normals-based IBL anisotropy rendering.#2871
bhouston wants to merge 1 commit intoAcademySoftwareFoundation:mainfrom
bhouston:bent_normal_anisotropy

Conversation

@bhouston
Copy link
Copy Markdown

@bhouston bhouston commented Apr 22, 2026

Using my MaterialX fidelity tool, https://materialx-fidelity.ben3d.ca, I noticed that the MaterialXView tool does not support anisotropy in IBL lighting. I suspect this is because it is attempting to be real-time, and thus does not want to do multiple samples in a biased lobe. It turns out there is a way to do effective anisotropy sampling using IBL at real-time via a single sample using a technique called bent normals. This method has been adopted by Filament, and Three.js at least. It is documented here:

https://google.github.io/filament/Filament.md.html#lighting/imagebasedlights/anisotropy

I have implemented that in this PR.

It converted this pre-bent normals image:

materialxview

To this result from MaterialXView that now matches what Three.js produces:

materialxview-2

I am using this material: https://materialx-fidelity.ben3d.ca/api/asset/open_pbr_surface/aluminum_brushed.mtlx.zip

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant