21,427 Commits over 1,552 Days - 0.58cph!
▅▇▇▋▅▅ ▊▍▄█▍▊ ▆▉▉ ▉▌▌▅▇▋█▅▊ ▉▇▌█▊█▅▊▍██ ▊▅██
Invoke events
Clean up
Implement asset picker
If a picked asset is a cloud package then stick the ident in the search bar in the asset picker
Rather than going to .sbox/blablabla
Fix crash from drawing SceneObject with an override but no mesh material, resolves Facepunch/sbox-issues#6553
Fixed dedicated server console
No api for dedicated server
Create Run-DedicatedServer.bat
Fixed couldn't connect to ip based servers
Fixed couldn't read messages from dedicated server, because we didn't think they were the host
dedicated server doesn't try to play sounds
Clamp dirty regions within terrain bounds
Explicit updates for Terrain material buffers since we're not uploading this every frame like a mad man now
TerrainMaterial.Metalness range 0.0f - 1.0f
Always trigger native asset reload when files are added or deleted while in editor
- Fixes cases of error/fallbacks being used until a restart when a resource is added or a package updated.
- Deleting resources will now also update to accurately show fallbacks for most types.
Added GameObject/Component EyeDropper. Can select by clicking on an object directly or through the hierarchy. Resolves Facepunch/sbox-issues#6547
https://files.facepunch.com/CarsonKompon/2024/October/04_11-04-ChocolateXiphias.mp4
Dragging a prefab into a scene view uses the scale of the prefab. Resolves Facepunch/sbox-issues#6548
Terrain: Make texture paint & holes also work with new undo
Transform plane directly to local instead of using inverse matrix
Tiled Frustums
Start moving tiled_light_culling to use frusta
Iterate frustum tiled culling
Near/far tiled frustum planes
Very simple ConeIntersect and AABBIntersect
Cubemap frustum cullinng
Show cubemap complexity on tiled debug vis as well
https://files.facepunch.com/sampavlovic/1b2911b1/HM0UBknyYv.png
Set up things to use worldSpaceNear to fix orthographic rendering with tiled rendering, use depth min/max for building tiled frustums
https://imgur.com/a/tybd5Dv
Fix ortho projection for CalculateScreenTiles
[pick] Fix Depth::GetLinear and add Depth::Linearize
fix DepthMinMax on ortho projections, fixes tiled lights on ortho projections
https://files.facepunch.com/sampavlovic/1b3011b1/ZiyxdtwHc1.png
Delete tiled_frustums_cs, main shader does everything, we recalculate it every frame anyway since we also match the depth chain for the far plane, can store it later again from it if we need it for anything
Ensure that selected Media is 16/9 in PackageModals
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