Making nodeMaterial look the same as PBR

It must not be so hard to do. But I can’t get it done.
I try to make the nodeMaterial to look the same as the PBR material
https://www.babylonjs-playground.com/#AKEGV2#1

Things go wrong with the reflection settings. But all I know to change is the reflection color in the nodematerial. How can I reduce the reflection strength in the nodematerial?
https://nme.babylonjs.com/#IFJ86Q#23

Funny, but this is a thing I stumbled upon aswell.

To the BabylonJS NME Team: is it possible to… have something like a “import Material” button where you select the Material you want to have as a base that is already build-in BabylonJS?

I had a question about the shadow color, to customize the colors of the dropped shadow. The solution was to have a NodeMaterial that uses a color to calculate a new shadow color that’s cast on itself. So this would require to always use this custom NodeMaterial. But I want to have the benefits of a PBR Material and not just the custom shadow color.

So this addition to the NME, to import an existing type of Material (Standard, PBR, …) would be AWESOME.

You have a list of examples in the NME doc:

https://doc.babylonjs.com/how_to/node_material#node-material-examples

And this PG proves that you have the same rendering with the built-in PBR material and NME material:

https://playground.babylonjs.com/#D8AK3Z#8

1 Like

this is epic, thank you…

@_Flomotion Your problem is that a .dds texture is not a prefiltered texture, so you should not use it in the nme because it won’t convert it.

Use the environment.env file instead:

Material: https://nme.babylonjs.com/#IFJ86Q#26
PG: https://www.babylonjs-playground.com/#AKEGV2#2

[EDIT]
I’m mistaken of course, the dds textures can be prefiltered. However, it seems environment.dds is not, as using environment.env instead in the NME does work… Or maybe there’s something escaping me.
[/EDIT]

Thanks for your replies. I did see the PG that shows the same rendering output. So it must be possible. But I can not recreate it.
I also can not share any of my textures in the PG. That’s why I set it up using the available textures. And I could not find a .env.
But unfortunately in the PG you made, the material display is still very different. The standard PBR material is brighter/ has more contrast. I’m hoping that I can find the setting for the nodeMaterial to really recreate the look.

My mistake, I did not use the right environment file in my NME material.

Anyway, it’s easier to just not set a reflection texture in the NME material: in that case, the system will use the environment texture defined at the scene level:

Material: https://nme.babylonjs.com/#IFJ86Q#30
PG: https://www.babylonjs-playground.com/#AKEGV2#3 => On the left: NME, on the right: PBRMaterial

What you must not forget is to set “Convert to linear space” to “on” for your albedo texture as the PBR pipeline is linear:
image

Thank you very much. Really glad to know!
:slight_smile: