branchrust_reboot/main/indirect_instancing/command_buffer_indirectcancel
22 Commits over 0 Days - ∞cph!
Revert model importers and materials to the state they have on /main
(WIP) SIMD frustum culling implementation
Update indirect instancing tools with new mesh r/w logic
Re-enable Read/Write for collision meshes only
Wrote SIMD distance culling code for ARM64/Neon as well as a scalar variant that vectorises well for SSE2/SSE4.
Fix build error due to InstanceHandleList
Reset meshes to their state in /main
Fix class layout build error
Found another double rendering issue in MeshCull
Set GPU instancing on materials
Enable Read/Write for nature assets
(Test) set all meshes isReadable=0
Subtract mesh and material changes
work around unity_BaseCommandID not being set
Fix build regarding AssetDatabase
Fix build error about missing TerrainTools
Set correct stencil states in all sub shaders that are used by indirect instancing in order to emulate what Unity normally does during the GBuffer pass
Implement indirect instancing without requiring monster meshes:
- Use a command buffer to submit indirect draw calls referring to individual meshes
- Monster meshes are disabled by default
- Mesh Read/Write is no longer required
- Should reclaim ~3 GB of VRAM and RAM
- Calculate UV distribution metrics based on individual meshes rather than monster meshes
Instancing shaders now always access the IndirectDrawIndexedArgs buffer in order to retrieve the startInstance parameter which is no longer passed to Unity.