Feature requests-skinned meshes: mesh split and mesh union
Posted: Wed Jan 13, 2016 8:12 pm
It is something i've thought of, while taking a look at the Assimp features, and also because of some user's questions, and it would be to have the ability for irrlicht to construct skinned meshes in runtime and split them.
Say you have two skinned meshes and want a mesh that has all the bones and meshes together, but without resorting to attaching one mesh to the other, perhaps, to grant that you draw the whole mesh with a single draw call, perhaps to have a finer control over the joints count. This could be used to combine hierarchies, i.e. say that both skinned meshes share common joints, then, those joints would be added only once (thus the word union, you would be uniting the sets of joints), and the rest of joints would be placed accordingly along with their attached vertices. Or perhaps, say you have an empty skeleton loaded, you've loaded just the joints, and you want to populate them with the vertices of other skinned meshes that share some of the joints.
And also, a sort of inverse step, to split meshes into other meshes which are granted to have a smaller or equal amount of bones to a given number. Some times because of hardware/software limitations, you can't have all the bones you want in a mesh, so you have to end resorting to having more meshes rendered. This operation would split any mesh that had a larger amount of joints than any given number into meshes that had less or that number of joints. The base joints would remain the same, but the meshes would be referenced by a limited amount of joints.
These operations could be placed in the mesh manipulator, or perhaps, be part of the skinned meshes. i.e. a sort of "union" operation which would pick another skinned mesh. and a "split per bone count" operation which would grant each submesh from the skinned mesh has the appropriate amount of bones.
Comments? criticisms? tomatoes?...
Say you have two skinned meshes and want a mesh that has all the bones and meshes together, but without resorting to attaching one mesh to the other, perhaps, to grant that you draw the whole mesh with a single draw call, perhaps to have a finer control over the joints count. This could be used to combine hierarchies, i.e. say that both skinned meshes share common joints, then, those joints would be added only once (thus the word union, you would be uniting the sets of joints), and the rest of joints would be placed accordingly along with their attached vertices. Or perhaps, say you have an empty skeleton loaded, you've loaded just the joints, and you want to populate them with the vertices of other skinned meshes that share some of the joints.
And also, a sort of inverse step, to split meshes into other meshes which are granted to have a smaller or equal amount of bones to a given number. Some times because of hardware/software limitations, you can't have all the bones you want in a mesh, so you have to end resorting to having more meshes rendered. This operation would split any mesh that had a larger amount of joints than any given number into meshes that had less or that number of joints. The base joints would remain the same, but the meshes would be referenced by a limited amount of joints.
These operations could be placed in the mesh manipulator, or perhaps, be part of the skinned meshes. i.e. a sort of "union" operation which would pick another skinned mesh. and a "split per bone count" operation which would grant each submesh from the skinned mesh has the appropriate amount of bones.
Comments? criticisms? tomatoes?...