reposboxcancel

22,761 Commits over 1,642 Days - 0.58cph!

37 Days Ago
Enable no cull on face hover material to see selected backfaces https://files.facepunch.com/layla/1b0311b1/sbox-dev_xA8GKNxwIK.png
37 Days Ago
Support multi open edge extrude using edge extend until edge bevel is added (bevel is needed for closed edge extrude) https://files.facepunch.com/layla/1b0311b1/sbox-dev_v10zWWneqA.mp4
37 Days Ago
Fix vertex merging from multiple meshes, all other meshes get merged into the first
37 Days Ago
Only draw vertices in vertex tool
37 Days Ago
Add editor preference for backface selection, default to true because it's likely to be more desirable
37 Days Ago
Allow mesh trace to request face cull, none, front, back Trace front and back of scene meshes when selecting https://files.facepunch.com/layla/1b0311b1/sbox-dev_eewaDMTxLk.mp4
37 Days Ago
Forgot to save last change before commit 🤦
37 Days Ago
Fix drop-shadow css filter appearing cutoff at 0px blur
37 Days Ago
Add shortcut for vertex merge
37 Days Ago
Add vertex merge operation https://files.facepunch.com/layla/1b0311b1/sbox-dev_9rg7HaFZHm.mp4
37 Days Ago
DepthNormals mode fallback if shader doesn't have it
37 Days Ago
Update shaders
37 Days Ago
Fix breaking from prefab not refreshing editor selection Fixes sbox-issues/issues/7502
37 Days Ago
Fixed ui_dropshadow shader appearing transparent at 1px blur and drop shadow not rendering at 0px blur. Resolves Facepunch/sbox-issues#7438
37 Days Ago
Add ShaderGraph.IsSubgraph and add "Shader Sub-Graph" to the New Asset menu Shader Sub-Graphs are now saved with the `.shdrfunc` file extension despite being the same asset (just so it can be registered with a different icon and filtered against in the Asset Browser to reduce user confusion) Give .shader, .shdrgrph, and .shdrfunc assets different colours in the Asset Browser Don't include BlendMode, ShadingModel or Domain in Subgraphs Don't include "Material" ShaderNode in the Create Node/Palette menus of Subgraphs. Ensure proper extensions are used when opening the respective file types. Add PlugInfo and make BaseNode.Inputs and BaseNode.Ouputs virtual. Added FunctionResult ShaderNode, can only be created in Subgraphs and is created as the default node in newly created Subgraphs Fix Shader Graph wanting to save/load as sub-graphs Make sure [Title] attributes are still respected with PlugInfo FunctionResult can now have a variable amount of inputs of varying types defined by a Dictionary. These are to be used as the outputs of the eventual sub-graph node Use shader-specific types for FunctionResult Inputs https://files.facepunch.com/CarsonKompon/2025/January/16_16-02-HumiliatingMorayeel.png Rename "Inputs" -> "Outputs" on FunctionResult since that's technically more accurate Instantly update the Result node when Outputs are modified https://files.facepunch.com/CarsonKompon/2025/January/16_16-18-WarmIncatern.mp4 FunctionResult node will produce Errors preventing compilation https://files.facepunch.com/CarsonKompon/2025/January/16_16-48-VictoriousBrownbutterfly.png Fix NRE when attempting to save with unresolved errors Guarantee IsSubgraph is set properly from the ShaderGraph window Only Update FunctionResult.Inputs when necessary instead of when accessed. Add PlugInfo.GetInput() and serialize PlugInfo.Name as the property name instead of display name Fixed NRE when FunctionResult name is left null Subgraphs no longer attempt to generate a .shader file, and will run error checks in the graph on Save FunctionResult Inputs now maintain connections upon being regenerated FunctionResult node generates inputs before creating connections to ensure connections are always deserialized correctly PlugInfo correctly uses property name if no [Title] attribute Refactor Result node into an abstract BaseResult class which Result and now FunctionResult can both inherit You can now specify the preview type for certain Output variables on a Subgraph so changes can be reflected in the Preview window. https://files.facepunch.com/CarsonKompon/2025/January/21_12-51-DifferentAmericanbulldog.mp4 Can change Preview Blend Mode/Shading Model/Domain in Subgraphs Implemented all other preview types for FunctionResult Fix GraphCompiler failing when using Unlit in Subgraphs Subgraphs have Title, Description, Category, Icon and Add To Node Library properties. To be used for the created node Added SubgraphNode which references a .shdrfunc. Results in graph errors if the references graph cannot be found or the references graph has errors Dragging a .shdrfunc asset into a ShaderGraph will create a Subgraph Node referencing the dragged asset Fix error when deserializing SubgraphNodes SubgraphNode now uses the Title, Description, and Icon from the referenced Subgraph SubgraphNode now generates inputs from any Parameter nodes in the subgraph, with default names for any without. SubgraphNodes now generate output plugs from the FunctionResult node in the references Subgraph https://files.facepunch.com/CarsonKompon/2025/January/21_16-23-CoordinatedEastsiberianlaika.png Subgraph "Add To Node Library" adds the subgraph to the Create Node menu so they can be easily accessed. https://files.facepunch.com/CarsonKompon/2025/January/21_16-51-HardVampirebat.mp4 Double Clicking a Subgraph Node instantly opens the Subgraph Implemented the file history forward and back buttons when navigating through multiple ShaderGraphs in the same window https://files.facepunch.com/CarsonKompon/2025/January/21_18-29-MidnightblueSandbarshark.mp4 Add [Hide] to TextureCoord.Title override Minor MainWindow refactor so .shdrgrph files arent recognized as Sub-Graphs mistakenly Prompt to save current graph (if dirty) when pressing the Forward/Back/Home buttons Created ITextureParameterNode and started custom inpsector editor for when texture samplers are present Custom Subgraph Nodes now detect sampled textures and allow you to change them as properties Display Default Values on unconnected inputs of Subgraph Nodes https://files.facepunch.com/CarsonKompon/2025/January/22_15-34-AnyAllensbigearedbat.png Fix NodeResult shader compile error Slight refactor to BaseNode.CreateEditor Added IParameterNode.GetRangeMin and GetRangeMax. Parameter Nodes have "CanEditOnNode" instead of "IsAttribute" when in a subgraph. Determines whether or not an inline editor is created on the node Use SubgraphNode.InputReferences when creating the DefaultEditor and drawing the default Plug Value Ensure that inline DefaultEditors for subgraphs grab the UI.Step value for sliders Make Color Editor works with SubgraphNodes Remove debug log Replace ParameterNode.CanEditOnNode with ParameterNode.IsRequiredInput since thats a bit more user-friendly Don't include inline editor when UI.Type is set to Default Default values of subgraphs are now editable via Properties if not a required input Custom subgraph nodes now produce errors when required inputs are left without connections https://files.facepunch.com/CarsonKompon/2025/January/23_11-38-RudeFattaileddunnart.png Make sure errors are also displayed in 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 Fixed nesting issues with GraphCompiler and subgraphs 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 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. 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 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 EditorEvent fires whenever a subgraph is updated, reloading any open windows that reference the subgraph 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 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 Hopefully fixed the last of the graph nesting issues. Should support all cases of subgraphs within subgraphs https://files.facepunch.com/CarsonKompon/2025/January/27_18-37-PessimisticTuatara.mp4 Remove all the debug logs ParameterNodes in a Subgraph without a name will be treated as constants and will not be exposed as inputs TextureParameterNodes throw errors for name conflicts Nested ITextureParameterNodes are resolves properly. Textures are now saves with DefaultValues in SubgraphNode. Can now Right Click -> Create New Node from a selection of nodes to create a Subgraph (similar to ActionGraph) https://files.facepunch.com/CarsonKompon/2025/January/28_12-16-PortlyKid.png Right Click -> Create Custom Node now creates the newly created subgraph node in-place and re-assigns all the connections https://files.facepunch.com/CarsonKompon/2025/January/28_15-03-HumiliatingPlatypus.mp4 Ensure all input fields are generated properly when doing Right Click -> Create Custom Node Create Custom Node will no longer create duplicate inputs when multiple nodes within share the same one input Remove some debug stuff Don't show "Create Custom Node" when selection includes a function or material output node Filter out certain nodes from GetRelevantNodes so they can't be created from Right Click Menu Subgraph Nodes are green to establish a language that they are user-defined functions that can be clicked into. Result Nodes (the final output nodes) are color-coded blue. https://files.facepunch.com/CarsonKompon/2025/January/28_16-22-ThornyConch.png Remove final leftover debug log Remove hacky check that isn't even required anymore Don't use `object` type for Result nodes. Use `NodeInput` and `NodeResult` Move FunctionResult-specific material output code to FunctionResult
37 Days Ago
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 Bind ClearFlags, this should probably be implicit Just use DepthNormalPrepassLayer, use depthnormal mode again Add DepthNormal() mode to lit shaders, this seem the most straightforward way to do this, shaders with just Depth() usually have a shared shader with no-color no-material output, legacy shaders rebuild normals from depth, not rendered in depthnormals mode https://files.facepunch.com/sampavlovic/1b2711b1/hSVL6jr1Rx.png Remove old no-normals depth prepass, keeps things simple, effects that we use will need to rely on depthnormals, doesn't add too much cost Fix typo on gtao Reconstruct Normals::Sample from depth if underlying texel doesn't use DepthNormal mode https://files.facepunch.com/sampavlovic/1b2711b1/DdYOdR9WrI.png
37 Days Ago
Menu: Add slider and input limits to Field of View option, resolves Facepunch/sbox-issues#7501
37 Days Ago
MapInstance also reloads the map on Hammer compile when it prev. failed to load
38 Days Ago
Add optional widget parameter to EditorShortcuts.Register Allows non-Widget targets that only want shortcuts if a particular widget is in focus
38 Days Ago
Don't return a new list each light gather, reuse the already allocated memory Collect and pass around SceneLightObjects instead of the LightDesc ptr Stubbed managed shadowmapper appsystem (this is such bullshit for a simple interface for scenesystem) Managed shadow mapper stub, entry point from lightbinner Add CommandList.Set( StringToken, Texture ) Dispose of AssetPreviews after we've rendered their thumbnail. PreviewScene.Dispose destroys it's Scene ISceneView::GetWorldToRender & related return ISceneWorld not CSceneWorld Clean up old dead code Create and render shadow frustums from managed Scene system listeners I'll need later Remove native shadow rendering Set gpu light data from c#, pass shadowmap bindless texture id, use it from lighting shaders Depth bias shadows Visualize depth uses screen space coords
38 Days Ago
Add viewport option to toggle default prefab lighting https://files.facepunch.com/lolleko/2025/February/02_20-07-ConsciousCormorant.mp4 sbox-issues/issues/5527
38 Days Ago
Skip hotload for DtNode, hopefully fixes issue when hotreloading while navmesh query is in progress.
38 Days Ago
Catch type library returning null, event if it really shouldn't return null in the first place. Related: sbox-issues/issues/7496
40 Days Ago
Optimize ComponentList.GetAll by getting rid of LINQ The combination of recursion and LINQ allocated a lot of garbage in GetAll, this would result in a heap reallocation during many GetAll calls. Removing LINQ yielded a nice performance improvement. Getting rid of the recursion gives another tiny performance improvement, but not big enough to justify the reduction in code readability. I can not show results directly for ComponentList.GetAll, because the function executes too fast after the optimization and is no longer captured by the sample profiler. But here are the improvements for PhysiscsWorld.OnIntersection, which makes heavy use of ComponentList.GetAll internally via InvokeListeners<T>(). Before: Function Name: Sandbox.PhysicsWorld.OnIntersection Number of Functions: 2907 Total time: 9s 406ms 99µs Maximum: 11ms 86µs Top Quartile: 3ms 848µs Average: 3ms 235µs Median: 3ms 176µs Bottom Quartile: 2ms 684µs Minimum: 20µs After: Function Name: Sandbox.PhysicsWorld.OnIntersection Number of Functions: 2779 Total time: 3s 661ms 358µs Maximum: 6ms 971µs Top Quartile: 1ms 552µs Average: 1ms 317µs Median: 1ms 220µs Bottom Quartile: 975µs Minimum: 19µs Related to sbox-deathmatch/issues/104
40 Days Ago
ShaderGraph Reroute Nodes now preserve the input type correctly. Resolves Facepunch/sbox-issues#7466
40 Days Ago
Prevent Reroute Nodes from creating circular reference errors where none existed
40 Days Ago
Asset Browser no longer deletes a folder when renaming it to the same thing. Also allows you to rename the folder to the same name with different capitalization. Resolves Facepunch/sbox-issues#7464
40 Days Ago
Use ReflectionQueryCache in Component Serialization
40 Days Ago
Remove unused function in Connection
40 Days Ago
Clicking and Dragging a PlugIn will allow you to easily re-plug it instead of trying dragging out another input when it can only have one. Works in ShaderGraph + ActionGraph. Resolves #1525 https://files.facepunch.com/CarsonKompon/2025/January/31_11-34-EachSnowyowl.mp4
40 Days Ago
GraphCompiler will now detect circular references and present an error instead of hard crashing. Resolves Facepunch/sbox-issues#7470 https://files.facepunch.com/CarsonKompon/2025/January/31_10-42-HurtfulPig.mp4
40 Days Ago
Can now move the handle on grid-aligned wires properly in ShaderGraph. Resolves Facepunch/sbox-issues#7474
40 Days Ago
Refactor parts of CloneHelpers into a ReflectionQueryCache
40 Days Ago
Optimize Network.RegisterProperties by caching reflection data (#1815)
40 Days Ago
Optimize Network.RegisterProperties by caching reflection data
40 Days Ago
Add support for custom I16F color format, a generic grayscale 16-bpp float texture, unlike R16F it'll sample all channels to gray (#1813)
40 Days Ago
Add optional widget parameter to EditorShortcuts.Register Allows non-Widget targets that only want shortcuts if a particular widget is in focus
41 Days Ago
Fix property filter for cloning & Fix NRE in CheckRequiredComponents
41 Days Ago
Tiny optimization in GameObject.MakeNameUnique
41 Days Ago
Avoid TypeLibrary for component creation during cloning Cache member list of cloneable properties (-> 2 times faster clone) Cache property list for CheckRequireComponent (another 2x improvement in clone)
41 Days Ago
Make light cookie in texture in light desc a strong copyable so it doesn't get yanked out from under us. Cache light cookie texture in light scene object for good measure.
41 Days Ago
Add support for custom I16F color format, a generic grayscale 16-bpp float texture, unlike R16F it'll sample all channels to gray
41 Days Ago
New Outfit piece - Wind Breaker https://files.facepunch.com/daniel/1b3111b1/Screenshot%202025-01-31%20001512.png https://files.facepunch.com/daniel/1b3111b1/Screenshot%202025-01-31%20001151.png
41 Days Ago
Fix NavAgent ground trace for MapColliders (Run two traces instead of one trace with RunAll)
41 Days Ago
Standalone: build page shows failures and progress more clearly, don't auto advance so we can see what's fucking up https://files.facepunch.com/alexguthrie/1b3011b1/sbox-dev_1Nb5BFbmtw.png
41 Days Ago
Fix NavMeshAreas not linking to their collider correctly if deserialized in the "wrong" order
41 Days Ago
Standalone: export presets https://files.facepunch.com/alexguthrie/1b3011b1/sbox-dev_zi12A4W7uN.mp4
41 Days Ago
Standalone: move stuff over to whitelist system, remove EnabledAddons (we only have `base` now)
41 Days Ago
Standalone: core file whitelist, reduces minimal export size by 300MB (1.2GB -> 800MB) https://files.facepunch.com/alexguthrie/1b3011b1/WizTree64_hoaOoWymnw.png