# Readme
## Todo
- [ ] Add trees + leaf shader
- [ ] Add water shader
- [ ] Add cloud shader (potentially baked onto _ShadowMapTexture?)
- [ ] Add random weeds and flowers
- [ ] Add frustum culling and occlusion culling to grass
- [ ] Pixel perfect camera with zoom and pan
- [ ] Fix ghost mesh culling shadows at world origin
- [ ] Poor depth outlining on large terrain of steep angles
- [ ] Fix grass angle occluded on steep terrain
## Info
-
-
-
-
-
-
## Priority todo
- [x] Pixel Perfect Outlining [6]
- [x] Generate pixel perfect outlines around the internal and external edges of all objects [4]
- [x] Internal [2]
- [x] Outline [1]
- [x] Pixel perfect (in majority) [1]
- [x] External [2]
- [x] Outline [1]
- [x] Pixel perfect (in majority) [1]
- [x] Options: on/off [1], colors [1]
- [ ] Pixel Perfect Camera [6]
- [x] Ensures pixel art remains crisp and clear at different resolutions [2]
- [x] Downscale [1]
- [x] Maintain aspect ratio [1]
- [ ] Ensures stability in motion without excessive "jittering" [4]
- [x] Zoom in (pixel space) [1]
- [x] Zoom in (world space) [1]
- [x] Rotation keeping viewport center in place [1]
- [ ] Translation pixel offset [1]
- [x] Foliage Rending [8]
- [x] Rendering of grass on top of meshes with GPU instancing [2]
- [x] Rendering [1]
- [x] GPU instancing [1]
- [x] Rendering of leaves on top of trees with GPU instancing [2]
- [x] Rendering [1]
- [x] GPU instancing [1]
- [x] Frustum culling and chunking to improve performance [3]
- [x] Chunking [1.5]
- [x] Frustum culling [1.5]
- [x] Options: density, colors, wind speed/strength [1]
- [ ] Lighting [8]
- [x] Cell shader with custom banding textures and real-time lighting [2]
- [x] Cell shader [1]
- [x] Custom banding texture [1]
- [ ] Point lights and directional lights with multi-light shading [3]
- [x] Directional lights [1]
- [ ] Point lights [1]
- [ ] Multi-light [1]
- [x] Shadows [3]
- [x] Receive shadows [1]
- [x] Cast shadows [1]
- [x] Shadow threshold (for hard/soft shadows) [1]
- [x] Clouds [6]
- [x] Renders clouds over environment [4]
- [x] Noise rendering [1]
- [x] Layered noise [1]
- [x] Movement [1]
- [x] Accurate shadow projection [1]
- [x] Options: cloud coverage [0.66], speed [0.66], direction [0.66]
- [ ] Water [6]
- [ ] Renders water and other liquids with reflection and refraction [3]
- [x] Renders [1]
- [ ] Reflection [1]
- [x] Refraction [1]
- [ ] Reacts to movement with ripples [2]
- [x] Ripples [1]
- [ ] React to movement [1]
- [x] Outline edges for objects both inside and outside the water [0.5]
- [x] Options: color, absorption, viscosity [0.5]