branchrust_reboot/main/global_networked_basescancel
377 Commits over 153 Days - 0.10cph!
Try to fix LODs disappearing when crossing barriers
Move PreProcess after the prefab gets set to 0,0,0 to allow normal localToWorld
Add `Transform.LocalPrefabToRoot()` extension method to calculate localToWorld regardless of prefab's world position
Remove hack of setting prefabs to 0,0,0 before we PreProcessed them when isolating problems
Ensure LODs are ordered when processing them
Converted worldToLocal -> localToWorld
With matricies but still the same broken positions!
Got it "working" again
Job system runs on main thread til we figure out NativeList
Fix building blocks & prefabs not registering
Warmup prefabs in the editor manually based on network updates
Rewrote the code that determines what conditional model(s) to show based on grade, skin & modelState
Fixed prefabs that are no longer SingletonComponents
Clean up `InstancedMeshConverter` and register `InstancedPrefabConfig` out of `PrefabPreProcess` as well
Implemented skeleton of a job based frustum culling & lod culling system
Properly extract building grades & conditional models via PrefabPreProcess into code based configs
Update all building block prefabs with InstancedMeshFilter
Tool to auto convert all building blocks with one button click (and 30 minutes of waiting as unity saves them one by one)
Update editor tool to convert prefabs to InstancedMeshFilter
Beginning of massive refactor to support all entities & all types of world prefabs
Show instanced renderers, meshes, triangles & verticies drawn per frame with `perf 7`
Changed `global_networking` to a startup parameter that enabled/disables instanced rendering completely
Disable global rendering on barricade prefabs
Add "global_rendering" convar to disable renderers using the lowest LOD
Fix instanced rendering outside of network range defaulting to the highest LOD instead of lowest LOD
Add InstancedRenderScheduler & InstancedEntityScheduler prefabs to bundles/prefabs/world so they always spawn
Trying to profile an error that turned out to be corrupted asset bundles
merge from main -> global_networked_bases
Fix "Native Collection not disposed" error (forgot to dispose a NativeArray)
Fix compilation error on client
Refactor `InstancedEntityRenderScheduler` into `InstancedEntityScheduler` and `InstancedRenderScheduler`
First cleanup of code
All instanced rendering commands restricted to admins
Fix windmill scale being wrong as we weren't taking the full scale of individual MeshRenderers into account
Fixed so instanced rendering will show for entities not in network range
Small refactor
Disable instanced rendering on concrete barricade & sandbag (they have skins)
Remove old "windmill_main" model from windmill
Enable GPU instancing on windmill material
Use total scale of mesh instead of only localScale of renderer gameobject
merge from main -> global_networked_bases
Fixed rotation of certain entities being incorrect
Removed useless Dictionary<NetworkableId,GlobalEntityData>
Fixes for client only & server only errors
Additional build options to allow walking away from PC
- Windows Client + Client Bundles
- Windows Server + Server Bundles
- Windows Client + Server + Bundles
Enable instanced rendering on sam sites & windmills (using static mesh instead of skinned)
Fix instanced render data not being added in `InstancedOutsideNetworkRange` mode
Enable GPU instancing on more materials
Disabled instanced mesh tracking for animated enitites to keep it simple
Converting prefabs & materials to try and get them to spawn instanced when the entity is killed
Implement switching to instanced rendering only when an entity leaves network range
Also support using instanced rendering the whole time but switching from highest -> lowest LOD when entity leaves network range
Ghetto fix for doors reseting to default position when they send a network update when opened
Instanced rendering now works with animated entities (doors)
Grabs new position & rotation via transform.hasChanged (needs better solution long term)
Add `InstancedmeshTracker` component that tracks each moving mesh of an entity
Support multiple of the same mesh per entity (when deleting & updating)
Fix foundations not having all meshes deleted
Send raw position of global building entities instead of network position
Better warnings when mesh renderers aren't matched up
Use `GameManager.client.FindPrefab()` instead of `GameObjectRef.Get()` when disabling render components to avoid editing the real prefab
Forgot to assign skin when sending global entity to client
Fixed normal renderers not actually being disabled (broke after moving disabling to PreProcess)
Add ability to disable instanced rendering for a prefab via InstancedMeshFilter
Renamed InstancedRenderComponent to InstancedMeshFilter
Material & prefab changes after enabling GPU instancing / using InstancedMeshFilter
Throw error instead of auto enabling GPU instancing (incase they don't spawn prefab while in editor and miss it)
Multiple materials will work with indirect rendering too
Don't global network doors by default
Send global network when entity is first spawned
Automatically enable GPU instancing on materials when used with instanced rendering
Fix instanced rendering to work with multiple materials
merge from main -> global_networked_bases