-
-
Notifications
You must be signed in to change notification settings - Fork 21.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Roughness Texture breaks Specular #33616
Comments
To add more information it appears that there are two different types of specular reflection that dont really influence each other. There is the specular reflection which is affected by the specular slider, specular mode, and gets blured by roughness. Overall the specular reflection works fine. |
I think this may be the same underlying issue as #21680 in that case specular is also way too strong on rough non-metals. Edit: actually im fairly certain this is an environment map issue. There are specular highlights from lights and from the environment map. Setting "specular_disabled" only disables the specular lobe from the lights. What you are seeing is a specular highlight that is way too strong coming from the environment map. |
I labelled this an enhancement as I was thinking that turning off IBL specular would be a new feature. But come to think of it, IBL specular shouldn't be treated any different thank regular specular. When you turn off ambient light IBL diffuse irradiance turns off, so when you turn off specular, IBL specular should turn off too. I think the reason this hasnt been added is that IBL specular is the environment reflections. So if you turn of specular you will lose reflections. I originally misunderstood this issue as being about specular reflections being too strong. For the record, the specular slider is not "how much specular" but rather how large the specular blob is. |
I think this should be added because if you turn specular to 0, I think most people would think that means no reflection of any kind. This is also the behavior in blender as well. Turning specular off disables all reflections. Although in blender setting specular to 0 does not affect diffuse light. So if we could get the above 2 behaviors that would be awesome. Thanks once again for looking into this :) |
@NHodgesVFX The Right now I am making a PR that turns off IBL specular when |
Maybe looking into other engines would be a good starting point, specifically, unity and ue4. I'll see if I can do that tomorrow |
@NHodgesVFX as clayjohn mentions, the specular value is somewhat misleading, as it is the specular reflectivity along the facing (not grazing) normal direction. The default 0.5 gives you 4% reflectivity and the 0-1 range goes from 0-8% reflection only along the facing direction. Honestly I don't really ever touch this, as the whole idea of PBR is that it cheats to give a good average of 4% (0.5 specular) that works with almost all dieletric(non-metallic) materials. You could lower it a bit for skin or water and ice, but mostly you don't want to touch it! Some useful links: |
ok, so I have a question. In Blender using evvee with the principled shader changing specular to 0 also affects reflections. However, in marmoset changing specular does not affect reflections, similar to godot. If you change the Fresnel slider in marmoset it affects reflections. So it appears I was trying to customize the Fresnel. So my question does blender's principled material couple the specular with the Fresnel, effectively changing specular to 0 also changes Fresnel to 0? |
This was auto-closed by #33668 but based on the above discussion, I guess it should stay open? |
@akien-mga yes it should stay open for now, depending on the resulting discussion above i might close this issue and open a new one. Thanks :) |
@NHodgesVFX Can you reproduce this in 3.2.2beta2 or the |
I think now that im looking at this again, this is more of a feature request. I guess the whole point of this issue was to make note there is no way to disable environment reflections on a per material basis. I might be forgetting something though. Thanks for reminding me about about this PR. Im going to close it as it should probably be rewritten to narrow the issue down more. |
@NHodgesVFX reopening. Reduz and I already discussed how to make this work. It is on my TODO list and I prefer to keep the issue open until I implement it. |
Godot version:
3.2 Beta
OS/device including version:
Windows 64 bit
Issue description:
EDIT
Apparently, anything other then a value of 1 on roughness makes it impossible to turn specular off. No texture is needed. below you can see a Eevee and Godot comparison, both use the same hdri, its at a different angle though.
Godot:
Blender 2.8:
Adding a roughness texture makes it impossible to turn off specular. Not sure if this is a bug or intended but when using blender's eevee turning off specular, even if a rougness map is added disables specular. Also this happens with panorama sky or procedural sky, so I assume it affects all sky modes.
Steps to reproduce:
Create a object, add a material and give it a roughness texture. try turning off specular in metallic and in the parameters setting specular to disabled. Notice there is still specular.
Minimal reproduction project:
I added an hdr as it makes it easier to see
RoughnessIssue.zip
The text was updated successfully, but these errors were encountered: