.. | ||
Materials | ||
Objects | ||
Prefabs | ||
Scenes | ||
Scripts | ||
Shaders | ||
Textures | ||
Materials.meta | ||
New Terrain.asset | ||
New Terrain.asset.meta | ||
Objects.meta | ||
Pixel 3D Pipeline Asset.asset | ||
Pixel 3D Pipeline Asset.asset.meta | ||
Pixel 3D Post FX Settings.asset | ||
Pixel 3D Post FX Settings.asset.meta | ||
Prefabs.meta | ||
README.md | ||
README.md.meta | ||
Scenes.meta | ||
Scripts.meta | ||
Shaders.meta | ||
Textures.meta |
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
- https://iquilezles.org/articles/voronoise/
- https://bruop.github.io/frustum_culling/
- https://www.shadertoy.com/playlist/fXlXzf&from=0&num=12
- https://www.shadertoy.com/view/lsl3RH
- https://forum.unity.com/threads/how-to-extract-view-depth-from-a-camera-render-with-a-shader.1506944
- https://ameye.dev/notes/shaders-done-quick/
Priority todo
- Pixel Perfect Outlining [6]
- Generate pixel perfect outlines around the internal and external edges of all objects [4]
- Internal [2]
- Outline [1]
- Pixel perfect (in majority) [1]
- External [2]
- Outline [1]
- Pixel perfect (in majority) [1]
- Internal [2]
- Options: on/off [1], colors [1]
- Generate pixel perfect outlines around the internal and external edges of all objects [4]
- Pixel Perfect Camera [6]
- Ensures pixel art remains crisp and clear at different resolutions [2]
- Downscale [1]
- Maintain aspect ratio [1]
- Ensures stability in motion without excessive "jittering" [4]
- Zoom in (pixel space) [1]
- Zoom in (world space) [1]
- Rotation keeping viewport center in place [1]
- Translation pixel offset [1]
- Ensures pixel art remains crisp and clear at different resolutions [2]
- Foliage Rending [8]
- Rendering of grass on top of meshes with GPU instancing [2]
- Rendering [1]
- GPU instancing [1]
- Rendering of leaves on top of trees with GPU instancing [2]
- Rendering [1]
- GPU instancing [1]
- Frustum culling and chunking to improve performance [3]
- Chunking [1.5]
- Frustum culling [1.5]
- Options: density, colors, wind speed/strength [1]
- Rendering of grass on top of meshes with GPU instancing [2]
- Lighting [8]
- Cell shader with custom banding textures and real-time lighting [2]
- Cell shader [1]
- Custom banding texture [1]
- Point lights and directional lights with multi-light shading [3]
- Directional lights [1]
- Point lights [1]
- Multi-light [1]
- Shadows [3]
- Receive shadows [1]
- Cast shadows [1]
- Shadow threshold (for hard/soft shadows) [1]
- Cell shader with custom banding textures and real-time lighting [2]
- Clouds [6]
- Renders clouds over environment [4]
- Noise rendering [1]
- Layered noise [1]
- Movement [1]
- Accurate shadow projection [1]
- Options: cloud coverage [0.66], speed [0.66], direction [0.66]
- Renders clouds over environment [4]
- Water [6]
- Renders water and other liquids with reflection and refraction [3]
- Renders [1]
- Reflection [1]
- Refraction [1]
- Reacts to movement with ripples [2]
- Ripples [1]
- React to movement [1]
- Outline edges for objects both inside and outside the water [0.5]
- Options: color, absorption, viscosity [0.5]
- Renders water and other liquids with reflection and refraction [3]