Print at Dec 20, 2025, 1:37:57 PM

Posted by scjo at Nov 3, 2024, 1:20:08 AM
Re: Chromium / Stainless / Metal in General
Background: Shininess in reality is a blurred reflection, similar to looking at a lamp through slightly frosted glass.

Illustration: If a point light source shines to the tip of a dirty shoe, you see hardly any highlight - the incoming light is widely scattered. Then you wax the shoe but don't polish it: a wide, not too bright highlight appears - more light is kept around the reflection angle. Shoe polished: highlight intensifies and shrinks - even narrower scattering, but no clear reflection yet! Chrome plated shoe sick: the light source gets clearly mirrored (albeit shrunk due to the curvature).

With simple renderers, this is mathematically modelled by a so-called specular exponent. Every curve in the diagram shows for a given exponent Ns (see legend) how much light is scattered how far away from the reflection angle.

Ns = 0: perfectly diffuse reflection
Ns = 1: cosine function
Ns = 128: nominal maximum written by SH3D
Ns = 1000: recommended maximum in *.mtl files (SH3D accepts them)
Ns = ∞: directional reflection

The steeper the slope, the shinier the surface. But obviously, with any finite Ns, some light will always deviate more or less from the reflection angle.

Test with SunFlow as well as yafaray
Render the scene with different shininess values of the large box, and with the large box set to mirror.
Compare the difference images of different shiny renders to the perfectly matte (shininess = 0) render

Expectation: mirrored object is blurred to a degree inverse to shininess. I.e., infinite shininess = sharp; finite shininess = blurred; zero shininess = completely dissolved.

Observation
Changing the shininess in SH3D has two consequences.
1. The result image is always a weighted blend of diffuse and clear reflection. The Shininess controls the blending weight, nothing else. Like if you overlay an image through a clear glass pane with one of a sheet of paper. No scattering takes place.
2. SH3D writes the shininess to the Ns value upon export of *.obj/*.mtl files.

Conclusion
  • SH3D approximates shininess by weighted blending of clear reflection into the diffuse image. For low specularities this is an acceptable compromise in favour of software maintainability and processing load. SH3D limits it to 128 which is sensible.
  • All over SH3D, no scattering is implemented, neither with transmission.
  • Varnish or metallic roughness demand a high specular exponent. Therefore they can not be modelled straight forward but only resembled or made up by post-processing the render result(s).

----------------------------------------
Cheers - Joe //