├── .gitignore ├── .vscode └── settings.json ├── Assets ├── ComputeShaders.meta ├── ComputeShaders │ ├── CopyMeshBuffers.compute │ ├── CopyMeshBuffers.compute.meta │ ├── MarchingCube.compute │ ├── MarchingCube.compute.meta │ ├── MarchingCubeConstants.hlsl │ ├── MarchingCubeConstants.hlsl.meta │ ├── NormalsFromNoise.compute │ ├── NormalsFromNoise.compute.meta │ ├── Terrain3DNoise.compute │ ├── Terrain3DNoise.compute.meta │ ├── VoxelIsoSurface.compute │ └── VoxelIsoSurface.compute.meta ├── Editor.meta ├── Editor │ ├── MeshNormalDebugger.cs │ ├── MeshNormalDebugger.cs.meta │ ├── TerrainGeneratorEditor.cs │ ├── TerrainGeneratorEditor.cs.meta │ ├── TerrainRendererEditor.cs │ ├── TerrainRendererEditor.cs.meta │ ├── VoxelTerrainGeneratorEditor.cs │ └── VoxelTerrainGeneratorEditor.cs.meta ├── Materials.meta ├── Materials │ ├── 3DNoiseVisualizator.mat │ ├── 3DNoiseVisualizator.mat.meta │ ├── Terrain.mat │ ├── Terrain.mat.meta │ ├── TerrainLit.mat │ └── TerrainLit.mat.meta ├── Prefabs.meta ├── Prefabs │ ├── Chunk.prefab │ ├── Chunk.prefab.meta │ ├── Debug3D.prefab │ └── Debug3D.prefab.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_Default.preset │ │ ├── AudioDecompressOnLoad_Default.preset.meta │ │ ├── DirectionalLight_Default.preset │ │ ├── DirectionalLight_Default.preset.meta │ │ ├── SSSSettings_Default.preset │ │ └── SSSSettings_Default.preset.meta │ ├── HDRTexture.preset │ ├── HDRTexture.preset.meta │ ├── NormalTexture.preset │ ├── NormalTexture.preset.meta │ ├── UtilityTexture.preset │ └── UtilityTexture.preset.meta ├── Readme.asset ├── Readme.asset.meta ├── Scenes.meta ├── Scenes │ ├── ComputeShaderTerrain.meta │ ├── ComputeShaderTerrain.unity │ ├── ComputeShaderTerrain.unity.meta │ ├── ComputeShaderTerrain │ │ ├── Scene Settings Profile 1.asset │ │ ├── Scene Settings Profile 1.asset.meta │ │ ├── Scene Settings Profile.asset │ │ └── Scene Settings Profile.asset.meta │ ├── VoxelTerrainTest.unity │ └── VoxelTerrainTest.unity.meta ├── Scripts.meta ├── Scripts │ ├── DrawProceduralRenderer.cs │ ├── DrawProceduralRenderer.cs.meta │ ├── KernelIds.cs │ ├── KernelIds.cs.meta │ ├── SimpleCameraController.cs │ ├── SimpleCameraController.cs.meta │ ├── TerrainGenerator.cs │ ├── TerrainGenerator.cs.hlsl │ ├── TerrainGenerator.cs.hlsl.meta │ ├── TerrainGenerator.cs.meta │ ├── TerrainRenderer.cs │ ├── TerrainRenderer.cs.meta │ ├── VoxelTerrainGenerator.cs │ ├── VoxelTerrainGenerator.cs.meta │ ├── unsafe.asmdef │ └── unsafe.asmdef.meta ├── Settings.meta ├── Settings │ ├── HDRenderPipelineAsset.asset │ ├── HDRenderPipelineAsset.asset.meta │ ├── PostProcessVolumeProfile.asset │ ├── PostProcessVolumeProfile.asset.meta │ ├── SSSSettings.asset │ ├── SSSSettings.asset.meta │ ├── VolumeSettings.asset │ ├── VolumeSettings.asset.meta │ ├── VolumeSettings_Baking.asset │ └── VolumeSettings_Baking.asset.meta ├── Shaders.meta ├── Shaders │ ├── 3DNoiseVisualizator.shader │ ├── 3DNoiseVisualizator.shader.meta │ ├── DebugPointShader.shader │ ├── DebugPointShader.shader.meta │ ├── TerrainShader.shader │ └── TerrainShader.shader.meta ├── Textures.meta └── Textures │ ├── Grass.meta │ ├── Grass │ ├── TexturesCom_Farmland0002_1_seamless_S.jpg │ ├── TexturesCom_Farmland0002_1_seamless_S.jpg.meta │ ├── TexturesCom_RockGrassy0142_2_seamless_S.jpg │ └── TexturesCom_RockGrassy0142_2_seamless_S.jpg.meta │ ├── HDRI.meta │ ├── HDRI │ ├── GravelPlaza_8k.jpg │ ├── GravelPlaza_8k.jpg.meta │ ├── GravelPlaza_REF.hdr │ └── GravelPlaza_REF.hdr.meta │ ├── Rock.meta │ └── Rock │ ├── TexturesCom_Rock_CliffGranite2_1K_albedo.tif │ ├── TexturesCom_Rock_CliffGranite2_1K_albedo.tif.meta │ ├── TexturesCom_Rock_CliffGranite2_1K_ao.tif │ ├── TexturesCom_Rock_CliffGranite2_1K_ao.tif.meta │ ├── TexturesCom_Rock_CliffGranite2_1K_height.tif │ ├── TexturesCom_Rock_CliffGranite2_1K_height.tif.meta │ ├── TexturesCom_Rock_CliffGranite2_1K_normal.tif │ ├── TexturesCom_Rock_CliffGranite2_1K_normal.tif.meta │ ├── TexturesCom_Rock_CliffGranite2_1K_roughness.tif │ └── TexturesCom_Rock_CliffGranite2_1K_roughness.tif.meta ├── LICENSE ├── Logs └── Packages-Update.log ├── Packages └── manifest.json ├── ProjectSettings ├── AudioManager.asset ├── ClusterInputManager.asset ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── GraphicsSettings.asset ├── HDRPProjectVersion.txt ├── InputManager.asset ├── NavMeshAreas.asset ├── NetworkManager.asset ├── Physics2DSettings.asset ├── PresetManager.asset ├── ProjectSettings.asset ├── ProjectVersion.txt ├── QualitySettings.asset ├── TagManager.asset ├── TimeManager.asset ├── UnityConnectSettings.asset ├── VFXManager.asset └── XRSettings.asset ├── README.md └── workspace.code-workspace /.gitignore: -------------------------------------------------------------------------------- 1 | [Ll]ibrary/ 2 | [Tt]emp/ 3 | [Oo]bj/ 4 | [Bb]uild/ 5 | [Bb]uilds/ 6 | Assets/AssetStoreTools* 7 | 8 | # Visual Studio cache directory 9 | .vs/ 10 | 11 | # Autogenerated VS/MD/Consulo solution and project files 12 | ExportedObj/ 13 | .consulo/ 14 | *.csproj 15 | *.unityproj 16 | *.sln 17 | *.suo 18 | *.tmp 19 | *.user 20 | *.userprefs 21 | *.pidb 22 | *.booproj 23 | *.svd 24 | *.pdb 25 | *.opendb 26 | 27 | # Unity3D generated meta files 28 | *.pidb.meta 29 | *.pdb.meta 30 | 31 | # Unity3D Generated File On Crash Reports 32 | sysinfo.txt 33 | 34 | # Builds 35 | *.apk 36 | *.unitypackage 37 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.exclude": 3 | { 4 | "**/.DS_Store":true, 5 | "**/.git":true, 6 | "**/.gitignore":true, 7 | "**/.gitmodules":true, 8 | "**/*.booproj":true, 9 | "**/*.pidb":true, 10 | "**/*.suo":true, 11 | "**/*.user":true, 12 | "**/*.userprefs":true, 13 | "**/*.unityproj":true, 14 | "**/*.dll":true, 15 | "**/*.exe":true, 16 | "**/*.pdf":true, 17 | "**/*.mid":true, 18 | "**/*.midi":true, 19 | "**/*.wav":true, 20 | "**/*.gif":true, 21 | "**/*.ico":true, 22 | "**/*.jpg":true, 23 | "**/*.jpeg":true, 24 | "**/*.png":true, 25 | "**/*.psd":true, 26 | "**/*.tga":true, 27 | "**/*.tif":true, 28 | "**/*.tiff":true, 29 | "**/*.3ds":true, 30 | "**/*.3DS":true, 31 | "**/*.fbx":true, 32 | "**/*.FBX":true, 33 | "**/*.lxo":true, 34 | "**/*.LXO":true, 35 | "**/*.ma":true, 36 | "**/*.MA":true, 37 | "**/*.obj":true, 38 | "**/*.OBJ":true, 39 | "**/*.asset":true, 40 | "**/*.cubemap":true, 41 | "**/*.flare":true, 42 | "**/*.mat":true, 43 | "**/*.meta":true, 44 | "**/*.prefab":true, 45 | "**/*.unity":true, 46 | "build/":true, 47 | "Build/":true, 48 | "Library/":true, 49 | "library/":true, 50 | "obj/":true, 51 | "Obj/":true, 52 | "ProjectSettings/":true, 53 | "temp/":true, 54 | "Temp/":true 55 | } 56 | } -------------------------------------------------------------------------------- /Assets/ComputeShaders.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 50c41077457524843af63458fe079125 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/ComputeShaders/CopyMeshBuffers.compute: -------------------------------------------------------------------------------- 1 | #pragma kernel CopyMeshBuffers 2 | 3 | StructuredBuffer generatedVertices; 4 | StructuredBuffer generatedNormals; 5 | 6 | RWStructuredBuffer meshVertices; 7 | RWStructuredBuffer meshNormals; 8 | 9 | [numthreads(64, 1, 1)] 10 | void CopyMeshBuffers(uint3 id : SV_DispatchThreadID) 11 | { 12 | meshVertices[id.x] = generatedVertices[id.x]; 13 | meshNormals[id.x] = generatedNormals[id.x]; 14 | } -------------------------------------------------------------------------------- /Assets/ComputeShaders/CopyMeshBuffers.compute.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 36a0f00dd3bc329488d18c4888bb231e 3 | ComputeShaderImporter: 4 | externalObjects: {} 5 | currentAPIMask: 4 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/ComputeShaders/MarchingCube.compute: -------------------------------------------------------------------------------- 1 | // Marching cubes algorithm from https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch01.html 2 | 3 | #pragma kernel MarchingCubes 4 | 5 | #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" 6 | #include "MarchingCubeConstants.hlsl" 7 | #include "Assets/Scripts/TerrainGenerator.cs.hlsl" 8 | 9 | Texture3D _NoiseTexture; 10 | Texture3D _NormalTexture; 11 | SamplerState s_trilinear_clamp_sampler; 12 | float3 chunkSize; 13 | float3 worldPosition; 14 | uint resolutionPerVoxel; 15 | 16 | RWStructuredBuffer vertices; 17 | RWStructuredBuffer normals; 18 | RWStructuredBuffer triangles; 19 | RWStructuredBuffer debugPoints; 20 | 21 | static float _Target = 0; 22 | static float _Border = 0; 23 | 24 | static int2 edgeConnection[12] = 25 | { 26 | int2(0,1), int2(1,2), int2(2,3), int2(3,0), int2(4,5), int2(5,6), int2(6,7), int2(7,4), int2(0,4), int2(1,5), int2(2,6), int2(3,7) 27 | }; 28 | 29 | // edgeDirection lists the direction vector (vertex1-vertex0) for each edge in the cube 30 | static float3 edgeDirection[12] = 31 | { 32 | float3(1.0f, 0.0f, 0.0f),float3(0.0f, 1.0f, 0.0f),float3(-1.0f, 0.0f, 0.0f),float3(0.0f, -1.0f, 0.0f), 33 | float3(1.0f, 0.0f, 0.0f),float3(0.0f, 1.0f, 0.0f),float3(-1.0f, 0.0f, 0.0f),float3(0.0f, -1.0f, 0.0f), 34 | float3(0.0f, 0.0f, 1.0f),float3(0.0f, 0.0f, 1.0f),float3(0.0f, 0.0f, 1.0f),float3(0.0f, 0.0f, 1.0f) 35 | }; 36 | 37 | // vertexOffset lists the positions, relative to vertex0, of each of the 8 vertices of a cube 38 | static float3 vertexOffset[8] = 39 | { 40 | float3(0, 0, 0),float3(1, 0, 0),float3(1, 1, 0),float3(0, 1, 0), 41 | float3(0, 0, 1),float3(1, 0, 1),float3(1, 1, 1),float3(0, 1, 1) 42 | }; 43 | 44 | float3 ComputeNormal(float3 uvw) 45 | { 46 | float4 step = float4(1.0 / chunkSize, 0); 47 | float3 gradient = float3( 48 | SAMPLE_TEXTURE3D_LOD(_NoiseTexture, s_trilinear_clamp_sampler, uvw + step.xww, 0) - SAMPLE_TEXTURE3D_LOD(_NoiseTexture, s_trilinear_clamp_sampler, uvw - step.xww, 0), 49 | SAMPLE_TEXTURE3D_LOD(_NoiseTexture, s_trilinear_clamp_sampler, uvw + step.wwy, 0) - SAMPLE_TEXTURE3D_LOD(_NoiseTexture, s_trilinear_clamp_sampler, uvw - step.wwy, 0), 50 | SAMPLE_TEXTURE3D_LOD(_NoiseTexture, s_trilinear_clamp_sampler, uvw + step.wzw, 0) - SAMPLE_TEXTURE3D_LOD(_NoiseTexture, s_trilinear_clamp_sampler, uvw - step.wzw, 0) 51 | ); 52 | 53 | return normalize(-gradient); 54 | } 55 | 56 | float SampleNoise(float3 uvw) 57 | { 58 | return SAMPLE_TEXTURE3D_LOD(_NoiseTexture, s_trilinear_clamp_sampler, uvw, 0); 59 | } 60 | 61 | void FillCube(float3 voxelUVW, out float cube[8]) 62 | { 63 | float2 offset = float2(rcp(chunkSize.x), 0); 64 | 65 | cube[0] = SampleNoise(voxelUVW + offset.yyy); 66 | cube[1] = SampleNoise(voxelUVW + offset.xyy); 67 | cube[2] = SampleNoise(voxelUVW + offset.xxy); 68 | cube[3] = SampleNoise(voxelUVW + offset.yxy); 69 | cube[4] = SampleNoise(voxelUVW + offset.yyx); 70 | cube[5] = SampleNoise(voxelUVW + offset.xyx); 71 | cube[6] = SampleNoise(voxelUVW + offset.xxx); 72 | cube[7] = SampleNoise(voxelUVW + offset.yxx); 73 | } 74 | 75 | // GetOffset finds the approximate point of intersection of the surface 76 | // between two points with the values v1 and v2 77 | float GetOffset(float v1, float v2) 78 | { 79 | float delta = v2 - v1; 80 | return (delta == 0.0f) ? 0.5f : (_Target - v1) / delta; 81 | } 82 | 83 | void CreateVertex(float3 position, float3 centre, float3 size, int index) 84 | { 85 | float3 pos = (position - centre); 86 | vertices[index] = pos; 87 | float3 uvw = (position / size); 88 | uvw += rcp(chunkSize * 2.0); 89 | normals[index] = SAMPLE_TEXTURE3D_LOD(_NormalTexture, s_trilinear_clamp_sampler, uvw, 0); 90 | // normals[index] = LOAD_TEXTURE3D(_NormalTexture, position + 0.5); 91 | } 92 | 93 | [numthreads(8, 8, 8)] 94 | void MarchingCubes(uint3 id : SV_DispatchThreadID) 95 | { 96 | float3 voxelUVW = float3(id) / chunkSize / resolutionPerVoxel; 97 | 98 | int index = debugPoints.IncrementCounter(); 99 | 100 | // Sample at the center of the pixel 101 | voxelUVW += rcp(chunkSize * 2.0); 102 | 103 | float3 pos = float3(id) / resolutionPerVoxel + rcp(chunkSize * 2.0); 104 | float3 centre = float3(chunkSize.x, 0, chunkSize.z) / 2.0; 105 | 106 | debugPoints[index].position = float4(pos + worldPosition, SAMPLE_TEXTURE3D_LOD(_NoiseTexture, s_trilinear_clamp_sampler, voxelUVW, 0)); 107 | debugPoints[index].direction = float4(SAMPLE_TEXTURE3D_LOD(_NormalTexture, s_trilinear_clamp_sampler, voxelUVW, 0), 0); 108 | 109 | float cube[8]; 110 | FillCube(voxelUVW, cube); 111 | 112 | int i = 0; 113 | int flagIndex = 0; 114 | float3 edgeVertex[12]; 115 | 116 | //Find which vertices are inside of the surface and which are outside 117 | for (i = 0; i < 8; i++) 118 | if (cube[i] <= _Target) flagIndex |= 1 << i; 119 | 120 | //Find which edges are intersected by the surface 121 | int edgeFlags = GetCubeEdgeFlags(flagIndex); 122 | 123 | // no connections, return 124 | if (edgeFlags == 0) 125 | return; 126 | 127 | //Find the point of intersection of the surface with each edge 128 | for (i = 0; i < 12; i++) 129 | { 130 | //if there is an intersection on this edge 131 | if ((edgeFlags & (1 << i)) != 0) 132 | { 133 | float offset = GetOffset(cube[edgeConnection[i].x], cube[edgeConnection[i].y]); 134 | 135 | edgeVertex[i] = pos + (vertexOffset[edgeConnection[i].x] + offset * edgeDirection[i]); 136 | } 137 | } 138 | 139 | //Save the triangles that were found. There can be up to five per cube 140 | for (i = 0; i < 5; i++) 141 | { 142 | //If the connection table is not -1 then this a triangle. 143 | if (GetTriTable2(flagIndex * 16 + 3 * i) >= 0) 144 | { 145 | float3 position; 146 | 147 | int verticesCount = vertices.IncrementCounter() * 3; 148 | 149 | position = edgeVertex[GetTriTable2(flagIndex * 16 + (3 * i + 0))]; 150 | CreateVertex(position, centre, chunkSize, verticesCount + 0); 151 | 152 | position = edgeVertex[GetTriTable2(flagIndex * 16 + (3 * i + 1))]; 153 | CreateVertex(position, centre, chunkSize, verticesCount + 1); 154 | 155 | position = edgeVertex[GetTriTable2(flagIndex * 16 + (3 * i + 2))]; 156 | CreateVertex(position, centre, chunkSize, verticesCount + 2); 157 | 158 | // Only used for debug 159 | triangles[verticesCount + 0] = verticesCount + 0; 160 | triangles[verticesCount + 1] = verticesCount + 1; 161 | triangles[verticesCount + 2] = verticesCount + 2; 162 | } 163 | } 164 | 165 | } -------------------------------------------------------------------------------- /Assets/ComputeShaders/MarchingCube.compute.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d32664b6ed131cc46aaf9699978c40cd 3 | ComputeShaderImporter: 4 | externalObjects: {} 5 | currentAPIMask: 4 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/ComputeShaders/MarchingCubeConstants.hlsl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: daef81d467af73f46b979abd3b15fbc5 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/ComputeShaders/NormalsFromNoise.compute: -------------------------------------------------------------------------------- 1 | // Each #kernel tells which function to compile; you can have many kernels 2 | #pragma kernel ComputeNormals 3 | 4 | #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" 5 | 6 | Texture3D _NoiseTexture; 7 | SamplerState s_linear_clamp_sampler; 8 | 9 | RWTexture3D _NormalTexture; 10 | float3 chunkSize; 11 | 12 | float sample(float3 pos) 13 | { 14 | // return LOAD_TEXTURE3D(_NoiseTexture, pos); 15 | return SAMPLE_TEXTURE3D_LOD(_NoiseTexture, s_linear_clamp_sampler, pos / chunkSize, 0); 16 | } 17 | 18 | [numthreads(8, 8, 8)] 19 | void ComputeNormals(uint3 id : SV_DispatchThreadID) 20 | { 21 | float3 p = float3(id) + 0.5; 22 | 23 | const float2 epsylon = float2(0.5, 0); 24 | 25 | _NormalTexture[id] = -normalize(float3( 26 | sample(p + epsylon.xyy) - sample(p - epsylon.xyy), 27 | sample(p + epsylon.yxy) - sample(p - epsylon.yxy), 28 | sample(p + epsylon.yyx) - sample(p - epsylon.yyx) 29 | )); 30 | } 31 | -------------------------------------------------------------------------------- /Assets/ComputeShaders/NormalsFromNoise.compute.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7cfd0b0a9edff17418c847f589432776 3 | ComputeShaderImporter: 4 | externalObjects: {} 5 | currentAPIMask: 4 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/ComputeShaders/Terrain3DNoise.compute: -------------------------------------------------------------------------------- 1 | #pragma kernel PerlinNoise3D 2 | 3 | #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" 4 | #include "Assets/Scripts/TerrainGenerator.cs.hlsl" 5 | 6 | RWTexture3D _NoiseTexture; 7 | RWStructuredBuffer _DebugPoints; 8 | 9 | cbuffer noiseSettings 10 | { 11 | float3 chunkPosition; 12 | float3 chunkSize; 13 | float seed; 14 | int octaves; 15 | float lacunarity; 16 | float scale; 17 | float frequency; 18 | float gain; 19 | } 20 | 21 | float hash(float h) { 22 | return frac(sin(h) * 43758.5453123); 23 | } 24 | 25 | float noise(float3 x) { 26 | float3 p = floor(x); 27 | float3 f = frac(x); 28 | f = f * f * (3.0 - 2.0 * f); 29 | 30 | float n = p.x + p.y * 157.0 + 113.0 * p.z; 31 | return lerp( 32 | lerp(lerp(hash(n + 0.0), hash(n + 1.0), f.x), 33 | lerp(hash(n + 157.0), hash(n + 158.0), f.x), f.y), 34 | lerp(lerp(hash(n + 113.0), hash(n + 114.0), f.x), 35 | lerp(hash(n + 270.0), hash(n + 271.0), f.x), f.y), f.z); 36 | } 37 | 38 | float fbm(float3 p) { 39 | float f = 0.0; 40 | float localLacunarity = lacunarity; 41 | int i; 42 | 43 | for (i = 0; i < octaves; i++) 44 | { 45 | f = rcp(pow(2, (i + 1))) * noise(p); 46 | p *= 2 + localLacunarity; 47 | localLacunarity += 0.01; 48 | } 49 | 50 | return f; 51 | } 52 | 53 | float turbulence(float3 p) 54 | { 55 | float sum = 0; 56 | float freq = frequency, amp = 1.0; 57 | for(int i = 0; i < octaves; i++) 58 | { 59 | sum += abs(noise(p*freq))*amp; 60 | freq *= lacunarity; 61 | amp *= gain; 62 | } 63 | return sum; 64 | } 65 | 66 | float ridge(float h, float offset) 67 | { 68 | h = abs(h); 69 | h = offset - h; 70 | h = h * h; 71 | return h; 72 | } 73 | 74 | [numthreads(8, 8, 8)] 75 | void PerlinNoise3D(uint3 id : SV_DispatchThreadID) 76 | { 77 | float3 chunkUVW = (float3(id) / chunkSize) - 0.5; 78 | chunkUVW += rcp(chunkSize * 2.0); 79 | float3 worldPosition = chunkUVW + chunkPosition * ((chunkSize - 1) / chunkSize); 80 | 81 | // worldPosition = float3(id - 1.0) * rcp(chunkSize - 2.0) + chunkPosition; 82 | 83 | // Add seed to position 84 | worldPosition = worldPosition * scale + seed * float3(55.485615, -534.6543684, 6.465342); 85 | 86 | // Return a random number between -1 and 1 87 | // float f = turbulence(worldPosition) * 2 - 1; 88 | // _NoiseTexture[id] = lerp(-2, f, float(chunkSize.y - id.y) / chunkSize.y * 2 + chunkPosition.y); 89 | 90 | // _NoiseTexture[id] = f; 91 | 92 | float scale = 4; 93 | float height = 0.15; 94 | _NoiseTexture[id] = sin(worldPosition.x * scale) * height + cos(worldPosition.z * scale) * height - worldPosition.y; 95 | 96 | // Debug Sphere: 97 | // _NoiseTexture[id] = length(worldPosition - 0.4) - 0.3; 98 | } 99 | -------------------------------------------------------------------------------- /Assets/ComputeShaders/Terrain3DNoise.compute.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9717f12c8a8924a4f8edb5da5e8bf49c 3 | ComputeShaderImporter: 4 | externalObjects: {} 5 | currentAPIMask: 4 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/ComputeShaders/VoxelIsoSurface.compute: -------------------------------------------------------------------------------- 1 | #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" 2 | #include "MarchingCubeConstants.hlsl" 3 | #include "Assets/Scripts/TerrainGenerator.cs.hlsl" 4 | #pragma kernel VoxelIsoSurface 5 | 6 | Texture3D _NoiseTexture; 7 | Texture3D _NormalTexture; 8 | SamplerState s_trilinear_clamp_sampler; 9 | float3 chunkSize; 10 | float3 worldPosition; 11 | uint resolutionPerVoxel; 12 | 13 | RWStructuredBuffer vertices; 14 | // RWStructuredBuffer triangles; 15 | // RWStructuredBuffer debugPoints; 16 | 17 | 18 | float SampleNoise(float3 uvw) 19 | { 20 | return SAMPLE_TEXTURE3D_LOD(_NoiseTexture, s_trilinear_clamp_sampler, uvw, 0); 21 | } 22 | 23 | void CreateVertex(float3 position, int index) 24 | { 25 | vertices[index] = position; 26 | // normals[index] = LOAD_TEXTURE3D(_NormalTexture, position + 0.5); 27 | } 28 | 29 | [numthreads(8,8,8)] 30 | void VoxelIsoSurface (uint3 id : SV_DispatchThreadID) 31 | { 32 | int index = vertices.IncrementCounter() * 6; 33 | 34 | CreateVertex(float3(0, 0, 0), index + 0); 35 | CreateVertex(float3(1, 0, 0), index + 1); 36 | CreateVertex(float3(1, 1, 0), index + 2); 37 | CreateVertex(float3(1, 1, 0), index + 3); 38 | CreateVertex(float3(0, 1, 0), index + 4); 39 | CreateVertex(float3(0, 0, 0), index + 5); 40 | } 41 | -------------------------------------------------------------------------------- /Assets/ComputeShaders/VoxelIsoSurface.compute.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 88ea2ca56d389419cbd42b4c97f62039 3 | ComputeShaderImporter: 4 | externalObjects: {} 5 | currentAPIMask: 65536 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1f0c6e03432a8f242b9734214d61b2cd 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Editor/MeshNormalDebugger.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEditor; 3 | 4 | // [CustomEditor(typeof(MeshFilter))] 5 | public class MeshNormalDebugger : Editor 6 | { 7 | Mesh mesh; 8 | Transform transform; 9 | 10 | private void OnEnable() 11 | { 12 | mesh = (target as MeshFilter).sharedMesh; 13 | transform = (target as MeshFilter).transform; 14 | } 15 | 16 | void OnSceneGUI() 17 | { 18 | Vector3 objectPos = transform.position; 19 | 20 | if (Event.current.type != EventType.Repaint) 21 | return ; 22 | 23 | for (int i = 0; i < mesh.vertexCount; i++) 24 | { 25 | Vector3 vertex = mesh.vertices[i] + objectPos; 26 | Vector3 normal = mesh.normals[i]; 27 | 28 | Vector3 n = (normal / 2.0f) + Vector3.one * 0.5f; 29 | Handles.color = new Color(n.x, n.y, n.z, 1); 30 | Handles.ArrowHandleCap(0, vertex, Quaternion.LookRotation(-normal), .5f, EventType.Repaint); 31 | } 32 | } 33 | } -------------------------------------------------------------------------------- /Assets/Editor/MeshNormalDebugger.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e98854a4cc6435240b0cc41f2e48d081 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Editor/TerrainGeneratorEditor.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using UnityEditor; 5 | 6 | [CustomEditor(typeof(TerrainGenerator))] 7 | public class TerrainGeneratorEditor : Editor 8 | { 9 | TerrainGenerator terrainGenerator; 10 | IEnumerator terrainStepEnumerator; 11 | 12 | private void OnEnable() 13 | { 14 | terrainGenerator = target as TerrainGenerator; 15 | terrainStepEnumerator = terrainGenerator.GenerateStep().GetEnumerator(); 16 | } 17 | 18 | public override void OnInspectorGUI() 19 | { 20 | DrawDefaultInspector(); 21 | 22 | if (GUILayout.Button("Generate noise")) 23 | { 24 | terrainGenerator.Start(); 25 | } 26 | 27 | if (GUILayout.Button("Generate terrain step")) 28 | if (!terrainStepEnumerator.MoveNext()) 29 | terrainStepEnumerator = terrainGenerator.GenerateStep().GetEnumerator(); 30 | 31 | if (GUILayout.Button("Check normal borders")) 32 | terrainGenerator.CheckNormals(); 33 | } 34 | 35 | // void OnSceneGUI() 36 | // { 37 | // foreach (var kp in terrainGenerator.chunkNormals) 38 | // { 39 | // Vector3 p = Vector3.zero; 40 | // foreach (var n in kp.Value) 41 | // { 42 | // Handles.Label(kp.Key * terrainGenerator.terrainChunkSize + p, n.ToString()); 43 | // if (p.x >= terrainGenerator.terrainChunkSize) 44 | // { 45 | // p.x = 0; 46 | // p.y++; 47 | // } 48 | // if (p.y >= terrainGenerator.terrainChunkSize) 49 | // { 50 | // p.y = 0; 51 | // p.z++; 52 | // } 53 | // p.x++; 54 | // } 55 | // } 56 | // } 57 | } 58 | -------------------------------------------------------------------------------- /Assets/Editor/TerrainGeneratorEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2a7fc4476ff778c488bac31749668137 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Editor/TerrainRendererEditor.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using UnityEditor; 5 | 6 | [CustomEditor(typeof(TerrainRenderer))] 7 | public class TerrainRendererEditor : Editor 8 | { 9 | TerrainRenderer renderer; 10 | 11 | private void OnEnable() 12 | { 13 | renderer = target as TerrainRenderer; 14 | 15 | EditorApplication.update += renderer.Update; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Assets/Editor/TerrainRendererEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7db4445145637414391f88bc79762909 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Editor/VoxelTerrainGeneratorEditor.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using UnityEditor; 5 | 6 | [CustomEditor(typeof(VoxelTerrainGenerator))] 7 | public class VoxelTerrainGeneratorEditor : Editor 8 | { 9 | VoxelTerrainGenerator terrainGenerator; 10 | IEnumerator terrainStepEnumerator; 11 | 12 | private void OnEnable() 13 | { 14 | terrainGenerator = target as VoxelTerrainGenerator; 15 | terrainStepEnumerator = terrainGenerator.GenerateStep().GetEnumerator(); 16 | } 17 | 18 | public override void OnInspectorGUI() 19 | { 20 | DrawDefaultInspector(); 21 | 22 | if (GUILayout.Button("Generate noise")) 23 | { 24 | terrainGenerator.Start(); 25 | } 26 | 27 | if (GUILayout.Button("Generate terrain step")) 28 | if (!terrainStepEnumerator.MoveNext()) 29 | terrainStepEnumerator = terrainGenerator.GenerateStep().GetEnumerator(); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Assets/Editor/VoxelTerrainGeneratorEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 39c639e85a6694d2697970c9ab99d5a8 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cad2ca052f75fc342be688709b7d9751 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/3DNoiseVisualizator.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_PrefabInternal: {fileID: 0} 9 | m_Name: 3DNoiseVisualizator 10 | m_Shader: {fileID: 4800000, guid: 07d4ebdce7e16684ca61979bfe2afa78, type: 3} 11 | m_ShaderKeywords: 12 | m_LightmapFlags: 4 13 | m_EnableInstancingVariants: 0 14 | m_DoubleSidedGI: 0 15 | m_CustomRenderQueue: -1 16 | stringTagMap: {} 17 | disabledShaderPasses: [] 18 | m_SavedProperties: 19 | serializedVersion: 3 20 | m_TexEnvs: 21 | - _AnisotropyMap: 22 | m_Texture: {fileID: 0} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | - _BaseColorMap: 26 | m_Texture: {fileID: 0} 27 | m_Scale: {x: 1, y: 1} 28 | m_Offset: {x: 0, y: 0} 29 | - _BentNormalMap: 30 | m_Texture: {fileID: 0} 31 | m_Scale: {x: 1, y: 1} 32 | m_Offset: {x: 0, y: 0} 33 | - _BentNormalMapOS: 34 | m_Texture: {fileID: 0} 35 | m_Scale: {x: 1, y: 1} 36 | m_Offset: {x: 0, y: 0} 37 | - _CoatMaskMap: 38 | m_Texture: {fileID: 0} 39 | m_Scale: {x: 1, y: 1} 40 | m_Offset: {x: 0, y: 0} 41 | - _DetailMap: 42 | m_Texture: {fileID: 0} 43 | m_Scale: {x: 1, y: 1} 44 | m_Offset: {x: 0, y: 0} 45 | - _DistortionVectorMap: 46 | m_Texture: {fileID: 0} 47 | m_Scale: {x: 1, y: 1} 48 | m_Offset: {x: 0, y: 0} 49 | - _EmissiveColorMap: 50 | m_Texture: {fileID: 0} 51 | m_Scale: {x: 1, y: 1} 52 | m_Offset: {x: 0, y: 0} 53 | - _HeightMap: 54 | m_Texture: {fileID: 0} 55 | m_Scale: {x: 1, y: 1} 56 | m_Offset: {x: 0, y: 0} 57 | - _IridescenceMaskMap: 58 | m_Texture: {fileID: 0} 59 | m_Scale: {x: 1, y: 1} 60 | m_Offset: {x: 0, y: 0} 61 | - _IridescenceThicknessMap: 62 | m_Texture: {fileID: 0} 63 | m_Scale: {x: 1, y: 1} 64 | m_Offset: {x: 0, y: 0} 65 | - _MainTex: 66 | m_Texture: {fileID: 0} 67 | m_Scale: {x: 1, y: 1} 68 | m_Offset: {x: 0, y: 0} 69 | - _MaskMap: 70 | m_Texture: {fileID: 0} 71 | m_Scale: {x: 1, y: 1} 72 | m_Offset: {x: 0, y: 0} 73 | - _NoiseTex: 74 | m_Texture: {fileID: 0} 75 | m_Scale: {x: 1, y: 1} 76 | m_Offset: {x: 0, y: 0} 77 | - _NormalMap: 78 | m_Texture: {fileID: 0} 79 | m_Scale: {x: 1, y: 1} 80 | m_Offset: {x: 0, y: 0} 81 | - _NormalMapOS: 82 | m_Texture: {fileID: 0} 83 | m_Scale: {x: 1, y: 1} 84 | m_Offset: {x: 0, y: 0} 85 | - _SpecularColorMap: 86 | m_Texture: {fileID: 0} 87 | m_Scale: {x: 1, y: 1} 88 | m_Offset: {x: 0, y: 0} 89 | - _SubsurfaceMaskMap: 90 | m_Texture: {fileID: 0} 91 | m_Scale: {x: 1, y: 1} 92 | m_Offset: {x: 0, y: 0} 93 | - _TangentMap: 94 | m_Texture: {fileID: 0} 95 | m_Scale: {x: 1, y: 1} 96 | m_Offset: {x: 0, y: 0} 97 | - _TangentMapOS: 98 | m_Texture: {fileID: 0} 99 | m_Scale: {x: 1, y: 1} 100 | m_Offset: {x: 0, y: 0} 101 | - _ThicknessMap: 102 | m_Texture: {fileID: 0} 103 | m_Scale: {x: 1, y: 1} 104 | m_Offset: {x: 0, y: 0} 105 | - _TransmittanceColorMap: 106 | m_Texture: {fileID: 0} 107 | m_Scale: {x: 1, y: 1} 108 | m_Offset: {x: 0, y: 0} 109 | m_Floats: 110 | - _AORemapMax: 1 111 | - _AORemapMin: 0 112 | - _ATDistance: 1 113 | - _AlbedoAffectEmissive: 0 114 | - _AlphaCutoff: 0.5 115 | - _AlphaCutoffEnable: 0 116 | - _AlphaCutoffPostpass: 0.5 117 | - _AlphaCutoffPrepass: 0.5 118 | - _Anisotropy: 0 119 | - _BlendMode: 0 120 | - _CoatMask: 0 121 | - _CullMode: 2 122 | - _CullModeForward: 2 123 | - _Cutoff: 0.5 124 | - _DepthOffsetEnable: 0 125 | - _DetailAlbedoScale: 1 126 | - _DetailNormalScale: 1 127 | - _DetailSmoothnessScale: 1 128 | - _DiffusionProfile: 0 129 | - _DisplacementLockObjectScale: 1 130 | - _DisplacementLockTilingScale: 1 131 | - _DisplacementMode: 0 132 | - _DistortionBlendMode: 0 133 | - _DistortionBlurBlendMode: 0 134 | - _DistortionBlurDstBlend: 0 135 | - _DistortionBlurRemapMax: 1 136 | - _DistortionBlurRemapMin: 0 137 | - _DistortionBlurScale: 1 138 | - _DistortionBlurSrcBlend: 0 139 | - _DistortionDepthTest: 1 140 | - _DistortionDstBlend: 0 141 | - _DistortionEnable: 0 142 | - _DistortionScale: 1 143 | - _DistortionSrcBlend: 0 144 | - _DistortionVectorBias: -1 145 | - _DistortionVectorScale: 2 146 | - _DoubleSidedEnable: 0 147 | - _DoubleSidedNormalMode: 1 148 | - _Drag: 1 149 | - _DstBlend: 0 150 | - _EmissiveColorMode: 1 151 | - _EmissiveIntensity: 0 152 | - _EnableBlendModePreserveSpecularLighting: 1 153 | - _EnableFogOnTransparent: 1 154 | - _EnableMotionVectorForVertexAnimation: 0 155 | - _EnableSpecularOcclusion: 0 156 | - _EnableWind: 0 157 | - _EnergyConservingSpecularColor: 1 158 | - _HeightAmplitude: 0.02 159 | - _HeightCenter: 0.5 160 | - _HeightMapParametrization: 0 161 | - _HeightMax: 1 162 | - _HeightMin: -1 163 | - _HeightOffset: 0 164 | - _HeightPoMAmplitude: 2 165 | - _HeightTessAmplitude: 2 166 | - _HeightTessCenter: 0.5 167 | - _InitialBend: 1 168 | - _InvTilingScale: 1 169 | - _Ior: 1 170 | - _IridescenceMask: 1 171 | - _IridescenceThickness: 1 172 | - _LinkDetailsWithBase: 1 173 | - _MaterialID: 1 174 | - _Metallic: 0 175 | - _NormalMapSpace: 0 176 | - _NormalScale: 1 177 | - _PPDLodThreshold: 5 178 | - _PPDMaxSamples: 15 179 | - _PPDMinSamples: 5 180 | - _PPDPrimitiveLength: 1 181 | - _PPDPrimitiveWidth: 1 182 | - _PreRefractionPass: 0 183 | - _RefractionMode: 0 184 | - _ShiverDirectionality: 0.5 185 | - _ShiverDrag: 0.2 186 | - _Slice: 0 187 | - _Smoothness: 1 188 | - _SmoothnessRemapMax: 1 189 | - _SmoothnessRemapMin: 0 190 | - _SrcBlend: 1 191 | - _StencilRef: 2 192 | - _StencilRefMV: 128 193 | - _StencilWriteMask: 7 194 | - _StencilWriteMaskMV: 128 195 | - _Stiffness: 1 196 | - _SubsurfaceMask: 1 197 | - _SupportDBuffer: 1 198 | - _SurfaceType: 0 199 | - _TexWorldScale: 1 200 | - _TexWorldScaleEmissive: 1 201 | - _Thickness: 1 202 | - _ThicknessMultiplier: 1 203 | - _TransmissionEnable: 1 204 | - _TransparentBackfaceEnable: 0 205 | - _TransparentDepthPostpassEnable: 0 206 | - _TransparentDepthPrepassEnable: 0 207 | - _TransparentSortPriority: 0 208 | - _UVBase: 0 209 | - _UVDetail: 0 210 | - _UVEmissive: 0 211 | - _ZTestDepthEqualForOpaque: 4 212 | - _ZTestGBuffer: 4 213 | - _ZTestModeDistortion: 8 214 | - _ZWrite: 1 215 | m_Colors: 216 | - _BaseColor: {r: 1, g: 1, b: 1, a: 1} 217 | - _Color: {r: 1, g: 1, b: 1, a: 1} 218 | - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} 219 | - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} 220 | - _EmissiveColor: {r: 1, g: 1, b: 1, a: 1} 221 | - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} 222 | - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} 223 | - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} 224 | - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} 225 | - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} 226 | - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} 227 | - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} 228 | - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} 229 | -------------------------------------------------------------------------------- /Assets/Materials/3DNoiseVisualizator.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7f472c23fa02f87408cc73f6c6decc8f 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/Terrain.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_PrefabInternal: {fileID: 0} 9 | m_Name: Terrain 10 | m_Shader: {fileID: 4800000, guid: c89124f602110b24282fff82e7ed7031, type: 3} 11 | m_ShaderKeywords: _MAPPING_TRIPLANAR _NORMALMAP_TANGENT_SPACE 12 | m_LightmapFlags: 4 13 | m_EnableInstancingVariants: 0 14 | m_DoubleSidedGI: 0 15 | m_CustomRenderQueue: -1 16 | stringTagMap: {} 17 | disabledShaderPasses: 18 | - DistortionVectors 19 | - TransparentDepthPrepass 20 | - TransparentDepthPostpass 21 | - TransparentBackface 22 | - MOTIONVECTORS 23 | m_SavedProperties: 24 | serializedVersion: 3 25 | m_TexEnvs: 26 | - _AnisotropyMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _BaseColorMap: 31 | m_Texture: {fileID: 2800000, guid: b4adcb9dbeb486c45a94e096274de648, type: 3} 32 | m_Scale: {x: 0.3, y: 0.3} 33 | m_Offset: {x: 0, y: 0} 34 | - _BentNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _BentNormalMapOS: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _CoatMaskMap: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _DetailMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _DistortionVectorMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _EmissiveColorMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | - _HeightMap: 59 | m_Texture: {fileID: 0} 60 | m_Scale: {x: 1, y: 1} 61 | m_Offset: {x: 0, y: 0} 62 | - _IridescenceMaskMap: 63 | m_Texture: {fileID: 0} 64 | m_Scale: {x: 1, y: 1} 65 | m_Offset: {x: 0, y: 0} 66 | - _IridescenceThicknessMap: 67 | m_Texture: {fileID: 0} 68 | m_Scale: {x: 1, y: 1} 69 | m_Offset: {x: 0, y: 0} 70 | - _MainTex: 71 | m_Texture: {fileID: 2800000, guid: b4adcb9dbeb486c45a94e096274de648, type: 3} 72 | m_Scale: {x: 1, y: 1} 73 | m_Offset: {x: 0, y: 0} 74 | - _MaskMap: 75 | m_Texture: {fileID: 0} 76 | m_Scale: {x: 1, y: 1} 77 | m_Offset: {x: 0, y: 0} 78 | - _NormalMap: 79 | m_Texture: {fileID: 0} 80 | m_Scale: {x: 1, y: 1} 81 | m_Offset: {x: 0, y: 0} 82 | - _NormalMapOS: 83 | m_Texture: {fileID: 0} 84 | m_Scale: {x: 1, y: 1} 85 | m_Offset: {x: 0, y: 0} 86 | - _SpecularColorMap: 87 | m_Texture: {fileID: 0} 88 | m_Scale: {x: 1, y: 1} 89 | m_Offset: {x: 0, y: 0} 90 | - _SubsurfaceMaskMap: 91 | m_Texture: {fileID: 0} 92 | m_Scale: {x: 1, y: 1} 93 | m_Offset: {x: 0, y: 0} 94 | - _TangentMap: 95 | m_Texture: {fileID: 0} 96 | m_Scale: {x: 1, y: 1} 97 | m_Offset: {x: 0, y: 0} 98 | - _TangentMapOS: 99 | m_Texture: {fileID: 0} 100 | m_Scale: {x: 1, y: 1} 101 | m_Offset: {x: 0, y: 0} 102 | - _ThicknessMap: 103 | m_Texture: {fileID: 0} 104 | m_Scale: {x: 1, y: 1} 105 | m_Offset: {x: 0, y: 0} 106 | - _TransmittanceColorMap: 107 | m_Texture: {fileID: 0} 108 | m_Scale: {x: 1, y: 1} 109 | m_Offset: {x: 0, y: 0} 110 | m_Floats: 111 | - _AORemapMax: 1 112 | - _AORemapMin: 0 113 | - _ATDistance: 1 114 | - _AlbedoAffectEmissive: 0 115 | - _AlphaCutoff: 0.5 116 | - _AlphaCutoffEnable: 0 117 | - _AlphaCutoffPostpass: 0.5 118 | - _AlphaCutoffPrepass: 0.5 119 | - _Anisotropy: 0 120 | - _BlendMode: 0 121 | - _CoatMask: 0 122 | - _CullMode: 2 123 | - _CullModeForward: 2 124 | - _Cutoff: 0.5 125 | - _DepthOffsetEnable: 0 126 | - _DetailAlbedoScale: 1 127 | - _DetailNormalScale: 1 128 | - _DetailSmoothnessScale: 1 129 | - _DiffusionProfile: 0 130 | - _DisplacementLockObjectScale: 1 131 | - _DisplacementLockTilingScale: 1 132 | - _DisplacementMode: 0 133 | - _DistortionBlendMode: 0 134 | - _DistortionBlurBlendMode: 0 135 | - _DistortionBlurDstBlend: 1 136 | - _DistortionBlurRemapMax: 1 137 | - _DistortionBlurRemapMin: 0 138 | - _DistortionBlurScale: 1 139 | - _DistortionBlurSrcBlend: 1 140 | - _DistortionDepthTest: 1 141 | - _DistortionDstBlend: 1 142 | - _DistortionEnable: 0 143 | - _DistortionScale: 1 144 | - _DistortionSrcBlend: 1 145 | - _DistortionVectorBias: -1 146 | - _DistortionVectorScale: 2 147 | - _DoubleSidedEnable: 0 148 | - _DoubleSidedNormalMode: 1 149 | - _Drag: 1 150 | - _DstBlend: 0 151 | - _EmissiveColorMode: 1 152 | - _EnableBlendModePreserveSpecularLighting: 1 153 | - _EnableFogOnTransparent: 1 154 | - _EnableGeometricSpecularAA: 0 155 | - _EnableMotionVectorForVertexAnimation: 0 156 | - _EnableSpecularOcclusion: 0 157 | - _EnableWind: 0 158 | - _EnergyConservingSpecularColor: 1 159 | - _HdrpVersion: 1 160 | - _HeightAmplitude: 0.02 161 | - _HeightCenter: 0.5 162 | - _HeightMapParametrization: 0 163 | - _HeightMax: 1 164 | - _HeightMin: -1 165 | - _HeightOffset: 0 166 | - _HeightPoMAmplitude: 2 167 | - _HeightTessAmplitude: 2 168 | - _HeightTessCenter: 0.5 169 | - _InitialBend: 1 170 | - _InvTilingScale: 3.3333333 171 | - _Ior: 1 172 | - _IridescenceMask: 1 173 | - _IridescenceThickness: 1 174 | - _LinkDetailsWithBase: 1 175 | - _MaterialID: 1 176 | - _Metallic: 0 177 | - _NormalMapSpace: 0 178 | - _NormalScale: 1 179 | - _PPDLodThreshold: 5 180 | - _PPDMaxSamples: 15 181 | - _PPDMinSamples: 5 182 | - _PPDPrimitiveLength: 1 183 | - _PPDPrimitiveWidth: 1 184 | - _PreRefractionPass: 0 185 | - _RefractionModel: 0 186 | - _SSRefractionProjectionModel: 0 187 | - _ShiverDirectionality: 0.5 188 | - _ShiverDrag: 0.2 189 | - _Smoothness: 0 190 | - _SmoothnessRemapMax: 1 191 | - _SmoothnessRemapMin: 0 192 | - _SpecularAAScreenSpaceVariance: 0.1 193 | - _SpecularAAThreshold: 0.2 194 | - _SrcBlend: 1 195 | - _StencilRef: 2 196 | - _StencilRefMV: 128 197 | - _StencilWriteMask: 7 198 | - _StencilWriteMaskMV: 128 199 | - _Stiffness: 1 200 | - _SubsurfaceMask: 1 201 | - _SupportDBuffer: 1 202 | - _SurfaceType: 0 203 | - _TexWorldScale: 1 204 | - _TexWorldScaleEmissive: 1 205 | - _Thickness: 1 206 | - _ThicknessMultiplier: 1 207 | - _TransmissionEnable: 1 208 | - _TransparentBackfaceEnable: 0 209 | - _TransparentDepthPostpassEnable: 0 210 | - _TransparentDepthPrepassEnable: 0 211 | - _TransparentSortPriority: 0 212 | - _UVBase: 5 213 | - _UVDetail: 0 214 | - _UVEmissive: 0 215 | - _ZTestDepthEqualForOpaque: 3 216 | - _ZTestGBuffer: 4 217 | - _ZTestModeDistortion: 4 218 | - _ZWrite: 1 219 | m_Colors: 220 | - _BaseColor: {r: 1, g: 1, b: 1, a: 1} 221 | - _Color: {r: 1, g: 1, b: 1, a: 1} 222 | - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} 223 | - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} 224 | - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} 225 | - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} 226 | - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} 227 | - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} 228 | - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} 229 | - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} 230 | - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} 231 | - _UVMappingMask: {r: 0, g: 0, b: 0, a: 0} 232 | - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} 233 | -------------------------------------------------------------------------------- /Assets/Materials/Terrain.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 234f139d3204b5745b8284f271aa41b8 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/TerrainLit.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_PrefabInternal: {fileID: 0} 9 | m_Name: TerrainLit 10 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 11 | m_ShaderKeywords: _MAPPING_TRIPLANAR _NORMALMAP_TANGENT_SPACE 12 | m_LightmapFlags: 4 13 | m_EnableInstancingVariants: 0 14 | m_DoubleSidedGI: 0 15 | m_CustomRenderQueue: -1 16 | stringTagMap: {} 17 | disabledShaderPasses: 18 | - DistortionVectors 19 | - TransparentDepthPrepass 20 | - TransparentDepthPostpass 21 | - TransparentBackface 22 | - MOTIONVECTORS 23 | m_SavedProperties: 24 | serializedVersion: 3 25 | m_TexEnvs: 26 | - _AnisotropyMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _BaseColorMap: 31 | m_Texture: {fileID: 2800000, guid: b4adcb9dbeb486c45a94e096274de648, type: 3} 32 | m_Scale: {x: 0.3, y: 0.3} 33 | m_Offset: {x: 0, y: 0} 34 | - _BentNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _BentNormalMapOS: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _BumpMap: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _CoatMaskMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _DetailAlbedoMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _DetailMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | - _DetailMask: 59 | m_Texture: {fileID: 0} 60 | m_Scale: {x: 1, y: 1} 61 | m_Offset: {x: 0, y: 0} 62 | - _DetailNormalMap: 63 | m_Texture: {fileID: 0} 64 | m_Scale: {x: 1, y: 1} 65 | m_Offset: {x: 0, y: 0} 66 | - _DistortionVectorMap: 67 | m_Texture: {fileID: 0} 68 | m_Scale: {x: 1, y: 1} 69 | m_Offset: {x: 0, y: 0} 70 | - _EmissionMap: 71 | m_Texture: {fileID: 0} 72 | m_Scale: {x: 1, y: 1} 73 | m_Offset: {x: 0, y: 0} 74 | - _EmissiveColorMap: 75 | m_Texture: {fileID: 0} 76 | m_Scale: {x: 1, y: 1} 77 | m_Offset: {x: 0, y: 0} 78 | - _HeightMap: 79 | m_Texture: {fileID: 0} 80 | m_Scale: {x: 1, y: 1} 81 | m_Offset: {x: 0, y: 0} 82 | - _IridescenceMaskMap: 83 | m_Texture: {fileID: 0} 84 | m_Scale: {x: 1, y: 1} 85 | m_Offset: {x: 0, y: 0} 86 | - _IridescenceThicknessMap: 87 | m_Texture: {fileID: 0} 88 | m_Scale: {x: 1, y: 1} 89 | m_Offset: {x: 0, y: 0} 90 | - _MainTex: 91 | m_Texture: {fileID: 2800000, guid: b4adcb9dbeb486c45a94e096274de648, type: 3} 92 | m_Scale: {x: 1, y: 1} 93 | m_Offset: {x: 0, y: 0} 94 | - _MaskMap: 95 | m_Texture: {fileID: 0} 96 | m_Scale: {x: 1, y: 1} 97 | m_Offset: {x: 0, y: 0} 98 | - _MetallicGlossMap: 99 | m_Texture: {fileID: 0} 100 | m_Scale: {x: 1, y: 1} 101 | m_Offset: {x: 0, y: 0} 102 | - _NormalMap: 103 | m_Texture: {fileID: 0} 104 | m_Scale: {x: 1, y: 1} 105 | m_Offset: {x: 0, y: 0} 106 | - _NormalMapOS: 107 | m_Texture: {fileID: 0} 108 | m_Scale: {x: 1, y: 1} 109 | m_Offset: {x: 0, y: 0} 110 | - _OcclusionMap: 111 | m_Texture: {fileID: 0} 112 | m_Scale: {x: 1, y: 1} 113 | m_Offset: {x: 0, y: 0} 114 | - _ParallaxMap: 115 | m_Texture: {fileID: 0} 116 | m_Scale: {x: 1, y: 1} 117 | m_Offset: {x: 0, y: 0} 118 | - _SpecularColorMap: 119 | m_Texture: {fileID: 0} 120 | m_Scale: {x: 1, y: 1} 121 | m_Offset: {x: 0, y: 0} 122 | - _SubsurfaceMaskMap: 123 | m_Texture: {fileID: 0} 124 | m_Scale: {x: 1, y: 1} 125 | m_Offset: {x: 0, y: 0} 126 | - _TangentMap: 127 | m_Texture: {fileID: 0} 128 | m_Scale: {x: 1, y: 1} 129 | m_Offset: {x: 0, y: 0} 130 | - _TangentMapOS: 131 | m_Texture: {fileID: 0} 132 | m_Scale: {x: 1, y: 1} 133 | m_Offset: {x: 0, y: 0} 134 | - _ThicknessMap: 135 | m_Texture: {fileID: 0} 136 | m_Scale: {x: 1, y: 1} 137 | m_Offset: {x: 0, y: 0} 138 | - _TransmittanceColorMap: 139 | m_Texture: {fileID: 0} 140 | m_Scale: {x: 1, y: 1} 141 | m_Offset: {x: 0, y: 0} 142 | m_Floats: 143 | - _AORemapMax: 1 144 | - _AORemapMin: 0 145 | - _ATDistance: 1 146 | - _AlbedoAffectEmissive: 0 147 | - _AlphaCutoff: 0.5 148 | - _AlphaCutoffEnable: 0 149 | - _AlphaCutoffPostpass: 0.5 150 | - _AlphaCutoffPrepass: 0.5 151 | - _Anisotropy: 0 152 | - _BlendMode: 0 153 | - _BumpScale: 1 154 | - _CoatMask: 0 155 | - _CullMode: 2 156 | - _CullModeForward: 2 157 | - _Cutoff: 0.5 158 | - _DepthOffsetEnable: 0 159 | - _DetailAlbedoScale: 1 160 | - _DetailNormalMapScale: 1 161 | - _DetailNormalScale: 1 162 | - _DetailSmoothnessScale: 1 163 | - _DiffusionProfile: 0 164 | - _DisplacementLockObjectScale: 1 165 | - _DisplacementLockTilingScale: 1 166 | - _DisplacementMode: 0 167 | - _DistortionBlendMode: 0 168 | - _DistortionBlurBlendMode: 0 169 | - _DistortionBlurDstBlend: 1 170 | - _DistortionBlurRemapMax: 1 171 | - _DistortionBlurRemapMin: 0 172 | - _DistortionBlurScale: 1 173 | - _DistortionBlurSrcBlend: 1 174 | - _DistortionDepthTest: 1 175 | - _DistortionDstBlend: 1 176 | - _DistortionEnable: 0 177 | - _DistortionScale: 1 178 | - _DistortionSrcBlend: 1 179 | - _DistortionVectorBias: -1 180 | - _DistortionVectorScale: 2 181 | - _DoubleSidedEnable: 0 182 | - _DoubleSidedNormalMode: 1 183 | - _Drag: 1 184 | - _DstBlend: 0 185 | - _EmissiveColorMode: 1 186 | - _EnableBlendModePreserveSpecularLighting: 1 187 | - _EnableFogOnTransparent: 1 188 | - _EnableGeometricSpecularAA: 0 189 | - _EnableMotionVectorForVertexAnimation: 0 190 | - _EnableSpecularOcclusion: 0 191 | - _EnableWind: 0 192 | - _EnergyConservingSpecularColor: 1 193 | - _GlossMapScale: 1 194 | - _Glossiness: 0 195 | - _GlossyReflections: 1 196 | - _HdrpVersion: 1 197 | - _HeightAmplitude: 0.02 198 | - _HeightCenter: 0.5 199 | - _HeightMapParametrization: 0 200 | - _HeightMax: 1 201 | - _HeightMin: -1 202 | - _HeightOffset: 0 203 | - _HeightPoMAmplitude: 2 204 | - _HeightTessAmplitude: 2 205 | - _HeightTessCenter: 0.5 206 | - _InitialBend: 1 207 | - _InvTilingScale: 3.3333333 208 | - _Ior: 1 209 | - _IridescenceMask: 1 210 | - _IridescenceThickness: 1 211 | - _LinkDetailsWithBase: 1 212 | - _MaterialID: 1 213 | - _Metallic: 0 214 | - _Mode: 0 215 | - _NormalMapSpace: 0 216 | - _NormalScale: 1 217 | - _OcclusionStrength: 1 218 | - _PPDLodThreshold: 5 219 | - _PPDMaxSamples: 15 220 | - _PPDMinSamples: 5 221 | - _PPDPrimitiveLength: 1 222 | - _PPDPrimitiveWidth: 1 223 | - _Parallax: 0.02 224 | - _PreRefractionPass: 0 225 | - _RefractionModel: 0 226 | - _SSRefractionProjectionModel: 0 227 | - _ShiverDirectionality: 0.5 228 | - _ShiverDrag: 0.2 229 | - _Smoothness: 0 230 | - _SmoothnessRemapMax: 1 231 | - _SmoothnessRemapMin: 0 232 | - _SmoothnessTextureChannel: 0 233 | - _SpecularAAScreenSpaceVariance: 0.1 234 | - _SpecularAAThreshold: 0.2 235 | - _SpecularHighlights: 1 236 | - _SrcBlend: 1 237 | - _StencilRef: 2 238 | - _StencilRefMV: 128 239 | - _StencilWriteMask: 7 240 | - _StencilWriteMaskMV: 128 241 | - _Stiffness: 1 242 | - _SubsurfaceMask: 1 243 | - _SupportDBuffer: 1 244 | - _SurfaceType: 0 245 | - _TexWorldScale: 1 246 | - _TexWorldScaleEmissive: 1 247 | - _Thickness: 1 248 | - _ThicknessMultiplier: 1 249 | - _TransmissionEnable: 1 250 | - _TransparentBackfaceEnable: 0 251 | - _TransparentDepthPostpassEnable: 0 252 | - _TransparentDepthPrepassEnable: 0 253 | - _TransparentSortPriority: 0 254 | - _UVBase: 5 255 | - _UVDetail: 0 256 | - _UVEmissive: 0 257 | - _UVSec: 0 258 | - _ZTestDepthEqualForOpaque: 3 259 | - _ZTestGBuffer: 4 260 | - _ZTestModeDistortion: 4 261 | - _ZWrite: 1 262 | m_Colors: 263 | - _BaseColor: {r: 1, g: 1, b: 1, a: 1} 264 | - _Color: {r: 1, g: 1, b: 1, a: 1} 265 | - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} 266 | - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} 267 | - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} 268 | - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} 269 | - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} 270 | - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} 271 | - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} 272 | - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} 273 | - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} 274 | - _UVMappingMask: {r: 0, g: 0, b: 0, a: 0} 275 | - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} 276 | -------------------------------------------------------------------------------- /Assets/Materials/TerrainLit.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: aca39f9d734cc1046b6209066a53db94 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Prefabs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1050d86d68a4e6145b08cdb1ade2f5cc 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Prefabs/Chunk.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1001 &100100000 4 | Prefab: 5 | m_ObjectHideFlags: 1 6 | serializedVersion: 2 7 | m_Modification: 8 | m_TransformParent: {fileID: 0} 9 | m_Modifications: [] 10 | m_RemovedComponents: [] 11 | m_SourcePrefab: {fileID: 0} 12 | m_RootGameObject: {fileID: 1576489927722428} 13 | m_IsPrefabAsset: 1 14 | --- !u!1 &1576489927722428 15 | GameObject: 16 | m_ObjectHideFlags: 0 17 | m_CorrespondingSourceObject: {fileID: 0} 18 | m_PrefabInternal: {fileID: 100100000} 19 | serializedVersion: 6 20 | m_Component: 21 | - component: {fileID: 4299874261169530} 22 | - component: {fileID: 33995897157556416} 23 | - component: {fileID: 23539560622269922} 24 | m_Layer: 0 25 | m_Name: Chunk 26 | m_TagString: Untagged 27 | m_Icon: {fileID: 0} 28 | m_NavMeshLayer: 0 29 | m_StaticEditorFlags: 0 30 | m_IsActive: 1 31 | --- !u!4 &4299874261169530 32 | Transform: 33 | m_ObjectHideFlags: 1 34 | m_CorrespondingSourceObject: {fileID: 0} 35 | m_PrefabInternal: {fileID: 100100000} 36 | m_GameObject: {fileID: 1576489927722428} 37 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 38 | m_LocalPosition: {x: 1.5256048, y: -0.19204503, z: 0.8232012} 39 | m_LocalScale: {x: 1, y: 1, z: 1} 40 | m_Children: [] 41 | m_Father: {fileID: 0} 42 | m_RootOrder: 0 43 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 44 | --- !u!23 &23539560622269922 45 | MeshRenderer: 46 | m_ObjectHideFlags: 1 47 | m_CorrespondingSourceObject: {fileID: 0} 48 | m_PrefabInternal: {fileID: 100100000} 49 | m_GameObject: {fileID: 1576489927722428} 50 | m_Enabled: 1 51 | m_CastShadows: 1 52 | m_ReceiveShadows: 1 53 | m_DynamicOccludee: 1 54 | m_MotionVectors: 1 55 | m_LightProbeUsage: 1 56 | m_ReflectionProbeUsage: 1 57 | m_RenderingLayerMask: 4294967295 58 | m_Materials: 59 | - {fileID: 2100000, guid: aca39f9d734cc1046b6209066a53db94, type: 2} 60 | m_StaticBatchInfo: 61 | firstSubMesh: 0 62 | subMeshCount: 0 63 | m_StaticBatchRoot: {fileID: 0} 64 | m_ProbeAnchor: {fileID: 0} 65 | m_LightProbeVolumeOverride: {fileID: 0} 66 | m_ScaleInLightmap: 1 67 | m_PreserveUVs: 0 68 | m_IgnoreNormalsForChartDetection: 0 69 | m_ImportantGI: 0 70 | m_StitchLightmapSeams: 0 71 | m_SelectedEditorRenderState: 3 72 | m_MinimumChartSize: 4 73 | m_AutoUVMaxDistance: 0.5 74 | m_AutoUVMaxAngle: 89 75 | m_LightmapParameters: {fileID: 0} 76 | m_SortingLayerID: 0 77 | m_SortingLayer: 0 78 | m_SortingOrder: 0 79 | --- !u!33 &33995897157556416 80 | MeshFilter: 81 | m_ObjectHideFlags: 1 82 | m_CorrespondingSourceObject: {fileID: 0} 83 | m_PrefabInternal: {fileID: 100100000} 84 | m_GameObject: {fileID: 1576489927722428} 85 | m_Mesh: {fileID: 0} 86 | -------------------------------------------------------------------------------- /Assets/Prefabs/Chunk.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 26fa67ea7f633c9478a71a68d93d5e32 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 100100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Prefabs/Debug3D.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1001 &100100000 4 | Prefab: 5 | m_ObjectHideFlags: 1 6 | serializedVersion: 2 7 | m_Modification: 8 | m_TransformParent: {fileID: 0} 9 | m_Modifications: [] 10 | m_RemovedComponents: [] 11 | m_SourcePrefab: {fileID: 0} 12 | m_RootGameObject: {fileID: 1391857269181838} 13 | m_IsPrefabAsset: 1 14 | --- !u!1 &1391857269181838 15 | GameObject: 16 | m_ObjectHideFlags: 0 17 | m_CorrespondingSourceObject: {fileID: 0} 18 | m_PrefabInternal: {fileID: 100100000} 19 | serializedVersion: 6 20 | m_Component: 21 | - component: {fileID: 4086280102973490} 22 | - component: {fileID: 23793707408201704} 23 | - component: {fileID: 33872939933754374} 24 | m_Layer: 0 25 | m_Name: Debug3D 26 | m_TagString: Untagged 27 | m_Icon: {fileID: 0} 28 | m_NavMeshLayer: 0 29 | m_StaticEditorFlags: 0 30 | m_IsActive: 1 31 | --- !u!4 &4086280102973490 32 | Transform: 33 | m_ObjectHideFlags: 1 34 | m_CorrespondingSourceObject: {fileID: 0} 35 | m_PrefabInternal: {fileID: 100100000} 36 | m_GameObject: {fileID: 1391857269181838} 37 | m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068} 38 | m_LocalPosition: {x: 1.73, y: 13.95, z: 0} 39 | m_LocalScale: {x: 5, y: 5, z: 5} 40 | m_Children: [] 41 | m_Father: {fileID: 0} 42 | m_RootOrder: 0 43 | m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} 44 | --- !u!23 &23793707408201704 45 | MeshRenderer: 46 | m_ObjectHideFlags: 1 47 | m_CorrespondingSourceObject: {fileID: 0} 48 | m_PrefabInternal: {fileID: 100100000} 49 | m_GameObject: {fileID: 1391857269181838} 50 | m_Enabled: 1 51 | m_CastShadows: 1 52 | m_ReceiveShadows: 1 53 | m_DynamicOccludee: 1 54 | m_MotionVectors: 1 55 | m_LightProbeUsage: 1 56 | m_ReflectionProbeUsage: 1 57 | m_RenderingLayerMask: 4294967295 58 | m_Materials: 59 | - {fileID: 2100000, guid: 7f472c23fa02f87408cc73f6c6decc8f, type: 2} 60 | m_StaticBatchInfo: 61 | firstSubMesh: 0 62 | subMeshCount: 0 63 | m_StaticBatchRoot: {fileID: 0} 64 | m_ProbeAnchor: {fileID: 0} 65 | m_LightProbeVolumeOverride: {fileID: 0} 66 | m_ScaleInLightmap: 1 67 | m_PreserveUVs: 0 68 | m_IgnoreNormalsForChartDetection: 0 69 | m_ImportantGI: 0 70 | m_StitchLightmapSeams: 0 71 | m_SelectedEditorRenderState: 3 72 | m_MinimumChartSize: 4 73 | m_AutoUVMaxDistance: 0.5 74 | m_AutoUVMaxAngle: 89 75 | m_LightmapParameters: {fileID: 0} 76 | m_SortingLayerID: 0 77 | m_SortingLayer: 0 78 | m_SortingOrder: 0 79 | --- !u!33 &33872939933754374 80 | MeshFilter: 81 | m_ObjectHideFlags: 1 82 | m_CorrespondingSourceObject: {fileID: 0} 83 | m_PrefabInternal: {fileID: 100100000} 84 | m_GameObject: {fileID: 1391857269181838} 85 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 86 | -------------------------------------------------------------------------------- /Assets/Prefabs/Debug3D.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: abbe9d8608d8c024785d6aca3b6865e8 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 100100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Presets.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2754f8cebe196654cbc72d1885ebcf0e 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Presets/AudioCompressedInMemory.preset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e18fd6ecd9cdb524ca99844f39b9d9ac 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Presets/AudioStreaming.preset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 460e573eb8466884baaa0b8475505f83 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Presets/Defaults.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 62d01720aebe09744845cc69fc236e31 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: 7a99f8aa944efe94cb9bd74562b7d5f9 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Presets/Defaults/AudioDecompressOnLoad_Default.preset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0cd792cc87e492d43b4e95b205fc5cc6 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_PrefabParentObject: {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: 10 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: 1 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.01 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: 1 105 | objectReference: {fileID: 0} 106 | - target: {fileID: 0} 107 | propertyPath: m_AreaSize.x 108 | value: 1 109 | objectReference: {fileID: 0} 110 | - target: {fileID: 0} 111 | propertyPath: m_AreaSize.y 112 | value: 1 113 | objectReference: {fileID: 0} 114 | - target: {fileID: 0} 115 | propertyPath: m_BounceIntensity 116 | value: 1 117 | objectReference: {fileID: 0} 118 | - target: {fileID: 0} 119 | propertyPath: m_ColorTemperature 120 | value: 6570 121 | objectReference: {fileID: 0} 122 | - target: {fileID: 0} 123 | propertyPath: m_UseColorTemperature 124 | value: 0 125 | objectReference: {fileID: 0} 126 | - target: {fileID: 0} 127 | propertyPath: m_ShadowRadius 128 | value: 0 129 | objectReference: {fileID: 0} 130 | - target: {fileID: 0} 131 | propertyPath: m_ShadowAngle 132 | value: 0 133 | objectReference: {fileID: 0} 134 | -------------------------------------------------------------------------------- /Assets/Presets/Defaults/DirectionalLight_Default.preset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c1cf8506f04ef2c4a88b64b6c4202eea 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Presets/Defaults/SSSSettings_Default.preset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8fa3055e2a1363246838debd20206d37 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Presets/HDRTexture.preset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 78830bb1431cab940b74be615e2a739f 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2655988077585873504 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Presets/NormalTexture.preset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1d826a4c23450f946b19c20560595a1f 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2655988077585873504 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Presets/UtilityTexture.preset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9303d565bd8aa6948ba775e843320e4d 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2655988077585873504 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Readme.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_PrefabParentObject: {fileID: 0} 7 | m_PrefabInternal: {fileID: 0} 8 | m_GameObject: {fileID: 0} 9 | m_Enabled: 1 10 | m_EditorHideFlags: 0 11 | m_Script: {fileID: 11500000, guid: fcf7219bab7fe46a1ad266029b2fee19, type: 3} 12 | m_Name: Readme 13 | m_EditorClassIdentifier: 14 | icon: {fileID: 2800000, guid: 9b84c330de497af4793fd7b376afed13, type: 3} 15 | title: High-Definition RP (Preview) 16 | sections: 17 | - heading: High-Definition Render Pipeline 18 | text: 'The High Definition Scriptable Render Pipeline is currently still in development. 19 | At this stage we are seeking feedback on the feature, but it should be considered 20 | incomplete and subject to changes (API, UX, scope). As such, it is not covered 21 | by regular Unity support. Please direct any questions to the: ' 22 | linkText: Preview Forum 23 | url: 'https://forum.unity.com/categories/betas-experimental-features.86/' 24 | - heading: 25 | text: This template is a good starting point for people focused on high-end graphics 26 | that want to develop games for platforms that support Shader Model 5.0 (DX11 27 | and above). This template utilizes the High Definition Scriptable Render Pipeline, 28 | a modern rendering pipeline that includes advanced material types and a configurable 29 | hybrid tile/cluster deferred/forward lighting architecture. 30 | linkText: 31 | url: 32 | - heading: 33 | text: 'This project also includes the new Post-Processing stack, several presets 34 | to jump start development, and example content. To learn more about Post-Processing 35 | please refer to the wiki page located here: ' 36 | linkText: Post-Processing 37 | url: https://github.com/Unity-Technologies/PostProcessing/wiki 38 | - heading: 39 | text: 'To read more about the HD Render Pipeline please refer to the Scriptable 40 | Render Pipeline wiki: ' 41 | linkText: Scriptable Render Pipeline 42 | url: https://github.com/Unity-Technologies/ScriptableRenderPipeline/wiki 43 | loadedLayout: 1 44 | -------------------------------------------------------------------------------- /Assets/Readme.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 83c2ed844a8c74b779a4c823d16594b1 3 | timeCreated: 1484217493 4 | licenseType: Store 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 79f47ec4e4bec4943a10fa54e9468204 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scenes/ComputeShaderTerrain.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1f4105bdefe55df48b747607e0042515 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scenes/ComputeShaderTerrain.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 76f8e46142690a04695dde013b647aed 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Scenes/ComputeShaderTerrain/Scene Settings Profile 1.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_PrefabInternal: {fileID: 0} 8 | m_GameObject: {fileID: 0} 9 | m_Enabled: 1 10 | m_EditorHideFlags: 0 11 | m_Script: {fileID: 11500000, guid: d7fd9488000d3734a9e00ee676215985, type: 3} 12 | m_Name: Scene Settings Profile 1 13 | m_EditorClassIdentifier: 14 | components: 15 | - {fileID: 114216899006491056} 16 | - {fileID: 114664475143177218} 17 | - {fileID: 114455919807624550} 18 | - {fileID: 114117854635994988} 19 | --- !u!114 &114117854635994988 20 | MonoBehaviour: 21 | m_ObjectHideFlags: 0 22 | m_CorrespondingSourceObject: {fileID: 0} 23 | m_PrefabInternal: {fileID: 0} 24 | m_GameObject: {fileID: 0} 25 | m_Enabled: 1 26 | m_EditorHideFlags: 0 27 | m_Script: {fileID: 11500000, guid: 2150ee00179b2f4418ea8b21a7e98eea, type: 3} 28 | m_Name: 29 | m_EditorClassIdentifier: 30 | active: 1 31 | colorMode: 32 | m_OverrideState: 1 33 | m_Value: 1 34 | color: 35 | m_OverrideState: 1 36 | m_Value: {r: 0.5, g: 0.5, b: 0.5, a: 1} 37 | hdr: 0 38 | showAlpha: 1 39 | showEyeDropper: 1 40 | density: 41 | m_OverrideState: 1 42 | m_Value: 1 43 | min: 0 44 | max: 1 45 | mipFogMaxMip: 46 | m_OverrideState: 1 47 | m_Value: 0.5 48 | min: 0 49 | max: 1 50 | mipFogNear: 51 | m_OverrideState: 1 52 | m_Value: 0 53 | min: 0 54 | mipFogFar: 55 | m_OverrideState: 1 56 | m_Value: 1000 57 | min: 0 58 | fogDistance: 59 | m_OverrideState: 1 60 | m_Value: 200 61 | min: 0 62 | fogBaseHeight: 63 | m_OverrideState: 1 64 | m_Value: 0 65 | fogHeightAttenuation: 66 | m_OverrideState: 1 67 | m_Value: 0.2 68 | min: 0 69 | max: 1 70 | --- !u!114 &114216899006491056 71 | MonoBehaviour: 72 | m_ObjectHideFlags: 0 73 | m_CorrespondingSourceObject: {fileID: 0} 74 | m_PrefabInternal: {fileID: 0} 75 | m_GameObject: {fileID: 0} 76 | m_Enabled: 1 77 | m_EditorHideFlags: 0 78 | m_Script: {fileID: 11500000, guid: 7ddcec8a8eb2d684d833ac8f5d26aebd, type: 3} 79 | m_Name: 80 | m_EditorClassIdentifier: 81 | active: 1 82 | maxShadowDistance: 83 | m_OverrideState: 1 84 | m_Value: 500 85 | min: 0 86 | cascadeShadowSplitCount: 87 | m_OverrideState: 1 88 | m_Value: 4 89 | min: 1 90 | max: 4 91 | cascadeShadowSplit0: 92 | m_OverrideState: 1 93 | m_Value: 0.05 94 | min: 0 95 | max: 1 96 | cascadeShadowSplit1: 97 | m_OverrideState: 1 98 | m_Value: 0.15 99 | min: 0 100 | max: 1 101 | cascadeShadowSplit2: 102 | m_OverrideState: 1 103 | m_Value: 0.3 104 | min: 0 105 | max: 1 106 | cascadeShadowBorder0: 107 | m_OverrideState: 1 108 | m_Value: 0 109 | min: 0 110 | cascadeShadowBorder1: 111 | m_OverrideState: 1 112 | m_Value: 0 113 | min: 0 114 | cascadeShadowBorder2: 115 | m_OverrideState: 1 116 | m_Value: 0 117 | min: 0 118 | cascadeShadowBorder3: 119 | m_OverrideState: 1 120 | m_Value: 0 121 | min: 0 122 | --- !u!114 &114455919807624550 123 | MonoBehaviour: 124 | m_ObjectHideFlags: 0 125 | m_CorrespondingSourceObject: {fileID: 0} 126 | m_PrefabInternal: {fileID: 0} 127 | m_GameObject: {fileID: 0} 128 | m_Enabled: 1 129 | m_EditorHideFlags: 0 130 | m_Script: {fileID: 11500000, guid: 3df29e7cc05fbec4aa43e06ea875565d, type: 3} 131 | m_Name: 132 | m_EditorClassIdentifier: 133 | active: 1 134 | rotation: 135 | m_OverrideState: 1 136 | m_Value: 0 137 | min: 0 138 | max: 360 139 | exposure: 140 | m_OverrideState: 1 141 | m_Value: 0 142 | multiplier: 143 | m_OverrideState: 1 144 | m_Value: 1 145 | min: 0 146 | updateMode: 147 | m_OverrideState: 1 148 | m_Value: 0 149 | updatePeriod: 150 | m_OverrideState: 1 151 | m_Value: 0 152 | min: 0 153 | sunSize: 154 | m_OverrideState: 1 155 | m_Value: 0.04 156 | min: 0 157 | max: 1 158 | sunSizeConvergence: 159 | m_OverrideState: 1 160 | m_Value: 5 161 | min: 1 162 | max: 10 163 | atmosphereThickness: 164 | m_OverrideState: 1 165 | m_Value: 1 166 | min: 0 167 | max: 5 168 | skyTint: 169 | m_OverrideState: 1 170 | m_Value: {r: 0.5, g: 0.5, b: 0.5, a: 1} 171 | hdr: 0 172 | showAlpha: 1 173 | showEyeDropper: 1 174 | groundColor: 175 | m_OverrideState: 1 176 | m_Value: {r: 0.369, g: 0.349, b: 0.341, a: 1} 177 | hdr: 0 178 | showAlpha: 1 179 | showEyeDropper: 1 180 | enableSunDisk: 181 | m_OverrideState: 1 182 | m_Value: 1 183 | --- !u!114 &114664475143177218 184 | MonoBehaviour: 185 | m_ObjectHideFlags: 0 186 | m_CorrespondingSourceObject: {fileID: 0} 187 | m_PrefabInternal: {fileID: 0} 188 | m_GameObject: {fileID: 0} 189 | m_Enabled: 1 190 | m_EditorHideFlags: 0 191 | m_Script: {fileID: 11500000, guid: 0d7593b3a9277ac4696b20006c21dde2, type: 3} 192 | m_Name: 193 | m_EditorClassIdentifier: 194 | active: 1 195 | skyType: 196 | m_OverrideState: 1 197 | m_Value: 2 198 | fogType: 199 | m_OverrideState: 1 200 | m_Value: 0 201 | -------------------------------------------------------------------------------- /Assets/Scenes/ComputeShaderTerrain/Scene Settings Profile 1.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 797b270d8d56ac042950fc18f92884e7 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scenes/ComputeShaderTerrain/Scene Settings Profile.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_PrefabInternal: {fileID: 0} 8 | m_GameObject: {fileID: 0} 9 | m_Enabled: 1 10 | m_EditorHideFlags: 0 11 | m_Script: {fileID: 11500000, guid: d7fd9488000d3734a9e00ee676215985, type: 3} 12 | m_Name: Scene Settings Profile 13 | m_EditorClassIdentifier: 14 | components: 15 | - {fileID: 114705602911658186} 16 | - {fileID: 114906931140216502} 17 | - {fileID: 114326799245542788} 18 | - {fileID: 114667945870578830} 19 | --- !u!114 &114326799245542788 20 | MonoBehaviour: 21 | m_ObjectHideFlags: 0 22 | m_CorrespondingSourceObject: {fileID: 0} 23 | m_PrefabInternal: {fileID: 0} 24 | m_GameObject: {fileID: 0} 25 | m_Enabled: 1 26 | m_EditorHideFlags: 0 27 | m_Script: {fileID: 11500000, guid: 2150ee00179b2f4418ea8b21a7e98eea, type: 3} 28 | m_Name: 29 | m_EditorClassIdentifier: 30 | active: 1 31 | colorMode: 32 | m_OverrideState: 1 33 | m_Value: 1 34 | color: 35 | m_OverrideState: 1 36 | m_Value: {r: 0.5, g: 0.5, b: 0.5, a: 1} 37 | hdr: 0 38 | showAlpha: 1 39 | showEyeDropper: 1 40 | density: 41 | m_OverrideState: 1 42 | m_Value: 1 43 | min: 0 44 | max: 1 45 | mipFogMaxMip: 46 | m_OverrideState: 1 47 | m_Value: 0.5 48 | min: 0 49 | max: 1 50 | mipFogNear: 51 | m_OverrideState: 1 52 | m_Value: 0 53 | min: 0 54 | mipFogFar: 55 | m_OverrideState: 1 56 | m_Value: 1000 57 | min: 0 58 | fogDistance: 59 | m_OverrideState: 1 60 | m_Value: 200 61 | min: 0 62 | fogBaseHeight: 63 | m_OverrideState: 1 64 | m_Value: 0 65 | fogHeightAttenuation: 66 | m_OverrideState: 1 67 | m_Value: 0.2 68 | min: 0 69 | max: 1 70 | --- !u!114 &114667945870578830 71 | MonoBehaviour: 72 | m_ObjectHideFlags: 3 73 | m_CorrespondingSourceObject: {fileID: 0} 74 | m_PrefabInternal: {fileID: 0} 75 | m_GameObject: {fileID: 0} 76 | m_Enabled: 1 77 | m_EditorHideFlags: 0 78 | m_Script: {fileID: 11500000, guid: 59b6606ef2548734bb6d11b9d160bc7e, type: 3} 79 | m_Name: HDRISky 80 | m_EditorClassIdentifier: 81 | active: 1 82 | rotation: 83 | m_OverrideState: 1 84 | m_Value: 0 85 | min: 0 86 | max: 360 87 | exposure: 88 | m_OverrideState: 1 89 | m_Value: 0 90 | multiplier: 91 | m_OverrideState: 1 92 | m_Value: 1 93 | min: 0 94 | updateMode: 95 | m_OverrideState: 1 96 | m_Value: 0 97 | updatePeriod: 98 | m_OverrideState: 1 99 | m_Value: 0 100 | min: 0 101 | hdriSky: 102 | m_OverrideState: 1 103 | m_Value: {fileID: 8900000, guid: 69c675a6019dd2744a2a99046ac2a834, type: 3} 104 | --- !u!114 &114705602911658186 105 | MonoBehaviour: 106 | m_ObjectHideFlags: 0 107 | m_CorrespondingSourceObject: {fileID: 0} 108 | m_PrefabInternal: {fileID: 0} 109 | m_GameObject: {fileID: 0} 110 | m_Enabled: 1 111 | m_EditorHideFlags: 0 112 | m_Script: {fileID: 11500000, guid: 7ddcec8a8eb2d684d833ac8f5d26aebd, type: 3} 113 | m_Name: 114 | m_EditorClassIdentifier: 115 | active: 1 116 | maxShadowDistance: 117 | m_OverrideState: 1 118 | m_Value: 500 119 | min: 0 120 | cascadeShadowSplitCount: 121 | m_OverrideState: 1 122 | m_Value: 4 123 | min: 1 124 | max: 4 125 | cascadeShadowSplit0: 126 | m_OverrideState: 1 127 | m_Value: 0.05 128 | min: 0 129 | max: 1 130 | cascadeShadowSplit1: 131 | m_OverrideState: 1 132 | m_Value: 0.15 133 | min: 0 134 | max: 1 135 | cascadeShadowSplit2: 136 | m_OverrideState: 1 137 | m_Value: 0.3 138 | min: 0 139 | max: 1 140 | cascadeShadowBorder0: 141 | m_OverrideState: 1 142 | m_Value: 0 143 | min: 0 144 | cascadeShadowBorder1: 145 | m_OverrideState: 1 146 | m_Value: 0 147 | min: 0 148 | cascadeShadowBorder2: 149 | m_OverrideState: 1 150 | m_Value: 0 151 | min: 0 152 | cascadeShadowBorder3: 153 | m_OverrideState: 1 154 | m_Value: 0 155 | min: 0 156 | --- !u!114 &114906931140216502 157 | MonoBehaviour: 158 | m_ObjectHideFlags: 0 159 | m_CorrespondingSourceObject: {fileID: 0} 160 | m_PrefabInternal: {fileID: 0} 161 | m_GameObject: {fileID: 0} 162 | m_Enabled: 1 163 | m_EditorHideFlags: 0 164 | m_Script: {fileID: 11500000, guid: 0d7593b3a9277ac4696b20006c21dde2, type: 3} 165 | m_Name: 166 | m_EditorClassIdentifier: 167 | active: 1 168 | skyType: 169 | m_OverrideState: 1 170 | m_Value: 1 171 | fogType: 172 | m_OverrideState: 1 173 | m_Value: 2 174 | -------------------------------------------------------------------------------- /Assets/Scenes/ComputeShaderTerrain/Scene Settings Profile.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 56487c0f63b4a2a4fba1aedc629f6b97 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scenes/VoxelTerrainTest.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1b42c6e3c40ca47b2a8cab71e6b90305 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 22a92dda8b126ff4796f9e84ae1c8871 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scripts/DrawProceduralRenderer.cs: -------------------------------------------------------------------------------- 1 | using System.Linq; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using UnityEngine; 5 | using UnityEngine.Experimental.Rendering; 6 | using UnityEngine.Rendering; 7 | 8 | [ExecuteInEditMode, AddComponentMenu("Rendering/DrawProcedural")] 9 | public class DrawProceduralRenderer : MonoBehaviour 10 | { 11 | public Material terrainMaterial; 12 | 13 | List chunks = new List(); 14 | 15 | class ChunkRenderParams 16 | { 17 | public ComputeBuffer args; 18 | public MaterialPropertyBlock properties; 19 | public Bounds bounds; 20 | 21 | public ChunkRenderParams(ComputeBuffer args, MaterialPropertyBlock block, Bounds bounds) 22 | { 23 | this.args = args; 24 | this.properties = block; 25 | this.bounds = bounds; 26 | } 27 | } 28 | 29 | public void AddChunkToRender(ComputeBuffer args, MaterialPropertyBlock properties, Bounds bounds) 30 | { 31 | chunks.Add(new ChunkRenderParams(args, properties, bounds)); 32 | } 33 | 34 | public void ClearChunks() 35 | { 36 | chunks.Clear(); 37 | } 38 | 39 | public void Update() 40 | { 41 | foreach (var chunk in chunks) 42 | { 43 | Debug.Log("Draw chunk !"); 44 | Graphics.DrawProceduralIndirect(terrainMaterial, chunk.bounds, MeshTopology.Triangles, chunk.args, properties: chunk.properties); 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /Assets/Scripts/DrawProceduralRenderer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 40bd3759ea6a44053a18c61c4da11107 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/KernelIds.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | public class KernelIds 4 | { 5 | // Kernel names 6 | public static readonly string perlinNoise3DKernel = "PerlinNoise3D"; 7 | public static readonly string marchingCubeKernel = "MarchingCubes"; 8 | public static readonly string computeNormalKernel = "ComputeNormals"; 9 | public static readonly string copyMeshBuffers = "CopyMeshBuffers"; 10 | public static readonly string voxelIsoSurface = "VoxelIsoSurface"; 11 | 12 | // IsoSurface properties 13 | public static readonly int noiseTexture = Shader.PropertyToID("_NoiseTexture"); 14 | public static readonly int debugTexture = Shader.PropertyToID("_DebugOutput"); 15 | public static readonly int normalTexture = Shader.PropertyToID("_NormalTexture"); 16 | public static readonly int chunkPosition = Shader.PropertyToID("chunkPosition"); 17 | public static readonly int chunkSize = Shader.PropertyToID("chunkSize"); 18 | public static readonly int worldPosition = Shader.PropertyToID("worldPosition"); 19 | public static readonly int debugPoints = Shader.PropertyToID("debugPoints"); 20 | public static readonly int resolutionPerVoxel = Shader.PropertyToID("resolutionPerVoxel"); 21 | 22 | // Mesh buffers 23 | public static readonly int verticesId = Shader.PropertyToID("vertices"); 24 | public static readonly int trianglesId = Shader.PropertyToID("triangles"); 25 | public static readonly int normalsId = Shader.PropertyToID("normals"); 26 | 27 | // Noise parameters 28 | public static readonly int seed = Shader.PropertyToID("seed"); 29 | public static readonly int lacunarity = Shader.PropertyToID("lacunarity"); 30 | public static readonly int octaves = Shader.PropertyToID("octaves"); 31 | public static readonly int scale = Shader.PropertyToID("scale"); 32 | public static readonly int frequency = Shader.PropertyToID("frequency"); 33 | public static readonly int gain = Shader.PropertyToID("gain"); 34 | 35 | // Copy buffers parameters 36 | public static readonly int generatedVertices = Shader.PropertyToID("generatedVertices"); 37 | public static readonly int generatedNormals = Shader.PropertyToID("generatedNormals"); 38 | public static readonly int meshVertices = Shader.PropertyToID("meshVertices"); 39 | public static readonly int meshNormals = Shader.PropertyToID("meshNormals"); 40 | } 41 | 42 | public class ShaderIds 43 | { 44 | public static readonly int vertices = Shader.PropertyToID("vertices"); 45 | public static readonly int normals = Shader.PropertyToID("normals"); 46 | } -------------------------------------------------------------------------------- /Assets/Scripts/KernelIds.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4c4c3444e324e4c4299a78ea4cae9601 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/SimpleCameraController.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace UnityTemplateProjects 4 | { 5 | public class SimpleCameraController : MonoBehaviour 6 | { 7 | class CameraState 8 | { 9 | public float yaw; 10 | public float pitch; 11 | public float roll; 12 | public float x; 13 | public float y; 14 | public float z; 15 | 16 | public void SetFromTransform(Transform t) 17 | { 18 | pitch = t.eulerAngles.x; 19 | yaw = t.eulerAngles.y; 20 | roll = t.eulerAngles.z; 21 | x = t.position.x; 22 | y = t.position.y; 23 | z = t.position.z; 24 | } 25 | 26 | public void Translate(Vector3 translation) 27 | { 28 | Vector3 rotatedTranslation = Quaternion.Euler(pitch, yaw, roll) * translation; 29 | 30 | x += rotatedTranslation.x; 31 | y += rotatedTranslation.y; 32 | z += rotatedTranslation.z; 33 | } 34 | 35 | public void LerpTowards(CameraState target, float positionLerpPct, float rotationLerpPct) 36 | { 37 | yaw = Mathf.Lerp(yaw, target.yaw, rotationLerpPct); 38 | pitch = Mathf.Lerp(pitch, target.pitch, rotationLerpPct); 39 | roll = Mathf.Lerp(roll, target.roll, rotationLerpPct); 40 | 41 | x = Mathf.Lerp(x, target.x, positionLerpPct); 42 | y = Mathf.Lerp(y, target.y, positionLerpPct); 43 | z = Mathf.Lerp(z, target.z, positionLerpPct); 44 | } 45 | 46 | public void UpdateTransform(Transform t) 47 | { 48 | t.eulerAngles = new Vector3(pitch, yaw, roll); 49 | t.position = new Vector3(x, y, z); 50 | } 51 | } 52 | 53 | CameraState m_TargetCameraState = new CameraState(); 54 | CameraState m_InterpolatingCameraState = new CameraState(); 55 | 56 | [Header("Movement Settings")] 57 | [Tooltip("Exponential boost factor on translation, controllable by mouse wheel.")] 58 | public float boost = 3.5f; 59 | 60 | [Tooltip("Time it takes to interpolate camera position 99% of the way to the target."), Range(0.001f, 1f)] 61 | public float positionLerpTime = 0.2f; 62 | 63 | [Header("Rotation Settings")] 64 | [Tooltip("X = Change in mouse position.\nY = Multiplicative factor for camera rotation.")] 65 | public AnimationCurve mouseSensitivityCurve = new AnimationCurve(new Keyframe(0f, 0.5f, 0f, 5f), new Keyframe(1f, 2.5f, 0f, 0f)); 66 | 67 | [Tooltip("Time it takes to interpolate camera rotation 99% of the way to the target."), Range(0.001f, 1f)] 68 | public float rotationLerpTime = 0.01f; 69 | 70 | [Tooltip("Whether or not to invert our Y axis for mouse input to rotation.")] 71 | public bool invertY = false; 72 | 73 | void OnEnable() 74 | { 75 | m_TargetCameraState.SetFromTransform(transform); 76 | m_InterpolatingCameraState.SetFromTransform(transform); 77 | } 78 | 79 | Vector3 GetInputTranslationDirection() 80 | { 81 | Vector3 direction = new Vector3(); 82 | if (Input.GetKey(KeyCode.W)) 83 | { 84 | direction += Vector3.forward; 85 | } 86 | if (Input.GetKey(KeyCode.S)) 87 | { 88 | direction += Vector3.back; 89 | } 90 | if (Input.GetKey(KeyCode.A)) 91 | { 92 | direction += Vector3.left; 93 | } 94 | if (Input.GetKey(KeyCode.D)) 95 | { 96 | direction += Vector3.right; 97 | } 98 | if (Input.GetKey(KeyCode.Q)) 99 | { 100 | direction += Vector3.down; 101 | } 102 | if (Input.GetKey(KeyCode.E)) 103 | { 104 | direction += Vector3.up; 105 | } 106 | return direction; 107 | } 108 | 109 | void Update() 110 | { 111 | // Hide and lock cursor when right mouse button pressed 112 | if (Input.GetMouseButtonDown(1)) 113 | { 114 | Cursor.lockState = CursorLockMode.Locked; 115 | } 116 | 117 | // Unlock and show cursor when right mouse button released 118 | if (Input.GetMouseButtonUp(1)) 119 | { 120 | Cursor.visible = true; 121 | Cursor.lockState = CursorLockMode.None; 122 | } 123 | 124 | // Rotation 125 | if (Input.GetMouseButton(1)) 126 | { 127 | var mouseMovement = new Vector2(Input.GetAxis("Mouse X"), Input.GetAxis("Mouse Y") * (invertY ? 1 : -1)); 128 | 129 | var mouseSensitivityFactor = mouseSensitivityCurve.Evaluate(mouseMovement.magnitude); 130 | 131 | m_TargetCameraState.yaw += mouseMovement.x * mouseSensitivityFactor; 132 | m_TargetCameraState.pitch += mouseMovement.y * mouseSensitivityFactor; 133 | } 134 | 135 | // Translation 136 | var translation = GetInputTranslationDirection() * Time.deltaTime; 137 | 138 | // Speed up movement when shift key held 139 | if (Input.GetKey(KeyCode.LeftShift)) 140 | { 141 | translation *= 10.0f; 142 | } 143 | 144 | // Modify movement by a boost factor (defined in Inspector and modified in play mode through the mouse scroll wheel) 145 | boost += Input.mouseScrollDelta.y * 0.2f; 146 | translation *= Mathf.Pow(2.0f, boost); 147 | 148 | m_TargetCameraState.Translate(translation); 149 | 150 | // Framerate-independent interpolation 151 | // Calculate the lerp amount, such that we get 99% of the way to our target in the specified time 152 | var positionLerpPct = 1f - Mathf.Exp((Mathf.Log(1f - 0.99f) / positionLerpTime) * Time.deltaTime); 153 | var rotationLerpPct = 1f - Mathf.Exp((Mathf.Log(1f - 0.99f) / rotationLerpTime) * Time.deltaTime); 154 | m_InterpolatingCameraState.LerpTowards(m_TargetCameraState, positionLerpPct, rotationLerpPct); 155 | 156 | m_InterpolatingCameraState.UpdateTransform(transform); 157 | } 158 | } 159 | 160 | } -------------------------------------------------------------------------------- /Assets/Scripts/SimpleCameraController.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e8a636f62116c0a40bbfefdf876d4608 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/TerrainGenerator.cs.hlsl: -------------------------------------------------------------------------------- 1 | // 2 | // This file was automatically generated. Please don't edit by hand. 3 | // 4 | 5 | #ifndef TERRAINGENERATOR_CS_HLSL 6 | #define TERRAINGENERATOR_CS_HLSL 7 | // Generated from TerrainGenerator+DebugPoint 8 | // PackingRules = Exact 9 | struct DebugPoint 10 | { 11 | float4 position; 12 | float4 direction; 13 | }; 14 | 15 | // 16 | // Accessors for TerrainGenerator+DebugPoint 17 | // 18 | float4 GetPosition(DebugPoint value) 19 | { 20 | return value.position; 21 | } 22 | float4 GetDirection(DebugPoint value) 23 | { 24 | return value.direction; 25 | } 26 | 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /Assets/Scripts/TerrainGenerator.cs.hlsl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9f963092fe6607b488d48eaff6fa4d5c 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Scripts/TerrainGenerator.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 79142e17dfde05041b94a19ae809848b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/TerrainRenderer.cs: -------------------------------------------------------------------------------- 1 | using System.Linq; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using UnityEngine; 5 | using UnityEngine.Experimental.Rendering; 6 | using UnityEngine.Rendering; 7 | 8 | [ExecuteInEditMode, AddComponentMenu("Rendering/Terrain")] 9 | public class TerrainRenderer : MonoBehaviour 10 | { 11 | // Use drawProceduralIndirect is broken for now because custom SRPs (HDRP/LWRP) dont have injection points for custom geometry drawing 12 | #if false 13 | 14 | public Material terrainMaterial; 15 | 16 | List chunks = new List(); 17 | Dictionary commandBuffers = new Dictionary(); 18 | 19 | class ChunkRenderParams 20 | { 21 | public ComputeBuffer args; 22 | public MaterialPropertyBlock block; 23 | 24 | public ChunkRenderParams(ComputeBuffer args, MaterialPropertyBlock block) 25 | { 26 | this.args = args; 27 | this.block = block; 28 | } 29 | } 30 | 31 | void Cleanup() 32 | { 33 | foreach (var kp in commandBuffers) 34 | { 35 | if (kp.Key != null) 36 | kp.Key.RemoveCommandBuffer(CameraEvent.AfterSkybox, kp.Value); 37 | } 38 | commandBuffers.Clear(); 39 | } 40 | 41 | private void OnEnable() 42 | { 43 | Cleanup(); 44 | } 45 | 46 | private void OnDisable() 47 | { 48 | Cleanup(); 49 | } 50 | 51 | public void AddChunkToRender(ComputeBuffer args, ComputeBuffer vertices, ComputeBuffer normals) 52 | { 53 | MaterialPropertyBlock block = new MaterialPropertyBlock(); 54 | 55 | block.SetBuffer(ShaderIds.vertices, vertices); 56 | block.SetBuffer(ShaderIds.normals, normals); 57 | 58 | chunks.Add(new ChunkRenderParams(args, block)); 59 | } 60 | 61 | public void ClearChunks() 62 | { 63 | chunks.Clear(); 64 | } 65 | 66 | private void OnWillRenderObject() 67 | { 68 | var act = gameObject.activeInHierarchy && enabled; 69 | if (!act) 70 | { 71 | Cleanup(); 72 | return; 73 | } 74 | 75 | var cam = Camera.current; 76 | if (!cam) 77 | return; 78 | 79 | CommandBuffer cmd; 80 | 81 | if (!commandBuffers.TryGetValue(cam, out cmd)) 82 | { 83 | cmd = commandBuffers[cam] = new CommandBuffer(); 84 | cmd.name = "Terrain Renderer"; 85 | } 86 | 87 | cmd.Clear(); 88 | 89 | foreach (var chunk in chunks) 90 | { 91 | Debug.Log("draw buffer !"); 92 | cmd.DrawProceduralIndirect(Matrix4x4.identity, terrainMaterial, -1, MeshTopology.Triangles, chunk.args, 0, chunk.block); 93 | } 94 | 95 | cam.AddCommandBuffer(CameraEvent.BeforeLighting, cmd); 96 | } 97 | 98 | #else 99 | 100 | public Transform parent; 101 | public GameObject chunkPrefab; 102 | 103 | class MeshReadbackRequest 104 | { 105 | public AsyncGPUReadbackRequest verticesRequest; 106 | public AsyncGPUReadbackRequest normalsRequest; 107 | public Vector3 worldPosition; 108 | public int verticesCount; 109 | 110 | public bool IsDone() 111 | { 112 | return verticesRequest.done && normalsRequest.done; 113 | } 114 | 115 | public void Update() 116 | { 117 | verticesRequest.Update(); 118 | normalsRequest.Update(); 119 | } 120 | } 121 | 122 | List readBackMeshesRequests = new List(); 123 | List chunks = new List(); 124 | 125 | public void AddChunkToRender(ComputeBuffer vertices, ComputeBuffer normals, Vector3 worldPosition, int verticesCount) 126 | { 127 | MeshReadbackRequest req = new MeshReadbackRequest 128 | { 129 | verticesRequest = AsyncGPUReadback.Request(vertices), 130 | normalsRequest = AsyncGPUReadback.Request(normals), 131 | worldPosition = worldPosition, 132 | verticesCount = verticesCount, 133 | }; 134 | 135 | readBackMeshesRequests.Add(req); 136 | } 137 | 138 | public void ClearChunks() 139 | { 140 | foreach (Transform t in parent) 141 | DestroyImmediate(t.gameObject); 142 | } 143 | 144 | public void Update() 145 | { 146 | for (int i = 0; i < readBackMeshesRequests.Count; i++) 147 | { 148 | var req = readBackMeshesRequests[i]; 149 | 150 | if (req.IsDone()) 151 | { 152 | GenerateMesh(req); 153 | readBackMeshesRequests.Remove(req); 154 | i--; 155 | } 156 | 157 | req.Update(); 158 | } 159 | } 160 | 161 | void GenerateMesh(MeshReadbackRequest req) 162 | { 163 | var chunk = Instantiate(chunkPrefab, req.worldPosition, Quaternion.identity, parent); 164 | MeshFilter mf = chunk.GetComponent(); 165 | Vector3[] vertices = req.verticesRequest.GetData().Take(req.verticesCount).ToArray(); 166 | var mesh = new Mesh 167 | { 168 | vertices = vertices, 169 | normals = req.normalsRequest.GetData().Take(req.verticesCount).ToArray(), 170 | // Generate a dummy triangle indicies buffer because mesh 171 | triangles = Enumerable.Range(0, req.verticesCount).ToArray(), 172 | }; 173 | 174 | mf.sharedMesh = mesh; 175 | } 176 | 177 | #endif 178 | } 179 | -------------------------------------------------------------------------------- /Assets/Scripts/TerrainRenderer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 501df74760acbc144ac90030ee65094f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/VoxelTerrainGenerator.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using UnityEngine; 5 | using UnityEditor.Experimental.Rendering; 6 | using UnityEngine.Rendering; 7 | using System.Diagnostics; 8 | using System.Runtime.InteropServices; 9 | using UnityEngine.Experimental.Rendering; 10 | 11 | using Debug = UnityEngine.Debug; 12 | 13 | [ExecuteInEditMode] 14 | public class VoxelTerrainGenerator : MonoBehaviour 15 | { 16 | public const int MinDispatchSize = 8; 17 | 18 | [Header("Compute shaders")] 19 | public ComputeShader terrain3DNoiseShader; 20 | public ComputeShader isoSurfaceShader; 21 | 22 | [Space, Header("Chunk settings")] 23 | public int terrainChunkSize = 63; 24 | public int chunkLoadSize = 1; 25 | public int resolutionPerVoxel = 1; 26 | 27 | [Space, Header("Noise settings")] 28 | public float seed; 29 | public float scale = 1; 30 | // public float persistance = 1.2f; 31 | public float lacunarity = 2.0f; 32 | public int octaves = 3; 33 | public float gain = 1; 34 | public float frequency = 1; 35 | public Vector3 chunkPosition; 36 | 37 | [Space, Header("Terrain material")] 38 | public Material terrainMaterial; 39 | 40 | int noiseKernel; 41 | Vector3Int noiseKernelGroupSize; 42 | int marchingCubeKernel; 43 | Vector3Int marchingCubeKernelGroupSize; 44 | 45 | RenderTexture noiseTexture; 46 | 47 | ComputeBuffer verticesBuffer; 48 | ComputeBuffer normalsBuffer; 49 | ComputeBuffer trianglesBuffer; 50 | ComputeBuffer verticesCountReadbackBuffer; 51 | 52 | ComputeBuffer debugPointBuffer; 53 | 54 | new DrawProceduralRenderer renderer; 55 | 56 | [GenerateHLSL] 57 | public struct DebugPoint 58 | { 59 | public Vector4 position; // xyz: world position, w component is the density of the 3D noise 60 | public Vector4 direction; // xyz: object normal, w is unused 61 | } 62 | 63 | public void Start () 64 | { 65 | renderer = GetComponent< DrawProceduralRenderer >(); 66 | 67 | noiseKernel = FindKernel(terrain3DNoiseShader, KernelIds.perlinNoise3DKernel, out noiseKernelGroupSize); 68 | marchingCubeKernel = FindKernel(isoSurfaceShader, "VoxelIsoSurface", out marchingCubeKernelGroupSize); 69 | 70 | // We add 1 so we can generate seamless normals at the cost of chunkSize * chunkSize * 3 cells 71 | GenerateBuffers(terrainChunkSize + 1); 72 | BindBuffers(chunkPosition, terrainChunkSize + 1); 73 | 74 | foreach (var unused in GenerateStep()) 75 | ; 76 | } 77 | 78 | public IEnumerable GenerateStep() 79 | { 80 | renderer.ClearChunks(); 81 | 82 | int x = 0; 83 | // for (int x = -chunkLoadSize; x <= chunkLoadSize; x++) 84 | for (int z = -chunkLoadSize; z <= chunkLoadSize; z++) 85 | { 86 | Vector3 pos = chunkPosition + new Vector3(x, 0, z); 87 | BindBuffers(pos, terrainChunkSize + 1); 88 | GenerateTerrain(pos, terrainChunkSize + 1); 89 | yield return null; 90 | } 91 | } 92 | 93 | void GenerateBuffers(int chunkSize) 94 | { 95 | // Create the noise texture 96 | noiseTexture = new RenderTexture(chunkSize, chunkSize, 0, GraphicsFormat.R16_SFloat); 97 | noiseTexture.dimension = TextureDimension.Tex3D; 98 | noiseTexture.enableRandomWrite = true; 99 | noiseTexture.volumeDepth = chunkSize; 100 | noiseTexture.filterMode = FilterMode.Point; 101 | noiseTexture.wrapMode = TextureWrapMode.Clamp; 102 | noiseTexture.name = "Noise 3D Texture"; 103 | noiseTexture.Create(); 104 | 105 | // Create the computeBuffer that will store vertices and indices for draw procedural 106 | verticesBuffer = new ComputeBuffer(chunkSize * chunkSize * chunkSize * 15 * resolutionPerVoxel, sizeof(float) * 3, ComputeBufferType.Counter); 107 | // The maximum number of triangles is 5 times the number of voxel (with the marching cubes algorithm) 108 | trianglesBuffer = new ComputeBuffer(chunkSize * chunkSize * chunkSize * 5 * resolutionPerVoxel, sizeof(float) * 3, ComputeBufferType.Default); 109 | // A buffer to generate the triangle indicies and keep track of the number of triangles from compute shader 110 | verticesCountReadbackBuffer = new ComputeBuffer(1, sizeof(int), ComputeBufferType.Raw); 111 | // The normal buffer, set to the maximum of vertex 112 | normalsBuffer = new ComputeBuffer(chunkSize * chunkSize * chunkSize * 15 * resolutionPerVoxel, sizeof(float) * 3, ComputeBufferType.Default); 113 | } 114 | 115 | void BindBuffers(Vector3 worldPosition, int chunkSize) 116 | { 117 | // Bind noise kernel parameters: 118 | terrain3DNoiseShader.SetTexture(noiseKernel, KernelIds.noiseTexture, noiseTexture); 119 | terrain3DNoiseShader.SetVector(KernelIds.chunkPosition, worldPosition); 120 | terrain3DNoiseShader.SetVector(KernelIds.chunkSize, Vector4.one * chunkSize); 121 | terrain3DNoiseShader.SetFloat(KernelIds.seed, seed); 122 | terrain3DNoiseShader.SetFloat(KernelIds.lacunarity, lacunarity); 123 | terrain3DNoiseShader.SetInt(KernelIds.octaves, octaves); 124 | terrain3DNoiseShader.SetFloat(KernelIds.scale, scale); 125 | terrain3DNoiseShader.SetFloat(KernelIds.gain, gain); 126 | terrain3DNoiseShader.SetFloat(KernelIds.frequency, frequency); 127 | 128 | // Bind marching cubes parameters: 129 | isoSurfaceShader.SetTexture(marchingCubeKernel, KernelIds.noiseTexture, noiseTexture); 130 | isoSurfaceShader.SetBuffer(marchingCubeKernel, KernelIds.verticesId, verticesBuffer); 131 | isoSurfaceShader.SetBuffer(marchingCubeKernel, KernelIds.trianglesId, trianglesBuffer); 132 | isoSurfaceShader.SetBuffer(marchingCubeKernel, KernelIds.normalsId, normalsBuffer); 133 | isoSurfaceShader.SetVector(KernelIds.chunkSize, Vector4.one * chunkSize); 134 | isoSurfaceShader.SetVector(KernelIds.worldPosition, chunkPosition * chunkSize); 135 | isoSurfaceShader.SetInt(KernelIds.resolutionPerVoxel, resolutionPerVoxel); 136 | } 137 | 138 | int FindKernel(ComputeShader computeShader, string kernelName, out Vector3Int size) 139 | { 140 | int kernel = computeShader.FindKernel(kernelName); 141 | uint sizeX, sizeY, sizeZ; 142 | 143 | computeShader.GetKernelThreadGroupSizes(kernel, out sizeX, out sizeY, out sizeZ); 144 | size = new Vector3Int((int)sizeX, (int)sizeY, (int)sizeZ); 145 | 146 | return kernel; 147 | } 148 | 149 | public Dictionary< Vector3, Vector3[] > chunkNormals = new Dictionary(); 150 | public void GenerateTerrain(Vector3 worldPosition, int chunkSize) 151 | { 152 | Stopwatch sw = new Stopwatch(); 153 | int dispatchSize = (int)Mathf.Ceil((float)chunkSize / (float)MinDispatchSize); 154 | sw.Start(); 155 | 156 | verticesBuffer.SetCounterValue(0); 157 | 158 | // 3D noise generation 159 | terrain3DNoiseShader.Dispatch(noiseKernel, dispatchSize, dispatchSize, dispatchSize); 160 | 161 | // Isosurface generation 162 | isoSurfaceShader.Dispatch(marchingCubeKernel, dispatchSize * resolutionPerVoxel, dispatchSize * resolutionPerVoxel, dispatchSize * resolutionPerVoxel); 163 | 164 | ComputeBuffer.CopyCount(verticesBuffer, verticesCountReadbackBuffer, 0); 165 | 166 | // Vector3[] n = new Vector3[chunkSize * chunkSize * chunkSize]; 167 | // normalsBuffer.GetData(n); 168 | // chunkNormals[worldPosition] = n; 169 | 170 | // Get the vertices count back to the cpu 171 | int[] verticesCountBuffer = new int[1]; 172 | verticesCountReadbackBuffer.GetData(verticesCountBuffer); 173 | int verticesCount = verticesCountBuffer[0] * 3; 174 | 175 | MaterialPropertyBlock properties = new MaterialPropertyBlock(); 176 | 177 | // TODO 178 | // properties.SetBuffer(); 179 | 180 | renderer.ClearChunks(); 181 | renderer.AddChunkToRender(verticesBuffer, properties, new Bounds(chunkPosition, chunkSize * Vector3.one)); 182 | 183 | sw.Stop(); 184 | } 185 | 186 | public void Update() 187 | { 188 | #if UNITY_EDITOR 189 | if (UnityEditor.EditorApplication.isPlaying) 190 | { 191 | renderer.ClearChunks(); 192 | foreach (var unused in GenerateStep()) 193 | ; 194 | } 195 | #endif 196 | } 197 | 198 | private void OnDestroy() 199 | { 200 | Release(); 201 | } 202 | 203 | private void Release() 204 | { 205 | verticesCountReadbackBuffer?.Release(); 206 | verticesBuffer?.Release(); 207 | trianglesBuffer?.Release(); 208 | } 209 | } -------------------------------------------------------------------------------- /Assets/Scripts/VoxelTerrainGenerator.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 89e63bc57e91945f8842c714403f2f67 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/unsafe.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "unsafe", 3 | "references": [ 4 | "GUID:457756d89b35d2941b3e7b37b4ece6f1" 5 | ], 6 | "optionalUnityReferences": [], 7 | "includePlatforms": [], 8 | "excludePlatforms": [], 9 | "allowUnsafeCode": true, 10 | "overrideReferences": false, 11 | "precompiledReferences": [], 12 | "autoReferenced": true, 13 | "defineConstraints": [], 14 | "versionDefines": [] 15 | } -------------------------------------------------------------------------------- /Assets/Scripts/unsafe.asmdef.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b63eb607cbf19a7488ea2ab5e335f109 3 | AssemblyDefinitionImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Settings.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 006b6043041431d4d909ad5f958582cb 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Settings/HDRenderPipelineAsset.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_PrefabInternal: {fileID: 0} 8 | m_GameObject: {fileID: 0} 9 | m_Enabled: 1 10 | m_EditorHideFlags: 0 11 | m_Script: {fileID: 11500000, guid: 0cf1dab834d4ec34195b920ea7bbf9ec, type: 3} 12 | m_Name: HDRenderPipelineAsset 13 | m_EditorClassIdentifier: 14 | version: 1 15 | m_RenderPipelineResources: {fileID: 11400000, guid: 3ce144cff5783da45aa5d4fdc2da14b7, 16 | type: 2} 17 | m_FrameSettings: 18 | enableShadow: 1 19 | enableContactShadows: 1 20 | enableSSR: 1 21 | enableSSAO: 1 22 | enableSubsurfaceScattering: 1 23 | enableTransmission: 1 24 | enableAtmosphericScattering: 1 25 | enableVolumetrics: 1 26 | diffuseGlobalDimmer: 1 27 | specularGlobalDimmer: 1 28 | enableForwardRenderingOnly: 0 29 | enableDepthPrepassWithDeferredRendering: 0 30 | enableTransparentPrepass: 1 31 | enableMotionVectors: 1 32 | enableObjectMotionVectors: 1 33 | enableDBuffer: 1 34 | enableRoughRefraction: 1 35 | enableTransparentPostpass: 1 36 | enableDistortion: 1 37 | enablePostprocess: 1 38 | enableStereo: 1 39 | enableAsyncCompute: 0 40 | enableOpaqueObjects: 1 41 | enableTransparentObjects: 1 42 | enableMSAA: 0 43 | enableShadowMask: 0 44 | lightLoopSettings: 45 | enableTileAndCluster: 1 46 | enableComputeLightEvaluation: 1 47 | enableComputeLightVariants: 1 48 | enableComputeMaterialVariants: 1 49 | enableFptlForForwardOpaque: 1 50 | enableBigTilePrepass: 1 51 | isFptlEnabled: 1 52 | renderPipelineSettings: 53 | supportShadowMask: 1 54 | supportSSR: 1 55 | supportSSAO: 1 56 | supportSubsurfaceScattering: 1 57 | supportOnlyForward: 0 58 | increaseSssSampleCount: 0 59 | supportVolumetrics: 1 60 | increaseResolutionOfVolumetrics: 0 61 | supportRuntimeDebugDisplay: 1 62 | supportDitheringCrossFade: 1 63 | supportDBuffer: 1 64 | supportMSAA: 0 65 | msaaSampleCount: 1 66 | supportMotionVectors: 1 67 | supportStereo: 0 68 | lightLoopSettings: 69 | cookieSize: 128 70 | cookieTexArraySize: 16 71 | pointCookieSize: 512 72 | cubeCookieTexArraySize: 16 73 | planarReflectionProbeCacheSize: 2 74 | planarReflectionTextureSize: 128 75 | reflectionProbeCacheSize: 128 76 | reflectionCubemapSize: 128 77 | reflectionCacheCompressed: 0 78 | planarReflectionCacheCompressed: 0 79 | skyReflectionSize: 256 80 | skyLightingOverrideLayerMask: 81 | serializedVersion: 2 82 | m_Bits: 0 83 | shadowInitParams: 84 | shadowAtlasWidth: 4096 85 | shadowAtlasHeight: 4096 86 | maxPointLightShadows: 6 87 | maxSpotLightShadows: 12 88 | maxDirectionalLightShadows: 1 89 | decalSettings: 90 | drawDistance: 1000 91 | atlasWidth: 4096 92 | atlasHeight: 4096 93 | allowShaderVariantStripping: 1 94 | diffusionProfileSettings: {fileID: 11400000, guid: 26bdddf49760c61438938733f07fa2a2, 95 | type: 2} 96 | -------------------------------------------------------------------------------- /Assets/Settings/HDRenderPipelineAsset.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3927e36d6d8a64b4ebb7c2d46f265d28 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Settings/PostProcessVolumeProfile.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a913c2f8a8dfe934f97893479d5296dc 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Settings/SSSSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_PrefabParentObject: {fileID: 0} 7 | m_PrefabInternal: {fileID: 0} 8 | m_GameObject: {fileID: 0} 9 | m_Enabled: 1 10 | m_EditorHideFlags: 0 11 | m_Script: {fileID: 11500000, guid: b2686e09ec7aef44bad2843e4416f057, type: 3} 12 | m_Name: SSSSettings 13 | m_EditorClassIdentifier: 14 | useDisneySSS: 1 15 | profiles: 16 | - name: Skin 17 | scatteringDistance: {r: 0.7568628, g: 0.32156864, b: 0.20000002, a: 1} 18 | transmissionTint: {r: 0.75686276, g: 0.32156864, b: 0.2, a: 1} 19 | texturingMode: 0 20 | transmissionMode: 2 21 | thicknessRemap: {x: 0, y: 8.152544} 22 | worldScale: 1 23 | scatterDistance1: {r: 0.3, g: 0.3, b: 0.3, a: 0} 24 | scatterDistance2: {r: 0.5, g: 0.5, b: 0.5, a: 0} 25 | lerpWeight: 1 26 | - name: Foliage 27 | scatteringDistance: {r: 0.7568628, g: 0.7019608, b: 0.24313727, a: 1} 28 | transmissionTint: {r: 1, g: 1, b: 1, a: 1} 29 | texturingMode: 0 30 | transmissionMode: 1 31 | thicknessRemap: {x: 0, y: 0.2873168} 32 | worldScale: 1 33 | scatterDistance1: {r: 0.3, g: 0.3, b: 0.3, a: 0} 34 | scatterDistance2: {r: 0.5, g: 0.5, b: 0.5, a: 0} 35 | lerpWeight: 1 36 | - name: Profile 3 37 | scatteringDistance: {r: 0.5, g: 0.5, b: 0.5, a: 1} 38 | transmissionTint: {r: 1, g: 1, b: 1, a: 1} 39 | texturingMode: 0 40 | transmissionMode: 0 41 | thicknessRemap: {x: 0, y: 5} 42 | worldScale: 1 43 | scatterDistance1: {r: 0.3, g: 0.3, b: 0.3, a: 0} 44 | scatterDistance2: {r: 0.5, g: 0.5, b: 0.5, a: 0} 45 | lerpWeight: 1 46 | - name: Profile 4 47 | scatteringDistance: {r: 0.5, g: 0.5, b: 0.5, a: 1} 48 | transmissionTint: {r: 1, g: 1, b: 1, a: 1} 49 | texturingMode: 0 50 | transmissionMode: 0 51 | thicknessRemap: {x: 0, y: 5} 52 | worldScale: 1 53 | scatterDistance1: {r: 0.3, g: 0.3, b: 0.3, a: 0} 54 | scatterDistance2: {r: 0.5, g: 0.5, b: 0.5, a: 0} 55 | lerpWeight: 1 56 | - name: Profile 5 57 | scatteringDistance: {r: 0.5, g: 0.5, b: 0.5, a: 1} 58 | transmissionTint: {r: 1, g: 1, b: 1, a: 1} 59 | texturingMode: 0 60 | transmissionMode: 0 61 | thicknessRemap: {x: 0, y: 5} 62 | worldScale: 1 63 | scatterDistance1: {r: 0.3, g: 0.3, b: 0.3, a: 0} 64 | scatterDistance2: {r: 0.5, g: 0.5, b: 0.5, a: 0} 65 | lerpWeight: 1 66 | - name: Profile 6 67 | scatteringDistance: {r: 0.5, g: 0.5, b: 0.5, a: 1} 68 | transmissionTint: {r: 1, g: 1, b: 1, a: 1} 69 | texturingMode: 0 70 | transmissionMode: 0 71 | thicknessRemap: {x: 0, y: 5} 72 | worldScale: 1 73 | scatterDistance1: {r: 0.3, g: 0.3, b: 0.3, a: 0} 74 | scatterDistance2: {r: 0.5, g: 0.5, b: 0.5, a: 0} 75 | lerpWeight: 1 76 | - name: Profile 7 77 | scatteringDistance: {r: 0.5, g: 0.5, b: 0.5, a: 1} 78 | transmissionTint: {r: 1, g: 1, b: 1, a: 1} 79 | texturingMode: 0 80 | transmissionMode: 0 81 | thicknessRemap: {x: 0, y: 5} 82 | worldScale: 1 83 | scatterDistance1: {r: 0.3, g: 0.3, b: 0.3, a: 0} 84 | scatterDistance2: {r: 0.5, g: 0.5, b: 0.5, a: 0} 85 | lerpWeight: 1 86 | - name: Profile 8 87 | scatteringDistance: {r: 0.5, g: 0.5, b: 0.5, a: 1} 88 | transmissionTint: {r: 1, g: 1, b: 1, a: 1} 89 | texturingMode: 0 90 | transmissionMode: 0 91 | thicknessRemap: {x: 0, y: 5} 92 | worldScale: 1 93 | scatterDistance1: {r: 0.3, g: 0.3, b: 0.3, a: 0} 94 | scatterDistance2: {r: 0.5, g: 0.5, b: 0.5, a: 0} 95 | lerpWeight: 1 96 | - name: Profile 9 97 | scatteringDistance: {r: 0.5, g: 0.5, b: 0.5, a: 1} 98 | transmissionTint: {r: 1, g: 1, b: 1, a: 1} 99 | texturingMode: 0 100 | transmissionMode: 0 101 | thicknessRemap: {x: 0, y: 5} 102 | worldScale: 1 103 | scatterDistance1: {r: 0.3, g: 0.3, b: 0.3, a: 0} 104 | scatterDistance2: {r: 0.5, g: 0.5, b: 0.5, a: 0} 105 | lerpWeight: 1 106 | - name: Profile 10 107 | scatteringDistance: {r: 0.5, g: 0.5, b: 0.5, a: 1} 108 | transmissionTint: {r: 1, g: 1, b: 1, a: 1} 109 | texturingMode: 0 110 | transmissionMode: 0 111 | thicknessRemap: {x: 0, y: 5} 112 | worldScale: 1 113 | scatterDistance1: {r: 0.3, g: 0.3, b: 0.3, a: 0} 114 | scatterDistance2: {r: 0.5, g: 0.5, b: 0.5, a: 0} 115 | lerpWeight: 1 116 | - name: Profile 11 117 | scatteringDistance: {r: 0.5, g: 0.5, b: 0.5, a: 1} 118 | transmissionTint: {r: 1, g: 1, b: 1, a: 1} 119 | texturingMode: 0 120 | transmissionMode: 0 121 | thicknessRemap: {x: 0, y: 5} 122 | worldScale: 1 123 | scatterDistance1: {r: 0.3, g: 0.3, b: 0.3, a: 0} 124 | scatterDistance2: {r: 0.5, g: 0.5, b: 0.5, a: 0} 125 | lerpWeight: 1 126 | - name: Profile 12 127 | scatteringDistance: {r: 0.5, g: 0.5, b: 0.5, a: 1} 128 | transmissionTint: {r: 1, g: 1, b: 1, a: 1} 129 | texturingMode: 0 130 | transmissionMode: 0 131 | thicknessRemap: {x: 0, y: 5} 132 | worldScale: 1 133 | scatterDistance1: {r: 0.3, g: 0.3, b: 0.3, a: 0} 134 | scatterDistance2: {r: 0.5, g: 0.5, b: 0.5, a: 0} 135 | lerpWeight: 1 136 | - name: Profile 13 137 | scatteringDistance: {r: 0.5, g: 0.5, b: 0.5, a: 1} 138 | transmissionTint: {r: 1, g: 1, b: 1, a: 1} 139 | texturingMode: 0 140 | transmissionMode: 0 141 | thicknessRemap: {x: 0, y: 5} 142 | worldScale: 1 143 | scatterDistance1: {r: 0.3, g: 0.3, b: 0.3, a: 0} 144 | scatterDistance2: {r: 0.5, g: 0.5, b: 0.5, a: 0} 145 | lerpWeight: 1 146 | - name: Profile 14 147 | scatteringDistance: {r: 0.5, g: 0.5, b: 0.5, a: 1} 148 | transmissionTint: {r: 1, g: 1, b: 1, a: 1} 149 | texturingMode: 0 150 | transmissionMode: 0 151 | thicknessRemap: {x: 0, y: 5} 152 | worldScale: 1 153 | scatterDistance1: {r: 0.3, g: 0.3, b: 0.3, a: 0} 154 | scatterDistance2: {r: 0.5, g: 0.5, b: 0.5, a: 0} 155 | lerpWeight: 1 156 | - name: Profile 15 157 | scatteringDistance: {r: 0.5, g: 0.5, b: 0.5, a: 1} 158 | transmissionTint: {r: 1, g: 1, b: 1, a: 1} 159 | texturingMode: 0 160 | transmissionMode: 0 161 | thicknessRemap: {x: 0, y: 5} 162 | worldScale: 1 163 | scatterDistance1: {r: 0.3, g: 0.3, b: 0.3, a: 0} 164 | scatterDistance2: {r: 0.5, g: 0.5, b: 0.5, a: 0} 165 | lerpWeight: 1 166 | -------------------------------------------------------------------------------- /Assets/Settings/SSSSettings.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 26bdddf49760c61438938733f07fa2a2 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Settings/VolumeSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_PrefabParentObject: {fileID: 0} 7 | m_PrefabInternal: {fileID: 0} 8 | m_GameObject: {fileID: 0} 9 | m_Enabled: 1 10 | m_EditorHideFlags: 0 11 | m_Script: {fileID: 11500000, guid: d7fd9488000d3734a9e00ee676215985, type: 3} 12 | m_Name: VolumeSettings 13 | m_EditorClassIdentifier: 14 | components: 15 | - {fileID: 114527594671542966} 16 | - {fileID: 114339849572665496} 17 | - {fileID: 114914201461855468} 18 | - {fileID: 114698408567805600} 19 | --- !u!114 &114339849572665496 20 | MonoBehaviour: 21 | m_ObjectHideFlags: 0 22 | m_PrefabParentObject: {fileID: 0} 23 | m_PrefabInternal: {fileID: 0} 24 | m_GameObject: {fileID: 0} 25 | m_Enabled: 1 26 | m_EditorHideFlags: 0 27 | m_Script: {fileID: 11500000, guid: 0d7593b3a9277ac4696b20006c21dde2, type: 3} 28 | m_Name: 29 | m_EditorClassIdentifier: 30 | active: 1 31 | skyType: 32 | m_OverrideState: 1 33 | m_Value: 2 34 | fogType: 35 | m_OverrideState: 1 36 | m_Value: 2 37 | --- !u!114 &114527594671542966 38 | MonoBehaviour: 39 | m_ObjectHideFlags: 0 40 | m_PrefabParentObject: {fileID: 0} 41 | m_PrefabInternal: {fileID: 0} 42 | m_GameObject: {fileID: 0} 43 | m_Enabled: 1 44 | m_EditorHideFlags: 0 45 | m_Script: {fileID: 11500000, guid: 7ddcec8a8eb2d684d833ac8f5d26aebd, type: 3} 46 | m_Name: 47 | m_EditorClassIdentifier: 48 | active: 1 49 | maxShadowDistance: 50 | m_OverrideState: 1 51 | m_Value: 700 52 | min: 0 53 | cascadeShadowSplitCount: 54 | m_OverrideState: 1 55 | m_Value: 4 56 | min: 1 57 | max: 4 58 | cascadeShadowSplit0: 59 | m_OverrideState: 1 60 | m_Value: 0.005 61 | min: 0 62 | max: 1 63 | cascadeShadowSplit1: 64 | m_OverrideState: 1 65 | m_Value: 0.015 66 | min: 0 67 | max: 1 68 | cascadeShadowSplit2: 69 | m_OverrideState: 1 70 | m_Value: 0.3 71 | min: 0 72 | max: 1 73 | cascadeShadowBorder0: 74 | m_OverrideState: 1 75 | m_Value: 0 76 | min: 0 77 | cascadeShadowBorder1: 78 | m_OverrideState: 1 79 | m_Value: 0 80 | min: 0 81 | cascadeShadowBorder2: 82 | m_OverrideState: 1 83 | m_Value: 0 84 | min: 0 85 | cascadeShadowBorder3: 86 | m_OverrideState: 1 87 | m_Value: 0 88 | min: 0 89 | --- !u!114 &114698408567805600 90 | MonoBehaviour: 91 | m_ObjectHideFlags: 0 92 | m_PrefabParentObject: {fileID: 0} 93 | m_PrefabInternal: {fileID: 0} 94 | m_GameObject: {fileID: 0} 95 | m_Enabled: 1 96 | m_EditorHideFlags: 0 97 | m_Script: {fileID: 11500000, guid: 2150ee00179b2f4418ea8b21a7e98eea, type: 3} 98 | m_Name: 99 | m_EditorClassIdentifier: 100 | active: 1 101 | colorMode: 102 | m_OverrideState: 1 103 | m_Value: 1 104 | color: 105 | m_OverrideState: 1 106 | m_Value: {r: 0.5, g: 0.5, b: 0.5, a: 1} 107 | hdr: 0 108 | showAlpha: 1 109 | showEyeDropper: 1 110 | density: 111 | m_OverrideState: 1 112 | m_Value: 1 113 | min: 0 114 | max: 1 115 | mipFogMaxMip: 116 | m_OverrideState: 1 117 | m_Value: 0.5 118 | min: 0 119 | max: 1 120 | mipFogNear: 121 | m_OverrideState: 1 122 | m_Value: 0 123 | min: 0 124 | mipFogFar: 125 | m_OverrideState: 1 126 | m_Value: 1000 127 | min: 0 128 | fogDistance: 129 | m_OverrideState: 1 130 | m_Value: 200 131 | min: 0 132 | fogBaseHeight: 133 | m_OverrideState: 1 134 | m_Value: 0 135 | fogHeightAttenuation: 136 | m_OverrideState: 1 137 | m_Value: 0.2 138 | min: 0 139 | max: 1 140 | --- !u!114 &114914201461855468 141 | MonoBehaviour: 142 | m_ObjectHideFlags: 0 143 | m_PrefabParentObject: {fileID: 0} 144 | m_PrefabInternal: {fileID: 0} 145 | m_GameObject: {fileID: 0} 146 | m_Enabled: 1 147 | m_EditorHideFlags: 0 148 | m_Script: {fileID: 11500000, guid: 3df29e7cc05fbec4aa43e06ea875565d, type: 3} 149 | m_Name: 150 | m_EditorClassIdentifier: 151 | active: 1 152 | rotation: 153 | m_OverrideState: 1 154 | m_Value: 0 155 | min: 0 156 | max: 360 157 | exposure: 158 | m_OverrideState: 1 159 | m_Value: 1.25 160 | multiplier: 161 | m_OverrideState: 1 162 | m_Value: 1 163 | min: 0 164 | updateMode: 165 | m_OverrideState: 1 166 | m_Value: 0 167 | updatePeriod: 168 | m_OverrideState: 1 169 | m_Value: 0 170 | min: 0 171 | sunSize: 172 | m_OverrideState: 1 173 | m_Value: 0.04 174 | min: 0 175 | max: 1 176 | sunSizeConvergence: 177 | m_OverrideState: 1 178 | m_Value: 5 179 | min: 1 180 | max: 10 181 | atmosphereThickness: 182 | m_OverrideState: 1 183 | m_Value: 0.5 184 | min: 0 185 | max: 5 186 | skyTint: 187 | m_OverrideState: 1 188 | m_Value: {r: 1, g: 1, b: 1, a: 1} 189 | hdr: 0 190 | showAlpha: 1 191 | showEyeDropper: 1 192 | groundColor: 193 | m_OverrideState: 1 194 | m_Value: {r: 0.59927905, g: 0.6172068, b: 0.6320754, a: 1} 195 | hdr: 0 196 | showAlpha: 1 197 | showEyeDropper: 1 198 | enableSunDisk: 199 | m_OverrideState: 1 200 | m_Value: 1 201 | -------------------------------------------------------------------------------- /Assets/Settings/VolumeSettings.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dab0766de4a4b5349b80ce1a86555414 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Settings/VolumeSettings_Baking.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_PrefabParentObject: {fileID: 0} 7 | m_PrefabInternal: {fileID: 0} 8 | m_GameObject: {fileID: 0} 9 | m_Enabled: 1 10 | m_EditorHideFlags: 0 11 | m_Script: {fileID: 11500000, guid: d7fd9488000d3734a9e00ee676215985, type: 3} 12 | m_Name: VolumeSettings_Baking 13 | m_EditorClassIdentifier: 14 | components: 15 | - {fileID: 114527594671542966} 16 | - {fileID: 114339849572665496} 17 | - {fileID: 114914201461855468} 18 | - {fileID: 114698408567805600} 19 | --- !u!114 &114339849572665496 20 | MonoBehaviour: 21 | m_ObjectHideFlags: 0 22 | m_PrefabParentObject: {fileID: 0} 23 | m_PrefabInternal: {fileID: 0} 24 | m_GameObject: {fileID: 0} 25 | m_Enabled: 1 26 | m_EditorHideFlags: 0 27 | m_Script: {fileID: 11500000, guid: 0d7593b3a9277ac4696b20006c21dde2, type: 3} 28 | m_Name: 29 | m_EditorClassIdentifier: 30 | active: 1 31 | skyType: 32 | m_OverrideState: 1 33 | m_Value: 2 34 | fogType: 35 | m_OverrideState: 1 36 | m_Value: 2 37 | --- !u!114 &114527594671542966 38 | MonoBehaviour: 39 | m_ObjectHideFlags: 0 40 | m_PrefabParentObject: {fileID: 0} 41 | m_PrefabInternal: {fileID: 0} 42 | m_GameObject: {fileID: 0} 43 | m_Enabled: 1 44 | m_EditorHideFlags: 0 45 | m_Script: {fileID: 11500000, guid: 7ddcec8a8eb2d684d833ac8f5d26aebd, type: 3} 46 | m_Name: 47 | m_EditorClassIdentifier: 48 | active: 1 49 | maxShadowDistance: 50 | m_OverrideState: 1 51 | m_Value: 700 52 | min: 0 53 | cascadeShadowSplitCount: 54 | m_OverrideState: 1 55 | m_Value: 4 56 | min: 1 57 | max: 4 58 | cascadeShadowSplit0: 59 | m_OverrideState: 1 60 | m_Value: 0.005 61 | min: 0 62 | max: 1 63 | cascadeShadowSplit1: 64 | m_OverrideState: 1 65 | m_Value: 0.015 66 | min: 0 67 | max: 1 68 | cascadeShadowSplit2: 69 | m_OverrideState: 1 70 | m_Value: 0.3 71 | min: 0 72 | max: 1 73 | cascadeShadowBorder0: 74 | m_OverrideState: 1 75 | m_Value: 0 76 | min: 0 77 | cascadeShadowBorder1: 78 | m_OverrideState: 1 79 | m_Value: 0 80 | min: 0 81 | cascadeShadowBorder2: 82 | m_OverrideState: 1 83 | m_Value: 0 84 | min: 0 85 | cascadeShadowBorder3: 86 | m_OverrideState: 1 87 | m_Value: 0 88 | min: 0 89 | --- !u!114 &114698408567805600 90 | MonoBehaviour: 91 | m_ObjectHideFlags: 0 92 | m_PrefabParentObject: {fileID: 0} 93 | m_PrefabInternal: {fileID: 0} 94 | m_GameObject: {fileID: 0} 95 | m_Enabled: 1 96 | m_EditorHideFlags: 0 97 | m_Script: {fileID: 11500000, guid: 2150ee00179b2f4418ea8b21a7e98eea, type: 3} 98 | m_Name: 99 | m_EditorClassIdentifier: 100 | active: 1 101 | colorMode: 102 | m_OverrideState: 1 103 | m_Value: 1 104 | color: 105 | m_OverrideState: 1 106 | m_Value: {r: 0.5, g: 0.5, b: 0.5, a: 1} 107 | hdr: 0 108 | showAlpha: 1 109 | showEyeDropper: 1 110 | density: 111 | m_OverrideState: 1 112 | m_Value: 1 113 | min: 0 114 | max: 1 115 | mipFogMaxMip: 116 | m_OverrideState: 1 117 | m_Value: 0.5 118 | min: 0 119 | max: 1 120 | mipFogNear: 121 | m_OverrideState: 1 122 | m_Value: 0 123 | min: 0 124 | mipFogFar: 125 | m_OverrideState: 1 126 | m_Value: 1000 127 | min: 0 128 | fogDistance: 129 | m_OverrideState: 1 130 | m_Value: 200 131 | min: 0 132 | fogBaseHeight: 133 | m_OverrideState: 1 134 | m_Value: 0 135 | fogHeightAttenuation: 136 | m_OverrideState: 1 137 | m_Value: 0.2 138 | min: 0 139 | max: 1 140 | --- !u!114 &114914201461855468 141 | MonoBehaviour: 142 | m_ObjectHideFlags: 0 143 | m_PrefabParentObject: {fileID: 0} 144 | m_PrefabInternal: {fileID: 0} 145 | m_GameObject: {fileID: 0} 146 | m_Enabled: 1 147 | m_EditorHideFlags: 0 148 | m_Script: {fileID: 11500000, guid: 3df29e7cc05fbec4aa43e06ea875565d, type: 3} 149 | m_Name: 150 | m_EditorClassIdentifier: 151 | active: 1 152 | rotation: 153 | m_OverrideState: 1 154 | m_Value: 0 155 | min: 0 156 | max: 360 157 | exposure: 158 | m_OverrideState: 1 159 | m_Value: 1.25 160 | multiplier: 161 | m_OverrideState: 1 162 | m_Value: 1 163 | min: 0 164 | updateMode: 165 | m_OverrideState: 1 166 | m_Value: 0 167 | updatePeriod: 168 | m_OverrideState: 1 169 | m_Value: 0 170 | min: 0 171 | sunSize: 172 | m_OverrideState: 1 173 | m_Value: 0.04 174 | min: 0 175 | max: 1 176 | sunSizeConvergence: 177 | m_OverrideState: 1 178 | m_Value: 5 179 | min: 1 180 | max: 10 181 | atmosphereThickness: 182 | m_OverrideState: 1 183 | m_Value: 0.5 184 | min: 0 185 | max: 5 186 | skyTint: 187 | m_OverrideState: 1 188 | m_Value: {r: 1, g: 1, b: 1, a: 1} 189 | hdr: 0 190 | showAlpha: 1 191 | showEyeDropper: 1 192 | groundColor: 193 | m_OverrideState: 1 194 | m_Value: {r: 0.59927905, g: 0.6172068, b: 0.6320754, a: 1} 195 | hdr: 0 196 | showAlpha: 1 197 | showEyeDropper: 1 198 | enableSunDisk: 199 | m_OverrideState: 1 200 | m_Value: 0 201 | -------------------------------------------------------------------------------- /Assets/Settings/VolumeSettings_Baking.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 112daeb737097bd42b9690c053885531 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Shaders.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 690b6518fe4590449b8a8dd9e11f85ea 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Shaders/3DNoiseVisualizator.shader: -------------------------------------------------------------------------------- 1 | Shader "Unlit/3DNoiseVisualizator" 2 | { 3 | Properties 4 | { 5 | [HideInInspector] 6 | _NoiseTex ("Noise", 3D) = "white" {} 7 | _Slice ("Slice", Range(0, 1)) = 0 8 | } 9 | SubShader 10 | { 11 | Tags { "RenderType"="Opaque" } 12 | LOD 100 13 | 14 | Pass 15 | { 16 | CGPROGRAM 17 | #pragma vertex vert 18 | #pragma fragment frag 19 | // make fog work 20 | #pragma multi_compile_fog 21 | 22 | #include "UnityCG.cginc" 23 | 24 | struct appdata 25 | { 26 | float4 vertex : POSITION; 27 | float2 uv : TEXCOORD0; 28 | }; 29 | 30 | struct v2f 31 | { 32 | float2 uv : TEXCOORD0; 33 | float4 vertex : SV_POSITION; 34 | }; 35 | 36 | sampler3D _NoiseTex; 37 | float4 _NoiseTex_ST; 38 | float _Slice; 39 | 40 | v2f vert (appdata v) 41 | { 42 | v2f o; 43 | o.vertex = UnityObjectToClipPos(v.vertex); 44 | o.uv = TRANSFORM_TEX(v.uv, _NoiseTex); 45 | return o; 46 | } 47 | 48 | fixed4 frag (v2f i) : SV_Target 49 | { 50 | fixed4 col = tex3D(_NoiseTex, float3(i.uv, _Slice)); 51 | return col; 52 | } 53 | ENDCG 54 | } 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /Assets/Shaders/3DNoiseVisualizator.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 07d4ebdce7e16684ca61979bfe2afa78 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Shaders/DebugPointShader.shader: -------------------------------------------------------------------------------- 1 | Shader "Unlit/DebugPointShader" 2 | { 3 | Properties 4 | { 5 | _Color("Color", Color) = (0,1,0,1) 6 | _MainTex ("Texture", 2D) = "white" {} 7 | } 8 | 9 | HLSLINCLUDE 10 | 11 | #pragma vertex Vert 12 | #pragma fragment Frag 13 | 14 | float4 _Color; 15 | 16 | ENDHLSL 17 | 18 | SubShader 19 | { 20 | Tags { "RenderType"="Opaque" } 21 | LOD 100 22 | 23 | Pass 24 | { 25 | Name "Forward Unlit" 26 | Tags { "LightMode" = "ForwardOnly" } 27 | 28 | Blend [_SrcBlend] [_DstBlend] 29 | ZWrite [_ZWrite] 30 | Cull Back 31 | 32 | HLSLPROGRAM 33 | 34 | #define SHADERPASS SHADERPASS_FORWARD_UNLIT 35 | #include "TerrainGenerator.cs.hlsl" 36 | #include "CoreRP/ShaderLibrary/Common.hlsl" 37 | #include "HDRP/ShaderVariables.hlsl" 38 | #include "HDRP/Material/Material.hlsl" 39 | 40 | StructuredBuffer debugPoints; 41 | 42 | struct VertInput 43 | { 44 | uint vertexId : SV_VertexID; 45 | }; 46 | 47 | struct VertToFrag 48 | { 49 | float4 positionCS : SV_Position; 50 | float3 normalWS : TEXCOORD1; 51 | }; 52 | 53 | VertToFrag Vert(VertInput input) 54 | { 55 | VertToFrag output; 56 | 57 | float3 positionOS = debugPoints[input.vertexId].position.xyz; 58 | float3 normalOS = debugPoints[input.vertexId].direction.xyz; 59 | float3 positionRWS = TransformObjectToWorld(positionOS); 60 | output.positionCS = TransformWorldToHClip(positionRWS); 61 | output.normalWS = TransformObjectToWorldNormal(normalOS); 62 | 63 | return output; 64 | } 65 | 66 | float4 Frag(VertToFrag input, float facing : VFACE) : SV_Target 67 | { 68 | float3 normal = input.normalWS; 69 | return float4(_Color.rgb * max(0.1, dot(float3(0.5, facing, 0), normal)), 1); 70 | } 71 | 72 | ENDHLSL 73 | } 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /Assets/Shaders/DebugPointShader.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2ae025180bc45264baa8aca2aef4275c 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Shaders/TerrainShader.shader: -------------------------------------------------------------------------------- 1 | Shader "Custom/Terrain" 2 | { 3 | Properties 4 | { 5 | // Be careful, do not change the name here to _Color. It will conflict with the "fake" parameters (see end of properties) required for GI. 6 | _Color("Color", Color) = (0,1,0,1) 7 | 8 | // Blending state 9 | [HideInInspector] _SrcBlend("__src", Float) = 1.0 10 | [HideInInspector] _DstBlend("__dst", Float) = 0.0 11 | [HideInInspector] _ZWrite("__zw", Float) = 1.0 12 | [HideInInspector] _CullMode("__cullmode", Float) = 2.0 13 | } 14 | 15 | HLSLINCLUDE 16 | 17 | #pragma target 4.5 18 | #pragma only_renderers d3d11 ps4 xboxone vulkan metal switch 19 | 20 | //------------------------------------------------------------------------------------- 21 | // Define 22 | //------------------------------------------------------------------------------------- 23 | #define UNITY_MATERIAL_UNLIT // Need to be define before including Material.hlsl 24 | 25 | //------------------------------------------------------------------------------------- 26 | // Include 27 | //------------------------------------------------------------------------------------- 28 | 29 | #include "CoreRP/ShaderLibrary/Common.hlsl" 30 | #include "HDRP/ShaderVariables.hlsl" 31 | 32 | //------------------------------------------------------------------------------------- 33 | // variable declaration 34 | //------------------------------------------------------------------------------------- 35 | 36 | float4 _Color; 37 | 38 | #pragma vertex Vert 39 | #pragma fragment Frag 40 | 41 | ENDHLSL 42 | 43 | SubShader 44 | { 45 | // This tags allow to use the shader replacement features 46 | Tags{ "RenderPipeline" = "HDRenderPipeline" "RenderType" = "HDUnlitShader" } 47 | 48 | // Unlit shader always render in forward 49 | Pass 50 | { 51 | Name "Forward Unlit" 52 | Tags { "LightMode" = "ForwardOnly" } 53 | 54 | Blend [_SrcBlend] [_DstBlend] 55 | ZWrite [_ZWrite] 56 | Cull Back 57 | 58 | HLSLPROGRAM 59 | 60 | #define SHADERPASS SHADERPASS_FORWARD_UNLIT 61 | #include "HDRP/Material/Material.hlsl" 62 | 63 | StructuredBuffer vertices; 64 | StructuredBuffer normals; 65 | 66 | struct VertInput 67 | { 68 | uint vertexId : SV_VertexID; 69 | }; 70 | 71 | struct VertToFrag 72 | { 73 | float4 positionCS : SV_Position; 74 | float3 normalWS : TEXCOORD1; 75 | }; 76 | 77 | VertToFrag Vert(VertInput input) 78 | { 79 | VertToFrag output; 80 | 81 | float3 positionOS = vertices[input.vertexId]; 82 | float3 normalOS = normals[input.vertexId]; 83 | float3 positionRWS = TransformObjectToWorld(positionOS); 84 | output.positionCS = TransformWorldToHClip(positionRWS); 85 | output.normalWS = TransformObjectToWorldNormal(normalOS); 86 | 87 | return output; 88 | } 89 | 90 | float4 Frag(VertToFrag input, float facing : VFACE) : SV_Target 91 | { 92 | float3 normal = input.normalWS; 93 | return float4(_Color.rgb * max(0.1, dot(float3(0.5, facing, 0), normal)), 1); 94 | } 95 | 96 | ENDHLSL 97 | } 98 | } 99 | } 100 | -------------------------------------------------------------------------------- /Assets/Shaders/TerrainShader.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c89124f602110b24282fff82e7ed7031 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Textures.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e694f4c01faabf84ba3a13d048e76d1c 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Textures/Grass.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6e7507abcf6bf4d479e2d85030c754c9 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Textures/Grass/TexturesCom_Farmland0002_1_seamless_S.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alelievr/ProceduralTerrainGPU/d4cfa579ef0e00ffee76db38a9996e1773ba1633/Assets/Textures/Grass/TexturesCom_Farmland0002_1_seamless_S.jpg -------------------------------------------------------------------------------- /Assets/Textures/Grass/TexturesCom_Farmland0002_1_seamless_S.jpg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e2153b8b57dd4aa49836406f8da8c79a 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 6 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: 4 36 | mipBias: -1 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: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 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 | - serializedVersion: 2 73 | buildTarget: Standalone 74 | maxTextureSize: 8192 75 | resizeAlgorithm: 0 76 | textureFormat: -1 77 | textureCompression: 1 78 | compressionQuality: 50 79 | crunchedCompression: 0 80 | allowsAlphaSplitting: 0 81 | overridden: 0 82 | androidETC2FallbackOverride: 0 83 | - serializedVersion: 2 84 | buildTarget: iPhone 85 | maxTextureSize: 8192 86 | resizeAlgorithm: 0 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | androidETC2FallbackOverride: 0 94 | - serializedVersion: 2 95 | buildTarget: Android 96 | maxTextureSize: 8192 97 | resizeAlgorithm: 0 98 | textureFormat: -1 99 | textureCompression: 1 100 | compressionQuality: 50 101 | crunchedCompression: 0 102 | allowsAlphaSplitting: 0 103 | overridden: 0 104 | androidETC2FallbackOverride: 0 105 | - serializedVersion: 2 106 | buildTarget: Windows Store Apps 107 | maxTextureSize: 8192 108 | resizeAlgorithm: 0 109 | textureFormat: -1 110 | textureCompression: 1 111 | compressionQuality: 50 112 | crunchedCompression: 0 113 | allowsAlphaSplitting: 0 114 | overridden: 0 115 | androidETC2FallbackOverride: 0 116 | spriteSheet: 117 | serializedVersion: 2 118 | sprites: [] 119 | outline: [] 120 | physicsShape: [] 121 | bones: [] 122 | spriteID: 123 | vertices: [] 124 | indices: 125 | edges: [] 126 | weights: [] 127 | spritePackingTag: 128 | userData: 129 | assetBundleName: 130 | assetBundleVariant: 131 | -------------------------------------------------------------------------------- /Assets/Textures/Grass/TexturesCom_RockGrassy0142_2_seamless_S.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alelievr/ProceduralTerrainGPU/d4cfa579ef0e00ffee76db38a9996e1773ba1633/Assets/Textures/Grass/TexturesCom_RockGrassy0142_2_seamless_S.jpg -------------------------------------------------------------------------------- /Assets/Textures/Grass/TexturesCom_RockGrassy0142_2_seamless_S.jpg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b4adcb9dbeb486c45a94e096274de648 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 6 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: 4 36 | mipBias: -1 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: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 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 | - serializedVersion: 2 73 | buildTarget: Standalone 74 | maxTextureSize: 8192 75 | resizeAlgorithm: 0 76 | textureFormat: -1 77 | textureCompression: 1 78 | compressionQuality: 50 79 | crunchedCompression: 0 80 | allowsAlphaSplitting: 0 81 | overridden: 0 82 | androidETC2FallbackOverride: 0 83 | - serializedVersion: 2 84 | buildTarget: iPhone 85 | maxTextureSize: 8192 86 | resizeAlgorithm: 0 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | androidETC2FallbackOverride: 0 94 | - serializedVersion: 2 95 | buildTarget: Android 96 | maxTextureSize: 8192 97 | resizeAlgorithm: 0 98 | textureFormat: -1 99 | textureCompression: 1 100 | compressionQuality: 50 101 | crunchedCompression: 0 102 | allowsAlphaSplitting: 0 103 | overridden: 0 104 | androidETC2FallbackOverride: 0 105 | - serializedVersion: 2 106 | buildTarget: Windows Store Apps 107 | maxTextureSize: 8192 108 | resizeAlgorithm: 0 109 | textureFormat: -1 110 | textureCompression: 1 111 | compressionQuality: 50 112 | crunchedCompression: 0 113 | allowsAlphaSplitting: 0 114 | overridden: 0 115 | androidETC2FallbackOverride: 0 116 | spriteSheet: 117 | serializedVersion: 2 118 | sprites: [] 119 | outline: [] 120 | physicsShape: [] 121 | bones: [] 122 | spriteID: 123 | vertices: [] 124 | indices: 125 | edges: [] 126 | weights: [] 127 | spritePackingTag: 128 | userData: 129 | assetBundleName: 130 | assetBundleVariant: 131 | -------------------------------------------------------------------------------- /Assets/Textures/HDRI.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 12d14df8e6a6c6b4aa5d2f0c9cffbcd4 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Textures/HDRI/GravelPlaza_8k.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alelievr/ProceduralTerrainGPU/d4cfa579ef0e00ffee76db38a9996e1773ba1633/Assets/Textures/HDRI/GravelPlaza_8k.jpg -------------------------------------------------------------------------------- /Assets/Textures/HDRI/GravelPlaza_8k.jpg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 00bbe3c926da39041b7e7fda5870283a 3 | TextureImporter: 4 | fileIDToRecycleName: 5 | 8900000: generatedCubemap 6 | externalObjects: {} 7 | serializedVersion: 6 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapsPreserveCoverage: 0 16 | alphaTestReferenceValue: 0.5 17 | mipMapFadeDistanceStart: 1 18 | mipMapFadeDistanceEnd: 3 19 | bumpmap: 20 | convertToNormalMap: 0 21 | externalNormalMap: 0 22 | heightScale: 0.25 23 | normalMapFilter: 0 24 | isReadable: 0 25 | streamingMipmaps: 0 26 | streamingMipmapsPriority: 0 27 | grayScaleToAlpha: 0 28 | generateCubemap: 6 29 | cubemapConvolution: 0 30 | seamlessCubemap: 0 31 | textureFormat: 1 32 | maxTextureSize: 2048 33 | textureSettings: 34 | serializedVersion: 2 35 | filterMode: -1 36 | aniso: 4 37 | mipBias: -1 38 | wrapU: -1 39 | wrapV: -1 40 | wrapW: -1 41 | nPOTScale: 1 42 | lightmap: 0 43 | compressionQuality: 50 44 | spriteMode: 0 45 | spriteExtrude: 1 46 | spriteMeshType: 1 47 | alignment: 0 48 | spritePivot: {x: 0.5, y: 0.5} 49 | spritePixelsToUnits: 100 50 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 51 | spriteGenerateFallbackPhysicsShape: 1 52 | alphaUsage: 1 53 | alphaIsTransparency: 0 54 | spriteTessellationDetail: -1 55 | textureType: 0 56 | textureShape: 2 57 | singleChannelComponent: 0 58 | maxTextureSizeSet: 0 59 | compressionQualitySet: 0 60 | textureFormatSet: 0 61 | platformSettings: 62 | - serializedVersion: 2 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 8192 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 50 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | - serializedVersion: 2 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 | - serializedVersion: 2 85 | buildTarget: iPhone 86 | maxTextureSize: 8192 87 | resizeAlgorithm: 0 88 | textureFormat: -1 89 | textureCompression: 1 90 | compressionQuality: 50 91 | crunchedCompression: 0 92 | allowsAlphaSplitting: 0 93 | overridden: 0 94 | androidETC2FallbackOverride: 0 95 | - serializedVersion: 2 96 | buildTarget: Android 97 | maxTextureSize: 8192 98 | resizeAlgorithm: 0 99 | textureFormat: -1 100 | textureCompression: 1 101 | compressionQuality: 50 102 | crunchedCompression: 0 103 | allowsAlphaSplitting: 0 104 | overridden: 0 105 | androidETC2FallbackOverride: 0 106 | - serializedVersion: 2 107 | buildTarget: Windows Store Apps 108 | maxTextureSize: 8192 109 | resizeAlgorithm: 0 110 | textureFormat: -1 111 | textureCompression: 1 112 | compressionQuality: 50 113 | crunchedCompression: 0 114 | allowsAlphaSplitting: 0 115 | overridden: 0 116 | androidETC2FallbackOverride: 0 117 | spriteSheet: 118 | serializedVersion: 2 119 | sprites: [] 120 | outline: [] 121 | physicsShape: [] 122 | bones: [] 123 | spriteID: 124 | vertices: [] 125 | indices: 126 | edges: [] 127 | weights: [] 128 | spritePackingTag: 129 | userData: 130 | assetBundleName: 131 | assetBundleVariant: 132 | -------------------------------------------------------------------------------- /Assets/Textures/HDRI/GravelPlaza_REF.hdr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alelievr/ProceduralTerrainGPU/d4cfa579ef0e00ffee76db38a9996e1773ba1633/Assets/Textures/HDRI/GravelPlaza_REF.hdr -------------------------------------------------------------------------------- /Assets/Textures/HDRI/GravelPlaza_REF.hdr.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 69c675a6019dd2744a2a99046ac2a834 3 | TextureImporter: 4 | fileIDToRecycleName: 5 | 8900000: generatedCubemap 6 | externalObjects: {} 7 | serializedVersion: 6 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapsPreserveCoverage: 0 16 | alphaTestReferenceValue: 0.5 17 | mipMapFadeDistanceStart: 1 18 | mipMapFadeDistanceEnd: 3 19 | bumpmap: 20 | convertToNormalMap: 0 21 | externalNormalMap: 0 22 | heightScale: 0.25 23 | normalMapFilter: 0 24 | isReadable: 0 25 | streamingMipmaps: 0 26 | streamingMipmapsPriority: 0 27 | grayScaleToAlpha: 0 28 | generateCubemap: 6 29 | cubemapConvolution: 0 30 | seamlessCubemap: 0 31 | textureFormat: 1 32 | maxTextureSize: 2048 33 | textureSettings: 34 | serializedVersion: 2 35 | filterMode: -1 36 | aniso: 4 37 | mipBias: -1 38 | wrapU: -1 39 | wrapV: -1 40 | wrapW: -1 41 | nPOTScale: 1 42 | lightmap: 0 43 | compressionQuality: 50 44 | spriteMode: 0 45 | spriteExtrude: 1 46 | spriteMeshType: 1 47 | alignment: 0 48 | spritePivot: {x: 0.5, y: 0.5} 49 | spritePixelsToUnits: 100 50 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 51 | spriteGenerateFallbackPhysicsShape: 1 52 | alphaUsage: 1 53 | alphaIsTransparency: 0 54 | spriteTessellationDetail: -1 55 | textureType: 0 56 | textureShape: 2 57 | singleChannelComponent: 0 58 | maxTextureSizeSet: 0 59 | compressionQualitySet: 0 60 | textureFormatSet: 0 61 | platformSettings: 62 | - serializedVersion: 2 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 8192 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 50 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | - serializedVersion: 2 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 | - serializedVersion: 2 85 | buildTarget: iPhone 86 | maxTextureSize: 8192 87 | resizeAlgorithm: 0 88 | textureFormat: -1 89 | textureCompression: 1 90 | compressionQuality: 50 91 | crunchedCompression: 0 92 | allowsAlphaSplitting: 0 93 | overridden: 0 94 | androidETC2FallbackOverride: 0 95 | - serializedVersion: 2 96 | buildTarget: Android 97 | maxTextureSize: 8192 98 | resizeAlgorithm: 0 99 | textureFormat: -1 100 | textureCompression: 1 101 | compressionQuality: 50 102 | crunchedCompression: 0 103 | allowsAlphaSplitting: 0 104 | overridden: 0 105 | androidETC2FallbackOverride: 0 106 | - serializedVersion: 2 107 | buildTarget: Windows Store Apps 108 | maxTextureSize: 8192 109 | resizeAlgorithm: 0 110 | textureFormat: -1 111 | textureCompression: 1 112 | compressionQuality: 50 113 | crunchedCompression: 0 114 | allowsAlphaSplitting: 0 115 | overridden: 0 116 | androidETC2FallbackOverride: 0 117 | spriteSheet: 118 | serializedVersion: 2 119 | sprites: [] 120 | outline: [] 121 | physicsShape: [] 122 | bones: [] 123 | spriteID: 124 | vertices: [] 125 | indices: 126 | edges: [] 127 | weights: [] 128 | spritePackingTag: 129 | userData: 130 | assetBundleName: 131 | assetBundleVariant: 132 | -------------------------------------------------------------------------------- /Assets/Textures/Rock.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2afc8c473e9592c42887dcccd1f0902d 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Textures/Rock/TexturesCom_Rock_CliffGranite2_1K_albedo.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alelievr/ProceduralTerrainGPU/d4cfa579ef0e00ffee76db38a9996e1773ba1633/Assets/Textures/Rock/TexturesCom_Rock_CliffGranite2_1K_albedo.tif -------------------------------------------------------------------------------- /Assets/Textures/Rock/TexturesCom_Rock_CliffGranite2_1K_albedo.tif.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: eebf4ef25d29f65499a42e351dec8ddb 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 6 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: 4 36 | mipBias: -1 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: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 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 | - serializedVersion: 2 73 | buildTarget: Standalone 74 | maxTextureSize: 8192 75 | resizeAlgorithm: 0 76 | textureFormat: -1 77 | textureCompression: 1 78 | compressionQuality: 50 79 | crunchedCompression: 0 80 | allowsAlphaSplitting: 0 81 | overridden: 0 82 | androidETC2FallbackOverride: 0 83 | - serializedVersion: 2 84 | buildTarget: iPhone 85 | maxTextureSize: 8192 86 | resizeAlgorithm: 0 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | androidETC2FallbackOverride: 0 94 | - serializedVersion: 2 95 | buildTarget: Android 96 | maxTextureSize: 8192 97 | resizeAlgorithm: 0 98 | textureFormat: -1 99 | textureCompression: 1 100 | compressionQuality: 50 101 | crunchedCompression: 0 102 | allowsAlphaSplitting: 0 103 | overridden: 0 104 | androidETC2FallbackOverride: 0 105 | - serializedVersion: 2 106 | buildTarget: Windows Store Apps 107 | maxTextureSize: 8192 108 | resizeAlgorithm: 0 109 | textureFormat: -1 110 | textureCompression: 1 111 | compressionQuality: 50 112 | crunchedCompression: 0 113 | allowsAlphaSplitting: 0 114 | overridden: 0 115 | androidETC2FallbackOverride: 0 116 | spriteSheet: 117 | serializedVersion: 2 118 | sprites: [] 119 | outline: [] 120 | physicsShape: [] 121 | bones: [] 122 | spriteID: 123 | vertices: [] 124 | indices: 125 | edges: [] 126 | weights: [] 127 | spritePackingTag: 128 | userData: 129 | assetBundleName: 130 | assetBundleVariant: 131 | -------------------------------------------------------------------------------- /Assets/Textures/Rock/TexturesCom_Rock_CliffGranite2_1K_ao.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alelievr/ProceduralTerrainGPU/d4cfa579ef0e00ffee76db38a9996e1773ba1633/Assets/Textures/Rock/TexturesCom_Rock_CliffGranite2_1K_ao.tif -------------------------------------------------------------------------------- /Assets/Textures/Rock/TexturesCom_Rock_CliffGranite2_1K_ao.tif.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 96a6c9cd10dd2694c9ad6927b8a661ce 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 6 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: 4 36 | mipBias: -1 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: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 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 | - serializedVersion: 2 73 | buildTarget: Standalone 74 | maxTextureSize: 8192 75 | resizeAlgorithm: 0 76 | textureFormat: -1 77 | textureCompression: 1 78 | compressionQuality: 50 79 | crunchedCompression: 0 80 | allowsAlphaSplitting: 0 81 | overridden: 0 82 | androidETC2FallbackOverride: 0 83 | - serializedVersion: 2 84 | buildTarget: iPhone 85 | maxTextureSize: 8192 86 | resizeAlgorithm: 0 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | androidETC2FallbackOverride: 0 94 | - serializedVersion: 2 95 | buildTarget: Android 96 | maxTextureSize: 8192 97 | resizeAlgorithm: 0 98 | textureFormat: -1 99 | textureCompression: 1 100 | compressionQuality: 50 101 | crunchedCompression: 0 102 | allowsAlphaSplitting: 0 103 | overridden: 0 104 | androidETC2FallbackOverride: 0 105 | - serializedVersion: 2 106 | buildTarget: Windows Store Apps 107 | maxTextureSize: 8192 108 | resizeAlgorithm: 0 109 | textureFormat: -1 110 | textureCompression: 1 111 | compressionQuality: 50 112 | crunchedCompression: 0 113 | allowsAlphaSplitting: 0 114 | overridden: 0 115 | androidETC2FallbackOverride: 0 116 | spriteSheet: 117 | serializedVersion: 2 118 | sprites: [] 119 | outline: [] 120 | physicsShape: [] 121 | bones: [] 122 | spriteID: 123 | vertices: [] 124 | indices: 125 | edges: [] 126 | weights: [] 127 | spritePackingTag: 128 | userData: 129 | assetBundleName: 130 | assetBundleVariant: 131 | -------------------------------------------------------------------------------- /Assets/Textures/Rock/TexturesCom_Rock_CliffGranite2_1K_height.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alelievr/ProceduralTerrainGPU/d4cfa579ef0e00ffee76db38a9996e1773ba1633/Assets/Textures/Rock/TexturesCom_Rock_CliffGranite2_1K_height.tif -------------------------------------------------------------------------------- /Assets/Textures/Rock/TexturesCom_Rock_CliffGranite2_1K_height.tif.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bb47581446d260f45bba9b1ec6ebe8ed 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 6 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: 4 36 | mipBias: -1 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: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 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 | - serializedVersion: 2 73 | buildTarget: Standalone 74 | maxTextureSize: 8192 75 | resizeAlgorithm: 0 76 | textureFormat: -1 77 | textureCompression: 1 78 | compressionQuality: 50 79 | crunchedCompression: 0 80 | allowsAlphaSplitting: 0 81 | overridden: 0 82 | androidETC2FallbackOverride: 0 83 | - serializedVersion: 2 84 | buildTarget: iPhone 85 | maxTextureSize: 8192 86 | resizeAlgorithm: 0 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | androidETC2FallbackOverride: 0 94 | - serializedVersion: 2 95 | buildTarget: Android 96 | maxTextureSize: 8192 97 | resizeAlgorithm: 0 98 | textureFormat: -1 99 | textureCompression: 1 100 | compressionQuality: 50 101 | crunchedCompression: 0 102 | allowsAlphaSplitting: 0 103 | overridden: 0 104 | androidETC2FallbackOverride: 0 105 | - serializedVersion: 2 106 | buildTarget: Windows Store Apps 107 | maxTextureSize: 8192 108 | resizeAlgorithm: 0 109 | textureFormat: -1 110 | textureCompression: 1 111 | compressionQuality: 50 112 | crunchedCompression: 0 113 | allowsAlphaSplitting: 0 114 | overridden: 0 115 | androidETC2FallbackOverride: 0 116 | spriteSheet: 117 | serializedVersion: 2 118 | sprites: [] 119 | outline: [] 120 | physicsShape: [] 121 | bones: [] 122 | spriteID: 123 | vertices: [] 124 | indices: 125 | edges: [] 126 | weights: [] 127 | spritePackingTag: 128 | userData: 129 | assetBundleName: 130 | assetBundleVariant: 131 | -------------------------------------------------------------------------------- /Assets/Textures/Rock/TexturesCom_Rock_CliffGranite2_1K_normal.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alelievr/ProceduralTerrainGPU/d4cfa579ef0e00ffee76db38a9996e1773ba1633/Assets/Textures/Rock/TexturesCom_Rock_CliffGranite2_1K_normal.tif -------------------------------------------------------------------------------- /Assets/Textures/Rock/TexturesCom_Rock_CliffGranite2_1K_normal.tif.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8f945a3a01f681f4b8f9354fd77baef8 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 6 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: 4 36 | mipBias: -1 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: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 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 | - serializedVersion: 2 73 | buildTarget: Standalone 74 | maxTextureSize: 8192 75 | resizeAlgorithm: 0 76 | textureFormat: -1 77 | textureCompression: 1 78 | compressionQuality: 50 79 | crunchedCompression: 0 80 | allowsAlphaSplitting: 0 81 | overridden: 0 82 | androidETC2FallbackOverride: 0 83 | - serializedVersion: 2 84 | buildTarget: iPhone 85 | maxTextureSize: 8192 86 | resizeAlgorithm: 0 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | androidETC2FallbackOverride: 0 94 | - serializedVersion: 2 95 | buildTarget: Android 96 | maxTextureSize: 8192 97 | resizeAlgorithm: 0 98 | textureFormat: -1 99 | textureCompression: 1 100 | compressionQuality: 50 101 | crunchedCompression: 0 102 | allowsAlphaSplitting: 0 103 | overridden: 0 104 | androidETC2FallbackOverride: 0 105 | - serializedVersion: 2 106 | buildTarget: Windows Store Apps 107 | maxTextureSize: 8192 108 | resizeAlgorithm: 0 109 | textureFormat: -1 110 | textureCompression: 1 111 | compressionQuality: 50 112 | crunchedCompression: 0 113 | allowsAlphaSplitting: 0 114 | overridden: 0 115 | androidETC2FallbackOverride: 0 116 | spriteSheet: 117 | serializedVersion: 2 118 | sprites: [] 119 | outline: [] 120 | physicsShape: [] 121 | bones: [] 122 | spriteID: 123 | vertices: [] 124 | indices: 125 | edges: [] 126 | weights: [] 127 | spritePackingTag: 128 | userData: 129 | assetBundleName: 130 | assetBundleVariant: 131 | -------------------------------------------------------------------------------- /Assets/Textures/Rock/TexturesCom_Rock_CliffGranite2_1K_roughness.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alelievr/ProceduralTerrainGPU/d4cfa579ef0e00ffee76db38a9996e1773ba1633/Assets/Textures/Rock/TexturesCom_Rock_CliffGranite2_1K_roughness.tif -------------------------------------------------------------------------------- /Assets/Textures/Rock/TexturesCom_Rock_CliffGranite2_1K_roughness.tif.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: af08fdfd80ca4764296730fc21373721 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 6 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: 4 36 | mipBias: -1 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: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 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 | - serializedVersion: 2 73 | buildTarget: Standalone 74 | maxTextureSize: 8192 75 | resizeAlgorithm: 0 76 | textureFormat: -1 77 | textureCompression: 1 78 | compressionQuality: 50 79 | crunchedCompression: 0 80 | allowsAlphaSplitting: 0 81 | overridden: 0 82 | androidETC2FallbackOverride: 0 83 | - serializedVersion: 2 84 | buildTarget: iPhone 85 | maxTextureSize: 8192 86 | resizeAlgorithm: 0 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | androidETC2FallbackOverride: 0 94 | - serializedVersion: 2 95 | buildTarget: Android 96 | maxTextureSize: 8192 97 | resizeAlgorithm: 0 98 | textureFormat: -1 99 | textureCompression: 1 100 | compressionQuality: 50 101 | crunchedCompression: 0 102 | allowsAlphaSplitting: 0 103 | overridden: 0 104 | androidETC2FallbackOverride: 0 105 | - serializedVersion: 2 106 | buildTarget: Windows Store Apps 107 | maxTextureSize: 8192 108 | resizeAlgorithm: 0 109 | textureFormat: -1 110 | textureCompression: 1 111 | compressionQuality: 50 112 | crunchedCompression: 0 113 | allowsAlphaSplitting: 0 114 | overridden: 0 115 | androidETC2FallbackOverride: 0 116 | spriteSheet: 117 | serializedVersion: 2 118 | sprites: [] 119 | outline: [] 120 | physicsShape: [] 121 | bones: [] 122 | spriteID: 123 | vertices: [] 124 | indices: 125 | edges: [] 126 | weights: [] 127 | spritePackingTag: 128 | userData: 129 | assetBundleName: 130 | assetBundleVariant: 131 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Antoine Lelievre 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Logs/Packages-Update.log: -------------------------------------------------------------------------------- 1 | 2 | === Sat Apr 27 19:28:36 2019 3 | 4 | Packages were changed. 5 | Update Mode: updateDependencies 6 | 7 | The following packages were added: 8 | com.unity.collab-proxy@1.2.16 9 | com.unity.timeline@1.0.0 10 | com.unity.multiplayer-hlapi@1.0.2 11 | com.unity.xr.legacyinputhelpers@2.0.2 12 | The following packages were updated: 13 | com.unity.analytics from version 2.0.16 to 3.3.2 14 | com.unity.package-manager-ui from version 1.9.11 to 2.1.2 15 | com.unity.purchasing from version 2.0.1 to 2.0.6 16 | com.unity.render-pipelines.core from version 2.0.8-preview to 5.7.2 17 | com.unity.render-pipelines.high-definition from version 2.0.8-preview to 5.7.2-preview 18 | com.unity.textmeshpro from version 1.2.1 to 2.0.0 19 | -------------------------------------------------------------------------------- /Packages/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.unity.ads": "2.0.8", 4 | "com.unity.analytics": "3.3.2", 5 | "com.unity.collab-proxy": "1.2.16", 6 | "com.unity.multiplayer-hlapi": "1.0.2", 7 | "com.unity.package-manager-ui": "2.1.2", 8 | "com.unity.purchasing": "2.0.6", 9 | "com.unity.render-pipelines.core": "5.7.2", 10 | "com.unity.render-pipelines.high-definition": "5.7.2-preview", 11 | "com.unity.textmeshpro": "2.0.0", 12 | "com.unity.timeline": "1.0.0", 13 | "com.unity.xr.legacyinputhelpers": "2.0.2", 14 | "com.unity.modules.ai": "1.0.0", 15 | "com.unity.modules.animation": "1.0.0", 16 | "com.unity.modules.assetbundle": "1.0.0", 17 | "com.unity.modules.audio": "1.0.0", 18 | "com.unity.modules.cloth": "1.0.0", 19 | "com.unity.modules.director": "1.0.0", 20 | "com.unity.modules.imageconversion": "1.0.0", 21 | "com.unity.modules.imgui": "1.0.0", 22 | "com.unity.modules.jsonserialize": "1.0.0", 23 | "com.unity.modules.particlesystem": "1.0.0", 24 | "com.unity.modules.physics": "1.0.0", 25 | "com.unity.modules.physics2d": "1.0.0", 26 | "com.unity.modules.screencapture": "1.0.0", 27 | "com.unity.modules.terrain": "1.0.0", 28 | "com.unity.modules.terrainphysics": "1.0.0", 29 | "com.unity.modules.tilemap": "1.0.0", 30 | "com.unity.modules.ui": "1.0.0", 31 | "com.unity.modules.uielements": "1.0.0", 32 | "com.unity.modules.umbra": "1.0.0", 33 | "com.unity.modules.unityanalytics": "1.0.0", 34 | "com.unity.modules.unitywebrequest": "1.0.0", 35 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 36 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 37 | "com.unity.modules.unitywebrequesttexture": "1.0.0", 38 | "com.unity.modules.unitywebrequestwww": "1.0.0", 39 | "com.unity.modules.vehicles": "1.0.0", 40 | "com.unity.modules.video": "1.0.0", 41 | "com.unity.modules.vr": "1.0.0", 42 | "com.unity.modules.wind": "1.0.0", 43 | "com.unity.modules.xr": "1.0.0" 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /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 | m_Volume: 1 7 | Rolloff Scale: 1 8 | Doppler Factor: 1 9 | Default Speaker Mode: 2 10 | m_SampleRate: 0 11 | m_DSPBufferSize: 1024 12 | m_VirtualVoiceCount: 512 13 | m_RealVoiceCount: 32 14 | m_SpatializerPlugin: 15 | m_AmbisonicDecoderPlugin: 16 | m_DisableAudio: 0 17 | m_VirtualizeEffects: 1 18 | -------------------------------------------------------------------------------- /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 | - m_Name: 8 | m_DeviceName: 9 | m_ServerUrl: 10 | m_Index: 0 11 | m_Type: 0 12 | -------------------------------------------------------------------------------- /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: 7 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 18 | m_ClothInterCollisionStiffness: 0 19 | m_ContactsGeneration: 1 20 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 21 | m_AutoSimulation: 1 22 | m_AutoSyncTransforms: 1 23 | m_ClothInterCollisionSettingsToggle: 0 24 | m_ContactPairsMode: 0 25 | m_BroadphaseType: 0 26 | m_WorldBounds: 27 | m_Center: {x: 0, y: 0, z: 0} 28 | m_Extent: {x: 250, y: 250, z: 250} 29 | m_WorldSubdivisions: 8 30 | -------------------------------------------------------------------------------- /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: 0 9 | path: 10 | guid: 00000000000000000000000000000000 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: 7 7 | m_ExternalVersionControlSupport: Visible Meta Files 8 | m_SerializationMode: 2 9 | m_LineEndingsForNewScripts: 2 10 | m_DefaultBehaviorMode: 0 11 | m_SpritePackerMode: 0 12 | m_SpritePackerPaddingPower: 1 13 | m_EtcTextureCompressorBehavior: 1 14 | m_EtcTextureFastCompressor: 1 15 | m_EtcTextureNormalCompressor: 2 16 | m_EtcTextureBestCompressor: 4 17 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;rsp 18 | m_ProjectGenerationRootNamespace: 19 | m_UserGeneratedProjectSuffix: 20 | m_CollabEditorSettings: 21 | inProgressEnabled: 1 22 | -------------------------------------------------------------------------------- /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: 12 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: 17000, guid: 0000000000000000f000000000000000, type: 0} 39 | - {fileID: 16000, guid: 0000000000000000f000000000000000, type: 0} 40 | m_PreloadedShaders: [] 41 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, 42 | type: 0} 43 | m_CustomRenderPipeline: {fileID: 0} 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 | - serializedVersion: 5 50 | m_BuildTarget: 1 51 | m_Tier: 0 52 | m_Settings: 53 | standardShaderQuality: 2 54 | renderingPath: 3 55 | hdrMode: 1 56 | realtimeGICPUUsage: 25 57 | useReflectionProbeBoxProjection: 1 58 | useReflectionProbeBlending: 1 59 | useHDR: 1 60 | useDetailNormalMap: 1 61 | useCascadedShadowMaps: 1 62 | prefer32BitShadowMaps: 0 63 | enableLPPV: 1 64 | useDitherMaskForAlphaBlendedShadows: 1 65 | m_Automatic: 0 66 | - serializedVersion: 5 67 | m_BuildTarget: 1 68 | m_Tier: 1 69 | m_Settings: 70 | standardShaderQuality: 2 71 | renderingPath: 3 72 | hdrMode: 1 73 | realtimeGICPUUsage: 25 74 | useReflectionProbeBoxProjection: 1 75 | useReflectionProbeBlending: 1 76 | useHDR: 1 77 | useDetailNormalMap: 1 78 | useCascadedShadowMaps: 1 79 | prefer32BitShadowMaps: 0 80 | enableLPPV: 1 81 | useDitherMaskForAlphaBlendedShadows: 1 82 | m_Automatic: 0 83 | - serializedVersion: 5 84 | m_BuildTarget: 1 85 | m_Tier: 2 86 | m_Settings: 87 | standardShaderQuality: 2 88 | renderingPath: 3 89 | hdrMode: 1 90 | realtimeGICPUUsage: 50 91 | useReflectionProbeBoxProjection: 1 92 | useReflectionProbeBlending: 1 93 | useHDR: 1 94 | useDetailNormalMap: 1 95 | useCascadedShadowMaps: 1 96 | prefer32BitShadowMaps: 0 97 | enableLPPV: 1 98 | useDitherMaskForAlphaBlendedShadows: 1 99 | m_Automatic: 0 100 | - serializedVersion: 5 101 | m_BuildTarget: 4 102 | m_Tier: 0 103 | m_Settings: 104 | standardShaderQuality: 0 105 | renderingPath: 1 106 | hdrMode: 2 107 | realtimeGICPUUsage: 25 108 | useReflectionProbeBoxProjection: 0 109 | useReflectionProbeBlending: 0 110 | useHDR: 0 111 | useDetailNormalMap: 0 112 | useCascadedShadowMaps: 0 113 | prefer32BitShadowMaps: 0 114 | enableLPPV: 0 115 | useDitherMaskForAlphaBlendedShadows: 0 116 | m_Automatic: 1 117 | m_LightmapStripping: 0 118 | m_FogStripping: 0 119 | m_InstancingStripping: 0 120 | m_LightmapKeepPlain: 1 121 | m_LightmapKeepDirCombined: 1 122 | m_LightmapKeepDynamicPlain: 1 123 | m_LightmapKeepDynamicDirCombined: 1 124 | m_LightmapKeepShadowMask: 1 125 | m_LightmapKeepSubtractive: 1 126 | m_FogKeepLinear: 1 127 | m_FogKeepExp: 1 128 | m_FogKeepExp2: 1 129 | m_AlbedoSwatchInfos: [] 130 | m_LightsUseLinearIntensity: 1 131 | m_LightsUseColorTemperature: 1 132 | -------------------------------------------------------------------------------- /ProjectSettings/HDRPProjectVersion.txt: -------------------------------------------------------------------------------- 1 | 1 2 | -------------------------------------------------------------------------------- /ProjectSettings/InputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!13 &1 4 | InputManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Axes: 8 | - serializedVersion: 3 9 | m_Name: Horizontal 10 | descriptiveName: 11 | descriptiveNegativeName: 12 | negativeButton: left 13 | positiveButton: right 14 | altNegativeButton: a 15 | altPositiveButton: d 16 | gravity: 3 17 | dead: 0.001 18 | sensitivity: 3 19 | snap: 1 20 | invert: 0 21 | type: 0 22 | axis: 0 23 | joyNum: 0 24 | - serializedVersion: 3 25 | m_Name: Vertical 26 | descriptiveName: 27 | descriptiveNegativeName: 28 | negativeButton: down 29 | positiveButton: up 30 | altNegativeButton: s 31 | altPositiveButton: w 32 | gravity: 3 33 | dead: 0.001 34 | sensitivity: 3 35 | snap: 1 36 | invert: 0 37 | type: 0 38 | axis: 0 39 | joyNum: 0 40 | - serializedVersion: 3 41 | m_Name: Fire1 42 | descriptiveName: 43 | descriptiveNegativeName: 44 | negativeButton: 45 | positiveButton: left ctrl 46 | altNegativeButton: 47 | altPositiveButton: mouse 0 48 | gravity: 1000 49 | dead: 0.001 50 | sensitivity: 1000 51 | snap: 0 52 | invert: 0 53 | type: 0 54 | axis: 0 55 | joyNum: 0 56 | - serializedVersion: 3 57 | m_Name: Fire2 58 | descriptiveName: 59 | descriptiveNegativeName: 60 | negativeButton: 61 | positiveButton: left alt 62 | altNegativeButton: 63 | altPositiveButton: mouse 1 64 | gravity: 1000 65 | dead: 0.001 66 | sensitivity: 1000 67 | snap: 0 68 | invert: 0 69 | type: 0 70 | axis: 0 71 | joyNum: 0 72 | - serializedVersion: 3 73 | m_Name: Fire3 74 | descriptiveName: 75 | descriptiveNegativeName: 76 | negativeButton: 77 | positiveButton: left shift 78 | altNegativeButton: 79 | altPositiveButton: mouse 2 80 | gravity: 1000 81 | dead: 0.001 82 | sensitivity: 1000 83 | snap: 0 84 | invert: 0 85 | type: 0 86 | axis: 0 87 | joyNum: 0 88 | - serializedVersion: 3 89 | m_Name: Jump 90 | descriptiveName: 91 | descriptiveNegativeName: 92 | negativeButton: 93 | positiveButton: space 94 | altNegativeButton: 95 | altPositiveButton: 96 | gravity: 1000 97 | dead: 0.001 98 | sensitivity: 1000 99 | snap: 0 100 | invert: 0 101 | type: 0 102 | axis: 0 103 | joyNum: 0 104 | - serializedVersion: 3 105 | m_Name: Mouse X 106 | descriptiveName: 107 | descriptiveNegativeName: 108 | negativeButton: 109 | positiveButton: 110 | altNegativeButton: 111 | altPositiveButton: 112 | gravity: 0 113 | dead: 0 114 | sensitivity: 0.1 115 | snap: 0 116 | invert: 0 117 | type: 1 118 | axis: 0 119 | joyNum: 0 120 | - serializedVersion: 3 121 | m_Name: Mouse Y 122 | descriptiveName: 123 | descriptiveNegativeName: 124 | negativeButton: 125 | positiveButton: 126 | altNegativeButton: 127 | altPositiveButton: 128 | gravity: 0 129 | dead: 0 130 | sensitivity: 0.1 131 | snap: 0 132 | invert: 0 133 | type: 1 134 | axis: 1 135 | joyNum: 0 136 | - serializedVersion: 3 137 | m_Name: Mouse ScrollWheel 138 | descriptiveName: 139 | descriptiveNegativeName: 140 | negativeButton: 141 | positiveButton: 142 | altNegativeButton: 143 | altPositiveButton: 144 | gravity: 0 145 | dead: 0 146 | sensitivity: 0.1 147 | snap: 0 148 | invert: 0 149 | type: 1 150 | axis: 2 151 | joyNum: 0 152 | - serializedVersion: 3 153 | m_Name: Horizontal 154 | descriptiveName: 155 | descriptiveNegativeName: 156 | negativeButton: 157 | positiveButton: 158 | altNegativeButton: 159 | altPositiveButton: 160 | gravity: 0 161 | dead: 0.19 162 | sensitivity: 1 163 | snap: 0 164 | invert: 0 165 | type: 2 166 | axis: 0 167 | joyNum: 0 168 | - serializedVersion: 3 169 | m_Name: Vertical 170 | descriptiveName: 171 | descriptiveNegativeName: 172 | negativeButton: 173 | positiveButton: 174 | altNegativeButton: 175 | altPositiveButton: 176 | gravity: 0 177 | dead: 0.19 178 | sensitivity: 1 179 | snap: 0 180 | invert: 1 181 | type: 2 182 | axis: 1 183 | joyNum: 0 184 | - serializedVersion: 3 185 | m_Name: Fire1 186 | descriptiveName: 187 | descriptiveNegativeName: 188 | negativeButton: 189 | positiveButton: joystick button 0 190 | altNegativeButton: 191 | altPositiveButton: 192 | gravity: 1000 193 | dead: 0.001 194 | sensitivity: 1000 195 | snap: 0 196 | invert: 0 197 | type: 0 198 | axis: 0 199 | joyNum: 0 200 | - serializedVersion: 3 201 | m_Name: Fire2 202 | descriptiveName: 203 | descriptiveNegativeName: 204 | negativeButton: 205 | positiveButton: joystick button 1 206 | altNegativeButton: 207 | altPositiveButton: 208 | gravity: 1000 209 | dead: 0.001 210 | sensitivity: 1000 211 | snap: 0 212 | invert: 0 213 | type: 0 214 | axis: 0 215 | joyNum: 0 216 | - serializedVersion: 3 217 | m_Name: Fire3 218 | descriptiveName: 219 | descriptiveNegativeName: 220 | negativeButton: 221 | positiveButton: joystick button 2 222 | altNegativeButton: 223 | altPositiveButton: 224 | gravity: 1000 225 | dead: 0.001 226 | sensitivity: 1000 227 | snap: 0 228 | invert: 0 229 | type: 0 230 | axis: 0 231 | joyNum: 0 232 | - serializedVersion: 3 233 | m_Name: Jump 234 | descriptiveName: 235 | descriptiveNegativeName: 236 | negativeButton: 237 | positiveButton: joystick button 3 238 | altNegativeButton: 239 | altPositiveButton: 240 | gravity: 1000 241 | dead: 0.001 242 | sensitivity: 1000 243 | snap: 0 244 | invert: 0 245 | type: 0 246 | axis: 0 247 | joyNum: 0 248 | - serializedVersion: 3 249 | m_Name: Submit 250 | descriptiveName: 251 | descriptiveNegativeName: 252 | negativeButton: 253 | positiveButton: return 254 | altNegativeButton: 255 | altPositiveButton: joystick button 0 256 | gravity: 1000 257 | dead: 0.001 258 | sensitivity: 1000 259 | snap: 0 260 | invert: 0 261 | type: 0 262 | axis: 0 263 | joyNum: 0 264 | - serializedVersion: 3 265 | m_Name: Submit 266 | descriptiveName: 267 | descriptiveNegativeName: 268 | negativeButton: 269 | positiveButton: enter 270 | altNegativeButton: 271 | altPositiveButton: space 272 | gravity: 1000 273 | dead: 0.001 274 | sensitivity: 1000 275 | snap: 0 276 | invert: 0 277 | type: 0 278 | axis: 0 279 | joyNum: 0 280 | - serializedVersion: 3 281 | m_Name: Cancel 282 | descriptiveName: 283 | descriptiveNegativeName: 284 | negativeButton: 285 | positiveButton: escape 286 | altNegativeButton: 287 | altPositiveButton: joystick button 1 288 | gravity: 1000 289 | dead: 0.001 290 | sensitivity: 1000 291 | snap: 0 292 | invert: 0 293 | type: 0 294 | axis: 0 295 | joyNum: 0 296 | - serializedVersion: 3 297 | m_Name: Enable Debug Button 1 298 | descriptiveName: 299 | descriptiveNegativeName: 300 | negativeButton: 301 | positiveButton: left ctrl 302 | altNegativeButton: 303 | altPositiveButton: joystick button 8 304 | gravity: 0 305 | dead: 0 306 | sensitivity: 0 307 | snap: 0 308 | invert: 0 309 | type: 0 310 | axis: 0 311 | joyNum: 0 312 | - serializedVersion: 3 313 | m_Name: Enable Debug Button 2 314 | descriptiveName: 315 | descriptiveNegativeName: 316 | negativeButton: 317 | positiveButton: backspace 318 | altNegativeButton: 319 | altPositiveButton: joystick button 9 320 | gravity: 0 321 | dead: 0 322 | sensitivity: 0 323 | snap: 0 324 | invert: 0 325 | type: 0 326 | axis: 0 327 | joyNum: 0 328 | - serializedVersion: 3 329 | m_Name: Debug Next 330 | descriptiveName: 331 | descriptiveNegativeName: 332 | negativeButton: 333 | positiveButton: page down 334 | altNegativeButton: 335 | altPositiveButton: joystick button 5 336 | gravity: 0 337 | dead: 0 338 | sensitivity: 0 339 | snap: 0 340 | invert: 0 341 | type: 0 342 | axis: 0 343 | joyNum: 0 344 | - serializedVersion: 3 345 | m_Name: Debug Previous 346 | descriptiveName: 347 | descriptiveNegativeName: 348 | negativeButton: 349 | positiveButton: page up 350 | altNegativeButton: 351 | altPositiveButton: joystick button 4 352 | gravity: 0 353 | dead: 0 354 | sensitivity: 0 355 | snap: 0 356 | invert: 0 357 | type: 0 358 | axis: 0 359 | joyNum: 0 360 | - serializedVersion: 3 361 | m_Name: Debug Horizontal 362 | descriptiveName: 363 | descriptiveNegativeName: 364 | negativeButton: left 365 | positiveButton: right 366 | altNegativeButton: 367 | altPositiveButton: 368 | gravity: 1000 369 | dead: 0.001 370 | sensitivity: 1000 371 | snap: 0 372 | invert: 0 373 | type: 0 374 | axis: 0 375 | joyNum: 0 376 | - serializedVersion: 3 377 | m_Name: Debug Horizontal 378 | descriptiveName: 379 | descriptiveNegativeName: 380 | negativeButton: left 381 | positiveButton: right 382 | altNegativeButton: 383 | altPositiveButton: 384 | gravity: 1000 385 | dead: 0.001 386 | sensitivity: 1000 387 | snap: 0 388 | invert: 0 389 | type: 2 390 | axis: 5 391 | joyNum: 0 392 | - serializedVersion: 3 393 | m_Name: Debug Vertical 394 | descriptiveName: 395 | descriptiveNegativeName: 396 | negativeButton: down 397 | positiveButton: up 398 | altNegativeButton: 399 | altPositiveButton: 400 | gravity: 1000 401 | dead: 0.001 402 | sensitivity: 1000 403 | snap: 0 404 | invert: 0 405 | type: 0 406 | axis: 0 407 | joyNum: 0 408 | - serializedVersion: 3 409 | m_Name: Debug Vertical 410 | descriptiveName: 411 | descriptiveNegativeName: 412 | negativeButton: down 413 | positiveButton: up 414 | altNegativeButton: 415 | altPositiveButton: 416 | gravity: 1000 417 | dead: 0.001 418 | sensitivity: 1000 419 | snap: 0 420 | invert: 0 421 | type: 2 422 | axis: 6 423 | joyNum: 0 424 | - serializedVersion: 3 425 | m_Name: Debug Validate 426 | descriptiveName: 427 | descriptiveNegativeName: 428 | negativeButton: 429 | positiveButton: return 430 | altNegativeButton: 431 | altPositiveButton: joystick button 0 432 | gravity: 0 433 | dead: 0 434 | sensitivity: 0 435 | snap: 0 436 | invert: 0 437 | type: 0 438 | axis: 0 439 | joyNum: 0 440 | - serializedVersion: 3 441 | m_Name: Debug Persistent 442 | descriptiveName: 443 | descriptiveNegativeName: 444 | negativeButton: 445 | positiveButton: right shift 446 | altNegativeButton: 447 | altPositiveButton: joystick button 2 448 | gravity: 0 449 | dead: 0 450 | sensitivity: 0 451 | snap: 0 452 | invert: 0 453 | type: 0 454 | axis: 0 455 | joyNum: 0 456 | - serializedVersion: 3 457 | m_Name: Debug Multiplier 458 | descriptiveName: 459 | descriptiveNegativeName: 460 | negativeButton: 461 | positiveButton: left shift 462 | altNegativeButton: 463 | altPositiveButton: joystick button 3 464 | gravity: 0 465 | dead: 0 466 | sensitivity: 0 467 | snap: 0 468 | invert: 0 469 | type: 0 470 | axis: 0 471 | joyNum: 0 472 | - serializedVersion: 3 473 | m_Name: Debug Reset 474 | descriptiveName: 475 | descriptiveNegativeName: 476 | negativeButton: 477 | positiveButton: left alt 478 | altNegativeButton: 479 | altPositiveButton: joystick button 1 480 | gravity: 0 481 | dead: 0 482 | sensitivity: 0 483 | snap: 0 484 | invert: 0 485 | type: 0 486 | axis: 0 487 | joyNum: 0 488 | -------------------------------------------------------------------------------- /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/NetworkManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!149 &1 4 | NetworkManager: 5 | m_ObjectHideFlags: 0 6 | m_DebugLevel: 0 7 | m_Sendrate: 15 8 | m_AssetToPrefab: {} 9 | -------------------------------------------------------------------------------- /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: 3 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 | m_UseMultithreading: 0 24 | m_UseConsistencySorting: 0 25 | m_InterpolationPosesPerJob: 100 26 | m_NewContactsPerJob: 30 27 | m_CollideContactsPerJob: 100 28 | m_ClearFlagsPerJob: 200 29 | m_ClearBodyForcesPerJob: 200 30 | m_SyncDiscreteFixturesPerJob: 50 31 | m_SyncContinuousFixturesPerJob: 50 32 | m_FindNearestContactsPerJob: 100 33 | m_UpdateTriggerContactsPerJob: 100 34 | m_IslandSolverCostThreshold: 100 35 | m_IslandSolverBodyCostScale: 1 36 | m_IslandSolverContactCostScale: 10 37 | m_IslandSolverJointCostScale: 10 38 | m_IslandSolverBodiesPerJob: 50 39 | m_IslandSolverContactsPerJob: 50 40 | m_AutoSimulation: 1 41 | m_QueriesHitTriggers: 1 42 | m_QueriesStartInColliders: 1 43 | m_CallbacksOnDisable: 1 44 | m_AutoSyncTransforms: 1 45 | m_AlwaysShowColliders: 0 46 | m_ShowColliderSleep: 1 47 | m_ShowColliderContacts: 0 48 | m_ShowColliderAABB: 0 49 | m_ContactArrowScale: 0.2 50 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} 51 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} 52 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} 53 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} 54 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 55 | -------------------------------------------------------------------------------- /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: c1cf8506f04ef2c4a88b64b6c4202eea, 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: 0cd792cc87e492d43b4e95b205fc5cc6, 20 | type: 2} 21 | - type: 22 | m_NativeTypeID: 114 23 | m_ManagedTypePPtr: {fileID: 11500000, guid: b2686e09ec7aef44bad2843e4416f057, 24 | type: 3} 25 | m_ManagedTypeFallback: 26 | defaultPresets: 27 | - m_Preset: {fileID: 2655988077585873504, guid: 8fa3055e2a1363246838debd20206d37, 28 | type: 2} 29 | - type: 30 | m_NativeTypeID: 1006 31 | m_ManagedTypePPtr: {fileID: 0} 32 | m_ManagedTypeFallback: 33 | defaultPresets: 34 | - m_Preset: {fileID: 2655988077585873504, guid: 7a99f8aa944efe94cb9bd74562b7d5f9, 35 | type: 2} 36 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2019.1.0f2 2 | m_EditorVersionWithRevision: 2019.1.0f2 (292b93d75a2c) 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: 5 8 | m_QualitySettings: 9 | - serializedVersion: 2 10 | name: Very Low 11 | pixelLightCount: 0 12 | shadows: 0 13 | shadowResolution: 0 14 | shadowProjection: 1 15 | shadowCascades: 1 16 | shadowDistance: 15 17 | shadowNearPlaneOffset: 3 18 | shadowCascade2Split: 0.33333334 19 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 20 | shadowmaskMode: 0 21 | blendWeights: 1 22 | textureQuality: 1 23 | anisotropicTextures: 0 24 | antiAliasing: 0 25 | softParticles: 0 26 | softVegetation: 0 27 | realtimeReflectionProbes: 0 28 | billboardsFaceCameraPosition: 0 29 | vSyncCount: 0 30 | lodBias: 0.3 31 | maximumLODLevel: 0 32 | streamingMipmapsActive: 0 33 | streamingMipmapsAddAllCameras: 1 34 | streamingMipmapsMemoryBudget: 512 35 | streamingMipmapsRenderersPerFrame: 512 36 | streamingMipmapsMaxLevelReduction: 2 37 | streamingMipmapsMaxFileIORequests: 1024 38 | particleRaycastBudget: 4 39 | asyncUploadTimeSlice: 2 40 | asyncUploadBufferSize: 4 41 | resolutionScalingFixedDPIFactor: 1 42 | excludedTargetPlatforms: [] 43 | - serializedVersion: 2 44 | name: Low 45 | pixelLightCount: 0 46 | shadows: 0 47 | shadowResolution: 0 48 | shadowProjection: 1 49 | shadowCascades: 1 50 | shadowDistance: 20 51 | shadowNearPlaneOffset: 3 52 | shadowCascade2Split: 0.33333334 53 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 54 | shadowmaskMode: 0 55 | blendWeights: 2 56 | textureQuality: 0 57 | anisotropicTextures: 0 58 | antiAliasing: 0 59 | softParticles: 0 60 | softVegetation: 0 61 | realtimeReflectionProbes: 0 62 | billboardsFaceCameraPosition: 0 63 | vSyncCount: 0 64 | lodBias: 0.4 65 | maximumLODLevel: 0 66 | streamingMipmapsActive: 0 67 | streamingMipmapsAddAllCameras: 1 68 | streamingMipmapsMemoryBudget: 512 69 | streamingMipmapsRenderersPerFrame: 512 70 | streamingMipmapsMaxLevelReduction: 2 71 | streamingMipmapsMaxFileIORequests: 1024 72 | particleRaycastBudget: 16 73 | asyncUploadTimeSlice: 2 74 | asyncUploadBufferSize: 4 75 | resolutionScalingFixedDPIFactor: 1 76 | excludedTargetPlatforms: [] 77 | - serializedVersion: 2 78 | name: Medium 79 | pixelLightCount: 1 80 | shadows: 1 81 | shadowResolution: 0 82 | shadowProjection: 1 83 | shadowCascades: 1 84 | shadowDistance: 20 85 | shadowNearPlaneOffset: 3 86 | shadowCascade2Split: 0.33333334 87 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 88 | shadowmaskMode: 0 89 | blendWeights: 2 90 | textureQuality: 0 91 | anisotropicTextures: 1 92 | antiAliasing: 0 93 | softParticles: 0 94 | softVegetation: 0 95 | realtimeReflectionProbes: 0 96 | billboardsFaceCameraPosition: 0 97 | vSyncCount: 1 98 | lodBias: 0.7 99 | maximumLODLevel: 0 100 | streamingMipmapsActive: 0 101 | streamingMipmapsAddAllCameras: 1 102 | streamingMipmapsMemoryBudget: 512 103 | streamingMipmapsRenderersPerFrame: 512 104 | streamingMipmapsMaxLevelReduction: 2 105 | streamingMipmapsMaxFileIORequests: 1024 106 | particleRaycastBudget: 64 107 | asyncUploadTimeSlice: 2 108 | asyncUploadBufferSize: 4 109 | resolutionScalingFixedDPIFactor: 1 110 | excludedTargetPlatforms: [] 111 | - serializedVersion: 2 112 | name: High 113 | pixelLightCount: 2 114 | shadows: 2 115 | shadowResolution: 1 116 | shadowProjection: 1 117 | shadowCascades: 2 118 | shadowDistance: 40 119 | shadowNearPlaneOffset: 3 120 | shadowCascade2Split: 0.33333334 121 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 122 | shadowmaskMode: 1 123 | blendWeights: 2 124 | textureQuality: 0 125 | anisotropicTextures: 1 126 | antiAliasing: 0 127 | softParticles: 0 128 | softVegetation: 1 129 | realtimeReflectionProbes: 1 130 | billboardsFaceCameraPosition: 1 131 | vSyncCount: 1 132 | lodBias: 1 133 | maximumLODLevel: 0 134 | streamingMipmapsActive: 0 135 | streamingMipmapsAddAllCameras: 1 136 | streamingMipmapsMemoryBudget: 512 137 | streamingMipmapsRenderersPerFrame: 512 138 | streamingMipmapsMaxLevelReduction: 2 139 | streamingMipmapsMaxFileIORequests: 1024 140 | particleRaycastBudget: 256 141 | asyncUploadTimeSlice: 2 142 | asyncUploadBufferSize: 4 143 | resolutionScalingFixedDPIFactor: 1 144 | excludedTargetPlatforms: [] 145 | - serializedVersion: 2 146 | name: Very High 147 | pixelLightCount: 3 148 | shadows: 2 149 | shadowResolution: 2 150 | shadowProjection: 1 151 | shadowCascades: 2 152 | shadowDistance: 70 153 | shadowNearPlaneOffset: 3 154 | shadowCascade2Split: 0.33333334 155 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 156 | shadowmaskMode: 1 157 | blendWeights: 4 158 | textureQuality: 0 159 | anisotropicTextures: 1 160 | antiAliasing: 0 161 | softParticles: 1 162 | softVegetation: 1 163 | realtimeReflectionProbes: 1 164 | billboardsFaceCameraPosition: 1 165 | vSyncCount: 1 166 | lodBias: 1.5 167 | maximumLODLevel: 0 168 | streamingMipmapsActive: 0 169 | streamingMipmapsAddAllCameras: 1 170 | streamingMipmapsMemoryBudget: 512 171 | streamingMipmapsRenderersPerFrame: 512 172 | streamingMipmapsMaxLevelReduction: 2 173 | streamingMipmapsMaxFileIORequests: 1024 174 | particleRaycastBudget: 1024 175 | asyncUploadTimeSlice: 2 176 | asyncUploadBufferSize: 4 177 | resolutionScalingFixedDPIFactor: 1 178 | excludedTargetPlatforms: [] 179 | - serializedVersion: 2 180 | name: Ultra 181 | pixelLightCount: 4 182 | shadows: 2 183 | shadowResolution: 2 184 | shadowProjection: 1 185 | shadowCascades: 4 186 | shadowDistance: 150 187 | shadowNearPlaneOffset: 3 188 | shadowCascade2Split: 0.33333334 189 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 190 | shadowmaskMode: 1 191 | blendWeights: 4 192 | textureQuality: 0 193 | anisotropicTextures: 1 194 | antiAliasing: 0 195 | softParticles: 1 196 | softVegetation: 1 197 | realtimeReflectionProbes: 1 198 | billboardsFaceCameraPosition: 1 199 | vSyncCount: 0 200 | lodBias: 2 201 | maximumLODLevel: 0 202 | streamingMipmapsActive: 0 203 | streamingMipmapsAddAllCameras: 1 204 | streamingMipmapsMemoryBudget: 512 205 | streamingMipmapsRenderersPerFrame: 512 206 | streamingMipmapsMaxLevelReduction: 2 207 | streamingMipmapsMaxFileIORequests: 1024 208 | particleRaycastBudget: 4096 209 | asyncUploadTimeSlice: 2 210 | asyncUploadBufferSize: 4 211 | resolutionScalingFixedDPIFactor: 1 212 | excludedTargetPlatforms: [] 213 | m_PerPlatformDefaultQuality: 214 | Android: 2 215 | Nintendo 3DS: 5 216 | Nintendo Switch: 5 217 | PS4: 5 218 | PSP2: 2 219 | Standalone: 5 220 | Tizen: 2 221 | WebGL: 3 222 | WiiU: 5 223 | Windows Store Apps: 5 224 | XboxOne: 5 225 | iPhone: 2 226 | tvOS: 2 227 | -------------------------------------------------------------------------------- /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 | - PostProcessing 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.0167 7 | Maximum Allowed Timestep: 0.1 8 | m_TimeScale: 1 9 | Maximum Particle Timestep: 0.03 10 | -------------------------------------------------------------------------------- /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 | m_Enabled: 1 7 | m_TestMode: 0 8 | m_TestEventUrl: 9 | m_TestConfigUrl: 10 | m_TestInitMode: 0 11 | CrashReportingSettings: 12 | m_EventUrl: https://perf-events.cloud.unity3d.com/api/events/crashes 13 | m_NativeEventUrl: https://perf-events.cloud.unity3d.com/symbolicate 14 | m_Enabled: 0 15 | m_CaptureEditorExceptions: 1 16 | UnityPurchasingSettings: 17 | m_Enabled: 0 18 | m_TestMode: 0 19 | UnityAnalyticsSettings: 20 | m_Enabled: 1 21 | m_InitializeOnStartup: 1 22 | m_TestMode: 0 23 | m_TestEventUrl: 24 | m_TestConfigUrl: 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: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alelievr/ProceduralTerrainGPU/d4cfa579ef0e00ffee76db38a9996e1773ba1633/ProjectSettings/VFXManager.asset -------------------------------------------------------------------------------- /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 | # ProceduralTerrainGPU -------------------------------------------------------------------------------- /workspace.code-workspace: -------------------------------------------------------------------------------- 1 | { 2 | "folders": [ 3 | { 4 | "path": "." 5 | } 6 | ], 7 | "settings": {} 8 | } --------------------------------------------------------------------------------