Kinemation: Virtual Mesh Generation #47
Labels
open to contributors
Want to contribute? This task is available.
very difficult
This task is for the hard-core only
Kinemation: Virtual Mesh Generation
Virtual geometry is a hot topic as of late. Ever since Epic Games announced
Nanite, and later gave presentations on how they made it all work, other game
engines and developers have sought to follow this new approach. Bevy 0.14 was
the latest to jump on this train at the time of writing this.
While it will be a long road, I believe it is possible to bring virtual geometry
to Kinemation as well. However, the steps along the journey can each provide
value for specific use cases much sooner than the final solution. So there’s
plenty of incentive for starting now!
Task is Prerequisite For
Base Requirements
Create a data structure which represents a meshlet hierarchy. Assume this data
structure will only ever be accessed from a single thread, and can be allocated
with an
AllocatorManager.Allocator
. Also assume the source mesh will only everhave a single submesh.
Each meshlet should contain triangles, where each vertex of the triangle
contains all vertex attributes of the triangle: position, normal, tangent, and
UVs. Bone weights and bone indices are a nice-to-have, but not a hard
requirement. Additionally, each meshlet should contain a geometric error
relative to the original source mesh.
The data structure should provide APIs for navigating the meshlet trees and
reading any meshlet data. It should also have a dispose method for the entire
data structure.
The text was updated successfully, but these errors were encountered: