50 Commits over 92 Days - 0.02cph!
Combine foliage meshes and make use of multiple draw commands to minimise state changes
Grass clumping which influences position, height and direction.
Handle wind and displacement in compute step
Setup new material and foliage asset, improve grass blade shape, change instance data to use bezier curves.
Fix args buffer, and add simple UVs to procedural vertex function
Adding procedural option using render primitives indexed indirect for grass blades with calculated vert positions
Implement new foliage placement function in RefreshAsync update, adjust refresh distance when using instancing, make debug toggle.
Implement manual bilinear sampling and edit CPU sampling to match GPU behaviour, add distance scaling, improve rng hash function, fix edge case causing out of sync rng.
Random instance rotation, pack instance data into halfs, fix hash inconsistency
Implement precise placement check on CPU to improve instance offset accuracy (to test against cheaper approximation), extend debug info to test accuracy, use procedural noise instead of texture, improve randomisation, apply rotation to instances based heightmap
Add angle based dither fade for stationary multi-card billboards
Switch to structs instead of offsets, update debug counters for clarity, add clean up on destroy, give foliage unique seeds to keep consistent
Make foliage instancing much more stable/accurate, better seed and random calculations, made the noise texture match the CPU noise much more closely in distribution, add debug option to force CPU and GPU maps to sync, apply random scale to instances, and change foliage count calculation to adjust for probability.
Add rotation toggle and face cullmode options in foliage billboard shader. Update all relevant materials which had the old unused _Cull property with the default off.
Add debug counters to compute, adjust noise compute for better placement, add toggle for instancing, fix incorrect cell bounds calculation, improve foliage cpu count estimation, improve foliage random positions, and add camera culling to foliage compute.
Fix and improve foliage placement compute map sampling/decoding, fix incorrect foliage cells being used, clean up and move shader setup for instancing to includes, fix bounds calculations, add function to get foliage counts per cell, implement instance offsets and density handling to foliage placement.
Progress on foliage instancing: noise generation on gpu, fixed compute placement sync issues, wip instance data offsets and usage in foliage shader.
Fix foliage grid bounds calculations, basic implementation of terrain maps in compute foliage placement
Add smoothstep reverse fresnel opacity option
Compute foliage placement prototyping
XMasLight shader: replace BaseEmission with MinEmission, hardcode off mode as 0
XMasLight shader: use BaseEmission as minimum brightness in animation, and add animation curve
Ice shader: triplanar normal map correction
Ice shader: fix culling/flickering when gpu instancing is enabled
Fix emission from being clamped
Ice shader: use packed textures to reduce texture sampling, and clean up GUI
Remove new detail metallic map from decals to stop errors for now
Adjust TOD scattering direction clamp to avoid normalising zero vector (stop NaNs)
Added emission fresnel to xmas lights
Ice shader: screensize and edge length now factor into tessellation
Ice shader: change tangent space normal blending to world space, make occlusion map align with normal map sampling, and frost now impacts alpha
Ice shader: add tangent reconstruction normals will now behave properly, improve parallax offset calculation, and add frost min/mid/max sliders.
Add Ice shader tessellation to forwardAdd pass, and make transmission map triplanar
Ice shader tessellation with phong and bezier smoothing options
Add ice shader GUI, many colour tints, fix normals, and smoothness, and improve parallax effect
Ice shader update, smoother edge detection, parallax, and some frost on top
First pass at ice sculpture shader with basic/cheap edge detection
LOD crossfading transitions on Renderer LODs WIP
Allow the user to choose which UV set to use for AO map slot specifically in standard shaders
Add Specular map option to Detail Layer, update shader editor GUI, add the changes to additional standard shaders.
Add metallic map to detail layer on standard shaders