ps: I checked, … and maybe it is not related to decal size
I got some warnings when I want to create the decal
‘Setting vertex data kind ‘position’ with an empty array’
basicaly means we want to create the decal without ‘positions’. Close but still I don’t have a final answer why it is not working on your model.
It looks like if these two lines from CreateDecal were changed to be like below then the decal’s initial position and rotation could be computed accurately even if the mesh was deformed by skeleton or morphing. It might not make sense to do thou because the decal wont stay stuck to the mesh if it’s animated anyway, but if the animation is paused or stopped then it seems to work well (from my testing with the model in the OP)…
Oh, checked here and that seems to do the trick! I think we could control this through an optional flag, something like applySkeletonsAndMorphs, as these functions are slower than getVerticesData. Want to do a PR?
EG if I pause the animation in that shark PG and rotate to check diff parts thou, I can see that the decals are wrong for many parts of the mesh because the skeleton isn’t applied…
Also the original PG had some other issues, I got it working by removing the predicates from the picking and passing the pickedMesh to CreateDecal. Here’s the PG I used for testing with the skeleton applied (it stops the animation when a mesh is picked to test that the decal is created properly).
IDK what the solution is for keeping the decal in sync with the animated mesh thou. The proposed changes would only help with paused/stopped skeleton animations and non-animated morphs I guess…
Here’s a simpler PG to reproduce the warning “Setting vertex data kind ‘position’ with an empty array” with just a simple box mesh. If you comment out line 37 that disposes the old decal the error goes away. IDK what the issue with disposing them is.
Hi, @Blake u r right if animation is stopped its working well…
i think decals does not support Rigged avatars. i tried with t-pose avatar its working
Need to find some workaround to apply for Rigged avatars.
Hmm there’s an older thread discussing a work-around using a dynamic texture. They also ruled out using attachToBone() which I hoped might work for this. Maybe @ozRocker will have some more insights about it?
@Blake You’re right, I think the new (decal) mesh would need to have the matrix indices/weights filled correctly as well as using the same skeleton than the source mesh for decals to work correctly for rigged characters… I will try to have a deeper look about this issue.