Skip to content

TerrainRGB, Terrarium Plugins: Further Improvements #1691

Description

@gkjohnson

Related to #1690

Issues

  • The current implementation does not handle raycasting / levels so well or flexibly, resulting in skipped LoDs. Instead of trying to expand children into the hierarchy it would be best to create multiple sub-meshes per tile and run per-mesh bounding box checks to accelerate raycasting
  • Adjusting the height scale means every bounding box must be expanded. It would be best to do this as-needed or as-traversed, instead, with a kind of dirty check.
  • The height altitude should be in a consistent unit and / or scale relative to the scale of the stretched scale of the world around it (either consistent based on camera position or scaled based on locality)

Functionality / Perf

  • Core bounding-volume update infrastructure in the tiles renderer (grow-only bounds, animation, parent-child consistency, as-traversed dirty updates instead of full traversal on heightScale change)
  • Debug bound visualizations refreshing after heightScale changes (falls out of the above)
  • Improve accounting of downloaded DEM memory (currently double counted on sub meshes with shared items)
  • Avoid regenerating a mesh on raycast
  • Only update bounds when traversed or enable dynamic bound checking to avoid perf hit when updating height scale

Effects

  • Hillshade-style shading effect
  • Concavity map revisit (dynamically generated from DEM)

Other

  • SkirtedPlaneGeometry adoption in GeneratedSurfacePlugin
  • Increase skirt length?
  • Upstreaming the bump map chunk fixes to three.js
  • Frustum culling support (likely unnecessary unless users request it since it's disabled by default - requires updating bounds)

Activity

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions