Skip to content

Improve layering in the solari BRDF#24243

Open
dylansechet wants to merge 1 commit into
bevyengine:mainfrom
dylansechet:solari_brdf_layering
Open

Improve layering in the solari BRDF#24243
dylansechet wants to merge 1 commit into
bevyengine:mainfrom
dylansechet:solari_brdf_layering

Conversation

@dylansechet
Copy link
Copy Markdown
Contributor

@dylansechet dylansechet commented May 11, 2026

Objective

Improve the solari BRDF. Split off from #23818.

Solution

The layering approach used in the current brdf to distribute energy between the specular and diffuse lobes doesn't work, for reasons I honestly don't quite understand.

The suggested changes are roughly inspired by OpenPBR's equation 42. We're not using EON though, so this uses Filament's multiscattering correction instead of equation 39.
This formulation has the downside of breaking reciprocity. As far as I can tell the path tracer is unidirectional, so this shouldn't cause issues.


Showcase

White furnace

Main:
main

This PR:
layering


PICA PICA pathtraced

animated

Main:
main

This PR:
pr

@kfc35 kfc35 added A-Rendering Drawing game state to the screen S-Needs-Review Needs reviewer attention (from anyone!) to move forward labels May 11, 2026
@github-project-automation github-project-automation Bot moved this to Needs SME Triage in Rendering May 11, 2026
@kfc35 kfc35 added the D-Shaders This code uses GPU shader languages label May 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-Rendering Drawing game state to the screen D-Shaders This code uses GPU shader languages S-Needs-Review Needs reviewer attention (from anyone!) to move forward

Projects

Status: Needs SME Triage

Development

Successfully merging this pull request may close these issues.

2 participants