Wrong node material when 'compute bones with shaders' turning on

If you set node material to a skeleton mesh, when ‘compute bones with shaders’ turning on, the node material is wrong.
If I understand correctly, turning off ‘compute bones with shaders’ will cause performance problem especially with complex animations on mobile device.
https://playground.babylonjs.com/#92Y727#146

Adding @Evgeni_Popov our master NME and Shader friend :slight_smile:

1 Like

You must use the Bones block in your node material if you intend to use the material with a mesh that has bones:

https://playground.babylonjs.com/#92Y727#147

Thx for your response!
Though adding bones works in this playground, it can’t work in my own glb model.
I use the node material you create above.
If turning on ‘compute bones using shaders’, it will mess up:

If turning off, everything works fine:

I can send you my playground with assets if you need it.

Yes, creating a playground with your asset would help.

1 Like

You need to apply a different instance of the node material to each of your meshes as they are not using the same skeleton/bones.

Simply do:

body.material = nodeMaterial;
foot.material = nodeMaterial.clone("footMat", true);
wings.material = nodeMaterial.clone("wingsMat", true);

The true parameter optimizes things a bit by not creating a new effect for each instance.

3 Likes

@Evgeni_Popov you are the best !!!

Great!!! It works well!!!