branchrust_reboot/main/indirect_instancingcancel
21 Commits over 0 Days - ∞cph!
Load IndirectInstancing component in MainCamera.cs to avoid merge conflicts.
Disable certain features (layers, bounds, ...) in order to debug last week's performance regression.
Fixed unintended creation of material instances as well as unintended creation of command indexes when removing instances.
Fixed a bug in the graphics buffer damage tracking where damage regions could be shrunk if they were adjacent to another smaller region, causing corrupted building parts to be rendered.
Various fixes about the colour buffer not being resized or copied correctly
Add temporary debug error messages to diagnose the uninitialised component issue.
Fix Awake() and OnDestroy() not being called for IndirectInstancing in standalone builds
Add an additional null check when removing instances
Indirect instancing fixes:
- Fixed shader compilation error (again)
- Fixed infinite loop condition causing application freeze
- Fixed colour buffer not being applied due to wrong type causing black building parts
- Fixed non-optimized instance buffer updates
- Fixed off-by-one bug preventing the very first building part from being rendered
- Fixed NullReferenceException when attempting to remove a renderer without a material
Fixed missing namespace error in server build
/main/indirect_instancing:
Check if there is an instance of the indirect instancing component because apparently it's possible that we add/remove instances when there isn't an active camera.
Indirect instancing:
- Prevent NullReferenceException when attempting to remove instances without a MeshFilter component
- Fixed shader compilation error in the shadow pass
- Surround instancing code with `#ifdef CLIENT` for cleaner server builds
Added support for layers and per-instance colors to the indirect instanced renderer
Indirect Instancing:
- Remove delegate callbacks to avoid allocations at all costs
- Lots of clean-up / Removed some ugly hacks
- Use proper namespace namespaces
- Use a camera component for proper resource management
- Prefix all profiler regions with "Indirect." for an easy overview
Remove the massive lump of disabled code I forgot to delete
Implement indirect instanced rendering system