Skip to content

Geospatial Features (Large World Rendering, Geospatial Camera, 3D Tile Loader) #17451

@georginahalpern

Description

@georginahalpern

This issue tracks progress on 9.0 features related to geospatial support in Babylon.js

This includes

  • Large world rendering (internally offsetting world to be camera-centric to avoid jittering caused by floating point imprecision with large coordinates)
  • Geospatial camera (designed to orbit a globe in 3D)
  • Base 3D Tile Loader (supporting explicit tileset.jsons holding gltf data)

Large World Rendering (floating origin)

  • Basic offset support
  • Instances
  • Shadow Generator/Cascader
  • WebGPU
  • Particle
  • Water/Sky materials
  • Node material blocks
  • Sprites
  • Reflection Probes
  • Utility Layer
  • Multi-Scene
  • Physics / Havok support
  • Documentation

Geospatial Camera

  • Basic camera implementation
  • Pan/Drag
  • Rotate (yaw/pitch)
  • Wheel zoom to cursor / center
  • API changes to support setting yaw/pitch/radius/center directly
  • Double tap zoom to cursor
  • Limits / Speed / Inertia
  • Touch input (multi-finger pan / zoom)
  • Keyboard input (pan/rotate/zoom)
  • FlyTo (animation/interpolation) - linear and arced
  • Collision Detection
  • Pole-specific clamping
  • Documentation
  • ------ Below are nice to haves -----
  • Support multi-planet systems (globe not centered at origin)
  • Support additional movement patterns (ex: straight-line movement via vector, zoom by fov, zoom by scaling target)
  • Separate checkInputs to not be nested
  • ZoomLevel API (complementary to radius)
  • Reconciling base camera improvement ideas, genericized inputs ( see https://forum.babylonjs.com/t/geospatialcamera-and-genericized-camera-inputs/61291/5)

3D Tile Loader

  • Explicit tileset.json url parser/validator
  • Math.geo converters between wgs84 and ECEF coordinate systems
  • TileRenderer (takes tileset.json and uses gltf loader to load meshes based on what is in camera view)
  • Documentation
  • ------ Below are nice to haves -----
  • Extension mechanism to load other tilesets, ex: implicit tileset

Metadata

Metadata

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions