Announcement

Collapse
No announcement yet.

Questions about glossiness

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

  • Questions about glossiness

    Hello

    First of all, what exactly does glossiness do? Since it is a number between 0 and 1 where 0 is maximum scattering and 1 is minimum my guess was that glossiness = cos(a_r) where a_r is the maximum sample angle between the reflection vector and the sample vector?

    Second, is it possible to render the glossiness value as a render element?

    Thanks in advance

  • #2
    for the second answer, yes you can render glossy as an element. In vray 2.15 (newer then 2.0) there is a vrayMtlReflectGlossiness and alike where the pure glossy value of a shader is produced.
    Dmitry Vinnik
    Silhouette Images Inc.
    ShowReel:
    https://www.youtube.com/watch?v=qxSJlvSwAhA
    https://www.linkedin.com/in/dmitry-v...-identity-name

    Comment


    • #3
      for the second answer, yes you can render glossy as an element. In vray 2.15 (newer then 2.0) there is a vrayMtlReflectGlossiness and alike where the pure glossy value of a shader is produced.
      Thank you for your reply! That explains why I couldn't find it. I'm using 2.10. You have been very helpful .

      Comment


      • #4
        Where is this 2.15 version ? Can't find it in download site section, last one is still 2.10.01

        Comment


        • #5
          Dmitry is part of the beta testers is my geuss, which means they have access to new versions before anybody else
          Kind Regards,
          Morne

          Comment


          • #6
            Hello again

            I tried searching the forums for rules regarding whether I should create a new thread or bump this old one but I couldn't find anything so I decided to bump this one. One of my questions remained unanswered and I would really like to know what exactly glossiness is. After reading up on glossy reflections in "Raytracing from the Ground Up" it appears that the distribution of sample rays depends on the BRDF of the material. This appears to be consistent with the way VRay handles it as the glossy reflection changes when the BRDF changes. I started out with using Phong because it is simple and I wanted to verify my solution by comparing it to VRay. The problem is that Phong does not use a "glossiness" value between 0 and 1 but rather a shininess value between 1 and infinity such that the sample distribution is determined by cos(phi)^shininess around the reflection vector. I rendered a bunch of different images using both my solution and VRay and they look very similar but it's hard to determine whether or not they match as I don't know how glossiness relates to shininess (if at all).

            Thanks in advance

            Comment


            • #7
              It sounds like you're trying to re-invent the wheel a bit here. Just go with what looks good to you
              Kind Regards,
              Morne

              Comment


              • #8
                Originally posted by DVP3D View Post
                It sounds like you're trying to re-invent the wheel a bit here. Just go with what looks good to you
                Just to clarify, this is part of a school project in which I am attempting to approximate ray traced reflections in screen space. The reason I need to know this is in order to have some "ground truth" to compare my solution to.

                Thanks in advance

                Comment


                • #9
                  If i am not mistaken the real glossiness is highly dependent on the brdf used. So besides the max and min values the distribution also has a high impact on the visual result, no?

                  brdfsmaplers.h has a few bits of information on the different brdf implementations.

                  Comment


                  • #10
                    Originally posted by instinct View Post
                    If i am not mistaken the real glossiness is highly dependent on the brdf used. So besides the max and min values the distribution also has a high impact on the visual result, no?

                    brdfsmaplers.h has a few bits of information on the different brdf implementations.
                    Yes. I tried using Phong and distributing the rays around the reflection ray and got very similar results to VRay. I also tried using Blinn and distributing the rays around the half vector and again got similar results to VRay. The problem is that the shininess values I chose for my solution are arbitrary and chosen based solely on testing and guessing. In order to make a direct comparisson I need to know how glossiness affects the distribution of rays. It seems that 0 glossiness -> 1 shininess and 1 glossiness -> infinity shininess which suggests that if glossiness is simply translated to shininess at some point it is something like: shininess = 1/(1-glossiness) but I have no way to be sure.

                    Thanks in advance

                    Edit: Also, being still somewhat new to VRay, what is "brdfsamplers.h" and where can I find it?

                    Comment


                    • #11
                      Hey there,

                      by your last reply i was guessing you would be doing some coding and looked into the sdk already. It is one of VRaySDKs header files and is installed with vray (e.g. C:\Program Files\Chaos Group\V-Ray\3dsmax 2011 for x64\include)

                      Regards,
                      Thorsten

                      Comment


                      • #12
                        Originally posted by Brunstgnegg View Post
                        It seems that 0 glossiness -> 1 shininess and 1 glossiness -> infinity shininess which suggests that if glossiness is simply translated to shininess at some point it is something like: shininess = 1/(1-glossiness) but I have no way to be sure.
                        V-Ray uses the following formula to covert the glossines from [0,1) to [0, +inf) - which is then used as the Phong/Blinn exponents directly:
                        Code:
                        float reflectGlossy(float k) { return 1.0f/powf(1.0f-k, 3.5f)-1.0f; }
                        Best regards,
                        Vlado
                        I only act like I know everything, Rogers.

                        Comment

                        Working...
                        X