Skip to content

Meshlet BVH building #21

@adam-ce

Description

@adam-ce

Nanite builds a BVH over all meshlets of all LODs. In addition to the bounding volumes, it also stores the max error of the all meshlets' parents (meshlets need their own and the parent error for the LOD decision). During rendering, The BVH is traversed, decending based on the bounding volume and error.

I don't know how exactly Nanite builds its BVH. The following points seem important:

  • lower LOD levels must end up higher in the hierarchy
  • we need to remove or load sub-trees during render time (since we are streaming)
  • can't build in traditional bottom up way or generally can't build in memory (build for sub regions and then merge)
  • when updating, changes in lower levels shouldn't change the upper levels (for parallelism during data updates).
  • tree must be network loadable (load / remove subtrees)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    Status

    Todo

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions