├── .gitattributes ├── .gitignore ├── Assets ├── Geometry Shader Examples.meta ├── Geometry Shader Examples │ ├── Editor.meta │ ├── Editor │ │ ├── ShaderGUI.meta │ │ └── ShaderGUI │ │ │ ├── ExtrudeGUI.cs │ │ │ ├── ExtrudeGUI.cs.meta │ │ │ ├── Shaders.meta │ │ │ ├── Shaders │ │ │ ├── ExtrudeLitShader.cs │ │ │ ├── ExtrudeLitShader.cs.meta │ │ │ ├── LowPolyLitShader.cs │ │ │ ├── LowPolyLitShader.cs.meta │ │ │ ├── TessellationLitShader.cs │ │ │ ├── TessellationLitShader.cs.meta │ │ │ ├── WireframeLitShader.cs │ │ │ ├── WireframeLitShader.cs.meta │ │ │ ├── WireframeUnlitShader.cs │ │ │ └── WireframeUnlitShader.cs.meta │ │ │ ├── ShadingModels.meta │ │ │ ├── ShadingModels │ │ │ ├── LowPolyLitGUI.cs │ │ │ └── LowPolyLitGUI.cs.meta │ │ │ ├── TessellationGUI.cs │ │ │ ├── TessellationGUI.cs.meta │ │ │ ├── WireframeGUI.cs │ │ │ └── WireframeGUI.cs.meta │ ├── Extrude.meta │ ├── Extrude │ │ ├── ExtrudeDepthOnlyPass.hlsl │ │ ├── ExtrudeDepthOnlyPass.hlsl.meta │ │ ├── ExtrudeGeometryPass.hlsl │ │ ├── ExtrudeGeometryPass.hlsl.meta │ │ ├── ExtrudeLit.shader │ │ ├── ExtrudeLit.shader.meta │ │ ├── ExtrudeLitForwardPass.hlsl │ │ ├── ExtrudeLitForwardPass.hlsl.meta │ │ ├── ExtrudeLitInput.hlsl │ │ ├── ExtrudeLitInput.hlsl.meta │ │ ├── ExtrudeShadowCasterPass.hlsl │ │ └── ExtrudeShadowCasterPass.hlsl.meta │ ├── LowPoly.meta │ ├── LowPoly │ │ ├── LowPolyLit.shader │ │ ├── LowPolyLit.shader.meta │ │ ├── LowPolyLitForwardPass.hlsl │ │ ├── LowPolyLitForwardPass.hlsl.meta │ │ ├── LowPolyLitInput.hlsl │ │ ├── LowPolyLitInput.hlsl.meta │ │ ├── LowPolyShadowCasterPass.hlsl │ │ └── LowPolyShadowCasterPass.hlsl.meta │ ├── Materials.meta │ ├── Materials │ │ ├── Extrude.mat │ │ ├── Extrude.mat.meta │ │ ├── LowPoly Sci-Fi_Helmet.mat │ │ ├── LowPoly Sci-Fi_Helmet.mat.meta │ │ ├── Wireframe Teapot.mat │ │ └── Wireframe Teapot.mat.meta │ ├── Tessellation.meta │ ├── Tessellation │ │ ├── TessellationCommon.hlsl │ │ ├── TessellationCommon.hlsl.meta │ │ ├── TessellationDepthOnlyPass.hlsl │ │ ├── TessellationDepthOnlyPass.hlsl.meta │ │ ├── TessellationLit.shader │ │ ├── TessellationLit.shader.meta │ │ ├── TessellationLitForwardPass.hlsl │ │ ├── TessellationLitForwardPass.hlsl.meta │ │ ├── TessellationLitInput.hlsl │ │ ├── TessellationLitInput.hlsl.meta │ │ ├── TessellationShadowCasterPass.hlsl │ │ └── TessellationShadowCasterPass.hlsl.meta │ ├── Wireframe.meta │ └── Wireframe │ │ ├── WireframeCommon.hlsl │ │ ├── WireframeCommon.hlsl.meta │ │ ├── WireframeLit.shader │ │ ├── WireframeLit.shader.meta │ │ ├── WireframeLitForwardPass.hlsl │ │ ├── WireframeLitForwardPass.hlsl.meta │ │ ├── WireframeLitInput.hlsl │ │ ├── WireframeLitInput.hlsl.meta │ │ ├── WireframeUnlit.shader │ │ ├── WireframeUnlit.shader.meta │ │ ├── WireframeUnlitForwardPass.hlsl │ │ ├── WireframeUnlitForwardPass.hlsl.meta │ │ ├── WireframeUnlitInput.hlsl │ │ └── WireframeUnlitInput.hlsl.meta ├── Presets.meta ├── Presets │ ├── AudioCompressedInMemory.preset │ ├── AudioCompressedInMemory.preset.meta │ ├── AudioStreaming.preset │ ├── AudioStreaming.preset.meta │ ├── Defaults.meta │ ├── Defaults │ │ ├── AlbedoTexture_Default.preset │ │ ├── AlbedoTexture_Default.preset.meta │ │ ├── AudioDecompressOnLoad.preset │ │ ├── AudioDecompressOnLoad.preset.meta │ │ ├── DirectionalLight_Default.preset │ │ └── DirectionalLight_Default.preset.meta │ ├── NormalTexture.preset │ ├── NormalTexture.preset.meta │ ├── UtilityTexture.preset │ └── UtilityTexture.preset.meta ├── Sample Scenes.meta ├── Sample Scenes │ ├── Battle Damaged Sci-fi Helmet.meta │ ├── Battle Damaged Sci-fi Helmet │ │ ├── README.md │ │ ├── README.md.meta │ │ ├── Sci-Fi_Helmet.obj │ │ ├── Sci-Fi_Helmet.obj.meta │ │ ├── Sci-Fi_Helmet_Albedo.png │ │ ├── Sci-Fi_Helmet_Albedo.png.meta │ │ ├── Sci-Fi_Helmet_Emission.png │ │ ├── Sci-Fi_Helmet_Emission.png.meta │ │ ├── Sci-Fi_Helmet_MaskMap.png │ │ ├── Sci-Fi_Helmet_MaskMap.png.meta │ │ ├── Sci-Fi_Helmet_Mat.mat │ │ ├── Sci-Fi_Helmet_Mat.mat.meta │ │ ├── Sci-Fi_Helmet_Normal.png │ │ ├── Sci-Fi_Helmet_Normal.png.meta │ │ ├── Sci-Fi_Helmet_Occlusion.jpg │ │ └── Sci-Fi_Helmet_Occlusion.jpg.meta │ ├── Cutting Board.meta │ ├── Cutting Board │ │ ├── CuttingBoard003.obj │ │ ├── CuttingBoard003.obj.meta │ │ ├── CuttingBoard003_BaseColor_2K.png │ │ ├── CuttingBoard003_BaseColor_2K.png.meta │ │ ├── CuttingBoard003_MaskMap_2K.png │ │ ├── CuttingBoard003_MaskMap_2K.png.meta │ │ ├── CuttingBoard003_Mat.mat │ │ ├── CuttingBoard003_Mat.mat.meta │ │ ├── CuttingBoard003_Normal_2K.png │ │ └── CuttingBoard003_Normal_2K.png.meta │ ├── Extrude.meta │ ├── Extrude.unity │ ├── Extrude.unity.meta │ ├── Extrude │ │ ├── Global Volume Profile.asset │ │ ├── Global Volume Profile.asset.meta │ │ ├── LightingData.asset │ │ ├── LightingData.asset.meta │ │ ├── ReflectionProbe-0.exr │ │ ├── ReflectionProbe-0.exr.meta │ │ ├── ReflectionProbe-1.exr │ │ └── ReflectionProbe-1.exr.meta │ ├── HDRI.meta │ ├── HDRI │ │ ├── AdamsPlaceBridge.mat │ │ ├── AdamsPlaceBridge.mat.meta │ │ ├── Lebombo.mat │ │ ├── Lebombo.mat.meta │ │ ├── README.md │ │ ├── README.md.meta │ │ ├── adams_place_bridge_4k.hdr │ │ ├── adams_place_bridge_4k.hdr.meta │ │ ├── lebombo_4k.hdr │ │ └── lebombo_4k.hdr.meta │ ├── Low Poly.meta │ ├── Low Poly.unity │ ├── Low Poly.unity.meta │ ├── Low Poly │ │ ├── LightingData.asset │ │ ├── LightingData.asset.meta │ │ ├── ReflectionProbe-0.exr │ │ ├── ReflectionProbe-0.exr.meta │ │ ├── ReflectionProbe-1.exr │ │ └── ReflectionProbe-1.exr.meta │ ├── Meshes.meta │ ├── Meshes │ │ ├── Teapot.obj │ │ ├── Teapot.obj.meta │ │ ├── icosphere.obj │ │ └── icosphere.obj.meta │ ├── Sample Scene.unity │ ├── Sample Scene.unity.meta │ ├── Wireframe.meta │ ├── Wireframe.unity │ ├── Wireframe.unity.meta │ └── Wireframe │ │ ├── Global Volume Profile.asset │ │ ├── Global Volume Profile.asset.meta │ │ ├── LightingData.asset │ │ ├── LightingData.asset.meta │ │ ├── ReflectionProbe-0.exr │ │ ├── ReflectionProbe-0.exr.meta │ │ ├── ReflectionProbe-1.exr │ │ └── ReflectionProbe-1.exr.meta ├── Settings.meta └── Settings │ ├── UniversalRenderPipelineAsset.asset │ ├── UniversalRenderPipelineAsset.asset.meta │ ├── UniversalRenderPipelineAsset_Renderer.asset │ └── UniversalRenderPipelineAsset_Renderer.asset.meta ├── Images ├── animated-extrusion.gif ├── screenshots-lowpoly.png ├── screenshots-tessellation-lit.png ├── screenshots-wireframe-lit.png └── screenshots-wireframe-styled-unlit.png ├── LICENSE ├── Packages └── manifest.json ├── ProjectSettings ├── AudioManager.asset ├── ClusterInputManager.asset ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── GraphicsSettings.asset ├── InputManager.asset ├── NavMeshAreas.asset ├── Physics2DSettings.asset ├── PresetManager.asset ├── ProjectSettings.asset ├── ProjectVersion.txt ├── QualitySettings.asset ├── TagManager.asset ├── TimeManager.asset ├── URPProjectSettings.asset ├── UnityConnectSettings.asset ├── VFXManager.asset └── XRSettings.asset └── README.md /.gitattributes: -------------------------------------------------------------------------------- 1 | * -text 2 | 3 | *.cs text eol=lf diff=csharp 4 | *.shader text eol=lf 5 | *.cginc text eol=lf 6 | *.hlsl text eol=lf 7 | *.compute text eol=lf 8 | 9 | *.meta text eol=lf 10 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # This .gitignore file should be placed at the root of your Unity project directory 2 | # 3 | # Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore 4 | # 5 | /[Ll]ibrary/ 6 | /[Tt]emp/ 7 | /[Oo]bj/ 8 | /[Bb]uild/ 9 | /[Bb]uilds/ 10 | /[Ll]ogs/ 11 | /[Uu]ser[Ss]ettings/ 12 | 13 | # MemoryCaptures can get excessive in size. 14 | # They also could contain extremely sensitive data 15 | /[Mm]emoryCaptures/ 16 | 17 | # Asset meta data should only be ignored when the corresponding asset is also ignored 18 | !/[Aa]ssets/**/*.meta 19 | 20 | # Uncomment this line if you wish to ignore the asset store tools plugin 21 | # /[Aa]ssets/AssetStoreTools* 22 | 23 | # Autogenerated Jetbrains Rider plugin 24 | /[Aa]ssets/Plugins/Editor/JetBrains* 25 | 26 | # Visual Studio cache directory 27 | .vs/ 28 | 29 | # Gradle cache directory 30 | .gradle/ 31 | 32 | # Autogenerated VS/MD/Consulo solution and project files 33 | ExportedObj/ 34 | .consulo/ 35 | *.csproj 36 | *.unityproj 37 | *.sln 38 | *.suo 39 | *.tmp 40 | *.user 41 | *.userprefs 42 | *.pidb 43 | *.booproj 44 | *.svd 45 | *.pdb 46 | *.mdb 47 | *.opendb 48 | *.VC.db 49 | 50 | # Unity3D generated meta files 51 | *.pidb.meta 52 | *.pdb.meta 53 | *.mdb.meta 54 | 55 | # Unity3D generated file on crash reports 56 | sysinfo.txt 57 | 58 | # Builds 59 | *.apk 60 | *.aab 61 | *.unitypackage 62 | 63 | # Crashlytics generated file 64 | crashlytics-build.properties 65 | 66 | # Packed Addressables 67 | /[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin* 68 | 69 | # Temporary auto-generated Android Assets 70 | /[Aa]ssets/[Ss]treamingAssets/aa.meta 71 | /[Aa]ssets/[Ss]treamingAssets/aa/* -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b1a7375962ec56f4c90c9aab07864c37 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 23d1ef7eaa3128f459f6eb79aee96dfa 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Editor/ShaderGUI.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0f290b3fcf248884a94d3f61ff4a8f97 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Editor/ShaderGUI/ExtrudeGUI.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using UnityEngine; 3 | using UnityEngine.Rendering; 4 | 5 | namespace UnityEditor.Rendering.Universal.ShaderGUI 6 | { 7 | public static class ExtrudeGUI 8 | { 9 | 10 | public static class Styles 11 | { 12 | public static GUIContent extrudeSizeText = new GUIContent("Extrude Size", 13 | "Controls the extrusion amount."); 14 | 15 | public static GUIContent extrudeAnimationText = new GUIContent("Extrude Animation", 16 | "Enable animation for extrusion."); 17 | 18 | public static GUIContent extrudeAnimationSpeedText = new GUIContent("Speed", 19 | "Playback speed of the extrusion animation."); 20 | } 21 | 22 | public struct ExtrudeProperties 23 | { 24 | public MaterialProperty extrudeSize; 25 | public MaterialProperty extrudeAnimation; 26 | public MaterialProperty extrudeAnimationSpeed; 27 | 28 | public ExtrudeProperties(MaterialProperty[] properties) 29 | { 30 | extrudeSize = BaseShaderGUI.FindProperty("_ExtrudeSize", properties, false); 31 | extrudeAnimation = BaseShaderGUI.FindProperty("_ExtrudeAnimation", properties, false); 32 | extrudeAnimationSpeed = BaseShaderGUI.FindProperty("_ExtrudeAnimationSpeed", properties, false); 33 | } 34 | } 35 | 36 | public static void DoExtrude(ExtrudeProperties properties, MaterialEditor materialEditor) 37 | { 38 | materialEditor.ShaderProperty(properties.extrudeSize, Styles.extrudeSizeText); 39 | 40 | bool enableAnimation = false; 41 | enableAnimation = properties.extrudeAnimation.floatValue == 1; 42 | 43 | materialEditor.ShaderProperty(properties.extrudeAnimation, Styles.extrudeAnimationText); 44 | EditorGUI.indentLevel++; 45 | EditorGUI.BeginDisabledGroup(!enableAnimation); 46 | materialEditor.ShaderProperty(properties.extrudeAnimationSpeed, Styles.extrudeAnimationSpeedText); 47 | EditorGUI.EndDisabledGroup(); 48 | EditorGUI.indentLevel--; 49 | } 50 | 51 | public static void SetMaterialKeywords(Material material) 52 | { 53 | if (material.HasProperty("_ExtrudeAnimation")) 54 | CoreUtils.SetKeyword(material, "_EXTRUDEANIMATION_OFF", 55 | material.GetFloat("_ExtrudeAnimation") == 0.0f); 56 | } 57 | } 58 | } -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Editor/ShaderGUI/ExtrudeGUI.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b3c2c1bb6614e41489ade273b44e7876 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Editor/ShaderGUI/Shaders.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 40676ce82c82492498625713d8c82ea4 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Editor/ShaderGUI/Shaders/ExtrudeLitShader.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2e5bd28af613ccd4d9f02169f9dd2c5a 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Editor/ShaderGUI/Shaders/LowPolyLitShader.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7564367f2a491304ea2b6210fd4816d1 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Editor/ShaderGUI/Shaders/TessellationLitShader.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 580d0360b453f45409e0367554f2e0d2 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Editor/ShaderGUI/Shaders/WireframeLitShader.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 832eb6985553fc745b4079b685fc3f93 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Editor/ShaderGUI/Shaders/WireframeUnlitShader.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using UnityEngine; 3 | 4 | namespace UnityEditor.Rendering.Universal.ShaderGUI 5 | { 6 | internal class WireframeUnlitShader : BaseShaderGUI 7 | { 8 | // Properties 9 | private WireframeGUI.WireframeProperties wireframeProperties; 10 | 11 | // collect properties from the material properties 12 | public override void FindProperties(MaterialProperty[] properties) 13 | { 14 | base.FindProperties(properties); 15 | wireframeProperties = new WireframeGUI.WireframeProperties(properties); 16 | } 17 | 18 | // material changed check 19 | public override void MaterialChanged(Material material) 20 | { 21 | if (material == null) 22 | throw new ArgumentNullException("material"); 23 | 24 | SetMaterialKeywords(material, WireframeGUI.SetMaterialKeywords); 25 | } 26 | 27 | // material main surface options 28 | public override void DrawSurfaceOptions(Material material) 29 | { 30 | if (material == null) 31 | throw new ArgumentNullException("material"); 32 | 33 | // Use default labelWidth 34 | EditorGUIUtility.labelWidth = 0f; 35 | 36 | // Detect any changes to the material 37 | EditorGUI.BeginChangeCheck(); 38 | { 39 | base.DrawSurfaceOptions(material); 40 | } 41 | if (EditorGUI.EndChangeCheck()) 42 | { 43 | foreach (var obj in blendModeProp.targets) 44 | MaterialChanged((Material)obj); 45 | } 46 | } 47 | 48 | // material main surface inputs 49 | public override void DrawSurfaceInputs(Material material) 50 | { 51 | base.DrawSurfaceInputs(material); 52 | DrawTileOffset(materialEditor, baseMapProp); 53 | WireframeGUI.DoWireframe(wireframeProperties, materialEditor, material); 54 | } 55 | 56 | public override void AssignNewShaderToMaterial(Material material, Shader oldShader, Shader newShader) 57 | { 58 | if (material == null) 59 | throw new ArgumentNullException("material"); 60 | 61 | // _Emission property is lost after assigning Standard shader to the material 62 | // thus transfer it before assigning the new shader 63 | if (material.HasProperty("_Emission")) 64 | { 65 | material.SetColor("_EmissionColor", material.GetColor("_Emission")); 66 | } 67 | 68 | base.AssignNewShaderToMaterial(material, oldShader, newShader); 69 | 70 | if (oldShader == null || !oldShader.name.Contains("Legacy Shaders/")) 71 | { 72 | SetupMaterialBlendMode(material); 73 | return; 74 | } 75 | 76 | SurfaceType surfaceType = SurfaceType.Opaque; 77 | BlendMode blendMode = BlendMode.Alpha; 78 | if (oldShader.name.Contains("/Transparent/Cutout/")) 79 | { 80 | surfaceType = SurfaceType.Opaque; 81 | material.SetFloat("_AlphaClip", 1); 82 | } 83 | else if (oldShader.name.Contains("/Transparent/")) 84 | { 85 | // NOTE: legacy shaders did not provide physically based transparency 86 | // therefore Fade mode 87 | surfaceType = SurfaceType.Transparent; 88 | blendMode = BlendMode.Alpha; 89 | } 90 | material.SetFloat("_Surface", (float)surfaceType); 91 | material.SetFloat("_Blend", (float)blendMode); 92 | 93 | MaterialChanged(material); 94 | } 95 | } 96 | } -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Editor/ShaderGUI/Shaders/WireframeUnlitShader.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 530e4f3d03aac30409210d026a36901c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Editor/ShaderGUI/ShadingModels.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 279be64cb0fe7464a8b06bfad0f18e78 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Editor/ShaderGUI/ShadingModels/LowPolyLitGUI.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a1f356ef8bdf1944998b087ae8a59ba9 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Editor/ShaderGUI/TessellationGUI.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9f4d6cb7d7376c54db5a3ea1b62c1ced 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Editor/ShaderGUI/WireframeGUI.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cee5c519d1e9d304bbe7e7c0f12b08ec 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Extrude.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 28c23f9536d698749b5a179a4b35d919 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Extrude/ExtrudeDepthOnlyPass.hlsl: -------------------------------------------------------------------------------- 1 | #ifndef UNIVERSAL_EXTRUDE_DEPTH_ONLY_PASS_INCLUDED 2 | #define UNIVERSAL_EXTRUDE_DEPTH_ONLY_PASS_INCLUDED 3 | 4 | #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" 5 | 6 | struct Attributes 7 | { 8 | float4 positionOS : POSITION; 9 | float2 texcoord : TEXCOORD0; 10 | UNITY_VERTEX_INPUT_INSTANCE_ID 11 | }; 12 | 13 | struct VaryingsToGeometry 14 | { 15 | float3 positionWS : TEXCOORD0; 16 | float2 texcoord : TEXCOORD1; 17 | UNITY_VERTEX_INPUT_INSTANCE_ID 18 | }; 19 | 20 | struct Varyings 21 | { 22 | float2 uv : TEXCOORD0; 23 | float4 positionCS : SV_POSITION; 24 | UNITY_VERTEX_INPUT_INSTANCE_ID 25 | UNITY_VERTEX_OUTPUT_STEREO 26 | }; 27 | 28 | VaryingsToGeometry DepthOnlyVertex(Attributes input) 29 | { 30 | VaryingsToGeometry output = (VaryingsToGeometry)0; 31 | UNITY_SETUP_INSTANCE_ID(input); 32 | UNITY_TRANSFER_INSTANCE_ID(input, output); 33 | 34 | output.positionWS = TransformObjectToWorld(input.positionOS.xyz); 35 | output.texcoord = TRANSFORM_TEX(input.texcoord, _BaseMap); 36 | 37 | return output; 38 | } 39 | 40 | // Gold Noise ©2015 dcerisano@standard3d.com 41 | // - based on the Golden Ratio 42 | // - uniform normalized distribution 43 | // - fastest static noise generator function (also runs at low precision) 44 | // float PHI = 1.61803398874989484820459; // Φ = Golden Ratio 45 | float gold_noise(in float2 uv, in float seed) 46 | { 47 | return frac(tan(distance(uv * 1.61803398874989484820459, uv) * seed) * uv.x); 48 | } 49 | 50 | [maxvertexcount(15)] 51 | void DepthOnlyGeometry(triangle VaryingsToGeometry input[3], inout TriangleStream outputStream) 52 | { 53 | VaryingsToGeometry top[3]; 54 | Varyings output[6]; 55 | 56 | float3 dir[3]; 57 | 58 | [unroll(3)] 59 | for (int k = 0; k < 3; ++k) 60 | { 61 | dir[k] = input[(k + 1) % 3].positionWS.xyz - input[k].positionWS.xyz; 62 | } 63 | 64 | float3 extrudeDirWS = normalize(cross(dir[0], -dir[2])); 65 | #if defined(_EXTRUDEANIMATION_OFF) 66 | float extrudeAmount = _ExtrudeSize; 67 | #else 68 | float extrudeAmount = _ExtrudeSize * (sin((gold_noise(input[0].texcoord, 810) * 2 + _Time.y * _ExtrudeAnimationSpeed) * PI * 2) + 1); 69 | #endif 70 | 71 | [unroll(3)] 72 | for (int i = 0; i < 3; ++i) 73 | { 74 | UNITY_TRANSFER_INSTANCE_ID(input[i], output[i]); 75 | UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output[i]); 76 | output[i].uv = input[i].texcoord; 77 | output[i].positionCS = TransformWorldToHClip(input[i].positionWS); 78 | 79 | top[i] = input[i]; 80 | top[i].positionWS.xyz += extrudeDirWS * extrudeAmount; 81 | 82 | UNITY_TRANSFER_INSTANCE_ID(top[i], output[i + 3]); 83 | UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output[i + 3]); 84 | output[i + 3].uv = top[i].texcoord; 85 | output[i + 3].positionCS = TransformWorldToHClip(top[i].positionWS); 86 | 87 | outputStream.Append(output[i]); 88 | } 89 | 90 | outputStream.RestartStrip(); 91 | 92 | [unroll(3)] 93 | for (int j = 0; j < 3; ++j) 94 | { 95 | outputStream.Append(output[(j + 1) % 3 + 3]); 96 | outputStream.Append(output[j + 3]); 97 | outputStream.Append(output[(j + 1) % 3]); 98 | outputStream.Append(output[j]); 99 | 100 | outputStream.RestartStrip(); 101 | } 102 | } 103 | 104 | half4 DepthOnlyFragment(Varyings input) : SV_TARGET 105 | { 106 | //UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input); 107 | 108 | Alpha(SampleAlbedoAlpha(input.uv, TEXTURE2D_ARGS(_BaseMap, sampler_BaseMap)).a, _BaseColor, _Cutoff); 109 | return 0; 110 | } 111 | #endif 112 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Extrude/ExtrudeDepthOnlyPass.hlsl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0f3ff4c28cb5b2749a3d07a85b7c0583 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Extrude/ExtrudeGeometryPass.hlsl: -------------------------------------------------------------------------------- 1 | #ifndef UNIVERSAL_GEOMETRY_EXTRUDE_INCLUDED 2 | #define UNIVERSAL_GEOMETRY_EXTRUDE_INCLUDED 3 | 4 | [maxvertexcount(15)] 5 | void LitPassGeometry(triangle Varyings input[3], inout TriangleStream outputStream) 6 | { 7 | Varyings output = (Varyings)0; 8 | Varyings top[3]; 9 | 10 | float3 dir[3]; 11 | 12 | [unroll(3)] 13 | for (int k = 0; k < 3; ++k) 14 | { 15 | dir[k] = input[(k + 1) % 3].positionWS - input[k].positionWS; 16 | } 17 | 18 | float3 extrudeDir = normalize(cross(dir[0], -dir[2])); 19 | 20 | // Extrude face 21 | [unroll(3)] 22 | for (int i = 0; i < 3; ++i) 23 | { 24 | top[i] = input[i]; 25 | top[i].positionWS = top[i].positionWS + extrudeDir * _ExtrudeSize; 26 | top[i].positionCS = TransformWorldToHClip(top[i].positionWS); 27 | 28 | // LWRP shadow coordinate 29 | VertexPositionInputs vertexInput = (VertexPositionInputs)0; 30 | vertexInput.positionWS = top[i].positionWS; 31 | vertexInput.positionCS = top[i].positionCS; 32 | 33 | #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) 34 | top[i].shadowCoord = GetShadowCoord(vertexInput); 35 | #endif 36 | 37 | outputStream.Append(top[i]); 38 | } 39 | 40 | outputStream.RestartStrip(); 41 | 42 | // Construct sides 43 | [unroll(3)] 44 | for (int j = 0; j < 3; ++j) 45 | { 46 | half3 normalWS = normalize(cross(dir[j], extrudeDir)); 47 | 48 | output = top[(j + 1) % 3]; 49 | output.normalWS = normalWS; 50 | outputStream.Append(output); 51 | output = top[j]; 52 | output.normalWS = normalWS; 53 | outputStream.Append(output); 54 | output = input[(j + 1) % 3]; 55 | output.normalWS = normalWS; 56 | outputStream.Append(output); 57 | output = input[j]; 58 | output.normalWS = normalWS; 59 | outputStream.Append(output); 60 | 61 | outputStream.RestartStrip(); 62 | } 63 | } 64 | 65 | #endif // UNIVERSAL_GEOMETRY_EXTRUDE_INCLUDED -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Extrude/ExtrudeGeometryPass.hlsl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b13113194774f4c4c92337005a6ce9d6 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Extrude/ExtrudeLit.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 52b2c870f0634fe44aca8e1f22e9e63e 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Extrude/ExtrudeLitForwardPass.hlsl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a82150a7c742fba46ad1657b5495426d 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Extrude/ExtrudeLitInput.hlsl: -------------------------------------------------------------------------------- 1 | #ifndef UNIVERSAL_GEOMETRY_EXTRUDE_LIT_INPUT_INCLUDED 2 | #define UNIVERSAL_GEOMETRY_EXTRUDE_LIT_INPUT_INCLUDED 3 | 4 | #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" 5 | #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/CommonMaterial.hlsl" 6 | #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/SurfaceInput.hlsl" 7 | 8 | CBUFFER_START(UnityPerMaterial) 9 | float4 _BaseMap_ST; 10 | half4 _BaseColor; 11 | half4 _SpecColor; 12 | half4 _EmissionColor; 13 | half _Cutoff; 14 | half _Smoothness; 15 | half _Metallic; 16 | half _BumpScale; 17 | half _OcclusionStrength; 18 | half _ExtrudeSize; 19 | half _ExtrudeAnimationSpeed; 20 | CBUFFER_END 21 | 22 | TEXTURE2D(_OcclusionMap); SAMPLER(sampler_OcclusionMap); 23 | TEXTURE2D(_MetallicGlossMap); SAMPLER(sampler_MetallicGlossMap); 24 | TEXTURE2D(_SpecGlossMap); SAMPLER(sampler_SpecGlossMap); 25 | 26 | #ifdef _SPECULAR_SETUP 27 | #define SAMPLE_METALLICSPECULAR(uv) SAMPLE_TEXTURE2D(_SpecGlossMap, sampler_SpecGlossMap, uv) 28 | #else 29 | #define SAMPLE_METALLICSPECULAR(uv) SAMPLE_TEXTURE2D(_MetallicGlossMap, sampler_MetallicGlossMap, uv) 30 | #endif 31 | 32 | half4 SampleMetallicSpecGloss(float2 uv, half albedoAlpha) 33 | { 34 | half4 specGloss; 35 | 36 | #ifdef _METALLICSPECGLOSSMAP 37 | specGloss = SAMPLE_METALLICSPECULAR(uv); 38 | #ifdef _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A 39 | specGloss.a = albedoAlpha * _Smoothness; 40 | #else 41 | specGloss.a *= _Smoothness; 42 | #endif 43 | #else // _METALLICSPECGLOSSMAP 44 | #if _SPECULAR_SETUP 45 | specGloss.rgb = _SpecColor.rgb; 46 | #else 47 | specGloss.rgb = _Metallic.rrr; 48 | #endif 49 | 50 | #ifdef _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A 51 | specGloss.a = albedoAlpha * _Smoothness; 52 | #else 53 | specGloss.a = _Smoothness; 54 | #endif 55 | #endif 56 | 57 | return specGloss; 58 | } 59 | 60 | half SampleOcclusion(float2 uv) 61 | { 62 | #ifdef _OCCLUSIONMAP 63 | // TODO: Controls things like these by exposing SHADER_QUALITY levels (low, medium, high) 64 | #if defined(SHADER_API_GLES) 65 | return SAMPLE_TEXTURE2D(_OcclusionMap, sampler_OcclusionMap, uv).g; 66 | #else 67 | half occ = SAMPLE_TEXTURE2D(_OcclusionMap, sampler_OcclusionMap, uv).g; 68 | return LerpWhiteTo(occ, _OcclusionStrength); 69 | #endif 70 | #else 71 | return 1.0; 72 | #endif 73 | } 74 | 75 | inline void InitializeStandardLitSurfaceData(float2 uv, out SurfaceData outSurfaceData) 76 | { 77 | half4 albedoAlpha = SampleAlbedoAlpha(uv, TEXTURE2D_ARGS(_BaseMap, sampler_BaseMap)); 78 | outSurfaceData.alpha = Alpha(albedoAlpha.a, _BaseColor, _Cutoff); 79 | 80 | half4 specGloss = SampleMetallicSpecGloss(uv, albedoAlpha.a); 81 | outSurfaceData.albedo = albedoAlpha.rgb * _BaseColor.rgb; 82 | 83 | #if _SPECULAR_SETUP 84 | outSurfaceData.metallic = 1.0h; 85 | outSurfaceData.specular = specGloss.rgb; 86 | #else 87 | outSurfaceData.metallic = specGloss.r; 88 | outSurfaceData.specular = half3(0.0h, 0.0h, 0.0h); 89 | #endif 90 | 91 | outSurfaceData.smoothness = specGloss.a; 92 | outSurfaceData.normalTS = SampleNormal(uv, TEXTURE2D_ARGS(_BumpMap, sampler_BumpMap), _BumpScale); 93 | outSurfaceData.occlusion = SampleOcclusion(uv); 94 | outSurfaceData.emission = SampleEmission(uv, _EmissionColor.rgb, TEXTURE2D_ARGS(_EmissionMap, sampler_EmissionMap)); 95 | } 96 | 97 | #endif // UNIVERSAL_GEOMETRY_EXTRUDE_LIT_INPUT_INCLUDED -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Extrude/ExtrudeLitInput.hlsl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e381815a55a913a4cb3fa8f2b55531b3 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Extrude/ExtrudeShadowCasterPass.hlsl: -------------------------------------------------------------------------------- 1 | #ifndef UNIVERSAL_EXTRUDE_SHADOW_CASTER_PASS_INCLUDED 2 | #define UNIVERSAL_EXTRUDE_SHADOW_CASTER_PASS_INCLUDED 3 | 4 | #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" 5 | #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Shadows.hlsl" 6 | 7 | float3 _LightDirection; 8 | 9 | struct Attributes 10 | { 11 | float4 positionOS : POSITION; 12 | float3 normalOS : NORMAL; 13 | float2 texcoord : TEXCOORD0; 14 | UNITY_VERTEX_INPUT_INSTANCE_ID 15 | }; 16 | 17 | struct VaryingsToGeometry 18 | { 19 | float3 positionWS : TEXCOORD0; 20 | float3 normalWS : TEXCOORD1; 21 | float2 texcoord : TEXCOORD2; 22 | UNITY_VERTEX_INPUT_INSTANCE_ID 23 | }; 24 | 25 | struct Varyings 26 | { 27 | float2 uv : TEXCOORD0; 28 | float4 positionCS : SV_POSITION; 29 | }; 30 | 31 | float4 GetShadowPositionHClip(float3 positionWS, float3 normalWS) 32 | { 33 | float4 positionCS = TransformWorldToHClip(ApplyShadowBias(positionWS, normalWS, _LightDirection)); 34 | 35 | #if UNITY_REVERSED_Z 36 | positionCS.z = min(positionCS.z, positionCS.w * UNITY_NEAR_CLIP_VALUE); 37 | #else 38 | positionCS.z = max(positionCS.z, positionCS.w * UNITY_NEAR_CLIP_VALUE); 39 | #endif 40 | 41 | return positionCS; 42 | } 43 | 44 | VaryingsToGeometry ShadowPassVertex(Attributes input) 45 | { 46 | VaryingsToGeometry output; 47 | UNITY_SETUP_INSTANCE_ID(input); 48 | 49 | output.positionWS = TransformObjectToWorld(input.positionOS.xyz); 50 | output.normalWS = TransformObjectToWorldNormal(input.normalOS); 51 | output.texcoord = TRANSFORM_TEX(input.texcoord, _BaseMap); 52 | 53 | return output; 54 | } 55 | 56 | // Gold Noise ©2015 dcerisano@standard3d.com 57 | // - based on the Golden Ratio 58 | // - uniform normalized distribution 59 | // - fastest static noise generator function (also runs at low precision) 60 | // float PHI = 1.61803398874989484820459; // Φ = Golden Ratio 61 | float gold_noise(in float2 uv, in float seed) 62 | { 63 | return frac(tan(distance(uv * 1.61803398874989484820459, uv) * seed) * uv.x); 64 | } 65 | 66 | [maxvertexcount(15)] 67 | void ShadowPassGeometry(triangle VaryingsToGeometry input[3], inout TriangleStream outputStream) 68 | { 69 | Varyings output = (Varyings)0; 70 | VaryingsToGeometry top[3]; 71 | 72 | float3 dir[3]; 73 | 74 | [unroll(3)] 75 | for (int k = 0; k < 3; ++k) 76 | { 77 | dir[k] = input[(k + 1) % 3].positionWS.xyz - input[k].positionWS.xyz; 78 | } 79 | 80 | float3 extrudeDirWS = normalize(cross(dir[0], -dir[2])); 81 | #if defined(_EXTRUDEANIMATION_OFF) 82 | float extrudeAmount = _ExtrudeSize; 83 | #else 84 | float extrudeAmount = _ExtrudeSize * (sin((gold_noise(input[0].texcoord, 810) * 2 + _Time.y * _ExtrudeAnimationSpeed) * PI * 2) + 1); 85 | #endif 86 | 87 | [unroll(3)] 88 | for (int i = 0; i < 3; ++i) 89 | { 90 | top[i] = input[i]; 91 | top[i].positionWS.xyz += extrudeDirWS * extrudeAmount; 92 | 93 | output.uv = top[i].texcoord; 94 | output.positionCS = GetShadowPositionHClip(top[i].positionWS, top[i].normalWS); 95 | 96 | outputStream.Append(output); 97 | } 98 | 99 | outputStream.RestartStrip(); 100 | 101 | [unroll(3)] 102 | for (int j = 0; j < 3; ++j) 103 | { 104 | float3 sideNormalWS = normalize(cross(dir[j], extrudeDirWS)); 105 | 106 | output.uv = top[(j + 1) % 3].texcoord; 107 | output.positionCS = GetShadowPositionHClip(top[(j + 1) % 3].positionWS, sideNormalWS); 108 | outputStream.Append(output); 109 | 110 | output.uv = top[j].texcoord; 111 | output.positionCS = GetShadowPositionHClip(top[j].positionWS, sideNormalWS); 112 | outputStream.Append(output); 113 | 114 | output.uv = input[(j + 1) % 3].texcoord; 115 | output.positionCS = GetShadowPositionHClip(input[(j + 1) % 3].positionWS, sideNormalWS); 116 | outputStream.Append(output); 117 | 118 | output.uv = input[j].texcoord; 119 | output.positionCS = GetShadowPositionHClip(input[j].positionWS, sideNormalWS); 120 | outputStream.Append(output); 121 | 122 | outputStream.RestartStrip(); 123 | } 124 | } 125 | 126 | half4 ShadowPassFragment(Varyings input) : SV_TARGET 127 | { 128 | Alpha(SampleAlbedoAlpha(input.uv, TEXTURE2D_ARGS(_BaseMap, sampler_BaseMap)).a, _BaseColor, _Cutoff); 129 | return 0; 130 | } 131 | 132 | #endif 133 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Extrude/ExtrudeShadowCasterPass.hlsl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fa8b2a1a561d31d4da212179439e4d10 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/LowPoly.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fa2c9bb457eb985438cea8e7ac64e5a2 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/LowPoly/LowPolyLit.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c08616d887b534a42b76f4ff5e88f46b 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/LowPoly/LowPolyLitForwardPass.hlsl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f8ab775d577e70248b92be7e2c5d540b 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/LowPoly/LowPolyLitInput.hlsl: -------------------------------------------------------------------------------- 1 | #ifndef UNIVERSAL_LOWPOLY_LIT_INPUT_INCLUDED 2 | #define UNIVERSAL_LOWPOLY_LIT_INPUT_INCLUDED 3 | 4 | #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" 5 | #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/CommonMaterial.hlsl" 6 | #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/SurfaceInput.hlsl" 7 | 8 | CBUFFER_START(UnityPerMaterial) 9 | float4 _BaseMap_ST; 10 | half4 _BaseColor; 11 | half4 _SpecColor; 12 | half4 _EmissionColor; 13 | half _Cutoff; 14 | half _Smoothness; 15 | half _Metallic; 16 | CBUFFER_END 17 | 18 | TEXTURE2D(_MetallicGlossMap); SAMPLER(sampler_MetallicGlossMap); 19 | TEXTURE2D(_SpecGlossMap); SAMPLER(sampler_SpecGlossMap); 20 | 21 | #ifdef _SPECULAR_SETUP 22 | #define SAMPLE_METALLICSPECULAR(uv) SAMPLE_TEXTURE2D(_SpecGlossMap, sampler_SpecGlossMap, uv) 23 | #else 24 | #define SAMPLE_METALLICSPECULAR(uv) SAMPLE_TEXTURE2D(_MetallicGlossMap, sampler_MetallicGlossMap, uv) 25 | #endif 26 | 27 | half4 SampleMetallicSpecGloss(float2 uv, half albedoAlpha) 28 | { 29 | half4 specGloss; 30 | 31 | #ifdef _METALLICSPECGLOSSMAP 32 | specGloss = SAMPLE_METALLICSPECULAR(uv); 33 | #ifdef _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A 34 | specGloss.a = albedoAlpha * _Smoothness; 35 | #else 36 | specGloss.a *= _Smoothness; 37 | #endif 38 | #else // _METALLICSPECGLOSSMAP 39 | #if _SPECULAR_SETUP 40 | specGloss.rgb = _SpecColor.rgb; 41 | #else 42 | specGloss.rgb = _Metallic.rrr; 43 | #endif 44 | 45 | #ifdef _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A 46 | specGloss.a = albedoAlpha * _Smoothness; 47 | #else 48 | specGloss.a = _Smoothness; 49 | #endif 50 | #endif 51 | 52 | return specGloss; 53 | } 54 | 55 | inline void InitializeLowPolyLitSurfaceData(float2 uv, out SurfaceData outSurfaceData) 56 | { 57 | half4 albedoAlpha = SampleAlbedoAlpha(uv, TEXTURE2D_ARGS(_BaseMap, sampler_BaseMap)); 58 | outSurfaceData.alpha = Alpha(albedoAlpha.a, _BaseColor, _Cutoff); 59 | 60 | half4 specGloss = SampleMetallicSpecGloss(uv, albedoAlpha.a); 61 | outSurfaceData.albedo = albedoAlpha.rgb * _BaseColor.rgb; 62 | 63 | #if _SPECULAR_SETUP 64 | outSurfaceData.metallic = 1.0h; 65 | outSurfaceData.specular = specGloss.rgb; 66 | #else 67 | outSurfaceData.metallic = specGloss.r; 68 | outSurfaceData.specular = half3(0.0h, 0.0h, 0.0h); 69 | #endif 70 | 71 | outSurfaceData.smoothness = specGloss.a; 72 | outSurfaceData.normalTS = half3(0.0, 0.0, 1.0); 73 | outSurfaceData.occlusion = 1.0; 74 | outSurfaceData.emission = SampleEmission(uv, _EmissionColor.rgb, TEXTURE2D_ARGS(_EmissionMap, sampler_EmissionMap)); 75 | } 76 | 77 | #endif // UNIVERSAL_LOWPOLY_LIT_INPUT_INCLUDED -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/LowPoly/LowPolyLitInput.hlsl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ba45f808dff780d48aeaf59d542c56d6 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/LowPoly/LowPolyShadowCasterPass.hlsl: -------------------------------------------------------------------------------- 1 | #ifndef UNIVERSAL_LOWPOLY_SHADOW_CASTER_PASS_INCLUDED 2 | #define UNIVERSAL_LOWPOLY_SHADOW_CASTER_PASS_INCLUDED 3 | 4 | #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" 5 | #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Shadows.hlsl" 6 | 7 | float3 _LightDirection; 8 | 9 | struct Attributes 10 | { 11 | float4 positionOS : POSITION; 12 | float3 normalOS : NORMAL; 13 | float2 texcoord : TEXCOORD0; 14 | UNITY_VERTEX_INPUT_INSTANCE_ID 15 | }; 16 | 17 | struct VaryingsToGeo 18 | { 19 | float2 uv : TEXCOORD0; 20 | float3 positionWS : TEXCOORD1; 21 | float3 normalWS : TEXCOORD2; 22 | }; 23 | 24 | struct Varyings 25 | { 26 | float2 uv : TEXCOORD0; 27 | float4 positionCS : SV_POSITION; 28 | }; 29 | 30 | float4 GetShadowPositionHClip(float3 positionWS, float3 normalWS) 31 | { 32 | float4 positionCS = TransformWorldToHClip(ApplyShadowBias(positionWS, normalWS, _LightDirection)); 33 | 34 | #if UNITY_REVERSED_Z 35 | positionCS.z = min(positionCS.z, positionCS.w * UNITY_NEAR_CLIP_VALUE); 36 | #else 37 | positionCS.z = max(positionCS.z, positionCS.w * UNITY_NEAR_CLIP_VALUE); 38 | #endif 39 | 40 | return positionCS; 41 | } 42 | 43 | VaryingsToGeo LowPolyShadowPassVertex(Attributes input) 44 | { 45 | VaryingsToGeo output; 46 | UNITY_SETUP_INSTANCE_ID(input); 47 | 48 | output.uv = TRANSFORM_TEX(input.texcoord, _BaseMap); 49 | output.positionWS = TransformObjectToWorld(input.positionOS.xyz); 50 | output.normalWS = TransformObjectToWorldNormal(input.normalOS); 51 | 52 | return output; 53 | } 54 | 55 | [maxvertexcount(3)] 56 | void LowPolyShadowPassGeometry(triangle VaryingsToGeo input[3], inout TriangleStream outputStream) 57 | { 58 | Varyings output[3]; 59 | 60 | float2 uvAvg = (input[0].uv + input[1].uv + input[2].uv) / 3; 61 | float3 normalWSAvg = (input[0].normalWS + input[1].normalWS + input[2].normalWS) / 3; 62 | normalWSAvg = normalize(normalWSAvg); 63 | 64 | [unroll(3)] 65 | for (int i = 3; i < 3; ++i) 66 | { 67 | output[i].uv = input[i]; 68 | output[i].positionCS = GetShadowPositionHClip(input[i].positionWS, normalWSAvg); 69 | 70 | outputStream.Append(output[i]); 71 | } 72 | } 73 | 74 | half4 ShadowPassFragment(Varyings input) : SV_TARGET 75 | { 76 | Alpha(SampleAlbedoAlpha(input.uv, TEXTURE2D_ARGS(_BaseMap, sampler_BaseMap)).a, _BaseColor, _Cutoff); 77 | return 0; 78 | } 79 | 80 | #endif -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/LowPoly/LowPolyShadowCasterPass.hlsl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 63a975de1e83bac4a9ecac747f7fa8e9 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 53f5e7edbdd5094429f6b76c1b036d64 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Materials/Extrude.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &-7044194087427768746 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: 1 16 | --- !u!21 &2100000 17 | Material: 18 | serializedVersion: 6 19 | m_ObjectHideFlags: 0 20 | m_CorrespondingSourceObject: {fileID: 0} 21 | m_PrefabInstance: {fileID: 0} 22 | m_PrefabAsset: {fileID: 0} 23 | m_Name: Extrude 24 | m_Shader: {fileID: 4800000, guid: 52b2c870f0634fe44aca8e1f22e9e63e, type: 3} 25 | m_ShaderKeywords: 26 | m_LightmapFlags: 4 27 | m_EnableInstancingVariants: 0 28 | m_DoubleSidedGI: 0 29 | m_CustomRenderQueue: 2050 30 | stringTagMap: 31 | RenderType: Opaque 32 | disabledShaderPasses: [] 33 | m_SavedProperties: 34 | serializedVersion: 3 35 | m_TexEnvs: 36 | - _BaseMap: 37 | m_Texture: {fileID: 0} 38 | m_Scale: {x: 1, y: 1} 39 | m_Offset: {x: 0, y: 0} 40 | - _BumpMap: 41 | m_Texture: {fileID: 0} 42 | m_Scale: {x: 1, y: 1} 43 | m_Offset: {x: 0, y: 0} 44 | - _EmissionMap: 45 | m_Texture: {fileID: 0} 46 | m_Scale: {x: 1, y: 1} 47 | m_Offset: {x: 0, y: 0} 48 | - _MainTex: 49 | m_Texture: {fileID: 0} 50 | m_Scale: {x: 1, y: 1} 51 | m_Offset: {x: 0, y: 0} 52 | - _MetallicGlossMap: 53 | m_Texture: {fileID: 0} 54 | m_Scale: {x: 1, y: 1} 55 | m_Offset: {x: 0, y: 0} 56 | - _OcclusionMap: 57 | m_Texture: {fileID: 0} 58 | m_Scale: {x: 1, y: 1} 59 | m_Offset: {x: 0, y: 0} 60 | - _SpecGlossMap: 61 | m_Texture: {fileID: 0} 62 | m_Scale: {x: 1, y: 1} 63 | m_Offset: {x: 0, y: 0} 64 | m_Floats: 65 | - _AlphaClip: 0 66 | - _Blend: 0 67 | - _BumpScale: 1 68 | - _Cull: 2 69 | - _Cutoff: 0.5 70 | - _DstBlend: 0 71 | - _EnvironmentReflections: 1 72 | - _ExtrudeAnimation: 1 73 | - _ExtrudeAnimationSpeed: 1 74 | - _ExtrudeSize: 0.19 75 | - _GlossMapScale: 0 76 | - _Glossiness: 0 77 | - _GlossyReflections: 0 78 | - _Metallic: 0 79 | - _OcclusionStrength: 1 80 | - _QueueOffset: 0 81 | - _ReceiveShadows: 1 82 | - _Smoothness: 0 83 | - _SmoothnessTextureChannel: 0 84 | - _SpecularHighlights: 1 85 | - _SrcBlend: 1 86 | - _Surface: 0 87 | - _WorkflowMode: 1 88 | - _ZWrite: 1 89 | m_Colors: 90 | - _BaseColor: {r: 1, g: 0.3137255, b: 0.13725491, a: 1} 91 | - _Color: {r: 0.5, g: 0.5, b: 0.5, a: 1} 92 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 93 | - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} 94 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Materials/Extrude.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e4e8d5ca34abe0e4798bd102946518da 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Materials/LowPoly Sci-Fi_Helmet.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: LowPoly Sci-Fi_Helmet 11 | m_Shader: {fileID: 4800000, guid: c08616d887b534a42b76f4ff5e88f46b, type: 3} 12 | m_ShaderKeywords: _EMISSION _METALLICSPECGLOSSMAP 13 | m_LightmapFlags: 2 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: 2050 17 | stringTagMap: 18 | RenderType: Opaque 19 | disabledShaderPasses: [] 20 | m_SavedProperties: 21 | serializedVersion: 3 22 | m_TexEnvs: 23 | - _BaseMap: 24 | m_Texture: {fileID: 2800000, guid: 9a3ec5a06202b954f993b0bb1f7a0e40, type: 3} 25 | m_Scale: {x: 1, y: 1} 26 | m_Offset: {x: 0, y: 0} 27 | - _BumpMap: 28 | m_Texture: {fileID: 2800000, guid: aa155f5e983c79348afd2b0afbb3484d, type: 3} 29 | m_Scale: {x: 1, y: 1} 30 | m_Offset: {x: 0, y: 0} 31 | - _EmissionMap: 32 | m_Texture: {fileID: 2800000, guid: 2723178f74395224b8499c2d882be8ec, type: 3} 33 | m_Scale: {x: 1, y: 1} 34 | m_Offset: {x: 0, y: 0} 35 | - _MainTex: 36 | m_Texture: {fileID: 2800000, guid: 9a3ec5a06202b954f993b0bb1f7a0e40, type: 3} 37 | m_Scale: {x: 1, y: 1} 38 | m_Offset: {x: 0, y: 0} 39 | - _MetallicGlossMap: 40 | m_Texture: {fileID: 2800000, guid: 04fd1f4addcb9384abd3cfde75068e4a, type: 3} 41 | m_Scale: {x: 1, y: 1} 42 | m_Offset: {x: 0, y: 0} 43 | - _OcclusionMap: 44 | m_Texture: {fileID: 0} 45 | m_Scale: {x: 1, y: 1} 46 | m_Offset: {x: 0, y: 0} 47 | - _SpecGlossMap: 48 | m_Texture: {fileID: 0} 49 | m_Scale: {x: 1, y: 1} 50 | m_Offset: {x: 0, y: 0} 51 | m_Floats: 52 | - _AlphaClip: 0 53 | - _Blend: 0 54 | - _BumpScale: 1 55 | - _Cull: 2 56 | - _Cutoff: 0.5 57 | - _DstBlend: 0 58 | - _EnvironmentReflections: 1 59 | - _GlossMapScale: 0 60 | - _Glossiness: 0 61 | - _GlossyReflections: 0 62 | - _Metallic: 0 63 | - _OcclusionStrength: 1 64 | - _QueueOffset: 0 65 | - _ReceiveShadows: 1 66 | - _Smoothness: 1 67 | - _SmoothnessTextureChannel: 0 68 | - _SpecularHighlights: 1 69 | - _SrcBlend: 1 70 | - _Surface: 0 71 | - _WorkflowMode: 1 72 | - _ZWrite: 1 73 | m_Colors: 74 | - _BaseColor: {r: 1, g: 1, b: 1, a: 1} 75 | - _Color: {r: 0.5, g: 0.5, b: 0.5, a: 1} 76 | - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} 77 | - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} 78 | --- !u!114 &2025780214278841546 79 | MonoBehaviour: 80 | m_ObjectHideFlags: 11 81 | m_CorrespondingSourceObject: {fileID: 0} 82 | m_PrefabInstance: {fileID: 0} 83 | m_PrefabAsset: {fileID: 0} 84 | m_GameObject: {fileID: 0} 85 | m_Enabled: 1 86 | m_EditorHideFlags: 0 87 | m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} 88 | m_Name: 89 | m_EditorClassIdentifier: 90 | version: 1 91 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Materials/LowPoly Sci-Fi_Helmet.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2afbc09f4d98735499286a1d08166b89 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Materials/Wireframe Teapot.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &-6544447442322651592 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: 1 16 | --- !u!21 &2100000 17 | Material: 18 | serializedVersion: 6 19 | m_ObjectHideFlags: 0 20 | m_CorrespondingSourceObject: {fileID: 0} 21 | m_PrefabInstance: {fileID: 0} 22 | m_PrefabAsset: {fileID: 0} 23 | m_Name: Wireframe Teapot 24 | m_Shader: {fileID: 4800000, guid: 5b983dfa53f7df94ba243eb903e9d950, type: 3} 25 | m_ShaderKeywords: _WIREFRAMEMODE_WORLDSPACE 26 | m_LightmapFlags: 4 27 | m_EnableInstancingVariants: 0 28 | m_DoubleSidedGI: 0 29 | m_CustomRenderQueue: 2050 30 | stringTagMap: 31 | RenderType: Opaque 32 | disabledShaderPasses: [] 33 | m_SavedProperties: 34 | serializedVersion: 3 35 | m_TexEnvs: 36 | - _BaseMap: 37 | m_Texture: {fileID: 0} 38 | m_Scale: {x: 1, y: 1} 39 | m_Offset: {x: 0, y: 0} 40 | - _BumpMap: 41 | m_Texture: {fileID: 0} 42 | m_Scale: {x: 1, y: 1} 43 | m_Offset: {x: 0, y: 0} 44 | - _EmissionMap: 45 | m_Texture: {fileID: 0} 46 | m_Scale: {x: 1, y: 1} 47 | m_Offset: {x: 0, y: 0} 48 | - _MainTex: 49 | m_Texture: {fileID: 0} 50 | m_Scale: {x: 1, y: 1} 51 | m_Offset: {x: 0, y: 0} 52 | - _MetallicGlossMap: 53 | m_Texture: {fileID: 0} 54 | m_Scale: {x: 1, y: 1} 55 | m_Offset: {x: 0, y: 0} 56 | - _OcclusionMap: 57 | m_Texture: {fileID: 0} 58 | m_Scale: {x: 1, y: 1} 59 | m_Offset: {x: 0, y: 0} 60 | - _SpecGlossMap: 61 | m_Texture: {fileID: 0} 62 | m_Scale: {x: 1, y: 1} 63 | m_Offset: {x: 0, y: 0} 64 | m_Floats: 65 | - _AlphaClip: 0 66 | - _Blend: 0 67 | - _BumpScale: 1 68 | - _Cull: 2 69 | - _Cutoff: 0.5 70 | - _DstBlend: 0 71 | - _EnvironmentReflections: 1 72 | - _GlossMapScale: 0 73 | - _Glossiness: 0 74 | - _GlossyReflections: 0 75 | - _Metallic: 0 76 | - _OcclusionStrength: 1 77 | - _QueueOffset: 0 78 | - _ReceiveShadows: 1 79 | - _Smoothness: 0.899 80 | - _SmoothnessTextureChannel: 0 81 | - _SpecularHighlights: 1 82 | - _SrcBlend: 1 83 | - _Surface: 0 84 | - _WireframeMetallic: 1 85 | - _WireframeMode: 1 86 | - _WireframeQuad: 0 87 | - _WireframeSize: 0.01 88 | - _WireframeSmoothness: 0.929 89 | - _WorkflowMode: 1 90 | - _ZWrite: 1 91 | m_Colors: 92 | - _BaseColor: {r: 1, g: 0.9098039, b: 0.8627451, a: 1} 93 | - _Color: {r: 1, g: 1, b: 1, a: 1} 94 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 95 | - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} 96 | - _WireframeBaseColor: {r: 0.62352943, g: 0.5058824, b: 0.019607844, a: 1} 97 | - _WireframeEmissionColor: {r: 0, g: 0, b: 0, a: 1} 98 | - _WireframeSpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} 99 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Materials/Wireframe Teapot.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d0eb475fada6f92448c739cb5f02521d 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Tessellation.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 767e6157f574de249819733dc1a54460 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Tessellation/TessellationCommon.hlsl: -------------------------------------------------------------------------------- 1 | #ifndef UNIVERSAL_TESSELLATION_COMMON_INCLUDED 2 | #define UNIVERSAL_TESSELLATION_COMMON_INCLUDED 3 | 4 | #if defined(SHADER_API_XBOXONE) || defined(SHADER_API_PSSL) 5 | // AMD recommand this value for GCN http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2013/05/GCNPerformanceTweets.pdf 6 | #define MAX_TESSELLATION_FACTORS 15.0 7 | #else 8 | #define MAX_TESSELLATION_FACTORS 64.0 9 | #endif 10 | 11 | struct TessellationFactors 12 | { 13 | float edge[3] : SV_TessFactor; 14 | float inside : SV_InsideTessFactor; 15 | }; 16 | 17 | float4 GetTessellationFactors(float3 p0, float3 p1, float3 p2, float3 n0, float3 n1, float3 n2) 18 | { 19 | bool3 frustumCullEdgesMainView = CullTriangleEdgesFrustum(p0, p1, p2, 0, _FrustumPlanes, 5); // Do not test the far plane 20 | 21 | float3 edgeTessFactors = float3(frustumCullEdgesMainView.x ? 0 : 1, frustumCullEdgesMainView.y ? 0 : 1, frustumCullEdgesMainView.z ? 0 : 1); 22 | 23 | /* 24 | // Adaptive screen space tessellation 25 | if (_TessellationFactorTriangleSize > 0.0) 26 | { 27 | // return a value between 0 and 1 28 | // Warning: '_ViewProjMatrix' can be the viewproj matrix of the light when we render shadows, that's why we use _CameraViewProjMatrix instead 29 | edgeTessFactors *= GetScreenSpaceTessFactor(p0, p1, p2, mul(unity_CameraProjection, unity_WorldToCamera), _ScreenParams, _TessellationFactorTriangleSize); // Use primary camera view 30 | } 31 | */ 32 | 33 | // Distance based tessellation 34 | if (_TessellationFactorMaxDistance > 0.0) 35 | { 36 | float3 distFactor = GetDistanceBasedTessFactor(p0, p1, p2, _WorldSpaceCameraPos, _TessellationFactorMinDistance, _TessellationFactorMaxDistance); // Use primary camera view 37 | // We square the disance factor as it allow a better percptual descrease of vertex density. 38 | edgeTessFactors *= distFactor * distFactor; 39 | } 40 | 41 | edgeTessFactors *= _TessellationFactor; 42 | 43 | // TessFactor below 1.0 have no effect. At 0 it kill the triangle, so clamp it to 1.0 44 | edgeTessFactors = max(edgeTessFactors, float3(1.0, 1.0, 1.0)); 45 | 46 | return CalcTriTessFactorsFromEdgeTessFactors(edgeTessFactors); 47 | } 48 | 49 | [maxtessfactor(MAX_TESSELLATION_FACTORS)] 50 | [domain("tri")] 51 | [partitioning("fractional_odd")] 52 | [outputtopology("triangle_cw")] 53 | [patchconstantfunc("HullConstant")] 54 | [outputcontrolpoints(3)] 55 | VaryingsToDS Hull( 56 | InputPatch input, 57 | uint id : SV_OutputControlPointID) 58 | { 59 | return input[id]; 60 | } 61 | 62 | TessellationFactors HullConstant(InputPatch input) 63 | { 64 | float4 tessellationFactor = GetTessellationFactors( 65 | input[0].positionWS, input[1].positionWS, input[2].positionWS, 66 | input[0].normalWS, input[1].normalWS, input[2].normalWS); 67 | 68 | TessellationFactors output; 69 | output.edge[0] = min(tessellationFactor.x, MAX_TESSELLATION_FACTORS); 70 | output.edge[1] = min(tessellationFactor.y, MAX_TESSELLATION_FACTORS); 71 | output.edge[2] = min(tessellationFactor.z, MAX_TESSELLATION_FACTORS); 72 | output.inside = min(tessellationFactor.w, MAX_TESSELLATION_FACTORS); 73 | 74 | return output; 75 | } 76 | 77 | [domain("tri")] 78 | Varyings Domain( 79 | TessellationFactors factors, 80 | const OutputPatch input, 81 | float3 baryCoords : SV_DomainLocation) 82 | { 83 | VaryingsToVS output = InterpolateWithBaryCoordsToDS(input[0], input[1], input[2], baryCoords); 84 | UNITY_TRANSFER_INSTANCE_ID(input[0], output); 85 | 86 | #ifdef _TESSELLATION_PHONG 87 | output.positionWS = PhongTessellation( 88 | output.positionWS, 89 | input[0].positionWS, input[1].positionWS, input[2].positionWS, 90 | input[0].normalWS, input[1].normalWS, input[2].normalWS, 91 | baryCoords, _TessellationShapeFactor 92 | ); 93 | #endif 94 | 95 | return TessellationVertex(output); 96 | } 97 | 98 | #endif // UNIVERSAL_TESSELLATION_COMMON_INCLUDED -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Tessellation/TessellationCommon.hlsl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6ac3d107f9f787f47b72502844adc316 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Tessellation/TessellationDepthOnlyPass.hlsl: -------------------------------------------------------------------------------- 1 | #ifndef UNIVERSAL_TESSELLATION_DEPTH_ONLY_PASS_INCLUDED 2 | #define UNIVERSAL_TESSELLATION_DEPTH_ONLY_PASS_INCLUDED 3 | 4 | #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" 5 | #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" 6 | #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" 7 | 8 | struct Attributes 9 | { 10 | float4 positionOS : POSITION; 11 | float3 normalOS : NORMAL; 12 | float2 texcoord : TEXCOORD0; 13 | UNITY_VERTEX_INPUT_INSTANCE_ID 14 | }; 15 | 16 | struct VaryingsToDS 17 | { 18 | float3 positionWS : INTERNALTESSPOS; 19 | float3 normalWS : NORMAL; 20 | float2 texcoord : TEXCOORD0; 21 | UNITY_VERTEX_INPUT_INSTANCE_ID 22 | }; 23 | 24 | struct VaryingsToVS 25 | { 26 | float3 positionWS : TEXCOORD0; 27 | float3 normalWS : TEXCOORD1; 28 | float2 texcoord : TEXCOORD2; 29 | UNITY_VERTEX_INPUT_INSTANCE_ID 30 | }; 31 | 32 | struct Varyings 33 | { 34 | float2 uv : TEXCOORD0; 35 | float4 positionCS : SV_POSITION; 36 | UNITY_VERTEX_INPUT_INSTANCE_ID 37 | UNITY_VERTEX_OUTPUT_STEREO 38 | }; 39 | 40 | VaryingsToDS DepthOnlyPackAttributesToDS(Attributes input) 41 | { 42 | VaryingsToDS output; 43 | UNITY_TRANSFER_INSTANCE_ID(input, output); 44 | 45 | output.positionWS = TransformObjectToWorld(input.positionOS.xyz); 46 | output.normalWS = TransformObjectToWorldNormal(input.normalOS); 47 | output.texcoord = input.texcoord; 48 | 49 | return output; 50 | } 51 | 52 | VaryingsToVS InterpolateWithBaryCoordsToDS(VaryingsToDS input0, VaryingsToDS input1, VaryingsToDS input2, float3 baryCoords) 53 | { 54 | VaryingsToVS output; 55 | 56 | TESSELLATION_INTERPOLATE_BARY(positionWS, baryCoords); 57 | TESSELLATION_INTERPOLATE_BARY(normalWS, baryCoords); 58 | TESSELLATION_INTERPOLATE_BARY(texcoord, baryCoords); 59 | 60 | return output; 61 | } 62 | 63 | Varyings TessellationVertex(VaryingsToVS input) 64 | { 65 | Varyings output = (Varyings)0; 66 | UNITY_SETUP_INSTANCE_ID(input); 67 | UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output); 68 | 69 | output.uv = TRANSFORM_TEX(input.texcoord, _BaseMap); 70 | output.positionCS = TransformWorldToHClip(input.positionWS); 71 | return output; 72 | } 73 | 74 | half4 DepthOnlyFragment(Varyings input) : SV_TARGET 75 | { 76 | UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input); 77 | 78 | Alpha(SampleAlbedoAlpha(input.uv, TEXTURE2D_ARGS(_BaseMap, sampler_BaseMap)).a, _BaseColor, _Cutoff); 79 | return 0; 80 | } 81 | #endif -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Tessellation/TessellationDepthOnlyPass.hlsl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: da1441da611a34b44a5fa68c184eca85 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Tessellation/TessellationLit.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b6dff1723ef5a1141b116cfc6b673022 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Tessellation/TessellationLitForwardPass.hlsl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 378c7019a8bdb0a4289da5e85e31f7e4 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Tessellation/TessellationLitInput.hlsl: -------------------------------------------------------------------------------- 1 | #ifndef UNIVERSAL_TESSELLATION_LIT_INPUT_INCLUDED 2 | #define UNIVERSAL_TESSELLATION_LIT_INPUT_INCLUDED 3 | 4 | #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" 5 | #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/CommonMaterial.hlsl" 6 | #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/SurfaceInput.hlsl" 7 | 8 | CBUFFER_START(UnityPerMaterial) 9 | float4 _BaseMap_ST; 10 | half4 _BaseColor; 11 | half4 _SpecColor; 12 | half4 _EmissionColor; 13 | half _Cutoff; 14 | half _Smoothness; 15 | half _Metallic; 16 | half _BumpScale; 17 | half _OcclusionStrength; 18 | half _TessellationFactor; 19 | half _TessellationFactorMinDistance; 20 | half _TessellationFactorMaxDistance; 21 | half _TessellationFactorTriangleSize; 22 | half _TessellationShapeFactor; 23 | CBUFFER_END 24 | 25 | TEXTURE2D(_OcclusionMap); SAMPLER(sampler_OcclusionMap); 26 | TEXTURE2D(_MetallicGlossMap); SAMPLER(sampler_MetallicGlossMap); 27 | TEXTURE2D(_SpecGlossMap); SAMPLER(sampler_SpecGlossMap); 28 | 29 | #ifdef _SPECULAR_SETUP 30 | #define SAMPLE_METALLICSPECULAR(uv) SAMPLE_TEXTURE2D(_SpecGlossMap, sampler_SpecGlossMap, uv) 31 | #else 32 | #define SAMPLE_METALLICSPECULAR(uv) SAMPLE_TEXTURE2D(_MetallicGlossMap, sampler_MetallicGlossMap, uv) 33 | #endif 34 | 35 | half4 SampleMetallicSpecGloss(float2 uv, half albedoAlpha) 36 | { 37 | half4 specGloss; 38 | 39 | #ifdef _METALLICSPECGLOSSMAP 40 | specGloss = SAMPLE_METALLICSPECULAR(uv); 41 | #ifdef _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A 42 | specGloss.a = albedoAlpha * _Smoothness; 43 | #else 44 | specGloss.a *= _Smoothness; 45 | #endif 46 | #else // _METALLICSPECGLOSSMAP 47 | #if _SPECULAR_SETUP 48 | specGloss.rgb = _SpecColor.rgb; 49 | #else 50 | specGloss.rgb = _Metallic.rrr; 51 | #endif 52 | 53 | #ifdef _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A 54 | specGloss.a = albedoAlpha * _Smoothness; 55 | #else 56 | specGloss.a = _Smoothness; 57 | #endif 58 | #endif 59 | 60 | return specGloss; 61 | } 62 | 63 | half SampleOcclusion(float2 uv) 64 | { 65 | #ifdef _OCCLUSIONMAP 66 | // TODO: Controls things like these by exposing SHADER_QUALITY levels (low, medium, high) 67 | #if defined(SHADER_API_GLES) 68 | return SAMPLE_TEXTURE2D(_OcclusionMap, sampler_OcclusionMap, uv).g; 69 | #else 70 | half occ = SAMPLE_TEXTURE2D(_OcclusionMap, sampler_OcclusionMap, uv).g; 71 | return LerpWhiteTo(occ, _OcclusionStrength); 72 | #endif 73 | #else 74 | return 1.0; 75 | #endif 76 | } 77 | 78 | inline void InitializeStandardLitSurfaceData(float2 uv, out SurfaceData outSurfaceData) 79 | { 80 | half4 albedoAlpha = SampleAlbedoAlpha(uv, TEXTURE2D_ARGS(_BaseMap, sampler_BaseMap)); 81 | outSurfaceData.alpha = Alpha(albedoAlpha.a, _BaseColor, _Cutoff); 82 | 83 | half4 specGloss = SampleMetallicSpecGloss(uv, albedoAlpha.a); 84 | outSurfaceData.albedo = albedoAlpha.rgb * _BaseColor.rgb; 85 | 86 | #if _SPECULAR_SETUP 87 | outSurfaceData.metallic = 1.0h; 88 | outSurfaceData.specular = specGloss.rgb; 89 | #else 90 | outSurfaceData.metallic = specGloss.r; 91 | outSurfaceData.specular = half3(0.0h, 0.0h, 0.0h); 92 | #endif 93 | 94 | outSurfaceData.smoothness = specGloss.a; 95 | outSurfaceData.normalTS = SampleNormal(uv, TEXTURE2D_ARGS(_BumpMap, sampler_BumpMap), _BumpScale); 96 | outSurfaceData.occlusion = SampleOcclusion(uv); 97 | outSurfaceData.emission = SampleEmission(uv, _EmissionColor.rgb, TEXTURE2D_ARGS(_EmissionMap, sampler_EmissionMap)); 98 | } 99 | 100 | #endif // UNIVERSAL_TESSELLATION_LIT_INPUT_INCLUDED -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Tessellation/TessellationLitInput.hlsl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ab97b4eaaf29c4842b2d0f6cf31b9177 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Tessellation/TessellationShadowCasterPass.hlsl: -------------------------------------------------------------------------------- 1 | #ifndef UNIVERSAL_TESSELLATION_SHADOW_CASTER_PASS_INCLUDED 2 | #define UNIVERSAL_TESSELLATION_SHADOW_CASTER_PASS_INCLUDED 3 | 4 | #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" 5 | #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Shadows.hlsl" 6 | #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" 7 | #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" 8 | 9 | float3 _LightDirection; 10 | 11 | struct Attributes 12 | { 13 | float4 positionOS : POSITION; 14 | float3 normalOS : NORMAL; 15 | float2 texcoord : TEXCOORD0; 16 | UNITY_VERTEX_INPUT_INSTANCE_ID 17 | }; 18 | 19 | struct VaryingsToDS 20 | { 21 | float3 positionWS : INTERNALTESSPOS; 22 | float3 normalWS : NORMAL; 23 | float2 texcoord : TEXCOORD0; 24 | UNITY_VERTEX_INPUT_INSTANCE_ID 25 | }; 26 | 27 | struct VaryingsToVS 28 | { 29 | float3 positionWS : TEXCOORD0; 30 | float3 normalWS : TEXCOORD1; 31 | float2 texcoord : TEXCOORD2; 32 | UNITY_VERTEX_INPUT_INSTANCE_ID 33 | }; 34 | 35 | struct Varyings 36 | { 37 | float2 uv : TEXCOORD0; 38 | float4 positionCS : SV_POSITION; 39 | }; 40 | 41 | float4 GetShadowPositionHClip(VaryingsToVS input) 42 | { 43 | float4 positionCS = TransformWorldToHClip(ApplyShadowBias(input.positionWS, input.normalWS, _LightDirection)); 44 | 45 | #if UNITY_REVERSED_Z 46 | positionCS.z = min(positionCS.z, positionCS.w * UNITY_NEAR_CLIP_VALUE); 47 | #else 48 | positionCS.z = max(positionCS.z, positionCS.w * UNITY_NEAR_CLIP_VALUE); 49 | #endif 50 | 51 | return positionCS; 52 | } 53 | 54 | VaryingsToDS ShadowPassPackAttributesToDS(Attributes input) 55 | { 56 | VaryingsToDS output; 57 | UNITY_TRANSFER_INSTANCE_ID(input, output); 58 | 59 | output.positionWS = TransformObjectToWorld(input.positionOS.xyz); 60 | output.normalWS = TransformObjectToWorldNormal(input.normalOS); 61 | output.texcoord = input.texcoord; 62 | 63 | return output; 64 | } 65 | 66 | VaryingsToVS InterpolateWithBaryCoordsToDS(VaryingsToDS input0, VaryingsToDS input1, VaryingsToDS input2, float3 baryCoords) 67 | { 68 | VaryingsToVS output; 69 | 70 | TESSELLATION_INTERPOLATE_BARY(positionWS, baryCoords); 71 | TESSELLATION_INTERPOLATE_BARY(normalWS, baryCoords); 72 | TESSELLATION_INTERPOLATE_BARY(texcoord, baryCoords); 73 | 74 | return output; 75 | } 76 | 77 | Varyings TessellationVertex(VaryingsToVS input) 78 | { 79 | Varyings output; 80 | UNITY_SETUP_INSTANCE_ID(input); 81 | 82 | output.uv = TRANSFORM_TEX(input.texcoord, _BaseMap); 83 | output.positionCS = GetShadowPositionHClip(input); 84 | return output; 85 | } 86 | 87 | half4 ShadowPassFragment(Varyings input) : SV_TARGET 88 | { 89 | Alpha(SampleAlbedoAlpha(input.uv, TEXTURE2D_ARGS(_BaseMap, sampler_BaseMap)).a, _BaseColor, _Cutoff); 90 | return 0; 91 | } 92 | 93 | #endif -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Tessellation/TessellationShadowCasterPass.hlsl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d5666a6a829bd864da0ac947c470b09b 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Wireframe.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5da8e66e4c0fa94478eec25b0957a949 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Wireframe/WireframeCommon.hlsl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7144e439108fe784295bc9ca259d8bc8 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Wireframe/WireframeLit.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5b983dfa53f7df94ba243eb903e9d950 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Wireframe/WireframeLitForwardPass.hlsl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f57265773dc25d845b2299e9cf183f23 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Wireframe/WireframeLitInput.hlsl: -------------------------------------------------------------------------------- 1 | #ifndef UNIVERSAL_WIREFRAME_LIT_INPUT_INCLUDED 2 | #define UNIVERSAL_WIREFRAME_LIT_INPUT_INCLUDED 3 | 4 | #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" 5 | #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/CommonMaterial.hlsl" 6 | #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/SurfaceInput.hlsl" 7 | 8 | CBUFFER_START(UnityPerMaterial) 9 | float4 _BaseMap_ST; 10 | half4 _BaseColor; 11 | half4 _SpecColor; 12 | half4 _EmissionColor; 13 | half4 _WireframeBaseColor; 14 | half4 _WireframeSpecColor; 15 | half4 _WireframeEmissionColor; 16 | half _Cutoff; 17 | half _Smoothness; 18 | half _Metallic; 19 | half _BumpScale; 20 | half _OcclusionStrength; 21 | half _WireframeSize; 22 | half _WireframeSmoothness; 23 | half _WireframeMetallic; 24 | CBUFFER_END 25 | 26 | TEXTURE2D(_OcclusionMap); SAMPLER(sampler_OcclusionMap); 27 | TEXTURE2D(_MetallicGlossMap); SAMPLER(sampler_MetallicGlossMap); 28 | TEXTURE2D(_SpecGlossMap); SAMPLER(sampler_SpecGlossMap); 29 | 30 | #ifdef _SPECULAR_SETUP 31 | #define SAMPLE_METALLICSPECULAR(uv) SAMPLE_TEXTURE2D(_SpecGlossMap, sampler_SpecGlossMap, uv) 32 | #else 33 | #define SAMPLE_METALLICSPECULAR(uv) SAMPLE_TEXTURE2D(_MetallicGlossMap, sampler_MetallicGlossMap, uv) 34 | #endif 35 | 36 | half4 SampleMetallicSpecGloss(float2 uv, half albedoAlpha) 37 | { 38 | half4 specGloss; 39 | 40 | #ifdef _METALLICSPECGLOSSMAP 41 | specGloss = SAMPLE_METALLICSPECULAR(uv); 42 | #ifdef _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A 43 | specGloss.a = albedoAlpha * _Smoothness; 44 | #else 45 | specGloss.a *= _Smoothness; 46 | #endif 47 | #else // _METALLICSPECGLOSSMAP 48 | #if _SPECULAR_SETUP 49 | specGloss.rgb = _SpecColor.rgb; 50 | #else 51 | specGloss.rgb = _Metallic.rrr; 52 | #endif 53 | 54 | #ifdef _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A 55 | specGloss.a = albedoAlpha * _Smoothness; 56 | #else 57 | specGloss.a = _Smoothness; 58 | #endif 59 | #endif 60 | 61 | return specGloss; 62 | } 63 | 64 | half SampleOcclusion(float2 uv) 65 | { 66 | #ifdef _OCCLUSIONMAP 67 | // TODO: Controls things like these by exposing SHADER_QUALITY levels (low, medium, high) 68 | #if defined(SHADER_API_GLES) 69 | return SAMPLE_TEXTURE2D(_OcclusionMap, sampler_OcclusionMap, uv).g; 70 | #else 71 | half occ = SAMPLE_TEXTURE2D(_OcclusionMap, sampler_OcclusionMap, uv).g; 72 | return LerpWhiteTo(occ, _OcclusionStrength); 73 | #endif 74 | #else 75 | return 1.0; 76 | #endif 77 | } 78 | 79 | inline void InitializeWireframeLitSurfaceData(float2 uv, float3 baryCoord, out SurfaceData outSurfaceData) 80 | { 81 | half wireframe = saturate(WireframeBS(baryCoord, _WireframeSize)); 82 | 83 | half4 albedoAlpha = SampleAlbedoAlpha(uv, TEXTURE2D_ARGS(_BaseMap, sampler_BaseMap)); 84 | outSurfaceData.alpha = Alpha(min(albedoAlpha.a, wireframe), _BaseColor, _Cutoff); 85 | 86 | half4 specGloss = SampleMetallicSpecGloss(uv, albedoAlpha.a); 87 | outSurfaceData.albedo = lerp(albedoAlpha.rgb * _BaseColor.rgb, _WireframeBaseColor.rgb, wireframe); 88 | 89 | #if _SPECULAR_SETUP 90 | outSurfaceData.metallic = 1.0h; 91 | outSurfaceData.specular = lerp(specGloss.rgb, _WireframeSpecColor.rgb, wireframe); 92 | #else 93 | outSurfaceData.metallic = lerp(specGloss.r, _WireframeMetallic, wireframe); 94 | outSurfaceData.specular = half3(0.0h, 0.0h, 0.0h); 95 | #endif 96 | 97 | outSurfaceData.smoothness = lerp(specGloss.a, _WireframeSmoothness, wireframe); 98 | outSurfaceData.normalTS = lerp(SampleNormal(uv, TEXTURE2D_ARGS(_BumpMap, sampler_BumpMap), _BumpScale), half3(0.0h, 0.0h, 1.0h), wireframe); 99 | outSurfaceData.occlusion = lerp(SampleOcclusion(uv), 1.0, wireframe); 100 | outSurfaceData.emission = lerp(SampleEmission(uv, _EmissionColor.rgb, TEXTURE2D_ARGS(_EmissionMap, sampler_EmissionMap)), _WireframeEmissionColor.rgb, wireframe); 101 | } 102 | 103 | #endif // UNIVERSAL_INPUT_SURFACE_PBR_INCLUDED 104 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Wireframe/WireframeLitInput.hlsl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2f820d20014386a4caeea54a3c7c58e0 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Wireframe/WireframeUnlit.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d98fc9f29d555c648bee3d6f441d03ca 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Wireframe/WireframeUnlitForwardPass.hlsl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 649a24111c48d5a45b379a7cc250de74 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Wireframe/WireframeUnlitInput.hlsl: -------------------------------------------------------------------------------- 1 | #ifndef UNIVERSAL_WIREFRAME_UNLIT_INPUT_INCLUDED 2 | #define UNIVERSAL_WIREFRAME_UNLIT_INPUT_INCLUDED 3 | 4 | #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" 5 | #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/CommonMaterial.hlsl" 6 | #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/SurfaceInput.hlsl" 7 | 8 | CBUFFER_START(UnityPerMaterial) 9 | float4 _BaseMap_ST; 10 | half4 _BaseColor; 11 | half4 _WireframeBaseColor; 12 | half _Cutoff; 13 | half _WireframeSize; 14 | half _WireframeSqueezeMin; 15 | half _WireframeSqueezeMax; 16 | half _WireframeDashRepeat; 17 | half _WireframeDashLength; 18 | half _WireframeDashOverlap; 19 | CBUFFER_END 20 | 21 | #endif -------------------------------------------------------------------------------- /Assets/Geometry Shader Examples/Wireframe/WireframeUnlitInput.hlsl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fb55549e78c8c104f9a9671ee317ed5c 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Presets.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 558255460b74ec04fa70b5570e9327bd 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Presets/AudioCompressedInMemory.preset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2dd802e4d37c65149922028d3e973832 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Presets/AudioStreaming.preset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 86bcce7f5575b54408aa0f3a7d321039 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2655988077585873504 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Presets/Defaults.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 71ea82b02df99c2439e0dc8e4e1ebc24 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Presets/Defaults/AlbedoTexture_Default.preset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e8537455c6c08bd4e8bf0be3707da685 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2655988077585873504 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Presets/Defaults/AudioDecompressOnLoad.preset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e7689051185d12f4298e1ebb2693a29f 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Presets/Defaults/DirectionalLight_Default.preset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!181963792 &2655988077585873504 4 | Preset: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInternal: {fileID: 0} 8 | m_Name: DirectionalLight_Default 9 | m_TargetType: 10 | m_NativeTypeID: 108 11 | m_ManagedTypePPtr: {fileID: 0} 12 | m_ManagedTypeFallback: 13 | m_Properties: 14 | - target: {fileID: 0} 15 | propertyPath: m_Enabled 16 | value: 1 17 | objectReference: {fileID: 0} 18 | - target: {fileID: 0} 19 | propertyPath: m_Type 20 | value: 1 21 | objectReference: {fileID: 0} 22 | - target: {fileID: 0} 23 | propertyPath: m_Color.r 24 | value: 1 25 | objectReference: {fileID: 0} 26 | - target: {fileID: 0} 27 | propertyPath: m_Color.g 28 | value: 0.95686275 29 | objectReference: {fileID: 0} 30 | - target: {fileID: 0} 31 | propertyPath: m_Color.b 32 | value: 0.8392157 33 | objectReference: {fileID: 0} 34 | - target: {fileID: 0} 35 | propertyPath: m_Color.a 36 | value: 1 37 | objectReference: {fileID: 0} 38 | - target: {fileID: 0} 39 | propertyPath: m_Intensity 40 | value: 2 41 | objectReference: {fileID: 0} 42 | - target: {fileID: 0} 43 | propertyPath: m_Range 44 | value: 10 45 | objectReference: {fileID: 0} 46 | - target: {fileID: 0} 47 | propertyPath: m_SpotAngle 48 | value: 30 49 | objectReference: {fileID: 0} 50 | - target: {fileID: 0} 51 | propertyPath: m_CookieSize 52 | value: 10 53 | objectReference: {fileID: 0} 54 | - target: {fileID: 0} 55 | propertyPath: m_Shadows.m_Type 56 | value: 2 57 | objectReference: {fileID: 0} 58 | - target: {fileID: 0} 59 | propertyPath: m_Shadows.m_Resolution 60 | value: -1 61 | objectReference: {fileID: 0} 62 | - target: {fileID: 0} 63 | propertyPath: m_Shadows.m_CustomResolution 64 | value: -1 65 | objectReference: {fileID: 0} 66 | - target: {fileID: 0} 67 | propertyPath: m_Shadows.m_Strength 68 | value: 1 69 | objectReference: {fileID: 0} 70 | - target: {fileID: 0} 71 | propertyPath: m_Shadows.m_Bias 72 | value: 0.02 73 | objectReference: {fileID: 0} 74 | - target: {fileID: 0} 75 | propertyPath: m_Shadows.m_NormalBias 76 | value: 0.1 77 | objectReference: {fileID: 0} 78 | - target: {fileID: 0} 79 | propertyPath: m_Shadows.m_NearPlane 80 | value: 0.1 81 | objectReference: {fileID: 0} 82 | - target: {fileID: 0} 83 | propertyPath: m_Cookie 84 | value: 85 | objectReference: {fileID: 0} 86 | - target: {fileID: 0} 87 | propertyPath: m_DrawHalo 88 | value: 0 89 | objectReference: {fileID: 0} 90 | - target: {fileID: 0} 91 | propertyPath: m_Flare 92 | value: 93 | objectReference: {fileID: 0} 94 | - target: {fileID: 0} 95 | propertyPath: m_RenderMode 96 | value: 0 97 | objectReference: {fileID: 0} 98 | - target: {fileID: 0} 99 | propertyPath: m_CullingMask.m_Bits 100 | value: 4294967295 101 | objectReference: {fileID: 0} 102 | - target: {fileID: 0} 103 | propertyPath: m_Lightmapping 104 | value: 4 105 | objectReference: {fileID: 0} 106 | - target: {fileID: 0} 107 | propertyPath: m_LightShadowCasterMode 108 | value: 0 109 | objectReference: {fileID: 0} 110 | - target: {fileID: 0} 111 | propertyPath: m_AreaSize.x 112 | value: 1 113 | objectReference: {fileID: 0} 114 | - target: {fileID: 0} 115 | propertyPath: m_AreaSize.y 116 | value: 1 117 | objectReference: {fileID: 0} 118 | - target: {fileID: 0} 119 | propertyPath: m_BounceIntensity 120 | value: 1 121 | objectReference: {fileID: 0} 122 | - target: {fileID: 0} 123 | propertyPath: m_ColorTemperature 124 | value: 6570 125 | objectReference: {fileID: 0} 126 | - target: {fileID: 0} 127 | propertyPath: m_UseColorTemperature 128 | value: 0 129 | objectReference: {fileID: 0} 130 | - target: {fileID: 0} 131 | propertyPath: m_ShadowRadius 132 | value: 0 133 | objectReference: {fileID: 0} 134 | - target: {fileID: 0} 135 | propertyPath: m_ShadowAngle 136 | value: 0 137 | objectReference: {fileID: 0} 138 | -------------------------------------------------------------------------------- /Assets/Presets/Defaults/DirectionalLight_Default.preset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 463065d4f17d1d94d848aa127b94dd43 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2655988077585873504 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Presets/NormalTexture.preset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 14a57cf3b9fa1c74b884aa7e0dcf1faa 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2655988077585873504 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Presets/UtilityTexture.preset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 45f7b2e3c78185248b3adbb14429c2ab 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2655988077585873504 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Sample Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6eecb8dfbf3aa8a4fbf4bf179a8fb7e3 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/Battle Damaged Sci-fi Helmet.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dbaee71d31c842b479e69584ca256471 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/Battle Damaged Sci-fi Helmet/README.md: -------------------------------------------------------------------------------- 1 | Battle Damaged Sci-fi Helmet - PBR by theblueturtle_ 2 | 3 | Published under a Creative Commons Attribution-NonCommercial license -------------------------------------------------------------------------------- /Assets/Sample Scenes/Battle Damaged Sci-fi Helmet/README.md.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fb344735f592611479024da9ad7f82ca 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/Battle Damaged Sci-fi Helmet/Sci-Fi_Helmet.obj.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ab9ce097ce5d70142918cb9ad52b8bda 3 | ModelImporter: 4 | serializedVersion: 19300 5 | internalIDToNameTable: [] 6 | externalObjects: 7 | - first: 8 | type: UnityEngine:Material 9 | assembly: UnityEngine.CoreModule 10 | name: node_damagedHelmet_-6514Mat 11 | second: {fileID: 2100000, guid: 46768373acbfbbf44a760833826ecee6, type: 2} 12 | materials: 13 | materialImportMode: 1 14 | materialName: 0 15 | materialSearch: 1 16 | materialLocation: 1 17 | animations: 18 | legacyGenerateAnimations: 4 19 | bakeSimulation: 0 20 | resampleCurves: 1 21 | optimizeGameObjects: 0 22 | motionNodeName: 23 | rigImportErrors: 24 | rigImportWarnings: 25 | animationImportErrors: 26 | animationImportWarnings: 27 | animationRetargetingWarnings: 28 | animationDoRetargetingWarnings: 0 29 | importAnimatedCustomProperties: 0 30 | importConstraints: 0 31 | animationCompression: 1 32 | animationRotationError: 0.5 33 | animationPositionError: 0.5 34 | animationScaleError: 0.5 35 | animationWrapMode: 0 36 | extraExposedTransformPaths: [] 37 | extraUserProperties: [] 38 | clipAnimations: [] 39 | isReadable: 0 40 | meshes: 41 | lODScreenPercentages: [] 42 | globalScale: 1 43 | meshCompression: 0 44 | addColliders: 0 45 | useSRGBMaterialColor: 1 46 | sortHierarchyByName: 1 47 | importVisibility: 1 48 | importBlendShapes: 1 49 | importCameras: 0 50 | importLights: 0 51 | swapUVChannels: 0 52 | generateSecondaryUV: 0 53 | useFileUnits: 1 54 | keepQuads: 0 55 | weldVertices: 1 56 | preserveHierarchy: 0 57 | skinWeightsMode: 0 58 | maxBonesPerVertex: 4 59 | minBoneWeight: 0.001 60 | meshOptimizationFlags: -1 61 | indexFormat: 0 62 | secondaryUVAngleDistortion: 8 63 | secondaryUVAreaDistortion: 15.000001 64 | secondaryUVHardAngle: 88 65 | secondaryUVPackMargin: 4 66 | useFileScale: 1 67 | tangentSpace: 68 | normalSmoothAngle: 60 69 | normalImportMode: 0 70 | tangentImportMode: 3 71 | normalCalculationMode: 4 72 | legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 73 | blendShapeNormalImportMode: 1 74 | normalSmoothingSource: 0 75 | referencedClips: [] 76 | importAnimation: 0 77 | humanDescription: 78 | serializedVersion: 3 79 | human: [] 80 | skeleton: [] 81 | armTwist: 0.5 82 | foreArmTwist: 0.5 83 | upperLegTwist: 0.5 84 | legTwist: 0.5 85 | armStretch: 0.05 86 | legStretch: 0.05 87 | feetSpacing: 0 88 | globalScale: 1 89 | rootMotionBoneName: 90 | hasTranslationDoF: 0 91 | hasExtraRoot: 0 92 | skeletonHasParents: 1 93 | lastHumanDescriptionAvatarSource: {instanceID: 0} 94 | autoGenerateAvatarMappingIfUnspecified: 1 95 | animationType: 0 96 | humanoidOversampling: 1 97 | avatarSetup: 0 98 | additionalBone: 0 99 | userData: 100 | assetBundleName: 101 | assetBundleVariant: 102 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/Battle Damaged Sci-fi Helmet/Sci-Fi_Helmet_Albedo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJT-Jackton/URP-Geometry-Shader-Example/0573cf1f65158af11cad90b5d7a91c278c310d9f/Assets/Sample Scenes/Battle Damaged Sci-fi Helmet/Sci-Fi_Helmet_Albedo.png -------------------------------------------------------------------------------- /Assets/Sample Scenes/Battle Damaged Sci-fi Helmet/Sci-Fi_Helmet_Albedo.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9a3ec5a06202b954f993b0bb1f7a0e40 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 10 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 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: 2 36 | mipBias: -100 37 | wrapU: 0 38 | wrapV: 0 39 | wrapW: 0 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 3 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 8192 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | forceMaximumCompressionQuality_BC6H_BC7: 0 73 | - serializedVersion: 3 74 | buildTarget: Standalone 75 | maxTextureSize: 8192 76 | resizeAlgorithm: 0 77 | textureFormat: -1 78 | textureCompression: 1 79 | compressionQuality: 50 80 | crunchedCompression: 0 81 | allowsAlphaSplitting: 0 82 | overridden: 0 83 | androidETC2FallbackOverride: 0 84 | forceMaximumCompressionQuality_BC6H_BC7: 0 85 | - serializedVersion: 3 86 | buildTarget: iPhone 87 | maxTextureSize: 8192 88 | resizeAlgorithm: 0 89 | textureFormat: -1 90 | textureCompression: 1 91 | compressionQuality: 50 92 | crunchedCompression: 0 93 | allowsAlphaSplitting: 0 94 | overridden: 0 95 | androidETC2FallbackOverride: 0 96 | forceMaximumCompressionQuality_BC6H_BC7: 0 97 | - serializedVersion: 3 98 | buildTarget: Android 99 | maxTextureSize: 8192 100 | resizeAlgorithm: 0 101 | textureFormat: -1 102 | textureCompression: 1 103 | compressionQuality: 50 104 | crunchedCompression: 0 105 | allowsAlphaSplitting: 0 106 | overridden: 0 107 | androidETC2FallbackOverride: 0 108 | forceMaximumCompressionQuality_BC6H_BC7: 0 109 | - serializedVersion: 3 110 | buildTarget: Windows Store Apps 111 | maxTextureSize: 8192 112 | resizeAlgorithm: 0 113 | textureFormat: -1 114 | textureCompression: 1 115 | compressionQuality: 50 116 | crunchedCompression: 0 117 | allowsAlphaSplitting: 0 118 | overridden: 0 119 | androidETC2FallbackOverride: 0 120 | forceMaximumCompressionQuality_BC6H_BC7: 0 121 | spriteSheet: 122 | serializedVersion: 2 123 | sprites: [] 124 | outline: [] 125 | physicsShape: [] 126 | bones: [] 127 | spriteID: 128 | internalID: 0 129 | vertices: [] 130 | indices: 131 | edges: [] 132 | weights: [] 133 | secondaryTextures: [] 134 | spritePackingTag: 135 | pSDRemoveMatte: 0 136 | pSDShowRemoveMatteOption: 0 137 | userData: 138 | assetBundleName: 139 | assetBundleVariant: 140 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/Battle Damaged Sci-fi Helmet/Sci-Fi_Helmet_Emission.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJT-Jackton/URP-Geometry-Shader-Example/0573cf1f65158af11cad90b5d7a91c278c310d9f/Assets/Sample Scenes/Battle Damaged Sci-fi Helmet/Sci-Fi_Helmet_Emission.png -------------------------------------------------------------------------------- /Assets/Sample Scenes/Battle Damaged Sci-fi Helmet/Sci-Fi_Helmet_Emission.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2723178f74395224b8499c2d882be8ec 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 10 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 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: 2 36 | mipBias: -100 37 | wrapU: 0 38 | wrapV: 0 39 | wrapW: 0 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 3 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 8192 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | forceMaximumCompressionQuality_BC6H_BC7: 0 73 | - serializedVersion: 3 74 | buildTarget: Standalone 75 | maxTextureSize: 8192 76 | resizeAlgorithm: 0 77 | textureFormat: -1 78 | textureCompression: 1 79 | compressionQuality: 50 80 | crunchedCompression: 0 81 | allowsAlphaSplitting: 0 82 | overridden: 0 83 | androidETC2FallbackOverride: 0 84 | forceMaximumCompressionQuality_BC6H_BC7: 0 85 | - serializedVersion: 3 86 | buildTarget: iPhone 87 | maxTextureSize: 8192 88 | resizeAlgorithm: 0 89 | textureFormat: -1 90 | textureCompression: 1 91 | compressionQuality: 50 92 | crunchedCompression: 0 93 | allowsAlphaSplitting: 0 94 | overridden: 0 95 | androidETC2FallbackOverride: 0 96 | forceMaximumCompressionQuality_BC6H_BC7: 0 97 | - serializedVersion: 3 98 | buildTarget: Android 99 | maxTextureSize: 8192 100 | resizeAlgorithm: 0 101 | textureFormat: -1 102 | textureCompression: 1 103 | compressionQuality: 50 104 | crunchedCompression: 0 105 | allowsAlphaSplitting: 0 106 | overridden: 0 107 | androidETC2FallbackOverride: 0 108 | forceMaximumCompressionQuality_BC6H_BC7: 0 109 | - serializedVersion: 3 110 | buildTarget: Windows Store Apps 111 | maxTextureSize: 8192 112 | resizeAlgorithm: 0 113 | textureFormat: -1 114 | textureCompression: 1 115 | compressionQuality: 50 116 | crunchedCompression: 0 117 | allowsAlphaSplitting: 0 118 | overridden: 0 119 | androidETC2FallbackOverride: 0 120 | forceMaximumCompressionQuality_BC6H_BC7: 0 121 | spriteSheet: 122 | serializedVersion: 2 123 | sprites: [] 124 | outline: [] 125 | physicsShape: [] 126 | bones: [] 127 | spriteID: 128 | internalID: 0 129 | vertices: [] 130 | indices: 131 | edges: [] 132 | weights: [] 133 | secondaryTextures: [] 134 | spritePackingTag: 135 | pSDRemoveMatte: 0 136 | pSDShowRemoveMatteOption: 0 137 | userData: 138 | assetBundleName: 139 | assetBundleVariant: 140 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/Battle Damaged Sci-fi Helmet/Sci-Fi_Helmet_MaskMap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJT-Jackton/URP-Geometry-Shader-Example/0573cf1f65158af11cad90b5d7a91c278c310d9f/Assets/Sample Scenes/Battle Damaged Sci-fi Helmet/Sci-Fi_Helmet_MaskMap.png -------------------------------------------------------------------------------- /Assets/Sample Scenes/Battle Damaged Sci-fi Helmet/Sci-Fi_Helmet_MaskMap.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 04fd1f4addcb9384abd3cfde75068e4a 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 10 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 0 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 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: 2 36 | mipBias: -100 37 | wrapU: 0 38 | wrapV: 0 39 | wrapW: 0 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 3 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 8192 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | forceMaximumCompressionQuality_BC6H_BC7: 0 73 | - serializedVersion: 3 74 | buildTarget: Standalone 75 | maxTextureSize: 8192 76 | resizeAlgorithm: 0 77 | textureFormat: -1 78 | textureCompression: 1 79 | compressionQuality: 50 80 | crunchedCompression: 0 81 | allowsAlphaSplitting: 0 82 | overridden: 0 83 | androidETC2FallbackOverride: 0 84 | forceMaximumCompressionQuality_BC6H_BC7: 0 85 | - serializedVersion: 3 86 | buildTarget: iPhone 87 | maxTextureSize: 8192 88 | resizeAlgorithm: 0 89 | textureFormat: -1 90 | textureCompression: 1 91 | compressionQuality: 50 92 | crunchedCompression: 0 93 | allowsAlphaSplitting: 0 94 | overridden: 0 95 | androidETC2FallbackOverride: 0 96 | forceMaximumCompressionQuality_BC6H_BC7: 0 97 | - serializedVersion: 3 98 | buildTarget: Android 99 | maxTextureSize: 8192 100 | resizeAlgorithm: 0 101 | textureFormat: -1 102 | textureCompression: 1 103 | compressionQuality: 50 104 | crunchedCompression: 0 105 | allowsAlphaSplitting: 0 106 | overridden: 0 107 | androidETC2FallbackOverride: 0 108 | forceMaximumCompressionQuality_BC6H_BC7: 0 109 | - serializedVersion: 3 110 | buildTarget: Windows Store Apps 111 | maxTextureSize: 8192 112 | resizeAlgorithm: 0 113 | textureFormat: -1 114 | textureCompression: 1 115 | compressionQuality: 50 116 | crunchedCompression: 0 117 | allowsAlphaSplitting: 0 118 | overridden: 0 119 | androidETC2FallbackOverride: 0 120 | forceMaximumCompressionQuality_BC6H_BC7: 0 121 | spriteSheet: 122 | serializedVersion: 2 123 | sprites: [] 124 | outline: [] 125 | physicsShape: [] 126 | bones: [] 127 | spriteID: 128 | internalID: 0 129 | vertices: [] 130 | indices: 131 | edges: [] 132 | weights: [] 133 | secondaryTextures: [] 134 | spritePackingTag: 135 | pSDRemoveMatte: 0 136 | pSDShowRemoveMatteOption: 0 137 | userData: 138 | assetBundleName: 139 | assetBundleVariant: 140 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/Battle Damaged Sci-fi Helmet/Sci-Fi_Helmet_Mat.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: Sci-Fi_Helmet_Mat 11 | m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} 12 | m_ShaderKeywords: _EMISSION _METALLICSPECGLOSSMAP _NORMALMAP 13 | m_LightmapFlags: 2 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: 2050 17 | stringTagMap: 18 | RenderType: Opaque 19 | disabledShaderPasses: [] 20 | m_SavedProperties: 21 | serializedVersion: 3 22 | m_TexEnvs: 23 | - _BaseMap: 24 | m_Texture: {fileID: 2800000, guid: 9a3ec5a06202b954f993b0bb1f7a0e40, type: 3} 25 | m_Scale: {x: 1, y: 1} 26 | m_Offset: {x: 0, y: 0} 27 | - _BumpMap: 28 | m_Texture: {fileID: 2800000, guid: aa155f5e983c79348afd2b0afbb3484d, type: 3} 29 | m_Scale: {x: 1, y: 1} 30 | m_Offset: {x: 0, y: 0} 31 | - _EmissionMap: 32 | m_Texture: {fileID: 2800000, guid: 2723178f74395224b8499c2d882be8ec, type: 3} 33 | m_Scale: {x: 1, y: 1} 34 | m_Offset: {x: 0, y: 0} 35 | - _MainTex: 36 | m_Texture: {fileID: 2800000, guid: 9a3ec5a06202b954f993b0bb1f7a0e40, type: 3} 37 | m_Scale: {x: 1, y: 1} 38 | m_Offset: {x: 0, y: 0} 39 | - _MetallicGlossMap: 40 | m_Texture: {fileID: 2800000, guid: 04fd1f4addcb9384abd3cfde75068e4a, type: 3} 41 | m_Scale: {x: 1, y: 1} 42 | m_Offset: {x: 0, y: 0} 43 | - _OcclusionMap: 44 | m_Texture: {fileID: 0} 45 | m_Scale: {x: 1, y: 1} 46 | m_Offset: {x: 0, y: 0} 47 | - _SpecGlossMap: 48 | m_Texture: {fileID: 0} 49 | m_Scale: {x: 1, y: 1} 50 | m_Offset: {x: 0, y: 0} 51 | m_Floats: 52 | - _AlphaClip: 0 53 | - _Blend: 0 54 | - _BumpScale: 1 55 | - _Cull: 2 56 | - _Cutoff: 0.5 57 | - _DstBlend: 0 58 | - _EnvironmentReflections: 1 59 | - _GlossMapScale: 0 60 | - _Glossiness: 0 61 | - _GlossyReflections: 0 62 | - _Metallic: 0 63 | - _OcclusionStrength: 1 64 | - _QueueOffset: 0 65 | - _ReceiveShadows: 1 66 | - _Smoothness: 1 67 | - _SmoothnessTextureChannel: 0 68 | - _SpecularHighlights: 1 69 | - _SrcBlend: 1 70 | - _Surface: 0 71 | - _WorkflowMode: 1 72 | - _ZWrite: 1 73 | m_Colors: 74 | - _BaseColor: {r: 1, g: 1, b: 1, a: 1} 75 | - _Color: {r: 0.5, g: 0.5, b: 0.5, a: 1} 76 | - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} 77 | - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} 78 | --- !u!114 &2025780214278841546 79 | MonoBehaviour: 80 | m_ObjectHideFlags: 11 81 | m_CorrespondingSourceObject: {fileID: 0} 82 | m_PrefabInstance: {fileID: 0} 83 | m_PrefabAsset: {fileID: 0} 84 | m_GameObject: {fileID: 0} 85 | m_Enabled: 1 86 | m_EditorHideFlags: 0 87 | m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} 88 | m_Name: 89 | m_EditorClassIdentifier: 90 | version: 1 91 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/Battle Damaged Sci-fi Helmet/Sci-Fi_Helmet_Mat.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 46768373acbfbbf44a760833826ecee6 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/Battle Damaged Sci-fi Helmet/Sci-Fi_Helmet_Normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJT-Jackton/URP-Geometry-Shader-Example/0573cf1f65158af11cad90b5d7a91c278c310d9f/Assets/Sample Scenes/Battle Damaged Sci-fi Helmet/Sci-Fi_Helmet_Normal.png -------------------------------------------------------------------------------- /Assets/Sample Scenes/Battle Damaged Sci-fi Helmet/Sci-Fi_Helmet_Normal.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: aa155f5e983c79348afd2b0afbb3484d 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 10 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 0 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 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: 2 36 | mipBias: -100 37 | wrapU: 0 38 | wrapV: 0 39 | wrapW: 0 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 1 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 3 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 8192 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | forceMaximumCompressionQuality_BC6H_BC7: 0 73 | - serializedVersion: 3 74 | buildTarget: Standalone 75 | maxTextureSize: 8192 76 | resizeAlgorithm: 0 77 | textureFormat: -1 78 | textureCompression: 1 79 | compressionQuality: 50 80 | crunchedCompression: 0 81 | allowsAlphaSplitting: 0 82 | overridden: 0 83 | androidETC2FallbackOverride: 0 84 | forceMaximumCompressionQuality_BC6H_BC7: 0 85 | - serializedVersion: 3 86 | buildTarget: iPhone 87 | maxTextureSize: 8192 88 | resizeAlgorithm: 0 89 | textureFormat: -1 90 | textureCompression: 1 91 | compressionQuality: 50 92 | crunchedCompression: 0 93 | allowsAlphaSplitting: 0 94 | overridden: 0 95 | androidETC2FallbackOverride: 0 96 | forceMaximumCompressionQuality_BC6H_BC7: 0 97 | - serializedVersion: 3 98 | buildTarget: Android 99 | maxTextureSize: 8192 100 | resizeAlgorithm: 0 101 | textureFormat: -1 102 | textureCompression: 1 103 | compressionQuality: 50 104 | crunchedCompression: 0 105 | allowsAlphaSplitting: 0 106 | overridden: 0 107 | androidETC2FallbackOverride: 0 108 | forceMaximumCompressionQuality_BC6H_BC7: 0 109 | - serializedVersion: 3 110 | buildTarget: Windows Store Apps 111 | maxTextureSize: 8192 112 | resizeAlgorithm: 0 113 | textureFormat: -1 114 | textureCompression: 1 115 | compressionQuality: 50 116 | crunchedCompression: 0 117 | allowsAlphaSplitting: 0 118 | overridden: 0 119 | androidETC2FallbackOverride: 0 120 | forceMaximumCompressionQuality_BC6H_BC7: 0 121 | spriteSheet: 122 | serializedVersion: 2 123 | sprites: [] 124 | outline: [] 125 | physicsShape: [] 126 | bones: [] 127 | spriteID: 128 | internalID: 0 129 | vertices: [] 130 | indices: 131 | edges: [] 132 | weights: [] 133 | secondaryTextures: [] 134 | spritePackingTag: 135 | pSDRemoveMatte: 0 136 | pSDShowRemoveMatteOption: 0 137 | userData: 138 | assetBundleName: 139 | assetBundleVariant: 140 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/Battle Damaged Sci-fi Helmet/Sci-Fi_Helmet_Occlusion.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJT-Jackton/URP-Geometry-Shader-Example/0573cf1f65158af11cad90b5d7a91c278c310d9f/Assets/Sample Scenes/Battle Damaged Sci-fi Helmet/Sci-Fi_Helmet_Occlusion.jpg -------------------------------------------------------------------------------- /Assets/Sample Scenes/Battle Damaged Sci-fi Helmet/Sci-Fi_Helmet_Occlusion.jpg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b7b1ebdd8902e0a4cb518a16e66e9db5 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 10 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 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: 2 36 | mipBias: -100 37 | wrapU: 0 38 | wrapV: 0 39 | wrapW: 0 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 3 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 8192 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | forceMaximumCompressionQuality_BC6H_BC7: 0 73 | - serializedVersion: 3 74 | buildTarget: Standalone 75 | maxTextureSize: 8192 76 | resizeAlgorithm: 0 77 | textureFormat: -1 78 | textureCompression: 1 79 | compressionQuality: 50 80 | crunchedCompression: 0 81 | allowsAlphaSplitting: 0 82 | overridden: 0 83 | androidETC2FallbackOverride: 0 84 | forceMaximumCompressionQuality_BC6H_BC7: 0 85 | - serializedVersion: 3 86 | buildTarget: iPhone 87 | maxTextureSize: 8192 88 | resizeAlgorithm: 0 89 | textureFormat: -1 90 | textureCompression: 1 91 | compressionQuality: 50 92 | crunchedCompression: 0 93 | allowsAlphaSplitting: 0 94 | overridden: 0 95 | androidETC2FallbackOverride: 0 96 | forceMaximumCompressionQuality_BC6H_BC7: 0 97 | - serializedVersion: 3 98 | buildTarget: Android 99 | maxTextureSize: 8192 100 | resizeAlgorithm: 0 101 | textureFormat: -1 102 | textureCompression: 1 103 | compressionQuality: 50 104 | crunchedCompression: 0 105 | allowsAlphaSplitting: 0 106 | overridden: 0 107 | androidETC2FallbackOverride: 0 108 | forceMaximumCompressionQuality_BC6H_BC7: 0 109 | - serializedVersion: 3 110 | buildTarget: Windows Store Apps 111 | maxTextureSize: 8192 112 | resizeAlgorithm: 0 113 | textureFormat: -1 114 | textureCompression: 1 115 | compressionQuality: 50 116 | crunchedCompression: 0 117 | allowsAlphaSplitting: 0 118 | overridden: 0 119 | androidETC2FallbackOverride: 0 120 | forceMaximumCompressionQuality_BC6H_BC7: 0 121 | spriteSheet: 122 | serializedVersion: 2 123 | sprites: [] 124 | outline: [] 125 | physicsShape: [] 126 | bones: [] 127 | spriteID: 128 | internalID: 0 129 | vertices: [] 130 | indices: 131 | edges: [] 132 | weights: [] 133 | secondaryTextures: [] 134 | spritePackingTag: 135 | pSDRemoveMatte: 0 136 | pSDShowRemoveMatteOption: 0 137 | userData: 138 | assetBundleName: 139 | assetBundleVariant: 140 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/Cutting Board.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2afff6474a239524e8554edfa179c90e 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/Cutting Board/CuttingBoard003.obj.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8457ba848738fd44aa7ed5df124473c5 3 | ModelImporter: 4 | serializedVersion: 19300 5 | internalIDToNameTable: [] 6 | externalObjects: 7 | - first: 8 | type: UnityEngine:Material 9 | assembly: UnityEngine.CoreModule 10 | name: CuttingBoard003Mat 11 | second: {fileID: 2100000, guid: 3b118f6a614791646b63c0139867475d, type: 2} 12 | materials: 13 | materialImportMode: 1 14 | materialName: 0 15 | materialSearch: 1 16 | materialLocation: 1 17 | animations: 18 | legacyGenerateAnimations: 4 19 | bakeSimulation: 0 20 | resampleCurves: 1 21 | optimizeGameObjects: 0 22 | motionNodeName: 23 | rigImportErrors: 24 | rigImportWarnings: 25 | animationImportErrors: 26 | animationImportWarnings: 27 | animationRetargetingWarnings: 28 | animationDoRetargetingWarnings: 0 29 | importAnimatedCustomProperties: 0 30 | importConstraints: 0 31 | animationCompression: 1 32 | animationRotationError: 0.5 33 | animationPositionError: 0.5 34 | animationScaleError: 0.5 35 | animationWrapMode: 0 36 | extraExposedTransformPaths: [] 37 | extraUserProperties: [] 38 | clipAnimations: [] 39 | isReadable: 0 40 | meshes: 41 | lODScreenPercentages: [] 42 | globalScale: 1 43 | meshCompression: 0 44 | addColliders: 0 45 | useSRGBMaterialColor: 1 46 | sortHierarchyByName: 1 47 | importVisibility: 0 48 | importBlendShapes: 1 49 | importCameras: 0 50 | importLights: 0 51 | swapUVChannels: 0 52 | generateSecondaryUV: 0 53 | useFileUnits: 1 54 | keepQuads: 0 55 | weldVertices: 1 56 | preserveHierarchy: 0 57 | skinWeightsMode: 0 58 | maxBonesPerVertex: 4 59 | minBoneWeight: 0.001 60 | meshOptimizationFlags: -1 61 | indexFormat: 0 62 | secondaryUVAngleDistortion: 8 63 | secondaryUVAreaDistortion: 15.000001 64 | secondaryUVHardAngle: 88 65 | secondaryUVPackMargin: 4 66 | useFileScale: 1 67 | tangentSpace: 68 | normalSmoothAngle: 60 69 | normalImportMode: 0 70 | tangentImportMode: 3 71 | normalCalculationMode: 4 72 | legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 73 | blendShapeNormalImportMode: 1 74 | normalSmoothingSource: 0 75 | referencedClips: [] 76 | importAnimation: 0 77 | humanDescription: 78 | serializedVersion: 3 79 | human: [] 80 | skeleton: [] 81 | armTwist: 0.5 82 | foreArmTwist: 0.5 83 | upperLegTwist: 0.5 84 | legTwist: 0.5 85 | armStretch: 0.05 86 | legStretch: 0.05 87 | feetSpacing: 0 88 | globalScale: 1 89 | rootMotionBoneName: 90 | hasTranslationDoF: 0 91 | hasExtraRoot: 0 92 | skeletonHasParents: 1 93 | lastHumanDescriptionAvatarSource: {instanceID: 0} 94 | autoGenerateAvatarMappingIfUnspecified: 1 95 | animationType: 0 96 | humanoidOversampling: 1 97 | avatarSetup: 0 98 | additionalBone: 0 99 | userData: 100 | assetBundleName: 101 | assetBundleVariant: 102 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/Cutting Board/CuttingBoard003_BaseColor_2K.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJT-Jackton/URP-Geometry-Shader-Example/0573cf1f65158af11cad90b5d7a91c278c310d9f/Assets/Sample Scenes/Cutting Board/CuttingBoard003_BaseColor_2K.png -------------------------------------------------------------------------------- /Assets/Sample Scenes/Cutting Board/CuttingBoard003_BaseColor_2K.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4b4b88399877739459e2f7b92bd413d5 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 10 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 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: 2 36 | mipBias: -100 37 | wrapU: 0 38 | wrapV: 0 39 | wrapW: 0 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 3 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 8192 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | forceMaximumCompressionQuality_BC6H_BC7: 0 73 | - serializedVersion: 3 74 | buildTarget: Standalone 75 | maxTextureSize: 8192 76 | resizeAlgorithm: 0 77 | textureFormat: -1 78 | textureCompression: 1 79 | compressionQuality: 50 80 | crunchedCompression: 0 81 | allowsAlphaSplitting: 0 82 | overridden: 0 83 | androidETC2FallbackOverride: 0 84 | forceMaximumCompressionQuality_BC6H_BC7: 0 85 | - serializedVersion: 3 86 | buildTarget: iPhone 87 | maxTextureSize: 8192 88 | resizeAlgorithm: 0 89 | textureFormat: -1 90 | textureCompression: 1 91 | compressionQuality: 50 92 | crunchedCompression: 0 93 | allowsAlphaSplitting: 0 94 | overridden: 0 95 | androidETC2FallbackOverride: 0 96 | forceMaximumCompressionQuality_BC6H_BC7: 0 97 | - serializedVersion: 3 98 | buildTarget: Android 99 | maxTextureSize: 8192 100 | resizeAlgorithm: 0 101 | textureFormat: -1 102 | textureCompression: 1 103 | compressionQuality: 50 104 | crunchedCompression: 0 105 | allowsAlphaSplitting: 0 106 | overridden: 0 107 | androidETC2FallbackOverride: 0 108 | forceMaximumCompressionQuality_BC6H_BC7: 0 109 | - serializedVersion: 3 110 | buildTarget: Windows Store Apps 111 | maxTextureSize: 8192 112 | resizeAlgorithm: 0 113 | textureFormat: -1 114 | textureCompression: 1 115 | compressionQuality: 50 116 | crunchedCompression: 0 117 | allowsAlphaSplitting: 0 118 | overridden: 0 119 | androidETC2FallbackOverride: 0 120 | forceMaximumCompressionQuality_BC6H_BC7: 0 121 | spriteSheet: 122 | serializedVersion: 2 123 | sprites: [] 124 | outline: [] 125 | physicsShape: [] 126 | bones: [] 127 | spriteID: 128 | internalID: 0 129 | vertices: [] 130 | indices: 131 | edges: [] 132 | weights: [] 133 | secondaryTextures: [] 134 | spritePackingTag: 135 | pSDRemoveMatte: 0 136 | pSDShowRemoveMatteOption: 0 137 | userData: 138 | assetBundleName: 139 | assetBundleVariant: 140 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/Cutting Board/CuttingBoard003_MaskMap_2K.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJT-Jackton/URP-Geometry-Shader-Example/0573cf1f65158af11cad90b5d7a91c278c310d9f/Assets/Sample Scenes/Cutting Board/CuttingBoard003_MaskMap_2K.png -------------------------------------------------------------------------------- /Assets/Sample Scenes/Cutting Board/CuttingBoard003_MaskMap_2K.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d4b94658f62ae4c45a18370cecb2c31f 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 10 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 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: 2 36 | mipBias: -100 37 | wrapU: 0 38 | wrapV: 0 39 | wrapW: 0 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 3 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 8192 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | forceMaximumCompressionQuality_BC6H_BC7: 0 73 | - serializedVersion: 3 74 | buildTarget: Standalone 75 | maxTextureSize: 8192 76 | resizeAlgorithm: 0 77 | textureFormat: -1 78 | textureCompression: 1 79 | compressionQuality: 50 80 | crunchedCompression: 0 81 | allowsAlphaSplitting: 0 82 | overridden: 0 83 | androidETC2FallbackOverride: 0 84 | forceMaximumCompressionQuality_BC6H_BC7: 0 85 | - serializedVersion: 3 86 | buildTarget: iPhone 87 | maxTextureSize: 8192 88 | resizeAlgorithm: 0 89 | textureFormat: -1 90 | textureCompression: 1 91 | compressionQuality: 50 92 | crunchedCompression: 0 93 | allowsAlphaSplitting: 0 94 | overridden: 0 95 | androidETC2FallbackOverride: 0 96 | forceMaximumCompressionQuality_BC6H_BC7: 0 97 | - serializedVersion: 3 98 | buildTarget: Android 99 | maxTextureSize: 8192 100 | resizeAlgorithm: 0 101 | textureFormat: -1 102 | textureCompression: 1 103 | compressionQuality: 50 104 | crunchedCompression: 0 105 | allowsAlphaSplitting: 0 106 | overridden: 0 107 | androidETC2FallbackOverride: 0 108 | forceMaximumCompressionQuality_BC6H_BC7: 0 109 | - serializedVersion: 3 110 | buildTarget: Windows Store Apps 111 | maxTextureSize: 8192 112 | resizeAlgorithm: 0 113 | textureFormat: -1 114 | textureCompression: 1 115 | compressionQuality: 50 116 | crunchedCompression: 0 117 | allowsAlphaSplitting: 0 118 | overridden: 0 119 | androidETC2FallbackOverride: 0 120 | forceMaximumCompressionQuality_BC6H_BC7: 0 121 | spriteSheet: 122 | serializedVersion: 2 123 | sprites: [] 124 | outline: [] 125 | physicsShape: [] 126 | bones: [] 127 | spriteID: 128 | internalID: 0 129 | vertices: [] 130 | indices: 131 | edges: [] 132 | weights: [] 133 | secondaryTextures: [] 134 | spritePackingTag: 135 | pSDRemoveMatte: 0 136 | pSDShowRemoveMatteOption: 0 137 | userData: 138 | assetBundleName: 139 | assetBundleVariant: 140 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/Cutting Board/CuttingBoard003_Mat.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: CuttingBoard003_Mat 11 | m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} 12 | m_ShaderKeywords: _METALLICSPECGLOSSMAP _NORMALMAP 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: 2050 17 | stringTagMap: 18 | RenderType: Opaque 19 | disabledShaderPasses: [] 20 | m_SavedProperties: 21 | serializedVersion: 3 22 | m_TexEnvs: 23 | - _BaseMap: 24 | m_Texture: {fileID: 2800000, guid: 4b4b88399877739459e2f7b92bd413d5, type: 3} 25 | m_Scale: {x: 1, y: 1} 26 | m_Offset: {x: 0, y: 0} 27 | - _BumpMap: 28 | m_Texture: {fileID: 2800000, guid: c1e739d3a99685d44b87fa149eb833c6, type: 3} 29 | m_Scale: {x: 1, y: 1} 30 | m_Offset: {x: 0, y: 0} 31 | - _EmissionMap: 32 | m_Texture: {fileID: 0} 33 | m_Scale: {x: 1, y: 1} 34 | m_Offset: {x: 0, y: 0} 35 | - _MainTex: 36 | m_Texture: {fileID: 2800000, guid: 4b4b88399877739459e2f7b92bd413d5, type: 3} 37 | m_Scale: {x: 1, y: 1} 38 | m_Offset: {x: 0, y: 0} 39 | - _MetallicGlossMap: 40 | m_Texture: {fileID: 2800000, guid: d4b94658f62ae4c45a18370cecb2c31f, type: 3} 41 | m_Scale: {x: 1, y: 1} 42 | m_Offset: {x: 0, y: 0} 43 | - _OcclusionMap: 44 | m_Texture: {fileID: 0} 45 | m_Scale: {x: 1, y: 1} 46 | m_Offset: {x: 0, y: 0} 47 | - _SpecGlossMap: 48 | m_Texture: {fileID: 0} 49 | m_Scale: {x: 1, y: 1} 50 | m_Offset: {x: 0, y: 0} 51 | m_Floats: 52 | - _AlphaClip: 0 53 | - _Blend: 0 54 | - _BumpScale: 1 55 | - _Cull: 2 56 | - _Cutoff: 0.5 57 | - _DstBlend: 0 58 | - _EnvironmentReflections: 1 59 | - _GlossMapScale: 0 60 | - _Glossiness: 0 61 | - _GlossyReflections: 0 62 | - _Metallic: 0 63 | - _OcclusionStrength: 1 64 | - _QueueOffset: 0 65 | - _ReceiveShadows: 1 66 | - _Smoothness: 1 67 | - _SmoothnessTextureChannel: 0 68 | - _SpecularHighlights: 1 69 | - _SrcBlend: 1 70 | - _Surface: 0 71 | - _WorkflowMode: 1 72 | - _ZWrite: 1 73 | m_Colors: 74 | - _BaseColor: {r: 1, g: 1, b: 1, a: 1} 75 | - _Color: {r: 1, g: 1, b: 1, a: 1} 76 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 77 | - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} 78 | --- !u!114 &8973965972883172670 79 | MonoBehaviour: 80 | m_ObjectHideFlags: 11 81 | m_CorrespondingSourceObject: {fileID: 0} 82 | m_PrefabInstance: {fileID: 0} 83 | m_PrefabAsset: {fileID: 0} 84 | m_GameObject: {fileID: 0} 85 | m_Enabled: 1 86 | m_EditorHideFlags: 0 87 | m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} 88 | m_Name: 89 | m_EditorClassIdentifier: 90 | version: 1 91 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/Cutting Board/CuttingBoard003_Mat.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3b118f6a614791646b63c0139867475d 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/Cutting Board/CuttingBoard003_Normal_2K.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJT-Jackton/URP-Geometry-Shader-Example/0573cf1f65158af11cad90b5d7a91c278c310d9f/Assets/Sample Scenes/Cutting Board/CuttingBoard003_Normal_2K.png -------------------------------------------------------------------------------- /Assets/Sample Scenes/Cutting Board/CuttingBoard003_Normal_2K.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c1e739d3a99685d44b87fa149eb833c6 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 10 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 0 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 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: 2 36 | mipBias: -100 37 | wrapU: 0 38 | wrapV: 0 39 | wrapW: 0 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 1 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 3 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 8192 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | forceMaximumCompressionQuality_BC6H_BC7: 0 73 | - serializedVersion: 3 74 | buildTarget: Standalone 75 | maxTextureSize: 8192 76 | resizeAlgorithm: 0 77 | textureFormat: -1 78 | textureCompression: 1 79 | compressionQuality: 50 80 | crunchedCompression: 0 81 | allowsAlphaSplitting: 0 82 | overridden: 0 83 | androidETC2FallbackOverride: 0 84 | forceMaximumCompressionQuality_BC6H_BC7: 0 85 | - serializedVersion: 3 86 | buildTarget: iPhone 87 | maxTextureSize: 8192 88 | resizeAlgorithm: 0 89 | textureFormat: -1 90 | textureCompression: 1 91 | compressionQuality: 50 92 | crunchedCompression: 0 93 | allowsAlphaSplitting: 0 94 | overridden: 0 95 | androidETC2FallbackOverride: 0 96 | forceMaximumCompressionQuality_BC6H_BC7: 0 97 | - serializedVersion: 3 98 | buildTarget: Android 99 | maxTextureSize: 8192 100 | resizeAlgorithm: 0 101 | textureFormat: -1 102 | textureCompression: 1 103 | compressionQuality: 50 104 | crunchedCompression: 0 105 | allowsAlphaSplitting: 0 106 | overridden: 0 107 | androidETC2FallbackOverride: 0 108 | forceMaximumCompressionQuality_BC6H_BC7: 0 109 | - serializedVersion: 3 110 | buildTarget: Windows Store Apps 111 | maxTextureSize: 8192 112 | resizeAlgorithm: 0 113 | textureFormat: -1 114 | textureCompression: 1 115 | compressionQuality: 50 116 | crunchedCompression: 0 117 | allowsAlphaSplitting: 0 118 | overridden: 0 119 | androidETC2FallbackOverride: 0 120 | forceMaximumCompressionQuality_BC6H_BC7: 0 121 | spriteSheet: 122 | serializedVersion: 2 123 | sprites: [] 124 | outline: [] 125 | physicsShape: [] 126 | bones: [] 127 | spriteID: 128 | internalID: 0 129 | vertices: [] 130 | indices: 131 | edges: [] 132 | weights: [] 133 | secondaryTextures: [] 134 | spritePackingTag: 135 | pSDRemoveMatte: 0 136 | pSDShowRemoveMatteOption: 0 137 | userData: 138 | assetBundleName: 139 | assetBundleVariant: 140 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/Extrude.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1c9e3689158b8d54f9266696f568b935 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/Extrude.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 28e3c8bd971ce5d49a6236bf48e62004 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/Extrude/Global Volume Profile.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &-9111052437883593591 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 3 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: 899c54efeace73346a0a16faa3afe726, type: 3} 13 | m_Name: Vignette 14 | m_EditorClassIdentifier: 15 | active: 1 16 | m_AdvancedMode: 0 17 | color: 18 | m_OverrideState: 1 19 | m_Value: {r: 0, g: 0, b: 0, a: 1} 20 | hdr: 0 21 | showAlpha: 0 22 | showEyeDropper: 1 23 | center: 24 | m_OverrideState: 1 25 | m_Value: {x: 0.5, y: 0.5} 26 | intensity: 27 | m_OverrideState: 1 28 | m_Value: 0.14 29 | min: 0 30 | max: 1 31 | smoothness: 32 | m_OverrideState: 1 33 | m_Value: 1 34 | min: 0.01 35 | max: 1 36 | rounded: 37 | m_OverrideState: 1 38 | m_Value: 0 39 | --- !u!114 &-7740121649702208982 40 | MonoBehaviour: 41 | m_ObjectHideFlags: 3 42 | m_CorrespondingSourceObject: {fileID: 0} 43 | m_PrefabInstance: {fileID: 0} 44 | m_PrefabAsset: {fileID: 0} 45 | m_GameObject: {fileID: 0} 46 | m_Enabled: 1 47 | m_EditorHideFlags: 0 48 | m_Script: {fileID: 11500000, guid: 0b2db86121404754db890f4c8dfe81b2, type: 3} 49 | m_Name: Bloom 50 | m_EditorClassIdentifier: 51 | active: 1 52 | m_AdvancedMode: 0 53 | threshold: 54 | m_OverrideState: 1 55 | m_Value: 1.02 56 | min: 0 57 | intensity: 58 | m_OverrideState: 1 59 | m_Value: 0.25 60 | min: 0 61 | scatter: 62 | m_OverrideState: 0 63 | m_Value: 0.7 64 | min: 0 65 | max: 1 66 | clamp: 67 | m_OverrideState: 0 68 | m_Value: 65472 69 | min: 0 70 | tint: 71 | m_OverrideState: 0 72 | m_Value: {r: 1, g: 1, b: 1, a: 1} 73 | hdr: 0 74 | showAlpha: 0 75 | showEyeDropper: 1 76 | highQualityFiltering: 77 | m_OverrideState: 0 78 | m_Value: 0 79 | dirtTexture: 80 | m_OverrideState: 0 81 | m_Value: {fileID: 0} 82 | dirtIntensity: 83 | m_OverrideState: 0 84 | m_Value: 0 85 | min: 0 86 | --- !u!114 &-2746103166374493996 87 | MonoBehaviour: 88 | m_ObjectHideFlags: 3 89 | m_CorrespondingSourceObject: {fileID: 0} 90 | m_PrefabInstance: {fileID: 0} 91 | m_PrefabAsset: {fileID: 0} 92 | m_GameObject: {fileID: 0} 93 | m_Enabled: 1 94 | m_EditorHideFlags: 0 95 | m_Script: {fileID: 11500000, guid: 81180773991d8724ab7f2d216912b564, type: 3} 96 | m_Name: ChromaticAberration 97 | m_EditorClassIdentifier: 98 | active: 1 99 | m_AdvancedMode: 0 100 | intensity: 101 | m_OverrideState: 1 102 | m_Value: 0.09 103 | min: 0 104 | max: 1 105 | --- !u!114 &11400000 106 | MonoBehaviour: 107 | m_ObjectHideFlags: 0 108 | m_CorrespondingSourceObject: {fileID: 0} 109 | m_PrefabInstance: {fileID: 0} 110 | m_PrefabAsset: {fileID: 0} 111 | m_GameObject: {fileID: 0} 112 | m_Enabled: 1 113 | m_EditorHideFlags: 0 114 | m_Script: {fileID: 11500000, guid: d7fd9488000d3734a9e00ee676215985, type: 3} 115 | m_Name: Global Volume Profile 116 | m_EditorClassIdentifier: 117 | components: 118 | - {fileID: 6935379783056954595} 119 | - {fileID: -7740121649702208982} 120 | - {fileID: -9111052437883593591} 121 | - {fileID: -2746103166374493996} 122 | --- !u!114 &6935379783056954595 123 | MonoBehaviour: 124 | m_ObjectHideFlags: 3 125 | m_CorrespondingSourceObject: {fileID: 0} 126 | m_PrefabInstance: {fileID: 0} 127 | m_PrefabAsset: {fileID: 0} 128 | m_GameObject: {fileID: 0} 129 | m_Enabled: 1 130 | m_EditorHideFlags: 0 131 | m_Script: {fileID: 11500000, guid: 97c23e3b12dc18c42a140437e53d3951, type: 3} 132 | m_Name: Tonemapping 133 | m_EditorClassIdentifier: 134 | active: 1 135 | m_AdvancedMode: 0 136 | mode: 137 | m_OverrideState: 1 138 | m_Value: 2 139 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/Extrude/Global Volume Profile.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 369c908b7c654b94a985365eaf8f6dd2 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/Extrude/LightingData.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJT-Jackton/URP-Geometry-Shader-Example/0573cf1f65158af11cad90b5d7a91c278c310d9f/Assets/Sample Scenes/Extrude/LightingData.asset -------------------------------------------------------------------------------- /Assets/Sample Scenes/Extrude/LightingData.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9f62ce5265e9bb04eaa591774c8cd9af 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/Extrude/ReflectionProbe-0.exr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJT-Jackton/URP-Geometry-Shader-Example/0573cf1f65158af11cad90b5d7a91c278c310d9f/Assets/Sample Scenes/Extrude/ReflectionProbe-0.exr -------------------------------------------------------------------------------- /Assets/Sample Scenes/Extrude/ReflectionProbe-0.exr.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ff72ad4a825b320438ce40b6abb6ffde 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 10 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 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 1 29 | seamlessCubemap: 1 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: 2 35 | aniso: 0 36 | mipBias: 0 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: 1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 2 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 3 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 100 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | forceMaximumCompressionQuality_BC6H_BC7: 0 73 | - serializedVersion: 3 74 | buildTarget: Standalone 75 | maxTextureSize: 8192 76 | resizeAlgorithm: 0 77 | textureFormat: -1 78 | textureCompression: 1 79 | compressionQuality: 50 80 | crunchedCompression: 0 81 | allowsAlphaSplitting: 0 82 | overridden: 0 83 | androidETC2FallbackOverride: 0 84 | forceMaximumCompressionQuality_BC6H_BC7: 0 85 | - serializedVersion: 3 86 | buildTarget: iPhone 87 | maxTextureSize: 8192 88 | resizeAlgorithm: 0 89 | textureFormat: -1 90 | textureCompression: 1 91 | compressionQuality: 50 92 | crunchedCompression: 0 93 | allowsAlphaSplitting: 0 94 | overridden: 0 95 | androidETC2FallbackOverride: 0 96 | forceMaximumCompressionQuality_BC6H_BC7: 0 97 | - serializedVersion: 3 98 | buildTarget: Android 99 | maxTextureSize: 8192 100 | resizeAlgorithm: 0 101 | textureFormat: -1 102 | textureCompression: 1 103 | compressionQuality: 50 104 | crunchedCompression: 0 105 | allowsAlphaSplitting: 0 106 | overridden: 0 107 | androidETC2FallbackOverride: 0 108 | forceMaximumCompressionQuality_BC6H_BC7: 0 109 | - serializedVersion: 3 110 | buildTarget: Windows Store Apps 111 | maxTextureSize: 8192 112 | resizeAlgorithm: 0 113 | textureFormat: -1 114 | textureCompression: 1 115 | compressionQuality: 50 116 | crunchedCompression: 0 117 | allowsAlphaSplitting: 0 118 | overridden: 0 119 | androidETC2FallbackOverride: 0 120 | forceMaximumCompressionQuality_BC6H_BC7: 0 121 | spriteSheet: 122 | serializedVersion: 2 123 | sprites: [] 124 | outline: [] 125 | physicsShape: [] 126 | bones: [] 127 | spriteID: 128 | internalID: 0 129 | vertices: [] 130 | indices: 131 | edges: [] 132 | weights: [] 133 | secondaryTextures: [] 134 | spritePackingTag: 135 | pSDRemoveMatte: 0 136 | pSDShowRemoveMatteOption: 0 137 | userData: 138 | assetBundleName: 139 | assetBundleVariant: 140 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/Extrude/ReflectionProbe-1.exr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJT-Jackton/URP-Geometry-Shader-Example/0573cf1f65158af11cad90b5d7a91c278c310d9f/Assets/Sample Scenes/Extrude/ReflectionProbe-1.exr -------------------------------------------------------------------------------- /Assets/Sample Scenes/Extrude/ReflectionProbe-1.exr.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 527acdb9a5022334a9aa57adac39d030 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 10 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 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 1 29 | seamlessCubemap: 1 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: 2 35 | aniso: 0 36 | mipBias: 0 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: 1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 2 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 3 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 100 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | forceMaximumCompressionQuality_BC6H_BC7: 0 73 | - serializedVersion: 3 74 | buildTarget: Standalone 75 | maxTextureSize: 8192 76 | resizeAlgorithm: 0 77 | textureFormat: -1 78 | textureCompression: 1 79 | compressionQuality: 50 80 | crunchedCompression: 0 81 | allowsAlphaSplitting: 0 82 | overridden: 0 83 | androidETC2FallbackOverride: 0 84 | forceMaximumCompressionQuality_BC6H_BC7: 0 85 | - serializedVersion: 3 86 | buildTarget: iPhone 87 | maxTextureSize: 8192 88 | resizeAlgorithm: 0 89 | textureFormat: -1 90 | textureCompression: 1 91 | compressionQuality: 50 92 | crunchedCompression: 0 93 | allowsAlphaSplitting: 0 94 | overridden: 0 95 | androidETC2FallbackOverride: 0 96 | forceMaximumCompressionQuality_BC6H_BC7: 0 97 | - serializedVersion: 3 98 | buildTarget: Android 99 | maxTextureSize: 8192 100 | resizeAlgorithm: 0 101 | textureFormat: -1 102 | textureCompression: 1 103 | compressionQuality: 50 104 | crunchedCompression: 0 105 | allowsAlphaSplitting: 0 106 | overridden: 0 107 | androidETC2FallbackOverride: 0 108 | forceMaximumCompressionQuality_BC6H_BC7: 0 109 | - serializedVersion: 3 110 | buildTarget: Windows Store Apps 111 | maxTextureSize: 8192 112 | resizeAlgorithm: 0 113 | textureFormat: -1 114 | textureCompression: 1 115 | compressionQuality: 50 116 | crunchedCompression: 0 117 | allowsAlphaSplitting: 0 118 | overridden: 0 119 | androidETC2FallbackOverride: 0 120 | forceMaximumCompressionQuality_BC6H_BC7: 0 121 | spriteSheet: 122 | serializedVersion: 2 123 | sprites: [] 124 | outline: [] 125 | physicsShape: [] 126 | bones: [] 127 | spriteID: 128 | internalID: 0 129 | vertices: [] 130 | indices: 131 | edges: [] 132 | weights: [] 133 | secondaryTextures: [] 134 | spritePackingTag: 135 | pSDRemoveMatte: 0 136 | pSDShowRemoveMatteOption: 0 137 | userData: 138 | assetBundleName: 139 | assetBundleVariant: 140 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/HDRI.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 35175cdea396e81498ce8f0ba460f681 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/HDRI/AdamsPlaceBridge.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &-6321952881569073938 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: 1 16 | --- !u!21 &2100000 17 | Material: 18 | serializedVersion: 6 19 | m_ObjectHideFlags: 0 20 | m_CorrespondingSourceObject: {fileID: 0} 21 | m_PrefabInstance: {fileID: 0} 22 | m_PrefabAsset: {fileID: 0} 23 | m_Name: AdamsPlaceBridge 24 | m_Shader: {fileID: 103, guid: 0000000000000000f000000000000000, type: 0} 25 | m_ShaderKeywords: 26 | m_LightmapFlags: 4 27 | m_EnableInstancingVariants: 0 28 | m_DoubleSidedGI: 0 29 | m_CustomRenderQueue: -1 30 | stringTagMap: {} 31 | disabledShaderPasses: [] 32 | m_SavedProperties: 33 | serializedVersion: 3 34 | m_TexEnvs: 35 | - _BaseMap: 36 | m_Texture: {fileID: 0} 37 | m_Scale: {x: 1, y: 1} 38 | m_Offset: {x: 0, y: 0} 39 | - _BumpMap: 40 | m_Texture: {fileID: 0} 41 | m_Scale: {x: 1, y: 1} 42 | m_Offset: {x: 0, y: 0} 43 | - _EmissionMap: 44 | m_Texture: {fileID: 0} 45 | m_Scale: {x: 1, y: 1} 46 | m_Offset: {x: 0, y: 0} 47 | - _MainTex: 48 | m_Texture: {fileID: 0} 49 | m_Scale: {x: 1, y: 1} 50 | m_Offset: {x: 0, y: 0} 51 | - _MetallicGlossMap: 52 | m_Texture: {fileID: 0} 53 | m_Scale: {x: 1, y: 1} 54 | m_Offset: {x: 0, y: 0} 55 | - _OcclusionMap: 56 | m_Texture: {fileID: 0} 57 | m_Scale: {x: 1, y: 1} 58 | m_Offset: {x: 0, y: 0} 59 | - _SpecGlossMap: 60 | m_Texture: {fileID: 0} 61 | m_Scale: {x: 1, y: 1} 62 | m_Offset: {x: 0, y: 0} 63 | - _Tex: 64 | m_Texture: {fileID: 8900000, guid: 5094a8897a51b3d4c826c211877ac15d, type: 3} 65 | m_Scale: {x: 1, y: 1} 66 | m_Offset: {x: 0, y: 0} 67 | m_Floats: 68 | - _AlphaClip: 0 69 | - _Blend: 0 70 | - _BumpScale: 1 71 | - _Cull: 2 72 | - _Cutoff: 0.5 73 | - _DstBlend: 0 74 | - _EnvironmentReflections: 1 75 | - _Exposure: 1.42 76 | - _GlossMapScale: 0 77 | - _Glossiness: 0 78 | - _GlossyReflections: 0 79 | - _Metallic: 0 80 | - _OcclusionStrength: 1 81 | - _QueueOffset: 0 82 | - _ReceiveShadows: 1 83 | - _Rotation: 226 84 | - _Smoothness: 0.5 85 | - _SmoothnessTextureChannel: 0 86 | - _SpecularHighlights: 1 87 | - _SrcBlend: 1 88 | - _Surface: 0 89 | - _WorkflowMode: 1 90 | - _ZWrite: 1 91 | m_Colors: 92 | - _BaseColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} 93 | - _Color: {r: 0.5, g: 0.5, b: 0.5, a: 1} 94 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 95 | - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} 96 | - _Tint: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} 97 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/HDRI/AdamsPlaceBridge.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0c11a3436623915409ae600a96f6d609 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/HDRI/Lebombo.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &-6321952881569073938 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: 1 16 | --- !u!21 &2100000 17 | Material: 18 | serializedVersion: 6 19 | m_ObjectHideFlags: 0 20 | m_CorrespondingSourceObject: {fileID: 0} 21 | m_PrefabInstance: {fileID: 0} 22 | m_PrefabAsset: {fileID: 0} 23 | m_Name: Lebombo 24 | m_Shader: {fileID: 103, guid: 0000000000000000f000000000000000, type: 0} 25 | m_ShaderKeywords: 26 | m_LightmapFlags: 4 27 | m_EnableInstancingVariants: 0 28 | m_DoubleSidedGI: 0 29 | m_CustomRenderQueue: -1 30 | stringTagMap: {} 31 | disabledShaderPasses: [] 32 | m_SavedProperties: 33 | serializedVersion: 3 34 | m_TexEnvs: 35 | - _BaseMap: 36 | m_Texture: {fileID: 0} 37 | m_Scale: {x: 1, y: 1} 38 | m_Offset: {x: 0, y: 0} 39 | - _BumpMap: 40 | m_Texture: {fileID: 0} 41 | m_Scale: {x: 1, y: 1} 42 | m_Offset: {x: 0, y: 0} 43 | - _EmissionMap: 44 | m_Texture: {fileID: 0} 45 | m_Scale: {x: 1, y: 1} 46 | m_Offset: {x: 0, y: 0} 47 | - _MainTex: 48 | m_Texture: {fileID: 0} 49 | m_Scale: {x: 1, y: 1} 50 | m_Offset: {x: 0, y: 0} 51 | - _MetallicGlossMap: 52 | m_Texture: {fileID: 0} 53 | m_Scale: {x: 1, y: 1} 54 | m_Offset: {x: 0, y: 0} 55 | - _OcclusionMap: 56 | m_Texture: {fileID: 0} 57 | m_Scale: {x: 1, y: 1} 58 | m_Offset: {x: 0, y: 0} 59 | - _SpecGlossMap: 60 | m_Texture: {fileID: 0} 61 | m_Scale: {x: 1, y: 1} 62 | m_Offset: {x: 0, y: 0} 63 | - _Tex: 64 | m_Texture: {fileID: 8900000, guid: 9cd06dc7f3beb6d4c8c51edb31ee6988, type: 3} 65 | m_Scale: {x: 1, y: 1} 66 | m_Offset: {x: 0, y: 0} 67 | m_Floats: 68 | - _AlphaClip: 0 69 | - _Blend: 0 70 | - _BumpScale: 1 71 | - _Cull: 2 72 | - _Cutoff: 0.5 73 | - _DstBlend: 0 74 | - _EnvironmentReflections: 1 75 | - _Exposure: 0.82 76 | - _GlossMapScale: 0 77 | - _Glossiness: 0 78 | - _GlossyReflections: 0 79 | - _Metallic: 0 80 | - _OcclusionStrength: 1 81 | - _QueueOffset: 0 82 | - _ReceiveShadows: 1 83 | - _Rotation: 226 84 | - _Smoothness: 0.5 85 | - _SmoothnessTextureChannel: 0 86 | - _SpecularHighlights: 1 87 | - _SrcBlend: 1 88 | - _Surface: 0 89 | - _WorkflowMode: 1 90 | - _ZWrite: 1 91 | m_Colors: 92 | - _BaseColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} 93 | - _Color: {r: 0.5, g: 0.5, b: 0.5, a: 1} 94 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 95 | - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} 96 | - _Tint: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} 97 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/HDRI/Lebombo.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6f7037bd1365c6d41be8fd0f66456005 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/HDRI/README.md: -------------------------------------------------------------------------------- 1 | All HDRIs are taken from HDRIhaven.com 2 | 3 | - Adams Place Bridge by Andreas Mischok -------------------------------------------------------------------------------- /Assets/Sample Scenes/HDRI/README.md.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6f0b59156f4922c4caa964d6528fd145 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/HDRI/adams_place_bridge_4k.hdr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJT-Jackton/URP-Geometry-Shader-Example/0573cf1f65158af11cad90b5d7a91c278c310d9f/Assets/Sample Scenes/HDRI/adams_place_bridge_4k.hdr -------------------------------------------------------------------------------- /Assets/Sample Scenes/HDRI/adams_place_bridge_4k.hdr.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5094a8897a51b3d4c826c211877ac15d 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 10 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 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: 2 36 | mipBias: -100 37 | wrapU: 0 38 | wrapV: 0 39 | wrapW: 0 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 2 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 3 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 8192 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | forceMaximumCompressionQuality_BC6H_BC7: 0 73 | - serializedVersion: 3 74 | buildTarget: Standalone 75 | maxTextureSize: 8192 76 | resizeAlgorithm: 0 77 | textureFormat: -1 78 | textureCompression: 1 79 | compressionQuality: 50 80 | crunchedCompression: 0 81 | allowsAlphaSplitting: 0 82 | overridden: 0 83 | androidETC2FallbackOverride: 0 84 | forceMaximumCompressionQuality_BC6H_BC7: 0 85 | - serializedVersion: 3 86 | buildTarget: iPhone 87 | maxTextureSize: 8192 88 | resizeAlgorithm: 0 89 | textureFormat: -1 90 | textureCompression: 1 91 | compressionQuality: 50 92 | crunchedCompression: 0 93 | allowsAlphaSplitting: 0 94 | overridden: 0 95 | androidETC2FallbackOverride: 0 96 | forceMaximumCompressionQuality_BC6H_BC7: 0 97 | - serializedVersion: 3 98 | buildTarget: Android 99 | maxTextureSize: 8192 100 | resizeAlgorithm: 0 101 | textureFormat: -1 102 | textureCompression: 1 103 | compressionQuality: 50 104 | crunchedCompression: 0 105 | allowsAlphaSplitting: 0 106 | overridden: 0 107 | androidETC2FallbackOverride: 0 108 | forceMaximumCompressionQuality_BC6H_BC7: 0 109 | - serializedVersion: 3 110 | buildTarget: Windows Store Apps 111 | maxTextureSize: 8192 112 | resizeAlgorithm: 0 113 | textureFormat: -1 114 | textureCompression: 1 115 | compressionQuality: 50 116 | crunchedCompression: 0 117 | allowsAlphaSplitting: 0 118 | overridden: 0 119 | androidETC2FallbackOverride: 0 120 | forceMaximumCompressionQuality_BC6H_BC7: 0 121 | spriteSheet: 122 | serializedVersion: 2 123 | sprites: [] 124 | outline: [] 125 | physicsShape: [] 126 | bones: [] 127 | spriteID: 128 | internalID: 0 129 | vertices: [] 130 | indices: 131 | edges: [] 132 | weights: [] 133 | secondaryTextures: [] 134 | spritePackingTag: 135 | pSDRemoveMatte: 0 136 | pSDShowRemoveMatteOption: 0 137 | userData: 138 | assetBundleName: 139 | assetBundleVariant: 140 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/HDRI/lebombo_4k.hdr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJT-Jackton/URP-Geometry-Shader-Example/0573cf1f65158af11cad90b5d7a91c278c310d9f/Assets/Sample Scenes/HDRI/lebombo_4k.hdr -------------------------------------------------------------------------------- /Assets/Sample Scenes/HDRI/lebombo_4k.hdr.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9cd06dc7f3beb6d4c8c51edb31ee6988 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 10 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 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: 2 36 | mipBias: -100 37 | wrapU: 0 38 | wrapV: 0 39 | wrapW: 0 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 2 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 3 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 8192 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | forceMaximumCompressionQuality_BC6H_BC7: 0 73 | - serializedVersion: 3 74 | buildTarget: Standalone 75 | maxTextureSize: 8192 76 | resizeAlgorithm: 0 77 | textureFormat: -1 78 | textureCompression: 1 79 | compressionQuality: 50 80 | crunchedCompression: 0 81 | allowsAlphaSplitting: 0 82 | overridden: 0 83 | androidETC2FallbackOverride: 0 84 | forceMaximumCompressionQuality_BC6H_BC7: 0 85 | - serializedVersion: 3 86 | buildTarget: iPhone 87 | maxTextureSize: 8192 88 | resizeAlgorithm: 0 89 | textureFormat: -1 90 | textureCompression: 1 91 | compressionQuality: 50 92 | crunchedCompression: 0 93 | allowsAlphaSplitting: 0 94 | overridden: 0 95 | androidETC2FallbackOverride: 0 96 | forceMaximumCompressionQuality_BC6H_BC7: 0 97 | - serializedVersion: 3 98 | buildTarget: Android 99 | maxTextureSize: 8192 100 | resizeAlgorithm: 0 101 | textureFormat: -1 102 | textureCompression: 1 103 | compressionQuality: 50 104 | crunchedCompression: 0 105 | allowsAlphaSplitting: 0 106 | overridden: 0 107 | androidETC2FallbackOverride: 0 108 | forceMaximumCompressionQuality_BC6H_BC7: 0 109 | - serializedVersion: 3 110 | buildTarget: Windows Store Apps 111 | maxTextureSize: 8192 112 | resizeAlgorithm: 0 113 | textureFormat: -1 114 | textureCompression: 1 115 | compressionQuality: 50 116 | crunchedCompression: 0 117 | allowsAlphaSplitting: 0 118 | overridden: 0 119 | androidETC2FallbackOverride: 0 120 | forceMaximumCompressionQuality_BC6H_BC7: 0 121 | spriteSheet: 122 | serializedVersion: 2 123 | sprites: [] 124 | outline: [] 125 | physicsShape: [] 126 | bones: [] 127 | spriteID: 128 | internalID: 0 129 | vertices: [] 130 | indices: 131 | edges: [] 132 | weights: [] 133 | secondaryTextures: [] 134 | spritePackingTag: 135 | pSDRemoveMatte: 0 136 | pSDShowRemoveMatteOption: 0 137 | userData: 138 | assetBundleName: 139 | assetBundleVariant: 140 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/Low Poly.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e8bc3c454ab8cae4d95ffcfbc1c9a6c5 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/Low Poly.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7cf9fdda08bb0a749b79ed89639348b2 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/Low Poly/LightingData.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJT-Jackton/URP-Geometry-Shader-Example/0573cf1f65158af11cad90b5d7a91c278c310d9f/Assets/Sample Scenes/Low Poly/LightingData.asset -------------------------------------------------------------------------------- /Assets/Sample Scenes/Low Poly/LightingData.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 18dd88ab9fb669c4c895e59abf6bdda3 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/Low Poly/ReflectionProbe-0.exr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJT-Jackton/URP-Geometry-Shader-Example/0573cf1f65158af11cad90b5d7a91c278c310d9f/Assets/Sample Scenes/Low Poly/ReflectionProbe-0.exr -------------------------------------------------------------------------------- /Assets/Sample Scenes/Low Poly/ReflectionProbe-0.exr.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 809e278c9a6c464459b8aba19bb5e3db 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 10 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 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 1 29 | seamlessCubemap: 1 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: 2 35 | aniso: 0 36 | mipBias: 0 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: 1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 2 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 3 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 100 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | forceMaximumCompressionQuality_BC6H_BC7: 0 73 | - serializedVersion: 3 74 | buildTarget: Standalone 75 | maxTextureSize: 8192 76 | resizeAlgorithm: 0 77 | textureFormat: -1 78 | textureCompression: 1 79 | compressionQuality: 50 80 | crunchedCompression: 0 81 | allowsAlphaSplitting: 0 82 | overridden: 0 83 | androidETC2FallbackOverride: 0 84 | forceMaximumCompressionQuality_BC6H_BC7: 0 85 | - serializedVersion: 3 86 | buildTarget: iPhone 87 | maxTextureSize: 8192 88 | resizeAlgorithm: 0 89 | textureFormat: -1 90 | textureCompression: 1 91 | compressionQuality: 50 92 | crunchedCompression: 0 93 | allowsAlphaSplitting: 0 94 | overridden: 0 95 | androidETC2FallbackOverride: 0 96 | forceMaximumCompressionQuality_BC6H_BC7: 0 97 | - serializedVersion: 3 98 | buildTarget: Android 99 | maxTextureSize: 8192 100 | resizeAlgorithm: 0 101 | textureFormat: -1 102 | textureCompression: 1 103 | compressionQuality: 50 104 | crunchedCompression: 0 105 | allowsAlphaSplitting: 0 106 | overridden: 0 107 | androidETC2FallbackOverride: 0 108 | forceMaximumCompressionQuality_BC6H_BC7: 0 109 | - serializedVersion: 3 110 | buildTarget: Windows Store Apps 111 | maxTextureSize: 8192 112 | resizeAlgorithm: 0 113 | textureFormat: -1 114 | textureCompression: 1 115 | compressionQuality: 50 116 | crunchedCompression: 0 117 | allowsAlphaSplitting: 0 118 | overridden: 0 119 | androidETC2FallbackOverride: 0 120 | forceMaximumCompressionQuality_BC6H_BC7: 0 121 | spriteSheet: 122 | serializedVersion: 2 123 | sprites: [] 124 | outline: [] 125 | physicsShape: [] 126 | bones: [] 127 | spriteID: 128 | internalID: 0 129 | vertices: [] 130 | indices: 131 | edges: [] 132 | weights: [] 133 | secondaryTextures: [] 134 | spritePackingTag: 135 | pSDRemoveMatte: 0 136 | pSDShowRemoveMatteOption: 0 137 | userData: 138 | assetBundleName: 139 | assetBundleVariant: 140 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/Low Poly/ReflectionProbe-1.exr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJT-Jackton/URP-Geometry-Shader-Example/0573cf1f65158af11cad90b5d7a91c278c310d9f/Assets/Sample Scenes/Low Poly/ReflectionProbe-1.exr -------------------------------------------------------------------------------- /Assets/Sample Scenes/Low Poly/ReflectionProbe-1.exr.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d04e44cf1b3ef70459e4ce9ef6946ff7 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 10 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 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 1 29 | seamlessCubemap: 1 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: 2 35 | aniso: 0 36 | mipBias: 0 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: 1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 2 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 3 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 100 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | forceMaximumCompressionQuality_BC6H_BC7: 0 73 | - serializedVersion: 3 74 | buildTarget: Standalone 75 | maxTextureSize: 8192 76 | resizeAlgorithm: 0 77 | textureFormat: -1 78 | textureCompression: 1 79 | compressionQuality: 50 80 | crunchedCompression: 0 81 | allowsAlphaSplitting: 0 82 | overridden: 0 83 | androidETC2FallbackOverride: 0 84 | forceMaximumCompressionQuality_BC6H_BC7: 0 85 | - serializedVersion: 3 86 | buildTarget: iPhone 87 | maxTextureSize: 8192 88 | resizeAlgorithm: 0 89 | textureFormat: -1 90 | textureCompression: 1 91 | compressionQuality: 50 92 | crunchedCompression: 0 93 | allowsAlphaSplitting: 0 94 | overridden: 0 95 | androidETC2FallbackOverride: 0 96 | forceMaximumCompressionQuality_BC6H_BC7: 0 97 | - serializedVersion: 3 98 | buildTarget: Android 99 | maxTextureSize: 8192 100 | resizeAlgorithm: 0 101 | textureFormat: -1 102 | textureCompression: 1 103 | compressionQuality: 50 104 | crunchedCompression: 0 105 | allowsAlphaSplitting: 0 106 | overridden: 0 107 | androidETC2FallbackOverride: 0 108 | forceMaximumCompressionQuality_BC6H_BC7: 0 109 | - serializedVersion: 3 110 | buildTarget: Windows Store Apps 111 | maxTextureSize: 8192 112 | resizeAlgorithm: 0 113 | textureFormat: -1 114 | textureCompression: 1 115 | compressionQuality: 50 116 | crunchedCompression: 0 117 | allowsAlphaSplitting: 0 118 | overridden: 0 119 | androidETC2FallbackOverride: 0 120 | forceMaximumCompressionQuality_BC6H_BC7: 0 121 | spriteSheet: 122 | serializedVersion: 2 123 | sprites: [] 124 | outline: [] 125 | physicsShape: [] 126 | bones: [] 127 | spriteID: 128 | internalID: 0 129 | vertices: [] 130 | indices: 131 | edges: [] 132 | weights: [] 133 | secondaryTextures: [] 134 | spritePackingTag: 135 | pSDRemoveMatte: 0 136 | pSDShowRemoveMatteOption: 0 137 | userData: 138 | assetBundleName: 139 | assetBundleVariant: 140 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/Meshes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6e7d6c7c60617004ab2aecb517f087d2 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/Meshes/Teapot.obj.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c9cf9f68aa937544ab5a025a3ec8f089 3 | ModelImporter: 4 | serializedVersion: 19300 5 | internalIDToNameTable: [] 6 | externalObjects: {} 7 | materials: 8 | materialImportMode: 0 9 | materialName: 0 10 | materialSearch: 1 11 | materialLocation: 1 12 | animations: 13 | legacyGenerateAnimations: 4 14 | bakeSimulation: 0 15 | resampleCurves: 1 16 | optimizeGameObjects: 0 17 | motionNodeName: 18 | rigImportErrors: 19 | rigImportWarnings: 20 | animationImportErrors: 21 | animationImportWarnings: 22 | animationRetargetingWarnings: 23 | animationDoRetargetingWarnings: 0 24 | importAnimatedCustomProperties: 0 25 | importConstraints: 0 26 | animationCompression: 1 27 | animationRotationError: 0.5 28 | animationPositionError: 0.5 29 | animationScaleError: 0.5 30 | animationWrapMode: 0 31 | extraExposedTransformPaths: [] 32 | extraUserProperties: [] 33 | clipAnimations: [] 34 | isReadable: 0 35 | meshes: 36 | lODScreenPercentages: [] 37 | globalScale: 1 38 | meshCompression: 0 39 | addColliders: 0 40 | useSRGBMaterialColor: 1 41 | sortHierarchyByName: 1 42 | importVisibility: 0 43 | importBlendShapes: 1 44 | importCameras: 0 45 | importLights: 0 46 | swapUVChannels: 0 47 | generateSecondaryUV: 0 48 | useFileUnits: 1 49 | keepQuads: 0 50 | weldVertices: 1 51 | preserveHierarchy: 0 52 | skinWeightsMode: 0 53 | maxBonesPerVertex: 4 54 | minBoneWeight: 0.001 55 | meshOptimizationFlags: -1 56 | indexFormat: 0 57 | secondaryUVAngleDistortion: 8 58 | secondaryUVAreaDistortion: 15.000001 59 | secondaryUVHardAngle: 88 60 | secondaryUVPackMargin: 4 61 | useFileScale: 1 62 | tangentSpace: 63 | normalSmoothAngle: 60 64 | normalImportMode: 0 65 | tangentImportMode: 3 66 | normalCalculationMode: 4 67 | legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 68 | blendShapeNormalImportMode: 1 69 | normalSmoothingSource: 0 70 | referencedClips: [] 71 | importAnimation: 0 72 | humanDescription: 73 | serializedVersion: 3 74 | human: [] 75 | skeleton: [] 76 | armTwist: 0.5 77 | foreArmTwist: 0.5 78 | upperLegTwist: 0.5 79 | legTwist: 0.5 80 | armStretch: 0.05 81 | legStretch: 0.05 82 | feetSpacing: 0 83 | globalScale: 1 84 | rootMotionBoneName: 85 | hasTranslationDoF: 0 86 | hasExtraRoot: 0 87 | skeletonHasParents: 1 88 | lastHumanDescriptionAvatarSource: {instanceID: 0} 89 | autoGenerateAvatarMappingIfUnspecified: 1 90 | animationType: 0 91 | humanoidOversampling: 1 92 | avatarSetup: 0 93 | additionalBone: 0 94 | userData: 95 | assetBundleName: 96 | assetBundleVariant: 97 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/Meshes/icosphere.obj.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0b8ce7d9fc5a2e743a7501452fe13105 3 | ModelImporter: 4 | serializedVersion: 19300 5 | internalIDToNameTable: [] 6 | externalObjects: {} 7 | materials: 8 | materialImportMode: 0 9 | materialName: 0 10 | materialSearch: 1 11 | materialLocation: 1 12 | animations: 13 | legacyGenerateAnimations: 4 14 | bakeSimulation: 0 15 | resampleCurves: 1 16 | optimizeGameObjects: 0 17 | motionNodeName: 18 | rigImportErrors: 19 | rigImportWarnings: 20 | animationImportErrors: 21 | animationImportWarnings: 22 | animationRetargetingWarnings: 23 | animationDoRetargetingWarnings: 0 24 | importAnimatedCustomProperties: 0 25 | importConstraints: 0 26 | animationCompression: 1 27 | animationRotationError: 0.5 28 | animationPositionError: 0.5 29 | animationScaleError: 0.5 30 | animationWrapMode: 0 31 | extraExposedTransformPaths: [] 32 | extraUserProperties: [] 33 | clipAnimations: [] 34 | isReadable: 0 35 | meshes: 36 | lODScreenPercentages: [] 37 | globalScale: 1 38 | meshCompression: 0 39 | addColliders: 0 40 | useSRGBMaterialColor: 1 41 | sortHierarchyByName: 1 42 | importVisibility: 1 43 | importBlendShapes: 1 44 | importCameras: 0 45 | importLights: 0 46 | swapUVChannels: 0 47 | generateSecondaryUV: 0 48 | useFileUnits: 1 49 | keepQuads: 0 50 | weldVertices: 1 51 | preserveHierarchy: 0 52 | skinWeightsMode: 0 53 | maxBonesPerVertex: 4 54 | minBoneWeight: 0.001 55 | meshOptimizationFlags: -1 56 | indexFormat: 0 57 | secondaryUVAngleDistortion: 8 58 | secondaryUVAreaDistortion: 15.000001 59 | secondaryUVHardAngle: 88 60 | secondaryUVPackMargin: 4 61 | useFileScale: 1 62 | tangentSpace: 63 | normalSmoothAngle: 60 64 | normalImportMode: 0 65 | tangentImportMode: 3 66 | normalCalculationMode: 4 67 | legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 68 | blendShapeNormalImportMode: 1 69 | normalSmoothingSource: 0 70 | referencedClips: [] 71 | importAnimation: 0 72 | humanDescription: 73 | serializedVersion: 3 74 | human: [] 75 | skeleton: [] 76 | armTwist: 0.5 77 | foreArmTwist: 0.5 78 | upperLegTwist: 0.5 79 | legTwist: 0.5 80 | armStretch: 0.05 81 | legStretch: 0.05 82 | feetSpacing: 0 83 | globalScale: 1 84 | rootMotionBoneName: 85 | hasTranslationDoF: 0 86 | hasExtraRoot: 0 87 | skeletonHasParents: 1 88 | lastHumanDescriptionAvatarSource: {instanceID: 0} 89 | autoGenerateAvatarMappingIfUnspecified: 1 90 | animationType: 0 91 | humanoidOversampling: 1 92 | avatarSetup: 0 93 | additionalBone: 0 94 | userData: 95 | assetBundleName: 96 | assetBundleVariant: 97 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/Sample Scene.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d1c3109bdb54ad54c8a2b2838528e640 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/Wireframe.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f8eb5405ae7173b4393e1b689d44f684 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/Wireframe.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7e4670f52c55b094580911e153c57deb 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/Wireframe/Global Volume Profile.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &-7422014351897180457 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 3 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: 0b2db86121404754db890f4c8dfe81b2, type: 3} 13 | m_Name: Bloom 14 | m_EditorClassIdentifier: 15 | active: 1 16 | m_AdvancedMode: 0 17 | threshold: 18 | m_OverrideState: 1 19 | m_Value: 1.02 20 | min: 0 21 | intensity: 22 | m_OverrideState: 1 23 | m_Value: 0.25 24 | min: 0 25 | scatter: 26 | m_OverrideState: 0 27 | m_Value: 0.7 28 | min: 0 29 | max: 1 30 | clamp: 31 | m_OverrideState: 0 32 | m_Value: 65472 33 | min: 0 34 | tint: 35 | m_OverrideState: 0 36 | m_Value: {r: 1, g: 1, b: 1, a: 1} 37 | hdr: 0 38 | showAlpha: 0 39 | showEyeDropper: 1 40 | highQualityFiltering: 41 | m_OverrideState: 0 42 | m_Value: 0 43 | dirtTexture: 44 | m_OverrideState: 0 45 | m_Value: {fileID: 0} 46 | dirtIntensity: 47 | m_OverrideState: 0 48 | m_Value: 0 49 | min: 0 50 | --- !u!114 &-5126963160973761833 51 | MonoBehaviour: 52 | m_ObjectHideFlags: 3 53 | m_CorrespondingSourceObject: {fileID: 0} 54 | m_PrefabInstance: {fileID: 0} 55 | m_PrefabAsset: {fileID: 0} 56 | m_GameObject: {fileID: 0} 57 | m_Enabled: 1 58 | m_EditorHideFlags: 0 59 | m_Script: {fileID: 11500000, guid: 97c23e3b12dc18c42a140437e53d3951, type: 3} 60 | m_Name: Tonemapping 61 | m_EditorClassIdentifier: 62 | active: 1 63 | m_AdvancedMode: 0 64 | mode: 65 | m_OverrideState: 1 66 | m_Value: 2 67 | --- !u!114 &-1024060237157997756 68 | MonoBehaviour: 69 | m_ObjectHideFlags: 3 70 | m_CorrespondingSourceObject: {fileID: 0} 71 | m_PrefabInstance: {fileID: 0} 72 | m_PrefabAsset: {fileID: 0} 73 | m_GameObject: {fileID: 0} 74 | m_Enabled: 1 75 | m_EditorHideFlags: 0 76 | m_Script: {fileID: 11500000, guid: c01700fd266d6914ababb731e09af2eb, type: 3} 77 | m_Name: DepthOfField 78 | m_EditorClassIdentifier: 79 | active: 1 80 | m_AdvancedMode: 0 81 | mode: 82 | m_OverrideState: 1 83 | m_Value: 2 84 | gaussianStart: 85 | m_OverrideState: 0 86 | m_Value: 10 87 | min: 0 88 | gaussianEnd: 89 | m_OverrideState: 0 90 | m_Value: 30 91 | min: 0 92 | gaussianMaxRadius: 93 | m_OverrideState: 0 94 | m_Value: 1 95 | min: 0.5 96 | max: 1.5 97 | highQualitySampling: 98 | m_OverrideState: 0 99 | m_Value: 0 100 | focusDistance: 101 | m_OverrideState: 1 102 | m_Value: 3.07 103 | min: 0.1 104 | aperture: 105 | m_OverrideState: 1 106 | m_Value: 1 107 | min: 1 108 | max: 32 109 | focalLength: 110 | m_OverrideState: 1 111 | m_Value: 46 112 | min: 1 113 | max: 300 114 | bladeCount: 115 | m_OverrideState: 0 116 | m_Value: 5 117 | min: 3 118 | max: 9 119 | bladeCurvature: 120 | m_OverrideState: 0 121 | m_Value: 1 122 | min: 0 123 | max: 1 124 | bladeRotation: 125 | m_OverrideState: 0 126 | m_Value: 0 127 | min: -180 128 | max: 180 129 | --- !u!114 &11400000 130 | MonoBehaviour: 131 | m_ObjectHideFlags: 0 132 | m_CorrespondingSourceObject: {fileID: 0} 133 | m_PrefabInstance: {fileID: 0} 134 | m_PrefabAsset: {fileID: 0} 135 | m_GameObject: {fileID: 0} 136 | m_Enabled: 1 137 | m_EditorHideFlags: 0 138 | m_Script: {fileID: 11500000, guid: d7fd9488000d3734a9e00ee676215985, type: 3} 139 | m_Name: Global Volume Profile 140 | m_EditorClassIdentifier: 141 | components: 142 | - {fileID: -5126963160973761833} 143 | - {fileID: -7422014351897180457} 144 | - {fileID: -1024060237157997756} 145 | - {fileID: 9124629781250284072} 146 | --- !u!114 &9124629781250284072 147 | MonoBehaviour: 148 | m_ObjectHideFlags: 3 149 | m_CorrespondingSourceObject: {fileID: 0} 150 | m_PrefabInstance: {fileID: 0} 151 | m_PrefabAsset: {fileID: 0} 152 | m_GameObject: {fileID: 0} 153 | m_Enabled: 1 154 | m_EditorHideFlags: 0 155 | m_Script: {fileID: 11500000, guid: 81180773991d8724ab7f2d216912b564, type: 3} 156 | m_Name: ChromaticAberration 157 | m_EditorClassIdentifier: 158 | active: 1 159 | m_AdvancedMode: 0 160 | intensity: 161 | m_OverrideState: 1 162 | m_Value: 0.116 163 | min: 0 164 | max: 1 165 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/Wireframe/Global Volume Profile.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2ca8c2b26348315449951fe61140ba7e 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/Wireframe/LightingData.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJT-Jackton/URP-Geometry-Shader-Example/0573cf1f65158af11cad90b5d7a91c278c310d9f/Assets/Sample Scenes/Wireframe/LightingData.asset -------------------------------------------------------------------------------- /Assets/Sample Scenes/Wireframe/LightingData.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f918e4354ad13f74ab7aff7accf28cbf 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/Wireframe/ReflectionProbe-0.exr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJT-Jackton/URP-Geometry-Shader-Example/0573cf1f65158af11cad90b5d7a91c278c310d9f/Assets/Sample Scenes/Wireframe/ReflectionProbe-0.exr -------------------------------------------------------------------------------- /Assets/Sample Scenes/Wireframe/ReflectionProbe-0.exr.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0f6720f657073fa44b7ffafa2b1db43b 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 10 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 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 1 29 | seamlessCubemap: 1 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: 2 35 | aniso: 0 36 | mipBias: 0 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: 1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 2 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 3 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 100 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | forceMaximumCompressionQuality_BC6H_BC7: 0 73 | - serializedVersion: 3 74 | buildTarget: Standalone 75 | maxTextureSize: 8192 76 | resizeAlgorithm: 0 77 | textureFormat: -1 78 | textureCompression: 1 79 | compressionQuality: 50 80 | crunchedCompression: 0 81 | allowsAlphaSplitting: 0 82 | overridden: 0 83 | androidETC2FallbackOverride: 0 84 | forceMaximumCompressionQuality_BC6H_BC7: 0 85 | - serializedVersion: 3 86 | buildTarget: iPhone 87 | maxTextureSize: 8192 88 | resizeAlgorithm: 0 89 | textureFormat: -1 90 | textureCompression: 1 91 | compressionQuality: 50 92 | crunchedCompression: 0 93 | allowsAlphaSplitting: 0 94 | overridden: 0 95 | androidETC2FallbackOverride: 0 96 | forceMaximumCompressionQuality_BC6H_BC7: 0 97 | - serializedVersion: 3 98 | buildTarget: Android 99 | maxTextureSize: 8192 100 | resizeAlgorithm: 0 101 | textureFormat: -1 102 | textureCompression: 1 103 | compressionQuality: 50 104 | crunchedCompression: 0 105 | allowsAlphaSplitting: 0 106 | overridden: 0 107 | androidETC2FallbackOverride: 0 108 | forceMaximumCompressionQuality_BC6H_BC7: 0 109 | - serializedVersion: 3 110 | buildTarget: Windows Store Apps 111 | maxTextureSize: 8192 112 | resizeAlgorithm: 0 113 | textureFormat: -1 114 | textureCompression: 1 115 | compressionQuality: 50 116 | crunchedCompression: 0 117 | allowsAlphaSplitting: 0 118 | overridden: 0 119 | androidETC2FallbackOverride: 0 120 | forceMaximumCompressionQuality_BC6H_BC7: 0 121 | spriteSheet: 122 | serializedVersion: 2 123 | sprites: [] 124 | outline: [] 125 | physicsShape: [] 126 | bones: [] 127 | spriteID: 128 | internalID: 0 129 | vertices: [] 130 | indices: 131 | edges: [] 132 | weights: [] 133 | secondaryTextures: [] 134 | spritePackingTag: 135 | pSDRemoveMatte: 0 136 | pSDShowRemoveMatteOption: 0 137 | userData: 138 | assetBundleName: 139 | assetBundleVariant: 140 | -------------------------------------------------------------------------------- /Assets/Sample Scenes/Wireframe/ReflectionProbe-1.exr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJT-Jackton/URP-Geometry-Shader-Example/0573cf1f65158af11cad90b5d7a91c278c310d9f/Assets/Sample Scenes/Wireframe/ReflectionProbe-1.exr -------------------------------------------------------------------------------- /Assets/Sample Scenes/Wireframe/ReflectionProbe-1.exr.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 35f21c390abaf5445a6144e9e533f4a0 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 10 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 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 1 29 | seamlessCubemap: 1 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: 2 35 | aniso: 0 36 | mipBias: 0 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: 1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 2 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 3 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 100 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | forceMaximumCompressionQuality_BC6H_BC7: 0 73 | - serializedVersion: 3 74 | buildTarget: Standalone 75 | maxTextureSize: 8192 76 | resizeAlgorithm: 0 77 | textureFormat: -1 78 | textureCompression: 1 79 | compressionQuality: 50 80 | crunchedCompression: 0 81 | allowsAlphaSplitting: 0 82 | overridden: 0 83 | androidETC2FallbackOverride: 0 84 | forceMaximumCompressionQuality_BC6H_BC7: 0 85 | - serializedVersion: 3 86 | buildTarget: iPhone 87 | maxTextureSize: 8192 88 | resizeAlgorithm: 0 89 | textureFormat: -1 90 | textureCompression: 1 91 | compressionQuality: 50 92 | crunchedCompression: 0 93 | allowsAlphaSplitting: 0 94 | overridden: 0 95 | androidETC2FallbackOverride: 0 96 | forceMaximumCompressionQuality_BC6H_BC7: 0 97 | - serializedVersion: 3 98 | buildTarget: Android 99 | maxTextureSize: 8192 100 | resizeAlgorithm: 0 101 | textureFormat: -1 102 | textureCompression: 1 103 | compressionQuality: 50 104 | crunchedCompression: 0 105 | allowsAlphaSplitting: 0 106 | overridden: 0 107 | androidETC2FallbackOverride: 0 108 | forceMaximumCompressionQuality_BC6H_BC7: 0 109 | - serializedVersion: 3 110 | buildTarget: Windows Store Apps 111 | maxTextureSize: 8192 112 | resizeAlgorithm: 0 113 | textureFormat: -1 114 | textureCompression: 1 115 | compressionQuality: 50 116 | crunchedCompression: 0 117 | allowsAlphaSplitting: 0 118 | overridden: 0 119 | androidETC2FallbackOverride: 0 120 | forceMaximumCompressionQuality_BC6H_BC7: 0 121 | spriteSheet: 122 | serializedVersion: 2 123 | sprites: [] 124 | outline: [] 125 | physicsShape: [] 126 | bones: [] 127 | spriteID: 128 | internalID: 0 129 | vertices: [] 130 | indices: 131 | edges: [] 132 | weights: [] 133 | secondaryTextures: [] 134 | spritePackingTag: 135 | pSDRemoveMatte: 0 136 | pSDShowRemoveMatteOption: 0 137 | userData: 138 | assetBundleName: 139 | assetBundleVariant: 140 | -------------------------------------------------------------------------------- /Assets/Settings.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0735c275001a2c84dafdb30deced5d8d 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Settings/UniversalRenderPipelineAsset.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 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: bf2edee5c58d82540a51f03df9d42094, type: 3} 13 | m_Name: UniversalRenderPipelineAsset 14 | m_EditorClassIdentifier: 15 | k_AssetVersion: 5 16 | k_AssetPreviousVersion: 5 17 | m_RendererType: 1 18 | m_RendererData: {fileID: 0} 19 | m_RendererDataList: 20 | - {fileID: 11400000, guid: 71e9dad0da00cf84eaa03bd884e288db, type: 2} 21 | m_DefaultRendererIndex: 0 22 | m_RequireDepthTexture: 0 23 | m_RequireOpaqueTexture: 0 24 | m_OpaqueDownsampling: 1 25 | m_SupportsTerrainHoles: 1 26 | m_SupportsHDR: 1 27 | m_MSAA: 8 28 | m_RenderScale: 2 29 | m_MainLightRenderingMode: 1 30 | m_MainLightShadowsSupported: 1 31 | m_MainLightShadowmapResolution: 2048 32 | m_AdditionalLightsRenderingMode: 1 33 | m_AdditionalLightsPerObjectLimit: 4 34 | m_AdditionalLightShadowsSupported: 0 35 | m_AdditionalLightsShadowmapResolution: 512 36 | m_ShadowDistance: 50 37 | m_ShadowCascades: 2 38 | m_Cascade2Split: 0.25 39 | m_Cascade4Split: {x: 0.067, y: 0.2, z: 0.467} 40 | m_ShadowDepthBias: 1 41 | m_ShadowNormalBias: 1 42 | m_SoftShadowsSupported: 1 43 | m_UseSRPBatcher: 1 44 | m_SupportsDynamicBatching: 0 45 | m_MixedLightingSupported: 1 46 | m_DebugLevel: 0 47 | m_PostProcessingFeatureSet: 0 48 | m_ColorGradingMode: 1 49 | m_ColorGradingLutSize: 32 50 | m_ShadowType: 1 51 | m_LocalShadowsSupported: 0 52 | m_LocalShadowsAtlasResolution: 256 53 | m_MaxPixelLights: 0 54 | m_ShadowAtlasResolution: 256 55 | m_ShaderVariantLogLevel: 0 56 | -------------------------------------------------------------------------------- /Assets/Settings/UniversalRenderPipelineAsset.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e288722e163de36469ffd1878313caeb 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Settings/UniversalRenderPipelineAsset_Renderer.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 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: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} 13 | m_Name: UniversalRenderPipelineAsset_Renderer 14 | m_EditorClassIdentifier: 15 | m_RendererFeatures: [] 16 | postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2} 17 | shaders: 18 | blitPS: {fileID: 4800000, guid: c17132b1f77d20942aa75f8429c0f8bc, type: 3} 19 | copyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3} 20 | screenSpaceShadowPS: {fileID: 4800000, guid: 0f854b35a0cf61a429bd5dcfea30eddd, 21 | type: 3} 22 | samplingPS: {fileID: 4800000, guid: 04c410c9937594faa893a11dceb85f7e, type: 3} 23 | fallbackErrorPS: {fileID: 4800000, guid: e6e9a19c3678ded42a3bc431ebef7dbd, type: 3} 24 | m_OpaqueLayerMask: 25 | serializedVersion: 2 26 | m_Bits: 4294967295 27 | m_TransparentLayerMask: 28 | serializedVersion: 2 29 | m_Bits: 4294967295 30 | m_DefaultStencilState: 31 | overrideStencilState: 0 32 | stencilReference: 0 33 | stencilCompareFunction: 8 34 | passOperation: 0 35 | failOperation: 0 36 | zFailOperation: 0 37 | -------------------------------------------------------------------------------- /Assets/Settings/UniversalRenderPipelineAsset_Renderer.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 71e9dad0da00cf84eaa03bd884e288db 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Images/animated-extrusion.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJT-Jackton/URP-Geometry-Shader-Example/0573cf1f65158af11cad90b5d7a91c278c310d9f/Images/animated-extrusion.gif -------------------------------------------------------------------------------- /Images/screenshots-lowpoly.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJT-Jackton/URP-Geometry-Shader-Example/0573cf1f65158af11cad90b5d7a91c278c310d9f/Images/screenshots-lowpoly.png -------------------------------------------------------------------------------- /Images/screenshots-tessellation-lit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJT-Jackton/URP-Geometry-Shader-Example/0573cf1f65158af11cad90b5d7a91c278c310d9f/Images/screenshots-tessellation-lit.png -------------------------------------------------------------------------------- /Images/screenshots-wireframe-lit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJT-Jackton/URP-Geometry-Shader-Example/0573cf1f65158af11cad90b5d7a91c278c310d9f/Images/screenshots-wireframe-lit.png -------------------------------------------------------------------------------- /Images/screenshots-wireframe-styled-unlit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJT-Jackton/URP-Geometry-Shader-Example/0573cf1f65158af11cad90b5d7a91c278c310d9f/Images/screenshots-wireframe-styled-unlit.png -------------------------------------------------------------------------------- /Packages/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.unity.ide.vscode": "1.1.4", 4 | "com.unity.render-pipelines.universal": "7.3.1", 5 | "com.unity.textmeshpro": "2.0.1", 6 | "com.unity.timeline": "1.2.10", 7 | "com.unity.ugui": "1.0.0", 8 | "com.unity.modules.ai": "1.0.0", 9 | "com.unity.modules.androidjni": "1.0.0", 10 | "com.unity.modules.animation": "1.0.0", 11 | "com.unity.modules.assetbundle": "1.0.0", 12 | "com.unity.modules.audio": "1.0.0", 13 | "com.unity.modules.cloth": "1.0.0", 14 | "com.unity.modules.director": "1.0.0", 15 | "com.unity.modules.imageconversion": "1.0.0", 16 | "com.unity.modules.imgui": "1.0.0", 17 | "com.unity.modules.jsonserialize": "1.0.0", 18 | "com.unity.modules.particlesystem": "1.0.0", 19 | "com.unity.modules.physics": "1.0.0", 20 | "com.unity.modules.physics2d": "1.0.0", 21 | "com.unity.modules.screencapture": "1.0.0", 22 | "com.unity.modules.terrain": "1.0.0", 23 | "com.unity.modules.terrainphysics": "1.0.0", 24 | "com.unity.modules.tilemap": "1.0.0", 25 | "com.unity.modules.ui": "1.0.0", 26 | "com.unity.modules.uielements": "1.0.0", 27 | "com.unity.modules.umbra": "1.0.0", 28 | "com.unity.modules.unityanalytics": "1.0.0", 29 | "com.unity.modules.unitywebrequest": "1.0.0", 30 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 31 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 32 | "com.unity.modules.unitywebrequesttexture": "1.0.0", 33 | "com.unity.modules.unitywebrequestwww": "1.0.0", 34 | "com.unity.modules.vehicles": "1.0.0", 35 | "com.unity.modules.video": "1.0.0", 36 | "com.unity.modules.vr": "1.0.0", 37 | "com.unity.modules.wind": "1.0.0", 38 | "com.unity.modules.xr": "1.0.0" 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Volume: 1 8 | Rolloff Scale: 1 9 | Doppler Factor: 1 10 | Default Speaker Mode: 2 11 | m_SampleRate: 0 12 | m_DSPBufferSize: 1024 13 | m_VirtualVoiceCount: 512 14 | m_RealVoiceCount: 32 15 | m_SpatializerPlugin: 16 | m_AmbisonicDecoderPlugin: 17 | m_DisableAudio: 0 18 | m_VirtualizeEffects: 1 19 | m_RequestedDSPBufferSize: 0 20 | -------------------------------------------------------------------------------- /ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!236 &1 4 | ClusterInputManager: 5 | m_ObjectHideFlags: 0 6 | m_Inputs: [] 7 | -------------------------------------------------------------------------------- /ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!55 &1 4 | PhysicsManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 13 7 | m_Gravity: {x: 0, y: -9.81, z: 0} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_BounceThreshold: 2 10 | m_SleepThreshold: 0.005 11 | m_DefaultContactOffset: 0.01 12 | m_DefaultSolverIterations: 6 13 | m_DefaultSolverVelocityIterations: 1 14 | m_QueriesHitBackfaces: 0 15 | m_QueriesHitTriggers: 1 16 | m_EnableAdaptiveForce: 0 17 | m_ClothInterCollisionDistance: 0.1 18 | m_ClothInterCollisionStiffness: 0.2 19 | m_ContactsGeneration: 1 20 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 21 | m_AutoSimulation: 1 22 | m_AutoSyncTransforms: 0 23 | m_ReuseCollisionCallbacks: 0 24 | m_ClothInterCollisionSettingsToggle: 0 25 | m_ClothGravity: {x: 0, y: -9.81, z: 0} 26 | m_ContactPairsMode: 0 27 | m_BroadphaseType: 0 28 | m_WorldBounds: 29 | m_Center: {x: 0, y: 0, z: 0} 30 | m_Extent: {x: 250, y: 250, z: 250} 31 | m_WorldSubdivisions: 8 32 | m_FrictionType: 0 33 | m_EnableEnhancedDeterminism: 0 34 | m_EnableUnifiedHeightmaps: 1 35 | m_SolverType: 0 36 | m_DefaultMaxAngularSpeed: 7 37 | -------------------------------------------------------------------------------- /ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1045 &1 4 | EditorBuildSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Scenes: 8 | - enabled: 1 9 | path: Assets/Sample Scenes/Sample Scene.unity 10 | guid: d1c3109bdb54ad54c8a2b2838528e640 11 | m_configObjects: {} 12 | -------------------------------------------------------------------------------- /ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 9 7 | m_ExternalVersionControlSupport: Visible Meta Files 8 | m_SerializationMode: 2 9 | m_LineEndingsForNewScripts: 1 10 | m_DefaultBehaviorMode: 0 11 | m_PrefabRegularEnvironment: {fileID: 0} 12 | m_PrefabUIEnvironment: {fileID: 0} 13 | m_SpritePackerMode: 0 14 | m_SpritePackerPaddingPower: 1 15 | m_EtcTextureCompressorBehavior: 1 16 | m_EtcTextureFastCompressor: 1 17 | m_EtcTextureNormalCompressor: 2 18 | m_EtcTextureBestCompressor: 4 19 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;asmref;rsp 20 | m_ProjectGenerationRootNamespace: 21 | m_CollabEditorSettings: 22 | inProgressEnabled: 1 23 | m_EnableTextureStreamingInEditMode: 1 24 | m_EnableTextureStreamingInPlayMode: 1 25 | m_AsyncShaderCompilation: 1 26 | m_EnterPlayModeOptionsEnabled: 0 27 | m_EnterPlayModeOptions: 3 28 | m_ShowLightmapResolutionOverlay: 1 29 | m_UseLegacyProbeSampleCount: 0 30 | m_AssetPipelineMode: 1 31 | m_CacheServerMode: 0 32 | m_CacheServerEndpoint: 33 | m_CacheServerNamespacePrefix: default 34 | m_CacheServerEnableDownload: 1 35 | m_CacheServerEnableUpload: 1 36 | -------------------------------------------------------------------------------- /ProjectSettings/GraphicsSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!30 &1 4 | GraphicsSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 13 7 | m_Deferred: 8 | m_Mode: 1 9 | m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} 10 | m_DeferredReflections: 11 | m_Mode: 1 12 | m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} 13 | m_ScreenSpaceShadows: 14 | m_Mode: 1 15 | m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} 16 | m_LegacyDeferred: 17 | m_Mode: 1 18 | m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} 19 | m_DepthNormals: 20 | m_Mode: 1 21 | m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} 22 | m_MotionVectors: 23 | m_Mode: 1 24 | m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} 25 | m_LightHalo: 26 | m_Mode: 1 27 | m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} 28 | m_LensFlare: 29 | m_Mode: 1 30 | m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} 31 | m_AlwaysIncludedShaders: 32 | - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} 33 | - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} 34 | - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} 35 | - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} 36 | - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} 37 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} 38 | - {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0} 39 | m_PreloadedShaders: [] 40 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, 41 | type: 0} 42 | m_CustomRenderPipeline: {fileID: 11400000, guid: e288722e163de36469ffd1878313caeb, 43 | type: 2} 44 | m_TransparencySortMode: 0 45 | m_TransparencySortAxis: {x: 0, y: 0, z: 1} 46 | m_DefaultRenderingPath: 1 47 | m_DefaultMobileRenderingPath: 1 48 | m_TierSettings: [] 49 | m_LightmapStripping: 0 50 | m_FogStripping: 0 51 | m_InstancingStripping: 0 52 | m_LightmapKeepPlain: 1 53 | m_LightmapKeepDirCombined: 1 54 | m_LightmapKeepDynamicPlain: 1 55 | m_LightmapKeepDynamicDirCombined: 1 56 | m_LightmapKeepShadowMask: 1 57 | m_LightmapKeepSubtractive: 1 58 | m_FogKeepLinear: 1 59 | m_FogKeepExp: 1 60 | m_FogKeepExp2: 1 61 | m_AlbedoSwatchInfos: [] 62 | m_LightsUseLinearIntensity: 1 63 | m_LightsUseColorTemperature: 0 64 | m_LogWhenShaderIsCompiled: 0 65 | m_AllowEnlightenSupportForUpgradedProject: 1 66 | -------------------------------------------------------------------------------- /ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshProjectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | areas: 8 | - name: Walkable 9 | cost: 1 10 | - name: Not Walkable 11 | cost: 1 12 | - name: Jump 13 | cost: 2 14 | - name: 15 | cost: 1 16 | - name: 17 | cost: 1 18 | - name: 19 | cost: 1 20 | - name: 21 | cost: 1 22 | - name: 23 | cost: 1 24 | - name: 25 | cost: 1 26 | - name: 27 | cost: 1 28 | - name: 29 | cost: 1 30 | - name: 31 | cost: 1 32 | - name: 33 | cost: 1 34 | - name: 35 | cost: 1 36 | - name: 37 | cost: 1 38 | - name: 39 | cost: 1 40 | - name: 41 | cost: 1 42 | - name: 43 | cost: 1 44 | - name: 45 | cost: 1 46 | - name: 47 | cost: 1 48 | - name: 49 | cost: 1 50 | - name: 51 | cost: 1 52 | - name: 53 | cost: 1 54 | - name: 55 | cost: 1 56 | - name: 57 | cost: 1 58 | - name: 59 | cost: 1 60 | - name: 61 | cost: 1 62 | - name: 63 | cost: 1 64 | - name: 65 | cost: 1 66 | - name: 67 | cost: 1 68 | - name: 69 | cost: 1 70 | - name: 71 | cost: 1 72 | m_LastAgentTypeID: -887442657 73 | m_Settings: 74 | - serializedVersion: 2 75 | agentTypeID: 0 76 | agentRadius: 0.5 77 | agentHeight: 2 78 | agentSlope: 45 79 | agentClimb: 0.75 80 | ledgeDropHeight: 0 81 | maxJumpAcrossDistance: 0 82 | minRegionArea: 2 83 | manualCellSize: 0 84 | cellSize: 0.16666667 85 | manualTileSize: 0 86 | tileSize: 256 87 | accuratePlacement: 0 88 | debug: 89 | m_Flags: 0 90 | m_SettingNames: 91 | - Humanoid 92 | -------------------------------------------------------------------------------- /ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!19 &1 4 | Physics2DSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 4 7 | m_Gravity: {x: 0, y: -9.81} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_VelocityIterations: 8 10 | m_PositionIterations: 3 11 | m_VelocityThreshold: 1 12 | m_MaxLinearCorrection: 0.2 13 | m_MaxAngularCorrection: 8 14 | m_MaxTranslationSpeed: 100 15 | m_MaxRotationSpeed: 360 16 | m_BaumgarteScale: 0.2 17 | m_BaumgarteTimeOfImpactScale: 0.75 18 | m_TimeToSleep: 0.5 19 | m_LinearSleepTolerance: 0.01 20 | m_AngularSleepTolerance: 2 21 | m_DefaultContactOffset: 0.01 22 | m_JobOptions: 23 | serializedVersion: 2 24 | useMultithreading: 0 25 | useConsistencySorting: 0 26 | m_InterpolationPosesPerJob: 100 27 | m_NewContactsPerJob: 30 28 | m_CollideContactsPerJob: 100 29 | m_ClearFlagsPerJob: 200 30 | m_ClearBodyForcesPerJob: 200 31 | m_SyncDiscreteFixturesPerJob: 50 32 | m_SyncContinuousFixturesPerJob: 50 33 | m_FindNearestContactsPerJob: 100 34 | m_UpdateTriggerContactsPerJob: 100 35 | m_IslandSolverCostThreshold: 100 36 | m_IslandSolverBodyCostScale: 1 37 | m_IslandSolverContactCostScale: 10 38 | m_IslandSolverJointCostScale: 10 39 | m_IslandSolverBodiesPerJob: 50 40 | m_IslandSolverContactsPerJob: 50 41 | m_AutoSimulation: 1 42 | m_QueriesHitTriggers: 1 43 | m_QueriesStartInColliders: 1 44 | m_CallbacksOnDisable: 1 45 | m_ReuseCollisionCallbacks: 0 46 | m_AutoSyncTransforms: 0 47 | m_AlwaysShowColliders: 0 48 | m_ShowColliderSleep: 1 49 | m_ShowColliderContacts: 0 50 | m_ShowColliderAABB: 0 51 | m_ContactArrowScale: 0.2 52 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} 53 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} 54 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} 55 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} 56 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 57 | -------------------------------------------------------------------------------- /ProjectSettings/PresetManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1386491679 &1 4 | PresetManager: 5 | m_ObjectHideFlags: 0 6 | m_DefaultList: 7 | - type: 8 | m_NativeTypeID: 108 9 | m_ManagedTypePPtr: {fileID: 0} 10 | m_ManagedTypeFallback: 11 | defaultPresets: 12 | - m_Preset: {fileID: 2655988077585873504, guid: 463065d4f17d1d94d848aa127b94dd43, 13 | type: 2} 14 | - type: 15 | m_NativeTypeID: 1020 16 | m_ManagedTypePPtr: {fileID: 0} 17 | m_ManagedTypeFallback: 18 | defaultPresets: 19 | - m_Preset: {fileID: 2655988077585873504, guid: e7689051185d12f4298e1ebb2693a29f, 20 | type: 2} 21 | - type: 22 | m_NativeTypeID: 1006 23 | m_ManagedTypePPtr: {fileID: 0} 24 | m_ManagedTypeFallback: 25 | defaultPresets: 26 | - m_Preset: {fileID: 2655988077585873504, guid: e8537455c6c08bd4e8bf0be3707da685, 27 | type: 2} 28 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2019.3.1f1 2 | m_EditorVersionWithRevision: 2019.3.1f1 (89d6087839c2) 3 | -------------------------------------------------------------------------------- /ProjectSettings/QualitySettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!47 &1 4 | QualitySettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 5 7 | m_CurrentQuality: 2 8 | m_QualitySettings: 9 | - serializedVersion: 2 10 | name: Low 11 | pixelLightCount: 0 12 | shadows: 0 13 | shadowResolution: 0 14 | shadowProjection: 1 15 | shadowCascades: 1 16 | shadowDistance: 20 17 | shadowNearPlaneOffset: 3 18 | shadowCascade2Split: 0.33333334 19 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 20 | shadowmaskMode: 0 21 | skinWeights: 2 22 | textureQuality: 0 23 | anisotropicTextures: 0 24 | antiAliasing: 0 25 | softParticles: 0 26 | softVegetation: 0 27 | realtimeReflectionProbes: 0 28 | billboardsFaceCameraPosition: 0 29 | vSyncCount: 0 30 | lodBias: 0.4 31 | maximumLODLevel: 0 32 | streamingMipmapsActive: 0 33 | streamingMipmapsAddAllCameras: 1 34 | streamingMipmapsMemoryBudget: 512 35 | streamingMipmapsRenderersPerFrame: 512 36 | streamingMipmapsMaxLevelReduction: 2 37 | streamingMipmapsMaxFileIORequests: 1024 38 | particleRaycastBudget: 16 39 | asyncUploadTimeSlice: 2 40 | asyncUploadBufferSize: 16 41 | asyncUploadPersistentBuffer: 1 42 | resolutionScalingFixedDPIFactor: 1 43 | customRenderPipeline: {fileID: 11400000, guid: a31e9f9f9c9d4b9429ed0d1234e22103, 44 | type: 2} 45 | excludedTargetPlatforms: [] 46 | - serializedVersion: 2 47 | name: Medium 48 | pixelLightCount: 1 49 | shadows: 1 50 | shadowResolution: 0 51 | shadowProjection: 1 52 | shadowCascades: 1 53 | shadowDistance: 20 54 | shadowNearPlaneOffset: 3 55 | shadowCascade2Split: 0.33333334 56 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 57 | shadowmaskMode: 0 58 | skinWeights: 2 59 | textureQuality: 0 60 | anisotropicTextures: 1 61 | antiAliasing: 0 62 | softParticles: 0 63 | softVegetation: 0 64 | realtimeReflectionProbes: 0 65 | billboardsFaceCameraPosition: 0 66 | vSyncCount: 1 67 | lodBias: 0.7 68 | maximumLODLevel: 0 69 | streamingMipmapsActive: 0 70 | streamingMipmapsAddAllCameras: 1 71 | streamingMipmapsMemoryBudget: 512 72 | streamingMipmapsRenderersPerFrame: 512 73 | streamingMipmapsMaxLevelReduction: 2 74 | streamingMipmapsMaxFileIORequests: 1024 75 | particleRaycastBudget: 64 76 | asyncUploadTimeSlice: 2 77 | asyncUploadBufferSize: 16 78 | asyncUploadPersistentBuffer: 1 79 | resolutionScalingFixedDPIFactor: 1 80 | customRenderPipeline: {fileID: 11400000, guid: d847b876476d3d6468f5dfcd34266f96, 81 | type: 2} 82 | excludedTargetPlatforms: [] 83 | - serializedVersion: 2 84 | name: High 85 | pixelLightCount: 2 86 | shadows: 2 87 | shadowResolution: 1 88 | shadowProjection: 1 89 | shadowCascades: 2 90 | shadowDistance: 40 91 | shadowNearPlaneOffset: 3 92 | shadowCascade2Split: 0.33333334 93 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 94 | shadowmaskMode: 1 95 | skinWeights: 2 96 | textureQuality: 0 97 | anisotropicTextures: 2 98 | antiAliasing: 0 99 | softParticles: 0 100 | softVegetation: 1 101 | realtimeReflectionProbes: 1 102 | billboardsFaceCameraPosition: 1 103 | vSyncCount: 1 104 | lodBias: 1 105 | maximumLODLevel: 0 106 | streamingMipmapsActive: 0 107 | streamingMipmapsAddAllCameras: 1 108 | streamingMipmapsMemoryBudget: 512 109 | streamingMipmapsRenderersPerFrame: 512 110 | streamingMipmapsMaxLevelReduction: 2 111 | streamingMipmapsMaxFileIORequests: 1024 112 | particleRaycastBudget: 256 113 | asyncUploadTimeSlice: 2 114 | asyncUploadBufferSize: 16 115 | asyncUploadPersistentBuffer: 1 116 | resolutionScalingFixedDPIFactor: 1 117 | customRenderPipeline: {fileID: 11400000, guid: e288722e163de36469ffd1878313caeb, 118 | type: 2} 119 | excludedTargetPlatforms: [] 120 | m_PerPlatformDefaultQuality: 121 | Android: 1 122 | Lumin: 2 123 | Nintendo Switch: 2 124 | PS4: 2 125 | Stadia: 2 126 | Standalone: 2 127 | WebGL: 1 128 | Windows Store Apps: 2 129 | XboxOne: 2 130 | iPhone: 1 131 | tvOS: 1 132 | -------------------------------------------------------------------------------- /ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | serializedVersion: 2 6 | tags: [] 7 | layers: 8 | - Default 9 | - TransparentFX 10 | - Ignore Raycast 11 | - 12 | - Water 13 | - UI 14 | - 15 | - 16 | - 17 | - 18 | - 19 | - 20 | - 21 | - 22 | - 23 | - 24 | - 25 | - 26 | - 27 | - 28 | - 29 | - 30 | - 31 | - 32 | - 33 | - 34 | - 35 | - 36 | - 37 | - 38 | - 39 | - 40 | m_SortingLayers: 41 | - name: Default 42 | uniqueID: 0 43 | locked: 0 44 | -------------------------------------------------------------------------------- /ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: 0.02 7 | Maximum Allowed Timestep: 0.1 8 | m_TimeScale: 1 9 | Maximum Particle Timestep: 0.03 10 | -------------------------------------------------------------------------------- /ProjectSettings/URPProjectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 61 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: 247994e1f5a72c2419c26a37e9334c01, type: 3} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | m_LastMaterialVersion: 1 16 | -------------------------------------------------------------------------------- /ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!310 &1 4 | UnityConnectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 1 7 | m_Enabled: 0 8 | m_TestMode: 0 9 | m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events 10 | m_EventUrl: https://cdp.cloud.unity3d.com/v1/events 11 | m_ConfigUrl: https://config.uca.cloud.unity3d.com 12 | m_TestInitMode: 0 13 | CrashReportingSettings: 14 | m_EventUrl: https://perf-events.cloud.unity3d.com 15 | m_Enabled: 0 16 | m_LogBufferSize: 10 17 | m_CaptureEditorExceptions: 1 18 | UnityPurchasingSettings: 19 | m_Enabled: 0 20 | m_TestMode: 0 21 | UnityAnalyticsSettings: 22 | m_Enabled: 0 23 | m_TestMode: 0 24 | m_InitializeOnStartup: 1 25 | UnityAdsSettings: 26 | m_Enabled: 0 27 | m_InitializeOnStartup: 1 28 | m_TestMode: 0 29 | m_IosGameId: 30 | m_AndroidGameId: 31 | m_GameIds: {} 32 | m_GameId: 33 | PerformanceReportingSettings: 34 | m_Enabled: 0 35 | -------------------------------------------------------------------------------- /ProjectSettings/VFXManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!937362698 &1 4 | VFXManager: 5 | m_ObjectHideFlags: 0 6 | m_IndirectShader: {fileID: 0} 7 | m_CopyBufferShader: {fileID: 0} 8 | m_SortShader: {fileID: 0} 9 | m_RenderPipeSettingsPath: 10 | m_FixedTimeStep: 0.016666668 11 | m_MaxDeltaTime: 0.05 12 | -------------------------------------------------------------------------------- /ProjectSettings/XRSettings.asset: -------------------------------------------------------------------------------- 1 | { 2 | "m_SettingKeys": [ 3 | "VR Device Disabled", 4 | "VR Device User Alert" 5 | ], 6 | "m_SettingValues": [ 7 | "False", 8 | "False" 9 | ] 10 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # URP Geometry Shader Example 2 | ![](/Images/animated-extrusion.gif) 3 | 4 | Some examples of how can you use geometry shader in Unity URP. 5 | 6 | ## Requirement 7 | - Unity 2019.3.1f1 8 | - Universal Rendering Pipeline 7.3.1 9 | - Geometry shader support, obviously 10 | 11 | ## Screenshot 12 | ![](/Images/screenshots-lowpoly.png) 13 | > Low Poly Lit Shader 14 | 15 | ![](/Images/screenshots-wireframe-lit.png) 16 | > Wireframe Lit Shader 17 | 18 | ![](/Images/screenshots-wireframe-styled-unlit.png) 19 | > Wireframe Styled Unlit Shader 20 | 21 | ![](/Images/screenshots-tessellation-lit.png) 22 | > Tessellation Lit Shader 23 | 24 | ## Resources 25 | - Model - [Battle Damaged Sci-fi Helmet - PBR](https://github.com/KhronosGroup/glTF-Sample-Models/tree/master/2.0/DamagedHelmet) by [Leonardo Carrion](https://sketchfab.com/theblueturtle_) 26 | - Model - [Cutting Board 003](https://www.poliigon.com/model/cutting-board-003) by [Poliigon](https://www.poliigon.com/) 27 | - Skybox - [Adams Place Bridge](https://hdrihaven.com/hdri/?h=adams_place_bridge) by Andreas Mischok 28 | - Skybox - [Lebombo](https://hdrihaven.com/hdri/?h=lebombo) by Greg Zaal 29 | 30 | ## License 31 | #### Code 32 | CC0-1.0 33 | 34 | #### Battle Damaged Sci-fi Helmet - PBR 35 | Creative Commons Attribution-NonCommercial license 36 | 37 | #### All assets from Poliigon.com 38 | Contains assets from [Poliigon.com](https://www.poliigon.com/) - assets may not be redistributed 39 | 40 | #### All HDRIs from HDRIhaven.com 41 | CC0 42 | --------------------------------------------------------------------------------