Godot: Default spatial material has too extreme parameters

Created on 15 Mar 2019  路  5Comments  路  Source: godotengine/godot

I think that the default values of the spatial material are a bit too extreme.

Sice Godot uses PBR they should also be somewhat physically correct. Currently it uses a perfectly diffuse material (roughness 1.0) with a color that reflects all incoming light (albedo 1.0, 1.0, 1.0) which both are not very realistic.

I think a medium to high roughness material (0.5 to 0.8) should be used with a gray to light gray albedo (around 0.5 to 0.8 aswell).

discussion enhancement rendering usability

Most helpful comment

I actually didn't think about how it would be annoying having to reset the parameters when adding textures.

I only noticed that, when blocking out a level without materials, the very bright default color tends to throw you off when adjusting new materials because "realistic" ones would look too dark in comparison.

Here's a screenshot of the current default against a photoscan material:
grafik

And this is a bit closer to what I had in mind (raw albedo of 0.6 in this case):
grafik

Edit: maybe a viable solution would be allowing the user to define a default material which is automatically set when inserting MeshInstances or define one similar to the default environment, which is used until a material is specified.

All 5 comments

The upside of having the roughness set to 1 by default is that it works out of the box when you define a roughness texture, which isn't the case with values below 1. (Perhaps roughness could be set to 1 when assigning a roughness texture, but that automatic change might be overlooked by people.)

Could someone make a few screenshots of the default material (and proposed change for comparison) in various situations with different skies? :slightly_smiling_face:

I actually didn't think about how it would be annoying having to reset the parameters when adding textures.

I only noticed that, when blocking out a level without materials, the very bright default color tends to throw you off when adjusting new materials because "realistic" ones would look too dark in comparison.

Here's a screenshot of the current default against a photoscan material:
grafik

And this is a bit closer to what I had in mind (raw albedo of 0.6 in this case):
grafik

Edit: maybe a viable solution would be allowing the user to define a default material which is automatically set when inserting MeshInstances or define one similar to the default environment, which is used until a material is specified.

Calinou mentioned concerns that setting the Abedo texture then results in a darkened model if the default material is not white.

If the user sets an Albedo texture, in most cases the user would not want the material to have a color.

So maybe the material color could automatically be set to while when the user assigns an Albedo texture (which a checkbox somewhere to allow the user to disable this auto-behaviour)?

As an unfortunate sideeffect, the darker material color seems to make the incredibly ugly and unrealistic Auto Ambient Occlusion effect even more visible. Maybe this AAO could be significantly reduced as well by default.
As soon as there is a light in the scene this AAO is the opposite of helpful. In your screenshot for instance, the area lit by the directional light should get brighter if anything due to light bouncing, but definitely not darker. This is such a dated look. :(
ugly_auto_aoc

@golddotasksquestions By default, SSAO is only visible in indirect lighting. I guess the screenshot set the had the Light Affect property set above 0, which makes it visible in direct lighting as well (the default is 0).

Was this page helpful?
0 / 5 - 0 ratings