Using MixMaterial with PBR & Lightmaps

Hi, I would like to know how I could use the MixMaterial (MixMaterial - Babylon.js Documentation) with PBR and also add lightmaps. After having trials with the mixmaterial it does not seem I can use it with PBR settings and add lightmaps to it. Are they any alternative solutions to my issue ?

Hey unfortunately MixMaterial (which is a material) cannot be used with PBR (which is also a material). The MixMaterial is designed to mix several diffuse textures but not to interact with another material

Hey @Deltakosh, thanks for the clarifications! Is there a way to mix several albedo textures with PBR materials ? Just trying to get myself in the right direction!

You could try to use the nodeMaterial to mix your albedo textures.

Totally the right answer here

Here are examples recreating the PBR:
https://doc.babylonjs.com/how_to/node_material#creating-pbr-materials

You can hack them to mix multiple albedo textures

Thanks again for your help @_Flomotion & @Deltakosh. I am almost there!

I have recreated the mix material with PBR via the node material editor.

https://nme.babylonjs.com/#NMMGW3#1

However, the material does not work once imported in the BabylonJS playground. The material appears black. I have played with the different settings/nodes for a while now - I can only make it work when I remove the PBR block (ColorMerger connected straight to Fragment Output).

https://www.babylonjs-playground.com/#YBV8PL#1

(Note, I am using the ColorMerger to convert ReplaceColor RGB to RGBA - it is yet the only way I have found. It might be the issue ? )

That’s strange indeed. I tried to load the material from the PG using
BABYLON.NodeMaterial.ParseFromSnippetAsync(“NMMGW3#1”, scene).then((nodeMaterial) => {
sphere.material = nodeMaterial;
});
but same result. Let’s hope @Deltakosh can do his magic…

1 Like

Pinging @Evgeni_Popov to see if this could come to not setting the env texture?

You need some lights in your scene:

https://www.babylonjs-playground.com/#YBV8PL#2

You can also use an environment texture, but you must use the Reflection block in the NME for that to work:

Material: https://nme.babylonjs.com/#NMMGW3#3
PG: https://www.babylonjs-playground.com/#YBV8PL#4

[EDIT]
My mistake, I did not see you created a point light, but the default intensity (1) is way too low for PBR to see something.
[/EDIT]

2 Likes