22,417 Commits over 1,614 Days - 0.58cph!
Added bespoke publish step for workshop eligible assets, much better flow, reverted my changes to AssetPublishWidget
Scene Delete: fix selection change causing wrong items to be deleted
Fixes sbox-issues/issues/7457
Use IsValid() instead of null check
Fix NRE when trying to undo snapshot parent for scenes/prefabs
Constant nodes now have a "Preview" input in Subgraphs that is used to preview a default value for that input
https://files.facepunch.com/CarsonKompon/2025/January/27_16-57-SociableMilkweedbug.mp4
Fix NRE when last gameobject in hierachy is dragged
Fixes sbox-issues/issues/7456
Compile when initially loading a ShaderGraph file so you don't have to save to see the preview
Trying to open a ShaderGraph file that's already open will bring the window to the front instead of throwing a warning
Updating a DefaultValue on a Subgraph node will instantly reflect the changes
Improved undo system (#1775)
**Goal:** Move away from snapshotting whole scenes as much as possible. Get rid of edit log, mouse up hack and other stuff.
The documentation for the new system serves as a nice summary for the API changes added in this PR: https://docs.facepunch.com/doc/scene-undo-system-d4mhnmtil1
Changes:
- Fixes a third of our undo actions, which were partially or completely broken
- Removes EditLog and replaces it with scope based undo system.
- UndoScopes define what objects and events are captured for undo.
- Internal system automatically generates a minimal snapshot of all changes made and restores them on undo/redo
- Full Scene is only captured when an Gameobject or Component is deleted.
- This should make the new system faster and "snappier"
- Removes the mouse up/undo accumulation hack; By adding `StartEdit/FinishEdit` events to our `ControlWidgets` & `SerializedObject`.
Obsolete:
- ISceneEditorSession.AddSelectionUndo & SceneEditorSession.OnEditLog
- ISceneEditorSession.OnEditLog & SceneEditorSession.OnEditLog
- ISceneEditorSession.RecordChange & SceneEditorSession.RecordChange
- SceneEditorSession.PushUndoSelection
- SceneEditorSession.FullUndoSnapshot
- UndoSystem.SetSnapshotFunction
- UndoSystem.Snapshot
- GameObject.EditLog
- Component.EditLog
Resolves [#4477](sbox-issues/issues/4477)
EditorEvent fires whenever a subgraph is updated, reloading any open windows that reference the subgraph
Prefix undoscope functions with `With`
Fix transforms being undone twice when restoring scene hierarchy on undo/redo
Fix propertyeditstart/propertyeditfinish events on rotationcontrolwidget
Fix undo for multi selection
Fix GraphCompiler pulling the cached input results from other graphs during preview compilation
Add IParameterNode.GetDefaultValue(), used to pre-populate inputs on created sub-nodes
Require input names on subgraphs, error when any are matching. Subgraphs within subgraphs now working as expected
Fixed SetItemContent not working properly, store WorkshopId in Metadata on upload
Open our workshop item in browser upon a successful upload
Add utils to upload a clothing item to the workshop, create a transient directory to store item contents, delete once we're done with it, use item icon
Fix issues with graph nesting evaluation
Fix attributes from parent graphs not being pulled in all cases.
Do not expose parameters/attributes from subgraphs in final shaders
Modify recast/detour deacceleration logic to prevent overshooting of agent target position
Add documentation for Acceleration property.
Bump default acceleration.
Add SteamUgc
Asset ProjectConfig can hold a WorkshopId, start working on adding this to the publish widget
Make sure Result node returns default values when evaluating material/pixel output
Ensure all variables/attributes are defined properly by changing some order. Fixes shader compile errors.
Bump nav agent ground trace distance
Skin applies new decals (uses non-shared rendering path so Decals::Apply has to be inserted here)
https://files.facepunch.com/matt/1b2711b1/sbox-dev_PM9LtJUEwM.png
Build shaders
Improve default nav agent ground trace logic
Should improve ground detection behavior when passing under low height overhangs.
Should also fix issues with clipping, when the navmesh geometry diverges too much from the actual physics geometry.
Closes sbox-issues/issues/7432
Revert "Bindless lightmaps/Lightmap Combo Removal (#1765)"
This reverts commit 1fdcdeab689851f1093853faa8d8b4d6041d63f7.
# Conflicts:
# game/addons/base/Assets/postprocess/ObjectHighlight/objecthighlight.shader_c
# game/addons/base/Assets/shaders/atmosphere_sky.shader_c
# game/addons/base/Assets/shaders/blendable.shader_c
# game/addons/base/Assets/shaders/foliage.shader_c
# game/addons/base/Assets/shaders/fur.shader_c
# game/addons/base/Assets/shaders/gizmo/gizmo_grid.shader_c
# game/addons/base/Assets/shaders/gizmo/gizmo_line.shader_c
# game/addons/base/Assets/shaders/glass.shader_c
# game/addons/base/Assets/shaders/line.shader_c
# game/addons/base/Assets/shaders/lpv_debug.shader_c
# game/addons/base/Assets/shaders/sprite.shader_c
# game/addons/base/Assets/shaders/terrain.shader_c
# game/addons/base/Assets/shaders/terrain_brush.shader_c
# game/addons/base/Assets/shaders/terrain_preview.shader_c
# game/addons/base/Assets/shaders/tiled_light_culling_cs.shader_c
# game/addons/base/Assets/shaders/ui_backdropfilter.shader_c
# game/addons/base/Assets/shaders/ui_basic.shader_c
# game/addons/base/Assets/shaders/ui_borderwrap.shader_c
# game/addons/base/Assets/shaders/ui_cssbox.shader_c
# game/addons/base/Assets/shaders/ui_cssshadow.shader_c
# game/addons/base/Assets/shaders/ui_dropshadow.shader_c
# game/addons/base/Assets/shaders/ui_filter.shader_c
# game/addons/base/Assets/shaders/ui_text.shader_c
# game/addons/base/Assets/shaders/vertex_color.shader_c
# game/addons/base/Assets/shaders/water.shader_c
# game/core/shaders/black_unlit.shader_c
# game/core/shaders/cables.shader_c
# game/core/shaders/complex.shader_c
# game/core/shaders/complex_reflections.shader_c
# game/core/shaders/cs_volumetric_fog.shader_c
# game/core/shaders/debug_wireframe_2d.shader_c
# game/core/shaders/decal.shader_c
# game/core/shaders/depth_only.shader_c
# game/core/shaders/eyeball.shader_c
# game/core/shaders/generic.shader_c
# game/core/shaders/hair.shader_c
# game/core/shaders/post_process.shader_c
# game/core/shaders/projected_decals.shader_c
# game/core/shaders/projected_sheet_decals.shader_c
# game/core/shaders/simple.shader_c
# game/core/shaders/skin.shader_c
# game/core/shaders/sky.shader_c
# game/core/shaders/spritecard.shader_c
# game/core/shaders/static_overlay.shader_c
# game/core/shaders/tools_shading_complexity.shader_c
# game/core/shaders/tools_solid.shader_c
# game/core/shaders/tools_visualize_collision_mesh.shader_c
# game/core/shaders/tools_wireframe.shader_c
# game/core/shaders/ui.shader_c
# game/core/shaders/visualize_cloth.shader_c
# game/core/shaders/visualize_nav.shader_c
# game/core/shaders/visualize_physics.shader_c
# game/core/shaders/vr_tools_shading_complexity.shader_c
Build shaders
If we have any command line arguments from the Steam client (sbox.game -rungame), parse it via ISteamApps.GetLaunchCommandLine
Expose Application.ShutdownUnitTest()
Throws if not currently running a unit test
Make sure it doesn't run in headless (errors out on dedicated server)
Some tidy up - data table ReadFilter instead of other method, reset delta snapshot cache on owner change and after network refresh is received
Add Simulate Packet Loss alongside Simulate Lag in editor network options - it's working for simulating outgoing lost packets from the host right now
VR: Remove obsolete controller checking bools that nobody's using
VR: Add IsHandTracked bool to VRController, update fpxr to 5cf7ff24f5b157166102c8e4898bb84b4accb952
VR: Add MotionRange to VRController.GetJoints, update fpxr to 8822f0461709fbd2eda8fe004d51af79d47e6aa9
e.g.
```csharp
Input.VR.LeftHand.GetJoints( MotionRange.Hand ); // default
Input.VR.LeftHand.GetJoints( MotionRange.Controller ); // tries to wrap hands around the controller
```
VR: Better controller interactions in menu, move panel to a more comfortable height
Reapply "Bindless lightmaps/Lightmap Combo Removal (#1765)"
This reverts commit de7b93d17c7a036a567347794ca51163132ef42a.
Reapply BATCH_FLAGS_CONTROLLING_COMBO_CHANGES for legacy shaders, accidentally removed binding lightmap for legacy shaders
Initialize vertex output of lightmap uv when lightmapping is disabled
Update drivers with bindless lightmaps & amd fix
Humans/animgraph: added Sprint_NW & Sprint_NE
Don't accept "game" command while Application.IsEditor
Compute Shader Skinning (#1786)
Calculate skinning in compute shader instead of vertex shader
Compile shaders
Can now right click on a Shader to "Create Material" from it.
https://files.facepunch.com/CarsonKompon/2025/January/24_17-29-EmptyPony.png
Fix typo in MaterialMenu
add octohedral_encoding.fxc include
Forward+ Decals (#1606)
GPU driven tile culled decals that modify their surfaces PBR properties.
No additional draw calls for any decals.
* PBR modification: Albedo, Normal, Roughness, Metal, AO
* Works with transparent surfaces as it's not projecting based on depth
* Color Tinting + Opacity
* Angle attenuation
* Automatic sort order + override
* Future compataibility with extra data flags to add 100 more things
* Decal::Apply( ... ) API
Make shaders compile with Vulkan 1.2, allows for wave ops instructions used in new SSR, etc
Microsoft/DirectXShaderCompiler/wiki/Wave-Intrinsics
Bitch when variables are uninitialized in HLSL, can cause all sorts of weird undefined behavior in certain drivers
Fix warnings on all shaders, remove D_EYE_WHITE (bullshit?)
Avoid sampling diffuse cubemap for fog at lod0 to not have fireflies like in Eagle One Rain Demo
Disable compute skinning temporarily while descriptor set crash is being debugged
Mark used resources in buffered descriptor set a few frames in advance, they're being deleted while still used
Texture Generators (#1779)
* Add ResourceGenerator
* Add ResourceGeneratorContext
* Add TextureGenerator
* Add Bitmap
* Add Sandbox.Utility.ForAsync
* Add IPopupEditor<T>, EditorUtility.OpenControlSheet looks for this interface when creating a popup
* Rename ControlSheetPopup to PopupEditor,
* Add Color.Rgba16 (half based color)
* Managed can override compiling of any resource
* Add Texture.GetBitmap
* Add transient filesystem in editor
* Add Texture.IsError
* Add Margin.IsNearlyZero
* Fix asset picker ignoring AdditionalTypes
* Add Widget.GetDescendants<T>
* Add MainThread.Wait()
* Expose TypeDescription.Order
Fix Json exception when compiling texture
Fix NRE in CreateBoneObjects
Add VTexWriter - clean up the texture compile process
In FloatBitMap_t::Pixel(, clamp the sample
Allow non power of 2 textures in native compiletexture
Update stb_dxt.h
Add Bitmap.IsOpaque()
Don't use stb for dx5 it's shit
Automatically work out texture compression format
Fix an issue where manually setting a NavMeshAgents position would result in race conditions at high framerates
For example, this manifested when using CreateBoneObjects on a SkinnedModelRenderer owned by the agent's GameObject.
Improve previous fix for NavAgent position glitching
Make agents follow gameobject position while in editor
Fix exception when couldn't parse resource as json
Support texture sheets on light cookies https://files.facepunch.com/layla/1b2711b1/sbox-dev_bWCx2BHnZC.mp4
Make sure light probe texture gets set to a fallback if it's invalid
Reduce JSON usage in GameObject.Clone (2) (#1787)
We no longer converts the complete GameObject to and from JSON for cloning.
JSON is only used as a last resort for complex properties we cannot clone directly.
GameObject clones are up to 4 times faster
Prefab clones are up to 2 times faster
Almost the same as #1781 but includes fixes for a few edge cases:
- Match old clone behavior and sort properties when cloning, turns out games can rely on that lol
- Match old clone behavior and enable gameobjects before clone process is completed, games could rely on that
- Fix edge case where the prefab lookup of clones of prefab instances would not point to the original prefab
- Fix edge case when cloning prefabs that contain a nested prefab instance which has a variable that references the outer prefabs root
Merge branch 'master' into improved-undo-system
Refactor undscope creation
Remove debug logs
Reduce JSON usage in GameObject.Clone (2) (#1787)
We no longer converts the complete GameObject to and from JSON for cloning.
JSON is only used as a last resort for complex properties we cannot clone directly.
GameObject clones are up to 4 times faster
Prefab clones are up to 2 times faster
Almost the same as #1781 but includes fixes for a few edge cases:
- Match old clone behavior and sort properties when cloning, turns out games can rely on that lol
- Match old clone behavior and enable gameobjects before clone process is completed, games could rely on that
- Fix edge case where the prefab lookup of clones of prefab instances would not point to the original prefab
- Fix edge case when cloning prefabs that contain a nested prefab instance which has a variable that references the outer prefabs root
Make sure light probe texture gets set to a fallback if it's invalid
Support texture sheets on light cookies https://files.facepunch.com/layla/1b2711b1/sbox-dev_bWCx2BHnZC.mp4
Fix exception when couldn't parse resource as json
Make agents follow gameobject position while in editor
Improve previous fix for NavAgent position glitching
Fix an issue where manually setting a NavMeshAgents position would result in race conditions at high framerates
For example, this manifested when using CreateBoneObjects on a SkinnedModelRenderer owned by the agent's GameObject.
Revert "Bindless lightmaps/Lightmap Combo Removal (#1765)"
This reverts commit 1fdcdeab689851f1093853faa8d8b4d6041d63f7.
# Conflicts:
# game/addons/base/Assets/postprocess/ObjectHighlight/objecthighlight.shader_c
# game/addons/base/Assets/shaders/atmosphere_sky.shader_c
# game/addons/base/Assets/shaders/blendable.shader_c
# game/addons/base/Assets/shaders/foliage.shader_c
# game/addons/base/Assets/shaders/fur.shader_c
# game/addons/base/Assets/shaders/gizmo/gizmo_grid.shader_c
# game/addons/base/Assets/shaders/gizmo/gizmo_line.shader_c
# game/addons/base/Assets/shaders/glass.shader_c
# game/addons/base/Assets/shaders/line.shader_c
# game/addons/base/Assets/shaders/lpv_debug.shader_c
# game/addons/base/Assets/shaders/sprite.shader_c
# game/addons/base/Assets/shaders/terrain.shader_c
# game/addons/base/Assets/shaders/terrain_brush.shader_c
# game/addons/base/Assets/shaders/terrain_preview.shader_c
# game/addons/base/Assets/shaders/tiled_light_culling_cs.shader_c
# game/addons/base/Assets/shaders/ui_backdropfilter.shader_c
# game/addons/base/Assets/shaders/ui_basic.shader_c
# game/addons/base/Assets/shaders/ui_borderwrap.shader_c
# game/addons/base/Assets/shaders/ui_cssbox.shader_c
# game/addons/base/Assets/shaders/ui_cssshadow.shader_c
# game/addons/base/Assets/shaders/ui_dropshadow.shader_c
# game/addons/base/Assets/shaders/ui_filter.shader_c
# game/addons/base/Assets/shaders/ui_text.shader_c
# game/addons/base/Assets/shaders/vertex_color.shader_c
# game/addons/base/Assets/shaders/water.shader_c
# game/core/shaders/black_unlit.shader_c
# game/core/shaders/cables.shader_c
# game/core/shaders/complex.shader_c
# game/core/shaders/complex_reflections.shader_c
# game/core/shaders/cs_volumetric_fog.shader_c
# game/core/shaders/debug_wireframe_2d.shader_c
# game/core/shaders/decal.shader_c
# game/core/shaders/depth_only.shader_c
# game/core/shaders/eyeball.shader_c
# game/core/shaders/generic.shader_c
# game/core/shaders/hair.shader_c
# game/core/shaders/post_process.shader_c
# game/core/shaders/projected_decals.shader_c
# game/core/shaders/projected_sheet_decals.shader_c
# game/core/shaders/simple.shader_c
# game/core/shaders/skin.shader_c
# game/core/shaders/sky.shader_c
# game/core/shaders/spritecard.shader_c
# game/core/shaders/static_overlay.shader_c
# game/core/shaders/tools_shading_complexity.shader_c
# game/core/shaders/tools_solid.shader_c
# game/core/shaders/tools_visualize_collision_mesh.shader_c
# game/core/shaders/tools_wireframe.shader_c
# game/core/shaders/ui.shader_c
# game/core/shaders/visualize_cloth.shader_c
# game/core/shaders/visualize_nav.shader_c
# game/core/shaders/visualize_physics.shader_c
# game/core/shaders/vr_tools_shading_complexity.shader_c
Build shaders
If we have any command line arguments from the Steam client (sbox.game -rungame), parse it via ISteamApps.GetLaunchCommandLine
Expose Application.ShutdownUnitTest()
Throws if not currently running a unit test
Make sure it doesn't run in headless (errors out on dedicated server)
Some tidy up - data table ReadFilter instead of other method, reset delta snapshot cache on owner change and after network refresh is received
Add Simulate Packet Loss alongside Simulate Lag in editor network options - it's working for simulating outgoing lost packets from the host right now
VR: Remove obsolete controller checking bools that nobody's using
VR: Add IsHandTracked bool to VRController, update fpxr to 5cf7ff24f5b157166102c8e4898bb84b4accb952
VR: Add MotionRange to VRController.GetJoints, update fpxr to 8822f0461709fbd2eda8fe004d51af79d47e6aa9
e.g.
```csharp
Input.VR.LeftHand.GetJoints( MotionRange.Hand ); // default
Input.VR.LeftHand.GetJoints( MotionRange.Controller ); // tries to wrap hands around the controller
```
VR: Better controller interactions in menu, move panel to a more comfortable height
Reapply "Bindless lightmaps/Lightmap Combo Removal (#1765)"
This reverts commit de7b93d17c7a036a567347794ca51163132ef42a.
Reapply BATCH_FLAGS_CONTROLLING_COMBO_CHANGES for legacy shaders, accidentally removed binding lightmap for legacy shaders
Initialize vertex output of lightmap uv when lightmapping is disabled
Update drivers with bindless lightmaps & amd fix
Humans/animgraph: added Sprint_NW & Sprint_NE
Don't accept "game" command while Application.IsEditor
Compute Shader Skinning (#1786)
Calculate skinning in compute shader instead of vertex shader
Compile shaders
Can now right click on a Shader to "Create Material" from it.
https://files.facepunch.com/CarsonKompon/2025/January/24_17-29-EmptyPony.png
Fix typo in MaterialMenu
add octohedral_encoding.fxc include
Forward+ Decals (#1606)
GPU driven tile culled decals that modify their surfaces PBR properties.
No additional draw calls for any decals.
* PBR modification: Albedo, Normal, Roughness, Metal, AO
* Works with transparent surfaces as it's not projecting based on depth
* Color Tinting + Opacity
* Angle attenuation
* Automatic sort order + override
* Future compataibility with extra data flags to add 100 more things
* Decal::Apply( ... ) API
Make shaders compile with Vulkan 1.2, allows for wave ops instructions used in new SSR, etc
Microsoft/DirectXShaderCompiler/wiki/Wave-Intrinsics
Bitch when variables are uninitialized in HLSL, can cause all sorts of weird undefined behavior in certain drivers
Fix warnings on all shaders, remove D_EYE_WHITE (bullshit?)
Avoid sampling diffuse cubemap for fog at lod0 to not have fireflies like in Eagle One Rain Demo
Disable compute skinning temporarily while descriptor set crash is being debugged
Mark used resources in buffered descriptor set a few frames in advance, they're being deleted while still used
Texture Generators (#1779)
* Add ResourceGenerator
* Add ResourceGeneratorContext
* Add TextureGenerator
* Add Bitmap
* Add Sandbox.Utility.ForAsync
* Add IPopupEditor<T>, EditorUtility.OpenControlSheet looks for this interface when creating a popup
* Rename ControlSheetPopup to PopupEditor,
* Add Color.Rgba16 (half based color)
* Managed can override compiling of any resource
* Add Texture.GetBitmap
* Add transient filesystem in editor
* Add Texture.IsError
* Add Margin.IsNearlyZero
* Fix asset picker ignoring AdditionalTypes
* Add Widget.GetDescendants<T>
* Add MainThread.Wait()
* Expose TypeDescription.Order
Fix Json exception when compiling texture
Fix NRE in CreateBoneObjects
Add VTexWriter - clean up the texture compile process
In FloatBitMap_t::Pixel(, clamp the sample
Allow non power of 2 textures in native compiletexture
Update stb_dxt.h
Add Bitmap.IsOpaque()
Don't use stb for dx5 it's shit
Automatically work out texture compression format
Merge branch 'master' into json-free-clone2
Add VTexWriter - clean up the texture compile process
In FloatBitMap_t::Pixel(, clamp the sample
Allow non power of 2 textures in native compiletexture
Update stb_dxt.h
Add Bitmap.IsOpaque()
Don't use stb for dx5 it's shit
Automatically work out texture compression format
Fix Json exception when compiling texture
Fix NRE in CreateBoneObjects
Texture Generators (#1779)
* Add ResourceGenerator
* Add ResourceGeneratorContext
* Add TextureGenerator
* Add Bitmap
* Add Sandbox.Utility.ForAsync
* Add IPopupEditor<T>, EditorUtility.OpenControlSheet looks for this interface when creating a popup
* Rename ControlSheetPopup to PopupEditor,
* Add Color.Rgba16 (half based color)
* Managed can override compiling of any resource
* Add Texture.GetBitmap
* Add transient filesystem in editor
* Add Texture.IsError
* Add Margin.IsNearlyZero
* Fix asset picker ignoring AdditionalTypes
* Add Widget.GetDescendants<T>
* Add MainThread.Wait()
* Expose TypeDescription.Order
Add TextureGenerator boilerplate
TextureControlWidget poc
Fix NRE in SpriteRenderer when texture is null
TextureControlWidget creates a child ResourceControlWidget instead of trying to be one
Draw texture preview
Standardize internal way to async replace placeholder textures
Add Sandbox.Utility.ForAsync
TextureGenerators are async
Add IPopupEditor<T>, EditorUtility.OpenControlSheet looks for this interface when creating a popup
Rename ControlSheetPopup to PopupEditor, make more modular so we can override important bits
Add TextureEditorPopup
Clean up TextureControlWidget
Add Color.Rgba16 (half based color)
Add Bitmap class
More bitmap stuff
Bitmap draw and bitmap pen
Bitmap drawing fixes
Bitmap clone, IDisposable, IValid
Wrap IResourceCompilerContext
Find "$compiler" in resource json and launch compiler
Add more ResourceCompiler functionality
Managed can override compiling of any resource
Add Texture.GetBitmap
Simple texture compiling from managed
Add Bitmap.ToFormat( ImageFormat format )
Add TextureBuilder.WithMips() - auto mip count
Bitmap.ToTexture supports mipmaps
ResourceCompiler.Compile is async (but we have to run it syncronously)
ResourceCompiler,. ResourceCompilerContext are in Engine
Add transient filesystem
Add Texture.IsError
Compile embedded textures to transient folder
Double height texturcontrolwidget
Remove debug
Add Bitmap.DrawText
Clean up
Lock FontManager cache when accessing
Refactor
Generated resources get weak cached in memory for re-use
Cleanup floatbitmap, add LoadFromInMemoryTGA
Load Bitmap.CreateFromBytes supports tga
Better tooltips on TextureControlWidget
Don't support mipmaps if npot (until we figure out how/why)
Create Bitmap.Filters.cs
Bitmap supports psd loading
Fix a bunch of bitmap filters
Add Margin.IsNearlyZero
Fix blur/sharpen thinking the edge of the bitmap is the end
Control widget tweaks
Pass ResourceCompiler in ResourceGenerator options, allowing us to add references
Fix asset picker ignoring AdditionalTypes
Move ColorTextureGenerator
Move RandomTextureGenerator to engine, allow normals creation
Add Widget.GetDescendants<T>
Expose OpenColorPopup on ColorControlWidget
Add [TextureImagePath] - allows selecting an image or a texture
Don't cache resource if hash changed while generating
Expose CreateEmbeddedResource on TextureResource
Bitmap.Rotate resizes the texture
TextureControlWidget has shortcut buttons for selecting a file, or color
Add bitmap SVG loader
Return white for default colors, instead of transparent
Add MainThread.Wait()
Add EngineFileSystem.Mounted (!)
Create TextTextureGenerator.cs
Create RadialGradientTextureGenerator.cs
Create LinearGradientTextureGenerator.cs
Create ImageFileTextureGenerator.cs
Expose Svg texture generator
Expose TypeDescription.Order
TextTextureGenerator tweaks
Fix warnings and errors
Use classname when setting ResourceGenerator
Fix bitmap.clear not using floating point color
Fix NRE in ImageFileTextureGenerator
Mark used resources in buffered descriptor set a few frames in advance, they're being deleted while still used
Disable compute skinning temporarily while descriptor set crash is being debugged
DepthNormalPrepassLayer stub, DepthNormal shader class consumes from S_MODE_DEPTH
DepthNormals mode, uses values directly instead of Material, attach it to ShadingModels
Ignore and don't compile combo if it's not referenced by a mode or feature instead of erroring out, e.g. We want to reference DepthNormal.hlsl everywhere in Class.hlsl, but we want to only have combos for it if we're using a DepthNormal mode without complicating the codebase, this way when adding a new mode that references that combo, it's added to the shader without convoluting the source, argue with me if you think this is shit behavior
Temp bind FindOrCreateRenderTarget and use managed rendertarget for depthnormalprepasslayer
Should be continue rather than break, fix undefined identifier if S_MODE_DEPTH_NORMAL is not set
Pass MSAA value from pipeline, make DepthNormals a dynamic combo instead of a mode, conditional
Add Normals.hlsl, with fallback if no depthnormals are available, add Bindless::GetTexture2DMS
Adjustments, Depth Prepass Depth Only under a convar, do depthnormals without size cull threshold
GTAO uses Normals::Sample() instead of recalculating normals from depth
https://files.facepunch.com/sampavlovic/1b1711b1/sbox-dev_e5dHGELNmU.mp4
Make shaders compile with Vulkan 1.2, allows for wave ops instructions used in new SSR, etc
Microsoft/DirectXShaderCompiler/wiki/Wave-Intrinsics
Bitch when variables are uninitialized in HLSL, can cause all sorts of weird undefined behavior in certain drivers
Fix warnings on all shaders, remove D_EYE_WHITE (bullshit?)
Avoid sampling diffuse cubemap for fog at lod0 to not have fireflies like in Eagle One Rain Demo
Forward+ Decals (#1606)
GPU driven tile culled decals that modify their surfaces PBR properties.
No additional draw calls for any decals.
* PBR modification: Albedo, Normal, Roughness, Metal, AO
* Works with transparent surfaces as it's not projecting based on depth
* Color Tinting + Opacity
* Angle attenuation
* Automatic sort order + override
* Future compataibility with extra data flags to add 100 more things
* Decal::Apply( ... ) API
Clean up, remove unused properties, destroy buffer, 64 decals per screen tile
Forward+ Decals
GPU driven tile culled decals that modify their surfaces PBR properties.
No additional draw calls for any decals.
* PBR modification: Albedo, Normal, Roughness, Metal, AO
* Works with transparent surfaces as it's not projecting based on depth
* Color Tinting + Opacity
* Angle attenuation
* Automatic sort order + override
* Future compataibility with extra data flags to add 100 more things
* Decal::Apply( ... ) API
add octohedral_encoding.fxc include
Can now right click on a Shader to "Create Material" from it.
https://files.facepunch.com/CarsonKompon/2025/January/24_17-29-EmptyPony.png
Fix typo in MaterialMenu
GraphCompiler will now resolve inputs for parameters within subgraphs
Make sure DefaultEditor draws the correct Default Value
GraphCompiler now pulls the Default Value set on a SubgraphNode if input has no connection
Fix infinite loop when saving some graph configurations
Cleanup GraphCompiler.Result() and remove debug logs
Fix DefaultEditor NRE
Label default properties as "Default {x}"
Fix Subgraph preview not compiling properly after new changes to GraphCompiler
Use classname when setting ResourceGenerator
Fix bitmap.clear not using floating point color
Fix NRE in ImageFileTextureGenerator
Add some more comments for things that will get removed once we delete the old undo system.
Expose UndoScope via Scene.Editor
Fix Typo
Fixed nesting issues with GraphCompiler and subgraphs
ShaderGraph GraphCompiler can now resolve the results of Subgraph nodes (only in a few cases at the moment)
GraphCompiler now resolves nodes referenced in NodeResult.Func outputs when in subgraphs appropriately