402 Commits over 92 Days - 0.18cph!
Fix some NREs when accessing colliders from navmesh components
Ensure navmesh area stays in sync when linked collider changes
Cleanup NavMeshArea Component
Use custom functions instead of GJK to bake physics shapes into the navmesh
Baking a physics shape now takes sub 100μs in most scenarios.
Optimize by caching GJK simplexes when rasterizing obstacles
Experiment with arbitrary physics shapes as navmesh obstacles
Performance is not good, needs more optimization to be viable.
https://files.facepunch.com/lolleko/1b2611b1/sbox-dev_i7IaHMmjKv.mp4
Ignore triggers in NavMesh Generation
Fix issues with navmesh generation API
Should also fix tests
Fix navmesh debug draw disappearing at certain heights
Allow NavMesh areas to have arbitrary transforms
Reduce debug draw ground offset
Rename Obstacle -> Area
In the future the defined Areas defined maybe used for other purposes beyond blocking/obstructing
Be very careful about when we load assemblies in LoadNetworkTables
Facepunch/sbox-issues#6984
Only warn once if Json serialization happens during a hotload
Facepunch/sbox-issues#6984
Expose BoneCollection / Bone to ActionGraph
Fixes Facepunch/sbox-issues#6878
Give each scene dock a unique name and fix load order so we maintain layout positions
Move window layout to project cookie, will fallback to importing from editor cookie for now
Lazy-initialize NavMesh GeneratorPool
Restore AssertNoGraphErrorsInScene test
Fixes #1709
Asset Browser: Show 'Open File Location' in context menu when searching too
Asset Browser: Disable flat/recursive toggle button when searching or in meta location
Hook up Package.Data
GameModal now correctly uses GameConfig from backend
Fix "no screenshots" being thin
After purchase, keep refreshing until we have the item
Indicate when you already own items
Fix NRE in NavMesh Dispose
Restore colliders on rigidbody disable if the collider is still active
Don't let collider dictate body type when there's a rigidbody, colliders could have a mix of statics so rigidbody should be the authority on this
Load Model.Plane
Add Graphics.DrawModelInstanced with count for procedural instancing, document other instanced methods
Add DrawModelInstanced methods to CommandList
Add CommandList.Set for ComputeBuffer<T>
Update default JSON ignore condition to use JsonIgnoreCondition.Never
Resolves Facepunch/sbox-issues#6995,
Resolves Facepunch/sbox-issues#6953,
Resolves Facepunch/sbox-issues#6349
Add Graphics.ResourceBarrierTransition supports transitioning Textures and ComputeBuffers states currently, e.g if you wanted to signal a resource should be readable in fragment after a compute write to it
Fixed .config files not being added to appropriate string table for clients to receive changes
Scene collision events (#1707)
An interface to listen for all collision events that happen during a physics step
Fixed NRE when trying to delete non-asset files, resolves Facepunch/sbox-issues#7002
Support drag data for GameObjectControlWidget, resolves Facepunch/sbox-issues#6998
https://files.facepunch.com/tony/1b2311b1/sbox-dev_xLjcpe9xed.mp4
Organisation -> Organization where necessary
Resolves Facepunch/sbox-issues#6822
Delete view_shared, move CViewSetup to camerarenderer and start removing unused junk from it
Add CameraComponent.CustomSize to override aspect ratio. When rendering to a render target, sometimes you want the aspect of the screen and not the texture
Add CameraComponent.ProjectionMatrix
Add CameraComponent.CalculateObliqueMatrix to clip projection with a worldspace clip-plane
Remove SCENEOBJECTTYPEFLAG_IS_PROCEDURAL - it does nothing
Envmap feathering defaults to much tighter
SkyIndirectLighting param in hammer env_sky since it seems it never was there
Bail Model.Load early with error model for null or whitespace filename
Revert "Add recast/detour tile cache"
This reverts commit 0b2e398df82b304b23f7ddd2485b943ba1fe20ab.
We will use a custom caching solution instead.
Merge branch 'master' into navmesh-dynamic-obstacles
Fix test
Revert "Add recast/detour tile cache"
This reverts commit 0b2e398df82b304b23f7ddd2485b943ba1fe20ab.
We will use a custom caching solution instead.
Cleanup obstacle components
Integrate heightfield building into the tile cache
Refactor NavMesh class structure
Improve navmesh initialization
Remove dead code
Fix tiny memory leak
Rename CNavMeshCachedData -> CNavMeshHeightFieldData
More resilient native memory pooling
Make navmesh generator pools static
Pool memory for native tile heightfields
Revert marking the entire navmesh as unwarkable
Fix NRE in NavMesh Dispose
Optimize culling in navmesh debug draw
Fix memory leak in navmesh builder
Add GameObject.IsDestroyed - to detect objects that have Destroy() called on them, but haven't been destroyed enough to be IsValid false yet
Don't return components on objects that are IsDestroyed
Humans: skinning updates
VR: init g_pVrSystem before finishing material system setup
VR: check for headset in PreInit() instead of Init()
UI: Expose UI.WorldInput.Hovered inside WorldInput component
Upgrade remaining old vmdl files so I can delete all this legacy model code
Humans: more skinning updates & prefab changes
Merge branch 'master' of sbox
Add Distance and Falloff to Voice Transmitter
izIsSoft changes
VR: more logging, always enable debug callback
VR: add -novr force disable
Update fpxr to 8e70816536da3c657eb9f9a7b815268c5ef7a729, improves headset checks
Fix clothing using the wrong skin
Fix HasUnsavedChanges being sucked into GameResource
GameObject's FindByGuid will find prefabs (allows networking prefabs over RPC)
Change prefab icon color
Add GameObject.GetPrefab( string )
AssetBrowserLocation tracks location type (code, assets etc)
Create asset menu is context-specific to the location type, creates in place and opens rename flyout instead of using system dialog
Unify usage of AssetBrowserLocation and its presentation/directory/hiding logic
Asset Browser: Improve navigation outside of project tree
Path widget only displays what can fit instead of freely growing, hide rest behind flyout
Ignore calls to Scene.Parent.set
Iterate children nicer in PostDeserialize, in case children get added/removed during deserializing
which they do - like when creating attachments
Add GameObject constructor which takes a parent
Expose PerChannel<T>.Get and Set
Print a list of new items in console after check out
Uninstanced prefabs (#1708)
Can retrieve components and child gameobjects from uninstanced Prefabs
Asset Browser: streamline navigation flow
Asset location presentation tweaks, improved path handling
Initial path widget width because it starting off small is so very annoying
Fix NRE in PrefabFile.PostReload
Fix NRE in CloudBrowser
Fix warnings
Fix 'cut component' not being undoable, Facepunch/sbox-issues#6949
Can DrawInstanced a number of instances without uploading data
Remove unused asset browser node type
Fix some Gizmo functions drawing an obsolete vertex object instead of nothing
When provided with an empty Enumerable: Lines(), LineTriangles() & SolidTriangles() would reuse & draw the vertex object of the previous frame instead of nothing.
They now correctly draw nothing if an empty Enumerable passed.
Fix asset browser NRE, default location stomping cookied path
Disable undo/redo menu buttons when there's no active editor session
Optimize allocations in Gizmo Lines(), LineTriangles(), SolidTriangles()
Fix [Button] not showing in asset inspector, resolves Facepunch/sbox-issues#6985
Merge branch 'master' into navmesh-dynamic-obstacles
Optimize allocations in Gizmo Lines(), LineTriangles(), SolidTriangles()
Spread navmesh obstacle updates across multiple frames
Fix some Gizmo functions drawing an obsolete vertex object instead of nothing
When provided with an empty Enumerable: Lines(), LineTriangles() & SolidTriangles() would reuse & draw the vertex object of the previous frame instead of nothing.
They now correctly draw nothing if an empty Enumerable passed.
Progress on tile caching & dynamic obstacles
https://files.facepunch.com/lolleko/1b2111b1/sbox-dev_CQAKEpUbQk.mp4
FOV and distance culling for navmesh debug draw
Split up generation procedure into more functions
Convert obstacles from World to NavSpace
Dispose of navmesh + heightfield generators
Add native obstacle rasterization for box, cylinder and convex shapes
Split generator Into HeightField and NavMesh generator
Initial tile cache skeleton
Add recast/detour tile cache
Improve readability of docs sidebar
Optimize navmesh geometry collection by fully utilizing the BVH of a physics mesh
Optimize navmesh generation by pooling generators (#1703)
This also fixes sbox-issues/issues/6941 by limiting the degree of parallelism for the generation.
Improve navmesh generator cleanip
Reenable AssertNoGraphErrorsInScene test
Temporarily ignoring AssertNoGraphErrorsInScene
Bump verbosity for PR tests
Optimize navmesh generation by pooling generators
This also fixes sbox-issues/issues/6941 by limiting the degree of parallelism for the generation.
Fixed regressions in CPhysicsShape::GetTriangulation
Yeet the weird pointer iteration that fucked me 3 times by now.
Revert "Optimize navmesh generation by pooling generators 2.0"
This reverts commit 54123afcdceb6e924eb14625985a3501f2d801e4.
Optimize navmesh generation by pooling generators 2.0
This also fixes sbox-issues/issues/6941 by limiting the degree of parallelism for the generation.
Revert "Optimize navmesh generation by pooling generators"
This reverts commit 263974a602d63b4b817b5561b9a010689859b01f.
Until we can figure out why an unrelated test started failing.
Optimize navmesh generation by pooling generators
This also fixes sbox-issues/issues/6941 by limiting the degree of parallelism for the generation.
Optimize Memory Allocations in CPhysicsShape::GetTriangulation