After a while I came back to my small project with an idea to place an image on top of every block.
I tried to use decals for it but I don’t really know what is wrong. Every example I checked was using casting to place a decal on top of the mesh and I would like to do it instantly when I initialize the block.
Also when I am trying to do the same thing on my main project where blocks are InstanceMesh’es from .gltf file, I kinda see decals as “inverted”? I can somehow see them when I look at the blocks from the bottom - reversed situation of when you look at the ground from the bottom and it is invisible. Pretty hard to explain
The position used to project the decal should not be right on the mesh you project onto, it should be a little further, else the algorithm won’t work well:
Regarding your other problem, try to set scene.useRightHandedSystem = true just after creating the scene and see if this fixes it.
First problem was indeed fixed.
I can see in my project that it is also working if am using a simple MeshBuilder.CreateBox() to create my blocks. Sadly, problem when using imported mesh still persists even with setting useRightHandedSystem as you suggested. Here’s a screenshot of what I am seeing. Decal settings are left untouched (the ones working with simple meshes from builder)
Hey @Evgeni_Popov ! Sorry for the delay, I had some problems with importing my custom mesh to the Playground. Luckily, I managed to reproduce exactly my problem. You can see it here:
I increased decal’s size so it would be “visible”.
Because you load the base mesh from a glTF, you must update the sideOrientation property of the decal material to account for the different handedness between glTF and Babylon (see line 102):