Announcement

Collapse
No announcement yet.

Rough Specular reduces specularity amount?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Rough Specular reduces specularity amount?

    Hey folk, doing an experiment here, and I'm looking for some feedback.

    Check out the following photos of a dielectric, Picture 1 is a series of red balls that are reflective and with high glossiness (low roughness).



    The IOR of the surface is approx 1.3, notice how the sky reflection is stronger at the edge and less in the middle, this is a perfect example of the fresnel effect.

    Now I took sandpaper and made one of the balls rough.



    Notice how the reflection of the light is now blurry.



    Now lets bring it outside, notice how we can still see a fresnel effect on the surface, with the edge going brighter than the center.









    However, note the colors I picked from this photo. On the glossy ball, you get a bright fresnel edge. On the rough ball, the fresnel edge is not as bright.







    I assume this is because an identical amount of light energy is hitting each ball. But the rough ball is spreading that energy over a larger surface (hence blurry reflections), so you have less energy in a specific spot, like spreading the same amount of butter over a larger piece of bread, the butter will be thinner.

    Here's a similar setup in vray, with 3 spheres, one with a Glossiness of 1, one with a Glossiness of 0.7 and one with a Glossiness of 0.3. Notice how the amount of energy seems to remain stable.



    So if I want more realistic values from vray, should I reduce the overall reflectivity as the surface gets rougher? Would it be possible to get an automatic formula added to the material to do this? Are my results incorrect? Is there already a more automated way of doing this I don't know about?

    Any advice or thoughts are appreciated.

    - Neil

  • #2
    What you're looking for is 'rough Fresnel' and from what I know Chaosgroup is looking into this, correct me if I'm wrong.

    In the meantime check out this reflection shader I wrote that does exactly that:
    http://www.rensheeren.com/blog/osl-reflector/
    http://forums.chaosgroup.com/showthr...r-your-perusal

    Click image for larger version

Name:	reflector_sphere1_flt.jpg
Views:	2
Size:	9.0 KB
ID:	863081
    Rens Heeren
    Generalist
    WEBSITE - IMDB - LINKEDIN - OSL SHADERS

    Comment


    • #3
      So to explain, it takes the front facing reflection value, raises it slightly (rgh_darken_brighten param), and then blends between that value and the original Fresnel falloff depending on roughness. Total roughness means a uniform reflection colour, no Fresnel falloff.
      This way you keep the overall reflection level, it would look wrong if it would be a simple multiply on the whole reflection falloff as the falloff needs to get spread out into a flat uniform non-angle-dependent value the rougher it gets.
      Rens Heeren
      Generalist
      WEBSITE - IMDB - LINKEDIN - OSL SHADERS

      Comment


      • #4
        To do this yourself you can blend between a falloff map and a constant (VRay)color. You need to get the correct value every time you change IOR though. So for IOR 1.5 this would be a value of 0.04. Plastic would have an IOR of 1.4-1.5 if I'm not mistaken. The blend amount depends on the roughness.
        Then plug that into the reflection input with Fresnel disabled in the mat.
        Rens Heeren
        Generalist
        WEBSITE - IMDB - LINKEDIN - OSL SHADERS

        Comment


        • #5
          Thanks for the info. However, I'm not 100% convinced that as roughness approaches 1, the fresnel effect flattens out. At least from the real world test I did (and I admit, my test is by no means scientific or in a controlled environment), it seems that a rather rough surface still shows a pronounced fresnel edge effect, even if that effect is multiplied down. Are there any papers that you know of showing a similar experiment in a more controlled environment?

          - Neil

          Comment


          • #6
            It's not that the fresnel effect flattens out, it's more that you've less faces on the surface perpendicular to your viewing angle. What's happened is the rougness / microfacet equation that most people are using isn't good enough anymore. The shading doesn't fully model a rough surface, it just adds in some biases to try and cull out reflection rays that would have been masked by bumps in front of the surfaces facing towards camera. There's even some new shading models that are trying to add the lost brightness back into frosted surfaces - energy that bounces from a rough surface back into itself becomes a small amount of sss and should brighten up the surface too.

            In your photo example, on the glossy ball all of the edge faces are at 90 degrees so you'll get full strength fresnel, on the roughened ball, you've broken the surface so not all of it of it is at 90 degrees anymore, some of it is facing more towards you and those parts are of course getting less reflection than the 90 degree bits. I don't think the glossy reflection in vray models this energy loss, it's maybe more like just spreading out the reflection ray vectors in a fan from the original reflection normal and just averaging in a larger portion of the scene?

            Comment


            • #7
              Here's a simple max scene. Both renders use the same 200cm sphere, red material with glossy at 1 and default fresnel. There's a dome light in full spherical mode set to mult 1 and white. The only difference is the left sphere was rendered with a noise modifier set to 1cm, you can see the roughened edges in the top right viewport showing the wobbling of the normals. When we render this one, some of the faces are pointing more back at us than before so they're getting a weaker reflection with fresnel.

              Click image for larger version

