Hi, I find that the default metallic value of PBRMaterial is 1 which is unusual and not documented.
In professional PBR workflow, the metalness of PBR is usually assumed to be 0. That includes three.js, Unity, Blender, Substance, and other 3D software.
I guess the default metallic value of 1 in Babylon.js is from glTF Specification. But it breaks the PBR workflow tradition and means that each metallic value in PBRMaterial should be manually set to 0. It is artist-unfriendly and will confuse the users who try Babylon.js for the first time. Some users who have no further knowledge of this may even think that this is the capability problem of the rendering in Babylon.js (but in fact Babylon.js can reproduce nearly all the common rendering effects in Unity) and choose other alternatives.
Well, in a way I agree. But there’s this thingy with backwards compatibility. Obviously, when creating new methods/parameters a choice has to be made. BJS made the choice of setting the metallic to 0 by default (and I belive the roughness to 1, if I recall correctly). For whatever reason I know nothing about.
But this is also true for many other things (lots of other things). In fact, many apps and engines do not follow a single ‘convention’ speaking about 3D. In fact, this convention doesn’t even really exist throughout all big actors. Meaning that, for us, eng or designers we have to learn for each Experiment, fail, fix and try again (my favorite ) Problem is if today we were to request to change these defaults it would be a breaking change for anyone who did not set new from the defaults.
Honestly, I know I am kinda ‘old-school’ , but no matter the defaults, I ALWAYS check on these when creating or importing a material. And even if you do it procedural or set-up a pipeline, once you know about it, you can make the necessary adjustments.
So, in fine, yes, I’m sort of ‘in-between’ (somehow wanting to upvote this or leave it aside )… May be this would be a thing to consider for version X ?… since apparently, version X will have to undergo some cleaning and include a number of ‘breaking changes’ .
Of course, my opinion only and meanwhile, have an awesome day
Indeed. Just saw that. @yar2001 May we just ask you to kindly post only a single topic for everything related? It makes it clearer for the Team and the community to follow and we also want to keep some ‘order’ in the forum. And this particularly true, for anything that’s in fact a Feature requests … which I believe it is. Reason why I allowed myself to edit your post to add it to this category.
May we just ask you to kindly post only a single topic for everything related?
OK, the origin post is about ambientColor and I am worry that other user who met this problem may not be googled to it.
Well, in a way I agree. But there’s this thingy with backwards compatibility. Obviously, when creating new methods/parameters a choice has to be made. BJS made the choice of setting the metallic to 0 by default (and I belive the roughness to 1, if I recall correctly). For whatever reason I know nothing about.
Well, I guess this is the decision Babylon.js to make. Improving the behavior in a major release may be a good choice. Or something called artist mode with one code line that will make the rendering as best as it can, just like the Unity default scene. I’m just delivering this information to make sure that someone notices the problem exists.
Honestly, I know I am kinda ‘old-school’ , but no matter the defaults, I ALWAYS check on these when creating or importing a material.
You are right. Checking on these default parameters is useful. This may be the key to replicating similar PBR renderings across different 3D platforms.
However, I do think setting the metallic value to 1 by default confuses first-time users. When people make technology decisions, they may not delve deeply into the knowledge of a framework, and first attempts will determine their impression and subsequent investment plans. So I hope Babylon.js and the Web will make the best impression possible for them. From what I know so far, Web can have the 3D rendering quality as best as native, but it lacks attention and investment from the game industry, especially from professional PBR workflow artists.
Anyway, thank you for your opinion, they are valuable! Have a nice day