4,179 Commits over 1,157 Days - 0.15cph!
Change Vertex & Index buffer to StructuredBuffer type
Use global shader keyword `RUST_PROCEDURAL_INSTANCING` to enable procedural rendering
Apply procedural rendering to UnityStandardCore deferred shader
Change Submesh info from List to Array
Fix two separate GeometryBuffers created
Keep geometrybuffers in separate class
Fixes
Add `UnityIndirect.cginc`
Start getting code to support "multidraw" to reduce drawcalls
Store verticies and indicies in GraphicsBuffer and use `Graphics.RenderPrimitiveIndexedIndirect()`
Group & batch draw calls that have the same material + shadow mode via `DrawCallKey` struct
Update global_networked_bases/2021
Enable instanced placeholder on static sam sites
Fix normal sam site missing base platform in placeholder mesh
Fix rotated building blocks not updating visual
15s cooldown when sending rotated building block globally
Update global_networked_bases/2021
Rename `InstancedEntityScheduler` to `VirtualEntityScheduler`
Clear up performance text
Remove instanced triangles from performance text as we don't know on CPU how many meshes will be rendered post GPU culling
Change slider range of instanced rendering from 500-1500
Default instanced rendering distance 1000m
Convar still can go from 500-2500
Categorize mesh renderers based on prefab the mesh came from
Add commands to toggle rendering of certain meshes: `instanced_toggle_buildings`, `instanced_toggle_cliffs`, `instanced_toggle_other`
Rename `instanced_rendering` to `instanced_toggle_all`
Ensure all instancing classes have instancing namespace
Expose ability to get every virtual mesh that is visible for an entity
Added Float4x4Ex to get position and rotation from a matrix easily
Fix highlighting building blocks when looking at them with a hammer
Merge from global_networked_bases -> main
Fix recycled cells not rewriting their header causing them to become creater than 32 elements, overwriting other cells and breaking stuff
Log error if the cell ever goes above 32 elements again
Change `RenderSlices.Length` to `RendererCount` in the PreCull job
Merge from global_networked_bases -> main
Fix "ghost blocks" appearing due to PreCulling job not reseting slice when a mesh count goes down to 0
Fix errors that kick the player not including the serverAddress to sentry
Include loglevel of error so we can see what errors kick people
Fix "list prefabs" editor button erroring
Disable instancing on ladder
Merge global_networked_bases/proper_disable_command
Add `InstancingConfigComponent` to root level of component
Add option via the config to disable instancing on a prefab
Disable instancing on `junkpile_i` as it uses a cliff child prefab that supports instancing
Also disable instancing on portal prefab
Merge from global_networked_bases -> main
Disable instancing on deployables it was unintentionally left on
Enable instancing & global networking on large furnace
Add button in editor to list every prefab with instanced rendering enabled
Remove instancing from metal shopfront due to glass not working & incase it murders performance if I fix it
Fix wooden shopfront door
Fix all door prefabs
- external gates
- cell door
- garage door
- square + triangle ladder hatch
- fence door
- double doors
Remove `StripEmptyChildren` from garage door & ladder hatch to fix codelocks
Standardize `IsInstancingEnabled` and `IsInstancingDisabled` based on convars
Merge from global_networked_bases -> main
Remove instanced rendering from sleeping bag
Added `OnKilled()` hook to BaseNetworkable so it broadcasts deleted building blocks outside of network range & doesn't send them when you reconnect
Merge from global_networked_bases -> main
Change `LogError` to `LogWarning` when calling Initialize twice
Remove `StripEmptyChildren` component from doors: was causing NRE when trying to attach codelock / keylock
Change shadow material from `watersplash-1` to `shadows`
merge main -> experimental
Merge from global_networked_bases -> main
Some ints not reset when disconnecting from server
Missed clearing recycledCells list