# Features ## Data - [x] Generate noise - [x] Density - [x] Robin hood map - [ ] Memory usage - [ ] In memory RLE - [ ] Octree world - [x] Serialize - [x] Group files - [x] Zstd + custom grouping - [~] Find best region size - [x] Zstd Train dictionary - [x] Low memory: Keep only ifstream - [x] High memory: Save multiple - [x] Unload unused - [x] Edition - [~] Entity - [x] Basic - [ ] Instanced - https://learnopengl.com/Advanced-OpenGL/Instancing - [ ] Inheritance - [ ] ECS - [ ] Relative to area - [ ] Player as entity - [ ] Entities block world changes - [x] Area - [x] Offset - [ ] Rotation - [ ] Planet - [ ] CubicSphere - [ ] Healpix - [ ] Galaxy - [ ] Biomes - https://imgur.com/kM8b5Zq - https://imgur.com/a/bh2iy - https://speciesdevblog.files.wordpress.com/2012/11/biomemap.png - [ ] Leak test - Valgrind - Xtree-memory - [ ] sanitizer - [x] clang-tidy - [ ] clang -fall - [ ] Server - [ ] ZeroMQ - [x] Logger - [ ] FastNoiseSIMD / HastyNoise double precision - [x] Generational identifier - [ ] Limit map usage ## Rendering - [x] Render triangle - [x] Avoid texture noise - [x] Better cheap planar - [x] MipMap LOD - [x] Fog - [x] Multi Samples - [x] SRGB - [ ] HDR - https://www.youtube.com/watch?v=iikdcAA7cww - Toon shading - Eye adaptation - [ ] Post processing - https://learnopengl.com/Advanced-OpenGL/Anti-Aliasing - Bloom - [x] Skybox - [ ] Environment mapping - [ ] Deferred - [ ] Cascaded shadow maps - [ ] RayCast - [~] Transparency - [x] Float precision problem ## Contouring - [x] Box contouring - [x] Ignore sides - [ ] LOD - [x] Dual MC - [ ] Octree - [~] Collision - [ ] Dynamic index size - [x] Chunk size performance - [ ] Render with glBufferSubData - [x] Frustum Culling - [ ] Occlusion Culling - [x] Document