OpenPBR icon indicating copy to clipboard operation
OpenPBR copied to clipboard

Fuzz normal when layered on top of coat

Open brechtvl opened this issue 2 years ago • 3 comments

Coat uses geometry_coat_normal, while other layers including fuzz use geometry_normal. Now that fuzz is on top of coat, this may no longer be correct.

Consider a material with a bumpy base layer, and a smooth coat layer on top that fills in the bumps. The fuzz should then have a smooth normal as well?

A solution could be to blend geometry_normal and geometry_coat_normal with coat_weight, and use that as the fuzz normal?

brechtvl avatar Oct 05 '23 14:10 brechtvl

Thank you for pointing this out.

We could describe that the fuzz uses the normal of the layer underneath. In the case of partial coverage, that would be a blend of two fuzz lobes using normal from the base and coat layers. It would be expensive to evaluate, but implementations could approximate by "blending" normals.

virtualzavie avatar Oct 05 '23 17:10 virtualzavie

Pushed a PR for this: https://github.com/AcademySoftwareFoundation/OpenPBR/pull/117

portsmouth avatar Oct 12 '23 16:10 portsmouth

Can be closed, addressed in https://github.com/AcademySoftwareFoundation/OpenPBR/pull/117

portsmouth avatar Feb 20 '24 17:02 portsmouth