├── README.md
├── Version 2
├── Objects.cs
├── MeshGeneratorV2.cs
├── MeshMat.mat
└── TerrainShader.shadergraph
└── Version 1
└── MeshGeneratorV1.cs
/README.md:
--------------------------------------------------------------------------------
1 | # ProceduralTerrainScripts
2 |
3 | Version 1 => How to Procedurally Generate Terrain
4 | https://www.youtube.com/watch?v=cLs3CGNV120
5 |
6 | Version 2 => Procedural Terrain Generation - Colours & Spawning random objects
7 | https://www.youtube.com/watch?v=bd4P5suj-L0
8 |
--------------------------------------------------------------------------------
/Version 2/Objects.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public class Objects : MonoBehaviour
6 | {
7 | void Start()
8 | {
9 | FindLand();
10 | }
11 |
12 | public void FindLand()
13 | {
14 | Ray ray = new Ray(transform.position, -transform.up);
15 | RaycastHit hitInfo;
16 | if (Physics.Raycast(ray, out hitInfo))
17 | {
18 | transform.position = new Vector3(hitInfo.point.x, hitInfo.point.y, hitInfo.point.z);
19 | }
20 | else
21 | {
22 | ray = new Ray(transform.position, transform.up);
23 | if (Physics.Raycast(ray, out hitInfo))
24 | {
25 | transform.position = new Vector3(hitInfo.point.x, hitInfo.point.y, hitInfo.point.z);
26 | }
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/Version 1/MeshGeneratorV1.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 |
3 | [RequireComponent(typeof(MeshFilter))]
4 | public class MeshGeneratorV1 : MonoBehaviour
5 | {
6 | Mesh mesh;
7 | private int MESH_SCALE = 500;
8 | public AnimationCurve heightCurve;
9 | private Vector3[] vertices;
10 | private int[] triangles;
11 |
12 | public int xSize;
13 | public int zSize;
14 |
15 | public float scale;
16 | public int octaves;
17 | public float lacunarity;
18 |
19 | public int seed;
20 | private System.Random prng;
21 | private Vector2[] octaveOffsets;
22 |
23 |
24 | void Start()
25 | {
26 | mesh = new Mesh();
27 | GetComponent().mesh = mesh;
28 | CreateNewMap();
29 | }
30 |
31 | public void CreateNewMap()
32 | {
33 | CreateMeshShape();
34 | CreateTriangles();
35 | UpdateMesh();
36 | }
37 |
38 | private void CreateMeshShape ()
39 | {
40 | // Creates seed
41 | Vector2[] octaveOffsets = GetOffsetSeed();
42 |
43 | if (scale <= 0)
44 | scale = 0.0001f;
45 |
46 | // Create vertices array
47 | vertices = new Vector3[(xSize + 1) * (zSize + 1)];
48 |
49 | for (int i = 0, z = 0; z <= zSize; z++)
50 | {
51 | for (int x = 0; x <= xSize; x++)
52 | {
53 | // Assign and set height of each vertices
54 | float noiseHeight = GenerateNoiseHeight(z, x, octaveOffsets);
55 | vertices[i] = new Vector3(x, noiseHeight, z);
56 | i++;
57 | }
58 | }
59 | }
60 |
61 | private Vector2[] GetOffsetSeed()
62 | {
63 | seed = Random.Range(0, 1000);
64 | // changes area of map
65 | System.Random prng = new System.Random(seed);
66 | Vector2[] octaveOffsets = new Vector2[octaves];
67 |
68 | for (int o = 0; o < octaves; o++) {
69 | float offsetX = prng.Next(-100000, 100000);
70 | float offsetY = prng.Next(-100000, 100000);
71 | octaveOffsets[o] = new Vector2(offsetX, offsetY);
72 | }
73 | return octaveOffsets;
74 | }
75 |
76 | private float GenerateNoiseHeight(int z, int x, Vector2[] octaveOffsets)
77 | {
78 | float amplitude = 12;
79 | float frequency = 1;
80 | float persistence = 0.5f;
81 | float noiseHeight = 0;
82 |
83 | // loop over octaves
84 | for (int y = 0; y < octaves; y++)
85 | {
86 | float mapZ = z / scale * frequency + octaveOffsets[y].y;
87 | float mapX = x / scale * frequency + octaveOffsets[y].x;
88 |
89 | // Create perlinValues
90 | // The *2-1 is to create a flat floor level
91 | float perlinValue = (Mathf.PerlinNoise(mapZ, mapX)) * 2 - 1;
92 | noiseHeight += heightCurve.Evaluate(perlinValue) * amplitude;
93 | frequency *= lacunarity;
94 | amplitude *= persistence;
95 | }
96 | return noiseHeight;
97 | }
98 |
99 | private void CreateTriangles()
100 | {
101 | // Need 6 vertices to create a square (2 triangles)
102 | triangles = new int[xSize * zSize * 6];
103 | int vert = 0;
104 | int tris = 0;
105 |
106 | // loop through rows
107 | for (int z = 0; z < zSize; z++)
108 | {
109 | // fill all columns in row
110 | for (int x = 0; x < xSize; x++)
111 | {
112 | triangles[tris + 0] = vert + 0;
113 | triangles[tris + 1] = vert + xSize + 1;
114 | triangles[tris + 2] = vert + 1;
115 | triangles[tris + 3] = vert + 1;
116 | triangles[tris + 4] = vert + xSize + 1;
117 | triangles[tris + 5] = vert + xSize + 2;
118 |
119 | vert++;
120 | tris += 6;
121 | }
122 | vert++;
123 | }
124 | }
125 |
126 | private void UpdateMesh()
127 | {
128 | mesh.Clear();
129 | mesh.vertices = vertices;
130 | mesh.triangles = triangles;
131 | mesh.RecalculateNormals();
132 | mesh.RecalculateTangents();
133 | GetComponent().sharedMesh = mesh;
134 |
135 | gameObject.transform.localScale = new Vector3(MESH_SCALE, MESH_SCALE, MESH_SCALE);
136 | }
137 | }
138 |
--------------------------------------------------------------------------------
/Version 2/MeshGeneratorV2.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using UnityEngine;
5 |
6 | [RequireComponent(typeof(MeshFilter))]
7 | public class MeshGeneratorV2 : MonoBehaviour
8 | {
9 | Mesh mesh;
10 | private int MESH_SCALE = 100;
11 | public GameObject[] objects;
12 | [SerializeField] private AnimationCurve heightCurve;
13 | private Vector3[] vertices;
14 | private int[] triangles;
15 |
16 | private Color[] colors;
17 | [SerializeField] private Gradient gradient;
18 |
19 | private float minTerrainheight;
20 | private float maxTerrainheight;
21 |
22 | public int xSize;
23 | public int zSize;
24 |
25 | public float scale;
26 | public int octaves;
27 | public float lacunarity;
28 |
29 | public int seed;
30 |
31 | private float lastNoiseHeight;
32 |
33 | void Start()
34 | {
35 | // Use this method if you havn't filled out the properties in the inspector
36 | // SetNullProperties();
37 |
38 | mesh = new Mesh();
39 | GetComponent().mesh = mesh;
40 | CreateNewMap();
41 | }
42 |
43 | private void SetNullProperties()
44 | {
45 | if (xSize <= 0) xSize = 50;
46 | if (zSize <= 0) zSize = 50;
47 | if (octaves <= 0) octaves = 5;
48 | if (lacunarity <= 0) lacunarity = 2;
49 | if (scale <= 0) scale = 50;
50 | }
51 |
52 | public void CreateNewMap()
53 | {
54 | CreateMeshShape();
55 | CreateTriangles();
56 | ColorMap();
57 | UpdateMesh();
58 | }
59 |
60 | private void CreateMeshShape ()
61 | {
62 | // Creates seed
63 | Vector2[] octaveOffsets = GetOffsetSeed();
64 |
65 | if (scale <= 0) scale = 0.0001f;
66 |
67 | // Create vertices
68 | vertices = new Vector3[(xSize + 1) * (zSize + 1)];
69 |
70 | for (int i = 0, z = 0; z <= zSize; z++)
71 | {
72 | for (int x = 0; x <= xSize; x++)
73 | {
74 | // Set height of vertices
75 | float noiseHeight = GenerateNoiseHeight(z, x, octaveOffsets);
76 | SetMinMaxHeights(noiseHeight);
77 | vertices[i] = new Vector3(x, noiseHeight, z);
78 | i++;
79 | }
80 | }
81 | }
82 |
83 | private Vector2[] GetOffsetSeed()
84 | {
85 | seed = Random.Range(0, 1000);
86 |
87 | // changes area of map
88 | System.Random prng = new System.Random(seed);
89 | Vector2[] octaveOffsets = new Vector2[octaves];
90 |
91 | for (int o = 0; o < octaves; o++) {
92 | float offsetX = prng.Next(-100000, 100000);
93 | float offsetY = prng.Next(-100000, 100000);
94 | octaveOffsets[o] = new Vector2(offsetX, offsetY);
95 | }
96 | return octaveOffsets;
97 | }
98 |
99 | private float GenerateNoiseHeight(int z, int x, Vector2[] octaveOffsets)
100 | {
101 | float amplitude = 20;
102 | float frequency = 1;
103 | float persistence = 0.5f;
104 | float noiseHeight = 0;
105 |
106 | // loop over octaves
107 | for (int y = 0; y < octaves; y++)
108 | {
109 | float mapZ = z / scale * frequency + octaveOffsets[y].y;
110 | float mapX = x / scale * frequency + octaveOffsets[y].x;
111 |
112 | //The *2-1 is to create a flat floor level
113 | float perlinValue = (Mathf.PerlinNoise(mapZ, mapX)) * 2 - 1;
114 | noiseHeight += heightCurve.Evaluate(perlinValue) * amplitude;
115 | frequency *= lacunarity;
116 | amplitude *= persistence;
117 | }
118 | return noiseHeight;
119 | }
120 |
121 | private void SetMinMaxHeights(float noiseHeight)
122 | {
123 | // Set min and max height of map for color gradient
124 | if (noiseHeight > maxTerrainheight)
125 | maxTerrainheight = noiseHeight;
126 | if (noiseHeight < minTerrainheight)
127 | minTerrainheight = noiseHeight;
128 | }
129 |
130 |
131 | private void CreateTriangles()
132 | {
133 | // Need 6 vertices to create a square (2 triangles)
134 | triangles = new int[xSize * zSize * 6];
135 |
136 | int vert = 0;
137 | int tris = 0;
138 | // Go to next row
139 | for (int z = 0; z < zSize; z++)
140 | {
141 | // fill row
142 | for (int x = 0; x < xSize; x++)
143 | {
144 | triangles[tris + 0] = vert + 0;
145 | triangles[tris + 1] = vert + xSize + 1;
146 | triangles[tris + 2] = vert + 1;
147 | triangles[tris + 3] = vert + 1;
148 | triangles[tris + 4] = vert + xSize + 1;
149 | triangles[tris + 5] = vert + xSize + 2;
150 |
151 | vert++;
152 | tris += 6;
153 | }
154 | vert++;
155 | }
156 | }
157 |
158 | private void ColorMap()
159 | {
160 | colors = new Color[vertices.Length];
161 |
162 | // Loop over vertices and apply a color from the depending on height (y axis value)
163 | for (int i = 0, z = 0; z < vertices.Length; z++)
164 | {
165 | float height = Mathf.InverseLerp(minTerrainheight, maxTerrainheight, vertices[i].y);
166 | colors[i] = gradient.Evaluate(height);
167 | i++;
168 | }
169 | }
170 |
171 | private void MapEmbellishments()
172 | {
173 | for (int i = 0; i < vertices.Length; i++)
174 | {
175 | // find actual position of vertices in the game
176 | Vector3 worldPt = transform.TransformPoint(mesh.vertices[i]);
177 | var noiseHeight = worldPt.y;
178 | // Stop generation if height difference between 2 vertices is too steep
179 | if(System.Math.Abs(lastNoiseHeight - worldPt.y) < 25)
180 | {
181 | // min height for object generation
182 | if (noiseHeight > 100)
183 | {
184 | // Chance to generate
185 | if (Random.Range(1, 5) == 1)
186 | {
187 | GameObject objectToSpawn = objects[Random.Range(0, objects.Length)];
188 | var spawnAboveTerrainBy = noiseHeight * 2;
189 | Instantiate(objectToSpawn, new Vector3(mesh.vertices[i].x * MESH_SCALE, spawnAboveTerrainBy, mesh.vertices[i].z * MESH_SCALE), Quaternion.identity);
190 | }
191 | }
192 | }
193 | lastNoiseHeight = noiseHeight;
194 | }
195 | }
196 |
197 | private void UpdateMesh()
198 | {
199 | mesh.Clear();
200 | mesh.vertices = vertices;
201 | mesh.triangles = triangles;
202 | mesh.colors = colors;
203 | mesh.RecalculateNormals();
204 | mesh.RecalculateTangents();
205 |
206 | GetComponent().sharedMesh = mesh;
207 | gameObject.transform.localScale = new Vector3(MESH_SCALE, MESH_SCALE, MESH_SCALE);
208 |
209 | MapEmbellishments();
210 | }
211 |
212 | }
213 |
--------------------------------------------------------------------------------
/Version 2/MeshMat.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: MeshMat
11 | m_Shader: {fileID: -6465566751694194690, guid: a671c605ad636c94dbfe42ba34a7c424,
12 | type: 3}
13 | m_ShaderKeywords: _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A _SPECULARHIGHLIGHTS_OFF
14 | _SPECULAR_SETUP
15 | m_LightmapFlags: 4
16 | m_EnableInstancingVariants: 0
17 | m_DoubleSidedGI: 0
18 | m_CustomRenderQueue: -1
19 | stringTagMap: {}
20 | disabledShaderPasses: []
21 | m_SavedProperties:
22 | serializedVersion: 3
23 | m_TexEnvs:
24 | - _BaseMap:
25 | m_Texture: {fileID: 0}
26 | m_Scale: {x: 1, y: 1}
27 | m_Offset: {x: 0, y: 0}
28 | - _BumpMap:
29 | m_Texture: {fileID: 0}
30 | m_Scale: {x: 1, y: 1}
31 | m_Offset: {x: 0, y: 0}
32 | - _Control:
33 | m_Texture: {fileID: 0}
34 | m_Scale: {x: 1, y: 1}
35 | m_Offset: {x: 0, y: 0}
36 | - _DetailAlbedoMap:
37 | m_Texture: {fileID: 0}
38 | m_Scale: {x: 1, y: 1}
39 | m_Offset: {x: 0, y: 0}
40 | - _DetailMask:
41 | m_Texture: {fileID: 0}
42 | m_Scale: {x: 1, y: 1}
43 | m_Offset: {x: 0, y: 0}
44 | - _DetailNormalMap:
45 | m_Texture: {fileID: 0}
46 | m_Scale: {x: 1, y: 1}
47 | m_Offset: {x: 0, y: 0}
48 | - _DetailTex:
49 | m_Texture: {fileID: 0}
50 | m_Scale: {x: 1, y: 1}
51 | m_Offset: {x: 0, y: 0}
52 | - _EmissionMap:
53 | m_Texture: {fileID: 0}
54 | m_Scale: {x: 1, y: 1}
55 | m_Offset: {x: 0, y: 0}
56 | - _MainTex:
57 | m_Texture: {fileID: 0}
58 | m_Scale: {x: 1, y: 1}
59 | m_Offset: {x: 0, y: 0}
60 | - _Mask0:
61 | m_Texture: {fileID: 0}
62 | m_Scale: {x: 1, y: 1}
63 | m_Offset: {x: 0, y: 0}
64 | - _Mask1:
65 | m_Texture: {fileID: 0}
66 | m_Scale: {x: 1, y: 1}
67 | m_Offset: {x: 0, y: 0}
68 | - _Mask2:
69 | m_Texture: {fileID: 0}
70 | m_Scale: {x: 1, y: 1}
71 | m_Offset: {x: 0, y: 0}
72 | - _Mask3:
73 | m_Texture: {fileID: 0}
74 | m_Scale: {x: 1, y: 1}
75 | m_Offset: {x: 0, y: 0}
76 | - _MetallicGlossMap:
77 | m_Texture: {fileID: 0}
78 | m_Scale: {x: 1, y: 1}
79 | m_Offset: {x: 0, y: 0}
80 | - _Normal0:
81 | m_Texture: {fileID: 0}
82 | m_Scale: {x: 1, y: 1}
83 | m_Offset: {x: 0, y: 0}
84 | - _Normal1:
85 | m_Texture: {fileID: 0}
86 | m_Scale: {x: 1, y: 1}
87 | m_Offset: {x: 0, y: 0}
88 | - _Normal2:
89 | m_Texture: {fileID: 0}
90 | m_Scale: {x: 1, y: 1}
91 | m_Offset: {x: 0, y: 0}
92 | - _Normal3:
93 | m_Texture: {fileID: 0}
94 | m_Scale: {x: 1, y: 1}
95 | m_Offset: {x: 0, y: 0}
96 | - _OcclusionMap:
97 | m_Texture: {fileID: 0}
98 | m_Scale: {x: 1, y: 1}
99 | m_Offset: {x: 0, y: 0}
100 | - _ParallaxMap:
101 | m_Texture: {fileID: 0}
102 | m_Scale: {x: 1, y: 1}
103 | m_Offset: {x: 0, y: 0}
104 | - _SpecGlossMap:
105 | m_Texture: {fileID: 0}
106 | m_Scale: {x: 1, y: 1}
107 | m_Offset: {x: 0, y: 0}
108 | - _Splat0:
109 | m_Texture: {fileID: 0}
110 | m_Scale: {x: 1, y: 1}
111 | m_Offset: {x: 0, y: 0}
112 | - _Splat1:
113 | m_Texture: {fileID: 0}
114 | m_Scale: {x: 1, y: 1}
115 | m_Offset: {x: 0, y: 0}
116 | - _Splat2:
117 | m_Texture: {fileID: 0}
118 | m_Scale: {x: 1, y: 1}
119 | m_Offset: {x: 0, y: 0}
120 | - _Splat3:
121 | m_Texture: {fileID: 0}
122 | m_Scale: {x: 1, y: 1}
123 | m_Offset: {x: 0, y: 0}
124 | - _TerrainHolesTexture:
125 | m_Texture: {fileID: 0}
126 | m_Scale: {x: 1, y: 1}
127 | m_Offset: {x: 0, y: 0}
128 | - unity_Lightmaps:
129 | m_Texture: {fileID: 0}
130 | m_Scale: {x: 1, y: 1}
131 | m_Offset: {x: 0, y: 0}
132 | - unity_LightmapsInd:
133 | m_Texture: {fileID: 0}
134 | m_Scale: {x: 1, y: 1}
135 | m_Offset: {x: 0, y: 0}
136 | - unity_ShadowMasks:
137 | m_Texture: {fileID: 0}
138 | m_Scale: {x: 1, y: 1}
139 | m_Offset: {x: 0, y: 0}
140 | m_Floats:
141 | - Vector1_3d3fa9461a56467f8e16928175353ceb: -36.61
142 | - Vector1_d8b427b47f5d4553aba45000b5d522ec: 134.5
143 | - _AlphaClip: 0
144 | - _Blend: 0
145 | - _BlendOp: 0
146 | - _BumpScale: 1
147 | - _CameraFadingEnabled: 0
148 | - _CameraFarFadeDistance: 2
149 | - _CameraNearFadeDistance: 1
150 | - _ClearCoatMask: 0
151 | - _ClearCoatSmoothness: 0
152 | - _ColorMode: 0
153 | - _Cull: 2
154 | - _Cutoff: 0.5
155 | - _DetailAlbedoMapScale: 1
156 | - _DetailNormalMapScale: 1
157 | - _DistortionBlend: 0.5
158 | - _DistortionEnabled: 0
159 | - _DistortionStrength: 1
160 | - _DistortionStrengthScaled: 0.1
161 | - _DstBlend: 0
162 | - _EnableHeightBlend: 0
163 | - _EnableInstancedPerPixelNormal: 1
164 | - _EnvironmentReflections: 1
165 | - _FlipbookBlending: 0
166 | - _FlipbookMode: 0
167 | - _GlossMapScale: 1
168 | - _Glossiness: 0.5
169 | - _GlossinessSource: 0
170 | - _GlossyReflections: 0
171 | - _HeightTransition: 0
172 | - _Metallic: 0
173 | - _Metallic0: 0
174 | - _Metallic1: 0
175 | - _Metallic2: 0
176 | - _Metallic3: 0
177 | - _Mode: 1
178 | - _NumLayersCount: 1
179 | - _OcclusionStrength: 1
180 | - _Parallax: 0.02
181 | - _QueueOffset: 0
182 | - _ReceiveShadows: 1
183 | - _Shininess: 0
184 | - _Smoothness: 0
185 | - _Smoothness0: 0.5
186 | - _Smoothness1: 0.5
187 | - _Smoothness2: 0.5
188 | - _Smoothness3: 0.5
189 | - _SmoothnessSource: 0
190 | - _SmoothnessTextureChannel: 1
191 | - _SoftParticlesEnabled: 0
192 | - _SoftParticlesFarFadeDistance: 1
193 | - _SoftParticlesNearFadeDistance: 0
194 | - _SpecSource: 0
195 | - _SpecularHighlights: 0
196 | - _SrcBlend: 1
197 | - _Surface: 0
198 | - _UVSec: 0
199 | - _WindQuality: 0
200 | - _WorkflowMode: 0
201 | - _ZWrite: 1
202 | m_Colors:
203 | - Color_83d2dad111604444bd27ee69dea3d1ad: {r: 0.2319755, g: 0.5566038, b: 0.20216268,
204 | a: 1}
205 | - Color_c256e61a2b97414886f1579736c334fe: {r: 0.9433962, g: 0.9282076, b: 0.5206479,
206 | a: 1}
207 | - _BaseColor: {r: 0.2487446, g: 0.5283019, b: 0.23673905, a: 0}
208 | - _BaseColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
209 | - _CameraFadeParams: {r: 0, g: 0, b: 0, a: 0}
210 | - _Color: {r: 1, g: 1, b: 1, a: 1}
211 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
212 | - _HueVariation: {r: 1, g: 0.5, b: 0, a: 0.1}
213 | - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0}
214 | - _SpecColor: {r: 0, g: 0, b: 0, a: 0}
215 | m_BuildTextureStacks: []
216 | --- !u!114 &553503671331191259
217 | MonoBehaviour:
218 | m_ObjectHideFlags: 11
219 | m_CorrespondingSourceObject: {fileID: 0}
220 | m_PrefabInstance: {fileID: 0}
221 | m_PrefabAsset: {fileID: 0}
222 | m_GameObject: {fileID: 0}
223 | m_Enabled: 1
224 | m_EditorHideFlags: 0
225 | m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
226 | m_Name:
227 | m_EditorClassIdentifier:
228 | version: 4
229 |
--------------------------------------------------------------------------------
/Version 2/TerrainShader.shadergraph:
--------------------------------------------------------------------------------
1 | {
2 | "m_SGVersion": 2,
3 | "m_Type": "UnityEditor.ShaderGraph.GraphData",
4 | "m_ObjectId": "df79c357d39d4044b57a82db12fa016c",
5 | "m_Properties": [],
6 | "m_Keywords": [],
7 | "m_Nodes": [
8 | {
9 | "m_Id": "53c68fda37498e8a9a63108a1e8ca4fc"
10 | },
11 | {
12 | "m_Id": "fd5bd6ddd5d24ed5ae70cfa88aa0771e"
13 | },
14 | {
15 | "m_Id": "cdf5aa86d15c4bc0baffea35737ce6af"
16 | },
17 | {
18 | "m_Id": "04148613d7e048d399ff2ab17ef59898"
19 | },
20 | {
21 | "m_Id": "e6eb4b77e74144bfaa67b88a405ccb4f"
22 | },
23 | {
24 | "m_Id": "cc9cfbea2bcb47d087d2c177252d27e0"
25 | },
26 | {
27 | "m_Id": "d89a8d9020d04326984d8fedc92c87d3"
28 | },
29 | {
30 | "m_Id": "de99aa5e98d64a3a91eb6d1cbeaf53b3"
31 | },
32 | {
33 | "m_Id": "b109a677d8eb4c439e4fd589ca68e4cd"
34 | },
35 | {
36 | "m_Id": "7f89fddf352e48db9a61e871bfda1564"
37 | },
38 | {
39 | "m_Id": "0a1287b4f2ed48af9b174c2c8f87ef17"
40 | },
41 | {
42 | "m_Id": "1b5e1d1680964aca8c26a7d6bf968fca"
43 | }
44 | ],
45 | "m_GroupDatas": [],
46 | "m_StickyNoteDatas": [],
47 | "m_Edges": [
48 | {
49 | "m_OutputSlot": {
50 | "m_Node": {
51 | "m_Id": "53c68fda37498e8a9a63108a1e8ca4fc"
52 | },
53 | "m_SlotId": 0
54 | },
55 | "m_InputSlot": {
56 | "m_Node": {
57 | "m_Id": "e6eb4b77e74144bfaa67b88a405ccb4f"
58 | },
59 | "m_SlotId": 0
60 | }
61 | }
62 | ],
63 | "m_VertexContext": {
64 | "m_Position": {
65 | "x": -87.0,
66 | "y": -160.0
67 | },
68 | "m_Blocks": [
69 | {
70 | "m_Id": "fd5bd6ddd5d24ed5ae70cfa88aa0771e"
71 | },
72 | {
73 | "m_Id": "cdf5aa86d15c4bc0baffea35737ce6af"
74 | },
75 | {
76 | "m_Id": "04148613d7e048d399ff2ab17ef59898"
77 | }
78 | ]
79 | },
80 | "m_FragmentContext": {
81 | "m_Position": {
82 | "x": -87.0,
83 | "y": 40.0
84 | },
85 | "m_Blocks": [
86 | {
87 | "m_Id": "e6eb4b77e74144bfaa67b88a405ccb4f"
88 | },
89 | {
90 | "m_Id": "cc9cfbea2bcb47d087d2c177252d27e0"
91 | },
92 | {
93 | "m_Id": "d89a8d9020d04326984d8fedc92c87d3"
94 | },
95 | {
96 | "m_Id": "de99aa5e98d64a3a91eb6d1cbeaf53b3"
97 | },
98 | {
99 | "m_Id": "b109a677d8eb4c439e4fd589ca68e4cd"
100 | },
101 | {
102 | "m_Id": "7f89fddf352e48db9a61e871bfda1564"
103 | },
104 | {
105 | "m_Id": "0a1287b4f2ed48af9b174c2c8f87ef17"
106 | },
107 | {
108 | "m_Id": "1b5e1d1680964aca8c26a7d6bf968fca"
109 | }
110 | ]
111 | },
112 | "m_PreviewData": {
113 | "serializedMesh": {
114 | "m_SerializedMesh": "{\"mesh\":{\"instanceID\":0}}",
115 | "m_Guid": ""
116 | }
117 | },
118 | "m_Path": "Shader Graphs",
119 | "m_ConcretePrecision": 1,
120 | "m_PreviewMode": 2,
121 | "m_OutputNode": {
122 | "m_Id": ""
123 | },
124 | "m_ActiveTargets": [
125 | {
126 | "m_Id": "3b560ab3bf0a4230a77494133bbd3d74"
127 | }
128 | ]
129 | }
130 |
131 | {
132 | "m_SGVersion": 0,
133 | "m_Type": "UnityEditor.ShaderGraph.BlockNode",
134 | "m_ObjectId": "04148613d7e048d399ff2ab17ef59898",
135 | "m_Group": {
136 | "m_Id": ""
137 | },
138 | "m_Name": "VertexDescription.Tangent",
139 | "m_DrawState": {
140 | "m_Expanded": true,
141 | "m_Position": {
142 | "serializedVersion": "2",
143 | "x": 0.0,
144 | "y": 0.0,
145 | "width": 0.0,
146 | "height": 0.0
147 | }
148 | },
149 | "m_Slots": [
150 | {
151 | "m_Id": "10004d5899f9454ea1670caf60912df3"
152 | }
153 | ],
154 | "synonyms": [],
155 | "m_Precision": 0,
156 | "m_PreviewExpanded": true,
157 | "m_PreviewMode": 0,
158 | "m_CustomColors": {
159 | "m_SerializableColors": []
160 | },
161 | "m_SerializedDescriptor": "VertexDescription.Tangent"
162 | }
163 |
164 | {
165 | "m_SGVersion": 0,
166 | "m_Type": "UnityEditor.ShaderGraph.BlockNode",
167 | "m_ObjectId": "0a1287b4f2ed48af9b174c2c8f87ef17",
168 | "m_Group": {
169 | "m_Id": ""
170 | },
171 | "m_Name": "SurfaceDescription.Occlusion",
172 | "m_DrawState": {
173 | "m_Expanded": true,
174 | "m_Position": {
175 | "serializedVersion": "2",
176 | "x": 0.0,
177 | "y": 0.0,
178 | "width": 0.0,
179 | "height": 0.0
180 | }
181 | },
182 | "m_Slots": [
183 | {
184 | "m_Id": "bbdb81d5ca2b4bb88b1a3dde6d07fb9e"
185 | }
186 | ],
187 | "synonyms": [],
188 | "m_Precision": 0,
189 | "m_PreviewExpanded": true,
190 | "m_PreviewMode": 0,
191 | "m_CustomColors": {
192 | "m_SerializableColors": []
193 | },
194 | "m_SerializedDescriptor": "SurfaceDescription.Occlusion"
195 | }
196 |
197 | {
198 | "m_SGVersion": 0,
199 | "m_Type": "UnityEditor.ShaderGraph.TangentMaterialSlot",
200 | "m_ObjectId": "10004d5899f9454ea1670caf60912df3",
201 | "m_Id": 0,
202 | "m_DisplayName": "Tangent",
203 | "m_SlotType": 0,
204 | "m_Hidden": false,
205 | "m_ShaderOutputName": "Tangent",
206 | "m_StageCapability": 1,
207 | "m_Value": {
208 | "x": 0.0,
209 | "y": 0.0,
210 | "z": 0.0
211 | },
212 | "m_DefaultValue": {
213 | "x": 0.0,
214 | "y": 0.0,
215 | "z": 0.0
216 | },
217 | "m_Labels": [],
218 | "m_Space": 0
219 | }
220 |
221 | {
222 | "m_SGVersion": 0,
223 | "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
224 | "m_ObjectId": "13c7af0351f6ca82b37303f27b8c015d",
225 | "m_Id": 0,
226 | "m_DisplayName": "Out",
227 | "m_SlotType": 1,
228 | "m_Hidden": false,
229 | "m_ShaderOutputName": "Out",
230 | "m_StageCapability": 3,
231 | "m_Value": {
232 | "x": 1.0,
233 | "y": 1.0,
234 | "z": 1.0,
235 | "w": 1.0
236 | },
237 | "m_DefaultValue": {
238 | "x": 0.0,
239 | "y": 0.0,
240 | "z": 0.0,
241 | "w": 0.0
242 | },
243 | "m_Labels": []
244 | }
245 |
246 | {
247 | "m_SGVersion": 0,
248 | "m_Type": "UnityEditor.ShaderGraph.ColorRGBMaterialSlot",
249 | "m_ObjectId": "19734e906799402cbee0c116374f47b8",
250 | "m_Id": 0,
251 | "m_DisplayName": "Base Color",
252 | "m_SlotType": 0,
253 | "m_Hidden": false,
254 | "m_ShaderOutputName": "BaseColor",
255 | "m_StageCapability": 2,
256 | "m_Value": {
257 | "x": 0.7353569269180298,
258 | "y": 0.7353569269180298,
259 | "z": 0.7353569269180298
260 | },
261 | "m_DefaultValue": {
262 | "x": 0.0,
263 | "y": 0.0,
264 | "z": 0.0
265 | },
266 | "m_Labels": [],
267 | "m_ColorMode": 0,
268 | "m_DefaultColor": {
269 | "r": 0.5,
270 | "g": 0.5,
271 | "b": 0.5,
272 | "a": 1.0
273 | }
274 | }
275 |
276 | {
277 | "m_SGVersion": 0,
278 | "m_Type": "UnityEditor.ShaderGraph.BlockNode",
279 | "m_ObjectId": "1b5e1d1680964aca8c26a7d6bf968fca",
280 | "m_Group": {
281 | "m_Id": ""
282 | },
283 | "m_Name": "SurfaceDescription.Metallic",
284 | "m_DrawState": {
285 | "m_Expanded": true,
286 | "m_Position": {
287 | "serializedVersion": "2",
288 | "x": 0.0,
289 | "y": 0.0,
290 | "width": 0.0,
291 | "height": 0.0
292 | }
293 | },
294 | "m_Slots": [
295 | {
296 | "m_Id": "2d02a238862f47c694bf024e5bff9856"
297 | }
298 | ],
299 | "synonyms": [],
300 | "m_Precision": 0,
301 | "m_PreviewExpanded": true,
302 | "m_PreviewMode": 0,
303 | "m_CustomColors": {
304 | "m_SerializableColors": []
305 | },
306 | "m_SerializedDescriptor": "SurfaceDescription.Metallic"
307 | }
308 |
309 | {
310 | "m_SGVersion": 0,
311 | "m_Type": "UnityEditor.Rendering.Universal.ShaderGraph.UniversalLitSubTarget",
312 | "m_ObjectId": "29a5b71184f9435f8f0bbe616756b953",
313 | "m_WorkflowMode": 1,
314 | "m_NormalDropOffSpace": 2,
315 | "m_ClearCoat": false
316 | }
317 |
318 | {
319 | "m_SGVersion": 0,
320 | "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
321 | "m_ObjectId": "2d02a238862f47c694bf024e5bff9856",
322 | "m_Id": 0,
323 | "m_DisplayName": "Metallic",
324 | "m_SlotType": 0,
325 | "m_Hidden": false,
326 | "m_ShaderOutputName": "Metallic",
327 | "m_StageCapability": 2,
328 | "m_Value": 0.3499999940395355,
329 | "m_DefaultValue": 0.0,
330 | "m_Labels": []
331 | }
332 |
333 | {
334 | "m_SGVersion": 0,
335 | "m_Type": "UnityEditor.Rendering.Universal.ShaderGraph.UniversalTarget",
336 | "m_ObjectId": "3b560ab3bf0a4230a77494133bbd3d74",
337 | "m_ActiveSubTarget": {
338 | "m_Id": "29a5b71184f9435f8f0bbe616756b953"
339 | },
340 | "m_SurfaceType": 0,
341 | "m_AlphaMode": 0,
342 | "m_TwoSided": false,
343 | "m_AlphaClip": false,
344 | "m_CustomEditorGUI": ""
345 | }
346 |
347 | {
348 | "m_SGVersion": 0,
349 | "m_Type": "UnityEditor.ShaderGraph.VertexColorNode",
350 | "m_ObjectId": "53c68fda37498e8a9a63108a1e8ca4fc",
351 | "m_Group": {
352 | "m_Id": ""
353 | },
354 | "m_Name": "Vertex Color",
355 | "m_DrawState": {
356 | "m_Expanded": true,
357 | "m_Position": {
358 | "serializedVersion": "2",
359 | "x": -404.0000305175781,
360 | "y": -299.0,
361 | "width": 208.00001525878907,
362 | "height": 278.0
363 | }
364 | },
365 | "m_Slots": [
366 | {
367 | "m_Id": "13c7af0351f6ca82b37303f27b8c015d"
368 | }
369 | ],
370 | "synonyms": [],
371 | "m_Precision": 0,
372 | "m_PreviewExpanded": true,
373 | "m_PreviewMode": 2,
374 | "m_CustomColors": {
375 | "m_SerializableColors": []
376 | }
377 | }
378 |
379 | {
380 | "m_SGVersion": 0,
381 | "m_Type": "UnityEditor.ShaderGraph.ColorRGBMaterialSlot",
382 | "m_ObjectId": "5f2cf61c112f428eba073ad8e06b0ed0",
383 | "m_Id": 0,
384 | "m_DisplayName": "Emission",
385 | "m_SlotType": 0,
386 | "m_Hidden": false,
387 | "m_ShaderOutputName": "Emission",
388 | "m_StageCapability": 2,
389 | "m_Value": {
390 | "x": 0.0,
391 | "y": 0.0,
392 | "z": 0.0
393 | },
394 | "m_DefaultValue": {
395 | "x": 0.0,
396 | "y": 0.0,
397 | "z": 0.0
398 | },
399 | "m_Labels": [],
400 | "m_ColorMode": 1,
401 | "m_DefaultColor": {
402 | "r": 0.0,
403 | "g": 0.0,
404 | "b": 0.0,
405 | "a": 1.0
406 | }
407 | }
408 |
409 | {
410 | "m_SGVersion": 0,
411 | "m_Type": "UnityEditor.ShaderGraph.PositionMaterialSlot",
412 | "m_ObjectId": "6c4f9af9d0214b6391fe315dc1bdd8e1",
413 | "m_Id": 0,
414 | "m_DisplayName": "Position",
415 | "m_SlotType": 0,
416 | "m_Hidden": false,
417 | "m_ShaderOutputName": "Position",
418 | "m_StageCapability": 1,
419 | "m_Value": {
420 | "x": 0.0,
421 | "y": 0.0,
422 | "z": 0.0
423 | },
424 | "m_DefaultValue": {
425 | "x": 0.0,
426 | "y": 0.0,
427 | "z": 0.0
428 | },
429 | "m_Labels": [],
430 | "m_Space": 0
431 | }
432 |
433 | {
434 | "m_SGVersion": 0,
435 | "m_Type": "UnityEditor.ShaderGraph.BlockNode",
436 | "m_ObjectId": "7f89fddf352e48db9a61e871bfda1564",
437 | "m_Group": {
438 | "m_Id": ""
439 | },
440 | "m_Name": "SurfaceDescription.Emission",
441 | "m_DrawState": {
442 | "m_Expanded": true,
443 | "m_Position": {
444 | "serializedVersion": "2",
445 | "x": 0.0,
446 | "y": 0.0,
447 | "width": 0.0,
448 | "height": 0.0
449 | }
450 | },
451 | "m_Slots": [
452 | {
453 | "m_Id": "5f2cf61c112f428eba073ad8e06b0ed0"
454 | }
455 | ],
456 | "synonyms": [],
457 | "m_Precision": 0,
458 | "m_PreviewExpanded": true,
459 | "m_PreviewMode": 0,
460 | "m_CustomColors": {
461 | "m_SerializableColors": []
462 | },
463 | "m_SerializedDescriptor": "SurfaceDescription.Emission"
464 | }
465 |
466 | {
467 | "m_SGVersion": 0,
468 | "m_Type": "UnityEditor.ShaderGraph.NormalMaterialSlot",
469 | "m_ObjectId": "7fc907bdbb6a4ee6b18b24c017eed1aa",
470 | "m_Id": 0,
471 | "m_DisplayName": "Normal",
472 | "m_SlotType": 0,
473 | "m_Hidden": false,
474 | "m_ShaderOutputName": "Normal",
475 | "m_StageCapability": 1,
476 | "m_Value": {
477 | "x": 0.0,
478 | "y": 0.0,
479 | "z": 0.0
480 | },
481 | "m_DefaultValue": {
482 | "x": 0.0,
483 | "y": 0.0,
484 | "z": 0.0
485 | },
486 | "m_Labels": [],
487 | "m_Space": 0
488 | }
489 |
490 | {
491 | "m_SGVersion": 0,
492 | "m_Type": "UnityEditor.ShaderGraph.BlockNode",
493 | "m_ObjectId": "b109a677d8eb4c439e4fd589ca68e4cd",
494 | "m_Group": {
495 | "m_Id": ""
496 | },
497 | "m_Name": "SurfaceDescription.NormalWS",
498 | "m_DrawState": {
499 | "m_Expanded": true,
500 | "m_Position": {
501 | "serializedVersion": "2",
502 | "x": 0.0,
503 | "y": 0.0,
504 | "width": 0.0,
505 | "height": 0.0
506 | }
507 | },
508 | "m_Slots": [
509 | {
510 | "m_Id": "b8ddc15d23c04e9b9145d68c28052c7e"
511 | }
512 | ],
513 | "synonyms": [],
514 | "m_Precision": 0,
515 | "m_PreviewExpanded": true,
516 | "m_PreviewMode": 0,
517 | "m_CustomColors": {
518 | "m_SerializableColors": []
519 | },
520 | "m_SerializedDescriptor": "SurfaceDescription.NormalWS"
521 | }
522 |
523 | {
524 | "m_SGVersion": 0,
525 | "m_Type": "UnityEditor.ShaderGraph.NormalMaterialSlot",
526 | "m_ObjectId": "b8ddc15d23c04e9b9145d68c28052c7e",
527 | "m_Id": 0,
528 | "m_DisplayName": "Normal (World Space)",
529 | "m_SlotType": 0,
530 | "m_Hidden": false,
531 | "m_ShaderOutputName": "NormalWS",
532 | "m_StageCapability": 2,
533 | "m_Value": {
534 | "x": 0.0,
535 | "y": 0.0,
536 | "z": 0.0
537 | },
538 | "m_DefaultValue": {
539 | "x": 0.0,
540 | "y": 0.0,
541 | "z": 0.0
542 | },
543 | "m_Labels": [],
544 | "m_Space": 2
545 | }
546 |
547 | {
548 | "m_SGVersion": 0,
549 | "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
550 | "m_ObjectId": "bbdb81d5ca2b4bb88b1a3dde6d07fb9e",
551 | "m_Id": 0,
552 | "m_DisplayName": "Ambient Occlusion",
553 | "m_SlotType": 0,
554 | "m_Hidden": false,
555 | "m_ShaderOutputName": "Occlusion",
556 | "m_StageCapability": 2,
557 | "m_Value": 0.9100000262260437,
558 | "m_DefaultValue": 1.0,
559 | "m_Labels": []
560 | }
561 |
562 | {
563 | "m_SGVersion": 0,
564 | "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
565 | "m_ObjectId": "cb079227b72d4d4587a3f100584bb627",
566 | "m_Id": 0,
567 | "m_DisplayName": "Alpha Clip Threshold",
568 | "m_SlotType": 0,
569 | "m_Hidden": false,
570 | "m_ShaderOutputName": "AlphaClipThreshold",
571 | "m_StageCapability": 2,
572 | "m_Value": 0.0,
573 | "m_DefaultValue": 0.5,
574 | "m_Labels": []
575 | }
576 |
577 | {
578 | "m_SGVersion": 0,
579 | "m_Type": "UnityEditor.ShaderGraph.BlockNode",
580 | "m_ObjectId": "cc9cfbea2bcb47d087d2c177252d27e0",
581 | "m_Group": {
582 | "m_Id": ""
583 | },
584 | "m_Name": "SurfaceDescription.Smoothness",
585 | "m_DrawState": {
586 | "m_Expanded": true,
587 | "m_Position": {
588 | "serializedVersion": "2",
589 | "x": -69.0,
590 | "y": 105.99999237060547,
591 | "width": 200.00001525878907,
592 | "height": 41.0
593 | }
594 | },
595 | "m_Slots": [
596 | {
597 | "m_Id": "d5ee96fd9e614f599db7425450ba84f2"
598 | }
599 | ],
600 | "synonyms": [],
601 | "m_Precision": 0,
602 | "m_PreviewExpanded": true,
603 | "m_PreviewMode": 0,
604 | "m_CustomColors": {
605 | "m_SerializableColors": []
606 | },
607 | "m_SerializedDescriptor": "SurfaceDescription.Smoothness"
608 | }
609 |
610 | {
611 | "m_SGVersion": 0,
612 | "m_Type": "UnityEditor.ShaderGraph.BlockNode",
613 | "m_ObjectId": "cdf5aa86d15c4bc0baffea35737ce6af",
614 | "m_Group": {
615 | "m_Id": ""
616 | },
617 | "m_Name": "VertexDescription.Normal",
618 | "m_DrawState": {
619 | "m_Expanded": true,
620 | "m_Position": {
621 | "serializedVersion": "2",
622 | "x": 0.0,
623 | "y": 0.0,
624 | "width": 0.0,
625 | "height": 0.0
626 | }
627 | },
628 | "m_Slots": [
629 | {
630 | "m_Id": "7fc907bdbb6a4ee6b18b24c017eed1aa"
631 | }
632 | ],
633 | "synonyms": [],
634 | "m_Precision": 0,
635 | "m_PreviewExpanded": true,
636 | "m_PreviewMode": 0,
637 | "m_CustomColors": {
638 | "m_SerializableColors": []
639 | },
640 | "m_SerializedDescriptor": "VertexDescription.Normal"
641 | }
642 |
643 | {
644 | "m_SGVersion": 0,
645 | "m_Type": "UnityEditor.ShaderGraph.ColorRGBAMaterialSlot",
646 | "m_ObjectId": "d0f101f4584540e0a7f0f4968f4724f5",
647 | "m_Id": 0,
648 | "m_DisplayName": "Sprite Mask",
649 | "m_SlotType": 0,
650 | "m_Hidden": false,
651 | "m_ShaderOutputName": "SpriteMask",
652 | "m_StageCapability": 2,
653 | "m_Value": {
654 | "x": 1.0,
655 | "y": 1.0,
656 | "z": 1.0,
657 | "w": 1.0
658 | },
659 | "m_DefaultValue": {
660 | "x": 0.0,
661 | "y": 0.0,
662 | "z": 0.0,
663 | "w": 0.0
664 | },
665 | "m_Labels": []
666 | }
667 |
668 | {
669 | "m_SGVersion": 0,
670 | "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
671 | "m_ObjectId": "d5ee96fd9e614f599db7425450ba84f2",
672 | "m_Id": 0,
673 | "m_DisplayName": "Smoothness",
674 | "m_SlotType": 0,
675 | "m_Hidden": false,
676 | "m_ShaderOutputName": "Smoothness",
677 | "m_StageCapability": 2,
678 | "m_Value": 0.05000000074505806,
679 | "m_DefaultValue": 0.5,
680 | "m_Labels": []
681 | }
682 |
683 | {
684 | "m_SGVersion": 0,
685 | "m_Type": "UnityEditor.ShaderGraph.BlockNode",
686 | "m_ObjectId": "d89a8d9020d04326984d8fedc92c87d3",
687 | "m_Group": {
688 | "m_Id": ""
689 | },
690 | "m_Name": "SurfaceDescription.AlphaClipThreshold",
691 | "m_DrawState": {
692 | "m_Expanded": true,
693 | "m_Position": {
694 | "serializedVersion": "2",
695 | "x": 0.0,
696 | "y": 0.0,
697 | "width": 0.0,
698 | "height": 0.0
699 | }
700 | },
701 | "m_Slots": [
702 | {
703 | "m_Id": "cb079227b72d4d4587a3f100584bb627"
704 | }
705 | ],
706 | "synonyms": [],
707 | "m_Precision": 0,
708 | "m_PreviewExpanded": true,
709 | "m_PreviewMode": 0,
710 | "m_CustomColors": {
711 | "m_SerializableColors": []
712 | },
713 | "m_SerializedDescriptor": "SurfaceDescription.AlphaClipThreshold"
714 | }
715 |
716 | {
717 | "m_SGVersion": 0,
718 | "m_Type": "UnityEditor.ShaderGraph.BlockNode",
719 | "m_ObjectId": "de99aa5e98d64a3a91eb6d1cbeaf53b3",
720 | "m_Group": {
721 | "m_Id": ""
722 | },
723 | "m_Name": "SurfaceDescription.SpriteMask",
724 | "m_DrawState": {
725 | "m_Expanded": true,
726 | "m_Position": {
727 | "serializedVersion": "2",
728 | "x": 0.0,
729 | "y": 0.0,
730 | "width": 0.0,
731 | "height": 0.0
732 | }
733 | },
734 | "m_Slots": [
735 | {
736 | "m_Id": "d0f101f4584540e0a7f0f4968f4724f5"
737 | }
738 | ],
739 | "synonyms": [],
740 | "m_Precision": 0,
741 | "m_PreviewExpanded": true,
742 | "m_PreviewMode": 0,
743 | "m_CustomColors": {
744 | "m_SerializableColors": []
745 | },
746 | "m_SerializedDescriptor": "SurfaceDescription.SpriteMask"
747 | }
748 |
749 | {
750 | "m_SGVersion": 0,
751 | "m_Type": "UnityEditor.ShaderGraph.BlockNode",
752 | "m_ObjectId": "e6eb4b77e74144bfaa67b88a405ccb4f",
753 | "m_Group": {
754 | "m_Id": ""
755 | },
756 | "m_Name": "SurfaceDescription.BaseColor",
757 | "m_DrawState": {
758 | "m_Expanded": true,
759 | "m_Position": {
760 | "serializedVersion": "2",
761 | "x": 0.0,
762 | "y": 0.0,
763 | "width": 0.0,
764 | "height": 0.0
765 | }
766 | },
767 | "m_Slots": [
768 | {
769 | "m_Id": "19734e906799402cbee0c116374f47b8"
770 | }
771 | ],
772 | "synonyms": [],
773 | "m_Precision": 0,
774 | "m_PreviewExpanded": true,
775 | "m_PreviewMode": 0,
776 | "m_CustomColors": {
777 | "m_SerializableColors": []
778 | },
779 | "m_SerializedDescriptor": "SurfaceDescription.BaseColor"
780 | }
781 |
782 | {
783 | "m_SGVersion": 0,
784 | "m_Type": "UnityEditor.ShaderGraph.BlockNode",
785 | "m_ObjectId": "fd5bd6ddd5d24ed5ae70cfa88aa0771e",
786 | "m_Group": {
787 | "m_Id": ""
788 | },
789 | "m_Name": "VertexDescription.Position",
790 | "m_DrawState": {
791 | "m_Expanded": true,
792 | "m_Position": {
793 | "serializedVersion": "2",
794 | "x": 0.0,
795 | "y": 0.0,
796 | "width": 0.0,
797 | "height": 0.0
798 | }
799 | },
800 | "m_Slots": [
801 | {
802 | "m_Id": "6c4f9af9d0214b6391fe315dc1bdd8e1"
803 | }
804 | ],
805 | "synonyms": [],
806 | "m_Precision": 0,
807 | "m_PreviewExpanded": true,
808 | "m_PreviewMode": 0,
809 | "m_CustomColors": {
810 | "m_SerializableColors": []
811 | },
812 | "m_SerializedDescriptor": "VertexDescription.Position"
813 | }
814 |
815 |
--------------------------------------------------------------------------------