mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-08-04 12:36:26 -04:00
1.6 KiB
1.6 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" (Occlusion culling)
- 2 algorithms
-
3 Meshes per section (opaque; transparent; translucent)
-
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
- 2 render modes: Fast/Default
- No block translucency
-
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 and destroying block)
-
View distance
- Server side
- Client side
-
Rewrite renderers
-
Check neighbour positions
-
Cache biomes
-
"Fast biome" in 19w36a+
-
Improved biome blending
-
Performance optimizations
- Don't render bedrock on y == dimension::minHeight
-
Meshing
- Greedy meshing
-
Model deciding (for pre flattening versions)
-
Assets manager: Create file from jar with all models inside and load models from there (make them moddable)
-
ToDo:
- Update neighbour chunks if needed
- Biomes: Check if chunk is single biome