PasVulkan GLTF 2.0 support progress showcase with a sample with just one draw call per frame.
Published on Wed, 25 Aug 2021 03:11:54 UTC in PasVulkan by BeRo - Permalink
Here is a small PasVulkan GLTF 2.0 support progress showcase with a sample model case, which can draw with just one Vulkan CmdDrawIndexed call per frame, although that there are several animated nodes.
My GLTF implementation at my PasVulkan framework tries to combine everything material-wise and primitive-topology-wise so that the GPU itself can do everything necessary animation-wise (joints and morph target vertices) in one go per material/primitive-topology-group. And in my GLTF implementation, there is no real hard limit on the number of joints and morph target vertices.
For this purpose, each vertex points to respectively two special packed linked lists (one for joints in four-packed-pairs and for morph target vertices), which are stored in Vulkan storage buffers. Each vertex is otherwise only 64 bytes in size, even though it contains position, the complete tangent-bitangent-normal space, two texture coordinates, color value, node index, linked list pointers, flags, etc.
And next to it there is also now a Scenegraph, where one can load several GLTF models at the same time. I will expand this later so that it can be used effectively for the development of 3D games, for example.