4,179 Commits over 1,157 Days - 0.15cph!
Fix twig foundation having renderers disabled in prefab
Only run StripEmptyChildren when instancing is enabled (don't believe this is the problem but better safe)
Update global_networked_bases/2021
Fix junkpile_i being invisible by cancelling instancing sooner when it is disabled via config
Don't global network parented entities (to fix tugboats)
Disable instancing on ice throne chair
Zero the entire `VertexData` struct instead of only color when copying the mesh on the GPU
Reimplement `#if UNITY_2021` after implementing GPU copy of meshes
Cherrypick
86650,
86651,86655 from global_networked_bases/2021 (compile fixes & GPU copy mesh for multidraw)
Merge gpu_copy_mesh -> global_networked_bases/2021
Copy mesh geometry to multidraw compute buffers via the GPU (avoids requirement of setting every mesh read/write enabled)
Fix compile errors in 2021
Update global_networked_bases/2021
More `#if UNITY_2021` checks
Bunch of `#if UNITY_2021` conditional compilation to keep it working on 2019
Merge from 2021 -> global_networked_bases
Merge from multidraw -> global_networked_bases/2021
Subtract
86589 (mark every building mesh as read/write enabled)
Fix demos not deleting instanced entities when changing keyframes
Cherrypick demo fix from global_networked_bases/2021/multidraw so they work in editor (and client?)
Merge from main -> global_networked_bases
Initialize & Dipose GeometryBuffer properly
Initialize instancing system when opening a demo (because you don't connect to server)
Add demo with fair amount of building blocks to test
Can specify normal rendering via GameSetup prefab in editor
Ensure ConstructionPlanner doesn't throw errors when instanced rendering is distanced via startup parameter
Fix material blocks still rebuilding every frame
Add some profiler samples
Enable shader keywords once per frame instead of once per draw call
Remove code that assigns material blocks every frame (good for testing, not for performance)
Only update material blocks when buffers have changed
Move from a ComputeBuffer for each type of vertex attribute to a single ComputeBuffer for all vertex data in a single struct
Move code that copies mesh to ComputeBuffer into GeometryBuffer.cs
Additional methods in GPUBuffer wrapper
Enable procedural instancing on blend shader
Log error when mesh used for instancing doesn't have read/write enabled
Ensure every prefab for instancing is warmed up in the editor
Mark every single building block mesh as read/write enable (NOTE: this cannot be merged to 2019!)
Add shader to InstancedScheduler (2021 prefabs not compatible with 2019)
Copy meshes into the single geometry buffer via a shader to deal with meshes with Read/Write disabled
Fix start vertex of multidraw being incorrect
Some cleanup
Show draw call count with multidraw in perf 7 properly
Move the temp manually assigning of computebuffers every frame above the loop that skips values
Fix mutlidraw count not being reset when new meshes are added
Ensure that non-multidraw instanced rendering still works to compare & see what is broken
Add all other mesh data to buffers & ensure they are assigned inside the shader: all uvs, normals, tangents, colors
Ensure all buffers are diposed
Fix draw calls so uvs at least work
Add MaterialCache so we can enable `RUST_PROCEDURAL_INSTANCING` on materials without modifying the source materials in the editor
Various fixes
Log when players mount & dismount vehicles
Log when burst mode is enabled & if the gunshot had burst mode on
Log scrap cost of blueprints when learning them & using tech tree (instead of only when using the research table)
Add analytics when diving tanks & jackhammers are refilled at workbench
Include skin when upgrading to a skinned building block
▄▄█ ▄▍▍▇▍▋▋▆▄▍ ▍▄▄▌▌ ▌▉▆▍▉▄▉▄█▉ ▉▍▊▍ ▍▋▉▉▇▍▊▋ ▍▆▅▆ ▌▅▍█▄▌
Add empty UVs for meshes without UVs (shadows) so vertexID always references the correct UVs
Try to setup shadows with procedural rendering but it has shader error
Rearrange some classes around
Store UVs in compute buffer (but they don't exactly work)
Make a `ProceduralSetup( VertexInput )` method that gets put before `InstancedSetup()` in the shader
Only enable procedural instancing keyword on materials used with instancing
Fix multi compile in the wrong place in the shader
Fix instancing keywords not being present in the instanced rendering method
"Clean" up the shader a bit
Fix shader for procedural rendering, verticies and indicies seem right now