branchsbox/shadergraphcancel

96 Commits over 31 Days - 0.13cph!

1 Year Ago
Render state overrider sfm: embedded c# asset browser sfm: fix drag drop assets from asset browser sfm: resolve drag dropped cloud assets https://files.facepunch.com/matt/1b1611b1/sbox-dev_rr6iJVzPcd.png ModelEntity.(Local)Position/Rotation affects all physics bodies, not just the first one sboxgame/issues/issues/2916 Fix tangent generation not working correctly for ShadingModelValveStandard, fixes directional lightmaps looking messy on custom shaders https://i.imgur.com/JlZGHHH.png Start and stop snd_event_alignedbox sounds based on range, we only want to play sounds that can be heard Darken directional AO results a tiny bit to have better contact https://i.imgur.com/rLmUM0I.png Fix most debug views Use TagEdit on entity inspector https://files.facepunch.com/devultj/1b1711b1/sbox_4i2cOMCa2n.png Tools: Support `Editor( "tags" )` which internally uses TagEdit - and give TagEdit a default convertor if one is not set Merge pull request #804 from Facepunch/render-state-override Automatically override render states for shaders You no longer need to define `DEPTH_STATE_ALREADY_SET`, `CULL_MODE_ALREADY_SET`, `STENCIL_ALREADY_SET`, `BLEND_MODE_ALREADY_SET`, `COLOR_WRITE_ALREADY_SET` Add the ability to fetch the world mapping dimensions in shaders `int2 g_vWorldMappingDims< Source( MappingDimensions ); >;` Fix CUBEMAP_REFLECTIONS debug view on both material api and valve code, needs a full shader compile Remove ShaderIDColors list, shader id colors list is generated procedually, add baked lightmapping debug modes to material API Recompile blendable with latest changes Don't use [CanEdit(SomeType, typeName)] for all SomeType properties Unless typeName is just "sometype" https://files.facepunch.com/ziks/1b1711b1/5BoYCf6102.png Assert CSceneObject::ClearMeshInstanceData if owner CSceneObject::DestroyMeshInstanceData() for owned data Avoid dynamic alloc for scene object tags in most cases vmat build (.vfx -> .shader mainly) citizen compile: I think Max may have pushed whilst this was referencing some WIP stuff? Cleanup Shader ID preview, add more preview modes to tools UI Add support for text-overflow css property (#803) text-overflow is now supported with `clip` or `ellipsis` Don't shrink the player count on server & lobby widget entries Use text-overflow in has-latest ChatEntry, fixes user messages spanning the whole screen :flushed: https://files.facepunch.com/devultj/1b1711b1/sbox_RQipXQ40dm.png Merge branch 'master' into shadergraph
1 Year Ago
Update "template" shader and delete source, this shader is only needed to update preview until I figure out a better way Comment added public properties/methods Make console internal again
1 Year Ago
Use new sequence api
1 Year Ago
Make node editor graph an interface Add shader graph game resource Keep node position up to date with node ui Hook up shader graph saving Don't open save dialog if we have an asset to save to Hook up shader graph open put graph nodes in dictionary, can't save nodes to game resources yet anyway so fuck it Add compiler ref System.Memory for tool addons Add simple asset type for shader graph Don't use game resource for shader graph, serialize json from graph asset instead Deserialize graph Add preview dock Add skybox and cubemap to preview Add background to graph view Delete selected nodes on delete key Remove connections of deleted nodes Delete selected connections too Fix ui hotload Undo redo system Add undo redo shortcuts Move node undo op Grid snap newly created nodes Undo ops for create/drop/change connection Don't perform undo redo if there's a pending redo Status text for undo redo options Title graph view to asset name Write graph file before registering it Don't open graph that is already open Clear undo stack on new or open graph Mark session as dirty when an undo op is pushed so title can be changed to show as edited Menu bar shortcuts Dirty session when performing undo or redo Allow input and output attributes to decide handle config type, property type is rarely going to be handle type Don't allow output connections to input of self Remove existing input connections, inputs can only have 1 connection Set node connection property when creating connection Rebuild graph connections from serialized node connections Reset input connection on remove Only set input property if it's node connection type Use node connection type for all node inputs Clear preview and drop target when rebuilding graph Clear connections on graph rebuild Don't serialize node properties that don't have setters First attempt at codegen from graph Time, cosine, multiply nodes Add toolbar to preview Add more toolbar options for main window Add properties dock to edit properties of nodes Hide node properties we dont want to see Add color node Dirty session when property values change Hook up preview primitive types Open asset picker for preview model Don't reconstruct new graph object on undo, just clear nodes and deserialize Save and load does full serialization, not just nodes, we may have settings we want to save Save preview model Rename NodeConnection to NodeInput and make it IValid Target graph properties when no node is selected Base class unary node because it's gonna be the same shit for each Abs node Add node types automatically Show compile errors in output Copy error to clipboard Add menu option to focus node with error Selecting error selects node Center on selected error node Use orbit cam for preview, makes more sense Open context menu after dragging an unconnected wire Some cleanup Use default a and b values for binary nodes when input isn't valid Cut down on file reading in CreateFromVfxFile so eventually it can be created from memory Rename vfx create functions to make more sense Write generated shader to temp dir Don't generate code if graph compiler has errors Run shader compiler process for generated shader Write generated shader to bullshit placeholder resource for now Make color node use color property Make color node use color property Add lerp node Add lerp node Don't serialize NodeInput.IsValid Log program type when spewing shader stats so I can see what's what Remove all dynamic shader compiling code, we don't use it and it's over complicating everything Remove all dynamic shader compiling code, we don't use it and it's over complicating everything CVfx cleanup Hacky dynamic shader compile test Start vfxc process to compile single shader we need to update preview, output bytecode to temp dir Replace render shader from bytecode Change preview material while shader is compiling Only recompile shader if generated code has changed Remove shader compile dll loading from material system again, no longer needed Add -fast cmd line option to vfxc to disable optimizations Add recent files to file menu Recompile shader after compile has finished if we're pending a compile so preview is always up to date Write generated shader next to shader graph on save until we can safely generate shader resource from temp dir Add compile timings Don't read and mask shader file twice in vfxc Don't include material inputs in shader template Don't include material inputs in shader template Remake dev sphere Clear cached generated code on new or open Only add existing files that exist Add saved file to recent files Only write generated shader to tempdir before invoking compile so we don't stomp on it while compiling Remove hlsl output tolower all recent file paths Draw spinning circle to show when preview shader is compiling Texture node Generate code for textures Cleanup template shader and material used in shader editor Set toolView attribute so depth prepass gets disabled (wireframe doesn't render correctly with depth prepass enabled) Optional texcoords on texture node Add Vector2 node Add console tab for convenience Add sampler properties to texture node Serialize other properties of graph, handle node serialization separately Reset properties target when there's a new graph Fill out shader description from graph Add texcoord node Display g_flTime in properties Some more unary nodes Add dock restoring Use a more detailed cubemap and skybox Serialize compiled shader info to temp dir Recreate static combo data from serialized compiled shader info Plug texture filter into generated code to test preview updating Ask vfxc to output compiled shader info instead of bytecode Create connection to new node when created through drag + context menu Add undo history ui Don't apply same undo level Add filter edit to node context menu and sort into category submenus Give nodes better categories Sort by category Prompt user to save when trying to create new or opening new graph while current graph has unsaved changes Prompt save when opening from recent files also Use NativeRenderingWidget Setup shadergraph project the same way as prefab editor Make shadergraph a IAssetEditor Use dockwindow Make sure any coord input passed to texture node is casted to float2 in generated code Lerp node casts fraction to largest of the two components unless it's a float fraction Allow texture nodes to set a vtex to preview https://files.facepunch.com/layla/1b0411b1/sbox_f1zmhN87os.mp4 Serialize texture as string, load when needed (ResourceJsonConvert is internal) Node result just has component count instead of generic type Restore preview textures on hotload Restore preview textures when preview model changes Add GraphicsView.SelectionRect, add selection box to graph https://files.facepunch.com/layla/1b0511b1/sbox_AT7exzHrxn.mp4 Serialize selection, copy to clipboard Deserialize paste buffer, update conflicting ids Build graph from paste Add undo scope for paste Default node input if it doesn't exist in paste Unselect all and select paste Cut selection Only add paste undo if any nodes got deserialized Fix compile errors Apply standard post processing to simple render scene if post processing on scene camera is enabled Generate texture input code for final shader Generate code for sampler AddressU and AddressV Include file ext in texture inputs (color, rough etc) Include image processor in texture inputs (NormalizeNormals, Inverse, etc) Add TransformNormal node Show animation picker for models that have animations Initial support for playing single sequences on scene models Set sequence movement type to none Undo scene model changes, master has scene model sequences now
1 Year Ago
Undo scene model changes, master has scene model sequences now
1 Year Ago
Set sequence movement type to none
1 Year Ago
Show animation picker for models that have animations Initial support for playing single sequences on scene models
1 Year Ago
Add TransformNormal node
1 Year Ago
Include file ext in texture inputs (color, rough etc) Include image processor in texture inputs (NormalizeNormals, Inverse, etc)
1 Year Ago
Generate texture input code for final shader Generate code for sampler AddressU and AddressV
1 Year Ago
Apply standard post processing to simple render scene if post processing on scene camera is enabled
1 Year Ago
Fix compile errors
1 Year Ago
Make node editor graph an interface Add shader graph game resource Keep node position up to date with node ui Hook up shader graph saving Don't open save dialog if we have an asset to save to Hook up shader graph open put graph nodes in dictionary, can't save nodes to game resources yet anyway so fuck it Add compiler ref System.Memory for tool addons Add simple asset type for shader graph Don't use game resource for shader graph, serialize json from graph asset instead Deserialize graph Add preview dock Add skybox and cubemap to preview Add background to graph view Delete selected nodes on delete key Remove connections of deleted nodes Delete selected connections too Fix ui hotload Undo redo system Add undo redo shortcuts Move node undo op Grid snap newly created nodes Undo ops for create/drop/change connection Don't perform undo redo if there's a pending redo Status text for undo redo options Title graph view to asset name Write graph file before registering it Don't open graph that is already open Clear undo stack on new or open graph Mark session as dirty when an undo op is pushed so title can be changed to show as edited Menu bar shortcuts Dirty session when performing undo or redo Allow input and output attributes to decide handle config type, property type is rarely going to be handle type Don't allow output connections to input of self Remove existing input connections, inputs can only have 1 connection Set node connection property when creating connection Rebuild graph connections from serialized node connections Reset input connection on remove Only set input property if it's node connection type Use node connection type for all node inputs Clear preview and drop target when rebuilding graph Clear connections on graph rebuild Don't serialize node properties that don't have setters First attempt at codegen from graph Time, cosine, multiply nodes Add toolbar to preview Add more toolbar options for main window Add properties dock to edit properties of nodes Hide node properties we dont want to see Add color node Dirty session when property values change Hook up preview primitive types Open asset picker for preview model Don't reconstruct new graph object on undo, just clear nodes and deserialize Save and load does full serialization, not just nodes, we may have settings we want to save Save preview model Rename NodeConnection to NodeInput and make it IValid Target graph properties when no node is selected Base class unary node because it's gonna be the same shit for each Abs node Add node types automatically Show compile errors in output Copy error to clipboard Add menu option to focus node with error Selecting error selects node Center on selected error node Use orbit cam for preview, makes more sense Open context menu after dragging an unconnected wire Some cleanup Use default a and b values for binary nodes when input isn't valid Cut down on file reading in CreateFromVfxFile so eventually it can be created from memory Rename vfx create functions to make more sense Write generated shader to temp dir Don't generate code if graph compiler has errors Run shader compiler process for generated shader Write generated shader to bullshit placeholder resource for now Make color node use color property Make color node use color property Add lerp node Add lerp node Don't serialize NodeInput.IsValid Log program type when spewing shader stats so I can see what's what Remove all dynamic shader compiling code, we don't use it and it's over complicating everything Remove all dynamic shader compiling code, we don't use it and it's over complicating everything CVfx cleanup Hacky dynamic shader compile test Start vfxc process to compile single shader we need to update preview, output bytecode to temp dir Replace render shader from bytecode Change preview material while shader is compiling Only recompile shader if generated code has changed Remove shader compile dll loading from material system again, no longer needed Add -fast cmd line option to vfxc to disable optimizations Add recent files to file menu Recompile shader after compile has finished if we're pending a compile so preview is always up to date Write generated shader next to shader graph on save until we can safely generate shader resource from temp dir Add compile timings Don't read and mask shader file twice in vfxc Don't include material inputs in shader template Don't include material inputs in shader template Remake dev sphere Clear cached generated code on new or open Only add existing files that exist Add saved file to recent files Only write generated shader to tempdir before invoking compile so we don't stomp on it while compiling Remove hlsl output tolower all recent file paths Draw spinning circle to show when preview shader is compiling Texture node Generate code for textures Cleanup template shader and material used in shader editor Set toolView attribute so depth prepass gets disabled (wireframe doesn't render correctly with depth prepass enabled) Optional texcoords on texture node Add Vector2 node Add console tab for convenience Add sampler properties to texture node Serialize other properties of graph, handle node serialization separately Reset properties target when there's a new graph Fill out shader description from graph Add texcoord node Display g_flTime in properties Some more unary nodes Add dock restoring Use a more detailed cubemap and skybox Serialize compiled shader info to temp dir Recreate static combo data from serialized compiled shader info Plug texture filter into generated code to test preview updating Ask vfxc to output compiled shader info instead of bytecode Create connection to new node when created through drag + context menu Add undo history ui Don't apply same undo level Add filter edit to node context menu and sort into category submenus Give nodes better categories Sort by category Prompt user to save when trying to create new or opening new graph while current graph has unsaved changes Prompt save when opening from recent files also Use NativeRenderingWidget Setup shadergraph project the same way as prefab editor Make shadergraph a IAssetEditor Use dockwindow Make sure any coord input passed to texture node is casted to float2 in generated code Lerp node casts fraction to largest of the two components unless it's a float fraction Allow texture nodes to set a vtex to preview https://files.facepunch.com/layla/1b0411b1/sbox_f1zmhN87os.mp4 Serialize texture as string, load when needed (ResourceJsonConvert is internal) Node result just has component count instead of generic type Restore preview textures on hotload Restore preview textures when preview model changes Add GraphicsView.SelectionRect, add selection box to graph https://files.facepunch.com/layla/1b0511b1/sbox_AT7exzHrxn.mp4 Serialize selection, copy to clipboard Deserialize paste buffer, update conflicting ids Build graph from paste Add undo scope for paste Default node input if it doesn't exist in paste Unselect all and select paste Cut selection Only add paste undo if any nodes got deserialized
1 Year Ago
Only add paste undo if any nodes got deserialized
1 Year Ago
Cut selection
1 Year Ago
Serialize selection, copy to clipboard Deserialize paste buffer, update conflicting ids Build graph from paste Add undo scope for paste Default node input if it doesn't exist in paste Unselect all and select paste
1 Year Ago
Add GraphicsView.SelectionRect, add selection box to graph https://files.facepunch.com/layla/1b0511b1/sbox_AT7exzHrxn.mp4
1 Year Ago
Restore preview textures when preview model changes
1 Year Ago
Node result just has component count instead of generic type Restore preview textures on hotload
1 Year Ago
Allow texture nodes to set a vtex to preview https://files.facepunch.com/layla/1b0411b1/sbox_f1zmhN87os.mp4 Serialize texture as string, load when needed (ResourceJsonConvert is internal)
1 Year Ago
Lerp node casts fraction to largest of the two components unless it's a float fraction
1 Year Ago
Make sure any coord input passed to texture node is casted to float2 in generated code
1 Year Ago
Make shadergraph a IAssetEditor Use dockwindow
1 Year Ago
Setup shadergraph project the same way as prefab editor
1 Year Ago
Use NativeRenderingWidget
1 Year Ago
Make node editor graph an interface Add shader graph game resource Keep node position up to date with node ui Hook up shader graph saving Don't open save dialog if we have an asset to save to Hook up shader graph open put graph nodes in dictionary, can't save nodes to game resources yet anyway so fuck it Add compiler ref System.Memory for tool addons Add simple asset type for shader graph Don't use game resource for shader graph, serialize json from graph asset instead Deserialize graph Add preview dock Add skybox and cubemap to preview Add background to graph view Delete selected nodes on delete key Remove connections of deleted nodes Delete selected connections too Fix ui hotload Undo redo system Add undo redo shortcuts Move node undo op Grid snap newly created nodes Undo ops for create/drop/change connection Don't perform undo redo if there's a pending redo Status text for undo redo options Title graph view to asset name Write graph file before registering it Don't open graph that is already open Clear undo stack on new or open graph Mark session as dirty when an undo op is pushed so title can be changed to show as edited Menu bar shortcuts Dirty session when performing undo or redo Allow input and output attributes to decide handle config type, property type is rarely going to be handle type Don't allow output connections to input of self Remove existing input connections, inputs can only have 1 connection Set node connection property when creating connection Rebuild graph connections from serialized node connections Reset input connection on remove Only set input property if it's node connection type Use node connection type for all node inputs Clear preview and drop target when rebuilding graph Clear connections on graph rebuild Don't serialize node properties that don't have setters First attempt at codegen from graph Time, cosine, multiply nodes Add toolbar to preview Add more toolbar options for main window Add properties dock to edit properties of nodes Hide node properties we dont want to see Add color node Dirty session when property values change Hook up preview primitive types Open asset picker for preview model Don't reconstruct new graph object on undo, just clear nodes and deserialize Save and load does full serialization, not just nodes, we may have settings we want to save Save preview model Rename NodeConnection to NodeInput and make it IValid Target graph properties when no node is selected Base class unary node because it's gonna be the same shit for each Abs node Add node types automatically Show compile errors in output Copy error to clipboard Add menu option to focus node with error Selecting error selects node Center on selected error node Use orbit cam for preview, makes more sense Open context menu after dragging an unconnected wire Some cleanup Use default a and b values for binary nodes when input isn't valid Cut down on file reading in CreateFromVfxFile so eventually it can be created from memory Rename vfx create functions to make more sense Write generated shader to temp dir Don't generate code if graph compiler has errors Run shader compiler process for generated shader Write generated shader to bullshit placeholder resource for now Make color node use color property Make color node use color property Add lerp node Add lerp node Don't serialize NodeInput.IsValid Log program type when spewing shader stats so I can see what's what Remove all dynamic shader compiling code, we don't use it and it's over complicating everything Remove all dynamic shader compiling code, we don't use it and it's over complicating everything CVfx cleanup Hacky dynamic shader compile test Start vfxc process to compile single shader we need to update preview, output bytecode to temp dir Replace render shader from bytecode Change preview material while shader is compiling Only recompile shader if generated code has changed Remove shader compile dll loading from material system again, no longer needed Add -fast cmd line option to vfxc to disable optimizations Add recent files to file menu Recompile shader after compile has finished if we're pending a compile so preview is always up to date Write generated shader next to shader graph on save until we can safely generate shader resource from temp dir Add compile timings Don't read and mask shader file twice in vfxc Don't include material inputs in shader template Don't include material inputs in shader template Remake dev sphere Clear cached generated code on new or open Only add existing files that exist Add saved file to recent files Only write generated shader to tempdir before invoking compile so we don't stomp on it while compiling Remove hlsl output tolower all recent file paths Draw spinning circle to show when preview shader is compiling Texture node Generate code for textures Cleanup template shader and material used in shader editor Set toolView attribute so depth prepass gets disabled (wireframe doesn't render correctly with depth prepass enabled) Optional texcoords on texture node Add Vector2 node Add console tab for convenience Add sampler properties to texture node Serialize other properties of graph, handle node serialization separately Reset properties target when there's a new graph Fill out shader description from graph Add texcoord node Display g_flTime in properties Some more unary nodes Add dock restoring Use a more detailed cubemap and skybox Serialize compiled shader info to temp dir Recreate static combo data from serialized compiled shader info Plug texture filter into generated code to test preview updating Ask vfxc to output compiled shader info instead of bytecode Create connection to new node when created through drag + context menu Add undo history ui Don't apply same undo level Add filter edit to node context menu and sort into category submenus Give nodes better categories Sort by category Prompt user to save when trying to create new or opening new graph while current graph has unsaved changes Prompt save when opening from recent files also
1 Year Ago
Prompt save when opening from recent files also
1 Year Ago
Prompt user to save when trying to create new or opening new graph while current graph has unsaved changes
1 Year Ago
Add filter edit to node context menu and sort into category submenus Give nodes better categories Sort by category
1 Year Ago
Don't apply same undo level
1 Year Ago
Add undo history ui
1 Year Ago
Create connection to new node when created through drag + context menu
1 Year Ago
Ask vfxc to output compiled shader info instead of bytecode
1 Year Ago
Serialize compiled shader info to temp dir Recreate static combo data from serialized compiled shader info Plug texture filter into generated code to test preview updating
1 Year Ago
Use a more detailed cubemap and skybox
1 Year Ago
Some more unary nodes Add dock restoring
1 Year Ago
Display g_flTime in properties
1 Year Ago
Fill out shader description from graph Add texcoord node
1 Year Ago
Serialize other properties of graph, handle node serialization separately Reset properties target when there's a new graph
1 Year Ago
Add sampler properties to texture node
1 Year Ago
Add console tab for convenience
1 Year Ago
Optional texcoords on texture node Add Vector2 node
1 Year Ago
Cleanup template shader and material used in shader editor Set toolView attribute so depth prepass gets disabled (wireframe doesn't render correctly with depth prepass enabled)
1 Year Ago
Only add existing files that exist Add saved file to recent files Only write generated shader to tempdir before invoking compile so we don't stomp on it while compiling Remove hlsl output tolower all recent file paths Draw spinning circle to show when preview shader is compiling Texture node Generate code for textures
1 Year Ago
Clear cached generated code on new or open
1 Year Ago
Remake dev sphere
1 Year Ago
Don't include material inputs in shader template
1 Year Ago
Don't read and mask shader file twice in vfxc
1 Year Ago
Add compile timings
1 Year Ago
Write generated shader next to shader graph on save until we can safely generate shader resource from temp dir