Name:	glossy_vs_roughness_01.jpg
Views:	1
Size:	480.4 KB
ID:	863089

              Comment


              • #8
                For a more accurate implementation of this, check out the VRayALMtl material which does glossy Fresnel by default (in fact, there is no option to turn it off). A side effect is that you can no longer map the Fresnel effect with a Falloff texture though. I don't know how important this is:
                https://github.com/ChaosGroup/vray_al_surface/releases

                Best regards,
                Vlado
                I only act like I know everything, Rogers.

                Comment


                • #9
                  Thanks for the render Joe, talking to a bunch of people, I have drawn the following conclusions:

                  the rougher the surface..

                  - the blurrier the reflection
                  - the reflection also dims
                  - the fresnel edge effect is still present

                  But the amount of dimming is a complex phenomena that's affected by...

                  - the phenomena you're describing, more tiny facets facing always from the viewer at the edges
                  - self shadowing between the rough microfacets
                  - because the reflection is blurred (stretched out), the reflection at a given point is darker to retain energy conservation
                  - the multiple scattering brightens the surface up again a bit

                  And there's currently no easy formula to take into account all of those factors. Although we have plenty if pieces to this equation. Sound about right?

                  - Neil

                  Comment


                  • #10
                    Cool Vlado. DO you think this will eventually get wrapped into the standard Vray Material?

                    - Neil

                    Comment


                    • #11
                      Originally posted by soulburn3d View Post
                      Cool Vlado. DO you think this will eventually get wrapped into the standard Vray Material
                      Yes, it's on the "to do" list. In the meantime I'm curious to hear any feedback for the implementation in the AL materal.

                      Best regards,
                      Vlado
                      I only act like I know everything, Rogers.

                      Comment


                      • #12
                        Originally posted by soulburn3d View Post
                        Thanks for the render Joe, talking to a bunch of people, I have drawn the following conclusions:

                        the rougher the surface..

                        - the blurrier the reflection
                        - the reflection also dims
                        - the fresnel edge effect is still present
                        Yep - glossiness is a function of surface polish. Fresnel is always present since whether a rough or smooth surface, the object is still made up of the same material with the same material properties. The reflection dims due to less of it pointing back at you and probably some of the energy that would have reflected on a smooth surface being shot back into the material (sss)



                        Originally posted by soulburn3d View Post
                        But the amount of dimming is a complex phenomena that's affected by...

                        - the phenomena you're describing, more tiny facets facing always from the viewer at the edges
                        - self shadowing between the rough microfacets
                        - because the reflection is blurred (stretched out), the reflection at a given point is darker to retain energy conservation
                        - the multiple scattering brightens the surface up again a bit

                        And there's currently no easy formula to take into account all of those factors. Although we have plenty if pieces to this equation. Sound about right?

                        - Neil
                        Yep indeed - In this year's physically based rendering talk at siggraph (https://www.youtube.com/watch?v=zs0oYjwjNEo) they mentioned this - there's a simple bias value added in to deal with some of this energy stuff in shading to try and account for the self shadowing but they're looking for a better one. That said this wasn't a chaosgroup talk so Vlado's probably got ideas

                        Comment


                        • #13
                          I guess for Vray to simulate this effect is just a matter of it's Fresnel to "see" the microfacets of the BRDF. The downside though, as Vlado said we can no longer use a Falloff texture in Fresnel mode to mask reflections. A simple way to test this is creating a sphere with a black reflective material with a low IOR and a white background. As roughness increases, the color becomes more and more flat (but never totally flat, for the reasons described above).

                          Some renderers I tested which seem to calculate the fresnel term per microfacet include: IRay, ART, Redshift, FStorm and Maxwell. It's interesting to note that Corona, Octane and Cycles are like Vray. Also, haven't experimented much but looks like the "flattening" of the fresnel curve is not consistent between renderers. An interesting aspect of Iray and ART is that their BRDF custom curves from Arch & Design or Physical Material are also calculated per microfacet, as the image from ART renderer shows:

                          left roughness:0 | right: roughness:1
                          Click image for larger version

Name:	Fresnel.jpg
Views:	1
Size:	27.6 KB
ID:	863115

                          -Eugenio
                          Last edited by Midiaeffects; 16-08-2016, 10:06 PM.

                          Comment


                          • #14
                            Or if we still want to use fresnel, perhaps we just raise the facing colour a tiny bit higher than normal and lower the edge colour quite a bit so there's just less difference between the front on and edge strength of the reflections?

                            What type of controls are used in Iray to set how rough the microfaceting is? Do they use units of measurement to set how big the high and low value of the facets are?

                            Comment


                            • #15
                              Hi. Last week i made a quick test to compare the diferences on masking/shadowing of 5 diferent BRDF: Vray GGX, Vray GGX + OSL from Rens, Octane, Corona and FStorm. The curves on the botton represents the reflectivity. Maybe this helps to have some visual reference. .

                              Vray GGX
                              Click image for larger version

Name:	Vray_GGX.jpg
Views:	1
Size:	468.6 KB
ID:	863118

                              Vray GGX + OSL from Rens
                              Click image for larger version

Name:	Vray_OSL.jpg
Views:	1
Size:	475.4 KB
ID:	863119

                              Corona
                              Click image for larger version

Name:	Corona.jpg
Views:	1
Size:	472.9 KB
ID:	863120

                              Octane
                              Click image for larger version

Name:	Octane.jpg
Views:	1
Size:	467.2 KB
ID:	863121

                              Fstorm
                              Click image for larger version

Name:	FStorm.jpg
Views:	1
Size:	469.3 KB
ID:	863122

                              Link to all 4K HR images to compare:
                              https://www.flickr.com/photos/adanmq...57672161857525

                              Best.
                              My Spanish tutorial channel: https://www.youtube.com/adanmq
                              Instagram: https://www.instagram.com/3dcollective/

                              Comment

                              Working...
                              X