Skip to content

Large models: per-instance detail and picking inside instanced cells #12

Open

Description

@mahach666

Above the 384 MiB merged-geometry cap, repeated shapes are drawn as instanced copies in spatially bounded cells (#8). Measured on an integrated 2-CU AMD GPU with 1 000 000 elements, compared with the earlier one-draw-per-instance renderer:

  • orbit 95th percentile 20 fps (was 29.9);
  • pick ~22 ms (was ~7 ms);
  • still-frame CPU time 23 ms (was 4 ms).

Causes: detail is cut per cell from the cell's nearest point (so all instances of one shape in a cell share one size estimate), each InstancedMesh draw costs ~5 µs of CPU in three.js + ANGLE, and the cell extent is relative to the whole-model diagonal, so a single far georeferencing outlier makes cells unbounded again.

Ideas:

  • cull and cut detail per instance inside a cell (CPU-side instance spheres, compacted instance list);
  • bound cells by an absolute extent or by robust model statistics instead of the full diagonal;
  • reduce per-draw CPU cost (fewer, larger units where it is safe).

Models below the cap (all merged; e.g. 200 000 elements / 19.2 M triangles) are not affected: 30 fps at full detail on the same GPU.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions