274 Commits over 243 Days - 0.05cph!
Implement ArrayEx.RemoveAt* utility functions
- Render all instanceable submeshes instead of rejecting the whole mesh
- Use real LOD thresholds instead of 5 meter increments
- Disable LOD fading to be reintroduced when LOD switching is stable
- Pass final Mesh instead of MeshFilter to instancing system to allow assets based on MeshLOD to work properly
- Restructure RustRenderer for more robust automatic conversion
- Fix invisible LODs by merging duplicate entries referring to the same Mesh
Fix frustum culling by skipping damage tracking as a temporary workaround
Prevent NRE when a MeshCull is without a MeshRenderer or MeshFilter
Do not update indirect instancing system when scene is loading
Do not update indirect instancing system when scene is loading
Always grow GPU instancing buffers exponentially to prevent VRAM exhaustion in during initial spawn.
First complete (but mostly broken) implementation of indirect instancing.
Split most classes into separate files for easier handling and less conflicts.
Regenerate console system
cherry-pick platform fixes
cherry-pick platform fixes
▆█▍▊▇▇▌ ▊▋▅▍ ▌▇▉█▉▍ ▊▍▅▍▋▆▋▄ ▅▉▇ ▅▇▊█▄ ▌▍▍▋▊ ▋▇▍▅▆ ▄▆ ▊▆▆▉▊ ▊▊▋▄█▉▅ ▅▊ ▅▋▉██
Server: Fix error message about missing `InstancedDebugDraw` script
Fix: Add "vine" to texture streaming exclude patterns.
Fix texture streaming exclude pattern for keypad lock shock effect
Fix `billboard` filter patten not catching certain new textures and breaking texture streaming on them.
Add ConVar `memory_budget_factor`. Giving players with little VRAM a way to mitigate blurry textures at the cost of performance by allowing texture memory to spill over into system memory.
Disable streaming on problematic textures after updating exclude patterns based off previous manual fixes (thanks to Aron Striebich for making a list!)
Fix textures that should be streamable but aren't based on heuristic; saving about 1.8 GB of texture memory; should mostly mitigate blurry texture issues on 4 GB cards.
Restrict texture streaming debug ConVars to development builds only.
Reimport mangled cocoknightarmor_arms.icon.png.meta as text (was binary)
Hotfix: Clamp texture streaming budget to at least 4096 MB
Add terrain occlusion culling to the instanced renderer (WIP)
Add frustum culling to the instanced calls
Cherry pick quality_level_squash
Add texture streaming support to indirect instanced rendering
Automatically remove any meshes from the instancing system that have been destroyed by Unity for whatever reason.
Port all new fixes and refactors from InstancedDebugDraw to IndirectInstancing
Merge from quality_level_squash: Remove all quality levels but one
Merge from quality_level_squash
Remove all quality levels except one
Fix compilation due to renaming of FastDebugDraw to InstancedDebugDraw
Merge from vram_budget: Revamp texture streaming system
Disable texture streaming for ground_plants
Finalised texture streaming changes, removed complicated switching logic, added ground_plants atlas to exclude list