20,764 Commits over 1,522 Days - 0.57cph!
Apply cubemap normalization properly on flat ambient light
Apply subsurface scattering to IBL lighting, looks shit otherwise
https://imgur.com/a/yipFu52
Iterate GTAO
Iterate GTAO
Fog Fix, allows you to change light settings for volumetric fog specifically and does a massive cleanup, last try of this had some perf issues but should be sorted
Squashed commit of the following:
commit 4c0d34857bb545c62a83b6b09ef65261dca3ddd8
Author: Sam Pavlovic <sam@sampavlovic.com>
Date: Thu Oct 3 18:41:48 2024 +0100
We dont use CLightBinnerStandard::InitForView twice in same view, rename GetLightbinnerStandard from scenesystem to not conflict with views getlightbinnerstandard which has different behavior
commit 8f3d1244f38a74525bcba28dc520ae5bf1dd1099
Author: Sam Pavlovic <sam@sampavlovic.com>
Date: Wed Oct 2 14:06:40 2024 +0100
Make fog lights buffer persistent with the volumetric fog's lifetime
commit 0d5bee31cad9b54fc75e2dbff85accfd03d7b3e1
Author: Sam Pavlovic <sam@sampavlovic.com>
Date: Wed Oct 2 13:52:39 2024 +0100
Make sure this is properly inlined to never trash cache
commit 5709fcf4b113088c684c095fc08d05fe176f940c
Author: Sam Pavlovic <sam@sampavlovic.com>
Date: Wed Oct 2 11:46:35 2024 +0100
LightBinner::InitFromParent and disable fog shadows
commit 93fa098f5c55bddfa4b3d3261b26b7c9edfc8dd8
Author: Sam Pavlovic <sam@sampavlovic.com>
Date: Tue Oct 1 18:01:49 2024 +0100
Some lightbinner cleanup, allow it to be used directly without the complex system that scenesystem wants, remove bRenderFogClipmaps for
commit 6f0125fd6ad1bf5512346ffe3c727532a6687cf4
Author: Sam Pavlovic <sam@sampavlovic.com>
Date: Fri Sep 6 13:23:03 2024 -0300
Put fog mode in it's own category and add nice icons to them
https://files.facepunch.com/sam/1b0611b1/zwd8qAJFu7.png
commit 0ff3702c73cf54edddc5dd82b8c54598904fae10
Author: Sam Pavlovic <sam@sampavlovic.com>
Date: Fri Sep 6 13:14:08 2024 -0300
Share dynamic shadow atlas if we have more than one lightbinner per view ( for example, fog ), fix light fog strength
commit 50170c166dd1cc37d863046aa632a30fb6629860
Author: Sam Pavlovic <sam@sampavlovic.com>
Date: Fri Sep 6 12:47:35 2024 -0300
VolumetricFogRenderer has it's own lightbinner outside of lightbinner pool, does lightbinning to fetch fog lights for the fog context only, fixes fog light settings not doing anything, deprecate LAYERFLAGS_NEEDS_FOG_CONTRIBUTING_LIGHTS since we don't need special code for that anymore
Don't update shadows on fog pass, some lights are set to be updated always but should all be fetched from cache
We dont use CLightBinnerStandard::InitForView twice in same view, rename GetLightbinnerStandard from scenesystem to not conflict with views getlightbinnerstandard which has different behavior
RectInt: your favourite Rect struct but with integers
Texture.GetPixels: Able to specify dstRect fully
Terrain optimizations, better undo/redo, clean up
* Implement new undo/redo system, track delta changes instead of full snapshots (faster, more reliable)
* Don't upload buffers every frame in OnPreRender
* Stop using MakeDirty, each property only updates what it needs to
* Only create SceneObject when we can actually use it
* Don't over expose public methods & properties, remove dead methods
Optimize TerrainStorage.GetDominantControlMapIndices 400ms -> 1ms
Pass in a buffer we get from ArrayPool instead of allocating and returning, also preresolve some getters
Vector3: Aggressive inlining on aggressively inlined System.Numerics.Vector3 methods
TerrainClipmap mesh gen optimize 266ms -> 26ms
Rotation can parse from serialized Angles, resolves Facepunch/sbox-issues#6085
Save viewport settings to project cookie instead of global editor cookie
Fix scene view cookie not always correctly saving
Scene view: Save 2d zoom per-scene alongside camera position/rotation
Scene view: Save Layout to project cookie
Remove AssetPopup, we're just overcomplicating things for no reason there
Directory context menu
Clean up asset list entries
Remove unused, hook up AssetLocations.OnFolderSelected
Editor: add ability to define launch arguments for new game instances, resolves Facepunch/sbox-issues#6095
Resolve Facepunch/sbox-issues#5844 - Input.ReleaseAction/Actions should work across contexts
Update Facepunch.ActionGraphs
Move project cookies to .sbox/
Move asset thumbnails to .sbox/
Fix some cloud package thumbnails getting unnecessarily downloaded
Stick cloud/local asset thumbnail cache on different paths so these can't conflict
Add GameObject.GetLocalBounds()
Add GameObject.WorldTransform, WorldPosition, WorldRotation, WorldScale
Add Component.WorldTransform, WorldScale, WorldPosition, WorldRotation
Mark Transform.LocalPosition, LocalScale, LocalRotation, Scale obsolete
Mark .Transform.Rotation obsolete now .WorldRotation
Mark .Transform.Position obsolete, now WorldPosition
Prevent processing any snapshot information from an old owner. Ensure interpolation clear flag is sent when dropping ownership and interpolation is cleared when ownership is changed at all. This resolves a lot of issues in Walker when picking up / dropping / throwing objects.
Fix NRE's when renaming component - some work needs to be done here though to handle renames gracefully
Fix plug dimensions
Hacky fix for weird scale of bitwise or node icon
Link pulse colors for Boolean / null / Color types
https://files.facepunch.com/ziks/2024-10-02/sbox-dev_pT2RtiTvKq.mp4
https://files.facepunch.com/ziks/2024-10-02/sbox-dev_S1OdYgxDUi.mp4
Unlock stat based map achievements
Asset type picker entries are now handled by AssetBrowser/CloudBrowser
Open up asset locations
https://files.facepunch.com/alexguthrie/1b0211b1/sbox-dev_mXx146R80H.png
Add all types to cloud browser
Can only select one cloud asset type at once (or it'll mess with facets etc.)
https://files.facepunch.com/alexguthrie/1b0211b1/sbox-dev_1BIcVF3lFI.mp4
Order modes
Add cloud browser to hammer
Asset browser defaults to project assets path
Update view mode icon when scrolling
Disable Parent Directory button if we're in project assets root
PathWidget fixes, separate segment update
Remove AssetBrowserLocation.FromPath, unused
Run OnPathEdited at the end of AssetBrowser ctor so we can disable Parent Directory button if needed
Walker map project template
Clean up formatting
More node UI tweaks
https://files.facepunch.com/ziks/2024-10-02/sbox-dev_IOVG6YMt1f.png
Fix exception when loading map, causing them to not be able to unload
Fix possible NRE in PlugIn.OnPaint
Add some more shortcuts to graph editors
* Ctrl+D: duplicate selection
* Esc: Clear selection
* F: Frame on selection
VolumetricFogRenderer has it's own lightbinner outside of lightbinner pool, does lightbinning to fetch fog lights for the fog context only, fixes fog light settings not doing anything, deprecate LAYERFLAGS_NEEDS_FOG_CONTRIBUTING_LIGHTS since we don't need special code for that anymore
Share dynamic shadow atlas if we have more than one lightbinner per view ( for example, fog ), fix light fog strength
Put fog mode in it's own category and add nice icons to them
https://files.facepunch.com/sam/1b0611b1/zwd8qAJFu7.png
Some lightbinner cleanup, allow it to be used directly without the complex system that scenesystem wants, remove bRenderFogClipmaps for
LightBinner::InitFromParent and disable fog shadows
Make sure this is properly inlined to never trash cache
Make fog lights buffer persistent with the volumetric fog's lifetime
GameObject,GetBounds() works with MeshComponent
Mesh component center origin restores child transforms
Fix scene.get embedded nodes for non-target inputs
https://files.facepunch.com/ziks/2024-10-02/sbox-dev_FG2liuGeku.mp4
Add all properties of mesh component to sheet, filter the ones we don't want
LightBinner::InitFromParent and disable fog shadows
Tweak operator node sizes to match input count
https://files.facepunch.com/ziks/2024-10-02/sbox-dev_Nv5hjvflDz.png
Clean up resource.ref / scene.ref node titles / descriptions
https://files.facepunch.com/ziks/2024-10-02/zZzwIo8N8R.png
Use EditorWindow for FileDialog parent here, fixes component type selector crash
Deserialize replaced component with json of previous component
Add replace component to component context menu because I kept finding myself expecting it to be there https://files.facepunch.com/layla/1b0111b1/sbox-dev_GO4iCHd7Qw.mp4
Humans: same fix as Citizen + lower the weight of ShoulderToBicep constraints to account for the "bicep bulges" contributing to the situation... and also because it just looks better
Citizen: fixed incorrectly nested nodes in the AnimConstraintList prefab because ModelDoc doesn't know how to properly manage a folder of nodes being drag-and-dropped between VMDLs and prefabs
Add context menu helper to use component as input
https://files.facepunch.com/ziks/2024-10-01/sbox-dev_hxsAZ448Hi.mp4
Try getting local mouse position from scene viewport
VolumetricFogRenderer has it's own lightbinner outside of lightbinner pool, does lightbinning to fetch fog lights for the fog context only, fixes fog light settings not doing anything, deprecate LAYERFLAGS_NEEDS_FOG_CONTRIBUTING_LIGHTS since we don't need special code for that anymore
Share dynamic shadow atlas if we have more than one lightbinner per view ( for example, fog ), fix light fog strength
Put fog mode in it's own category and add nice icons to them
https://files.facepunch.com/sam/1b0611b1/zwd8qAJFu7.png
Some lightbinner cleanup, allow it to be used directly without the complex system that scenesystem wants, remove bRenderFogClipmaps for
Mesh component uses custom editor so it can have editor operations https://files.facepunch.com/layla/1b0111b1/explorer_oFDFsVdl1V.mp4
Don't recreate Edit menu, just update the undo options - fixes Facepunch/sbox-issues#6539
Capitalise code folder in game minimal template, resolves Facepunch/sbox-issues#6331
Add addon .sbox/ to gitignore
steamApiDll wasn't being populated properly, so it'd never free
Dynamic edit menu, show top undo/redo entry name, disable if nothing on stack
https://files.facepunch.com/matt/1b0111b1/0jX7JegPIJ.png
Generate an action invoker component for each ISceneEvent interface
Add CanPress to IPressable
Catch possible NRE
Expanded logging for cases where Package.FetchAsync can fail
Don't bother with cloud stuff if the backend isn't available
Attempt retries when failing to save asset metadata
Add access to joints on PhysicsGroupDescription, this is needed to phase out native physics aggregates in physics components
Fixed query mode Sync vars
vdf FileExclusion is probably case sensitive because why not
Add ISceneEvent<T>.PostToGameObject - to target specific GameObjects with an event
Add IGameObjectNetworkEvents - https://docs.facepunch.com/s/sbox-dev/doc/igameobjectnetworkevents-fj9F6GvG5S
Tweak Rigdbody networking, so that when it works it will work