I want to be able to add Dual Quaternion skinning in Unreal Engine. I have a branch that does this, but I really like the idea of using the deformer graph. The problem as I see it is that the deformer graphs is vertex shader only. This means that we have to do N conversions from LS matrices to DQS per vertex.
If a mesh has 100 bones and 100K vertices, that can be 800K conversions when realistically, we only need to convert the 100 matrices before sending it to the shaders. But that code is in GPUSkinVertexFactory.cpp and there doesn’t seem to be a way to change the vertex buffer from a plugin.
If we could add either an option for DQS (I have code for this) or a way to have a blueprint graph or just a delegate on the mesh component or something like that, it would mean I could just provide my own deformer plugin for the rest (or add it to the existing deformer plugin with a pull request).
Can anyone point me in the right direction as to who could help me out in getting DQS skinning working with the deformers without converting the matrices a billion times?
Thank you.
edit: Oh, I also have a bunch of additional methods for Quat and DualQuat. Does UE have unit tests? If so, where are they located?