├── Examples ├── Ramp Textures │ ├── ToonRamp.png │ ├── ToonRamp2.png │ ├── GradientRamp.png │ ├── GradientRamp.png.meta │ ├── ToonRamp.png.meta │ └── ToonRamp2.png.meta ├── Ramp Textures.meta ├── Toon.mat.meta ├── ShadowReceiver.mat.meta ├── Toon.shadergraph.meta ├── ShadowReceiver.shadergraph.meta ├── ShadowReceiver.mat ├── Toon.mat └── ShadowReceiver.shadergraph ├── LICENSE.meta ├── README.md.meta ├── package.json.meta ├── Examples.meta ├── SubGraphs.meta ├── SubGraphs ├── Deprecated.meta ├── Mix Fog.shadersubgraph.meta ├── Main Light.shadersubgraph.meta ├── Additional Lights.shadersubgraph.meta ├── Main Light Cookie.shadersubgraph.meta ├── Sample Shadowmask.shadersubgraph.meta ├── Subtractive GI.shadersubgraph.meta ├── Main Light Diffuse.shadersubgraph.meta ├── Main Light Layer Test.shadersubgraph.meta ├── Main Light Shadows.shadersubgraph.meta ├── Deprecated │ ├── Ambient SampleSH.shadersubgraph.meta │ ├── Phong Specular.shadersubgraph.meta │ ├── Blinn Phong Specular.shadersubgraph.meta │ └── Ambient SampleSH.shadersubgraph ├── Main Light Specular Highlights.shadersubgraph.meta ├── Main Light.shadersubgraph ├── Main Light Layer Test.shadersubgraph ├── Sample Shadowmask.shadersubgraph ├── Main Light Cookie.shadersubgraph ├── Main Light Shadows.shadersubgraph ├── Mix Fog.shadersubgraph └── Subtractive GI.shadersubgraph ├── CustomLighting.hlsl.meta ├── package.json ├── LICENSE ├── README.md └── CustomLighting.hlsl /Examples/Ramp Textures/ToonRamp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cyanilux/URP_ShaderGraphCustomLighting/HEAD/Examples/Ramp Textures/ToonRamp.png -------------------------------------------------------------------------------- /Examples/Ramp Textures/ToonRamp2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cyanilux/URP_ShaderGraphCustomLighting/HEAD/Examples/Ramp Textures/ToonRamp2.png -------------------------------------------------------------------------------- /Examples/Ramp Textures/GradientRamp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cyanilux/URP_ShaderGraphCustomLighting/HEAD/Examples/Ramp Textures/GradientRamp.png -------------------------------------------------------------------------------- /LICENSE.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: aa5e5c5f2937903418e11a9eec5a6138 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /README.md.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5614068afe191054e8eef9f398292bc2 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /package.json.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3e77e8e1ca2fad942b51e193d001ee76 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Examples.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5aaf5d21734b08b4f8c47d51e64b5cdc 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /SubGraphs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4ee7bd589e126134eb6a115410f4f6c9 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Examples/Ramp Textures.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f25c2843f49a7d9429c800730b212c0b 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /SubGraphs/Deprecated.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bbd10d355e83b48459f8c20767baba95 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Examples/Toon.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 04b5d388926385f4da8d58f595365915 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Examples/ShadowReceiver.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e7ccb5d1ec226ea42b48985eb9615de6 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /CustomLighting.hlsl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5c09ec492074d214fbe1a19781ad15e8 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Examples/Toon.shadergraph.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2753d56cee62e1e4c815b7d92a3a0328 3 | ScriptedImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 2 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3} 11 | -------------------------------------------------------------------------------- /SubGraphs/Mix Fog.shadersubgraph.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: aadfc52f8da612746841c7c5af3fcea6 3 | ScriptedImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 2 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | script: {fileID: 11500000, guid: 60072b568d64c40a485e0fc55012dc9f, type: 3} 11 | -------------------------------------------------------------------------------- /Examples/ShadowReceiver.shadergraph.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c395164bee0484f4391b2932dfff0ff8 3 | ScriptedImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 2 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3} 11 | -------------------------------------------------------------------------------- /SubGraphs/Main Light.shadersubgraph.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 970d962ef25c3084987fd10643902eed 3 | ScriptedImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 2 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | script: {fileID: 11500000, guid: 60072b568d64c40a485e0fc55012dc9f, type: 3} 11 | -------------------------------------------------------------------------------- /SubGraphs/Additional Lights.shadersubgraph.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f831f4743ad6aab44842def2f21aa4bd 3 | ScriptedImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 2 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | script: {fileID: 11500000, guid: 60072b568d64c40a485e0fc55012dc9f, type: 3} 11 | -------------------------------------------------------------------------------- /SubGraphs/Main Light Cookie.shadersubgraph.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 10c46dae14e32304198ab110e1fe2c71 3 | ScriptedImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 2 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | script: {fileID: 11500000, guid: 60072b568d64c40a485e0fc55012dc9f, type: 3} 11 | -------------------------------------------------------------------------------- /SubGraphs/Sample Shadowmask.shadersubgraph.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9138d5438d90fb24f805131efa395cf6 3 | ScriptedImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 2 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | script: {fileID: 11500000, guid: 60072b568d64c40a485e0fc55012dc9f, type: 3} 11 | -------------------------------------------------------------------------------- /SubGraphs/Subtractive GI.shadersubgraph.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3898ebeae7050e741a924ad695a7a8f8 3 | ScriptedImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 2 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | script: {fileID: 11500000, guid: 60072b568d64c40a485e0fc55012dc9f, type: 3} 11 | -------------------------------------------------------------------------------- /SubGraphs/Main Light Diffuse.shadersubgraph.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 54e5956b307254749804a49de2643ea4 3 | ScriptedImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 2 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | script: {fileID: 11500000, guid: 60072b568d64c40a485e0fc55012dc9f, type: 3} 11 | -------------------------------------------------------------------------------- /SubGraphs/Main Light Layer Test.shadersubgraph.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ff89f0e401734344bb3b63ca6d1c4bb3 3 | ScriptedImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 2 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | script: {fileID: 11500000, guid: 60072b568d64c40a485e0fc55012dc9f, type: 3} 11 | -------------------------------------------------------------------------------- /SubGraphs/Main Light Shadows.shadersubgraph.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f3ba9248037f69f429d9e52bc2e30940 3 | ScriptedImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 2 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | script: {fileID: 11500000, guid: 60072b568d64c40a485e0fc55012dc9f, type: 3} 11 | -------------------------------------------------------------------------------- /SubGraphs/Deprecated/Ambient SampleSH.shadersubgraph.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e13fbf63d7907af4ab4988492ac7bca8 3 | ScriptedImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 2 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | script: {fileID: 11500000, guid: 60072b568d64c40a485e0fc55012dc9f, type: 3} 11 | -------------------------------------------------------------------------------- /SubGraphs/Deprecated/Phong Specular.shadersubgraph.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f8b092054805c324f821345a0fe7a30a 3 | ScriptedImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 2 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | script: {fileID: 11500000, guid: 60072b568d64c40a485e0fc55012dc9f, type: 3} 11 | -------------------------------------------------------------------------------- /SubGraphs/Deprecated/Blinn Phong Specular.shadersubgraph.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 452e746e89d0e954ea75d03cb0211059 3 | ScriptedImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 2 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | script: {fileID: 11500000, guid: 60072b568d64c40a485e0fc55012dc9f, type: 3} 11 | -------------------------------------------------------------------------------- /SubGraphs/Main Light Specular Highlights.shadersubgraph.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0c0d4473bed74ba4bbba1f27d6666667 3 | ScriptedImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 2 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | script: {fileID: 11500000, guid: 60072b568d64c40a485e0fc55012dc9f, type: 3} 11 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "com.cyanilux.shadergraph-customlighting", 3 | "version": "17.1.0", 4 | "displayName": "Shader Graph / URP Custom Lighting", 5 | "description": "Some custom lighting functions/sub-graphs for Shader Graph, Universal Render Pipeline", 6 | "keywords": [ 7 | "Shader Graph", 8 | "URP" 9 | ], 10 | "author": { 11 | "name": "Cyanilux", 12 | "url": "https://www.cyanilux.com/" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Cyanilux 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Examples/ShadowReceiver.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &-6997254575961283463 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 11 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | version: 10 16 | --- !u!21 &2100000 17 | Material: 18 | serializedVersion: 8 19 | m_ObjectHideFlags: 0 20 | m_CorrespondingSourceObject: {fileID: 0} 21 | m_PrefabInstance: {fileID: 0} 22 | m_PrefabAsset: {fileID: 0} 23 | m_Name: ShadowReceiver 24 | m_Shader: {fileID: -6465566751694194690, guid: c395164bee0484f4391b2932dfff0ff8, type: 3} 25 | m_Parent: {fileID: 0} 26 | m_ModifiedSerializedProperties: 0 27 | m_ValidKeywords: [] 28 | m_InvalidKeywords: 29 | - _MAIN_LIGHT_OFF 30 | - _SHADOWS_HARD 31 | m_LightmapFlags: 4 32 | m_EnableInstancingVariants: 0 33 | m_DoubleSidedGI: 0 34 | m_CustomRenderQueue: -1 35 | stringTagMap: {} 36 | disabledShaderPasses: 37 | - MOTIONVECTORS 38 | m_LockedProperties: 39 | m_SavedProperties: 40 | serializedVersion: 3 41 | m_TexEnvs: 42 | - unity_Lightmaps: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - unity_LightmapsInd: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - unity_ShadowMasks: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | m_Ints: [] 55 | m_Floats: 56 | - _CLUSTER_LIGHT_LOOP: 0 57 | - _FORWARD_PLUS: 0 58 | - _MAIN_LIGHT: 0 59 | - _QueueControl: 0 60 | - _QueueOffset: 0 61 | - _SHADOWS: 0 62 | m_Colors: 63 | - _ShadowColor: {r: 0, g: 0, b: 0, a: 0} 64 | m_BuildTextureStacks: [] 65 | m_AllowLocking: 1 66 | -------------------------------------------------------------------------------- /Examples/Toon.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &-1082607895480681134 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 11 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | version: 10 16 | --- !u!21 &2100000 17 | Material: 18 | serializedVersion: 8 19 | m_ObjectHideFlags: 0 20 | m_CorrespondingSourceObject: {fileID: 0} 21 | m_PrefabInstance: {fileID: 0} 22 | m_PrefabAsset: {fileID: 0} 23 | m_Name: Toon 24 | m_Shader: {fileID: -6465566751694194690, guid: 2753d56cee62e1e4c815b7d92a3a0328, type: 3} 25 | m_Parent: {fileID: 0} 26 | m_ModifiedSerializedProperties: 0 27 | m_ValidKeywords: [] 28 | m_InvalidKeywords: 29 | - ADDITIONAL_LIGHTS_ON 30 | m_LightmapFlags: 4 31 | m_EnableInstancingVariants: 0 32 | m_DoubleSidedGI: 0 33 | m_CustomRenderQueue: 2000 34 | stringTagMap: 35 | RenderType: Opaque 36 | disabledShaderPasses: 37 | - MOTIONVECTORS 38 | m_LockedProperties: 39 | m_SavedProperties: 40 | serializedVersion: 3 41 | m_TexEnvs: 42 | - _BaseMap: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _RampTexture: 47 | m_Texture: {fileID: 2800000, guid: a1a4108227a8a8b4f9067f80f37c33ec, type: 3} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _Ramp_Texture: 51 | m_Texture: {fileID: 2800000, guid: a1a4108227a8a8b4f9067f80f37c33ec, type: 3} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - unity_Lightmaps: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | - unity_LightmapsInd: 59 | m_Texture: {fileID: 0} 60 | m_Scale: {x: 1, y: 1} 61 | m_Offset: {x: 0, y: 0} 62 | - unity_ShadowMasks: 63 | m_Texture: {fileID: 0} 64 | m_Scale: {x: 1, y: 1} 65 | m_Offset: {x: 0, y: 0} 66 | m_Ints: [] 67 | m_Floats: 68 | - ADDITIONAL_LIGHTS: 1 69 | - _AlphaClip: 0 70 | - _AlphaClipThreshold: 0.5 71 | - _AlphaToMask: 0 72 | - _Alpha_Clip_Threshold: 0.5 73 | - _Blend: 0 74 | - _CastShadows: 1 75 | - _Cull: 2 76 | - _DYNAMICLIGHTMAP: 0 77 | - _DstBlend: 0 78 | - _LIGHTMAP: 0 79 | - _LIGHTMAP_SHADOW_MIXING: 0 80 | - _QueueControl: 0 81 | - _QueueOffset: 0 82 | - _SPECULAR: 0 83 | - _Smoothness: 0.5 84 | - _SrcBlend: 1 85 | - _Surface: 0 86 | - _ZTest: 4 87 | - _ZWrite: 1 88 | - _ZWriteControl: 0 89 | m_Colors: 90 | - _DiffuseColor: {r: 0.09803923, g: 0.8862745, b: 0.7573516, a: 1} 91 | - _SpecularColour: {r: 1, g: 1, b: 1, a: 1} 92 | m_BuildTextureStacks: [] 93 | m_AllowLocking: 1 94 | -------------------------------------------------------------------------------- /Examples/Ramp Textures/GradientRamp.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 29feaa972fc66b448a664812a2799447 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | grayScaleToAlpha: 0 28 | generateCubemap: 6 29 | cubemapConvolution: 0 30 | seamlessCubemap: 0 31 | textureFormat: 1 32 | maxTextureSize: 2048 33 | textureSettings: 34 | serializedVersion: 2 35 | filterMode: -1 36 | aniso: -1 37 | mipBias: -100 38 | wrapU: 1 39 | wrapV: 1 40 | wrapW: 1 41 | nPOTScale: 1 42 | lightmap: 0 43 | compressionQuality: 50 44 | spriteMode: 0 45 | spriteExtrude: 1 46 | spriteMeshType: 1 47 | alignment: 0 48 | spritePivot: {x: 0.5, y: 0.5} 49 | spritePixelsToUnits: 100 50 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 51 | spriteGenerateFallbackPhysicsShape: 1 52 | alphaUsage: 1 53 | alphaIsTransparency: 0 54 | spriteTessellationDetail: -1 55 | textureType: 0 56 | textureShape: 1 57 | singleChannelComponent: 0 58 | maxTextureSizeSet: 0 59 | compressionQualitySet: 0 60 | textureFormatSet: 0 61 | ignorePngGamma: 0 62 | applyGammaDecoding: 0 63 | platformSettings: 64 | - serializedVersion: 3 65 | buildTarget: DefaultTexturePlatform 66 | maxTextureSize: 2048 67 | resizeAlgorithm: 0 68 | textureFormat: -1 69 | textureCompression: 1 70 | compressionQuality: 50 71 | crunchedCompression: 0 72 | allowsAlphaSplitting: 0 73 | overridden: 0 74 | androidETC2FallbackOverride: 0 75 | forceMaximumCompressionQuality_BC6H_BC7: 0 76 | - serializedVersion: 3 77 | buildTarget: Standalone 78 | maxTextureSize: 2048 79 | resizeAlgorithm: 0 80 | textureFormat: -1 81 | textureCompression: 1 82 | compressionQuality: 50 83 | crunchedCompression: 0 84 | allowsAlphaSplitting: 0 85 | overridden: 0 86 | androidETC2FallbackOverride: 0 87 | forceMaximumCompressionQuality_BC6H_BC7: 0 88 | - serializedVersion: 3 89 | buildTarget: WebGL 90 | maxTextureSize: 2048 91 | resizeAlgorithm: 0 92 | textureFormat: -1 93 | textureCompression: 1 94 | compressionQuality: 50 95 | crunchedCompression: 0 96 | allowsAlphaSplitting: 0 97 | overridden: 0 98 | androidETC2FallbackOverride: 0 99 | forceMaximumCompressionQuality_BC6H_BC7: 0 100 | spriteSheet: 101 | serializedVersion: 2 102 | sprites: [] 103 | outline: [] 104 | physicsShape: [] 105 | bones: [] 106 | spriteID: 107 | internalID: 0 108 | vertices: [] 109 | indices: 110 | edges: [] 111 | weights: [] 112 | secondaryTextures: [] 113 | spritePackingTag: 114 | pSDRemoveMatte: 0 115 | pSDShowRemoveMatteOption: 0 116 | userData: 117 | assetBundleName: 118 | assetBundleVariant: 119 | -------------------------------------------------------------------------------- /Examples/Ramp Textures/ToonRamp.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9771bd5fbe60f8f42a9c5f5b9caff218 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 1 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | grayScaleToAlpha: 0 28 | generateCubemap: 6 29 | cubemapConvolution: 0 30 | seamlessCubemap: 0 31 | textureFormat: 1 32 | maxTextureSize: 2048 33 | textureSettings: 34 | serializedVersion: 2 35 | filterMode: -1 36 | aniso: -1 37 | mipBias: -100 38 | wrapU: 1 39 | wrapV: 1 40 | wrapW: 1 41 | nPOTScale: 1 42 | lightmap: 0 43 | compressionQuality: 50 44 | spriteMode: 0 45 | spriteExtrude: 1 46 | spriteMeshType: 1 47 | alignment: 0 48 | spritePivot: {x: 0.5, y: 0.5} 49 | spritePixelsToUnits: 100 50 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 51 | spriteGenerateFallbackPhysicsShape: 1 52 | alphaUsage: 1 53 | alphaIsTransparency: 0 54 | spriteTessellationDetail: -1 55 | textureType: 0 56 | textureShape: 1 57 | singleChannelComponent: 0 58 | maxTextureSizeSet: 0 59 | compressionQualitySet: 0 60 | textureFormatSet: 0 61 | ignorePngGamma: 0 62 | applyGammaDecoding: 0 63 | platformSettings: 64 | - serializedVersion: 3 65 | buildTarget: DefaultTexturePlatform 66 | maxTextureSize: 2048 67 | resizeAlgorithm: 0 68 | textureFormat: -1 69 | textureCompression: 2 70 | compressionQuality: 50 71 | crunchedCompression: 0 72 | allowsAlphaSplitting: 0 73 | overridden: 0 74 | androidETC2FallbackOverride: 0 75 | forceMaximumCompressionQuality_BC6H_BC7: 0 76 | - serializedVersion: 3 77 | buildTarget: Standalone 78 | maxTextureSize: 2048 79 | resizeAlgorithm: 0 80 | textureFormat: -1 81 | textureCompression: 2 82 | compressionQuality: 50 83 | crunchedCompression: 0 84 | allowsAlphaSplitting: 0 85 | overridden: 0 86 | androidETC2FallbackOverride: 0 87 | forceMaximumCompressionQuality_BC6H_BC7: 0 88 | - serializedVersion: 3 89 | buildTarget: WebGL 90 | maxTextureSize: 2048 91 | resizeAlgorithm: 0 92 | textureFormat: -1 93 | textureCompression: 2 94 | compressionQuality: 50 95 | crunchedCompression: 0 96 | allowsAlphaSplitting: 0 97 | overridden: 0 98 | androidETC2FallbackOverride: 0 99 | forceMaximumCompressionQuality_BC6H_BC7: 0 100 | spriteSheet: 101 | serializedVersion: 2 102 | sprites: [] 103 | outline: [] 104 | physicsShape: [] 105 | bones: [] 106 | spriteID: 107 | internalID: 0 108 | vertices: [] 109 | indices: 110 | edges: [] 111 | weights: [] 112 | secondaryTextures: [] 113 | spritePackingTag: 114 | pSDRemoveMatte: 0 115 | pSDShowRemoveMatteOption: 0 116 | userData: 117 | assetBundleName: 118 | assetBundleVariant: 119 | -------------------------------------------------------------------------------- /Examples/Ramp Textures/ToonRamp2.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a1a4108227a8a8b4f9067f80f37c33ec 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 1 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | grayScaleToAlpha: 0 28 | generateCubemap: 6 29 | cubemapConvolution: 0 30 | seamlessCubemap: 0 31 | textureFormat: 1 32 | maxTextureSize: 2048 33 | textureSettings: 34 | serializedVersion: 2 35 | filterMode: -1 36 | aniso: -1 37 | mipBias: -100 38 | wrapU: 1 39 | wrapV: 1 40 | wrapW: 1 41 | nPOTScale: 1 42 | lightmap: 0 43 | compressionQuality: 50 44 | spriteMode: 0 45 | spriteExtrude: 1 46 | spriteMeshType: 1 47 | alignment: 0 48 | spritePivot: {x: 0.5, y: 0.5} 49 | spritePixelsToUnits: 100 50 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 51 | spriteGenerateFallbackPhysicsShape: 1 52 | alphaUsage: 1 53 | alphaIsTransparency: 0 54 | spriteTessellationDetail: -1 55 | textureType: 0 56 | textureShape: 1 57 | singleChannelComponent: 0 58 | maxTextureSizeSet: 0 59 | compressionQualitySet: 0 60 | textureFormatSet: 0 61 | ignorePngGamma: 0 62 | applyGammaDecoding: 0 63 | platformSettings: 64 | - serializedVersion: 3 65 | buildTarget: DefaultTexturePlatform 66 | maxTextureSize: 2048 67 | resizeAlgorithm: 0 68 | textureFormat: -1 69 | textureCompression: 2 70 | compressionQuality: 50 71 | crunchedCompression: 0 72 | allowsAlphaSplitting: 0 73 | overridden: 0 74 | androidETC2FallbackOverride: 0 75 | forceMaximumCompressionQuality_BC6H_BC7: 0 76 | - serializedVersion: 3 77 | buildTarget: Standalone 78 | maxTextureSize: 2048 79 | resizeAlgorithm: 0 80 | textureFormat: -1 81 | textureCompression: 2 82 | compressionQuality: 50 83 | crunchedCompression: 0 84 | allowsAlphaSplitting: 0 85 | overridden: 0 86 | androidETC2FallbackOverride: 0 87 | forceMaximumCompressionQuality_BC6H_BC7: 0 88 | - serializedVersion: 3 89 | buildTarget: WebGL 90 | maxTextureSize: 2048 91 | resizeAlgorithm: 0 92 | textureFormat: -1 93 | textureCompression: 2 94 | compressionQuality: 50 95 | crunchedCompression: 0 96 | allowsAlphaSplitting: 0 97 | overridden: 0 98 | androidETC2FallbackOverride: 0 99 | forceMaximumCompressionQuality_BC6H_BC7: 0 100 | spriteSheet: 101 | serializedVersion: 2 102 | sprites: [] 103 | outline: [] 104 | physicsShape: [] 105 | bones: [] 106 | spriteID: 107 | internalID: 0 108 | vertices: [] 109 | indices: 110 | edges: [] 111 | weights: [] 112 | secondaryTextures: [] 113 | spritePackingTag: 114 | pSDRemoveMatte: 0 115 | pSDShowRemoveMatteOption: 0 116 | userData: 117 | assetBundleName: 118 | assetBundleVariant: 119 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Shader Graph Custom Lighting 2 | Some custom lighting functions/sub-graphs for Shader Graph, Universal Render Pipeline. If anything breaks, let me know by opening an issue! 3 | 4 | ```diff 5 | + This version is for URP v17.1+ / Unity 6000.1+ 6 | - For older (including 6000.0) versions, see branches! 7 | ``` 8 | 9 | ### Setup: 10 | - Install via Package Manager → Add package via git URL : 11 | - `https://github.com/Cyanilux/URP_ShaderGraphCustomLighting.git` 12 | - Alternatively, download and put the folder in your Assets 13 | 14 | ### Known Issues : 15 | - Be aware that Shader Graph does not include keywords from blackboard if nested in multiple Sub Graphs. So for some of my subgraphs (ML Cookie, ML Layer Test, Sample Shadowmask & Subtractive GI), you may need to open them and copy the Boolean Keywords in the Blackboard to your subgraph (or every main graph where it's used) 16 | 17 | ### Includes Sub Graphs for : 18 | 19 | #### Main Light 20 | - `Main Light` 21 | - Outputs : Direction, Colour, CullingMask 22 | - `Main Light Shadows` 23 | - Inputs : WorldPosition, Shadowmask (can leave at 1,1,1,1 if you don't need it) 24 | - Outputs : ShadowAtten 25 | - (Now works with all Shadow Cascades settings!) 26 | - `Main Light Cookie`- For supporting cookies. Will also enable cookies for additional lights (as they use the same keyword) 27 | - Inputs : WorldPosition 28 | - Outputs : Cookie 29 | - `Main Light Layer Test` - For supporting Light Layers. Pass your shading calculation from main light through here. 30 | - Inputs : Shading 31 | - Output : Out (with layer mask applied) 32 | - `Main Light Diffuse` (handles Lambert / NdotL calculation) 33 | - Inputs : Normal 34 | - Outputs : Diffuse 35 | - `Main Light Specular Highlights` - handles specular highlights based on [Phong](https://en.wikipedia.org/wiki/Phong_reflection_model) or [BlinnPhong](https://en.wikipedia.org/wiki/Blinn%E2%80%93Phong_reflection_model) models 36 | - Inputs : Smoothness, Normal 37 | - Outputs : Specular 38 | 39 | #### Other 40 | - `Additional Lights` - Loops through each additional light, point, spotlights, etc. Handles diffuse, specular and shadows. Supports Forward+ path (in 2022.2+) 41 | - Also supports cookies if `Main Light Cookie` node is used (or `_LIGHT_COOKIES` Boolean Keyword is defined in Blackboard) 42 | - Also supports light layers if `Main Light Layer Test` node is used (or `_LIGHT_LAYERS` Boolean Keyword is defined in Blackboard) 43 | - For creating custom lighting models, you'll need to copy this function and edit it due to the loop, e.g. swap the LightingLambert and LightingSpecular functions out for custom ones. Also see the AdditionalLightsToon function as an example 44 | - Inputs : SpecularColour, Smoothness, Normal, Shadowmask 45 | - Outputs : Diffuse, Specular 46 | - `Sample Shadowmask` - attach this to the Shadowmask port on the Main Light Shadows and Additional Lights sub graphs, in order to support Shadowmask baked lighting mode 47 | - Outputs : Shadowmask 48 | - `Subtractive GI` - for supporting Subtractive baked lighting mode. Should connect Main Light Shadows node to first port. Uses MixRealtimeAndBakedGI function from URP ShaderLibrary 49 | - Inputs : ShadowAtten, Normal, BakedGI 50 | - Outputs : Out (Vector3) 51 | - `Mix Fog` - applies fog to the colour, should be used just before outputting to BaseColor on Master Stack 52 | - Inputs : Colour 53 | - Outputs : Out (Vector3, colour with fog applied) 54 | 55 | #### Deprecated 56 | - `Phong Specular` and `Blinn-Phong Specular` subgraphs are now considered deprecated - use `Main Light Specular Highlights` instead. 57 | - `Ambient SampleSH` - uses per-pixel SampleSH. Somewhat redundant, should prefer using the built-in `Baked GI` node 58 | - Inputs : Normal 59 | - Outputs : Ambient 60 | 61 | ### Included Examples 62 | - **Toon** - Toon/Cel Shading. Main Light (ramp texture) & Additional Lights (number of bands). Also supports Main Light Cookies, BakedGI (including Subtractive & Shadowmask), Fog 63 | - **Shadow Receiver** - Transparent material that receives shadows and can set their colour. Can turn off casting via Mesh Renderer 64 | -------------------------------------------------------------------------------- /SubGraphs/Main Light.shadersubgraph: -------------------------------------------------------------------------------- 1 | { 2 | "m_SGVersion": 3, 3 | "m_Type": "UnityEditor.ShaderGraph.GraphData", 4 | "m_ObjectId": "c74005a6471a43bfbba1a72bd79a3a70", 5 | "m_Properties": [], 6 | "m_Keywords": [], 7 | "m_Dropdowns": [], 8 | "m_CategoryData": [ 9 | { 10 | "m_Id": "ea839da0743e41379af3acae1158e7eb" 11 | } 12 | ], 13 | "m_Nodes": [ 14 | { 15 | "m_Id": "0f043bb7e9b9d1849a740f31c19b79a8" 16 | }, 17 | { 18 | "m_Id": "3be2118d2270ff818ec5f0f1353e249f" 19 | } 20 | ], 21 | "m_GroupDatas": [], 22 | "m_StickyNoteDatas": [], 23 | "m_Edges": [ 24 | { 25 | "m_OutputSlot": { 26 | "m_Node": { 27 | "m_Id": "3be2118d2270ff818ec5f0f1353e249f" 28 | }, 29 | "m_SlotId": 1 30 | }, 31 | "m_InputSlot": { 32 | "m_Node": { 33 | "m_Id": "0f043bb7e9b9d1849a740f31c19b79a8" 34 | }, 35 | "m_SlotId": 1 36 | } 37 | }, 38 | { 39 | "m_OutputSlot": { 40 | "m_Node": { 41 | "m_Id": "3be2118d2270ff818ec5f0f1353e249f" 42 | }, 43 | "m_SlotId": 2 44 | }, 45 | "m_InputSlot": { 46 | "m_Node": { 47 | "m_Id": "0f043bb7e9b9d1849a740f31c19b79a8" 48 | }, 49 | "m_SlotId": 2 50 | } 51 | }, 52 | { 53 | "m_OutputSlot": { 54 | "m_Node": { 55 | "m_Id": "3be2118d2270ff818ec5f0f1353e249f" 56 | }, 57 | "m_SlotId": 3 58 | }, 59 | "m_InputSlot": { 60 | "m_Node": { 61 | "m_Id": "0f043bb7e9b9d1849a740f31c19b79a8" 62 | }, 63 | "m_SlotId": 3 64 | } 65 | } 66 | ], 67 | "m_VertexContext": { 68 | "m_Position": { 69 | "x": 259.0, 70 | "y": -74.0 71 | }, 72 | "m_Blocks": [] 73 | }, 74 | "m_FragmentContext": { 75 | "m_Position": { 76 | "x": 259.0, 77 | "y": 126.0 78 | }, 79 | "m_Blocks": [] 80 | }, 81 | "m_PreviewData": { 82 | "serializedMesh": { 83 | "m_SerializedMesh": "{\"mesh\":{\"instanceID\":0}}", 84 | "m_Guid": "" 85 | }, 86 | "preventRotation": false 87 | }, 88 | "m_Path": "Custom Lighting", 89 | "m_GraphPrecision": 0, 90 | "m_PreviewMode": 2, 91 | "m_OutputNode": { 92 | "m_Id": "0f043bb7e9b9d1849a740f31c19b79a8" 93 | }, 94 | "m_SubDatas": [], 95 | "m_ActiveTargets": [] 96 | } 97 | 98 | { 99 | "m_SGVersion": 0, 100 | "m_Type": "UnityEditor.ShaderGraph.SubGraphOutputNode", 101 | "m_ObjectId": "0f043bb7e9b9d1849a740f31c19b79a8", 102 | "m_Group": { 103 | "m_Id": "" 104 | }, 105 | "m_Name": "Out_Vector1", 106 | "m_DrawState": { 107 | "m_Expanded": true, 108 | "m_Position": { 109 | "serializedVersion": "2", 110 | "x": 239.0, 111 | "y": -74.0, 112 | "width": 127.0, 113 | "height": 125.0 114 | } 115 | }, 116 | "m_Slots": [ 117 | { 118 | "m_Id": "a0d02e573b3ba68fa9f13362f0e6255f" 119 | }, 120 | { 121 | "m_Id": "bd707ec20be29181868244301b2ba07f" 122 | }, 123 | { 124 | "m_Id": "a709bcfbde214756bfb88dccd590d8f4" 125 | } 126 | ], 127 | "synonyms": [], 128 | "m_Precision": 0, 129 | "m_PreviewExpanded": true, 130 | "m_DismissedVersion": 0, 131 | "m_PreviewMode": 0, 132 | "m_CustomColors": { 133 | "m_SerializableColors": [] 134 | }, 135 | "IsFirstSlotValid": true 136 | } 137 | 138 | { 139 | "m_SGVersion": 1, 140 | "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode", 141 | "m_ObjectId": "3be2118d2270ff818ec5f0f1353e249f", 142 | "m_Group": { 143 | "m_Id": "" 144 | }, 145 | "m_Name": "MainLight (Custom Function)", 146 | "m_DrawState": { 147 | "m_Expanded": true, 148 | "m_Position": { 149 | "serializedVersion": "2", 150 | "x": 28.0, 151 | "y": -74.0, 152 | "width": 208.0, 153 | "height": 326.0 154 | } 155 | }, 156 | "m_Slots": [ 157 | { 158 | "m_Id": "6a81d3d5075bf688be4c962ee8f2e01b" 159 | }, 160 | { 161 | "m_Id": "4a6dd49c99fb4d8088e5738f060aecf6" 162 | }, 163 | { 164 | "m_Id": "92a421c8566b451bbf9906125a90f7c0" 165 | } 166 | ], 167 | "synonyms": [ 168 | "code", 169 | "HLSL" 170 | ], 171 | "m_Precision": 0, 172 | "m_PreviewExpanded": false, 173 | "m_DismissedVersion": 0, 174 | "m_PreviewMode": 0, 175 | "m_CustomColors": { 176 | "m_SerializableColors": [] 177 | }, 178 | "m_SourceType": 0, 179 | "m_FunctionName": "MainLight", 180 | "m_FunctionSource": "5c09ec492074d214fbe1a19781ad15e8", 181 | "m_FunctionSourceUsePragmas": true, 182 | "m_FunctionBody": "Enter function body here..." 183 | } 184 | 185 | { 186 | "m_SGVersion": 0, 187 | "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", 188 | "m_ObjectId": "4a6dd49c99fb4d8088e5738f060aecf6", 189 | "m_Id": 2, 190 | "m_DisplayName": "Colour", 191 | "m_SlotType": 1, 192 | "m_Hidden": false, 193 | "m_ShaderOutputName": "Colour", 194 | "m_StageCapability": 3, 195 | "m_Value": { 196 | "x": 0.0, 197 | "y": 0.0, 198 | "z": 0.0 199 | }, 200 | "m_DefaultValue": { 201 | "x": 0.0, 202 | "y": 0.0, 203 | "z": 0.0 204 | }, 205 | "m_Labels": [ 206 | "X", 207 | "Y", 208 | "Z" 209 | ] 210 | } 211 | 212 | { 213 | "m_SGVersion": 0, 214 | "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", 215 | "m_ObjectId": "6a81d3d5075bf688be4c962ee8f2e01b", 216 | "m_Id": 1, 217 | "m_DisplayName": "Direction", 218 | "m_SlotType": 1, 219 | "m_Hidden": false, 220 | "m_ShaderOutputName": "Direction", 221 | "m_StageCapability": 3, 222 | "m_Value": { 223 | "x": 0.0, 224 | "y": 0.0, 225 | "z": 0.0 226 | }, 227 | "m_DefaultValue": { 228 | "x": 0.0, 229 | "y": 0.0, 230 | "z": 0.0 231 | }, 232 | "m_Labels": [ 233 | "X", 234 | "Y", 235 | "Z" 236 | ] 237 | } 238 | 239 | { 240 | "m_SGVersion": 0, 241 | "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", 242 | "m_ObjectId": "92a421c8566b451bbf9906125a90f7c0", 243 | "m_Id": 3, 244 | "m_DisplayName": "DistanceAtten", 245 | "m_SlotType": 1, 246 | "m_Hidden": false, 247 | "m_ShaderOutputName": "DistanceAtten", 248 | "m_StageCapability": 3, 249 | "m_Value": 0.0, 250 | "m_DefaultValue": 0.0, 251 | "m_Labels": [] 252 | } 253 | 254 | { 255 | "m_SGVersion": 0, 256 | "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", 257 | "m_ObjectId": "a0d02e573b3ba68fa9f13362f0e6255f", 258 | "m_Id": 1, 259 | "m_DisplayName": "Direction", 260 | "m_SlotType": 0, 261 | "m_Hidden": false, 262 | "m_ShaderOutputName": "Direction", 263 | "m_StageCapability": 3, 264 | "m_Value": { 265 | "x": 0.0, 266 | "y": 0.0, 267 | "z": 0.0 268 | }, 269 | "m_DefaultValue": { 270 | "x": 0.0, 271 | "y": 0.0, 272 | "z": 0.0 273 | }, 274 | "m_Labels": [ 275 | "X", 276 | "Y", 277 | "Z" 278 | ] 279 | } 280 | 281 | { 282 | "m_SGVersion": 0, 283 | "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", 284 | "m_ObjectId": "a709bcfbde214756bfb88dccd590d8f4", 285 | "m_Id": 3, 286 | "m_DisplayName": "CullingMask", 287 | "m_SlotType": 0, 288 | "m_Hidden": false, 289 | "m_ShaderOutputName": "CullingMask", 290 | "m_StageCapability": 3, 291 | "m_Value": 0.0, 292 | "m_DefaultValue": 0.0, 293 | "m_Labels": [] 294 | } 295 | 296 | { 297 | "m_SGVersion": 0, 298 | "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", 299 | "m_ObjectId": "bd707ec20be29181868244301b2ba07f", 300 | "m_Id": 2, 301 | "m_DisplayName": "Colour", 302 | "m_SlotType": 0, 303 | "m_Hidden": false, 304 | "m_ShaderOutputName": "Colour", 305 | "m_StageCapability": 3, 306 | "m_Value": { 307 | "x": 0.0, 308 | "y": 0.0, 309 | "z": 0.0 310 | }, 311 | "m_DefaultValue": { 312 | "x": 0.0, 313 | "y": 0.0, 314 | "z": 0.0 315 | }, 316 | "m_Labels": [ 317 | "X", 318 | "Y", 319 | "Z" 320 | ] 321 | } 322 | 323 | { 324 | "m_SGVersion": 0, 325 | "m_Type": "UnityEditor.ShaderGraph.CategoryData", 326 | "m_ObjectId": "ea839da0743e41379af3acae1158e7eb", 327 | "m_Name": "", 328 | "m_ChildObjectList": [] 329 | } 330 | 331 | -------------------------------------------------------------------------------- /SubGraphs/Main Light Layer Test.shadersubgraph: -------------------------------------------------------------------------------- 1 | { 2 | "m_SGVersion": 3, 3 | "m_Type": "UnityEditor.ShaderGraph.GraphData", 4 | "m_ObjectId": "6ccc676f731a493fafa9835286dfc528", 5 | "m_Properties": [ 6 | { 7 | "m_Id": "7ea1bbbacf460c879f6d8c85fd91750d" 8 | } 9 | ], 10 | "m_Keywords": [ 11 | { 12 | "m_Id": "345af8eac8db418a8d795b8f37f55ee8" 13 | } 14 | ], 15 | "m_Dropdowns": [], 16 | "m_CategoryData": [ 17 | { 18 | "m_Id": "1a0133ec0b7148738854ac5fbfdb06c6" 19 | } 20 | ], 21 | "m_Nodes": [ 22 | { 23 | "m_Id": "0f043bb7e9b9d1849a740f31c19b79a8" 24 | }, 25 | { 26 | "m_Id": "3be2118d2270ff818ec5f0f1353e249f" 27 | }, 28 | { 29 | "m_Id": "65e443cb15a9fb859a50ebae06e81569" 30 | } 31 | ], 32 | "m_GroupDatas": [], 33 | "m_StickyNoteDatas": [], 34 | "m_Edges": [ 35 | { 36 | "m_OutputSlot": { 37 | "m_Node": { 38 | "m_Id": "3be2118d2270ff818ec5f0f1353e249f" 39 | }, 40 | "m_SlotId": 4 41 | }, 42 | "m_InputSlot": { 43 | "m_Node": { 44 | "m_Id": "0f043bb7e9b9d1849a740f31c19b79a8" 45 | }, 46 | "m_SlotId": 4 47 | } 48 | }, 49 | { 50 | "m_OutputSlot": { 51 | "m_Node": { 52 | "m_Id": "65e443cb15a9fb859a50ebae06e81569" 53 | }, 54 | "m_SlotId": 0 55 | }, 56 | "m_InputSlot": { 57 | "m_Node": { 58 | "m_Id": "3be2118d2270ff818ec5f0f1353e249f" 59 | }, 60 | "m_SlotId": 0 61 | } 62 | } 63 | ], 64 | "m_VertexContext": { 65 | "m_Position": { 66 | "x": 259.0, 67 | "y": -74.0 68 | }, 69 | "m_Blocks": [] 70 | }, 71 | "m_FragmentContext": { 72 | "m_Position": { 73 | "x": 259.0, 74 | "y": 126.0 75 | }, 76 | "m_Blocks": [] 77 | }, 78 | "m_PreviewData": { 79 | "serializedMesh": { 80 | "m_SerializedMesh": "{\"mesh\":{\"instanceID\":0}}", 81 | "m_Guid": "" 82 | }, 83 | "preventRotation": false 84 | }, 85 | "m_Path": "Custom Lighting", 86 | "m_GraphPrecision": 0, 87 | "m_PreviewMode": 2, 88 | "m_OutputNode": { 89 | "m_Id": "0f043bb7e9b9d1849a740f31c19b79a8" 90 | }, 91 | "m_SubDatas": [], 92 | "m_ActiveTargets": [] 93 | } 94 | 95 | { 96 | "m_SGVersion": 0, 97 | "m_Type": "UnityEditor.ShaderGraph.SubGraphOutputNode", 98 | "m_ObjectId": "0f043bb7e9b9d1849a740f31c19b79a8", 99 | "m_Group": { 100 | "m_Id": "" 101 | }, 102 | "m_Name": "Out_Vector1", 103 | "m_DrawState": { 104 | "m_Expanded": true, 105 | "m_Position": { 106 | "serializedVersion": "2", 107 | "x": 234.0, 108 | "y": -74.0, 109 | "width": 116.0, 110 | "height": 77.0 111 | } 112 | }, 113 | "m_Slots": [ 114 | { 115 | "m_Id": "d501eb20b0d34223b201b9fba93096bb" 116 | } 117 | ], 118 | "synonyms": [], 119 | "m_Precision": 0, 120 | "m_PreviewExpanded": true, 121 | "m_DismissedVersion": 0, 122 | "m_PreviewMode": 0, 123 | "m_CustomColors": { 124 | "m_SerializableColors": [] 125 | }, 126 | "IsFirstSlotValid": true 127 | } 128 | 129 | { 130 | "m_SGVersion": 0, 131 | "m_Type": "UnityEditor.ShaderGraph.CategoryData", 132 | "m_ObjectId": "1a0133ec0b7148738854ac5fbfdb06c6", 133 | "m_Name": "", 134 | "m_ChildObjectList": [ 135 | { 136 | "m_Id": "7ea1bbbacf460c879f6d8c85fd91750d" 137 | }, 138 | { 139 | "m_Id": "345af8eac8db418a8d795b8f37f55ee8" 140 | } 141 | ] 142 | } 143 | 144 | { 145 | "m_SGVersion": 1, 146 | "m_Type": "UnityEditor.ShaderGraph.ShaderKeyword", 147 | "m_ObjectId": "345af8eac8db418a8d795b8f37f55ee8", 148 | "m_Guid": { 149 | "m_GuidSerialized": "1feaf4d7-0891-4969-9957-9a8a8b3de535" 150 | }, 151 | "m_Name": "LightLayersKeyword", 152 | "m_DefaultRefNameVersion": 0, 153 | "m_RefNameGeneratedByDisplayName": "", 154 | "m_DefaultReferenceName": "BOOLEAN_DC7B8ACB_ON", 155 | "m_OverrideReferenceName": "_LIGHT_LAYERS", 156 | "m_GeneratePropertyBlock": false, 157 | "m_UseCustomSlotLabel": false, 158 | "m_CustomSlotLabel": "", 159 | "m_DismissedVersion": 0, 160 | "m_KeywordType": 0, 161 | "m_KeywordDefinition": 1, 162 | "m_KeywordScope": 1, 163 | "m_KeywordStages": 2, 164 | "m_Entries": [], 165 | "m_Value": 0, 166 | "m_IsEditable": true 167 | } 168 | 169 | { 170 | "m_SGVersion": 0, 171 | "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", 172 | "m_ObjectId": "3a9dcae1e3494abb910c213b91690c8f", 173 | "m_Id": 0, 174 | "m_DisplayName": "Shading", 175 | "m_SlotType": 0, 176 | "m_Hidden": false, 177 | "m_ShaderOutputName": "Shading", 178 | "m_StageCapability": 3, 179 | "m_Value": { 180 | "x": 0.0, 181 | "y": 0.0, 182 | "z": 0.0 183 | }, 184 | "m_DefaultValue": { 185 | "x": 0.0, 186 | "y": 0.0, 187 | "z": 0.0 188 | }, 189 | "m_Labels": [] 190 | } 191 | 192 | { 193 | "m_SGVersion": 1, 194 | "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode", 195 | "m_ObjectId": "3be2118d2270ff818ec5f0f1353e249f", 196 | "m_Group": { 197 | "m_Id": "" 198 | }, 199 | "m_Name": "MainLightLayer (Custom Function)", 200 | "m_DrawState": { 201 | "m_Expanded": true, 202 | "m_Position": { 203 | "serializedVersion": "2", 204 | "x": -8.0, 205 | "y": -74.0, 206 | "width": 250.0, 207 | "height": 278.0 208 | } 209 | }, 210 | "m_Slots": [ 211 | { 212 | "m_Id": "3a9dcae1e3494abb910c213b91690c8f" 213 | }, 214 | { 215 | "m_Id": "bdc7fa0ee135493e90e3abe6aab5baa3" 216 | } 217 | ], 218 | "synonyms": [ 219 | "code", 220 | "HLSL" 221 | ], 222 | "m_Precision": 0, 223 | "m_PreviewExpanded": false, 224 | "m_DismissedVersion": 0, 225 | "m_PreviewMode": 0, 226 | "m_CustomColors": { 227 | "m_SerializableColors": [] 228 | }, 229 | "m_SourceType": 0, 230 | "m_FunctionName": "MainLightLayer", 231 | "m_FunctionSource": "5c09ec492074d214fbe1a19781ad15e8", 232 | "m_FunctionSourceUsePragmas": true, 233 | "m_FunctionBody": "Enter function body here..." 234 | } 235 | 236 | { 237 | "m_SGVersion": 0, 238 | "m_Type": "UnityEditor.ShaderGraph.PropertyNode", 239 | "m_ObjectId": "65e443cb15a9fb859a50ebae06e81569", 240 | "m_Group": { 241 | "m_Id": "" 242 | }, 243 | "m_Name": "Property", 244 | "m_DrawState": { 245 | "m_Expanded": true, 246 | "m_Position": { 247 | "serializedVersion": "2", 248 | "x": -135.0, 249 | "y": -34.0, 250 | "width": 120.0, 251 | "height": 34.0 252 | } 253 | }, 254 | "m_Slots": [ 255 | { 256 | "m_Id": "7d190f51c889ce8198ca0ecfe494d421" 257 | } 258 | ], 259 | "synonyms": [], 260 | "m_Precision": 0, 261 | "m_PreviewExpanded": true, 262 | "m_DismissedVersion": 0, 263 | "m_PreviewMode": 0, 264 | "m_CustomColors": { 265 | "m_SerializableColors": [] 266 | }, 267 | "m_Property": { 268 | "m_Id": "7ea1bbbacf460c879f6d8c85fd91750d" 269 | } 270 | } 271 | 272 | { 273 | "m_SGVersion": 0, 274 | "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", 275 | "m_ObjectId": "7d190f51c889ce8198ca0ecfe494d421", 276 | "m_Id": 0, 277 | "m_DisplayName": "Shading", 278 | "m_SlotType": 1, 279 | "m_Hidden": false, 280 | "m_ShaderOutputName": "Out", 281 | "m_StageCapability": 3, 282 | "m_Value": { 283 | "x": 0.0, 284 | "y": 0.0, 285 | "z": 0.0 286 | }, 287 | "m_DefaultValue": { 288 | "x": 0.0, 289 | "y": 0.0, 290 | "z": 0.0 291 | }, 292 | "m_Labels": [ 293 | "X", 294 | "Y", 295 | "Z" 296 | ] 297 | } 298 | 299 | { 300 | "m_SGVersion": 1, 301 | "m_Type": "UnityEditor.ShaderGraph.Internal.Vector3ShaderProperty", 302 | "m_ObjectId": "7ea1bbbacf460c879f6d8c85fd91750d", 303 | "m_Guid": { 304 | "m_GuidSerialized": "c7b957cd-dd93-4549-bd10-7676ba0773f3" 305 | }, 306 | "m_Name": "Shading", 307 | "m_DefaultRefNameVersion": 0, 308 | "m_RefNameGeneratedByDisplayName": "", 309 | "m_DefaultReferenceName": "Vector3_B87D7B6B", 310 | "m_OverrideReferenceName": "", 311 | "m_GeneratePropertyBlock": true, 312 | "m_UseCustomSlotLabel": false, 313 | "m_CustomSlotLabel": "", 314 | "m_DismissedVersion": 0, 315 | "m_Precision": 0, 316 | "overrideHLSLDeclaration": false, 317 | "hlslDeclarationOverride": 0, 318 | "m_Hidden": false, 319 | "m_Value": { 320 | "x": 0.0, 321 | "y": 0.0, 322 | "z": 0.0, 323 | "w": 0.0 324 | } 325 | } 326 | 327 | { 328 | "m_SGVersion": 0, 329 | "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", 330 | "m_ObjectId": "bdc7fa0ee135493e90e3abe6aab5baa3", 331 | "m_Id": 4, 332 | "m_DisplayName": "Out", 333 | "m_SlotType": 1, 334 | "m_Hidden": false, 335 | "m_ShaderOutputName": "Out", 336 | "m_StageCapability": 3, 337 | "m_Value": { 338 | "x": 0.0, 339 | "y": 0.0, 340 | "z": 0.0 341 | }, 342 | "m_DefaultValue": { 343 | "x": 0.0, 344 | "y": 0.0, 345 | "z": 0.0 346 | }, 347 | "m_Labels": [] 348 | } 349 | 350 | { 351 | "m_SGVersion": 0, 352 | "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", 353 | "m_ObjectId": "d501eb20b0d34223b201b9fba93096bb", 354 | "m_Id": 4, 355 | "m_DisplayName": "Out", 356 | "m_SlotType": 0, 357 | "m_Hidden": false, 358 | "m_ShaderOutputName": "Out", 359 | "m_StageCapability": 3, 360 | "m_Value": { 361 | "x": 0.0, 362 | "y": 0.0, 363 | "z": 0.0 364 | }, 365 | "m_DefaultValue": { 366 | "x": 0.0, 367 | "y": 0.0, 368 | "z": 0.0 369 | }, 370 | "m_Labels": [] 371 | } 372 | 373 | -------------------------------------------------------------------------------- /SubGraphs/Sample Shadowmask.shadersubgraph: -------------------------------------------------------------------------------- 1 | { 2 | "m_SGVersion": 3, 3 | "m_Type": "UnityEditor.ShaderGraph.GraphData", 4 | "m_ObjectId": "f38c5df8665b481dbe95b9cca3bafbab", 5 | "m_Properties": [], 6 | "m_Keywords": [ 7 | { 8 | "m_Id": "9965cfbcf05548a2aacadd783da7c456" 9 | }, 10 | { 11 | "m_Id": "5fb2bfc60eac4072845d4bd7a044aa91" 12 | } 13 | ], 14 | "m_Dropdowns": [], 15 | "m_CategoryData": [ 16 | { 17 | "m_Id": "a2d9442fde024d6882d835968e6aeeac" 18 | } 19 | ], 20 | "m_Nodes": [ 21 | { 22 | "m_Id": "e534c03a3a6044beb00c3ccd38e9fbf1" 23 | }, 24 | { 25 | "m_Id": "40d65638bcab4b738ff8db4f6869f185" 26 | }, 27 | { 28 | "m_Id": "ba7f2a933e0b407b86df80ee94e5c4d7" 29 | } 30 | ], 31 | "m_GroupDatas": [], 32 | "m_StickyNoteDatas": [], 33 | "m_Edges": [ 34 | { 35 | "m_OutputSlot": { 36 | "m_Node": { 37 | "m_Id": "40d65638bcab4b738ff8db4f6869f185" 38 | }, 39 | "m_SlotId": 0 40 | }, 41 | "m_InputSlot": { 42 | "m_Node": { 43 | "m_Id": "e534c03a3a6044beb00c3ccd38e9fbf1" 44 | }, 45 | "m_SlotId": 1 46 | } 47 | }, 48 | { 49 | "m_OutputSlot": { 50 | "m_Node": { 51 | "m_Id": "ba7f2a933e0b407b86df80ee94e5c4d7" 52 | }, 53 | "m_SlotId": 0 54 | }, 55 | "m_InputSlot": { 56 | "m_Node": { 57 | "m_Id": "40d65638bcab4b738ff8db4f6869f185" 58 | }, 59 | "m_SlotId": 1 60 | } 61 | } 62 | ], 63 | "m_VertexContext": { 64 | "m_Position": { 65 | "x": 0.0, 66 | "y": 0.0 67 | }, 68 | "m_Blocks": [] 69 | }, 70 | "m_FragmentContext": { 71 | "m_Position": { 72 | "x": 0.0, 73 | "y": 0.0 74 | }, 75 | "m_Blocks": [] 76 | }, 77 | "m_PreviewData": { 78 | "serializedMesh": { 79 | "m_SerializedMesh": "{\"mesh\":{\"instanceID\":0}}", 80 | "m_Guid": "" 81 | }, 82 | "preventRotation": false 83 | }, 84 | "m_Path": "Sub Graphs", 85 | "m_GraphPrecision": 2, 86 | "m_PreviewMode": 2, 87 | "m_OutputNode": { 88 | "m_Id": "e534c03a3a6044beb00c3ccd38e9fbf1" 89 | }, 90 | "m_SubDatas": [], 91 | "m_ActiveTargets": [] 92 | } 93 | 94 | { 95 | "m_SGVersion": 0, 96 | "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot", 97 | "m_ObjectId": "086a3d8d8e7d4834ac722833789362e5", 98 | "m_Id": 0, 99 | "m_DisplayName": "Out", 100 | "m_SlotType": 1, 101 | "m_Hidden": false, 102 | "m_ShaderOutputName": "Out", 103 | "m_StageCapability": 3, 104 | "m_Value": { 105 | "x": 0.0, 106 | "y": 0.0, 107 | "z": 0.0, 108 | "w": 0.0 109 | }, 110 | "m_DefaultValue": { 111 | "x": 0.0, 112 | "y": 0.0, 113 | "z": 0.0, 114 | "w": 0.0 115 | }, 116 | "m_Labels": [] 117 | } 118 | 119 | { 120 | "m_SGVersion": 1, 121 | "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode", 122 | "m_ObjectId": "40d65638bcab4b738ff8db4f6869f185", 123 | "m_Group": { 124 | "m_Id": "" 125 | }, 126 | "m_Name": "Shadowmask (Custom Function)", 127 | "m_DrawState": { 128 | "m_Expanded": true, 129 | "m_Position": { 130 | "serializedVersion": "2", 131 | "x": -244.0, 132 | "y": 0.0, 133 | "width": 231.0, 134 | "height": 94.0 135 | } 136 | }, 137 | "m_Slots": [ 138 | { 139 | "m_Id": "7589e040b19e46dca319375437974ac3" 140 | }, 141 | { 142 | "m_Id": "8e9e88aa266b41a6913536ae215ae2b1" 143 | } 144 | ], 145 | "synonyms": [ 146 | "code", 147 | "HLSL" 148 | ], 149 | "m_Precision": 2, 150 | "m_PreviewExpanded": false, 151 | "m_DismissedVersion": 0, 152 | "m_PreviewMode": 0, 153 | "m_CustomColors": { 154 | "m_SerializableColors": [] 155 | }, 156 | "m_SourceType": 0, 157 | "m_FunctionName": "Shadowmask", 158 | "m_FunctionSource": "5c09ec492074d214fbe1a19781ad15e8", 159 | "m_FunctionSourceUsePragmas": true, 160 | "m_FunctionBody": "Enter function body here..." 161 | } 162 | 163 | { 164 | "m_SGVersion": 1, 165 | "m_Type": "UnityEditor.ShaderGraph.ShaderKeyword", 166 | "m_ObjectId": "5fb2bfc60eac4072845d4bd7a044aa91", 167 | "m_Guid": { 168 | "m_GuidSerialized": "eadee4e3-abce-4222-a899-b391a6f562cf" 169 | }, 170 | "m_Name": "LIGHTMAP_SHADOW_MIXING", 171 | "m_DefaultRefNameVersion": 1, 172 | "m_RefNameGeneratedByDisplayName": "LIGHTMAP_SHADOW_MIXING", 173 | "m_DefaultReferenceName": "_LIGHTMAP_SHADOW_MIXING", 174 | "m_OverrideReferenceName": "LIGHTMAP_SHADOW_MIXING", 175 | "m_GeneratePropertyBlock": true, 176 | "m_UseCustomSlotLabel": false, 177 | "m_CustomSlotLabel": "", 178 | "m_DismissedVersion": 0, 179 | "m_KeywordType": 0, 180 | "m_KeywordDefinition": 1, 181 | "m_KeywordScope": 1, 182 | "m_KeywordStages": 63, 183 | "m_Entries": [], 184 | "m_Value": 0, 185 | "m_IsEditable": true 186 | } 187 | 188 | { 189 | "m_SGVersion": 0, 190 | "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot", 191 | "m_ObjectId": "73cfdccbe46643beb090e99f185c848f", 192 | "m_Id": 1, 193 | "m_DisplayName": "Shadowmask", 194 | "m_SlotType": 0, 195 | "m_Hidden": false, 196 | "m_ShaderOutputName": "Shadowmask", 197 | "m_StageCapability": 3, 198 | "m_Value": { 199 | "x": 0.0, 200 | "y": 0.0, 201 | "z": 0.0, 202 | "w": 0.0 203 | }, 204 | "m_DefaultValue": { 205 | "x": 0.0, 206 | "y": 0.0, 207 | "z": 0.0, 208 | "w": 0.0 209 | }, 210 | "m_Labels": [] 211 | } 212 | 213 | { 214 | "m_SGVersion": 0, 215 | "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot", 216 | "m_ObjectId": "7589e040b19e46dca319375437974ac3", 217 | "m_Id": 1, 218 | "m_DisplayName": "UV1", 219 | "m_SlotType": 0, 220 | "m_Hidden": false, 221 | "m_ShaderOutputName": "UV1", 222 | "m_StageCapability": 3, 223 | "m_Value": { 224 | "x": 0.0, 225 | "y": 0.0 226 | }, 227 | "m_DefaultValue": { 228 | "x": 0.0, 229 | "y": 0.0 230 | }, 231 | "m_Labels": [] 232 | } 233 | 234 | { 235 | "m_SGVersion": 0, 236 | "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot", 237 | "m_ObjectId": "8e9e88aa266b41a6913536ae215ae2b1", 238 | "m_Id": 0, 239 | "m_DisplayName": "Mask", 240 | "m_SlotType": 1, 241 | "m_Hidden": false, 242 | "m_ShaderOutputName": "Mask", 243 | "m_StageCapability": 3, 244 | "m_Value": { 245 | "x": 0.0, 246 | "y": 0.0, 247 | "z": 0.0, 248 | "w": 0.0 249 | }, 250 | "m_DefaultValue": { 251 | "x": 0.0, 252 | "y": 0.0, 253 | "z": 0.0, 254 | "w": 0.0 255 | }, 256 | "m_Labels": [] 257 | } 258 | 259 | { 260 | "m_SGVersion": 1, 261 | "m_Type": "UnityEditor.ShaderGraph.ShaderKeyword", 262 | "m_ObjectId": "9965cfbcf05548a2aacadd783da7c456", 263 | "m_Guid": { 264 | "m_GuidSerialized": "05277912-186f-484b-931b-b7272aafa0a0" 265 | }, 266 | "m_Name": "SHADOWS_SHADOWMASK", 267 | "m_DefaultRefNameVersion": 1, 268 | "m_RefNameGeneratedByDisplayName": "SHADOWS_SHADOWMASK", 269 | "m_DefaultReferenceName": "_SHADOWS_SHADOWMASK", 270 | "m_OverrideReferenceName": "SHADOWS_SHADOWMASK", 271 | "m_GeneratePropertyBlock": true, 272 | "m_UseCustomSlotLabel": false, 273 | "m_CustomSlotLabel": "", 274 | "m_DismissedVersion": 0, 275 | "m_KeywordType": 0, 276 | "m_KeywordDefinition": 1, 277 | "m_KeywordScope": 1, 278 | "m_KeywordStages": 63, 279 | "m_Entries": [], 280 | "m_Value": 0, 281 | "m_IsEditable": true 282 | } 283 | 284 | { 285 | "m_SGVersion": 0, 286 | "m_Type": "UnityEditor.ShaderGraph.CategoryData", 287 | "m_ObjectId": "a2d9442fde024d6882d835968e6aeeac", 288 | "m_Name": "", 289 | "m_ChildObjectList": [ 290 | { 291 | "m_Id": "9965cfbcf05548a2aacadd783da7c456" 292 | }, 293 | { 294 | "m_Id": "5fb2bfc60eac4072845d4bd7a044aa91" 295 | } 296 | ] 297 | } 298 | 299 | { 300 | "m_SGVersion": 0, 301 | "m_Type": "UnityEditor.ShaderGraph.UVNode", 302 | "m_ObjectId": "ba7f2a933e0b407b86df80ee94e5c4d7", 303 | "m_Group": { 304 | "m_Id": "" 305 | }, 306 | "m_Name": "UV", 307 | "m_DrawState": { 308 | "m_Expanded": true, 309 | "m_Position": { 310 | "serializedVersion": "2", 311 | "x": -389.0, 312 | "y": 0.0, 313 | "width": 145.0, 314 | "height": 129.0 315 | } 316 | }, 317 | "m_Slots": [ 318 | { 319 | "m_Id": "086a3d8d8e7d4834ac722833789362e5" 320 | } 321 | ], 322 | "synonyms": [ 323 | "texcoords", 324 | "coords", 325 | "coordinates" 326 | ], 327 | "m_Precision": 0, 328 | "m_PreviewExpanded": false, 329 | "m_DismissedVersion": 0, 330 | "m_PreviewMode": 0, 331 | "m_CustomColors": { 332 | "m_SerializableColors": [] 333 | }, 334 | "m_OutputChannel": 1 335 | } 336 | 337 | { 338 | "m_SGVersion": 0, 339 | "m_Type": "UnityEditor.ShaderGraph.SubGraphOutputNode", 340 | "m_ObjectId": "e534c03a3a6044beb00c3ccd38e9fbf1", 341 | "m_Group": { 342 | "m_Id": "" 343 | }, 344 | "m_Name": "Output", 345 | "m_DrawState": { 346 | "m_Expanded": true, 347 | "m_Position": { 348 | "serializedVersion": "2", 349 | "x": -13.0, 350 | "y": 0.0, 351 | "width": 121.0, 352 | "height": 77.0 353 | } 354 | }, 355 | "m_Slots": [ 356 | { 357 | "m_Id": "73cfdccbe46643beb090e99f185c848f" 358 | } 359 | ], 360 | "synonyms": [], 361 | "m_Precision": 0, 362 | "m_PreviewExpanded": true, 363 | "m_DismissedVersion": 0, 364 | "m_PreviewMode": 0, 365 | "m_CustomColors": { 366 | "m_SerializableColors": [] 367 | }, 368 | "IsFirstSlotValid": true 369 | } 370 | 371 | -------------------------------------------------------------------------------- /SubGraphs/Deprecated/Ambient SampleSH.shadersubgraph: -------------------------------------------------------------------------------- 1 | { 2 | "m_SGVersion": 3, 3 | "m_Type": "UnityEditor.ShaderGraph.GraphData", 4 | "m_ObjectId": "52f59ea790e044e680fe693ee8119007", 5 | "m_Properties": [ 6 | { 7 | "m_Id": "cd2703af38ed41ca90e0ac549637e5f6" 8 | } 9 | ], 10 | "m_Keywords": [], 11 | "m_Dropdowns": [], 12 | "m_CategoryData": [ 13 | { 14 | "m_Id": "52c96902967442a499825af3fff0e0b0" 15 | } 16 | ], 17 | "m_Nodes": [ 18 | { 19 | "m_Id": "885a2e25c8f375838bbf9d55c83a3b33" 20 | }, 21 | { 22 | "m_Id": "4419b13d7b31e68e8e059676cfda8898" 23 | }, 24 | { 25 | "m_Id": "b0e88eab1879e18682f7b91ee0765e49" 26 | }, 27 | { 28 | "m_Id": "f052100cdf4f412ba383e3ff25c875ab" 29 | }, 30 | { 31 | "m_Id": "32c53f31cd1e49e29e46f4fd1d0ebbff" 32 | } 33 | ], 34 | "m_GroupDatas": [], 35 | "m_StickyNoteDatas": [], 36 | "m_Edges": [ 37 | { 38 | "m_OutputSlot": { 39 | "m_Node": { 40 | "m_Id": "32c53f31cd1e49e29e46f4fd1d0ebbff" 41 | }, 42 | "m_SlotId": 3 43 | }, 44 | "m_InputSlot": { 45 | "m_Node": { 46 | "m_Id": "4419b13d7b31e68e8e059676cfda8898" 47 | }, 48 | "m_SlotId": 1 49 | } 50 | }, 51 | { 52 | "m_OutputSlot": { 53 | "m_Node": { 54 | "m_Id": "4419b13d7b31e68e8e059676cfda8898" 55 | }, 56 | "m_SlotId": 0 57 | }, 58 | "m_InputSlot": { 59 | "m_Node": { 60 | "m_Id": "b0e88eab1879e18682f7b91ee0765e49" 61 | }, 62 | "m_SlotId": 1 63 | } 64 | }, 65 | { 66 | "m_OutputSlot": { 67 | "m_Node": { 68 | "m_Id": "885a2e25c8f375838bbf9d55c83a3b33" 69 | }, 70 | "m_SlotId": 0 71 | }, 72 | "m_InputSlot": { 73 | "m_Node": { 74 | "m_Id": "32c53f31cd1e49e29e46f4fd1d0ebbff" 75 | }, 76 | "m_SlotId": 2 77 | } 78 | }, 79 | { 80 | "m_OutputSlot": { 81 | "m_Node": { 82 | "m_Id": "f052100cdf4f412ba383e3ff25c875ab" 83 | }, 84 | "m_SlotId": 0 85 | }, 86 | "m_InputSlot": { 87 | "m_Node": { 88 | "m_Id": "32c53f31cd1e49e29e46f4fd1d0ebbff" 89 | }, 90 | "m_SlotId": 0 91 | } 92 | }, 93 | { 94 | "m_OutputSlot": { 95 | "m_Node": { 96 | "m_Id": "f052100cdf4f412ba383e3ff25c875ab" 97 | }, 98 | "m_SlotId": 0 99 | }, 100 | "m_InputSlot": { 101 | "m_Node": { 102 | "m_Id": "32c53f31cd1e49e29e46f4fd1d0ebbff" 103 | }, 104 | "m_SlotId": 1 105 | } 106 | } 107 | ], 108 | "m_VertexContext": { 109 | "m_Position": { 110 | "x": 232.0, 111 | "y": -56.0 112 | }, 113 | "m_Blocks": [] 114 | }, 115 | "m_FragmentContext": { 116 | "m_Position": { 117 | "x": 232.0, 118 | "y": 144.0 119 | }, 120 | "m_Blocks": [] 121 | }, 122 | "m_PreviewData": { 123 | "serializedMesh": { 124 | "m_SerializedMesh": "{\"mesh\":{\"instanceID\":0}}", 125 | "m_Guid": "" 126 | }, 127 | "preventRotation": false 128 | }, 129 | "m_Path": "Custom Lighting", 130 | "m_GraphPrecision": 0, 131 | "m_PreviewMode": 2, 132 | "m_OutputNode": { 133 | "m_Id": "b0e88eab1879e18682f7b91ee0765e49" 134 | }, 135 | "m_SubDatas": [], 136 | "m_ActiveTargets": [] 137 | } 138 | 139 | { 140 | "m_SGVersion": 0, 141 | "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", 142 | "m_ObjectId": "2047e7836560de869911c7705903993e", 143 | "m_Id": 0, 144 | "m_DisplayName": "Out", 145 | "m_SlotType": 1, 146 | "m_Hidden": false, 147 | "m_ShaderOutputName": "Out", 148 | "m_StageCapability": 3, 149 | "m_Value": { 150 | "x": 0.0, 151 | "y": 0.0, 152 | "z": 1.0 153 | }, 154 | "m_DefaultValue": { 155 | "x": 0.0, 156 | "y": 0.0, 157 | "z": 1.0 158 | }, 159 | "m_Labels": [ 160 | "X", 161 | "Y", 162 | "Z" 163 | ] 164 | } 165 | 166 | { 167 | "m_SGVersion": 0, 168 | "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", 169 | "m_ObjectId": "22fa946712ed698b89a7af1a20caebda", 170 | "m_Id": 1, 171 | "m_DisplayName": "WorldNormal", 172 | "m_SlotType": 0, 173 | "m_Hidden": false, 174 | "m_ShaderOutputName": "WorldNormal", 175 | "m_StageCapability": 3, 176 | "m_Value": { 177 | "x": 0.0, 178 | "y": 0.0, 179 | "z": 0.0 180 | }, 181 | "m_DefaultValue": { 182 | "x": 0.0, 183 | "y": 0.0, 184 | "z": 0.0 185 | }, 186 | "m_Labels": [ 187 | "X", 188 | "Y", 189 | "Z" 190 | ] 191 | } 192 | 193 | { 194 | "m_SGVersion": 0, 195 | "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", 196 | "m_ObjectId": "2facbd1ce9ab478597441e686c421476", 197 | "m_Id": 3, 198 | "m_DisplayName": "Out", 199 | "m_SlotType": 1, 200 | "m_Hidden": false, 201 | "m_ShaderOutputName": "Out", 202 | "m_StageCapability": 3, 203 | "m_Value": { 204 | "x": 0.0, 205 | "y": 0.0, 206 | "z": 0.0, 207 | "w": 0.0 208 | }, 209 | "m_DefaultValue": { 210 | "x": 0.0, 211 | "y": 0.0, 212 | "z": 0.0, 213 | "w": 0.0 214 | } 215 | } 216 | 217 | { 218 | "m_SGVersion": 0, 219 | "m_Type": "UnityEditor.ShaderGraph.BranchOnInputConnectionNode", 220 | "m_ObjectId": "32c53f31cd1e49e29e46f4fd1d0ebbff", 221 | "m_Group": { 222 | "m_Id": "" 223 | }, 224 | "m_Name": "Branch On Input Connection", 225 | "m_DrawState": { 226 | "m_Expanded": true, 227 | "m_Position": { 228 | "serializedVersion": "2", 229 | "x": -248.0, 230 | "y": -56.0, 231 | "width": 206.0, 232 | "height": 142.0 233 | } 234 | }, 235 | "m_Slots": [ 236 | { 237 | "m_Id": "46ddd457eda745c98e2cfbe6871992ee" 238 | }, 239 | { 240 | "m_Id": "e16152f8f59442ac9730358321c4ec02" 241 | }, 242 | { 243 | "m_Id": "bbea3e32bdeb4e5499e0a794cd3df840" 244 | }, 245 | { 246 | "m_Id": "2facbd1ce9ab478597441e686c421476" 247 | } 248 | ], 249 | "synonyms": [], 250 | "m_Precision": 0, 251 | "m_PreviewExpanded": false, 252 | "m_DismissedVersion": 0, 253 | "m_PreviewMode": 0, 254 | "m_CustomColors": { 255 | "m_SerializableColors": [] 256 | } 257 | } 258 | 259 | { 260 | "m_SGVersion": 1, 261 | "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode", 262 | "m_ObjectId": "4419b13d7b31e68e8e059676cfda8898", 263 | "m_Group": { 264 | "m_Id": "" 265 | }, 266 | "m_Name": "AmbientSampleSH (Custom Function)", 267 | "m_DrawState": { 268 | "m_Expanded": true, 269 | "m_Position": { 270 | "serializedVersion": "2", 271 | "x": -42.0, 272 | "y": -56.0, 273 | "width": 261.0, 274 | "height": 278.0 275 | } 276 | }, 277 | "m_Slots": [ 278 | { 279 | "m_Id": "22fa946712ed698b89a7af1a20caebda" 280 | }, 281 | { 282 | "m_Id": "e6009d97dadf248e95fb0853f082cf05" 283 | } 284 | ], 285 | "synonyms": [ 286 | "code", 287 | "HLSL" 288 | ], 289 | "m_Precision": 0, 290 | "m_PreviewExpanded": true, 291 | "m_DismissedVersion": 0, 292 | "m_PreviewMode": 0, 293 | "m_CustomColors": { 294 | "m_SerializableColors": [] 295 | }, 296 | "m_SourceType": 0, 297 | "m_FunctionName": "AmbientSampleSH", 298 | "m_FunctionSource": "5c09ec492074d214fbe1a19781ad15e8", 299 | "m_FunctionSourceUsePragmas": true, 300 | "m_FunctionBody": "#ifdef SHADERGRAPH_PREVIEW\nSH = float3(0,0,0);\n#else\nSH = SampleSH(WorldNormal);\n#endif" 301 | } 302 | 303 | { 304 | "m_SGVersion": 0, 305 | "m_Type": "UnityEditor.ShaderGraph.PropertyConnectionStateMaterialSlot", 306 | "m_ObjectId": "46ddd457eda745c98e2cfbe6871992ee", 307 | "m_Id": 0, 308 | "m_DisplayName": "Input", 309 | "m_SlotType": 0, 310 | "m_Hidden": false, 311 | "m_ShaderOutputName": "Input", 312 | "m_StageCapability": 3 313 | } 314 | 315 | { 316 | "m_SGVersion": 0, 317 | "m_Type": "UnityEditor.ShaderGraph.CategoryData", 318 | "m_ObjectId": "52c96902967442a499825af3fff0e0b0", 319 | "m_Name": "", 320 | "m_ChildObjectList": [ 321 | { 322 | "m_Id": "cd2703af38ed41ca90e0ac549637e5f6" 323 | } 324 | ] 325 | } 326 | 327 | { 328 | "m_SGVersion": 0, 329 | "m_Type": "UnityEditor.ShaderGraph.NormalVectorNode", 330 | "m_ObjectId": "885a2e25c8f375838bbf9d55c83a3b33", 331 | "m_Group": { 332 | "m_Id": "" 333 | }, 334 | "m_Name": "Normal Vector", 335 | "m_DrawState": { 336 | "m_Expanded": true, 337 | "m_Position": { 338 | "serializedVersion": "2", 339 | "x": -480.0, 340 | "y": 35.0, 341 | "width": 206.0, 342 | "height": 131.0 343 | } 344 | }, 345 | "m_Slots": [ 346 | { 347 | "m_Id": "2047e7836560de869911c7705903993e" 348 | } 349 | ], 350 | "synonyms": [ 351 | "surface direction" 352 | ], 353 | "m_Precision": 0, 354 | "m_PreviewExpanded": false, 355 | "m_DismissedVersion": 0, 356 | "m_PreviewMode": 2, 357 | "m_CustomColors": { 358 | "m_SerializableColors": [] 359 | }, 360 | "m_Space": 2 361 | } 362 | 363 | { 364 | "m_SGVersion": 0, 365 | "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", 366 | "m_ObjectId": "a2fae08129a94733bb74549349cdff6d", 367 | "m_Id": 0, 368 | "m_DisplayName": "Normal", 369 | "m_SlotType": 1, 370 | "m_Hidden": false, 371 | "m_ShaderOutputName": "Out", 372 | "m_StageCapability": 3, 373 | "m_Value": { 374 | "x": 0.0, 375 | "y": 0.0, 376 | "z": 0.0 377 | }, 378 | "m_DefaultValue": { 379 | "x": 0.0, 380 | "y": 0.0, 381 | "z": 0.0 382 | }, 383 | "m_Labels": [] 384 | } 385 | 386 | { 387 | "m_SGVersion": 0, 388 | "m_Type": "UnityEditor.ShaderGraph.SubGraphOutputNode", 389 | "m_ObjectId": "b0e88eab1879e18682f7b91ee0765e49", 390 | "m_Group": { 391 | "m_Id": "" 392 | }, 393 | "m_Name": "Out_Vector3", 394 | "m_DrawState": { 395 | "m_Expanded": true, 396 | "m_Position": { 397 | "serializedVersion": "2", 398 | "x": 219.0, 399 | "y": -56.0, 400 | "width": 118.0, 401 | "height": 77.0 402 | } 403 | }, 404 | "m_Slots": [ 405 | { 406 | "m_Id": "fb5ac210049e4589905ecc40588461a3" 407 | } 408 | ], 409 | "synonyms": [], 410 | "m_Precision": 0, 411 | "m_PreviewExpanded": true, 412 | "m_DismissedVersion": 0, 413 | "m_PreviewMode": 0, 414 | "m_CustomColors": { 415 | "m_SerializableColors": [] 416 | }, 417 | "IsFirstSlotValid": true 418 | } 419 | 420 | { 421 | "m_SGVersion": 0, 422 | "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", 423 | "m_ObjectId": "bbea3e32bdeb4e5499e0a794cd3df840", 424 | "m_Id": 2, 425 | "m_DisplayName": "NotConnected", 426 | "m_SlotType": 0, 427 | "m_Hidden": false, 428 | "m_ShaderOutputName": "NotConnected", 429 | "m_StageCapability": 3, 430 | "m_Value": { 431 | "x": 0.0, 432 | "y": 0.0, 433 | "z": 0.0, 434 | "w": 0.0 435 | }, 436 | "m_DefaultValue": { 437 | "x": 0.0, 438 | "y": 0.0, 439 | "z": 0.0, 440 | "w": 0.0 441 | } 442 | } 443 | 444 | { 445 | "m_SGVersion": 1, 446 | "m_Type": "UnityEditor.ShaderGraph.Internal.Vector3ShaderProperty", 447 | "m_ObjectId": "cd2703af38ed41ca90e0ac549637e5f6", 448 | "m_Guid": { 449 | "m_GuidSerialized": "7cbab9af-00fb-40a7-904f-86352c24f4a2" 450 | }, 451 | "m_Name": "Normal", 452 | "m_DefaultRefNameVersion": 1, 453 | "m_RefNameGeneratedByDisplayName": "Normal", 454 | "m_DefaultReferenceName": "_Normal", 455 | "m_OverrideReferenceName": "", 456 | "m_GeneratePropertyBlock": true, 457 | "m_UseCustomSlotLabel": true, 458 | "m_CustomSlotLabel": "World Space", 459 | "m_DismissedVersion": 0, 460 | "m_Precision": 0, 461 | "overrideHLSLDeclaration": false, 462 | "hlslDeclarationOverride": 0, 463 | "m_Hidden": false, 464 | "m_Value": { 465 | "x": 0.0, 466 | "y": 0.0, 467 | "z": 0.0, 468 | "w": 0.0 469 | } 470 | } 471 | 472 | { 473 | "m_SGVersion": 0, 474 | "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", 475 | "m_ObjectId": "e16152f8f59442ac9730358321c4ec02", 476 | "m_Id": 1, 477 | "m_DisplayName": "Connected", 478 | "m_SlotType": 0, 479 | "m_Hidden": false, 480 | "m_ShaderOutputName": "Connected", 481 | "m_StageCapability": 3, 482 | "m_Value": { 483 | "x": 1.0, 484 | "y": 1.0, 485 | "z": 1.0, 486 | "w": 1.0 487 | }, 488 | "m_DefaultValue": { 489 | "x": 0.0, 490 | "y": 0.0, 491 | "z": 0.0, 492 | "w": 0.0 493 | } 494 | } 495 | 496 | { 497 | "m_SGVersion": 0, 498 | "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", 499 | "m_ObjectId": "e6009d97dadf248e95fb0853f082cf05", 500 | "m_Id": 0, 501 | "m_DisplayName": "SH", 502 | "m_SlotType": 1, 503 | "m_Hidden": false, 504 | "m_ShaderOutputName": "SH", 505 | "m_StageCapability": 3, 506 | "m_Value": { 507 | "x": 0.0, 508 | "y": 0.0, 509 | "z": 0.0 510 | }, 511 | "m_DefaultValue": { 512 | "x": 0.0, 513 | "y": 0.0, 514 | "z": 0.0 515 | }, 516 | "m_Labels": [ 517 | "X", 518 | "Y", 519 | "Z" 520 | ] 521 | } 522 | 523 | { 524 | "m_SGVersion": 0, 525 | "m_Type": "UnityEditor.ShaderGraph.PropertyNode", 526 | "m_ObjectId": "f052100cdf4f412ba383e3ff25c875ab", 527 | "m_Group": { 528 | "m_Id": "" 529 | }, 530 | "m_Name": "Property", 531 | "m_DrawState": { 532 | "m_Expanded": true, 533 | "m_Position": { 534 | "serializedVersion": "2", 535 | "x": -401.0, 536 | "y": -16.0, 537 | "width": 115.0, 538 | "height": 34.0 539 | } 540 | }, 541 | "m_Slots": [ 542 | { 543 | "m_Id": "a2fae08129a94733bb74549349cdff6d" 544 | } 545 | ], 546 | "synonyms": [], 547 | "m_Precision": 0, 548 | "m_PreviewExpanded": true, 549 | "m_DismissedVersion": 0, 550 | "m_PreviewMode": 0, 551 | "m_CustomColors": { 552 | "m_SerializableColors": [] 553 | }, 554 | "m_Property": { 555 | "m_Id": "cd2703af38ed41ca90e0ac549637e5f6" 556 | } 557 | } 558 | 559 | { 560 | "m_SGVersion": 0, 561 | "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", 562 | "m_ObjectId": "fb5ac210049e4589905ecc40588461a3", 563 | "m_Id": 1, 564 | "m_DisplayName": "Ambient", 565 | "m_SlotType": 0, 566 | "m_Hidden": false, 567 | "m_ShaderOutputName": "Ambient", 568 | "m_StageCapability": 3, 569 | "m_Value": { 570 | "x": 0.0, 571 | "y": 0.0, 572 | "z": 0.0 573 | }, 574 | "m_DefaultValue": { 575 | "x": 0.0, 576 | "y": 0.0, 577 | "z": 0.0 578 | }, 579 | "m_Labels": [ 580 | "X", 581 | "Y", 582 | "Z" 583 | ] 584 | } 585 | 586 | -------------------------------------------------------------------------------- /SubGraphs/Main Light Cookie.shadersubgraph: -------------------------------------------------------------------------------- 1 | { 2 | "m_SGVersion": 3, 3 | "m_Type": "UnityEditor.ShaderGraph.GraphData", 4 | "m_ObjectId": "6ccc676f731a493fafa9835286dfc528", 5 | "m_Properties": [ 6 | { 7 | "m_Id": "7ea1bbbacf460c879f6d8c85fd91750d" 8 | } 9 | ], 10 | "m_Keywords": [ 11 | { 12 | "m_Id": "345af8eac8db418a8d795b8f37f55ee8" 13 | } 14 | ], 15 | "m_Dropdowns": [], 16 | "m_CategoryData": [ 17 | { 18 | "m_Id": "1a0133ec0b7148738854ac5fbfdb06c6" 19 | } 20 | ], 21 | "m_Nodes": [ 22 | { 23 | "m_Id": "0f043bb7e9b9d1849a740f31c19b79a8" 24 | }, 25 | { 26 | "m_Id": "3be2118d2270ff818ec5f0f1353e249f" 27 | }, 28 | { 29 | "m_Id": "65e443cb15a9fb859a50ebae06e81569" 30 | }, 31 | { 32 | "m_Id": "4f79f9fd24d2450fbfd056685c845f8a" 33 | }, 34 | { 35 | "m_Id": "a73253d1c5e2424c89b6af884a7eb179" 36 | } 37 | ], 38 | "m_GroupDatas": [], 39 | "m_StickyNoteDatas": [], 40 | "m_Edges": [ 41 | { 42 | "m_OutputSlot": { 43 | "m_Node": { 44 | "m_Id": "3be2118d2270ff818ec5f0f1353e249f" 45 | }, 46 | "m_SlotId": 4 47 | }, 48 | "m_InputSlot": { 49 | "m_Node": { 50 | "m_Id": "0f043bb7e9b9d1849a740f31c19b79a8" 51 | }, 52 | "m_SlotId": 4 53 | } 54 | }, 55 | { 56 | "m_OutputSlot": { 57 | "m_Node": { 58 | "m_Id": "4f79f9fd24d2450fbfd056685c845f8a" 59 | }, 60 | "m_SlotId": 0 61 | }, 62 | "m_InputSlot": { 63 | "m_Node": { 64 | "m_Id": "a73253d1c5e2424c89b6af884a7eb179" 65 | }, 66 | "m_SlotId": 2 67 | } 68 | }, 69 | { 70 | "m_OutputSlot": { 71 | "m_Node": { 72 | "m_Id": "65e443cb15a9fb859a50ebae06e81569" 73 | }, 74 | "m_SlotId": 0 75 | }, 76 | "m_InputSlot": { 77 | "m_Node": { 78 | "m_Id": "a73253d1c5e2424c89b6af884a7eb179" 79 | }, 80 | "m_SlotId": 0 81 | } 82 | }, 83 | { 84 | "m_OutputSlot": { 85 | "m_Node": { 86 | "m_Id": "65e443cb15a9fb859a50ebae06e81569" 87 | }, 88 | "m_SlotId": 0 89 | }, 90 | "m_InputSlot": { 91 | "m_Node": { 92 | "m_Id": "a73253d1c5e2424c89b6af884a7eb179" 93 | }, 94 | "m_SlotId": 1 95 | } 96 | }, 97 | { 98 | "m_OutputSlot": { 99 | "m_Node": { 100 | "m_Id": "a73253d1c5e2424c89b6af884a7eb179" 101 | }, 102 | "m_SlotId": 3 103 | }, 104 | "m_InputSlot": { 105 | "m_Node": { 106 | "m_Id": "3be2118d2270ff818ec5f0f1353e249f" 107 | }, 108 | "m_SlotId": 0 109 | } 110 | } 111 | ], 112 | "m_VertexContext": { 113 | "m_Position": { 114 | "x": 259.0, 115 | "y": -74.0 116 | }, 117 | "m_Blocks": [] 118 | }, 119 | "m_FragmentContext": { 120 | "m_Position": { 121 | "x": 259.0, 122 | "y": 126.0 123 | }, 124 | "m_Blocks": [] 125 | }, 126 | "m_PreviewData": { 127 | "serializedMesh": { 128 | "m_SerializedMesh": "{\"mesh\":{\"instanceID\":0}}", 129 | "m_Guid": "" 130 | }, 131 | "preventRotation": false 132 | }, 133 | "m_Path": "Custom Lighting", 134 | "m_GraphPrecision": 0, 135 | "m_PreviewMode": 2, 136 | "m_OutputNode": { 137 | "m_Id": "0f043bb7e9b9d1849a740f31c19b79a8" 138 | }, 139 | "m_SubDatas": [], 140 | "m_ActiveTargets": [] 141 | } 142 | 143 | { 144 | "m_SGVersion": 0, 145 | "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", 146 | "m_ObjectId": "0e00aaca981d4231a8815aec9e02b25a", 147 | "m_Id": 4, 148 | "m_DisplayName": "Cookie", 149 | "m_SlotType": 1, 150 | "m_Hidden": false, 151 | "m_ShaderOutputName": "Cookie", 152 | "m_StageCapability": 3, 153 | "m_Value": { 154 | "x": 0.0, 155 | "y": 0.0, 156 | "z": 0.0 157 | }, 158 | "m_DefaultValue": { 159 | "x": 0.0, 160 | "y": 0.0, 161 | "z": 0.0 162 | }, 163 | "m_Labels": [] 164 | } 165 | 166 | { 167 | "m_SGVersion": 0, 168 | "m_Type": "UnityEditor.ShaderGraph.SubGraphOutputNode", 169 | "m_ObjectId": "0f043bb7e9b9d1849a740f31c19b79a8", 170 | "m_Group": { 171 | "m_Id": "" 172 | }, 173 | "m_Name": "Out_Vector1", 174 | "m_DrawState": { 175 | "m_Expanded": true, 176 | "m_Position": { 177 | "serializedVersion": "2", 178 | "x": 242.0, 179 | "y": -74.0, 180 | "width": 116.0, 181 | "height": 77.0 182 | } 183 | }, 184 | "m_Slots": [ 185 | { 186 | "m_Id": "d0ba8ee4a69947498f3f1219d1c52e4f" 187 | } 188 | ], 189 | "synonyms": [], 190 | "m_Precision": 0, 191 | "m_PreviewExpanded": true, 192 | "m_DismissedVersion": 0, 193 | "m_PreviewMode": 0, 194 | "m_CustomColors": { 195 | "m_SerializableColors": [] 196 | }, 197 | "IsFirstSlotValid": true 198 | } 199 | 200 | { 201 | "m_SGVersion": 0, 202 | "m_Type": "UnityEditor.ShaderGraph.CategoryData", 203 | "m_ObjectId": "1a0133ec0b7148738854ac5fbfdb06c6", 204 | "m_Name": "", 205 | "m_ChildObjectList": [ 206 | { 207 | "m_Id": "7ea1bbbacf460c879f6d8c85fd91750d" 208 | }, 209 | { 210 | "m_Id": "345af8eac8db418a8d795b8f37f55ee8" 211 | } 212 | ] 213 | } 214 | 215 | { 216 | "m_SGVersion": 0, 217 | "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", 218 | "m_ObjectId": "2199b9343e174d67a2318f82273ee63c", 219 | "m_Id": 1, 220 | "m_DisplayName": "Connected", 221 | "m_SlotType": 0, 222 | "m_Hidden": false, 223 | "m_ShaderOutputName": "Connected", 224 | "m_StageCapability": 3, 225 | "m_Value": { 226 | "x": 1.0, 227 | "y": 1.0, 228 | "z": 1.0, 229 | "w": 1.0 230 | }, 231 | "m_DefaultValue": { 232 | "x": 0.0, 233 | "y": 0.0, 234 | "z": 0.0, 235 | "w": 0.0 236 | } 237 | } 238 | 239 | { 240 | "m_SGVersion": 0, 241 | "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", 242 | "m_ObjectId": "257887c1d11f388091ca856e82012ef9", 243 | "m_Id": 0, 244 | "m_DisplayName": "World Pos", 245 | "m_SlotType": 0, 246 | "m_Hidden": false, 247 | "m_ShaderOutputName": "WorldPos", 248 | "m_StageCapability": 3, 249 | "m_Value": { 250 | "x": 0.0, 251 | "y": 0.0, 252 | "z": 0.0 253 | }, 254 | "m_DefaultValue": { 255 | "x": 0.0, 256 | "y": 0.0, 257 | "z": 0.0 258 | }, 259 | "m_Labels": [ 260 | "X", 261 | "Y", 262 | "Z" 263 | ] 264 | } 265 | 266 | { 267 | "m_SGVersion": 0, 268 | "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", 269 | "m_ObjectId": "282df091de7a41d8a8463afa0fa70234", 270 | "m_Id": 0, 271 | "m_DisplayName": "Out", 272 | "m_SlotType": 1, 273 | "m_Hidden": false, 274 | "m_ShaderOutputName": "Out", 275 | "m_StageCapability": 3, 276 | "m_Value": { 277 | "x": 0.0, 278 | "y": 0.0, 279 | "z": 0.0 280 | }, 281 | "m_DefaultValue": { 282 | "x": 0.0, 283 | "y": 0.0, 284 | "z": 0.0 285 | }, 286 | "m_Labels": [] 287 | } 288 | 289 | { 290 | "m_SGVersion": 1, 291 | "m_Type": "UnityEditor.ShaderGraph.ShaderKeyword", 292 | "m_ObjectId": "345af8eac8db418a8d795b8f37f55ee8", 293 | "m_Guid": { 294 | "m_GuidSerialized": "1feaf4d7-0891-4969-9957-9a8a8b3de535" 295 | }, 296 | "m_Name": "LightCookiesKeyword", 297 | "m_DefaultRefNameVersion": 0, 298 | "m_RefNameGeneratedByDisplayName": "", 299 | "m_DefaultReferenceName": "BOOLEAN_DC7B8ACB_ON", 300 | "m_OverrideReferenceName": "_LIGHT_COOKIES", 301 | "m_GeneratePropertyBlock": false, 302 | "m_UseCustomSlotLabel": false, 303 | "m_CustomSlotLabel": "", 304 | "m_DismissedVersion": 0, 305 | "m_KeywordType": 0, 306 | "m_KeywordDefinition": 1, 307 | "m_KeywordScope": 1, 308 | "m_KeywordStages": 2, 309 | "m_Entries": [], 310 | "m_Value": 0, 311 | "m_IsEditable": true 312 | } 313 | 314 | { 315 | "m_SGVersion": 1, 316 | "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode", 317 | "m_ObjectId": "3be2118d2270ff818ec5f0f1353e249f", 318 | "m_Group": { 319 | "m_Id": "" 320 | }, 321 | "m_Name": "MainLightCookie (Custom Function)", 322 | "m_DrawState": { 323 | "m_Expanded": true, 324 | "m_Position": { 325 | "serializedVersion": "2", 326 | "x": -8.000016212463379, 327 | "y": -74.00003051757813, 328 | "width": 250.00006103515626, 329 | "height": 278.0000305175781 330 | } 331 | }, 332 | "m_Slots": [ 333 | { 334 | "m_Id": "257887c1d11f388091ca856e82012ef9" 335 | }, 336 | { 337 | "m_Id": "0e00aaca981d4231a8815aec9e02b25a" 338 | } 339 | ], 340 | "synonyms": [ 341 | "code", 342 | "HLSL" 343 | ], 344 | "m_Precision": 0, 345 | "m_PreviewExpanded": true, 346 | "m_DismissedVersion": 0, 347 | "m_PreviewMode": 0, 348 | "m_CustomColors": { 349 | "m_SerializableColors": [] 350 | }, 351 | "m_SourceType": 0, 352 | "m_FunctionName": "MainLightCookie", 353 | "m_FunctionSource": "5c09ec492074d214fbe1a19781ad15e8", 354 | "m_FunctionSourceUsePragmas": true, 355 | "m_FunctionBody": "Enter function body here..." 356 | } 357 | 358 | { 359 | "m_SGVersion": 1, 360 | "m_Type": "UnityEditor.ShaderGraph.PositionNode", 361 | "m_ObjectId": "4f79f9fd24d2450fbfd056685c845f8a", 362 | "m_Group": { 363 | "m_Id": "" 364 | }, 365 | "m_Name": "Position", 366 | "m_DrawState": { 367 | "m_Expanded": true, 368 | "m_Position": { 369 | "serializedVersion": "2", 370 | "x": -448.0, 371 | "y": 21.0, 372 | "width": 206.0, 373 | "height": 131.0 374 | } 375 | }, 376 | "m_Slots": [ 377 | { 378 | "m_Id": "282df091de7a41d8a8463afa0fa70234" 379 | } 380 | ], 381 | "synonyms": [ 382 | "location" 383 | ], 384 | "m_Precision": 1, 385 | "m_PreviewExpanded": false, 386 | "m_DismissedVersion": 0, 387 | "m_PreviewMode": 2, 388 | "m_CustomColors": { 389 | "m_SerializableColors": [] 390 | }, 391 | "m_Space": 2, 392 | "m_PositionSource": 0 393 | } 394 | 395 | { 396 | "m_SGVersion": 0, 397 | "m_Type": "UnityEditor.ShaderGraph.PropertyConnectionStateMaterialSlot", 398 | "m_ObjectId": "5084da4ba599400c990d8f8757a85a44", 399 | "m_Id": 0, 400 | "m_DisplayName": "Input", 401 | "m_SlotType": 0, 402 | "m_Hidden": false, 403 | "m_ShaderOutputName": "Input", 404 | "m_StageCapability": 3 405 | } 406 | 407 | { 408 | "m_SGVersion": 0, 409 | "m_Type": "UnityEditor.ShaderGraph.PropertyNode", 410 | "m_ObjectId": "65e443cb15a9fb859a50ebae06e81569", 411 | "m_Group": { 412 | "m_Id": "" 413 | }, 414 | "m_Name": "Property", 415 | "m_DrawState": { 416 | "m_Expanded": true, 417 | "m_Position": { 418 | "serializedVersion": "2", 419 | "x": -389.0, 420 | "y": -34.0, 421 | "width": 119.0, 422 | "height": 34.0 423 | } 424 | }, 425 | "m_Slots": [ 426 | { 427 | "m_Id": "7d190f51c889ce8198ca0ecfe494d421" 428 | } 429 | ], 430 | "synonyms": [], 431 | "m_Precision": 0, 432 | "m_PreviewExpanded": true, 433 | "m_DismissedVersion": 0, 434 | "m_PreviewMode": 0, 435 | "m_CustomColors": { 436 | "m_SerializableColors": [] 437 | }, 438 | "m_Property": { 439 | "m_Id": "7ea1bbbacf460c879f6d8c85fd91750d" 440 | } 441 | } 442 | 443 | { 444 | "m_SGVersion": 0, 445 | "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", 446 | "m_ObjectId": "7d190f51c889ce8198ca0ecfe494d421", 447 | "m_Id": 0, 448 | "m_DisplayName": "Position", 449 | "m_SlotType": 1, 450 | "m_Hidden": false, 451 | "m_ShaderOutputName": "Out", 452 | "m_StageCapability": 3, 453 | "m_Value": { 454 | "x": 0.0, 455 | "y": 0.0, 456 | "z": 0.0 457 | }, 458 | "m_DefaultValue": { 459 | "x": 0.0, 460 | "y": 0.0, 461 | "z": 0.0 462 | }, 463 | "m_Labels": [ 464 | "X", 465 | "Y", 466 | "Z" 467 | ] 468 | } 469 | 470 | { 471 | "m_SGVersion": 1, 472 | "m_Type": "UnityEditor.ShaderGraph.Internal.Vector3ShaderProperty", 473 | "m_ObjectId": "7ea1bbbacf460c879f6d8c85fd91750d", 474 | "m_Guid": { 475 | "m_GuidSerialized": "c7b957cd-dd93-4549-bd10-7676ba0773f3" 476 | }, 477 | "m_Name": "Position", 478 | "m_DefaultRefNameVersion": 0, 479 | "m_RefNameGeneratedByDisplayName": "", 480 | "m_DefaultReferenceName": "Vector3_B87D7B6B", 481 | "m_OverrideReferenceName": "", 482 | "m_GeneratePropertyBlock": true, 483 | "m_UseCustomSlotLabel": true, 484 | "m_CustomSlotLabel": "World Space", 485 | "m_DismissedVersion": 0, 486 | "m_Precision": 0, 487 | "overrideHLSLDeclaration": false, 488 | "hlslDeclarationOverride": 0, 489 | "m_Hidden": false, 490 | "m_Value": { 491 | "x": 0.0, 492 | "y": 0.0, 493 | "z": 0.0, 494 | "w": 0.0 495 | } 496 | } 497 | 498 | { 499 | "m_SGVersion": 0, 500 | "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", 501 | "m_ObjectId": "a1ca80e42f7045488e6db2a2a054ffff", 502 | "m_Id": 3, 503 | "m_DisplayName": "Out", 504 | "m_SlotType": 1, 505 | "m_Hidden": false, 506 | "m_ShaderOutputName": "Out", 507 | "m_StageCapability": 3, 508 | "m_Value": { 509 | "x": 0.0, 510 | "y": 0.0, 511 | "z": 0.0, 512 | "w": 0.0 513 | }, 514 | "m_DefaultValue": { 515 | "x": 0.0, 516 | "y": 0.0, 517 | "z": 0.0, 518 | "w": 0.0 519 | } 520 | } 521 | 522 | { 523 | "m_SGVersion": 0, 524 | "m_Type": "UnityEditor.ShaderGraph.BranchOnInputConnectionNode", 525 | "m_ObjectId": "a73253d1c5e2424c89b6af884a7eb179", 526 | "m_Group": { 527 | "m_Id": "" 528 | }, 529 | "m_Name": "Branch On Input Connection", 530 | "m_DrawState": { 531 | "m_Expanded": true, 532 | "m_Position": { 533 | "serializedVersion": "2", 534 | "x": -216.0, 535 | "y": -74.0, 536 | "width": 208.0, 537 | "height": 326.0 538 | } 539 | }, 540 | "m_Slots": [ 541 | { 542 | "m_Id": "5084da4ba599400c990d8f8757a85a44" 543 | }, 544 | { 545 | "m_Id": "2199b9343e174d67a2318f82273ee63c" 546 | }, 547 | { 548 | "m_Id": "d320e64b77e647b78f623c4569bcd9cc" 549 | }, 550 | { 551 | "m_Id": "a1ca80e42f7045488e6db2a2a054ffff" 552 | } 553 | ], 554 | "synonyms": [], 555 | "m_Precision": 0, 556 | "m_PreviewExpanded": true, 557 | "m_DismissedVersion": 0, 558 | "m_PreviewMode": 0, 559 | "m_CustomColors": { 560 | "m_SerializableColors": [] 561 | } 562 | } 563 | 564 | { 565 | "m_SGVersion": 0, 566 | "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", 567 | "m_ObjectId": "d0ba8ee4a69947498f3f1219d1c52e4f", 568 | "m_Id": 4, 569 | "m_DisplayName": "Cookie", 570 | "m_SlotType": 0, 571 | "m_Hidden": false, 572 | "m_ShaderOutputName": "Cookie", 573 | "m_StageCapability": 3, 574 | "m_Value": { 575 | "x": 0.0, 576 | "y": 0.0, 577 | "z": 0.0 578 | }, 579 | "m_DefaultValue": { 580 | "x": 0.0, 581 | "y": 0.0, 582 | "z": 0.0 583 | }, 584 | "m_Labels": [] 585 | } 586 | 587 | { 588 | "m_SGVersion": 0, 589 | "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", 590 | "m_ObjectId": "d320e64b77e647b78f623c4569bcd9cc", 591 | "m_Id": 2, 592 | "m_DisplayName": "NotConnected", 593 | "m_SlotType": 0, 594 | "m_Hidden": false, 595 | "m_ShaderOutputName": "NotConnected", 596 | "m_StageCapability": 3, 597 | "m_Value": { 598 | "x": 0.0, 599 | "y": 0.0, 600 | "z": 0.0, 601 | "w": 0.0 602 | }, 603 | "m_DefaultValue": { 604 | "x": 0.0, 605 | "y": 0.0, 606 | "z": 0.0, 607 | "w": 0.0 608 | } 609 | } 610 | 611 | -------------------------------------------------------------------------------- /CustomLighting.hlsl: -------------------------------------------------------------------------------- 1 | #ifndef CUSTOM_LIGHTING_INCLUDED 2 | #define CUSTOM_LIGHTING_INCLUDED 3 | 4 | // @Cyanilux | https://github.com/Cyanilux/URP_ShaderGraphCustomLighting 5 | // This version is intended for use in Unity 6.1+ 6 | // For older versions, see branches on github repo! 7 | 8 | //------------------------------------------------------------------------------------------------------ 9 | // Keyword Pragmas 10 | //------------------------------------------------------------------------------------------------------ 11 | 12 | #ifndef SHADERGRAPH_PREVIEW 13 | #if SHADERPASS != SHADERPASS_FORWARD && SHADERPASS != SHADERPASS_GBUFFER 14 | // #if to avoid "duplicate keyword" warnings if this is included in a Lit Graph 15 | 16 | #pragma multi_compile _ _MAIN_LIGHT_SHADOWS _MAIN_LIGHT_SHADOWS_CASCADE _MAIN_LIGHT_SHADOWS_SCREEN 17 | #pragma multi_compile_fragment _ _SHADOWS_SOFT _SHADOWS_SOFT_LOW _SHADOWS_SOFT_MEDIUM _SHADOWS_SOFT_HIGH 18 | #pragma multi_compile _ _ADDITIONAL_LIGHTS_VERTEX _ADDITIONAL_LIGHTS 19 | #pragma multi_compile_fragment _ _ADDITIONAL_LIGHT_SHADOWS 20 | #pragma multi_compile _ _CLUSTER_LIGHT_LOOP 21 | 22 | // Left some keywords (e.g. light layers, cookies) in subgraphs to help avoid unnecessary shader variants 23 | // But means if those subgraphs are nested in another, you'll need to copy the keywords from blackboard 24 | 25 | #endif 26 | #endif 27 | 28 | //------------------------------------------------------------------------------------------------------ 29 | // Main Light 30 | //------------------------------------------------------------------------------------------------------ 31 | 32 | /* 33 | - Obtains the Direction, Color and DistanceAtten for the Main Directional Light 34 | - (DistanceAtten is either 1 or 0, depending if the object is in the light's Culling Mask or not) 35 | - For shadows, see MainLightShadows_float 36 | - For DistanceAtten output to work in the Forward+ path "_CLUSTER_LIGHT_LOOP" keyword is required 37 | */ 38 | void MainLight_float(out float3 Direction, out float3 Color, out float DistanceAtten){ 39 | #ifdef SHADERGRAPH_PREVIEW 40 | Direction = normalize(float3(1,1,-0.4)); 41 | Color = float4(1,1,1,1); 42 | DistanceAtten = 1; 43 | #else 44 | Light mainLight = GetMainLight(); 45 | Direction = mainLight.direction; 46 | Color = mainLight.color; 47 | DistanceAtten = mainLight.distanceAttenuation; 48 | #endif 49 | } 50 | 51 | /* 52 | - Tests whether the Main Light Layer Mask appears in the Rendering Layers from renderer 53 | - (Used to support Light Layers, pass your shading from Main Light into this) 54 | - To work in an Unlit Graph, requires keywords : 55 | - Boolean Keyword, Global Multi-Compile "_LIGHT_LAYERS" 56 | */ 57 | void MainLightLayer_float(float3 Shading, out float3 Out){ 58 | #ifdef SHADERGRAPH_PREVIEW 59 | Out = Shading; 60 | #else 61 | Out = 0; 62 | uint meshRenderingLayers = GetMeshRenderingLayer(); 63 | #ifdef _LIGHT_LAYERS 64 | if (IsMatchingLightLayer(GetMainLight().layerMask, meshRenderingLayers)) 65 | #endif 66 | { 67 | Out = Shading; 68 | } 69 | #endif 70 | } 71 | 72 | /* 73 | - Obtains the Light Cookie assigned to the Main Light 74 | - (For usage, You'd want to Multiply the result with your Light Colour) 75 | - To work in an Unlit Graph, requires keywords : 76 | - Boolean Keyword, Global Multi-Compile "_LIGHT_COOKIES" 77 | */ 78 | void MainLightCookie_float(float3 WorldPos, out float3 Cookie){ 79 | Cookie = 1; 80 | #if defined(_LIGHT_COOKIES) 81 | Cookie = SampleMainLightCookie(WorldPos); 82 | #endif 83 | } 84 | 85 | //------------------------------------------------------------------------------------------------------ 86 | // Main Light Shadows 87 | //------------------------------------------------------------------------------------------------------ 88 | 89 | /* 90 | - Samples the Shadowmap for the Main Light, based on the World Position passed in. (Position node) 91 | */ 92 | void MainLightShadows_float(float3 WorldPos, half4 Shadowmask, out float ShadowAtten){ 93 | #ifdef SHADERGRAPH_PREVIEW 94 | ShadowAtten = 1; 95 | #else 96 | #if defined(_MAIN_LIGHT_SHADOWS_SCREEN) && !defined(_SURFACE_TYPE_TRANSPARENT) 97 | float4 shadowCoord = ComputeScreenPos(TransformWorldToHClip(WorldPos)); 98 | #else 99 | float4 shadowCoord = TransformWorldToShadowCoord(WorldPos); 100 | #endif 101 | ShadowAtten = MainLightShadow(shadowCoord, WorldPos, Shadowmask, _MainLightOcclusionProbes); 102 | #endif 103 | } 104 | 105 | void MainLightShadows_float(float3 WorldPos, out float ShadowAtten){ 106 | MainLightShadows_float(WorldPos, half4(1,1,1,1), ShadowAtten); 107 | } 108 | 109 | //------------------------------------------------------------------------------------------------------ 110 | // Baked GI 111 | //------------------------------------------------------------------------------------------------------ 112 | 113 | /* 114 | - Used to support "Shadowmask" Baked GI mode in Lighting window. 115 | - Ideally sample once in graph, then input into the Main Light Shadows and/or Additional Light subgraphs/functions. 116 | - To work in an Unlit Graph, likely requires keywords : 117 | - Boolean Keyword, Global Multi-Compile "SHADOWS_SHADOWMASK" 118 | - Boolean Keyword, Global Multi-Compile "LIGHTMAP_SHADOW_MIXING" 119 | - (also LIGHTMAP_ON, but I believe Shader Graph is already defining this one) 120 | */ 121 | void Shadowmask_half(float2 lightmapUV, out half4 Shadowmask){ 122 | #ifdef SHADERGRAPH_PREVIEW 123 | Shadowmask = half4(1,1,1,1); 124 | #else 125 | OUTPUT_LIGHTMAP_UV(lightmapUV, unity_LightmapST, lightmapUV); 126 | Shadowmask = SAMPLE_SHADOWMASK(lightmapUV); 127 | #endif 128 | } 129 | 130 | /* 131 | - Used to support "Subtractive" Baked GI mode in Lighting window 132 | - Inputs should be ShadowAtten from Main Light Shadows subgraph, Normal Vector (World space) and Baked GI nodes 133 | - To work in an Unlit Graph, likely requires keywords : 134 | - Boolean Keyword, Global Multi-Compile "LIGHTMAP_SHADOW_MIXING" 135 | - (also LIGHTMAP_ON, but I believe Shader Graph is already defining this one) 136 | */ 137 | void SubtractiveGI_float(float ShadowAtten, float3 NormalWS, float3 BakedGI, out half3 result){ 138 | #ifdef SHADERGRAPH_PREVIEW 139 | result = half3(1,1,1); 140 | #else 141 | Light mainLight = GetMainLight(); 142 | mainLight.shadowAttenuation = ShadowAtten; 143 | MixRealtimeAndBakedGI(mainLight, NormalWS, BakedGI); 144 | result = BakedGI; 145 | #endif 146 | } 147 | 148 | //------------------------------------------------------------------------------------------------------ 149 | // Default Additional Lights 150 | //------------------------------------------------------------------------------------------------------ 151 | 152 | /* 153 | - Handles additional lights (e.g. additional directional, point, spotlights) 154 | - For custom lighting, you may want to duplicate this and swap the LightingLambert / LightingSpecular functions out. See Toon Example below! 155 | - Requires keywords "_ADDITIONAL_LIGHTS", "_ADDITIONAL_LIGHT_SHADOWS" & "_CLUSTER_LIGHT_LOOP" 156 | */ 157 | void AdditionalLights_float(float3 SpecColor, float Smoothness, float3 WorldPosition, float3 WorldNormal, float3 WorldView, half4 Shadowmask, 158 | out float3 Diffuse, out float3 Specular) { 159 | float3 diffuseColor = 0; 160 | float3 specularColor = 0; 161 | #ifndef SHADERGRAPH_PREVIEW 162 | Smoothness = exp2(10 * Smoothness + 1); 163 | uint pixelLightCount = GetAdditionalLightsCount(); 164 | uint meshRenderingLayers = GetMeshRenderingLayer(); 165 | 166 | #if USE_CLUSTER_LIGHT_LOOP 167 | for (uint lightIndex = 0; lightIndex < min(URP_FP_DIRECTIONAL_LIGHTS_COUNT, MAX_VISIBLE_LIGHTS); lightIndex++) { 168 | CLUSTER_LIGHT_LOOP_SUBTRACTIVE_LIGHT_CHECK 169 | Light light = GetAdditionalLight(lightIndex, WorldPosition, Shadowmask); 170 | #ifdef _LIGHT_LAYERS 171 | if (IsMatchingLightLayer(light.layerMask, meshRenderingLayers)) 172 | #endif 173 | { 174 | // Blinn-Phong 175 | float3 attenuatedLightColor = light.color * (light.distanceAttenuation * light.shadowAttenuation); 176 | diffuseColor += LightingLambert(attenuatedLightColor, light.direction, WorldNormal); 177 | specularColor += LightingSpecular(attenuatedLightColor, light.direction, WorldNormal, WorldView, float4(SpecColor, 0), Smoothness); 178 | } 179 | } 180 | #endif 181 | 182 | // For Foward+ the LIGHT_LOOP_BEGIN macro will use inputData.normalizedScreenSpaceUV, inputData.positionWS, so create that: 183 | InputData inputData = (InputData)0; 184 | float4 screenPos = ComputeScreenPos(TransformWorldToHClip(WorldPosition)); 185 | inputData.normalizedScreenSpaceUV = screenPos.xy / screenPos.w; 186 | inputData.positionWS = WorldPosition; 187 | 188 | LIGHT_LOOP_BEGIN(pixelLightCount) 189 | Light light = GetAdditionalLight(lightIndex, WorldPosition, Shadowmask); 190 | #ifdef _LIGHT_LAYERS 191 | if (IsMatchingLightLayer(light.layerMask, meshRenderingLayers)) 192 | #endif 193 | { 194 | // Blinn-Phong 195 | float3 attenuatedLightColor = light.color * (light.distanceAttenuation * light.shadowAttenuation); 196 | diffuseColor += LightingLambert(attenuatedLightColor, light.direction, WorldNormal); 197 | specularColor += LightingSpecular(attenuatedLightColor, light.direction, WorldNormal, WorldView, float4(SpecColor, 0), Smoothness); 198 | } 199 | LIGHT_LOOP_END 200 | #endif 201 | 202 | Diffuse = diffuseColor; 203 | Specular = specularColor; 204 | } 205 | 206 | //------------------------------------------------------------------------------------------------------ 207 | // Additional Lights Toon Example 208 | //------------------------------------------------------------------------------------------------------ 209 | 210 | /* 211 | - Calculates light attenuation values to produce multiple bands for a toon effect. See AdditionalLightsToon function below 212 | */ 213 | #ifndef SHADERGRAPH_PREVIEW 214 | float ToonAttenuation(int lightIndex, float3 positionWS, float pointBands, float spotBands){ 215 | #if !USE_CLUSTER_LIGHT_LOOP 216 | lightIndex = GetPerObjectLightIndex(lightIndex); 217 | #endif 218 | #if USE_STRUCTURED_BUFFER_FOR_LIGHT_DATA 219 | float4 lightPositionWS = _AdditionalLightsBuffer[lightIndex].position; 220 | half4 spotDirection = _AdditionalLightsBuffer[lightIndex].spotDirection; 221 | half4 distanceAndSpotAttenuation = _AdditionalLightsBuffer[lightIndex].attenuation; 222 | #else 223 | float4 lightPositionWS = _AdditionalLightsPosition[lightIndex]; 224 | half4 spotDirection = _AdditionalLightsSpotDir[lightIndex]; 225 | half4 distanceAndSpotAttenuation = _AdditionalLightsAttenuation[lightIndex]; 226 | #endif 227 | 228 | // Point 229 | float3 lightVector = lightPositionWS.xyz - positionWS * lightPositionWS.w; 230 | float distanceSqr = max(dot(lightVector, lightVector), HALF_MIN); 231 | float range = rsqrt(distanceAndSpotAttenuation.x); 232 | float dist = sqrt(distanceSqr) / range; 233 | 234 | // Spot 235 | half3 lightDirection = half3(lightVector * rsqrt(distanceSqr)); 236 | half SdotL = dot(spotDirection.xyz, lightDirection); 237 | half spotAtten = saturate(SdotL * distanceAndSpotAttenuation.z + distanceAndSpotAttenuation.w); 238 | spotAtten *= spotAtten; 239 | float maskSpotToRange = step(dist, 1); 240 | 241 | // Atten 242 | bool isSpot = (distanceAndSpotAttenuation.z > 0); 243 | return isSpot ? 244 | //step(0.01, spotAtten) : // cheaper if you just want "1" band for spot lights 245 | (floor(spotAtten * spotBands) / spotBands) * maskSpotToRange : 246 | saturate(1.0 - floor(dist * pointBands) / pointBands); 247 | } 248 | #endif 249 | 250 | /* 251 | - Handles additional lights (e.g. point, spotlights) with banded toon effect 252 | - Requires keywords "_ADDITIONAL_LIGHTS", "_ADDITIONAL_LIGHT_SHADOWS" & "_CLUSTER_LIGHT_LOOP" 253 | */ 254 | void AdditionalLightsToon_float(float3 SpecColor, float Smoothness, float3 WorldPosition, float3 WorldNormal, float3 WorldView, half4 Shadowmask, 255 | float PointLightBands, float SpotLightBands, 256 | out float3 Diffuse, out float3 Specular) { 257 | float3 diffuseColor = 0; 258 | float3 specularColor = 0; 259 | 260 | #ifndef SHADERGRAPH_PREVIEW 261 | Smoothness = exp2(10 * Smoothness + 1); 262 | uint pixelLightCount = GetAdditionalLightsCount(); 263 | uint meshRenderingLayers = GetMeshRenderingLayer(); 264 | 265 | #if USE_CLUSTER_LIGHT_LOOP 266 | for (uint lightIndex = 0; lightIndex < min(URP_FP_DIRECTIONAL_LIGHTS_COUNT, MAX_VISIBLE_LIGHTS); lightIndex++) { 267 | CLUSTER_LIGHT_LOOP_SUBTRACTIVE_LIGHT_CHECK 268 | Light light = GetAdditionalLight(lightIndex, WorldPosition, Shadowmask); 269 | #ifdef _LIGHT_LAYERS 270 | if (IsMatchingLightLayer(light.layerMask, meshRenderingLayers)) 271 | #endif 272 | { 273 | if (PointLightBands <= 1 && SpotLightBands <= 1){ 274 | // Solid colour lights 275 | diffuseColor += light.color * step(0.0001, light.distanceAttenuation * light.shadowAttenuation); 276 | }else{ 277 | // Multiple bands 278 | diffuseColor += light.color * light.shadowAttenuation * ToonAttenuation(lightIndex, WorldPosition, PointLightBands, SpotLightBands); 279 | } 280 | } 281 | } 282 | #endif 283 | 284 | // For Foward+ the LIGHT_LOOP_BEGIN macro will use inputData.normalizedScreenSpaceUV, inputData.positionWS, so create that: 285 | InputData inputData = (InputData)0; 286 | float4 screenPos = ComputeScreenPos(TransformWorldToHClip(WorldPosition)); 287 | inputData.normalizedScreenSpaceUV = screenPos.xy / screenPos.w; 288 | inputData.positionWS = WorldPosition; 289 | 290 | LIGHT_LOOP_BEGIN(pixelLightCount) 291 | Light light = GetAdditionalLight(lightIndex, WorldPosition, Shadowmask); 292 | #ifdef _LIGHT_LAYERS 293 | if (IsMatchingLightLayer(light.layerMask, meshRenderingLayers)) 294 | #endif 295 | { 296 | if (PointLightBands <= 1 && SpotLightBands <= 1){ 297 | // Solid colour lights 298 | diffuseColor += light.color * step(0.0001, light.distanceAttenuation * light.shadowAttenuation); 299 | }else{ 300 | // Multiple bands 301 | diffuseColor += light.color * light.shadowAttenuation * ToonAttenuation(lightIndex, WorldPosition, PointLightBands, SpotLightBands); 302 | } 303 | } 304 | LIGHT_LOOP_END 305 | #endif 306 | 307 | /* 308 | #ifndef SHADERGRAPH_PREVIEW 309 | Smoothness = exp2(10 * Smoothness + 1); 310 | WorldNormal = normalize(WorldNormal); 311 | WorldView = SafeNormalize(WorldView); 312 | int pixelLightCount = GetAdditionalLightsCount(); 313 | for (int i = 0; i < pixelLightCount; ++i) { 314 | Light light = GetAdditionalLight(i, WorldPosition, Shadowmask); 315 | 316 | // DIFFUSE 317 | if (PointLightBands <= 1 && SpotLightBands <= 1){ 318 | // Solid colour lights 319 | diffuseColor += light.color * step(0.0001, light.distanceAttenuation * light.shadowAttenuation); 320 | }else{ 321 | // Multiple bands : 322 | diffuseColor += light.color * light.shadowAttenuation * ToonAttenuation(i, WorldPosition, PointLightBands, SpotLightBands); 323 | } 324 | } 325 | #endif 326 | */ 327 | 328 | Diffuse = diffuseColor; 329 | Specular = specularColor; 330 | // Didn't really like the look of specular lighting in the toon shader here, so just keeping it at 0 331 | } 332 | 333 | //------------------------------------------------------------------------------------------------------ 334 | // Deprecated / Backwards compatibility 335 | //------------------------------------------------------------------------------------------------------ 336 | 337 | // For backwards compatibility (before Shadowmask was introduced) 338 | void AdditionalLights_float(float3 SpecColor, float Smoothness, float3 WorldPosition, float3 WorldNormal, float3 WorldView, 339 | out float3 Diffuse, out float3 Specular) { 340 | AdditionalLights_float(SpecColor, Smoothness, WorldPosition, WorldNormal, WorldView, half4(1,1,1,1), Diffuse, Specular); 341 | } 342 | 343 | // (before Shadowmask was introduced) 344 | void AdditionalLightsToon_float(float3 SpecColor, float Smoothness, float3 WorldPosition, float3 WorldNormal, float3 WorldView, 345 | float PointLightBands, float SpotLightBands, 346 | out float3 Diffuse, out float3 Specular) { 347 | AdditionalLightsToon_float(SpecColor, Smoothness, WorldPosition, WorldNormal, WorldView, half4(1,1,1,1), 348 | PointLightBands, SpotLightBands,Diffuse, Specular); 349 | } 350 | 351 | /* 352 | - Adds fog to the input colour, based on the Fog settings in the Lighting tab 353 | - Would usually be connected just before Base Color output in graph 354 | - Not required for v12+, can use Lerp instead. See "Mix Fog" SubGraph 355 | */ 356 | void MixFog_float(float3 Colour, float Fog, out float3 Out){ 357 | #ifdef SHADERGRAPH_PREVIEW 358 | Out = Colour; 359 | #else 360 | Out = MixFog(Colour, Fog); 361 | #endif 362 | } 363 | 364 | /* 365 | - Uses "SampleSH", the spherical harmonic stuff that ambient lighting / light probes uses 366 | - But should use the built-in "Baked GI" node over this function, that handles this and more (including the new Adaptive Probe Volumes, with the appropiate keywords : https://github.com/Cyanilux/URP_ShaderGraphCustomLighting/issues/27) 367 | */ 368 | void AmbientSampleSH_float(float3 WorldNormal, out float3 Ambient){ 369 | #ifdef SHADERGRAPH_PREVIEW 370 | Ambient = float3(0.1, 0.1, 0.1); // Default ambient colour for previews 371 | #else 372 | Ambient = SampleSH(WorldNormal); 373 | #endif 374 | } 375 | 376 | #endif // CUSTOM_LIGHTING_INCLUDED 377 | -------------------------------------------------------------------------------- /SubGraphs/Main Light Shadows.shadersubgraph: -------------------------------------------------------------------------------- 1 | { 2 | "m_SGVersion": 3, 3 | "m_Type": "UnityEditor.ShaderGraph.GraphData", 4 | "m_ObjectId": "6ccc676f731a493fafa9835286dfc528", 5 | "m_Properties": [ 6 | { 7 | "m_Id": "7ea1bbbacf460c879f6d8c85fd91750d" 8 | }, 9 | { 10 | "m_Id": "f0e0b7c9dc84459b9872e8ec2c4fb3ca" 11 | } 12 | ], 13 | "m_Keywords": [], 14 | "m_Dropdowns": [], 15 | "m_CategoryData": [ 16 | { 17 | "m_Id": "1a0133ec0b7148738854ac5fbfdb06c6" 18 | } 19 | ], 20 | "m_Nodes": [ 21 | { 22 | "m_Id": "0f043bb7e9b9d1849a740f31c19b79a8" 23 | }, 24 | { 25 | "m_Id": "3be2118d2270ff818ec5f0f1353e249f" 26 | }, 27 | { 28 | "m_Id": "65e443cb15a9fb859a50ebae06e81569" 29 | }, 30 | { 31 | "m_Id": "4f79f9fd24d2450fbfd056685c845f8a" 32 | }, 33 | { 34 | "m_Id": "a73253d1c5e2424c89b6af884a7eb179" 35 | }, 36 | { 37 | "m_Id": "3a2eacd6e269401591082a237182fdb5" 38 | } 39 | ], 40 | "m_GroupDatas": [], 41 | "m_StickyNoteDatas": [], 42 | "m_Edges": [ 43 | { 44 | "m_OutputSlot": { 45 | "m_Node": { 46 | "m_Id": "3a2eacd6e269401591082a237182fdb5" 47 | }, 48 | "m_SlotId": 0 49 | }, 50 | "m_InputSlot": { 51 | "m_Node": { 52 | "m_Id": "3be2118d2270ff818ec5f0f1353e249f" 53 | }, 54 | "m_SlotId": 5 55 | } 56 | }, 57 | { 58 | "m_OutputSlot": { 59 | "m_Node": { 60 | "m_Id": "3be2118d2270ff818ec5f0f1353e249f" 61 | }, 62 | "m_SlotId": 4 63 | }, 64 | "m_InputSlot": { 65 | "m_Node": { 66 | "m_Id": "0f043bb7e9b9d1849a740f31c19b79a8" 67 | }, 68 | "m_SlotId": 4 69 | } 70 | }, 71 | { 72 | "m_OutputSlot": { 73 | "m_Node": { 74 | "m_Id": "4f79f9fd24d2450fbfd056685c845f8a" 75 | }, 76 | "m_SlotId": 0 77 | }, 78 | "m_InputSlot": { 79 | "m_Node": { 80 | "m_Id": "a73253d1c5e2424c89b6af884a7eb179" 81 | }, 82 | "m_SlotId": 2 83 | } 84 | }, 85 | { 86 | "m_OutputSlot": { 87 | "m_Node": { 88 | "m_Id": "65e443cb15a9fb859a50ebae06e81569" 89 | }, 90 | "m_SlotId": 0 91 | }, 92 | "m_InputSlot": { 93 | "m_Node": { 94 | "m_Id": "a73253d1c5e2424c89b6af884a7eb179" 95 | }, 96 | "m_SlotId": 0 97 | } 98 | }, 99 | { 100 | "m_OutputSlot": { 101 | "m_Node": { 102 | "m_Id": "65e443cb15a9fb859a50ebae06e81569" 103 | }, 104 | "m_SlotId": 0 105 | }, 106 | "m_InputSlot": { 107 | "m_Node": { 108 | "m_Id": "a73253d1c5e2424c89b6af884a7eb179" 109 | }, 110 | "m_SlotId": 1 111 | } 112 | }, 113 | { 114 | "m_OutputSlot": { 115 | "m_Node": { 116 | "m_Id": "a73253d1c5e2424c89b6af884a7eb179" 117 | }, 118 | "m_SlotId": 3 119 | }, 120 | "m_InputSlot": { 121 | "m_Node": { 122 | "m_Id": "3be2118d2270ff818ec5f0f1353e249f" 123 | }, 124 | "m_SlotId": 0 125 | } 126 | } 127 | ], 128 | "m_VertexContext": { 129 | "m_Position": { 130 | "x": 259.0, 131 | "y": -74.0 132 | }, 133 | "m_Blocks": [] 134 | }, 135 | "m_FragmentContext": { 136 | "m_Position": { 137 | "x": 259.0, 138 | "y": 126.0 139 | }, 140 | "m_Blocks": [] 141 | }, 142 | "m_PreviewData": { 143 | "serializedMesh": { 144 | "m_SerializedMesh": "{\"mesh\":{\"instanceID\":0}}", 145 | "m_Guid": "" 146 | }, 147 | "preventRotation": false 148 | }, 149 | "m_Path": "Custom Lighting", 150 | "m_GraphPrecision": 0, 151 | "m_PreviewMode": 2, 152 | "m_OutputNode": { 153 | "m_Id": "0f043bb7e9b9d1849a740f31c19b79a8" 154 | }, 155 | "m_SubDatas": [], 156 | "m_ActiveTargets": [] 157 | } 158 | 159 | { 160 | "m_SGVersion": 0, 161 | "m_Type": "UnityEditor.ShaderGraph.SubGraphOutputNode", 162 | "m_ObjectId": "0f043bb7e9b9d1849a740f31c19b79a8", 163 | "m_Group": { 164 | "m_Id": "" 165 | }, 166 | "m_Name": "Out_Vector1", 167 | "m_DrawState": { 168 | "m_Expanded": true, 169 | "m_Position": { 170 | "serializedVersion": "2", 171 | "x": 276.0, 172 | "y": -74.0, 173 | "width": 124.0, 174 | "height": 77.0 175 | } 176 | }, 177 | "m_Slots": [ 178 | { 179 | "m_Id": "dc6b8c814bcd455ea664442a17ea0a5d" 180 | } 181 | ], 182 | "synonyms": [], 183 | "m_Precision": 0, 184 | "m_PreviewExpanded": true, 185 | "m_DismissedVersion": 0, 186 | "m_PreviewMode": 0, 187 | "m_CustomColors": { 188 | "m_SerializableColors": [] 189 | }, 190 | "IsFirstSlotValid": true 191 | } 192 | 193 | { 194 | "m_SGVersion": 0, 195 | "m_Type": "UnityEditor.ShaderGraph.CategoryData", 196 | "m_ObjectId": "1a0133ec0b7148738854ac5fbfdb06c6", 197 | "m_Name": "", 198 | "m_ChildObjectList": [ 199 | { 200 | "m_Id": "7ea1bbbacf460c879f6d8c85fd91750d" 201 | }, 202 | { 203 | "m_Id": "f0e0b7c9dc84459b9872e8ec2c4fb3ca" 204 | } 205 | ] 206 | } 207 | 208 | { 209 | "m_SGVersion": 0, 210 | "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", 211 | "m_ObjectId": "2199b9343e174d67a2318f82273ee63c", 212 | "m_Id": 1, 213 | "m_DisplayName": "Connected", 214 | "m_SlotType": 0, 215 | "m_Hidden": false, 216 | "m_ShaderOutputName": "Connected", 217 | "m_StageCapability": 3, 218 | "m_Value": { 219 | "x": 1.0, 220 | "y": 1.0, 221 | "z": 1.0, 222 | "w": 1.0 223 | }, 224 | "m_DefaultValue": { 225 | "x": 0.0, 226 | "y": 0.0, 227 | "z": 0.0, 228 | "w": 0.0 229 | } 230 | } 231 | 232 | { 233 | "m_SGVersion": 0, 234 | "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", 235 | "m_ObjectId": "257887c1d11f388091ca856e82012ef9", 236 | "m_Id": 0, 237 | "m_DisplayName": "World Pos", 238 | "m_SlotType": 0, 239 | "m_Hidden": false, 240 | "m_ShaderOutputName": "WorldPos", 241 | "m_StageCapability": 3, 242 | "m_Value": { 243 | "x": 0.0, 244 | "y": 0.0, 245 | "z": 0.0 246 | }, 247 | "m_DefaultValue": { 248 | "x": 0.0, 249 | "y": 0.0, 250 | "z": 0.0 251 | }, 252 | "m_Labels": [ 253 | "X", 254 | "Y", 255 | "Z" 256 | ] 257 | } 258 | 259 | { 260 | "m_SGVersion": 0, 261 | "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", 262 | "m_ObjectId": "282df091de7a41d8a8463afa0fa70234", 263 | "m_Id": 0, 264 | "m_DisplayName": "Out", 265 | "m_SlotType": 1, 266 | "m_Hidden": false, 267 | "m_ShaderOutputName": "Out", 268 | "m_StageCapability": 3, 269 | "m_Value": { 270 | "x": 0.0, 271 | "y": 0.0, 272 | "z": 0.0 273 | }, 274 | "m_DefaultValue": { 275 | "x": 0.0, 276 | "y": 0.0, 277 | "z": 0.0 278 | }, 279 | "m_Labels": [] 280 | } 281 | 282 | { 283 | "m_SGVersion": 0, 284 | "m_Type": "UnityEditor.ShaderGraph.PropertyNode", 285 | "m_ObjectId": "3a2eacd6e269401591082a237182fdb5", 286 | "m_Group": { 287 | "m_Id": "" 288 | }, 289 | "m_Name": "Property", 290 | "m_DrawState": { 291 | "m_Expanded": true, 292 | "m_Position": { 293 | "serializedVersion": "2", 294 | "x": -213.00001525878907, 295 | "y": 136.0, 296 | "width": 147.00003051757813, 297 | "height": 33.999969482421878 298 | } 299 | }, 300 | "m_Slots": [ 301 | { 302 | "m_Id": "c7fb942196dd45ce8f0e9fc62e8817ba" 303 | } 304 | ], 305 | "synonyms": [], 306 | "m_Precision": 2, 307 | "m_PreviewExpanded": true, 308 | "m_DismissedVersion": 0, 309 | "m_PreviewMode": 0, 310 | "m_CustomColors": { 311 | "m_SerializableColors": [] 312 | }, 313 | "m_Property": { 314 | "m_Id": "f0e0b7c9dc84459b9872e8ec2c4fb3ca" 315 | } 316 | } 317 | 318 | { 319 | "m_SGVersion": 1, 320 | "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode", 321 | "m_ObjectId": "3be2118d2270ff818ec5f0f1353e249f", 322 | "m_Group": { 323 | "m_Id": "" 324 | }, 325 | "m_Name": "MainLightShadows (Custom Function)", 326 | "m_DrawState": { 327 | "m_Expanded": true, 328 | "m_Position": { 329 | "serializedVersion": "2", 330 | "x": 12.99996566772461, 331 | "y": -74.0, 332 | "width": 229.00001525878907, 333 | "height": 350.0 334 | } 335 | }, 336 | "m_Slots": [ 337 | { 338 | "m_Id": "257887c1d11f388091ca856e82012ef9" 339 | }, 340 | { 341 | "m_Id": "b1d45983685a4101a2c1fffb3a369391" 342 | }, 343 | { 344 | "m_Id": "5db4eed2e36d7488a62403610a345235" 345 | } 346 | ], 347 | "synonyms": [ 348 | "code", 349 | "HLSL" 350 | ], 351 | "m_Precision": 0, 352 | "m_PreviewExpanded": true, 353 | "m_DismissedVersion": 0, 354 | "m_PreviewMode": 0, 355 | "m_CustomColors": { 356 | "m_SerializableColors": [] 357 | }, 358 | "m_SourceType": 0, 359 | "m_FunctionName": "MainLightShadows", 360 | "m_FunctionSource": "5c09ec492074d214fbe1a19781ad15e8", 361 | "m_FunctionSourceUsePragmas": true, 362 | "m_FunctionBody": "Enter function body here..." 363 | } 364 | 365 | { 366 | "m_SGVersion": 1, 367 | "m_Type": "UnityEditor.ShaderGraph.PositionNode", 368 | "m_ObjectId": "4f79f9fd24d2450fbfd056685c845f8a", 369 | "m_Group": { 370 | "m_Id": "" 371 | }, 372 | "m_Name": "Position", 373 | "m_DrawState": { 374 | "m_Expanded": true, 375 | "m_Position": { 376 | "serializedVersion": "2", 377 | "x": -510.0, 378 | "y": -103.0, 379 | "width": 206.0, 380 | "height": 131.0 381 | } 382 | }, 383 | "m_Slots": [ 384 | { 385 | "m_Id": "282df091de7a41d8a8463afa0fa70234" 386 | } 387 | ], 388 | "synonyms": [ 389 | "location" 390 | ], 391 | "m_Precision": 1, 392 | "m_PreviewExpanded": false, 393 | "m_DismissedVersion": 0, 394 | "m_PreviewMode": 2, 395 | "m_CustomColors": { 396 | "m_SerializableColors": [] 397 | }, 398 | "m_Space": 2, 399 | "m_PositionSource": 0 400 | } 401 | 402 | { 403 | "m_SGVersion": 0, 404 | "m_Type": "UnityEditor.ShaderGraph.PropertyConnectionStateMaterialSlot", 405 | "m_ObjectId": "5084da4ba599400c990d8f8757a85a44", 406 | "m_Id": 0, 407 | "m_DisplayName": "Input", 408 | "m_SlotType": 0, 409 | "m_Hidden": false, 410 | "m_ShaderOutputName": "Input", 411 | "m_StageCapability": 3 412 | } 413 | 414 | { 415 | "m_SGVersion": 0, 416 | "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", 417 | "m_ObjectId": "5db4eed2e36d7488a62403610a345235", 418 | "m_Id": 4, 419 | "m_DisplayName": "Shadow Atten", 420 | "m_SlotType": 1, 421 | "m_Hidden": false, 422 | "m_ShaderOutputName": "ShadowAtten", 423 | "m_StageCapability": 3, 424 | "m_Value": 0.0, 425 | "m_DefaultValue": 0.0, 426 | "m_Labels": [ 427 | "X" 428 | ] 429 | } 430 | 431 | { 432 | "m_SGVersion": 0, 433 | "m_Type": "UnityEditor.ShaderGraph.PropertyNode", 434 | "m_ObjectId": "65e443cb15a9fb859a50ebae06e81569", 435 | "m_Group": { 436 | "m_Id": "" 437 | }, 438 | "m_Name": "Property", 439 | "m_DrawState": { 440 | "m_Expanded": true, 441 | "m_Position": { 442 | "serializedVersion": "2", 443 | "x": -451.0, 444 | "y": -157.99998474121095, 445 | "width": 119.0, 446 | "height": 34.000022888183597 447 | } 448 | }, 449 | "m_Slots": [ 450 | { 451 | "m_Id": "7d190f51c889ce8198ca0ecfe494d421" 452 | } 453 | ], 454 | "synonyms": [], 455 | "m_Precision": 0, 456 | "m_PreviewExpanded": true, 457 | "m_DismissedVersion": 0, 458 | "m_PreviewMode": 0, 459 | "m_CustomColors": { 460 | "m_SerializableColors": [] 461 | }, 462 | "m_Property": { 463 | "m_Id": "7ea1bbbacf460c879f6d8c85fd91750d" 464 | } 465 | } 466 | 467 | { 468 | "m_SGVersion": 0, 469 | "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", 470 | "m_ObjectId": "7d190f51c889ce8198ca0ecfe494d421", 471 | "m_Id": 0, 472 | "m_DisplayName": "Position", 473 | "m_SlotType": 1, 474 | "m_Hidden": false, 475 | "m_ShaderOutputName": "Out", 476 | "m_StageCapability": 3, 477 | "m_Value": { 478 | "x": 0.0, 479 | "y": 0.0, 480 | "z": 0.0 481 | }, 482 | "m_DefaultValue": { 483 | "x": 0.0, 484 | "y": 0.0, 485 | "z": 0.0 486 | }, 487 | "m_Labels": [ 488 | "X", 489 | "Y", 490 | "Z" 491 | ] 492 | } 493 | 494 | { 495 | "m_SGVersion": 1, 496 | "m_Type": "UnityEditor.ShaderGraph.Internal.Vector3ShaderProperty", 497 | "m_ObjectId": "7ea1bbbacf460c879f6d8c85fd91750d", 498 | "m_Guid": { 499 | "m_GuidSerialized": "c7b957cd-dd93-4549-bd10-7676ba0773f3" 500 | }, 501 | "m_Name": "Position", 502 | "m_DefaultRefNameVersion": 0, 503 | "m_RefNameGeneratedByDisplayName": "", 504 | "m_DefaultReferenceName": "Vector3_B87D7B6B", 505 | "m_OverrideReferenceName": "", 506 | "m_GeneratePropertyBlock": true, 507 | "m_UseCustomSlotLabel": true, 508 | "m_CustomSlotLabel": "World Space", 509 | "m_DismissedVersion": 0, 510 | "m_Precision": 0, 511 | "overrideHLSLDeclaration": false, 512 | "hlslDeclarationOverride": 0, 513 | "m_Hidden": false, 514 | "m_Value": { 515 | "x": 0.0, 516 | "y": 0.0, 517 | "z": 0.0, 518 | "w": 0.0 519 | } 520 | } 521 | 522 | { 523 | "m_SGVersion": 0, 524 | "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", 525 | "m_ObjectId": "a1ca80e42f7045488e6db2a2a054ffff", 526 | "m_Id": 3, 527 | "m_DisplayName": "Out", 528 | "m_SlotType": 1, 529 | "m_Hidden": false, 530 | "m_ShaderOutputName": "Out", 531 | "m_StageCapability": 3, 532 | "m_Value": { 533 | "x": 0.0, 534 | "y": 0.0, 535 | "z": 0.0, 536 | "w": 0.0 537 | }, 538 | "m_DefaultValue": { 539 | "x": 0.0, 540 | "y": 0.0, 541 | "z": 0.0, 542 | "w": 0.0 543 | } 544 | } 545 | 546 | { 547 | "m_SGVersion": 0, 548 | "m_Type": "UnityEditor.ShaderGraph.BranchOnInputConnectionNode", 549 | "m_ObjectId": "a73253d1c5e2424c89b6af884a7eb179", 550 | "m_Group": { 551 | "m_Id": "" 552 | }, 553 | "m_Name": "Branch On Input Connection", 554 | "m_DrawState": { 555 | "m_Expanded": true, 556 | "m_Position": { 557 | "serializedVersion": "2", 558 | "x": -278.0000305175781, 559 | "y": -197.99998474121095, 560 | "width": 208.00006103515626, 561 | "height": 326.0 562 | } 563 | }, 564 | "m_Slots": [ 565 | { 566 | "m_Id": "5084da4ba599400c990d8f8757a85a44" 567 | }, 568 | { 569 | "m_Id": "2199b9343e174d67a2318f82273ee63c" 570 | }, 571 | { 572 | "m_Id": "d320e64b77e647b78f623c4569bcd9cc" 573 | }, 574 | { 575 | "m_Id": "a1ca80e42f7045488e6db2a2a054ffff" 576 | } 577 | ], 578 | "synonyms": [], 579 | "m_Precision": 0, 580 | "m_PreviewExpanded": true, 581 | "m_DismissedVersion": 0, 582 | "m_PreviewMode": 0, 583 | "m_CustomColors": { 584 | "m_SerializableColors": [] 585 | } 586 | } 587 | 588 | { 589 | "m_SGVersion": 0, 590 | "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot", 591 | "m_ObjectId": "b1d45983685a4101a2c1fffb3a369391", 592 | "m_Id": 5, 593 | "m_DisplayName": "Shadowmask", 594 | "m_SlotType": 0, 595 | "m_Hidden": false, 596 | "m_ShaderOutputName": "Shadowmask", 597 | "m_StageCapability": 3, 598 | "m_Value": { 599 | "x": 0.0, 600 | "y": 0.0, 601 | "z": 0.0, 602 | "w": 0.0 603 | }, 604 | "m_DefaultValue": { 605 | "x": 0.0, 606 | "y": 0.0, 607 | "z": 0.0, 608 | "w": 0.0 609 | }, 610 | "m_Labels": [] 611 | } 612 | 613 | { 614 | "m_SGVersion": 0, 615 | "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot", 616 | "m_ObjectId": "c7fb942196dd45ce8f0e9fc62e8817ba", 617 | "m_Id": 0, 618 | "m_DisplayName": "Shadowmask", 619 | "m_SlotType": 1, 620 | "m_Hidden": false, 621 | "m_ShaderOutputName": "Out", 622 | "m_StageCapability": 3, 623 | "m_Value": { 624 | "x": 0.0, 625 | "y": 0.0, 626 | "z": 0.0, 627 | "w": 0.0 628 | }, 629 | "m_DefaultValue": { 630 | "x": 0.0, 631 | "y": 0.0, 632 | "z": 0.0, 633 | "w": 0.0 634 | }, 635 | "m_Labels": [] 636 | } 637 | 638 | { 639 | "m_SGVersion": 0, 640 | "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", 641 | "m_ObjectId": "d320e64b77e647b78f623c4569bcd9cc", 642 | "m_Id": 2, 643 | "m_DisplayName": "NotConnected", 644 | "m_SlotType": 0, 645 | "m_Hidden": false, 646 | "m_ShaderOutputName": "NotConnected", 647 | "m_StageCapability": 3, 648 | "m_Value": { 649 | "x": 0.0, 650 | "y": 0.0, 651 | "z": 0.0, 652 | "w": 0.0 653 | }, 654 | "m_DefaultValue": { 655 | "x": 0.0, 656 | "y": 0.0, 657 | "z": 0.0, 658 | "w": 0.0 659 | } 660 | } 661 | 662 | { 663 | "m_SGVersion": 0, 664 | "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", 665 | "m_ObjectId": "dc6b8c814bcd455ea664442a17ea0a5d", 666 | "m_Id": 4, 667 | "m_DisplayName": "ShadowAtten", 668 | "m_SlotType": 0, 669 | "m_Hidden": false, 670 | "m_ShaderOutputName": "ShadowAtten", 671 | "m_StageCapability": 3, 672 | "m_Value": 0.0, 673 | "m_DefaultValue": 0.0, 674 | "m_Labels": [] 675 | } 676 | 677 | { 678 | "m_SGVersion": 1, 679 | "m_Type": "UnityEditor.ShaderGraph.Internal.Vector4ShaderProperty", 680 | "m_ObjectId": "f0e0b7c9dc84459b9872e8ec2c4fb3ca", 681 | "m_Guid": { 682 | "m_GuidSerialized": "759c9413-cc1d-418d-861f-42108b837a20" 683 | }, 684 | "m_Name": "Shadowmask", 685 | "m_DefaultRefNameVersion": 1, 686 | "m_RefNameGeneratedByDisplayName": "Shadowmask", 687 | "m_DefaultReferenceName": "_Shadowmask", 688 | "m_OverrideReferenceName": "", 689 | "m_GeneratePropertyBlock": true, 690 | "m_UseCustomSlotLabel": false, 691 | "m_CustomSlotLabel": "", 692 | "m_DismissedVersion": 0, 693 | "m_Precision": 2, 694 | "overrideHLSLDeclaration": false, 695 | "hlslDeclarationOverride": 0, 696 | "m_Hidden": false, 697 | "m_Value": { 698 | "x": 1.0, 699 | "y": 1.0, 700 | "z": 1.0, 701 | "w": 1.0 702 | } 703 | } 704 | 705 | -------------------------------------------------------------------------------- /Examples/ShadowReceiver.shadergraph: -------------------------------------------------------------------------------- 1 | { 2 | "m_SGVersion": 3, 3 | "m_Type": "UnityEditor.ShaderGraph.GraphData", 4 | "m_ObjectId": "29e4d87130e145d6a2102d4ef414aa76", 5 | "m_Properties": [ 6 | { 7 | "m_Id": "ddb4deba1665c2848837f2dee0f96367" 8 | } 9 | ], 10 | "m_Keywords": [], 11 | "m_Dropdowns": [], 12 | "m_CategoryData": [ 13 | { 14 | "m_Id": "5ccb374199114b3080c7a3c06cc9f073" 15 | } 16 | ], 17 | "m_Nodes": [ 18 | { 19 | "m_Id": "b7156b6c180eec83909a21d448e5f0ff" 20 | }, 21 | { 22 | "m_Id": "bcaa6286f8db748fa05184ae9f24de39" 23 | }, 24 | { 25 | "m_Id": "9fd032fbfa178187a186331edf8e300d" 26 | }, 27 | { 28 | "m_Id": "dd7d1a333a8f424d82209a261f8a8bf4" 29 | }, 30 | { 31 | "m_Id": "ca028bd008094db495d08f183d9f8dbd" 32 | }, 33 | { 34 | "m_Id": "ae92dd27c1fb4e34a0a76a7a96086bca" 35 | }, 36 | { 37 | "m_Id": "acd5c3b1d74b419aba4a2744b7b939e3" 38 | }, 39 | { 40 | "m_Id": "03a0b14afdea425a87be983abcc656e3" 41 | }, 42 | { 43 | "m_Id": "1345c3962ad54b1d926409ea4a8f59e5" 44 | } 45 | ], 46 | "m_GroupDatas": [], 47 | "m_StickyNoteDatas": [ 48 | { 49 | "m_Id": "8db3a3ccf5ac4d2b9e9f3015c7f6ca57" 50 | } 51 | ], 52 | "m_Edges": [ 53 | { 54 | "m_OutputSlot": { 55 | "m_Node": { 56 | "m_Id": "9fd032fbfa178187a186331edf8e300d" 57 | }, 58 | "m_SlotId": 1 59 | }, 60 | "m_InputSlot": { 61 | "m_Node": { 62 | "m_Id": "03a0b14afdea425a87be983abcc656e3" 63 | }, 64 | "m_SlotId": 0 65 | } 66 | }, 67 | { 68 | "m_OutputSlot": { 69 | "m_Node": { 70 | "m_Id": "b7156b6c180eec83909a21d448e5f0ff" 71 | }, 72 | "m_SlotId": 0 73 | }, 74 | "m_InputSlot": { 75 | "m_Node": { 76 | "m_Id": "acd5c3b1d74b419aba4a2744b7b939e3" 77 | }, 78 | "m_SlotId": 0 79 | } 80 | }, 81 | { 82 | "m_OutputSlot": { 83 | "m_Node": { 84 | "m_Id": "bcaa6286f8db748fa05184ae9f24de39" 85 | }, 86 | "m_SlotId": 4 87 | }, 88 | "m_InputSlot": { 89 | "m_Node": { 90 | "m_Id": "9fd032fbfa178187a186331edf8e300d" 91 | }, 92 | "m_SlotId": 0 93 | } 94 | } 95 | ], 96 | "m_VertexContext": { 97 | "m_Position": { 98 | "x": -123.99999237060547, 99 | "y": -144.00001525878907 100 | }, 101 | "m_Blocks": [ 102 | { 103 | "m_Id": "dd7d1a333a8f424d82209a261f8a8bf4" 104 | }, 105 | { 106 | "m_Id": "ca028bd008094db495d08f183d9f8dbd" 107 | }, 108 | { 109 | "m_Id": "ae92dd27c1fb4e34a0a76a7a96086bca" 110 | } 111 | ] 112 | }, 113 | "m_FragmentContext": { 114 | "m_Position": { 115 | "x": -123.99999237060547, 116 | "y": 55.99998474121094 117 | }, 118 | "m_Blocks": [ 119 | { 120 | "m_Id": "acd5c3b1d74b419aba4a2744b7b939e3" 121 | }, 122 | { 123 | "m_Id": "03a0b14afdea425a87be983abcc656e3" 124 | }, 125 | { 126 | "m_Id": "1345c3962ad54b1d926409ea4a8f59e5" 127 | } 128 | ] 129 | }, 130 | "m_PreviewData": { 131 | "serializedMesh": { 132 | "m_SerializedMesh": "{\"mesh\":{\"instanceID\":0}}", 133 | "m_Guid": "" 134 | }, 135 | "preventRotation": false 136 | }, 137 | "m_Path": "Shader Graphs", 138 | "m_GraphPrecision": 0, 139 | "m_PreviewMode": 2, 140 | "m_OutputNode": { 141 | "m_Id": "" 142 | }, 143 | "m_SubDatas": [], 144 | "m_ActiveTargets": [ 145 | { 146 | "m_Id": "8e75d3fd6f5047e992cecfedf66b18aa" 147 | } 148 | ] 149 | } 150 | 151 | { 152 | "m_SGVersion": 0, 153 | "m_Type": "UnityEditor.ShaderGraph.BlockNode", 154 | "m_ObjectId": "03a0b14afdea425a87be983abcc656e3", 155 | "m_Group": { 156 | "m_Id": "" 157 | }, 158 | "m_Name": "SurfaceDescription.Alpha", 159 | "m_DrawState": { 160 | "m_Expanded": true, 161 | "m_Position": { 162 | "serializedVersion": "2", 163 | "x": 0.0, 164 | "y": 0.0, 165 | "width": 0.0, 166 | "height": 0.0 167 | } 168 | }, 169 | "m_Slots": [ 170 | { 171 | "m_Id": "bdbbb096db1742928b68859200775950" 172 | } 173 | ], 174 | "synonyms": [], 175 | "m_Precision": 0, 176 | "m_PreviewExpanded": true, 177 | "m_DismissedVersion": 0, 178 | "m_PreviewMode": 0, 179 | "m_CustomColors": { 180 | "m_SerializableColors": [] 181 | }, 182 | "m_SerializedDescriptor": "SurfaceDescription.Alpha" 183 | } 184 | 185 | { 186 | "m_SGVersion": 0, 187 | "m_Type": "UnityEditor.ShaderGraph.BlockNode", 188 | "m_ObjectId": "1345c3962ad54b1d926409ea4a8f59e5", 189 | "m_Group": { 190 | "m_Id": "" 191 | }, 192 | "m_Name": "SurfaceDescription.AlphaClipThreshold", 193 | "m_DrawState": { 194 | "m_Expanded": true, 195 | "m_Position": { 196 | "serializedVersion": "2", 197 | "x": 0.0, 198 | "y": 0.0, 199 | "width": 0.0, 200 | "height": 0.0 201 | } 202 | }, 203 | "m_Slots": [ 204 | { 205 | "m_Id": "aeb0f0d12075460fbd247ee4a7745b86" 206 | } 207 | ], 208 | "synonyms": [], 209 | "m_Precision": 0, 210 | "m_PreviewExpanded": true, 211 | "m_DismissedVersion": 0, 212 | "m_PreviewMode": 0, 213 | "m_CustomColors": { 214 | "m_SerializableColors": [] 215 | }, 216 | "m_SerializedDescriptor": "SurfaceDescription.AlphaClipThreshold" 217 | } 218 | 219 | { 220 | "m_SGVersion": 0, 221 | "m_Type": "UnityEditor.ShaderGraph.ColorRGBMaterialSlot", 222 | "m_ObjectId": "1b7dbff5829e4f19905eac674edb025e", 223 | "m_Id": 0, 224 | "m_DisplayName": "Base Color", 225 | "m_SlotType": 0, 226 | "m_Hidden": false, 227 | "m_ShaderOutputName": "BaseColor", 228 | "m_StageCapability": 2, 229 | "m_Value": { 230 | "x": 0.7353569269180298, 231 | "y": 0.7353569269180298, 232 | "z": 0.7353569269180298 233 | }, 234 | "m_DefaultValue": { 235 | "x": 0.0, 236 | "y": 0.0, 237 | "z": 0.0 238 | }, 239 | "m_Labels": [], 240 | "m_ColorMode": 0, 241 | "m_DefaultColor": { 242 | "r": 0.5, 243 | "g": 0.5, 244 | "b": 0.5, 245 | "a": 1.0 246 | } 247 | } 248 | 249 | { 250 | "m_SGVersion": 0, 251 | "m_Type": "UnityEditor.ShaderGraph.NormalMaterialSlot", 252 | "m_ObjectId": "22c0276bae1d4c9faa73da85e2f7d86d", 253 | "m_Id": 0, 254 | "m_DisplayName": "Normal", 255 | "m_SlotType": 0, 256 | "m_Hidden": false, 257 | "m_ShaderOutputName": "Normal", 258 | "m_StageCapability": 1, 259 | "m_Value": { 260 | "x": 0.0, 261 | "y": 0.0, 262 | "z": 0.0 263 | }, 264 | "m_DefaultValue": { 265 | "x": 0.0, 266 | "y": 0.0, 267 | "z": 0.0 268 | }, 269 | "m_Labels": [], 270 | "m_Space": 0 271 | } 272 | 273 | { 274 | "m_SGVersion": 2, 275 | "m_Type": "UnityEditor.Rendering.Universal.ShaderGraph.UniversalUnlitSubTarget", 276 | "m_ObjectId": "2a6625aaa3ed4cc5bae4c6c3cef6cbe3" 277 | } 278 | 279 | { 280 | "m_SGVersion": 0, 281 | "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", 282 | "m_ObjectId": "50cdf5a71db50e8ca0c12790b7008229", 283 | "m_Id": 4, 284 | "m_DisplayName": "ShadowAtten", 285 | "m_SlotType": 1, 286 | "m_Hidden": false, 287 | "m_ShaderOutputName": "ShadowAtten", 288 | "m_StageCapability": 3, 289 | "m_Value": 0.0, 290 | "m_DefaultValue": 0.0, 291 | "m_Labels": [ 292 | "X" 293 | ] 294 | } 295 | 296 | { 297 | "m_SGVersion": 0, 298 | "m_Type": "UnityEditor.ShaderGraph.CategoryData", 299 | "m_ObjectId": "5ccb374199114b3080c7a3c06cc9f073", 300 | "m_Name": "", 301 | "m_ChildObjectList": [ 302 | { 303 | "m_Id": "ddb4deba1665c2848837f2dee0f96367" 304 | } 305 | ] 306 | } 307 | 308 | { 309 | "m_SGVersion": 0, 310 | "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", 311 | "m_ObjectId": "70ac43b88afc7489848cafb130a0e869", 312 | "m_Id": 1, 313 | "m_DisplayName": "Out", 314 | "m_SlotType": 1, 315 | "m_Hidden": false, 316 | "m_ShaderOutputName": "Out", 317 | "m_StageCapability": 3, 318 | "m_Value": { 319 | "x": 0.0, 320 | "y": 0.0, 321 | "z": 0.0, 322 | "w": 0.0 323 | }, 324 | "m_DefaultValue": { 325 | "x": 0.0, 326 | "y": 0.0, 327 | "z": 0.0, 328 | "w": 0.0 329 | } 330 | } 331 | 332 | { 333 | "m_SGVersion": 0, 334 | "m_Type": "UnityEditor.ShaderGraph.PositionMaterialSlot", 335 | "m_ObjectId": "81fa076018a4408083a6d50cc1e3f1ac", 336 | "m_Id": 0, 337 | "m_DisplayName": "Position", 338 | "m_SlotType": 0, 339 | "m_Hidden": false, 340 | "m_ShaderOutputName": "Position", 341 | "m_StageCapability": 1, 342 | "m_Value": { 343 | "x": 0.0, 344 | "y": 0.0, 345 | "z": 0.0 346 | }, 347 | "m_DefaultValue": { 348 | "x": 0.0, 349 | "y": 0.0, 350 | "z": 0.0 351 | }, 352 | "m_Labels": [], 353 | "m_Space": 0 354 | } 355 | 356 | { 357 | "m_SGVersion": 0, 358 | "m_Type": "UnityEditor.ShaderGraph.StickyNoteData", 359 | "m_ObjectId": "8db3a3ccf5ac4d2b9e9f3015c7f6ca57", 360 | "m_Title": "", 361 | "m_Content": "Used to create transparent objects that can recieve shadows and colour them\n\nRecommended to turn off Cast Shadows on Mesh Renderer", 362 | "m_TextSize": 0, 363 | "m_Theme": 0, 364 | "m_Position": { 365 | "serializedVersion": "2", 366 | "x": -137.0, 367 | "y": 257.0, 368 | "width": 245.0, 369 | "height": 116.0 370 | }, 371 | "m_Group": { 372 | "m_Id": "" 373 | } 374 | } 375 | 376 | { 377 | "m_SGVersion": 1, 378 | "m_Type": "UnityEditor.Rendering.Universal.ShaderGraph.UniversalTarget", 379 | "m_ObjectId": "8e75d3fd6f5047e992cecfedf66b18aa", 380 | "m_Datas": [], 381 | "m_ActiveSubTarget": { 382 | "m_Id": "2a6625aaa3ed4cc5bae4c6c3cef6cbe3" 383 | }, 384 | "m_AllowMaterialOverride": false, 385 | "m_SurfaceType": 1, 386 | "m_ZTestMode": 4, 387 | "m_ZWriteControl": 0, 388 | "m_AlphaMode": 0, 389 | "m_RenderFace": 2, 390 | "m_AlphaClip": false, 391 | "m_CastShadows": true, 392 | "m_ReceiveShadows": true, 393 | "m_DisableTint": false, 394 | "m_AdditionalMotionVectorMode": 0, 395 | "m_AlembicMotionVectors": false, 396 | "m_SupportsLODCrossFade": false, 397 | "m_CustomEditorGUI": "", 398 | "m_SupportVFX": false 399 | } 400 | 401 | { 402 | "m_SGVersion": 0, 403 | "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot", 404 | "m_ObjectId": "8eefb7b5f9143687836e492a24fee881", 405 | "m_Id": 0, 406 | "m_DisplayName": "Color", 407 | "m_SlotType": 1, 408 | "m_Hidden": false, 409 | "m_ShaderOutputName": "Out", 410 | "m_StageCapability": 3, 411 | "m_Value": { 412 | "x": 0.0, 413 | "y": 0.0, 414 | "z": 0.0, 415 | "w": 0.0 416 | }, 417 | "m_DefaultValue": { 418 | "x": 0.0, 419 | "y": 0.0, 420 | "z": 0.0, 421 | "w": 0.0 422 | }, 423 | "m_Labels": [] 424 | } 425 | 426 | { 427 | "m_SGVersion": 0, 428 | "m_Type": "UnityEditor.ShaderGraph.OneMinusNode", 429 | "m_ObjectId": "9fd032fbfa178187a186331edf8e300d", 430 | "m_Group": { 431 | "m_Id": "" 432 | }, 433 | "m_Name": "One Minus", 434 | "m_DrawState": { 435 | "m_Expanded": true, 436 | "m_Position": { 437 | "serializedVersion": "2", 438 | "x": -413.00006103515627, 439 | "y": 142.99998474121095, 440 | "width": 127.99996948242188, 441 | "height": 94.00001525878906 442 | } 443 | }, 444 | "m_Slots": [ 445 | { 446 | "m_Id": "d0fd6e8f9b479d80beb8cfdea726fe29" 447 | }, 448 | { 449 | "m_Id": "70ac43b88afc7489848cafb130a0e869" 450 | } 451 | ], 452 | "synonyms": [ 453 | "complement", 454 | "invert", 455 | "opposite" 456 | ], 457 | "m_Precision": 0, 458 | "m_PreviewExpanded": false, 459 | "m_DismissedVersion": 0, 460 | "m_PreviewMode": 0, 461 | "m_CustomColors": { 462 | "m_SerializableColors": [] 463 | } 464 | } 465 | 466 | { 467 | "m_SGVersion": 0, 468 | "m_Type": "UnityEditor.ShaderGraph.TangentMaterialSlot", 469 | "m_ObjectId": "a2058cb25a0847ff867f3ac2c2f271a3", 470 | "m_Id": 0, 471 | "m_DisplayName": "Tangent", 472 | "m_SlotType": 0, 473 | "m_Hidden": false, 474 | "m_ShaderOutputName": "Tangent", 475 | "m_StageCapability": 1, 476 | "m_Value": { 477 | "x": 0.0, 478 | "y": 0.0, 479 | "z": 0.0 480 | }, 481 | "m_DefaultValue": { 482 | "x": 0.0, 483 | "y": 0.0, 484 | "z": 0.0 485 | }, 486 | "m_Labels": [], 487 | "m_Space": 0 488 | } 489 | 490 | { 491 | "m_SGVersion": 0, 492 | "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot", 493 | "m_ObjectId": "a70af0dab84245d2ae2ecd700dc54e2c", 494 | "m_Id": 69846019, 495 | "m_DisplayName": "Shadowmask", 496 | "m_SlotType": 0, 497 | "m_Hidden": false, 498 | "m_ShaderOutputName": "_Shadowmask", 499 | "m_StageCapability": 3, 500 | "m_Value": { 501 | "x": 1.0, 502 | "y": 1.0, 503 | "z": 1.0, 504 | "w": 1.0 505 | }, 506 | "m_DefaultValue": { 507 | "x": 0.0, 508 | "y": 0.0, 509 | "z": 0.0, 510 | "w": 0.0 511 | }, 512 | "m_Labels": [] 513 | } 514 | 515 | { 516 | "m_SGVersion": 0, 517 | "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", 518 | "m_ObjectId": "a87c55916f4c6488b0052d9d1326b0bb", 519 | "m_Id": 1814696567, 520 | "m_DisplayName": "Position", 521 | "m_SlotType": 0, 522 | "m_Hidden": false, 523 | "m_ShaderOutputName": "Vector3_B87D7B6B", 524 | "m_StageCapability": 3, 525 | "m_Value": { 526 | "x": 0.0, 527 | "y": 0.0, 528 | "z": 0.0 529 | }, 530 | "m_DefaultValue": { 531 | "x": 0.0, 532 | "y": 0.0, 533 | "z": 0.0 534 | }, 535 | "m_Labels": [ 536 | "X", 537 | "Y", 538 | "Z" 539 | ] 540 | } 541 | 542 | { 543 | "m_SGVersion": 0, 544 | "m_Type": "UnityEditor.ShaderGraph.BlockNode", 545 | "m_ObjectId": "acd5c3b1d74b419aba4a2744b7b939e3", 546 | "m_Group": { 547 | "m_Id": "" 548 | }, 549 | "m_Name": "SurfaceDescription.BaseColor", 550 | "m_DrawState": { 551 | "m_Expanded": true, 552 | "m_Position": { 553 | "serializedVersion": "2", 554 | "x": 0.0, 555 | "y": 0.0, 556 | "width": 0.0, 557 | "height": 0.0 558 | } 559 | }, 560 | "m_Slots": [ 561 | { 562 | "m_Id": "1b7dbff5829e4f19905eac674edb025e" 563 | } 564 | ], 565 | "synonyms": [], 566 | "m_Precision": 0, 567 | "m_PreviewExpanded": true, 568 | "m_DismissedVersion": 0, 569 | "m_PreviewMode": 0, 570 | "m_CustomColors": { 571 | "m_SerializableColors": [] 572 | }, 573 | "m_SerializedDescriptor": "SurfaceDescription.BaseColor" 574 | } 575 | 576 | { 577 | "m_SGVersion": 0, 578 | "m_Type": "UnityEditor.ShaderGraph.BlockNode", 579 | "m_ObjectId": "ae92dd27c1fb4e34a0a76a7a96086bca", 580 | "m_Group": { 581 | "m_Id": "" 582 | }, 583 | "m_Name": "VertexDescription.Tangent", 584 | "m_DrawState": { 585 | "m_Expanded": true, 586 | "m_Position": { 587 | "serializedVersion": "2", 588 | "x": 0.0, 589 | "y": 0.0, 590 | "width": 0.0, 591 | "height": 0.0 592 | } 593 | }, 594 | "m_Slots": [ 595 | { 596 | "m_Id": "a2058cb25a0847ff867f3ac2c2f271a3" 597 | } 598 | ], 599 | "synonyms": [], 600 | "m_Precision": 0, 601 | "m_PreviewExpanded": true, 602 | "m_DismissedVersion": 0, 603 | "m_PreviewMode": 0, 604 | "m_CustomColors": { 605 | "m_SerializableColors": [] 606 | }, 607 | "m_SerializedDescriptor": "VertexDescription.Tangent" 608 | } 609 | 610 | { 611 | "m_SGVersion": 0, 612 | "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", 613 | "m_ObjectId": "aeb0f0d12075460fbd247ee4a7745b86", 614 | "m_Id": 0, 615 | "m_DisplayName": "Alpha Clip Threshold", 616 | "m_SlotType": 0, 617 | "m_Hidden": false, 618 | "m_ShaderOutputName": "AlphaClipThreshold", 619 | "m_StageCapability": 2, 620 | "m_Value": 0.0, 621 | "m_DefaultValue": 0.5, 622 | "m_Labels": [] 623 | } 624 | 625 | { 626 | "m_SGVersion": 0, 627 | "m_Type": "UnityEditor.ShaderGraph.PropertyNode", 628 | "m_ObjectId": "b7156b6c180eec83909a21d448e5f0ff", 629 | "m_Group": { 630 | "m_Id": "" 631 | }, 632 | "m_Name": "Property", 633 | "m_DrawState": { 634 | "m_Expanded": true, 635 | "m_Position": { 636 | "serializedVersion": "2", 637 | "x": -399.0000915527344, 638 | "y": 82.0, 639 | "width": 105.0, 640 | "height": 34.00000762939453 641 | } 642 | }, 643 | "m_Slots": [ 644 | { 645 | "m_Id": "8eefb7b5f9143687836e492a24fee881" 646 | } 647 | ], 648 | "synonyms": [], 649 | "m_Precision": 0, 650 | "m_PreviewExpanded": true, 651 | "m_DismissedVersion": 0, 652 | "m_PreviewMode": 0, 653 | "m_CustomColors": { 654 | "m_SerializableColors": [] 655 | }, 656 | "m_Property": { 657 | "m_Id": "ddb4deba1665c2848837f2dee0f96367" 658 | } 659 | } 660 | 661 | { 662 | "m_SGVersion": 0, 663 | "m_Type": "UnityEditor.ShaderGraph.SubGraphNode", 664 | "m_ObjectId": "bcaa6286f8db748fa05184ae9f24de39", 665 | "m_Group": { 666 | "m_Id": "" 667 | }, 668 | "m_Name": "Main Light Shadows", 669 | "m_DrawState": { 670 | "m_Expanded": true, 671 | "m_Position": { 672 | "serializedVersion": "2", 673 | "x": -653.9999389648438, 674 | "y": 143.00001525878907, 675 | "width": 240.99996948242188, 676 | "height": 118.99995422363281 677 | } 678 | }, 679 | "m_Slots": [ 680 | { 681 | "m_Id": "a87c55916f4c6488b0052d9d1326b0bb" 682 | }, 683 | { 684 | "m_Id": "a70af0dab84245d2ae2ecd700dc54e2c" 685 | }, 686 | { 687 | "m_Id": "50cdf5a71db50e8ca0c12790b7008229" 688 | } 689 | ], 690 | "synonyms": [], 691 | "m_Precision": 0, 692 | "m_PreviewExpanded": false, 693 | "m_DismissedVersion": 0, 694 | "m_PreviewMode": 0, 695 | "m_CustomColors": { 696 | "m_SerializableColors": [] 697 | }, 698 | "m_SerializedSubGraph": "{\n \"subGraph\": {\n \"fileID\": -5475051401550479605,\n \"guid\": \"f3ba9248037f69f429d9e52bc2e30940\",\n \"type\": 3\n }\n}", 699 | "m_PropertyGuids": [ 700 | "c7b957cd-dd93-4549-bd10-7676ba0773f3", 701 | "759c9413-cc1d-418d-861f-42108b837a20" 702 | ], 703 | "m_PropertyIds": [ 704 | 1814696567, 705 | 69846019 706 | ], 707 | "m_Dropdowns": [], 708 | "m_DropdownSelectedEntries": [] 709 | } 710 | 711 | { 712 | "m_SGVersion": 0, 713 | "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", 714 | "m_ObjectId": "bdbbb096db1742928b68859200775950", 715 | "m_Id": 0, 716 | "m_DisplayName": "Alpha", 717 | "m_SlotType": 0, 718 | "m_Hidden": false, 719 | "m_ShaderOutputName": "Alpha", 720 | "m_StageCapability": 2, 721 | "m_Value": 1.0, 722 | "m_DefaultValue": 1.0, 723 | "m_Labels": [] 724 | } 725 | 726 | { 727 | "m_SGVersion": 0, 728 | "m_Type": "UnityEditor.ShaderGraph.BlockNode", 729 | "m_ObjectId": "ca028bd008094db495d08f183d9f8dbd", 730 | "m_Group": { 731 | "m_Id": "" 732 | }, 733 | "m_Name": "VertexDescription.Normal", 734 | "m_DrawState": { 735 | "m_Expanded": true, 736 | "m_Position": { 737 | "serializedVersion": "2", 738 | "x": 0.0, 739 | "y": 0.0, 740 | "width": 0.0, 741 | "height": 0.0 742 | } 743 | }, 744 | "m_Slots": [ 745 | { 746 | "m_Id": "22c0276bae1d4c9faa73da85e2f7d86d" 747 | } 748 | ], 749 | "synonyms": [], 750 | "m_Precision": 0, 751 | "m_PreviewExpanded": true, 752 | "m_DismissedVersion": 0, 753 | "m_PreviewMode": 0, 754 | "m_CustomColors": { 755 | "m_SerializableColors": [] 756 | }, 757 | "m_SerializedDescriptor": "VertexDescription.Normal" 758 | } 759 | 760 | { 761 | "m_SGVersion": 0, 762 | "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", 763 | "m_ObjectId": "d0fd6e8f9b479d80beb8cfdea726fe29", 764 | "m_Id": 0, 765 | "m_DisplayName": "In", 766 | "m_SlotType": 0, 767 | "m_Hidden": false, 768 | "m_ShaderOutputName": "In", 769 | "m_StageCapability": 3, 770 | "m_Value": { 771 | "x": 1.0, 772 | "y": 1.0, 773 | "z": 1.0, 774 | "w": 1.0 775 | }, 776 | "m_DefaultValue": { 777 | "x": 0.0, 778 | "y": 0.0, 779 | "z": 0.0, 780 | "w": 0.0 781 | } 782 | } 783 | 784 | { 785 | "m_SGVersion": 0, 786 | "m_Type": "UnityEditor.ShaderGraph.BlockNode", 787 | "m_ObjectId": "dd7d1a333a8f424d82209a261f8a8bf4", 788 | "m_Group": { 789 | "m_Id": "" 790 | }, 791 | "m_Name": "VertexDescription.Position", 792 | "m_DrawState": { 793 | "m_Expanded": true, 794 | "m_Position": { 795 | "serializedVersion": "2", 796 | "x": 0.0, 797 | "y": 0.0, 798 | "width": 0.0, 799 | "height": 0.0 800 | } 801 | }, 802 | "m_Slots": [ 803 | { 804 | "m_Id": "81fa076018a4408083a6d50cc1e3f1ac" 805 | } 806 | ], 807 | "synonyms": [], 808 | "m_Precision": 0, 809 | "m_PreviewExpanded": true, 810 | "m_DismissedVersion": 0, 811 | "m_PreviewMode": 0, 812 | "m_CustomColors": { 813 | "m_SerializableColors": [] 814 | }, 815 | "m_SerializedDescriptor": "VertexDescription.Position" 816 | } 817 | 818 | { 819 | "m_SGVersion": 3, 820 | "m_Type": "UnityEditor.ShaderGraph.Internal.ColorShaderProperty", 821 | "m_ObjectId": "ddb4deba1665c2848837f2dee0f96367", 822 | "m_Guid": { 823 | "m_GuidSerialized": "81878459-0b64-4744-a302-ae3c2a257259" 824 | }, 825 | "m_Name": "Color", 826 | "m_DefaultRefNameVersion": 0, 827 | "m_RefNameGeneratedByDisplayName": "", 828 | "m_DefaultReferenceName": "Color_A34449EB", 829 | "m_OverrideReferenceName": "_ShadowColor", 830 | "m_GeneratePropertyBlock": true, 831 | "m_UseCustomSlotLabel": false, 832 | "m_CustomSlotLabel": "", 833 | "m_DismissedVersion": 0, 834 | "m_Precision": 0, 835 | "overrideHLSLDeclaration": false, 836 | "hlslDeclarationOverride": 0, 837 | "m_Hidden": false, 838 | "m_Value": { 839 | "r": 0.0, 840 | "g": 0.0, 841 | "b": 0.0, 842 | "a": 0.0 843 | }, 844 | "isMainColor": false, 845 | "m_ColorMode": 0 846 | } 847 | 848 | -------------------------------------------------------------------------------- /SubGraphs/Mix Fog.shadersubgraph: -------------------------------------------------------------------------------- 1 | { 2 | "m_SGVersion": 3, 3 | "m_Type": "UnityEditor.ShaderGraph.GraphData", 4 | "m_ObjectId": "0822834bf3894d3ca25f8386ac3262e5", 5 | "m_Properties": [ 6 | { 7 | "m_Id": "554109460d79c082a82201f5a714762d" 8 | } 9 | ], 10 | "m_Keywords": [], 11 | "m_Dropdowns": [], 12 | "m_CategoryData": [ 13 | { 14 | "m_Id": "0c2ba8868cdc45d58f6a26af322939c3" 15 | } 16 | ], 17 | "m_Nodes": [ 18 | { 19 | "m_Id": "0dd3d944ae1acd88993ec1f005feb001" 20 | }, 21 | { 22 | "m_Id": "032ddb8301d70b88853ebd111b8afdfd" 23 | }, 24 | { 25 | "m_Id": "3aa3a2fe14002180a69780750c469074" 26 | }, 27 | { 28 | "m_Id": "7a3e727e0e05aa83a2233697ce2490a7" 29 | }, 30 | { 31 | "m_Id": "9a0da2c9da3142258c690a747c25cf06" 32 | }, 33 | { 34 | "m_Id": "a7d316027c144e29b5450230c92ebf12" 35 | }, 36 | { 37 | "m_Id": "5a05741c9f874e95befc444c7767b89e" 38 | } 39 | ], 40 | "m_GroupDatas": [], 41 | "m_StickyNoteDatas": [ 42 | { 43 | "m_Id": "94b8457f43f24ca1a5884588ab2879ee" 44 | } 45 | ], 46 | "m_Edges": [ 47 | { 48 | "m_OutputSlot": { 49 | "m_Node": { 50 | "m_Id": "032ddb8301d70b88853ebd111b8afdfd" 51 | }, 52 | "m_SlotId": 0 53 | }, 54 | "m_InputSlot": { 55 | "m_Node": { 56 | "m_Id": "3aa3a2fe14002180a69780750c469074" 57 | }, 58 | "m_SlotId": 0 59 | } 60 | }, 61 | { 62 | "m_OutputSlot": { 63 | "m_Node": { 64 | "m_Id": "5a05741c9f874e95befc444c7767b89e" 65 | }, 66 | "m_SlotId": 0 67 | }, 68 | "m_InputSlot": { 69 | "m_Node": { 70 | "m_Id": "a7d316027c144e29b5450230c92ebf12" 71 | }, 72 | "m_SlotId": 0 73 | } 74 | }, 75 | { 76 | "m_OutputSlot": { 77 | "m_Node": { 78 | "m_Id": "7a3e727e0e05aa83a2233697ce2490a7" 79 | }, 80 | "m_SlotId": 1 81 | }, 82 | "m_InputSlot": { 83 | "m_Node": { 84 | "m_Id": "3aa3a2fe14002180a69780750c469074" 85 | }, 86 | "m_SlotId": 1 87 | } 88 | }, 89 | { 90 | "m_OutputSlot": { 91 | "m_Node": { 92 | "m_Id": "9a0da2c9da3142258c690a747c25cf06" 93 | }, 94 | "m_SlotId": 0 95 | }, 96 | "m_InputSlot": { 97 | "m_Node": { 98 | "m_Id": "a7d316027c144e29b5450230c92ebf12" 99 | }, 100 | "m_SlotId": 1 101 | } 102 | }, 103 | { 104 | "m_OutputSlot": { 105 | "m_Node": { 106 | "m_Id": "9a0da2c9da3142258c690a747c25cf06" 107 | }, 108 | "m_SlotId": 1 109 | }, 110 | "m_InputSlot": { 111 | "m_Node": { 112 | "m_Id": "a7d316027c144e29b5450230c92ebf12" 113 | }, 114 | "m_SlotId": 2 115 | } 116 | }, 117 | { 118 | "m_OutputSlot": { 119 | "m_Node": { 120 | "m_Id": "a7d316027c144e29b5450230c92ebf12" 121 | }, 122 | "m_SlotId": 3 123 | }, 124 | "m_InputSlot": { 125 | "m_Node": { 126 | "m_Id": "0dd3d944ae1acd88993ec1f005feb001" 127 | }, 128 | "m_SlotId": 1 129 | } 130 | } 131 | ], 132 | "m_VertexContext": { 133 | "m_Position": { 134 | "x": 192.00001525878907, 135 | "y": -95.0 136 | }, 137 | "m_Blocks": [] 138 | }, 139 | "m_FragmentContext": { 140 | "m_Position": { 141 | "x": 192.00001525878907, 142 | "y": 105.0 143 | }, 144 | "m_Blocks": [] 145 | }, 146 | "m_PreviewData": { 147 | "serializedMesh": { 148 | "m_SerializedMesh": "{\"mesh\":{\"instanceID\":0}}", 149 | "m_Guid": "" 150 | }, 151 | "preventRotation": false 152 | }, 153 | "m_Path": "Custom Lighting", 154 | "m_GraphPrecision": 0, 155 | "m_PreviewMode": 2, 156 | "m_OutputNode": { 157 | "m_Id": "0dd3d944ae1acd88993ec1f005feb001" 158 | }, 159 | "m_SubDatas": [], 160 | "m_ActiveTargets": [] 161 | } 162 | 163 | { 164 | "m_SGVersion": 0, 165 | "m_Type": "UnityEditor.ShaderGraph.PropertyNode", 166 | "m_ObjectId": "032ddb8301d70b88853ebd111b8afdfd", 167 | "m_Group": { 168 | "m_Id": "" 169 | }, 170 | "m_Name": "Property", 171 | "m_DrawState": { 172 | "m_Expanded": true, 173 | "m_Position": { 174 | "serializedVersion": "2", 175 | "x": -217.0000457763672, 176 | "y": -196.0, 177 | "width": 112.0, 178 | "height": 34.00001525878906 179 | } 180 | }, 181 | "m_Slots": [ 182 | { 183 | "m_Id": "621ceb2a8925b684a5f400c6b0da4b46" 184 | } 185 | ], 186 | "synonyms": [], 187 | "m_Precision": 0, 188 | "m_PreviewExpanded": true, 189 | "m_DismissedVersion": 0, 190 | "m_PreviewMode": 0, 191 | "m_CustomColors": { 192 | "m_SerializableColors": [] 193 | }, 194 | "m_Property": { 195 | "m_Id": "554109460d79c082a82201f5a714762d" 196 | } 197 | } 198 | 199 | { 200 | "m_SGVersion": 0, 201 | "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", 202 | "m_ObjectId": "0ace41107bf98581af954154d6f87a90", 203 | "m_Id": 1, 204 | "m_DisplayName": "Density", 205 | "m_SlotType": 1, 206 | "m_Hidden": false, 207 | "m_ShaderOutputName": "Density", 208 | "m_StageCapability": 3, 209 | "m_Value": 0.0, 210 | "m_DefaultValue": 0.0, 211 | "m_Labels": [ 212 | "X" 213 | ] 214 | } 215 | 216 | { 217 | "m_SGVersion": 0, 218 | "m_Type": "UnityEditor.ShaderGraph.CategoryData", 219 | "m_ObjectId": "0c2ba8868cdc45d58f6a26af322939c3", 220 | "m_Name": "", 221 | "m_ChildObjectList": [ 222 | { 223 | "m_Id": "554109460d79c082a82201f5a714762d" 224 | } 225 | ] 226 | } 227 | 228 | { 229 | "m_SGVersion": 0, 230 | "m_Type": "UnityEditor.ShaderGraph.SubGraphOutputNode", 231 | "m_ObjectId": "0dd3d944ae1acd88993ec1f005feb001", 232 | "m_Group": { 233 | "m_Id": "" 234 | }, 235 | "m_Name": "Out_Vector3", 236 | "m_DrawState": { 237 | "m_Expanded": true, 238 | "m_Position": { 239 | "serializedVersion": "2", 240 | "x": 259.0000305175781, 241 | "y": -42.00001907348633, 242 | "width": 117.99993896484375, 243 | "height": 77.00001525878906 244 | } 245 | }, 246 | "m_Slots": [ 247 | { 248 | "m_Id": "3ad280f34b5bde8fb225e6d1868c2d84" 249 | } 250 | ], 251 | "synonyms": [], 252 | "m_Precision": 0, 253 | "m_PreviewExpanded": true, 254 | "m_DismissedVersion": 0, 255 | "m_PreviewMode": 0, 256 | "m_CustomColors": { 257 | "m_SerializableColors": [] 258 | }, 259 | "IsFirstSlotValid": true 260 | } 261 | 262 | { 263 | "m_SGVersion": 0, 264 | "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", 265 | "m_ObjectId": "0fc201ba6769e881ab5c2d648970275d", 266 | "m_Id": 1, 267 | "m_DisplayName": "Fog", 268 | "m_SlotType": 0, 269 | "m_Hidden": false, 270 | "m_ShaderOutputName": "Fog", 271 | "m_StageCapability": 3, 272 | "m_Value": 1.0, 273 | "m_DefaultValue": 0.0, 274 | "m_Labels": [ 275 | "X" 276 | ] 277 | } 278 | 279 | { 280 | "m_SGVersion": 0, 281 | "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", 282 | "m_ObjectId": "15ddf13148a54acd9d16e1d62f11c55d", 283 | "m_Id": 0, 284 | "m_DisplayName": "A", 285 | "m_SlotType": 0, 286 | "m_Hidden": false, 287 | "m_ShaderOutputName": "A", 288 | "m_StageCapability": 3, 289 | "m_Value": { 290 | "x": 0.0, 291 | "y": 0.0, 292 | "z": 0.0, 293 | "w": 0.0 294 | }, 295 | "m_DefaultValue": { 296 | "x": 0.0, 297 | "y": 0.0, 298 | "z": 0.0, 299 | "w": 0.0 300 | } 301 | } 302 | 303 | { 304 | "m_SGVersion": 0, 305 | "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", 306 | "m_ObjectId": "1bd38baafe214b8995a4b6f15b8981d9", 307 | "m_Id": 0, 308 | "m_DisplayName": "Colour", 309 | "m_SlotType": 1, 310 | "m_Hidden": false, 311 | "m_ShaderOutputName": "Out", 312 | "m_StageCapability": 3, 313 | "m_Value": { 314 | "x": 0.0, 315 | "y": 0.0, 316 | "z": 0.0 317 | }, 318 | "m_DefaultValue": { 319 | "x": 0.0, 320 | "y": 0.0, 321 | "z": 0.0 322 | }, 323 | "m_Labels": [ 324 | "X", 325 | "Y", 326 | "Z" 327 | ] 328 | } 329 | 330 | { 331 | "m_SGVersion": 0, 332 | "m_Type": "UnityEditor.ShaderGraph.PositionMaterialSlot", 333 | "m_ObjectId": "2d4fbf31bde6498c81a5bcbef33c4235", 334 | "m_Id": 2, 335 | "m_DisplayName": "Position", 336 | "m_SlotType": 0, 337 | "m_Hidden": false, 338 | "m_ShaderOutputName": "Position", 339 | "m_StageCapability": 3, 340 | "m_Value": { 341 | "x": 0.0, 342 | "y": 0.0, 343 | "z": 0.0 344 | }, 345 | "m_DefaultValue": { 346 | "x": 0.0, 347 | "y": 0.0, 348 | "z": 0.0 349 | }, 350 | "m_Labels": [ 351 | "X", 352 | "Y", 353 | "Z" 354 | ], 355 | "m_Space": 0 356 | } 357 | 358 | { 359 | "m_SGVersion": 1, 360 | "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode", 361 | "m_ObjectId": "3aa3a2fe14002180a69780750c469074", 362 | "m_Group": { 363 | "m_Id": "" 364 | }, 365 | "m_Name": "MixFog (Custom Function)", 366 | "m_DrawState": { 367 | "m_Expanded": true, 368 | "m_Position": { 369 | "serializedVersion": "2", 370 | "x": -73.00003051757813, 371 | "y": -213.0, 372 | "width": 196.00003051757813, 373 | "height": 117.99999237060547 374 | } 375 | }, 376 | "m_Slots": [ 377 | { 378 | "m_Id": "7587ecff3894498195afddb4652f14fc" 379 | }, 380 | { 381 | "m_Id": "3ec0202534713c8b8940c2a3c4825dfd" 382 | }, 383 | { 384 | "m_Id": "0fc201ba6769e881ab5c2d648970275d" 385 | } 386 | ], 387 | "synonyms": [ 388 | "code", 389 | "HLSL" 390 | ], 391 | "m_Precision": 0, 392 | "m_PreviewExpanded": false, 393 | "m_DismissedVersion": 0, 394 | "m_PreviewMode": 0, 395 | "m_CustomColors": { 396 | "m_SerializableColors": [] 397 | }, 398 | "m_SourceType": 0, 399 | "m_FunctionName": "MixFog", 400 | "m_FunctionSource": "5c09ec492074d214fbe1a19781ad15e8", 401 | "m_FunctionSourceUsePragmas": true, 402 | "m_FunctionBody": "#ifdef SHADERGRAPH_PREVIEW\nOut = Colour;\n#else\nOut = MixFog(Colour, Fog);\n#endif" 403 | } 404 | 405 | { 406 | "m_SGVersion": 0, 407 | "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", 408 | "m_ObjectId": "3ad280f34b5bde8fb225e6d1868c2d84", 409 | "m_Id": 1, 410 | "m_DisplayName": "Out", 411 | "m_SlotType": 0, 412 | "m_Hidden": false, 413 | "m_ShaderOutputName": "Out", 414 | "m_StageCapability": 3, 415 | "m_Value": { 416 | "x": 0.0, 417 | "y": 0.0, 418 | "z": 0.0 419 | }, 420 | "m_DefaultValue": { 421 | "x": 0.0, 422 | "y": 0.0, 423 | "z": 0.0 424 | }, 425 | "m_Labels": [ 426 | "X", 427 | "Y", 428 | "Z" 429 | ] 430 | } 431 | 432 | { 433 | "m_SGVersion": 0, 434 | "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", 435 | "m_ObjectId": "3ec0202534713c8b8940c2a3c4825dfd", 436 | "m_Id": 0, 437 | "m_DisplayName": "Colour", 438 | "m_SlotType": 0, 439 | "m_Hidden": false, 440 | "m_ShaderOutputName": "Colour", 441 | "m_StageCapability": 3, 442 | "m_Value": { 443 | "x": 0.0, 444 | "y": 0.0, 445 | "z": 0.0 446 | }, 447 | "m_DefaultValue": { 448 | "x": 0.0, 449 | "y": 0.0, 450 | "z": 0.0 451 | }, 452 | "m_Labels": [ 453 | "X", 454 | "Y", 455 | "Z" 456 | ] 457 | } 458 | 459 | { 460 | "m_SGVersion": 0, 461 | "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", 462 | "m_ObjectId": "44b857f9e3434ccda35727a5c8b1c04d", 463 | "m_Id": 3, 464 | "m_DisplayName": "Out", 465 | "m_SlotType": 1, 466 | "m_Hidden": false, 467 | "m_ShaderOutputName": "Out", 468 | "m_StageCapability": 3, 469 | "m_Value": { 470 | "x": 0.0, 471 | "y": 0.0, 472 | "z": 0.0, 473 | "w": 0.0 474 | }, 475 | "m_DefaultValue": { 476 | "x": 0.0, 477 | "y": 0.0, 478 | "z": 0.0, 479 | "w": 0.0 480 | } 481 | } 482 | 483 | { 484 | "m_SGVersion": 1, 485 | "m_Type": "UnityEditor.ShaderGraph.Internal.Vector3ShaderProperty", 486 | "m_ObjectId": "554109460d79c082a82201f5a714762d", 487 | "m_Guid": { 488 | "m_GuidSerialized": "67a1ace6-abdb-45ee-b1b5-2f6803d10966" 489 | }, 490 | "m_Name": "Colour", 491 | "m_DefaultRefNameVersion": 0, 492 | "m_RefNameGeneratedByDisplayName": "", 493 | "m_DefaultReferenceName": "Vector3_4F58AA3D", 494 | "m_OverrideReferenceName": "", 495 | "m_GeneratePropertyBlock": true, 496 | "m_UseCustomSlotLabel": false, 497 | "m_CustomSlotLabel": "", 498 | "m_DismissedVersion": 0, 499 | "m_Precision": 0, 500 | "overrideHLSLDeclaration": false, 501 | "hlslDeclarationOverride": 0, 502 | "m_Hidden": false, 503 | "m_Value": { 504 | "x": 0.0, 505 | "y": 0.0, 506 | "z": 0.0, 507 | "w": 0.0 508 | } 509 | } 510 | 511 | { 512 | "m_SGVersion": 0, 513 | "m_Type": "UnityEditor.ShaderGraph.PropertyNode", 514 | "m_ObjectId": "5a05741c9f874e95befc444c7767b89e", 515 | "m_Group": { 516 | "m_Id": "" 517 | }, 518 | "m_Name": "Property", 519 | "m_DrawState": { 520 | "m_Expanded": true, 521 | "m_Position": { 522 | "serializedVersion": "2", 523 | "x": -201.0, 524 | "y": 73.9999771118164, 525 | "width": 112.0, 526 | "height": 34.000038146972659 527 | } 528 | }, 529 | "m_Slots": [ 530 | { 531 | "m_Id": "1bd38baafe214b8995a4b6f15b8981d9" 532 | } 533 | ], 534 | "synonyms": [], 535 | "m_Precision": 0, 536 | "m_PreviewExpanded": true, 537 | "m_DismissedVersion": 0, 538 | "m_PreviewMode": 0, 539 | "m_CustomColors": { 540 | "m_SerializableColors": [] 541 | }, 542 | "m_Property": { 543 | "m_Id": "554109460d79c082a82201f5a714762d" 544 | } 545 | } 546 | 547 | { 548 | "m_SGVersion": 0, 549 | "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", 550 | "m_ObjectId": "621ceb2a8925b684a5f400c6b0da4b46", 551 | "m_Id": 0, 552 | "m_DisplayName": "Colour", 553 | "m_SlotType": 1, 554 | "m_Hidden": false, 555 | "m_ShaderOutputName": "Out", 556 | "m_StageCapability": 3, 557 | "m_Value": { 558 | "x": 0.0, 559 | "y": 0.0, 560 | "z": 0.0 561 | }, 562 | "m_DefaultValue": { 563 | "x": 0.0, 564 | "y": 0.0, 565 | "z": 0.0 566 | }, 567 | "m_Labels": [ 568 | "X", 569 | "Y", 570 | "Z" 571 | ] 572 | } 573 | 574 | { 575 | "m_SGVersion": 0, 576 | "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", 577 | "m_ObjectId": "7065a682c206482593ab0f1cec0f0c45", 578 | "m_Id": 1, 579 | "m_DisplayName": "B", 580 | "m_SlotType": 0, 581 | "m_Hidden": false, 582 | "m_ShaderOutputName": "B", 583 | "m_StageCapability": 3, 584 | "m_Value": { 585 | "x": 1.0, 586 | "y": 1.0, 587 | "z": 1.0, 588 | "w": 1.0 589 | }, 590 | "m_DefaultValue": { 591 | "x": 0.0, 592 | "y": 0.0, 593 | "z": 0.0, 594 | "w": 0.0 595 | } 596 | } 597 | 598 | { 599 | "m_SGVersion": 0, 600 | "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", 601 | "m_ObjectId": "7587ecff3894498195afddb4652f14fc", 602 | "m_Id": 2, 603 | "m_DisplayName": "Out", 604 | "m_SlotType": 1, 605 | "m_Hidden": false, 606 | "m_ShaderOutputName": "Out", 607 | "m_StageCapability": 3, 608 | "m_Value": { 609 | "x": 0.0, 610 | "y": 0.0, 611 | "z": 0.0 612 | }, 613 | "m_DefaultValue": { 614 | "x": 0.0, 615 | "y": 0.0, 616 | "z": 0.0 617 | }, 618 | "m_Labels": [ 619 | "X", 620 | "Y", 621 | "Z" 622 | ] 623 | } 624 | 625 | { 626 | "m_SGVersion": 0, 627 | "m_Type": "UnityEditor.ShaderGraph.FogNode", 628 | "m_ObjectId": "7a3e727e0e05aa83a2233697ce2490a7", 629 | "m_Group": { 630 | "m_Id": "" 631 | }, 632 | "m_Name": "Fog", 633 | "m_DrawState": { 634 | "m_Expanded": true, 635 | "m_Position": { 636 | "serializedVersion": "2", 637 | "x": -282.0000305175781, 638 | "y": -140.0, 639 | "width": 182.99998474121095, 640 | "height": 101.00001525878906 641 | } 642 | }, 643 | "m_Slots": [ 644 | { 645 | "m_Id": "9fe30de1a7460d8c93d0baa5ea6aee01" 646 | }, 647 | { 648 | "m_Id": "90611ef81346fb8688cea616aa94a7c4" 649 | }, 650 | { 651 | "m_Id": "0ace41107bf98581af954154d6f87a90" 652 | } 653 | ], 654 | "synonyms": [], 655 | "m_Precision": 0, 656 | "m_PreviewExpanded": true, 657 | "m_DismissedVersion": 0, 658 | "m_PreviewMode": 0, 659 | "m_CustomColors": { 660 | "m_SerializableColors": [] 661 | } 662 | } 663 | 664 | { 665 | "m_SGVersion": 0, 666 | "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", 667 | "m_ObjectId": "8abd1e3fc8cc46c78c1bf245d8d570ae", 668 | "m_Id": 2, 669 | "m_DisplayName": "T", 670 | "m_SlotType": 0, 671 | "m_Hidden": false, 672 | "m_ShaderOutputName": "T", 673 | "m_StageCapability": 3, 674 | "m_Value": { 675 | "x": 0.0, 676 | "y": 0.0, 677 | "z": 0.0, 678 | "w": 0.0 679 | }, 680 | "m_DefaultValue": { 681 | "x": 0.0, 682 | "y": 0.0, 683 | "z": 0.0, 684 | "w": 0.0 685 | } 686 | } 687 | 688 | { 689 | "m_SGVersion": 0, 690 | "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot", 691 | "m_ObjectId": "90611ef81346fb8688cea616aa94a7c4", 692 | "m_Id": 0, 693 | "m_DisplayName": "Color", 694 | "m_SlotType": 1, 695 | "m_Hidden": false, 696 | "m_ShaderOutputName": "Color", 697 | "m_StageCapability": 3, 698 | "m_Value": { 699 | "x": 0.0, 700 | "y": 0.0, 701 | "z": 0.0, 702 | "w": 0.0 703 | }, 704 | "m_DefaultValue": { 705 | "x": 0.0, 706 | "y": 0.0, 707 | "z": 0.0, 708 | "w": 0.0 709 | }, 710 | "m_Labels": [] 711 | } 712 | 713 | { 714 | "m_SGVersion": 0, 715 | "m_Type": "UnityEditor.ShaderGraph.StickyNoteData", 716 | "m_ObjectId": "94b8457f43f24ca1a5884588ab2879ee", 717 | "m_Title": "Update", 718 | "m_Content": "The above is not required for v12+ as I believe the Density value the node outputs has been changed. Can now just Lerp :", 719 | "m_TextSize": 0, 720 | "m_Theme": 0, 721 | "m_Position": { 722 | "serializedVersion": "2", 723 | "x": -64.0, 724 | "y": -46.0, 725 | "width": 200.0, 726 | "height": 100.0 727 | }, 728 | "m_Group": { 729 | "m_Id": "" 730 | } 731 | } 732 | 733 | { 734 | "m_SGVersion": 0, 735 | "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", 736 | "m_ObjectId": "97eb619016ae4768806a407bd193646a", 737 | "m_Id": 1, 738 | "m_DisplayName": "Density", 739 | "m_SlotType": 1, 740 | "m_Hidden": false, 741 | "m_ShaderOutputName": "Density", 742 | "m_StageCapability": 3, 743 | "m_Value": 0.0, 744 | "m_DefaultValue": 0.0, 745 | "m_Labels": [ 746 | "X" 747 | ] 748 | } 749 | 750 | { 751 | "m_SGVersion": 0, 752 | "m_Type": "UnityEditor.ShaderGraph.FogNode", 753 | "m_ObjectId": "9a0da2c9da3142258c690a747c25cf06", 754 | "m_Group": { 755 | "m_Id": "" 756 | }, 757 | "m_Name": "Fog", 758 | "m_DrawState": { 759 | "m_Expanded": true, 760 | "m_Position": { 761 | "serializedVersion": "2", 762 | "x": -272.0, 763 | "y": 117.00000762939453, 764 | "width": 183.0, 765 | "height": 100.99999237060547 766 | } 767 | }, 768 | "m_Slots": [ 769 | { 770 | "m_Id": "2d4fbf31bde6498c81a5bcbef33c4235" 771 | }, 772 | { 773 | "m_Id": "e26d051bf8914522a7ebabe11eac5e35" 774 | }, 775 | { 776 | "m_Id": "97eb619016ae4768806a407bd193646a" 777 | } 778 | ], 779 | "synonyms": [], 780 | "m_Precision": 0, 781 | "m_PreviewExpanded": true, 782 | "m_DismissedVersion": 0, 783 | "m_PreviewMode": 0, 784 | "m_CustomColors": { 785 | "m_SerializableColors": [] 786 | } 787 | } 788 | 789 | { 790 | "m_SGVersion": 0, 791 | "m_Type": "UnityEditor.ShaderGraph.PositionMaterialSlot", 792 | "m_ObjectId": "9fe30de1a7460d8c93d0baa5ea6aee01", 793 | "m_Id": 2, 794 | "m_DisplayName": "Position", 795 | "m_SlotType": 0, 796 | "m_Hidden": false, 797 | "m_ShaderOutputName": "Position", 798 | "m_StageCapability": 3, 799 | "m_Value": { 800 | "x": 0.0, 801 | "y": 0.0, 802 | "z": 0.0 803 | }, 804 | "m_DefaultValue": { 805 | "x": 0.0, 806 | "y": 0.0, 807 | "z": 0.0 808 | }, 809 | "m_Labels": [ 810 | "X", 811 | "Y", 812 | "Z" 813 | ], 814 | "m_Space": 0 815 | } 816 | 817 | { 818 | "m_SGVersion": 0, 819 | "m_Type": "UnityEditor.ShaderGraph.LerpNode", 820 | "m_ObjectId": "a7d316027c144e29b5450230c92ebf12", 821 | "m_Group": { 822 | "m_Id": "" 823 | }, 824 | "m_Name": "Lerp", 825 | "m_DrawState": { 826 | "m_Expanded": true, 827 | "m_Position": { 828 | "serializedVersion": "2", 829 | "x": -50.00001907348633, 830 | "y": 93.0, 831 | "width": 129.99998474121095, 832 | "height": 141.99998474121095 833 | } 834 | }, 835 | "m_Slots": [ 836 | { 837 | "m_Id": "15ddf13148a54acd9d16e1d62f11c55d" 838 | }, 839 | { 840 | "m_Id": "7065a682c206482593ab0f1cec0f0c45" 841 | }, 842 | { 843 | "m_Id": "8abd1e3fc8cc46c78c1bf245d8d570ae" 844 | }, 845 | { 846 | "m_Id": "44b857f9e3434ccda35727a5c8b1c04d" 847 | } 848 | ], 849 | "synonyms": [ 850 | "mix", 851 | "blend", 852 | "linear interpolate" 853 | ], 854 | "m_Precision": 0, 855 | "m_PreviewExpanded": false, 856 | "m_DismissedVersion": 0, 857 | "m_PreviewMode": 0, 858 | "m_CustomColors": { 859 | "m_SerializableColors": [] 860 | } 861 | } 862 | 863 | { 864 | "m_SGVersion": 0, 865 | "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot", 866 | "m_ObjectId": "e26d051bf8914522a7ebabe11eac5e35", 867 | "m_Id": 0, 868 | "m_DisplayName": "Color", 869 | "m_SlotType": 1, 870 | "m_Hidden": false, 871 | "m_ShaderOutputName": "Color", 872 | "m_StageCapability": 3, 873 | "m_Value": { 874 | "x": 0.0, 875 | "y": 0.0, 876 | "z": 0.0, 877 | "w": 0.0 878 | }, 879 | "m_DefaultValue": { 880 | "x": 0.0, 881 | "y": 0.0, 882 | "z": 0.0, 883 | "w": 0.0 884 | }, 885 | "m_Labels": [] 886 | } 887 | 888 | -------------------------------------------------------------------------------- /SubGraphs/Subtractive GI.shadersubgraph: -------------------------------------------------------------------------------- 1 | { 2 | "m_SGVersion": 3, 3 | "m_Type": "UnityEditor.ShaderGraph.GraphData", 4 | "m_ObjectId": "eff4b20c0e674d99b3d5e4691a0192e1", 5 | "m_Properties": [ 6 | { 7 | "m_Id": "413f2a795dc543549f6893c5cb3d4ff5" 8 | }, 9 | { 10 | "m_Id": "1e601d27e633491c9e7c751372c7db70" 11 | }, 12 | { 13 | "m_Id": "a0fd0a9db75649e1a9aadb67fa6e690a" 14 | } 15 | ], 16 | "m_Keywords": [ 17 | { 18 | "m_Id": "46eb1567d4ed4e95bb32bc8456818e88" 19 | } 20 | ], 21 | "m_Dropdowns": [], 22 | "m_CategoryData": [ 23 | { 24 | "m_Id": "57427596f23f4905ab8f244cddea995e" 25 | } 26 | ], 27 | "m_Nodes": [ 28 | { 29 | "m_Id": "35a6d5c021e648458905dcbbee244f07" 30 | }, 31 | { 32 | "m_Id": "138270fd2c9b4e0e910704e0c4e285c9" 33 | }, 34 | { 35 | "m_Id": "73c2dab73c9b4e2286aa976665246998" 36 | }, 37 | { 38 | "m_Id": "c6bfb84a9e7549c895bebea9ca2676ac" 39 | }, 40 | { 41 | "m_Id": "b75dc228f35543bdb982cc24aff494f8" 42 | }, 43 | { 44 | "m_Id": "6b0d9e14512a4df6bb8652b99a3c8458" 45 | }, 46 | { 47 | "m_Id": "c7a95105a9a749468be04d960e77f629" 48 | }, 49 | { 50 | "m_Id": "214f262c89914313910f1b2d23aea29d" 51 | }, 52 | { 53 | "m_Id": "788bfd8991d445b586623f879408c6fd" 54 | } 55 | ], 56 | "m_GroupDatas": [], 57 | "m_StickyNoteDatas": [], 58 | "m_Edges": [ 59 | { 60 | "m_OutputSlot": { 61 | "m_Node": { 62 | "m_Id": "138270fd2c9b4e0e910704e0c4e285c9" 63 | }, 64 | "m_SlotId": 3 65 | }, 66 | "m_InputSlot": { 67 | "m_Node": { 68 | "m_Id": "35a6d5c021e648458905dcbbee244f07" 69 | }, 70 | "m_SlotId": 1 71 | } 72 | }, 73 | { 74 | "m_OutputSlot": { 75 | "m_Node": { 76 | "m_Id": "214f262c89914313910f1b2d23aea29d" 77 | }, 78 | "m_SlotId": 3 79 | }, 80 | "m_InputSlot": { 81 | "m_Node": { 82 | "m_Id": "138270fd2c9b4e0e910704e0c4e285c9" 83 | }, 84 | "m_SlotId": 1 85 | } 86 | }, 87 | { 88 | "m_OutputSlot": { 89 | "m_Node": { 90 | "m_Id": "6b0d9e14512a4df6bb8652b99a3c8458" 91 | }, 92 | "m_SlotId": 1 93 | }, 94 | "m_InputSlot": { 95 | "m_Node": { 96 | "m_Id": "c7a95105a9a749468be04d960e77f629" 97 | }, 98 | "m_SlotId": 2 99 | } 100 | }, 101 | { 102 | "m_OutputSlot": { 103 | "m_Node": { 104 | "m_Id": "73c2dab73c9b4e2286aa976665246998" 105 | }, 106 | "m_SlotId": 0 107 | }, 108 | "m_InputSlot": { 109 | "m_Node": { 110 | "m_Id": "138270fd2c9b4e0e910704e0c4e285c9" 111 | }, 112 | "m_SlotId": 0 113 | } 114 | }, 115 | { 116 | "m_OutputSlot": { 117 | "m_Node": { 118 | "m_Id": "788bfd8991d445b586623f879408c6fd" 119 | }, 120 | "m_SlotId": 0 121 | }, 122 | "m_InputSlot": { 123 | "m_Node": { 124 | "m_Id": "214f262c89914313910f1b2d23aea29d" 125 | }, 126 | "m_SlotId": 2 127 | } 128 | }, 129 | { 130 | "m_OutputSlot": { 131 | "m_Node": { 132 | "m_Id": "b75dc228f35543bdb982cc24aff494f8" 133 | }, 134 | "m_SlotId": 0 135 | }, 136 | "m_InputSlot": { 137 | "m_Node": { 138 | "m_Id": "c7a95105a9a749468be04d960e77f629" 139 | }, 140 | "m_SlotId": 0 141 | } 142 | }, 143 | { 144 | "m_OutputSlot": { 145 | "m_Node": { 146 | "m_Id": "b75dc228f35543bdb982cc24aff494f8" 147 | }, 148 | "m_SlotId": 0 149 | }, 150 | "m_InputSlot": { 151 | "m_Node": { 152 | "m_Id": "c7a95105a9a749468be04d960e77f629" 153 | }, 154 | "m_SlotId": 1 155 | } 156 | }, 157 | { 158 | "m_OutputSlot": { 159 | "m_Node": { 160 | "m_Id": "c6bfb84a9e7549c895bebea9ca2676ac" 161 | }, 162 | "m_SlotId": 0 163 | }, 164 | "m_InputSlot": { 165 | "m_Node": { 166 | "m_Id": "214f262c89914313910f1b2d23aea29d" 167 | }, 168 | "m_SlotId": 0 169 | } 170 | }, 171 | { 172 | "m_OutputSlot": { 173 | "m_Node": { 174 | "m_Id": "c6bfb84a9e7549c895bebea9ca2676ac" 175 | }, 176 | "m_SlotId": 0 177 | }, 178 | "m_InputSlot": { 179 | "m_Node": { 180 | "m_Id": "214f262c89914313910f1b2d23aea29d" 181 | }, 182 | "m_SlotId": 1 183 | } 184 | }, 185 | { 186 | "m_OutputSlot": { 187 | "m_Node": { 188 | "m_Id": "c7a95105a9a749468be04d960e77f629" 189 | }, 190 | "m_SlotId": 3 191 | }, 192 | "m_InputSlot": { 193 | "m_Node": { 194 | "m_Id": "138270fd2c9b4e0e910704e0c4e285c9" 195 | }, 196 | "m_SlotId": 2 197 | } 198 | } 199 | ], 200 | "m_VertexContext": { 201 | "m_Position": { 202 | "x": 0.0, 203 | "y": 0.0 204 | }, 205 | "m_Blocks": [] 206 | }, 207 | "m_FragmentContext": { 208 | "m_Position": { 209 | "x": 0.0, 210 | "y": 0.0 211 | }, 212 | "m_Blocks": [] 213 | }, 214 | "m_PreviewData": { 215 | "serializedMesh": { 216 | "m_SerializedMesh": "{\"mesh\":{\"instanceID\":0}}", 217 | "m_Guid": "" 218 | }, 219 | "preventRotation": false 220 | }, 221 | "m_Path": "Sub Graphs", 222 | "m_GraphPrecision": 0, 223 | "m_PreviewMode": 2, 224 | "m_OutputNode": { 225 | "m_Id": "35a6d5c021e648458905dcbbee244f07" 226 | }, 227 | "m_SubDatas": [], 228 | "m_ActiveTargets": [] 229 | } 230 | 231 | { 232 | "m_SGVersion": 0, 233 | "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", 234 | "m_ObjectId": "02a1ebe52a464884b82ab230452a6c02", 235 | "m_Id": 0, 236 | "m_DisplayName": "ShadowAtten", 237 | "m_SlotType": 1, 238 | "m_Hidden": false, 239 | "m_ShaderOutputName": "Out", 240 | "m_StageCapability": 3, 241 | "m_Value": 0.0, 242 | "m_DefaultValue": 0.0, 243 | "m_Labels": [] 244 | } 245 | 246 | { 247 | "m_SGVersion": 0, 248 | "m_Type": "UnityEditor.ShaderGraph.UVMaterialSlot", 249 | "m_ObjectId": "06b4db0de7714f2ca5bc52acae72a27e", 250 | "m_Id": 4, 251 | "m_DisplayName": "DynamicUV", 252 | "m_SlotType": 0, 253 | "m_Hidden": false, 254 | "m_ShaderOutputName": "DynamicUV", 255 | "m_StageCapability": 3, 256 | "m_Value": { 257 | "x": 0.0, 258 | "y": 0.0 259 | }, 260 | "m_DefaultValue": { 261 | "x": 0.0, 262 | "y": 0.0 263 | }, 264 | "m_Labels": [ 265 | "X", 266 | "Y" 267 | ], 268 | "m_Channel": 2 269 | } 270 | 271 | { 272 | "m_SGVersion": 1, 273 | "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode", 274 | "m_ObjectId": "138270fd2c9b4e0e910704e0c4e285c9", 275 | "m_Group": { 276 | "m_Id": "" 277 | }, 278 | "m_Name": "SubtractiveGI (Custom Function)", 279 | "m_DrawState": { 280 | "m_Expanded": true, 281 | "m_Position": { 282 | "serializedVersion": "2", 283 | "x": -199.00006103515626, 284 | "y": -69.99999237060547, 285 | "width": 232.0, 286 | "height": 326.0 287 | } 288 | }, 289 | "m_Slots": [ 290 | { 291 | "m_Id": "19141e1b17af42a09157bdb106480757" 292 | }, 293 | { 294 | "m_Id": "41791c8dbfc7428cb0eff1d39bdea6e6" 295 | }, 296 | { 297 | "m_Id": "fdc04cd1cb164798850d1a884641a804" 298 | }, 299 | { 300 | "m_Id": "217f4415453e49a2b24ffa96849c164d" 301 | } 302 | ], 303 | "synonyms": [ 304 | "code", 305 | "HLSL" 306 | ], 307 | "m_Precision": 0, 308 | "m_PreviewExpanded": true, 309 | "m_DismissedVersion": 0, 310 | "m_PreviewMode": 0, 311 | "m_CustomColors": { 312 | "m_SerializableColors": [] 313 | }, 314 | "m_SourceType": 0, 315 | "m_FunctionName": "SubtractiveGI", 316 | "m_FunctionSource": "5c09ec492074d214fbe1a19781ad15e8", 317 | "m_FunctionSourceUsePragmas": true, 318 | "m_FunctionBody": "Enter function body here..." 319 | } 320 | 321 | { 322 | "m_SGVersion": 0, 323 | "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", 324 | "m_ObjectId": "19141e1b17af42a09157bdb106480757", 325 | "m_Id": 0, 326 | "m_DisplayName": "ShadowAtten", 327 | "m_SlotType": 0, 328 | "m_Hidden": false, 329 | "m_ShaderOutputName": "ShadowAtten", 330 | "m_StageCapability": 3, 331 | "m_Value": 0.0, 332 | "m_DefaultValue": 0.0, 333 | "m_Labels": [] 334 | } 335 | 336 | { 337 | "m_SGVersion": 1, 338 | "m_Type": "UnityEditor.ShaderGraph.Internal.Vector3ShaderProperty", 339 | "m_ObjectId": "1e601d27e633491c9e7c751372c7db70", 340 | "m_Guid": { 341 | "m_GuidSerialized": "fd5fed0f-5f6f-4b21-8bc8-831930dd1e98" 342 | }, 343 | "m_Name": "Normal", 344 | "m_DefaultRefNameVersion": 1, 345 | "m_RefNameGeneratedByDisplayName": "Normal", 346 | "m_DefaultReferenceName": "_Normal", 347 | "m_OverrideReferenceName": "", 348 | "m_GeneratePropertyBlock": true, 349 | "m_UseCustomSlotLabel": true, 350 | "m_CustomSlotLabel": "World Space", 351 | "m_DismissedVersion": 0, 352 | "m_Precision": 0, 353 | "overrideHLSLDeclaration": false, 354 | "hlslDeclarationOverride": 0, 355 | "m_Hidden": false, 356 | "m_Value": { 357 | "x": 0.0, 358 | "y": 0.0, 359 | "z": 0.0, 360 | "w": 0.0 361 | } 362 | } 363 | 364 | { 365 | "m_SGVersion": 0, 366 | "m_Type": "UnityEditor.ShaderGraph.BranchOnInputConnectionNode", 367 | "m_ObjectId": "214f262c89914313910f1b2d23aea29d", 368 | "m_Group": { 369 | "m_Id": "" 370 | }, 371 | "m_Name": "Branch On Input Connection", 372 | "m_DrawState": { 373 | "m_Expanded": true, 374 | "m_Position": { 375 | "serializedVersion": "2", 376 | "x": -432.0, 377 | "y": -45.9999885559082, 378 | "width": 205.9999542236328, 379 | "height": 141.99998474121095 380 | } 381 | }, 382 | "m_Slots": [ 383 | { 384 | "m_Id": "257f60f88fd84b83968853318ae77592" 385 | }, 386 | { 387 | "m_Id": "95c69324213a4b2e835a60dd53d360f7" 388 | }, 389 | { 390 | "m_Id": "bcf74cb28fce4150a8852e963d02dade" 391 | }, 392 | { 393 | "m_Id": "7bfcb3499fa548febb761932c06a1fec" 394 | } 395 | ], 396 | "synonyms": [], 397 | "m_Precision": 0, 398 | "m_PreviewExpanded": false, 399 | "m_DismissedVersion": 0, 400 | "m_PreviewMode": 0, 401 | "m_CustomColors": { 402 | "m_SerializableColors": [] 403 | } 404 | } 405 | 406 | { 407 | "m_SGVersion": 0, 408 | "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", 409 | "m_ObjectId": "217f4415453e49a2b24ffa96849c164d", 410 | "m_Id": 3, 411 | "m_DisplayName": "Out", 412 | "m_SlotType": 1, 413 | "m_Hidden": false, 414 | "m_ShaderOutputName": "Out", 415 | "m_StageCapability": 3, 416 | "m_Value": { 417 | "x": 0.0, 418 | "y": 0.0, 419 | "z": 0.0 420 | }, 421 | "m_DefaultValue": { 422 | "x": 0.0, 423 | "y": 0.0, 424 | "z": 0.0 425 | }, 426 | "m_Labels": [] 427 | } 428 | 429 | { 430 | "m_SGVersion": 0, 431 | "m_Type": "UnityEditor.ShaderGraph.PropertyConnectionStateMaterialSlot", 432 | "m_ObjectId": "257f60f88fd84b83968853318ae77592", 433 | "m_Id": 0, 434 | "m_DisplayName": "Input", 435 | "m_SlotType": 0, 436 | "m_Hidden": false, 437 | "m_ShaderOutputName": "Input", 438 | "m_StageCapability": 3 439 | } 440 | 441 | { 442 | "m_SGVersion": 0, 443 | "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", 444 | "m_ObjectId": "2d48095ddda646229dd5d690a357fb33", 445 | "m_Id": 1, 446 | "m_DisplayName": "Out_Vector3", 447 | "m_SlotType": 0, 448 | "m_Hidden": false, 449 | "m_ShaderOutputName": "OutVector3", 450 | "m_StageCapability": 3, 451 | "m_Value": { 452 | "x": 0.0, 453 | "y": 0.0, 454 | "z": 0.0 455 | }, 456 | "m_DefaultValue": { 457 | "x": 0.0, 458 | "y": 0.0, 459 | "z": 0.0 460 | }, 461 | "m_Labels": [] 462 | } 463 | 464 | { 465 | "m_SGVersion": 0, 466 | "m_Type": "UnityEditor.ShaderGraph.NormalMaterialSlot", 467 | "m_ObjectId": "34147cb1edd74a2ba65328fbbbeeb19a", 468 | "m_Id": 0, 469 | "m_DisplayName": "NormalWS", 470 | "m_SlotType": 0, 471 | "m_Hidden": false, 472 | "m_ShaderOutputName": "NormalWS", 473 | "m_StageCapability": 3, 474 | "m_Value": { 475 | "x": 0.0, 476 | "y": 0.0, 477 | "z": 0.0 478 | }, 479 | "m_DefaultValue": { 480 | "x": 0.0, 481 | "y": 0.0, 482 | "z": 0.0 483 | }, 484 | "m_Labels": [ 485 | "X", 486 | "Y", 487 | "Z" 488 | ], 489 | "m_Space": 2 490 | } 491 | 492 | { 493 | "m_SGVersion": 0, 494 | "m_Type": "UnityEditor.ShaderGraph.SubGraphOutputNode", 495 | "m_ObjectId": "35a6d5c021e648458905dcbbee244f07", 496 | "m_Group": { 497 | "m_Id": "" 498 | }, 499 | "m_Name": "Output", 500 | "m_DrawState": { 501 | "m_Expanded": true, 502 | "m_Position": { 503 | "serializedVersion": "2", 504 | "x": 32.999969482421878, 505 | "y": -70.0, 506 | "width": 120.99998474121094, 507 | "height": 77.00000762939453 508 | } 509 | }, 510 | "m_Slots": [ 511 | { 512 | "m_Id": "2d48095ddda646229dd5d690a357fb33" 513 | } 514 | ], 515 | "synonyms": [], 516 | "m_Precision": 0, 517 | "m_PreviewExpanded": true, 518 | "m_DismissedVersion": 0, 519 | "m_PreviewMode": 0, 520 | "m_CustomColors": { 521 | "m_SerializableColors": [] 522 | }, 523 | "IsFirstSlotValid": true 524 | } 525 | 526 | { 527 | "m_SGVersion": 1, 528 | "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty", 529 | "m_ObjectId": "413f2a795dc543549f6893c5cb3d4ff5", 530 | "m_Guid": { 531 | "m_GuidSerialized": "1d36f5d9-2cd3-415a-bbf5-a2df5d1ee4c2" 532 | }, 533 | "m_Name": "ShadowAtten", 534 | "m_DefaultRefNameVersion": 1, 535 | "m_RefNameGeneratedByDisplayName": "ShadowAtten", 536 | "m_DefaultReferenceName": "_ShadowAtten", 537 | "m_OverrideReferenceName": "", 538 | "m_GeneratePropertyBlock": true, 539 | "m_UseCustomSlotLabel": false, 540 | "m_CustomSlotLabel": "", 541 | "m_DismissedVersion": 0, 542 | "m_Precision": 0, 543 | "overrideHLSLDeclaration": false, 544 | "hlslDeclarationOverride": 0, 545 | "m_Hidden": false, 546 | "m_Value": 0.0, 547 | "m_FloatType": 0, 548 | "m_RangeValues": { 549 | "x": 0.0, 550 | "y": 1.0 551 | } 552 | } 553 | 554 | { 555 | "m_SGVersion": 0, 556 | "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", 557 | "m_ObjectId": "41791c8dbfc7428cb0eff1d39bdea6e6", 558 | "m_Id": 1, 559 | "m_DisplayName": "NormalWS", 560 | "m_SlotType": 0, 561 | "m_Hidden": false, 562 | "m_ShaderOutputName": "NormalWS", 563 | "m_StageCapability": 3, 564 | "m_Value": { 565 | "x": 0.0, 566 | "y": 0.0, 567 | "z": 0.0 568 | }, 569 | "m_DefaultValue": { 570 | "x": 0.0, 571 | "y": 0.0, 572 | "z": 0.0 573 | }, 574 | "m_Labels": [] 575 | } 576 | 577 | { 578 | "m_SGVersion": 1, 579 | "m_Type": "UnityEditor.ShaderGraph.ShaderKeyword", 580 | "m_ObjectId": "46eb1567d4ed4e95bb32bc8456818e88", 581 | "m_Guid": { 582 | "m_GuidSerialized": "8a237b8b-0962-47e4-8a46-0459275150e6" 583 | }, 584 | "m_Name": "LIGHTMAP_SHADOW_MIXING", 585 | "m_DefaultRefNameVersion": 1, 586 | "m_RefNameGeneratedByDisplayName": "LIGHTMAP_SHADOW_MIXING", 587 | "m_DefaultReferenceName": "_LIGHTMAP_SHADOW_MIXING", 588 | "m_OverrideReferenceName": "", 589 | "m_GeneratePropertyBlock": true, 590 | "m_UseCustomSlotLabel": false, 591 | "m_CustomSlotLabel": "", 592 | "m_DismissedVersion": 0, 593 | "m_KeywordType": 0, 594 | "m_KeywordDefinition": 1, 595 | "m_KeywordScope": 1, 596 | "m_KeywordStages": 63, 597 | "m_Entries": [], 598 | "m_Value": 0, 599 | "m_IsEditable": true 600 | } 601 | 602 | { 603 | "m_SGVersion": 0, 604 | "m_Type": "UnityEditor.ShaderGraph.UVMaterialSlot", 605 | "m_ObjectId": "49423d01c4fd4a22a71b73976f0243bf", 606 | "m_Id": 3, 607 | "m_DisplayName": "StaticUV", 608 | "m_SlotType": 0, 609 | "m_Hidden": false, 610 | "m_ShaderOutputName": "StaticUV", 611 | "m_StageCapability": 3, 612 | "m_Value": { 613 | "x": 0.0, 614 | "y": 0.0 615 | }, 616 | "m_DefaultValue": { 617 | "x": 0.0, 618 | "y": 0.0 619 | }, 620 | "m_Labels": [ 621 | "X", 622 | "Y" 623 | ], 624 | "m_Channel": 1 625 | } 626 | 627 | { 628 | "m_SGVersion": 0, 629 | "m_Type": "UnityEditor.ShaderGraph.CategoryData", 630 | "m_ObjectId": "57427596f23f4905ab8f244cddea995e", 631 | "m_Name": "", 632 | "m_ChildObjectList": [ 633 | { 634 | "m_Id": "413f2a795dc543549f6893c5cb3d4ff5" 635 | }, 636 | { 637 | "m_Id": "1e601d27e633491c9e7c751372c7db70" 638 | }, 639 | { 640 | "m_Id": "a0fd0a9db75649e1a9aadb67fa6e690a" 641 | }, 642 | { 643 | "m_Id": "46eb1567d4ed4e95bb32bc8456818e88" 644 | } 645 | ] 646 | } 647 | 648 | { 649 | "m_SGVersion": 0, 650 | "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", 651 | "m_ObjectId": "5f50ccabc3264aa796af6078efa4a678", 652 | "m_Id": 0, 653 | "m_DisplayName": "Out", 654 | "m_SlotType": 1, 655 | "m_Hidden": false, 656 | "m_ShaderOutputName": "Out", 657 | "m_StageCapability": 3, 658 | "m_Value": { 659 | "x": 0.0, 660 | "y": 0.0, 661 | "z": 1.0 662 | }, 663 | "m_DefaultValue": { 664 | "x": 0.0, 665 | "y": 0.0, 666 | "z": 1.0 667 | }, 668 | "m_Labels": [] 669 | } 670 | 671 | { 672 | "m_SGVersion": 0, 673 | "m_Type": "UnityEditor.ShaderGraph.BakedGINode", 674 | "m_ObjectId": "6b0d9e14512a4df6bb8652b99a3c8458", 675 | "m_Group": { 676 | "m_Id": "" 677 | }, 678 | "m_Name": "Baked GI", 679 | "m_DrawState": { 680 | "m_Expanded": true, 681 | "m_Position": { 682 | "serializedVersion": "2", 683 | "x": -644.0, 684 | "y": 216.0, 685 | "width": 185.99996948242188, 686 | "height": 183.99996948242188 687 | } 688 | }, 689 | "m_Slots": [ 690 | { 691 | "m_Id": "ae345d567cff46208b4ca278b0f039be" 692 | }, 693 | { 694 | "m_Id": "34147cb1edd74a2ba65328fbbbeeb19a" 695 | }, 696 | { 697 | "m_Id": "49423d01c4fd4a22a71b73976f0243bf" 698 | }, 699 | { 700 | "m_Id": "06b4db0de7714f2ca5bc52acae72a27e" 701 | }, 702 | { 703 | "m_Id": "9bb37fbd87d24bcc9b52caa0bf886168" 704 | } 705 | ], 706 | "synonyms": [ 707 | "global illumination" 708 | ], 709 | "m_Precision": 0, 710 | "m_PreviewExpanded": true, 711 | "m_DismissedVersion": 0, 712 | "m_PreviewMode": 0, 713 | "m_CustomColors": { 714 | "m_SerializableColors": [] 715 | }, 716 | "m_ApplyScaling": true 717 | } 718 | 719 | { 720 | "m_SGVersion": 0, 721 | "m_Type": "UnityEditor.ShaderGraph.PropertyNode", 722 | "m_ObjectId": "73c2dab73c9b4e2286aa976665246998", 723 | "m_Group": { 724 | "m_Id": "" 725 | }, 726 | "m_Name": "Property", 727 | "m_DrawState": { 728 | "m_Expanded": true, 729 | "m_Position": { 730 | "serializedVersion": "2", 731 | "x": -360.0000305175781, 732 | "y": -82.0, 733 | "width": 145.9999542236328, 734 | "height": 33.999996185302737 735 | } 736 | }, 737 | "m_Slots": [ 738 | { 739 | "m_Id": "02a1ebe52a464884b82ab230452a6c02" 740 | } 741 | ], 742 | "synonyms": [], 743 | "m_Precision": 0, 744 | "m_PreviewExpanded": true, 745 | "m_DismissedVersion": 0, 746 | "m_PreviewMode": 0, 747 | "m_CustomColors": { 748 | "m_SerializableColors": [] 749 | }, 750 | "m_Property": { 751 | "m_Id": "413f2a795dc543549f6893c5cb3d4ff5" 752 | } 753 | } 754 | 755 | { 756 | "m_SGVersion": 0, 757 | "m_Type": "UnityEditor.ShaderGraph.NormalVectorNode", 758 | "m_ObjectId": "788bfd8991d445b586623f879408c6fd", 759 | "m_Group": { 760 | "m_Id": "" 761 | }, 762 | "m_Name": "Normal Vector", 763 | "m_DrawState": { 764 | "m_Expanded": true, 765 | "m_Position": { 766 | "serializedVersion": "2", 767 | "x": -664.0, 768 | "y": 29.0, 769 | "width": 206.0, 770 | "height": 131.00001525878907 771 | } 772 | }, 773 | "m_Slots": [ 774 | { 775 | "m_Id": "5f50ccabc3264aa796af6078efa4a678" 776 | } 777 | ], 778 | "synonyms": [ 779 | "surface direction" 780 | ], 781 | "m_Precision": 0, 782 | "m_PreviewExpanded": false, 783 | "m_DismissedVersion": 0, 784 | "m_PreviewMode": 2, 785 | "m_CustomColors": { 786 | "m_SerializableColors": [] 787 | }, 788 | "m_Space": 2 789 | } 790 | 791 | { 792 | "m_SGVersion": 0, 793 | "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", 794 | "m_ObjectId": "7bfcb3499fa548febb761932c06a1fec", 795 | "m_Id": 3, 796 | "m_DisplayName": "Out", 797 | "m_SlotType": 1, 798 | "m_Hidden": false, 799 | "m_ShaderOutputName": "Out", 800 | "m_StageCapability": 3, 801 | "m_Value": { 802 | "x": 0.0, 803 | "y": 0.0, 804 | "z": 0.0, 805 | "w": 0.0 806 | }, 807 | "m_DefaultValue": { 808 | "x": 0.0, 809 | "y": 0.0, 810 | "z": 0.0, 811 | "w": 0.0 812 | } 813 | } 814 | 815 | { 816 | "m_SGVersion": 0, 817 | "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", 818 | "m_ObjectId": "834ccd7ee35f46bfa36e8b79cce52929", 819 | "m_Id": 3, 820 | "m_DisplayName": "Out", 821 | "m_SlotType": 1, 822 | "m_Hidden": false, 823 | "m_ShaderOutputName": "Out", 824 | "m_StageCapability": 3, 825 | "m_Value": { 826 | "x": 0.0, 827 | "y": 0.0, 828 | "z": 0.0, 829 | "w": 0.0 830 | }, 831 | "m_DefaultValue": { 832 | "x": 0.0, 833 | "y": 0.0, 834 | "z": 0.0, 835 | "w": 0.0 836 | } 837 | } 838 | 839 | { 840 | "m_SGVersion": 0, 841 | "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", 842 | "m_ObjectId": "95c69324213a4b2e835a60dd53d360f7", 843 | "m_Id": 1, 844 | "m_DisplayName": "Connected", 845 | "m_SlotType": 0, 846 | "m_Hidden": false, 847 | "m_ShaderOutputName": "Connected", 848 | "m_StageCapability": 3, 849 | "m_Value": { 850 | "x": 1.0, 851 | "y": 1.0, 852 | "z": 1.0, 853 | "w": 1.0 854 | }, 855 | "m_DefaultValue": { 856 | "x": 0.0, 857 | "y": 0.0, 858 | "z": 0.0, 859 | "w": 0.0 860 | } 861 | } 862 | 863 | { 864 | "m_SGVersion": 0, 865 | "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", 866 | "m_ObjectId": "9bb37fbd87d24bcc9b52caa0bf886168", 867 | "m_Id": 1, 868 | "m_DisplayName": "Out", 869 | "m_SlotType": 1, 870 | "m_Hidden": false, 871 | "m_ShaderOutputName": "Out", 872 | "m_StageCapability": 3, 873 | "m_Value": { 874 | "x": 0.0, 875 | "y": 0.0, 876 | "z": 0.0 877 | }, 878 | "m_DefaultValue": { 879 | "x": 0.0, 880 | "y": 0.0, 881 | "z": 0.0 882 | }, 883 | "m_Labels": [ 884 | "X", 885 | "Y", 886 | "Z" 887 | ] 888 | } 889 | 890 | { 891 | "m_SGVersion": 0, 892 | "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", 893 | "m_ObjectId": "9fdc7ff77a7544f8bc7803efb95a4437", 894 | "m_Id": 0, 895 | "m_DisplayName": "BakedGI", 896 | "m_SlotType": 1, 897 | "m_Hidden": false, 898 | "m_ShaderOutputName": "Out", 899 | "m_StageCapability": 3, 900 | "m_Value": { 901 | "x": 0.0, 902 | "y": 0.0, 903 | "z": 0.0 904 | }, 905 | "m_DefaultValue": { 906 | "x": 0.0, 907 | "y": 0.0, 908 | "z": 0.0 909 | }, 910 | "m_Labels": [] 911 | } 912 | 913 | { 914 | "m_SGVersion": 1, 915 | "m_Type": "UnityEditor.ShaderGraph.Internal.Vector3ShaderProperty", 916 | "m_ObjectId": "a0fd0a9db75649e1a9aadb67fa6e690a", 917 | "m_Guid": { 918 | "m_GuidSerialized": "41efe795-a925-47e0-b8e0-1bdd2e8e1466" 919 | }, 920 | "m_Name": "BakedGI", 921 | "m_DefaultRefNameVersion": 1, 922 | "m_RefNameGeneratedByDisplayName": "BakedGI", 923 | "m_DefaultReferenceName": "_BakedGI", 924 | "m_OverrideReferenceName": "", 925 | "m_GeneratePropertyBlock": true, 926 | "m_UseCustomSlotLabel": true, 927 | "m_CustomSlotLabel": "BakedGI", 928 | "m_DismissedVersion": 0, 929 | "m_Precision": 0, 930 | "overrideHLSLDeclaration": false, 931 | "hlslDeclarationOverride": 0, 932 | "m_Hidden": false, 933 | "m_Value": { 934 | "x": 1.0, 935 | "y": 1.0, 936 | "z": 1.0, 937 | "w": 0.0 938 | } 939 | } 940 | 941 | { 942 | "m_SGVersion": 0, 943 | "m_Type": "UnityEditor.ShaderGraph.PositionMaterialSlot", 944 | "m_ObjectId": "ae345d567cff46208b4ca278b0f039be", 945 | "m_Id": 2, 946 | "m_DisplayName": "PositionWS", 947 | "m_SlotType": 0, 948 | "m_Hidden": false, 949 | "m_ShaderOutputName": "PositionWS", 950 | "m_StageCapability": 3, 951 | "m_Value": { 952 | "x": 0.0, 953 | "y": 0.0, 954 | "z": 0.0 955 | }, 956 | "m_DefaultValue": { 957 | "x": 0.0, 958 | "y": 0.0, 959 | "z": 0.0 960 | }, 961 | "m_Labels": [ 962 | "X", 963 | "Y", 964 | "Z" 965 | ], 966 | "m_Space": 2 967 | } 968 | 969 | { 970 | "m_SGVersion": 0, 971 | "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", 972 | "m_ObjectId": "b6a09bf5dbdb4f5ca44ca76f1ef19e08", 973 | "m_Id": 1, 974 | "m_DisplayName": "Connected", 975 | "m_SlotType": 0, 976 | "m_Hidden": false, 977 | "m_ShaderOutputName": "Connected", 978 | "m_StageCapability": 3, 979 | "m_Value": { 980 | "x": 1.0, 981 | "y": 1.0, 982 | "z": 1.0, 983 | "w": 1.0 984 | }, 985 | "m_DefaultValue": { 986 | "x": 0.0, 987 | "y": 0.0, 988 | "z": 0.0, 989 | "w": 0.0 990 | } 991 | } 992 | 993 | { 994 | "m_SGVersion": 0, 995 | "m_Type": "UnityEditor.ShaderGraph.PropertyNode", 996 | "m_ObjectId": "b75dc228f35543bdb982cc24aff494f8", 997 | "m_Group": { 998 | "m_Id": "" 999 | }, 1000 | "m_Name": "Property", 1001 | "m_DrawState": { 1002 | "m_Expanded": true, 1003 | "m_Position": { 1004 | "serializedVersion": "2", 1005 | "x": -579.0, 1006 | "y": 172.0, 1007 | "width": 120.99996948242188, 1008 | "height": 34.0 1009 | } 1010 | }, 1011 | "m_Slots": [ 1012 | { 1013 | "m_Id": "9fdc7ff77a7544f8bc7803efb95a4437" 1014 | } 1015 | ], 1016 | "synonyms": [], 1017 | "m_Precision": 0, 1018 | "m_PreviewExpanded": true, 1019 | "m_DismissedVersion": 0, 1020 | "m_PreviewMode": 0, 1021 | "m_CustomColors": { 1022 | "m_SerializableColors": [] 1023 | }, 1024 | "m_Property": { 1025 | "m_Id": "a0fd0a9db75649e1a9aadb67fa6e690a" 1026 | } 1027 | } 1028 | 1029 | { 1030 | "m_SGVersion": 0, 1031 | "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", 1032 | "m_ObjectId": "bcf74cb28fce4150a8852e963d02dade", 1033 | "m_Id": 2, 1034 | "m_DisplayName": "NotConnected", 1035 | "m_SlotType": 0, 1036 | "m_Hidden": false, 1037 | "m_ShaderOutputName": "NotConnected", 1038 | "m_StageCapability": 3, 1039 | "m_Value": { 1040 | "x": 0.0, 1041 | "y": 0.0, 1042 | "z": 0.0, 1043 | "w": 0.0 1044 | }, 1045 | "m_DefaultValue": { 1046 | "x": 0.0, 1047 | "y": 0.0, 1048 | "z": 0.0, 1049 | "w": 0.0 1050 | } 1051 | } 1052 | 1053 | { 1054 | "m_SGVersion": 0, 1055 | "m_Type": "UnityEditor.ShaderGraph.PropertyNode", 1056 | "m_ObjectId": "c6bfb84a9e7549c895bebea9ca2676ac", 1057 | "m_Group": { 1058 | "m_Id": "" 1059 | }, 1060 | "m_Name": "Property", 1061 | "m_DrawState": { 1062 | "m_Expanded": true, 1063 | "m_Position": { 1064 | "serializedVersion": "2", 1065 | "x": -574.0, 1066 | "y": -5.999999523162842, 1067 | "width": 115.0, 1068 | "height": 34.0 1069 | } 1070 | }, 1071 | "m_Slots": [ 1072 | { 1073 | "m_Id": "f786a2bb5c8e4e85baa63c4c1bc973c3" 1074 | } 1075 | ], 1076 | "synonyms": [], 1077 | "m_Precision": 0, 1078 | "m_PreviewExpanded": true, 1079 | "m_DismissedVersion": 0, 1080 | "m_PreviewMode": 0, 1081 | "m_CustomColors": { 1082 | "m_SerializableColors": [] 1083 | }, 1084 | "m_Property": { 1085 | "m_Id": "1e601d27e633491c9e7c751372c7db70" 1086 | } 1087 | } 1088 | 1089 | { 1090 | "m_SGVersion": 0, 1091 | "m_Type": "UnityEditor.ShaderGraph.BranchOnInputConnectionNode", 1092 | "m_ObjectId": "c7a95105a9a749468be04d960e77f629", 1093 | "m_Group": { 1094 | "m_Id": "" 1095 | }, 1096 | "m_Name": "Branch On Input Connection", 1097 | "m_DrawState": { 1098 | "m_Expanded": true, 1099 | "m_Position": { 1100 | "serializedVersion": "2", 1101 | "x": -432.0000305175781, 1102 | "y": 131.99998474121095, 1103 | "width": 206.0, 1104 | "height": 142.00001525878907 1105 | } 1106 | }, 1107 | "m_Slots": [ 1108 | { 1109 | "m_Id": "f7e6140d92b44366a9de853770a8812a" 1110 | }, 1111 | { 1112 | "m_Id": "b6a09bf5dbdb4f5ca44ca76f1ef19e08" 1113 | }, 1114 | { 1115 | "m_Id": "cc5cd1830d434658b0476f655d7a2b56" 1116 | }, 1117 | { 1118 | "m_Id": "834ccd7ee35f46bfa36e8b79cce52929" 1119 | } 1120 | ], 1121 | "synonyms": [], 1122 | "m_Precision": 0, 1123 | "m_PreviewExpanded": false, 1124 | "m_DismissedVersion": 0, 1125 | "m_PreviewMode": 0, 1126 | "m_CustomColors": { 1127 | "m_SerializableColors": [] 1128 | } 1129 | } 1130 | 1131 | { 1132 | "m_SGVersion": 0, 1133 | "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", 1134 | "m_ObjectId": "cc5cd1830d434658b0476f655d7a2b56", 1135 | "m_Id": 2, 1136 | "m_DisplayName": "NotConnected", 1137 | "m_SlotType": 0, 1138 | "m_Hidden": false, 1139 | "m_ShaderOutputName": "NotConnected", 1140 | "m_StageCapability": 3, 1141 | "m_Value": { 1142 | "x": 0.0, 1143 | "y": 0.0, 1144 | "z": 0.0, 1145 | "w": 0.0 1146 | }, 1147 | "m_DefaultValue": { 1148 | "x": 0.0, 1149 | "y": 0.0, 1150 | "z": 0.0, 1151 | "w": 0.0 1152 | } 1153 | } 1154 | 1155 | { 1156 | "m_SGVersion": 0, 1157 | "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", 1158 | "m_ObjectId": "f786a2bb5c8e4e85baa63c4c1bc973c3", 1159 | "m_Id": 0, 1160 | "m_DisplayName": "Normal", 1161 | "m_SlotType": 1, 1162 | "m_Hidden": false, 1163 | "m_ShaderOutputName": "Out", 1164 | "m_StageCapability": 3, 1165 | "m_Value": { 1166 | "x": 0.0, 1167 | "y": 0.0, 1168 | "z": 0.0 1169 | }, 1170 | "m_DefaultValue": { 1171 | "x": 0.0, 1172 | "y": 0.0, 1173 | "z": 0.0 1174 | }, 1175 | "m_Labels": [] 1176 | } 1177 | 1178 | { 1179 | "m_SGVersion": 0, 1180 | "m_Type": "UnityEditor.ShaderGraph.PropertyConnectionStateMaterialSlot", 1181 | "m_ObjectId": "f7e6140d92b44366a9de853770a8812a", 1182 | "m_Id": 0, 1183 | "m_DisplayName": "Input", 1184 | "m_SlotType": 0, 1185 | "m_Hidden": false, 1186 | "m_ShaderOutputName": "Input", 1187 | "m_StageCapability": 3 1188 | } 1189 | 1190 | { 1191 | "m_SGVersion": 0, 1192 | "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", 1193 | "m_ObjectId": "fdc04cd1cb164798850d1a884641a804", 1194 | "m_Id": 2, 1195 | "m_DisplayName": "BakedGI", 1196 | "m_SlotType": 0, 1197 | "m_Hidden": false, 1198 | "m_ShaderOutputName": "BakedGI", 1199 | "m_StageCapability": 3, 1200 | "m_Value": { 1201 | "x": 0.0, 1202 | "y": 0.0, 1203 | "z": 0.0 1204 | }, 1205 | "m_DefaultValue": { 1206 | "x": 0.0, 1207 | "y": 0.0, 1208 | "z": 0.0 1209 | }, 1210 | "m_Labels": [] 1211 | } 1212 | 1213 | --------------------------------------------------------------------------------