minosoft/doc/rendering/world_renderer.md
2021-11-03 19:15:12 +01:00

1.2 KiB

World Renderer

  • Frustum culling
    • 2 algorithms
      • Fast one (old one): Only tell if it could be in the frustum
      • -> If yes (or no; depends on algo) use complex one to check
    • extreme chunk section values (most east[…] block; highest block; lowest block)
    • "Cave algorithm"
  • 2 Meshes per section (opaque; transparent)
  • Preparing in nearer to further away order
    • unload meshes if block changed and not in frustum
    • only prepare if chunk is in frustum
    • don't prepare empty chunks
  • Light
    • Client side light engine
    • Lightmap
  • Transparency
    • Sort faces
  • water logged & FluidFillable properties
  • Force interrupt preparing if needed (e.g. new block change; light change; more important task in thread pool)
  • "Resolving" of block models
  • Chunk cache clearing (default F3 + A)
    • Respawn
  • texture animations
  • require neighbour chunks loaded
    • Also don't load if block changes in chunk (e.g. when movement is disabled and walking to chunk border)
  • View distance
    • Server side
    • Client side
  • Rewrite renderers
  • Check neighbor positions
  • Cache biomes
  • "Fast biome" in 19w36a+
  • Improved biome blending
  • Performance optimizations
    • Don't render bedrock on y == dimension::minHeight