3,110 Commits over 915 Days - 0.14cph!
Fix multidraw convar so it defaults false
Player controlled color for construction skin actually works now
Merge multidraw convar fix
Some fixes
Leave "random color based on position in world" to shader until we get the "color set by players" working
Default multidraw to false on 2019 (for editor) as it only works in 2021 and causes nothing to render when enabled
More work on getting colors working
Include customColor in GlobalUpdate & send update when building block color is changed
Support custom colors per mesh, effectively allowing us to override MaterialProperyBlock per mesh like old rendering system
Will fix container not being recolored by players with instancing
Change tooltip for global rendering option & add tooltip for global render distance
Add menu option to turn instanced rendering on and off (called global rendering)
Rename `building_distance` to `global_render_distance`
Add `instanced_rendering` convar that is saved but only applies at startup
Merge from main -> global_networked_bases
Cherrypick
86832 (compile fixes)
Split InstancedPrefabConverter into 2 classes
Fix compile errors
Update global_networked_bases/2021
Increase initial size of mutlidraw buffer
Log info instead of error when resizing since it seems to work
Cherrypick
86780 (cache meshes for multidraw)
Fix multidraw convar so it's enabled by default
Cache meshes so we don't copy the same one to the GPU multiple times
Add memory usage of multidraw buffer
Tool to list all shaders (so we know what shaders to pay attention to)
Fix shaders to make cliffs work with multidraw
Set default mode of copying meshes via GPU (CPU mode has incorrect indicies for cliffs)
Standardize the way we detect meshes with read/write disabled
Update global_networked_bases/2021
Mark instancing meshes readable
Change path of prefab converter to only prefabs to speed it up
Update global_networked_bases/2021
Add `upload_multidraw_meshes_mode = 0` to control whether meshes are uploaded via the CPU or GPU
default to CPU upload meshes
Mark meshes readable for instancing
Add tool to ensure every single mesh used for instancing is marked read/write enabled
Fix global entities being hidden when leaving network range
Cherrypick
86740 (ensure mesh is uploaded to GPU)
Ensure mesh is uploaded to the GPU before we copy it to our ComputeBuffer
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