branchrust_reboot/main/global_networked_basescancel
377 Commits over 153 Days - 0.10cph!
Convert DeployGuide to Graphics.DrawMesh() only to find out it's only used for codelocks
Start converting ConstructionPlaceholder over instead
Getting ready to convert all InstancedMeshFilter to be applied to every MeshRenderer instead of "one InstancedMeshFilter per prefab"
Standardize "single method" to ingest all types renderers into instanced rendering configs: RendererLOD, MeshLOD and plan MeshRenderers
Convert a bunch of deployables
Convert landmine to rendererlod
Support importing MeshLOD into InstancedMeshFilter
Fix embrasure instanced rendering missing. add instanced rendering to large box
Disable work shop skin applying since MeshRenderers are removed
Fix foundation floor not showing
Implement removing mesh (again)
Update virtualMeshId when allocating larger section for a grid
Submit draw calls for instanced rendering in `OnPreCull()` and start the culling job at the end of `Update()`
More skeleton of texture atlas stuff
Add skeleton of `WorkshopSkinScheduler` and `TextureAtlasScheduler` that will let us use a skin draw call for all skins of a material
Various fixes
Enabling instancing on some cliff shaders
Fix renderers only being removed for building blocks
Make `InstancedMeshFilter` a client component so it gets culled off the server
Remove virtual prefab tracking when loading map (will clear every instanced prefab when map unloads instead)
Fix instanced world prefabs spawning under terrain
Ensure CullingJob skips over hidden meshes
Setting 2019 ComputeBuffer to SubUpdates causes it to silently not update :(
Move location of "spawn virtual world prefab"
Convert v3 rocks to instanced rendering
Add method to toggle the visibility of an instanced mesh without removing it from the array
Support animated entities (again) by disabling instanced rendering when inside network range & enabling it when they go outside network range
Remove `InstancedMeshTracker` until we properly support animated entities one day
Added config option to `InstancedMeshFilter` that allows you to specify what meshes to use for an entity placeholder
Add post culling job to count number of meshes in output
Merge from main -> global_networked_bases
See if instanced rendering will work with world prefabs (rocks)
Also remove MeshFilter & every RendererBatch
Add `StripChildren` component to all building block prefabs
Automatically add `StripChildren` component to building blocks when using tool to convert to instanced rendering
Add `StripChildren` prefab attribute to remove all empty child gameobjects
Add to wall prefab
LODs will adjust their distance based on FOV / when you zoom in
Merge from main -> global_networked_bases
Disabled redundant disabled reflection probes on a bunch of building blocks
Add debug message when a prefab with a disabled reflection gameobject is found (to quickly find prefabs)
Remove disabled reflection probe renderers from left & right conditional walls
Frustum culling fixed & works based off max render range
Fix NativeArray.Add() expanding array size every time
Expand RenderData & ComputeBuffer
Frustum culling entire grids before rendering to test
Lots of fixes make the grid based rendering minimally functional again
Add `Instancing` namespace
Start implementing storing meshes into grids to enforce max render distance & frustum culling effeciently
Reduce from 6 to 2 frustum planes
Fix twig foundations not showing
Cull shadows at shadow distance
Make a separate monobehavior to call into InstancedEntityScheduler
- due to PreProcess is being called before the InstancedEntityScheduler was spawned
Fix unity "startIndex" with DrawMeshInstancedIndirect() not working
Implement custom shader property "_InstancedIndexOffset" to fix it
Add `test_instanced_culling` command to spawn in 50k-200k random prefabs
Fix race condition in culling job by uncommenting original threadsafe increment
Add placeholder sorting of input data to see if sorting significantly speeds up culling job
Culling job now runs across multiple threads via job system
Disable ParallelForRestriction in culling job
Remove redundant reflection probe renderer from wall prefabs
Do distance culling before frusum culling
Measure culling job execution time
Bunch of small fixes
FINALLY rendering in the correct place again because I had to use a separate computebuffer for each DrawMeshInstancedindirect() call?
Wrote again to have single array to make job system happy
Input: large unsorted NativeArray of every meshes
Cull and sort them in the job system
Render each mesh from a large compute buffer of the output
Not rendering in exactly the right place but need to checkpoint
Progress of rewriting MeshRenderers to use a single NativeArray for every mesh instead of a separate NativeArray for each type of mesh
Convert jobs to use NativeArray instead of List
Add InstancedMeshFilter to workbenches & window embrasures