Repository: muckSponge/Optically-Realistic-Water Branch: master Commit: 5c75b66efc49 Files: 74 Total size: 171.9 KB Directory structure: gitextract_me6j29t8/ ├── .gitignore ├── LICENSE ├── README.md └── Water/ ├── .gitignore ├── Assets/ │ ├── Plugins/ │ │ ├── Editor/ │ │ │ ├── .gitignore │ │ │ └── JetBrains.meta │ │ └── Editor.meta │ ├── Plugins.meta │ ├── Water/ │ │ ├── Materials/ │ │ │ ├── Skybox.mat │ │ │ ├── Skybox.mat.meta │ │ │ ├── Underwater.mat │ │ │ ├── Underwater.mat.meta │ │ │ ├── WaterSurface.mat │ │ │ └── WaterSurface.mat.meta │ │ ├── Materials.meta │ │ ├── Models/ │ │ │ ├── terrain.fbx │ │ │ ├── terrain.fbx.meta │ │ │ ├── watersurface.fbx │ │ │ └── watersurface.fbx.meta │ │ ├── Models.meta │ │ ├── Prefabs/ │ │ │ ├── Water Surface.prefab │ │ │ └── Water Surface.prefab.meta │ │ ├── Prefabs.meta │ │ ├── Scenes/ │ │ │ ├── SampleScene/ │ │ │ │ ├── LightingData.asset │ │ │ │ ├── LightingData.asset.meta │ │ │ │ ├── ReflectionProbe-0.exr │ │ │ │ ├── ReflectionProbe-0.exr.meta │ │ │ │ ├── ReflectionProbe-1.exr │ │ │ │ └── ReflectionProbe-1.exr.meta │ │ │ ├── SampleScene.meta │ │ │ ├── SampleScene.unity │ │ │ ├── SampleScene.unity.meta │ │ │ ├── SampleScene_Profiles/ │ │ │ │ ├── Post-process Volume Profile.asset │ │ │ │ └── Post-process Volume Profile.asset.meta │ │ │ └── SampleScene_Profiles.meta │ │ ├── Scenes.meta │ │ ├── Scripts/ │ │ │ ├── CameraMove.cs │ │ │ ├── CameraMove.cs.meta │ │ │ ├── LightGrab.cs │ │ │ ├── LightGrab.cs.meta │ │ │ ├── Water.cs │ │ │ ├── Water.cs.meta │ │ │ ├── WaterSettings.cs │ │ │ ├── WaterSettings.cs.meta │ │ │ ├── WaterUtility.cs │ │ │ └── WaterUtility.cs.meta │ │ ├── Scripts.meta │ │ ├── Shaders/ │ │ │ ├── WaterSurface.shader │ │ │ ├── WaterSurface.shader.meta │ │ │ ├── WaterUnder.shader │ │ │ └── WaterUnder.shader.meta │ │ ├── Shaders.meta │ │ ├── Textures/ │ │ │ ├── grid.png.meta │ │ │ └── water-normal.png.meta │ │ └── Textures.meta │ └── Water.meta ├── Packages/ │ └── manifest.json └── ProjectSettings/ ├── AudioManager.asset ├── ClusterInputManager.asset ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── GraphicsSettings.asset ├── InputManager.asset ├── NavMeshAreas.asset ├── NetworkManager.asset ├── Physics2DSettings.asset ├── PresetManager.asset ├── ProjectSettings.asset ├── ProjectVersion.txt ├── QualitySettings.asset ├── TagManager.asset ├── TimeManager.asset └── UnityConnectSettings.asset ================================================ FILE CONTENTS ================================================ ================================================ FILE: .gitignore ================================================ # macOS # General .DS_Store .AppleDouble .LSOverride # Icon must end with two \r Icon # Thumbnails ._* # Files that might appear in the root of a volume .DocumentRevisions-V100 .fseventsd .Spotlight-V100 .TemporaryItems .Trashes .VolumeIcon.icns .com.apple.timemachine.donotpresent # Directories potentially created on remote AFP share .AppleDB .AppleDesktop Network Trash Folder Temporary Items .apdisk # Windows # Windows thumbnail cache files Thumbs.db ehthumbs.db ehthumbs_vista.db # Dump file *.stackdump # Folder config file [Dd]esktop.ini # Recycle Bin used on file shares $RECYCLE.BIN/ # Windows Installer files *.cab *.msi *.msix *.msm *.msp # Windows shortcuts *.lnk # Linux *~ # temporary files which can be created if a process still has a handle open of a deleted file .fuse_hidden* # KDE directory preferences .directory # Linux trash folder which might appear on any partition or disk .Trash-* # .nfs files are created when an open file is removed but is still being accessed .nfs* .idea/ ================================================ FILE: LICENSE ================================================ MIT License Copyright (c) 2018 Muck Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: README.md ================================================ # Optically Realistic Water A Unity port of Martins Upitis' fantastic [ocean water shader](https://devlog-martinsh.blogspot.com/2013/09/waterunderwater-sky-shader-update-02.html), which was originally coded in GLSL for Blender. ![water](https://user-images.githubusercontent.com/5405629/47149964-7a570800-d318-11e8-9420-74cf4619b35e.jpg) ## Contents The shader actually consists of two parts: * WaterSurface.shader * WaterUnder.shader WaterSurface.shader is intended to be used with the water plane and renders reflections, subsurface scattering, etc. WaterUnder.shader must be applied to any renderers which could potentially be submerged in the water (such as the terrain, etc.). Water.cs should be attached to the water plane and handles planar reflections and all shader parameters. It is mostly self-explanatory if you are at all familiar with Unity's existing water shader. Just like in Martins' project, you can click and drag the sun into any position you like. ## Features * Reflection with accurate fresnel reflectance model * Refraction with chromatic aberration * Projected caustics on geometry from the water surface based on normals * Seamless transition to underwater (no post effects used) * Accurate water volume with light scattering * View and light ray color extinction based on water color and sunlight ## Additional features/changes * Refraction is masked based on depth to prevent foreground distortion artefacts * Normal map intensity fades out with distance to prevent excessive distortion artefacts * Clip plane offset depends on camera distance from water plane, which reduces artefacts when close to surface * Some shader calculations moved into scripts (sun colour, for example) * Some optimisations (much more could be done here) ## Removed/unported features * Simple coastline detection (I didn't want this shader to rely on baked shoreline maps) * "Caustic fringe" effect * Above/below water transition droplet post effect * Underwater distortion (it's not a real physical phenomenon so I chose to remove it) * "Glitter" post effect ## Limitations Due to the required underwater shader, you may find it very difficult to adapt this to an existing project and thus it should be considered more of a prototype or proof of concept. This is also a limitation of Martins' original shader. The shader uses forward rendering and has not been tested in deferred. ================================================ FILE: Water/.gitignore ================================================ [Ll]ibrary/ [Tt]emp/ [Oo]bj/ [Bb]uild/ [Bb]uilds/ Assets/AssetStoreTools* # Visual Studio 2015 cache directory /.vs/ # Autogenerated VS/MD/Consulo solution and project files ExportedObj/ .consulo/ *.csproj *.unityproj *.sln *.suo *.tmp *.user *.userprefs *.pidb *.booproj *.svd *.pdb # Unity3D generated meta files *.pidb.meta *.pdb.meta # Unity3D Generated File On Crash Reports sysinfo.txt # Builds *.apk #*.unitypackage ================================================ FILE: Water/Assets/Plugins/Editor/.gitignore ================================================ [Jj]et[Bb]rains/ ================================================ FILE: Water/Assets/Plugins/Editor/JetBrains.meta ================================================ fileFormatVersion: 2 guid: 000f9a97b0c034e85834df174bcc9506 folderAsset: yes DefaultImporter: externalObjects: {} userData: assetBundleName: assetBundleVariant: ================================================ FILE: Water/Assets/Plugins/Editor.meta ================================================ fileFormatVersion: 2 guid: 9eaaf39c5592849cb9a2985b96401ad8 folderAsset: yes DefaultImporter: externalObjects: {} userData: assetBundleName: assetBundleVariant: ================================================ FILE: Water/Assets/Plugins.meta ================================================ fileFormatVersion: 2 guid: 640382a6168b94ee69c490b6eb71a5d9 folderAsset: yes DefaultImporter: externalObjects: {} userData: assetBundleName: assetBundleVariant: ================================================ FILE: Water/Assets/Water/Materials/Skybox.mat ================================================ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!21 &2100000 Material: serializedVersion: 6 m_ObjectHideFlags: 0 m_PrefabParentObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_Name: Skybox m_Shader: {fileID: 106, guid: 0000000000000000f000000000000000, type: 0} m_ShaderKeywords: _SUNDISK_HIGH_QUALITY m_LightmapFlags: 4 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 m_CustomRenderQueue: -1 stringTagMap: {} disabledShaderPasses: [] m_SavedProperties: serializedVersion: 3 m_TexEnvs: [] m_Floats: - _AtmosphereThickness: 1 - _Exposure: 1.3 - _SunDisk: 2 - _SunSize: 0.04 - _SunSizeConvergence: 5 m_Colors: - _GroundColor: {r: 0.36899996, g: 0.34899998, b: 0.34099993, a: 1} - _SkyTint: {r: 0.5, g: 0.5, b: 0.5, a: 1} ================================================ FILE: Water/Assets/Water/Materials/Skybox.mat.meta ================================================ fileFormatVersion: 2 guid: 4a8aa65aac3ec4b3fa72f539852b84f9 NativeFormatImporter: externalObjects: {} mainObjectFileID: 2100000 userData: assetBundleName: assetBundleVariant: ================================================ FILE: Water/Assets/Water/Materials/Underwater.mat ================================================ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!21 &2100000 Material: serializedVersion: 6 m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_Name: Underwater m_Shader: {fileID: 4800000, guid: 891ac3ba7a1754646afff4b89a5a8a80, type: 3} m_ShaderKeywords: m_LightmapFlags: 4 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 m_CustomRenderQueue: -1 stringTagMap: {} disabledShaderPasses: [] m_SavedProperties: serializedVersion: 3 m_TexEnvs: - _BumpMap: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _DetailAlbedoMap: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _DetailMask: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _DetailNormalMap: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _EmissionMap: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _MainTex: m_Texture: {fileID: 2800000, guid: 65b81ca5f830e4f1f87398de1eedbad9, type: 3} m_Scale: {x: 5, y: 5} m_Offset: {x: 0, y: 0} - _MetallicGlossMap: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _NormalTex: m_Texture: {fileID: 2800000, guid: eca2a7fa5744c453b8a3dd4d9549b767, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _OcclusionMap: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _ParallaxMap: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} m_Floats: - _BumpScale: 1 - _Choppy: 0.8 - _Cutoff: 0.5 - _DetailNormalMapScale: 1 - _DstBlend: 0 - _GlossMapScale: 1 - _Glossiness: 0.5 - _GlossyReflections: 1 - _Metallic: 0 - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 - _UVSec: 0 - _Visibility: 28 - _WaterLevel: 0 - _WaveScale: 1 - _WinSpeed: 112.3 - _WindSpeed: 0.6 - _ZWrite: 1 m_Colors: - _Color: {r: 1, g: 1, b: 1, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _WindDirection: {r: -0.5, g: -0.8, b: 0, a: 0} ================================================ FILE: Water/Assets/Water/Materials/Underwater.mat.meta ================================================ fileFormatVersion: 2 guid: 06618ef051ba8422a85c276d05b5be98 NativeFormatImporter: externalObjects: {} mainObjectFileID: 2100000 userData: assetBundleName: assetBundleVariant: ================================================ FILE: Water/Assets/Water/Materials/WaterSurface.mat ================================================ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!21 &2100000 Material: serializedVersion: 6 m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_Name: WaterSurface m_Shader: {fileID: 4800000, guid: 6cdea64d237bb4dfa80eddee7ad81c28, type: 3} m_ShaderKeywords: m_LightmapFlags: 4 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 m_CustomRenderQueue: -1 stringTagMap: {} disabledShaderPasses: [] m_SavedProperties: serializedVersion: 3 m_TexEnvs: - _HeightTex: m_Texture: {fileID: 2800000, guid: 86b0a0e99191f4d88a704b569144426d, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _NormalTex: m_Texture: {fileID: 2800000, guid: eca2a7fa5744c453b8a3dd4d9549b767, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _ReflectionTex: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _WaterDepthTex: m_Texture: {fileID: 2800000, guid: 756446f7a0bd14438bd73b8cde7fb0cd, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} m_Floats: - _Aberration: 0.002 - _AberrationAmount: 0.002 - _Bumpiness: 0.06 - _Choppy: 0.8 - _ReflBump: 0.04 - _ReflDistortionAmount: 0.03 - _RefrBump: 0.03 - _RefrDistortionAmount: 0.04 - _ScatterAmount: 3.5 - _Visibility: 28 - _WaterLevel: 0 - _WaveScale: 1 - _WindSpeed: 0.6 m_Colors: - _ScatterColor: {r: 0, g: 1, b: 0.95, a: 1} - _WindDirection: {r: -0.5, g: -0.8, b: 0, a: 0} ================================================ FILE: Water/Assets/Water/Materials/WaterSurface.mat.meta ================================================ fileFormatVersion: 2 guid: 784f7b1ea93064cb79f69935ad0efad4 NativeFormatImporter: externalObjects: {} mainObjectFileID: 2100000 userData: assetBundleName: assetBundleVariant: ================================================ FILE: Water/Assets/Water/Materials.meta ================================================ fileFormatVersion: 2 guid: 8ba53af3751684390ae8d35fde42204f folderAsset: yes DefaultImporter: externalObjects: {} userData: assetBundleName: assetBundleVariant: ================================================ FILE: Water/Assets/Water/Models/terrain.fbx.meta ================================================ fileFormatVersion: 2 guid: 230faa639d2cf4ee98a023a6526b47ff ModelImporter: serializedVersion: 22 fileIDToRecycleName: 100000: //RootNode 400000: //RootNode 2100000: ground 2300000: //RootNode 3300000: //RootNode 4300000: ground externalObjects: {} materials: importMaterials: 0 materialName: 0 materialSearch: 1 materialLocation: 1 animations: legacyGenerateAnimations: 4 bakeSimulation: 0 resampleCurves: 1 optimizeGameObjects: 0 motionNodeName: rigImportErrors: rigImportWarnings: animationImportErrors: animationImportWarnings: animationRetargetingWarnings: animationDoRetargetingWarnings: 0 importAnimatedCustomProperties: 0 importConstraints: 0 animationCompression: 1 animationRotationError: 0.5 animationPositionError: 0.5 animationScaleError: 0.5 animationWrapMode: 0 extraExposedTransformPaths: [] extraUserProperties: [] clipAnimations: [] isReadable: 1 meshes: lODScreenPercentages: [] globalScale: 1 meshCompression: 0 addColliders: 0 importVisibility: 1 importBlendShapes: 1 importCameras: 1 importLights: 1 swapUVChannels: 0 generateSecondaryUV: 0 useFileUnits: 1 optimizeMeshForGPU: 1 keepQuads: 0 weldVertices: 1 preserveHierarchy: 0 indexFormat: 0 secondaryUVAngleDistortion: 8 secondaryUVAreaDistortion: 15.000001 secondaryUVHardAngle: 88 secondaryUVPackMargin: 4 useFileScale: 1 tangentSpace: normalSmoothAngle: 60 normalImportMode: 0 tangentImportMode: 3 normalCalculationMode: 4 importAnimation: 0 copyAvatar: 0 humanDescription: serializedVersion: 2 human: [] skeleton: [] armTwist: 0.5 foreArmTwist: 0.5 upperLegTwist: 0.5 legTwist: 0.5 armStretch: 0.05 legStretch: 0.05 feetSpacing: 0 rootMotionBoneName: rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1} hasTranslationDoF: 0 hasExtraRoot: 0 skeletonHasParents: 1 lastHumanDescriptionAvatarSource: {instanceID: 0} animationType: 0 humanoidOversampling: 1 additionalBone: 0 userData: assetBundleName: assetBundleVariant: ================================================ FILE: Water/Assets/Water/Models/watersurface.fbx.meta ================================================ fileFormatVersion: 2 guid: f887aba9d4c2b4ed7aa199c12fda2221 ModelImporter: serializedVersion: 22 fileIDToRecycleName: 100000: blur 100002: Cube 100004: Cube.001 100006: flare1 100008: ground 100010: lens 100012: Plane.000 100014: skybox 100016: Sphere.000 100018: Sphere.001 100020: Sphere.002 100022: Sphere.003 100024: water 100026: //RootNode 400000: blur 400002: Cube 400004: Cube.001 400006: flare1 400008: ground 400010: lens 400012: Plane.000 400014: skybox 400016: Sphere.000 400018: Sphere.001 400020: Sphere.002 400022: Sphere.003 400024: water 400026: //RootNode 2100000: ground 2100002: Material 2100004: flare.002 2100006: lens 2100008: sky 2100010: water 2100012: flare.001 2100014: blur 2300000: blur 2300002: Cube 2300004: Cube.001 2300006: flare1 2300008: ground 2300010: lens 2300012: Plane.000 2300014: skybox 2300016: Sphere.000 2300018: Sphere.001 2300020: Sphere.002 2300022: Sphere.003 2300024: water 3300000: blur 3300002: Cube 3300004: Cube.001 3300006: flare1 3300008: ground 3300010: lens 3300012: Plane.000 3300014: skybox 3300016: Sphere.000 3300018: Sphere.001 3300020: Sphere.002 3300022: Sphere.003 3300024: water 4300000: Sphere.003 4300002: Sphere.002 4300004: Sphere.000 4300006: Sphere.001 4300008: Cube 4300010: flare1 4300012: lens 4300014: skybox 4300016: water 4300018: Plane.000 4300020: blur 4300022: Cube.001 4300024: ground externalObjects: {} materials: importMaterials: 1 materialName: 0 materialSearch: 1 materialLocation: 1 animations: legacyGenerateAnimations: 4 bakeSimulation: 0 resampleCurves: 1 optimizeGameObjects: 0 motionNodeName: rigImportErrors: rigImportWarnings: animationImportErrors: animationImportWarnings: animationRetargetingWarnings: animationDoRetargetingWarnings: 0 importAnimatedCustomProperties: 0 importConstraints: 0 animationCompression: 1 animationRotationError: 0.5 animationPositionError: 0.5 animationScaleError: 0.5 animationWrapMode: 0 extraExposedTransformPaths: [] extraUserProperties: [] clipAnimations: [] isReadable: 1 meshes: lODScreenPercentages: [] globalScale: 1 meshCompression: 0 addColliders: 0 importVisibility: 1 importBlendShapes: 1 importCameras: 1 importLights: 1 swapUVChannels: 0 generateSecondaryUV: 0 useFileUnits: 1 optimizeMeshForGPU: 1 keepQuads: 0 weldVertices: 1 preserveHierarchy: 0 indexFormat: 0 secondaryUVAngleDistortion: 8 secondaryUVAreaDistortion: 15.000001 secondaryUVHardAngle: 88 secondaryUVPackMargin: 4 useFileScale: 1 tangentSpace: normalSmoothAngle: 60 normalImportMode: 0 tangentImportMode: 3 normalCalculationMode: 4 importAnimation: 1 copyAvatar: 0 humanDescription: serializedVersion: 2 human: [] skeleton: [] armTwist: 0.5 foreArmTwist: 0.5 upperLegTwist: 0.5 legTwist: 0.5 armStretch: 0.05 legStretch: 0.05 feetSpacing: 0 rootMotionBoneName: rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1} hasTranslationDoF: 0 hasExtraRoot: 0 skeletonHasParents: 1 lastHumanDescriptionAvatarSource: {instanceID: 0} animationType: 0 humanoidOversampling: 1 additionalBone: 0 userData: assetBundleName: assetBundleVariant: ================================================ FILE: Water/Assets/Water/Models.meta ================================================ fileFormatVersion: 2 guid: c067694b1663f4a319591cbac03ae3d3 folderAsset: yes DefaultImporter: externalObjects: {} userData: assetBundleName: assetBundleVariant: ================================================ FILE: Water/Assets/Water/Prefabs/Water Surface.prefab ================================================ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!1001 &100100000 Prefab: m_ObjectHideFlags: 1 serializedVersion: 2 m_Modification: m_TransformParent: {fileID: 0} m_Modifications: [] m_RemovedComponents: [] m_SourcePrefab: {fileID: 0} m_RootGameObject: {fileID: 1142640042221668} m_IsPrefabAsset: 1 --- !u!1 &1142640042221668 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 100100000} serializedVersion: 6 m_Component: - component: {fileID: 4301781751017244} - component: {fileID: 33632951515453430} - component: {fileID: 23948156561336780} - component: {fileID: 114451531188865348} m_Layer: 4 m_Name: Water Surface m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 --- !u!4 &4301781751017244 Transform: m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 100100000} m_GameObject: {fileID: 1142640042221668} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!23 &23948156561336780 MeshRenderer: m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 100100000} m_GameObject: {fileID: 1142640042221668} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 1 m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RenderingLayerMask: 4294967295 m_Materials: - {fileID: 2100000, guid: 784f7b1ea93064cb79f69935ad0efad4, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 m_StaticBatchRoot: {fileID: 0} m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 m_StitchLightmapSeams: 0 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 --- !u!33 &33632951515453430 MeshFilter: m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 100100000} m_GameObject: {fileID: 1142640042221668} m_Mesh: {fileID: 4300016, guid: f887aba9d4c2b4ed7aa199c12fda2221, type: 3} --- !u!114 &114451531188865348 MonoBehaviour: m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 100100000} m_GameObject: {fileID: 1142640042221668} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: cf6badaa217364968a525ba8a44a3fe3, type: 3} m_Name: m_EditorClassIdentifier: disablePixelLights: 0 reflectionDownsample: 2 clipPlaneOffset: 0.2 m_ReflectLayers: serializedVersion: 2 m_Bits: 4294967295 settings: normalTexture: {fileID: 2800000, guid: eca2a7fa5744c453b8a3dd4d9549b767, type: 3} windDirection: {x: -0.5, y: -0.8} windSpeed: 0.6 visibility: 28 waveScale: 1 scatterAmount: 3.5 scatterColor: {r: 0, g: 1, b: 0.95, a: 1} reflectionDistortionAmount: 0.03 refractionDistortionAmount: 0.04 aberrationAmount: 0.002 mudExtinction: {r: 1, g: 0.7, b: 0.5, a: 1} waterExtinction: {r: 0.6, g: 0.8, b: 1, a: 1} sunExtinction: {r: 0.45, g: 0.55, b: 0.7, a: 1} surfaceMaterial: {fileID: 2100000, guid: 784f7b1ea93064cb79f69935ad0efad4, type: 2} groundMaterial: {fileID: 2100000, guid: 06618ef051ba8422a85c276d05b5be98, type: 2} sunLight: {fileID: 0} ================================================ FILE: Water/Assets/Water/Prefabs/Water Surface.prefab.meta ================================================ fileFormatVersion: 2 guid: 20de1bf9e984c4606a378e2e88960fe2 NativeFormatImporter: externalObjects: {} mainObjectFileID: 100100000 userData: assetBundleName: assetBundleVariant: ================================================ FILE: Water/Assets/Water/Prefabs.meta ================================================ fileFormatVersion: 2 guid: a6b6b767a300b4426ba058af2c640842 folderAsset: yes DefaultImporter: externalObjects: {} userData: assetBundleName: assetBundleVariant: ================================================ FILE: Water/Assets/Water/Scenes/SampleScene/LightingData.asset.meta ================================================ fileFormatVersion: 2 guid: f1061ecdfe0124098a6f7abd28d41fbb NativeFormatImporter: externalObjects: {} mainObjectFileID: 25800000 userData: assetBundleName: assetBundleVariant: ================================================ FILE: Water/Assets/Water/Scenes/SampleScene/ReflectionProbe-0.exr.meta ================================================ fileFormatVersion: 2 guid: 71213cc1419644e388aecddf279aef6b TextureImporter: fileIDToRecycleName: 8900000: generatedCubemap externalObjects: {} serializedVersion: 5 mipmaps: mipMapMode: 0 enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 borderMipMap: 0 mipMapsPreserveCoverage: 0 alphaTestReferenceValue: 0.5 mipMapFadeDistanceStart: 1 mipMapFadeDistanceEnd: 3 bumpmap: convertToNormalMap: 0 externalNormalMap: 0 heightScale: 0.25 normalMapFilter: 0 isReadable: 0 grayScaleToAlpha: 0 generateCubemap: 6 cubemapConvolution: 1 seamlessCubemap: 1 textureFormat: 1 maxTextureSize: 2048 textureSettings: serializedVersion: 2 filterMode: 2 aniso: 0 mipBias: 0 wrapU: 1 wrapV: 1 wrapW: 1 nPOTScale: 1 lightmap: 0 compressionQuality: 50 spriteMode: 0 spriteExtrude: 1 spriteMeshType: 1 alignment: 0 spritePivot: {x: 0.5, y: 0.5} spritePixelsToUnits: 100 spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteGenerateFallbackPhysicsShape: 1 alphaUsage: 1 alphaIsTransparency: 0 spriteTessellationDetail: -1 textureType: 0 textureShape: 2 singleChannelComponent: 0 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 platformSettings: - serializedVersion: 2 buildTarget: DefaultTexturePlatform maxTextureSize: 2048 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 compressionQuality: 100 crunchedCompression: 0 allowsAlphaSplitting: 0 overridden: 0 androidETC2FallbackOverride: 0 spriteSheet: serializedVersion: 2 sprites: [] outline: [] physicsShape: [] bones: [] spriteID: vertices: [] indices: edges: [] weights: [] spritePackingTag: userData: assetBundleName: assetBundleVariant: ================================================ FILE: Water/Assets/Water/Scenes/SampleScene/ReflectionProbe-1.exr.meta ================================================ fileFormatVersion: 2 guid: 5a58a4cc09abf44d291f28fa3ee7ddac TextureImporter: fileIDToRecycleName: 8900000: generatedCubemap externalObjects: {} serializedVersion: 5 mipmaps: mipMapMode: 0 enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 borderMipMap: 0 mipMapsPreserveCoverage: 0 alphaTestReferenceValue: 0.5 mipMapFadeDistanceStart: 1 mipMapFadeDistanceEnd: 3 bumpmap: convertToNormalMap: 0 externalNormalMap: 0 heightScale: 0.25 normalMapFilter: 0 isReadable: 0 grayScaleToAlpha: 0 generateCubemap: 6 cubemapConvolution: 1 seamlessCubemap: 1 textureFormat: 1 maxTextureSize: 2048 textureSettings: serializedVersion: 2 filterMode: 2 aniso: 0 mipBias: 0 wrapU: 1 wrapV: 1 wrapW: 1 nPOTScale: 1 lightmap: 0 compressionQuality: 50 spriteMode: 0 spriteExtrude: 1 spriteMeshType: 1 alignment: 0 spritePivot: {x: 0.5, y: 0.5} spritePixelsToUnits: 100 spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteGenerateFallbackPhysicsShape: 1 alphaUsage: 1 alphaIsTransparency: 0 spriteTessellationDetail: -1 textureType: 0 textureShape: 2 singleChannelComponent: 0 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 platformSettings: - serializedVersion: 2 buildTarget: DefaultTexturePlatform maxTextureSize: 2048 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 compressionQuality: 100 crunchedCompression: 0 allowsAlphaSplitting: 0 overridden: 0 androidETC2FallbackOverride: 0 spriteSheet: serializedVersion: 2 sprites: [] outline: [] physicsShape: [] bones: [] spriteID: vertices: [] indices: edges: [] weights: [] spritePackingTag: userData: assetBundleName: assetBundleVariant: ================================================ FILE: Water/Assets/Water/Scenes/SampleScene.meta ================================================ fileFormatVersion: 2 guid: 4170843eeef83425a9a6c96eaf19fdb5 folderAsset: yes DefaultImporter: externalObjects: {} userData: assetBundleName: assetBundleVariant: ================================================ FILE: Water/Assets/Water/Scenes/SampleScene.unity ================================================ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!29 &1 OcclusionCullingSettings: m_ObjectHideFlags: 0 serializedVersion: 2 m_OcclusionBakeSettings: smallestOccluder: 5 smallestHole: 0.25 backfaceThreshold: 100 m_SceneGUID: 00000000000000000000000000000000 m_OcclusionCullingData: {fileID: 0} --- !u!104 &2 RenderSettings: m_ObjectHideFlags: 0 serializedVersion: 9 m_Fog: 0 m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} m_FogMode: 3 m_FogDensity: 0.01 m_LinearFogStart: 0 m_LinearFogEnd: 300 m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} m_AmbientIntensity: 1 m_AmbientMode: 0 m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} m_SkyboxMaterial: {fileID: 2100000, guid: 4a8aa65aac3ec4b3fa72f539852b84f9, type: 2} m_HaloStrength: 0.5 m_FlareStrength: 1 m_FlareFadeSpeed: 3 m_HaloTexture: {fileID: 0} m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} m_DefaultReflectionMode: 0 m_DefaultReflectionResolution: 128 m_ReflectionBounces: 1 m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} m_IndirectSpecularColor: {r: 0.18278779, g: 0.22849165, b: 0.30702552, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 serializedVersion: 11 m_GIWorkflowMode: 1 m_GISettings: serializedVersion: 2 m_BounceScale: 1 m_IndirectOutputScale: 1 m_AlbedoBoost: 1 m_TemporalCoherenceThreshold: 1 m_EnvironmentLightingMode: 0 m_EnableBakedLightmaps: 0 m_EnableRealtimeLightmaps: 0 m_LightmapEditorSettings: serializedVersion: 10 m_Resolution: 2 m_BakeResolution: 10 m_AtlasSize: 512 m_AO: 0 m_AOMaxDistance: 1 m_CompAOExponent: 1 m_CompAOExponentDirect: 0 m_Padding: 2 m_LightmapParameters: {fileID: 0} m_LightmapsBakeMode: 1 m_TextureCompression: 1 m_FinalGather: 0 m_FinalGatherFiltering: 1 m_FinalGatherRayCount: 256 m_ReflectionCompression: 2 m_MixedBakeMode: 2 m_BakeBackend: 1 m_PVRSampling: 1 m_PVRDirectSampleCount: 32 m_PVRSampleCount: 256 m_PVRBounces: 2 m_PVRFilterTypeDirect: 0 m_PVRFilterTypeIndirect: 0 m_PVRFilterTypeAO: 0 m_PVRFilteringMode: 1 m_PVRCulling: 1 m_PVRFilteringGaussRadiusDirect: 1 m_PVRFilteringGaussRadiusIndirect: 5 m_PVRFilteringGaussRadiusAO: 2 m_PVRFilteringAtrousPositionSigmaDirect: 0.5 m_PVRFilteringAtrousPositionSigmaIndirect: 2 m_PVRFilteringAtrousPositionSigmaAO: 1 m_ShowResolutionOverlay: 1 m_LightingDataAsset: {fileID: 112000002, guid: f1061ecdfe0124098a6f7abd28d41fbb, type: 2} m_UseShadowmask: 1 --- !u!196 &4 NavMeshSettings: serializedVersion: 2 m_ObjectHideFlags: 0 m_BuildSettings: serializedVersion: 2 agentTypeID: 0 agentRadius: 0.5 agentHeight: 2 agentSlope: 45 agentClimb: 0.4 ledgeDropHeight: 0 maxJumpAcrossDistance: 0 minRegionArea: 2 manualCellSize: 0 cellSize: 0.16666667 manualTileSize: 0 tileSize: 256 accuratePlacement: 0 debug: m_Flags: 0 m_NavMeshData: {fileID: 0} --- !u!1 &170076733 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 170076735} - component: {fileID: 170076734} - component: {fileID: 170076736} m_Layer: 0 m_Name: Directional Light m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 --- !u!108 &170076734 Light: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 170076733} m_Enabled: 1 serializedVersion: 8 m_Type: 1 m_Color: {r: 1, g: 0.9508428, b: 0.9582202, a: 0} m_Intensity: 1 m_Range: 10 m_SpotAngle: 30 m_CookieSize: 10 m_Shadows: m_Type: 2 m_Resolution: -1 m_CustomResolution: -1 m_Strength: 1 m_Bias: 0.05 m_NormalBias: 0.4 m_NearPlane: 0.2 m_Cookie: {fileID: 0} m_DrawHalo: 0 m_Flare: {fileID: 0} m_RenderMode: 0 m_CullingMask: serializedVersion: 2 m_Bits: 4294967295 m_Lightmapping: 4 m_LightShadowCasterMode: 0 m_AreaSize: {x: 1, y: 1} m_BounceIntensity: 1 m_ColorTemperature: 6570 m_UseColorTemperature: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 --- !u!4 &170076735 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 170076733} m_LocalRotation: {x: 0.8763844, y: -0.01259281, z: 0.02294891, w: 0.48090047} m_LocalPosition: {x: 0, y: 3, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 122.49, y: -3, z: 0} --- !u!114 &170076736 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 170076733} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 4b5fe6ee500ee41c39b6f3662c2fbf20, type: 3} m_Name: m_EditorClassIdentifier: extinction: {r: 0.45, g: 0.55, b: 0.7, a: 1} noonColor: {r: 1, g: 1, b: 1, a: 1} duskColor: {r: 1, g: 0.5, b: 0.2, a: 1} --- !u!1 &282840810 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 282840814} - component: {fileID: 282840813} - component: {fileID: 282840811} - component: {fileID: 282840812} - component: {fileID: 282840815} - component: {fileID: 282840817} - component: {fileID: 282840816} m_Layer: 0 m_Name: Main Camera m_TagString: MainCamera m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 --- !u!81 &282840811 AudioListener: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 282840810} m_Enabled: 1 --- !u!114 &282840812 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 282840810} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 948f4100a11a5c24981795d21301da5c, type: 3} m_Name: m_EditorClassIdentifier: volumeTrigger: {fileID: 282840814} volumeLayer: serializedVersion: 2 m_Bits: 256 stopNaNPropagation: 1 antialiasingMode: 1 temporalAntialiasing: jitterSpread: 0.75 sharpness: 0.25 stationaryBlending: 0.95 motionBlending: 0.85 subpixelMorphologicalAntialiasing: quality: 0 fastApproximateAntialiasing: fastMode: 0 keepAlpha: 0 fog: enabled: 1 excludeSkybox: 1 debugLayer: lightMeter: width: 512 height: 256 showCurves: 1 histogram: width: 512 height: 256 channel: 3 waveform: exposure: 0.12 height: 256 vectorscope: size: 256 exposure: 0.12 overlaySettings: linearDepth: 0 motionColorIntensity: 4 motionGridSize: 64 colorBlindnessType: 0 colorBlindnessStrength: 1 m_Resources: {fileID: 11400000, guid: d82512f9c8e5d4a4d938b575d47f88d4, type: 2} m_ShowToolkit: 0 m_ShowCustomSorter: 0 breakBeforeColorGrading: 0 m_BeforeTransparentBundles: [] m_BeforeStackBundles: [] m_AfterStackBundles: [] --- !u!20 &282840813 Camera: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 282840810} m_Enabled: 1 serializedVersion: 2 m_ClearFlags: 1 m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} m_projectionMatrixMode: 1 m_SensorSize: {x: 36, y: 24} m_LensShift: {x: 0, y: 0} m_FocalLength: 50 m_NormalizedViewPortRect: serializedVersion: 2 x: 0 y: 0 width: 1 height: 1 near clip plane: 0.3 far clip plane: 1000 field of view: 60 orthographic: 0 orthographic size: 5 m_Depth: -1 m_CullingMask: serializedVersion: 2 m_Bits: 4294967295 m_RenderingPath: -1 m_TargetTexture: {fileID: 0} m_TargetDisplay: 0 m_TargetEye: 3 m_HDR: 1 m_AllowMSAA: 0 m_AllowDynamicResolution: 0 m_ForceIntoRT: 1 m_OcclusionCulling: 1 m_StereoConvergence: 10 m_StereoSeparation: 0.022 --- !u!4 &282840814 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 282840810} m_LocalRotation: {x: 0.07455771, y: -0.065220244, z: 0.0048867646, w: 0.9950696} m_LocalPosition: {x: -2.29, y: 2.03, z: -2} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 8.57, y: -7.5, z: 0} --- !u!114 &282840815 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 282840810} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 55512927bb6e346438f511122529a907, type: 3} m_Name: m_EditorClassIdentifier: --- !u!54 &282840816 Rigidbody: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 282840810} serializedVersion: 2 m_Mass: 1 m_Drag: 0 m_AngularDrag: 0.05 m_UseGravity: 1 m_IsKinematic: 1 m_Interpolate: 0 m_Constraints: 0 m_CollisionDetection: 0 --- !u!135 &282840817 SphereCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 282840810} m_Material: {fileID: 0} m_IsTrigger: 0 m_Enabled: 1 serializedVersion: 2 m_Radius: 1 m_Center: {x: 0, y: 0, z: 0} --- !u!1001 &737155627 Prefab: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: m_TransformParent: {fileID: 0} m_Modifications: - target: {fileID: 4301781751017244, guid: 20de1bf9e984c4606a378e2e88960fe2, type: 2} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - target: {fileID: 4301781751017244, guid: 20de1bf9e984c4606a378e2e88960fe2, type: 2} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - target: {fileID: 4301781751017244, guid: 20de1bf9e984c4606a378e2e88960fe2, type: 2} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - target: {fileID: 4301781751017244, guid: 20de1bf9e984c4606a378e2e88960fe2, type: 2} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - target: {fileID: 4301781751017244, guid: 20de1bf9e984c4606a378e2e88960fe2, type: 2} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - target: {fileID: 4301781751017244, guid: 20de1bf9e984c4606a378e2e88960fe2, type: 2} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - target: {fileID: 4301781751017244, guid: 20de1bf9e984c4606a378e2e88960fe2, type: 2} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - target: {fileID: 4301781751017244, guid: 20de1bf9e984c4606a378e2e88960fe2, type: 2} propertyPath: m_RootOrder value: 4 objectReference: {fileID: 0} - target: {fileID: 114451531188865348, guid: 20de1bf9e984c4606a378e2e88960fe2, type: 2} propertyPath: sunLight value: objectReference: {fileID: 170076734} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 20de1bf9e984c4606a378e2e88960fe2, type: 2} m_IsPrefabAsset: 0 --- !u!1 &1094497146 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1094497150} - component: {fileID: 1094497149} - component: {fileID: 1094497148} - component: {fileID: 1094497147} - component: {fileID: 1094497151} m_Layer: 0 m_Name: Sphere (3) m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 --- !u!135 &1094497147 SphereCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 1094497146} m_Material: {fileID: 0} m_IsTrigger: 0 m_Enabled: 1 serializedVersion: 2 m_Radius: 0.5 m_Center: {x: 0, y: 0, z: 0} --- !u!23 &1094497148 MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 1094497146} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RenderingLayerMask: 4294967295 m_Materials: - {fileID: 2100000, guid: 06618ef051ba8422a85c276d05b5be98, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 m_StaticBatchRoot: {fileID: 0} m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 m_StitchLightmapSeams: 0 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 --- !u!33 &1094497149 MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 1094497146} m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} --- !u!4 &1094497150 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 1094497146} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 8.25, y: 4.5, z: 8.25} m_LocalScale: {x: 3, y: 3, z: 3} m_Children: [] m_Father: {fileID: 0} m_RootOrder: 8 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!54 &1094497151 Rigidbody: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 1094497146} serializedVersion: 2 m_Mass: 1 m_Drag: 0 m_AngularDrag: 0.05 m_UseGravity: 1 m_IsKinematic: 0 m_Interpolate: 0 m_Constraints: 0 m_CollisionDetection: 0 --- !u!1 &1128070029 stripped GameObject: m_CorrespondingSourceObject: {fileID: 100000, guid: 230faa639d2cf4ee98a023a6526b47ff, type: 3} m_PrefabInternal: {fileID: 1554616083} --- !u!64 &1128070030 MeshCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 1128070029} m_Material: {fileID: 0} m_IsTrigger: 0 m_Enabled: 1 serializedVersion: 3 m_Convex: 0 m_CookingOptions: 14 m_SkinWidth: 0.01 m_Mesh: {fileID: 4300000, guid: 230faa639d2cf4ee98a023a6526b47ff, type: 3} --- !u!1001 &1554616083 Prefab: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: m_TransformParent: {fileID: 0} m_Modifications: - target: {fileID: 400000, guid: 230faa639d2cf4ee98a023a6526b47ff, type: 3} propertyPath: m_LocalPosition.x value: -0 objectReference: {fileID: 0} - target: {fileID: 400000, guid: 230faa639d2cf4ee98a023a6526b47ff, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - target: {fileID: 400000, guid: 230faa639d2cf4ee98a023a6526b47ff, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - target: {fileID: 400000, guid: 230faa639d2cf4ee98a023a6526b47ff, type: 3} propertyPath: m_LocalRotation.x value: 0.000000021855694 objectReference: {fileID: 0} - target: {fileID: 400000, guid: 230faa639d2cf4ee98a023a6526b47ff, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - target: {fileID: 400000, guid: 230faa639d2cf4ee98a023a6526b47ff, type: 3} propertyPath: m_LocalRotation.z value: -0 objectReference: {fileID: 0} - target: {fileID: 400000, guid: 230faa639d2cf4ee98a023a6526b47ff, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - target: {fileID: 400000, guid: 230faa639d2cf4ee98a023a6526b47ff, type: 3} propertyPath: m_RootOrder value: 3 objectReference: {fileID: 0} - target: {fileID: 2300000, guid: 230faa639d2cf4ee98a023a6526b47ff, type: 3} propertyPath: m_Materials.Array.data[0] value: objectReference: {fileID: 2100000, guid: 06618ef051ba8422a85c276d05b5be98, type: 2} - target: {fileID: 100000, guid: 230faa639d2cf4ee98a023a6526b47ff, type: 3} propertyPath: m_Name value: Terrain objectReference: {fileID: 0} - target: {fileID: 100000, guid: 230faa639d2cf4ee98a023a6526b47ff, type: 3} propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 230faa639d2cf4ee98a023a6526b47ff, type: 3} m_IsPrefabAsset: 0 --- !u!1 &1730418754 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1730418758} - component: {fileID: 1730418757} - component: {fileID: 1730418756} - component: {fileID: 1730418755} - component: {fileID: 1730418759} m_Layer: 0 m_Name: Sphere m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 --- !u!135 &1730418755 SphereCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 1730418754} m_Material: {fileID: 0} m_IsTrigger: 0 m_Enabled: 1 serializedVersion: 2 m_Radius: 0.5 m_Center: {x: 0, y: 0, z: 0} --- !u!23 &1730418756 MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 1730418754} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RenderingLayerMask: 4294967295 m_Materials: - {fileID: 2100000, guid: 06618ef051ba8422a85c276d05b5be98, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 m_StaticBatchRoot: {fileID: 0} m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 m_StitchLightmapSeams: 0 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 --- !u!33 &1730418757 MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 1730418754} m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} --- !u!4 &1730418758 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 1730418754} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -9.25, y: 2.25, z: 9.5} m_LocalScale: {x: 3, y: 3, z: 3} m_Children: [] m_Father: {fileID: 0} m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!54 &1730418759 Rigidbody: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 1730418754} serializedVersion: 2 m_Mass: 1 m_Drag: 0 m_AngularDrag: 0.05 m_UseGravity: 1 m_IsKinematic: 0 m_Interpolate: 0 m_Constraints: 0 m_CollisionDetection: 0 --- !u!1 &1736917589 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1736917593} - component: {fileID: 1736917592} - component: {fileID: 1736917591} - component: {fileID: 1736917590} - component: {fileID: 1736917594} m_Layer: 0 m_Name: Sphere (2) m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 --- !u!135 &1736917590 SphereCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 1736917589} m_Material: {fileID: 0} m_IsTrigger: 0 m_Enabled: 1 serializedVersion: 2 m_Radius: 0.5 m_Center: {x: 0, y: 0, z: 0} --- !u!23 &1736917591 MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 1736917589} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RenderingLayerMask: 4294967295 m_Materials: - {fileID: 2100000, guid: 06618ef051ba8422a85c276d05b5be98, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 m_StaticBatchRoot: {fileID: 0} m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 m_StitchLightmapSeams: 0 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 --- !u!33 &1736917592 MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 1736917589} m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} --- !u!4 &1736917593 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 1736917589} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -13.25, y: 0, z: 24} m_LocalScale: {x: 3, y: 3, z: 3} m_Children: [] m_Father: {fileID: 0} m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!54 &1736917594 Rigidbody: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 1736917589} serializedVersion: 2 m_Mass: 1 m_Drag: 0 m_AngularDrag: 0.05 m_UseGravity: 1 m_IsKinematic: 0 m_Interpolate: 0 m_Constraints: 0 m_CollisionDetection: 0 --- !u!1 &1826373489 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1826373492} - component: {fileID: 1826373490} m_Layer: 8 m_Name: Post-process Volume m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 --- !u!114 &1826373490 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 1826373489} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 8b9a305e18de0c04dbd257a21cd47087, type: 3} m_Name: m_EditorClassIdentifier: sharedProfile: {fileID: 11400000, guid: fe7b519646b984bcd9778a537cbc164c, type: 2} isGlobal: 1 blendDistance: 0 weight: 1 priority: 0 --- !u!4 &1826373492 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 1826373489} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2131938256 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 2131938260} - component: {fileID: 2131938259} - component: {fileID: 2131938258} - component: {fileID: 2131938257} - component: {fileID: 2131938261} m_Layer: 0 m_Name: Sphere (1) m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 --- !u!135 &2131938257 SphereCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 2131938256} m_Material: {fileID: 0} m_IsTrigger: 0 m_Enabled: 1 serializedVersion: 2 m_Radius: 0.5 m_Center: {x: 0, y: 0, z: 0} --- !u!23 &2131938258 MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 2131938256} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RenderingLayerMask: 4294967295 m_Materials: - {fileID: 2100000, guid: 06618ef051ba8422a85c276d05b5be98, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 m_StaticBatchRoot: {fileID: 0} m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 m_StitchLightmapSeams: 0 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 --- !u!33 &2131938259 MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 2131938256} m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} --- !u!4 &2131938260 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 2131938256} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 8, y: 6, z: 19.5} m_LocalScale: {x: 3, y: 3, z: 3} m_Children: [] m_Father: {fileID: 0} m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!54 &2131938261 Rigidbody: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 2131938256} serializedVersion: 2 m_Mass: 1 m_Drag: 0 m_AngularDrag: 0.05 m_UseGravity: 1 m_IsKinematic: 0 m_Interpolate: 0 m_Constraints: 0 m_CollisionDetection: 0 ================================================ FILE: Water/Assets/Water/Scenes/SampleScene.unity.meta ================================================ fileFormatVersion: 2 guid: 99c9720ab356a0642a771bea13969a05 DefaultImporter: externalObjects: {} userData: assetBundleName: assetBundleVariant: ================================================ FILE: Water/Assets/Water/Scenes/SampleScene_Profiles/Post-process Volume Profile.asset ================================================ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!114 &11400000 MonoBehaviour: m_ObjectHideFlags: 0 m_PrefabParentObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 8e6292b2c06870d4495f009f912b9600, type: 3} m_Name: Post-process Volume Profile m_EditorClassIdentifier: settings: - {fileID: 114668727993528958} - {fileID: 114268534441347778} - {fileID: 114533367690942200} --- !u!114 &114268534441347778 MonoBehaviour: m_ObjectHideFlags: 3 m_PrefabParentObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: adb84e30e02715445aeb9959894e3b4d, type: 3} m_Name: ColorGrading m_EditorClassIdentifier: active: 1 enabled: overrideState: 1 value: 1 gradingMode: overrideState: 0 value: 1 externalLut: overrideState: 0 value: {fileID: 0} defaultState: 1 tonemapper: overrideState: 1 value: 2 toneCurveToeStrength: overrideState: 0 value: 0 toneCurveToeLength: overrideState: 0 value: 0.5 toneCurveShoulderStrength: overrideState: 0 value: 0 toneCurveShoulderLength: overrideState: 0 value: 0.5 toneCurveShoulderAngle: overrideState: 0 value: 0 toneCurveGamma: overrideState: 0 value: 1 ldrLut: overrideState: 0 value: {fileID: 0} defaultState: 4 ldrLutContribution: overrideState: 0 value: 1 temperature: overrideState: 0 value: -15.68 tint: overrideState: 0 value: 0 colorFilter: overrideState: 0 value: {r: 1, g: 1, b: 1, a: 1} hueShift: overrideState: 0 value: 0 saturation: overrideState: 0 value: 0 brightness: overrideState: 0 value: 0 postExposure: overrideState: 1 value: -0.25 contrast: overrideState: 1 value: 25 mixerRedOutRedIn: overrideState: 0 value: 100 mixerRedOutGreenIn: overrideState: 0 value: 0 mixerRedOutBlueIn: overrideState: 0 value: 0 mixerGreenOutRedIn: overrideState: 0 value: 0 mixerGreenOutGreenIn: overrideState: 0 value: 100 mixerGreenOutBlueIn: overrideState: 0 value: 0 mixerBlueOutRedIn: overrideState: 0 value: 0 mixerBlueOutGreenIn: overrideState: 0 value: 0 mixerBlueOutBlueIn: overrideState: 0 value: 100 lift: overrideState: 0 value: {x: 1, y: 1, z: 1, w: 0} gamma: overrideState: 0 value: {x: 1, y: 1, z: 1, w: 0} gain: overrideState: 0 value: {x: 1, y: 1, z: 1, w: 0} masterCurve: overrideState: 0 value: curve: serializedVersion: 2 m_Curve: - serializedVersion: 3 time: 0 value: 0 inSlope: 1 outSlope: 1 tangentMode: 0 weightedMode: 0 inWeight: 0 outWeight: 0 - serializedVersion: 3 time: 1 value: 1 inSlope: 1 outSlope: 1 tangentMode: 0 weightedMode: 0 inWeight: 0 outWeight: 0 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 m_Loop: 0 m_ZeroValue: 0 m_Range: 1 cachedData: - 0 - 0.0078125 - 0.015625 - 0.0234375 - 0.03125 - 0.0390625 - 0.046875 - 0.0546875 - 0.0625 - 0.0703125 - 0.078125 - 0.0859375 - 0.09375 - 0.1015625 - 0.109375 - 0.1171875 - 0.125 - 0.1328125 - 0.140625 - 0.1484375 - 0.15625 - 0.1640625 - 0.171875 - 0.1796875 - 0.1875 - 0.1953125 - 0.203125 - 0.2109375 - 0.21875 - 0.2265625 - 0.234375 - 0.2421875 - 0.25 - 0.2578125 - 0.265625 - 0.2734375 - 0.28125 - 0.2890625 - 0.296875 - 0.3046875 - 0.3125 - 0.3203125 - 0.328125 - 0.3359375 - 0.34375 - 0.3515625 - 0.359375 - 0.3671875 - 0.375 - 0.3828125 - 0.390625 - 0.3984375 - 0.40625 - 0.4140625 - 0.421875 - 0.4296875 - 0.4375 - 0.4453125 - 0.453125 - 0.4609375 - 0.46875 - 0.4765625 - 0.484375 - 0.4921875 - 0.5 - 0.5078125 - 0.515625 - 0.5234375 - 0.53125 - 0.5390625 - 0.546875 - 0.5546875 - 0.5625 - 0.5703125 - 0.578125 - 0.5859375 - 0.59375 - 0.6015625 - 0.609375 - 0.6171875 - 0.625 - 0.6328125 - 0.640625 - 0.6484375 - 0.65625 - 0.6640625 - 0.671875 - 0.6796875 - 0.6875 - 0.6953125 - 0.703125 - 0.7109375 - 0.71875 - 0.7265625 - 0.734375 - 0.7421875 - 0.75 - 0.7578125 - 0.765625 - 0.7734375 - 0.78125 - 0.7890625 - 0.796875 - 0.8046875 - 0.8125 - 0.8203125 - 0.828125 - 0.8359375 - 0.84375 - 0.8515625 - 0.859375 - 0.8671875 - 0.875 - 0.8828125 - 0.890625 - 0.8984375 - 0.90625 - 0.9140625 - 0.921875 - 0.9296875 - 0.9375 - 0.9453125 - 0.953125 - 0.9609375 - 0.96875 - 0.9765625 - 0.984375 - 0.9921875 redCurve: overrideState: 0 value: curve: serializedVersion: 2 m_Curve: - serializedVersion: 3 time: 0 value: 0 inSlope: 1 outSlope: 1 tangentMode: 0 weightedMode: 0 inWeight: 0 outWeight: 0 - serializedVersion: 3 time: 1 value: 1 inSlope: 1 outSlope: 1 tangentMode: 0 weightedMode: 0 inWeight: 0 outWeight: 0 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 m_Loop: 0 m_ZeroValue: 0 m_Range: 1 cachedData: - 0 - 0.0078125 - 0.015625 - 0.0234375 - 0.03125 - 0.0390625 - 0.046875 - 0.0546875 - 0.0625 - 0.0703125 - 0.078125 - 0.0859375 - 0.09375 - 0.1015625 - 0.109375 - 0.1171875 - 0.125 - 0.1328125 - 0.140625 - 0.1484375 - 0.15625 - 0.1640625 - 0.171875 - 0.1796875 - 0.1875 - 0.1953125 - 0.203125 - 0.2109375 - 0.21875 - 0.2265625 - 0.234375 - 0.2421875 - 0.25 - 0.2578125 - 0.265625 - 0.2734375 - 0.28125 - 0.2890625 - 0.296875 - 0.3046875 - 0.3125 - 0.3203125 - 0.328125 - 0.3359375 - 0.34375 - 0.3515625 - 0.359375 - 0.3671875 - 0.375 - 0.3828125 - 0.390625 - 0.3984375 - 0.40625 - 0.4140625 - 0.421875 - 0.4296875 - 0.4375 - 0.4453125 - 0.453125 - 0.4609375 - 0.46875 - 0.4765625 - 0.484375 - 0.4921875 - 0.5 - 0.5078125 - 0.515625 - 0.5234375 - 0.53125 - 0.5390625 - 0.546875 - 0.5546875 - 0.5625 - 0.5703125 - 0.578125 - 0.5859375 - 0.59375 - 0.6015625 - 0.609375 - 0.6171875 - 0.625 - 0.6328125 - 0.640625 - 0.6484375 - 0.65625 - 0.6640625 - 0.671875 - 0.6796875 - 0.6875 - 0.6953125 - 0.703125 - 0.7109375 - 0.71875 - 0.7265625 - 0.734375 - 0.7421875 - 0.75 - 0.7578125 - 0.765625 - 0.7734375 - 0.78125 - 0.7890625 - 0.796875 - 0.8046875 - 0.8125 - 0.8203125 - 0.828125 - 0.8359375 - 0.84375 - 0.8515625 - 0.859375 - 0.8671875 - 0.875 - 0.8828125 - 0.890625 - 0.8984375 - 0.90625 - 0.9140625 - 0.921875 - 0.9296875 - 0.9375 - 0.9453125 - 0.953125 - 0.9609375 - 0.96875 - 0.9765625 - 0.984375 - 0.9921875 greenCurve: overrideState: 0 value: curve: serializedVersion: 2 m_Curve: - serializedVersion: 3 time: 0 value: 0 inSlope: 1 outSlope: 1 tangentMode: 0 weightedMode: 0 inWeight: 0 outWeight: 0 - serializedVersion: 3 time: 1 value: 1 inSlope: 1 outSlope: 1 tangentMode: 0 weightedMode: 0 inWeight: 0 outWeight: 0 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 m_Loop: 0 m_ZeroValue: 0 m_Range: 1 cachedData: - 0 - 0.0078125 - 0.015625 - 0.0234375 - 0.03125 - 0.0390625 - 0.046875 - 0.0546875 - 0.0625 - 0.0703125 - 0.078125 - 0.0859375 - 0.09375 - 0.1015625 - 0.109375 - 0.1171875 - 0.125 - 0.1328125 - 0.140625 - 0.1484375 - 0.15625 - 0.1640625 - 0.171875 - 0.1796875 - 0.1875 - 0.1953125 - 0.203125 - 0.2109375 - 0.21875 - 0.2265625 - 0.234375 - 0.2421875 - 0.25 - 0.2578125 - 0.265625 - 0.2734375 - 0.28125 - 0.2890625 - 0.296875 - 0.3046875 - 0.3125 - 0.3203125 - 0.328125 - 0.3359375 - 0.34375 - 0.3515625 - 0.359375 - 0.3671875 - 0.375 - 0.3828125 - 0.390625 - 0.3984375 - 0.40625 - 0.4140625 - 0.421875 - 0.4296875 - 0.4375 - 0.4453125 - 0.453125 - 0.4609375 - 0.46875 - 0.4765625 - 0.484375 - 0.4921875 - 0.5 - 0.5078125 - 0.515625 - 0.5234375 - 0.53125 - 0.5390625 - 0.546875 - 0.5546875 - 0.5625 - 0.5703125 - 0.578125 - 0.5859375 - 0.59375 - 0.6015625 - 0.609375 - 0.6171875 - 0.625 - 0.6328125 - 0.640625 - 0.6484375 - 0.65625 - 0.6640625 - 0.671875 - 0.6796875 - 0.6875 - 0.6953125 - 0.703125 - 0.7109375 - 0.71875 - 0.7265625 - 0.734375 - 0.7421875 - 0.75 - 0.7578125 - 0.765625 - 0.7734375 - 0.78125 - 0.7890625 - 0.796875 - 0.8046875 - 0.8125 - 0.8203125 - 0.828125 - 0.8359375 - 0.84375 - 0.8515625 - 0.859375 - 0.8671875 - 0.875 - 0.8828125 - 0.890625 - 0.8984375 - 0.90625 - 0.9140625 - 0.921875 - 0.9296875 - 0.9375 - 0.9453125 - 0.953125 - 0.9609375 - 0.96875 - 0.9765625 - 0.984375 - 0.9921875 blueCurve: overrideState: 0 value: curve: serializedVersion: 2 m_Curve: - serializedVersion: 3 time: 0 value: 0 inSlope: 1 outSlope: 1 tangentMode: 0 weightedMode: 0 inWeight: 0 outWeight: 0 - serializedVersion: 3 time: 1 value: 1 inSlope: 1 outSlope: 1 tangentMode: 0 weightedMode: 0 inWeight: 0 outWeight: 0 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 m_Loop: 0 m_ZeroValue: 0 m_Range: 1 cachedData: - 0 - 0.0078125 - 0.015625 - 0.0234375 - 0.03125 - 0.0390625 - 0.046875 - 0.0546875 - 0.0625 - 0.0703125 - 0.078125 - 0.0859375 - 0.09375 - 0.1015625 - 0.109375 - 0.1171875 - 0.125 - 0.1328125 - 0.140625 - 0.1484375 - 0.15625 - 0.1640625 - 0.171875 - 0.1796875 - 0.1875 - 0.1953125 - 0.203125 - 0.2109375 - 0.21875 - 0.2265625 - 0.234375 - 0.2421875 - 0.25 - 0.2578125 - 0.265625 - 0.2734375 - 0.28125 - 0.2890625 - 0.296875 - 0.3046875 - 0.3125 - 0.3203125 - 0.328125 - 0.3359375 - 0.34375 - 0.3515625 - 0.359375 - 0.3671875 - 0.375 - 0.3828125 - 0.390625 - 0.3984375 - 0.40625 - 0.4140625 - 0.421875 - 0.4296875 - 0.4375 - 0.4453125 - 0.453125 - 0.4609375 - 0.46875 - 0.4765625 - 0.484375 - 0.4921875 - 0.5 - 0.5078125 - 0.515625 - 0.5234375 - 0.53125 - 0.5390625 - 0.546875 - 0.5546875 - 0.5625 - 0.5703125 - 0.578125 - 0.5859375 - 0.59375 - 0.6015625 - 0.609375 - 0.6171875 - 0.625 - 0.6328125 - 0.640625 - 0.6484375 - 0.65625 - 0.6640625 - 0.671875 - 0.6796875 - 0.6875 - 0.6953125 - 0.703125 - 0.7109375 - 0.71875 - 0.7265625 - 0.734375 - 0.7421875 - 0.75 - 0.7578125 - 0.765625 - 0.7734375 - 0.78125 - 0.7890625 - 0.796875 - 0.8046875 - 0.8125 - 0.8203125 - 0.828125 - 0.8359375 - 0.84375 - 0.8515625 - 0.859375 - 0.8671875 - 0.875 - 0.8828125 - 0.890625 - 0.8984375 - 0.90625 - 0.9140625 - 0.921875 - 0.9296875 - 0.9375 - 0.9453125 - 0.953125 - 0.9609375 - 0.96875 - 0.9765625 - 0.984375 - 0.9921875 hueVsHueCurve: overrideState: 0 value: curve: serializedVersion: 2 m_Curve: [] m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 m_Loop: 1 m_ZeroValue: 0.5 m_Range: 1 cachedData: - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 hueVsSatCurve: overrideState: 0 value: curve: serializedVersion: 2 m_Curve: [] m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 m_Loop: 1 m_ZeroValue: 0.5 m_Range: 1 cachedData: - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 satVsSatCurve: overrideState: 0 value: curve: serializedVersion: 2 m_Curve: [] m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 m_Loop: 0 m_ZeroValue: 0.5 m_Range: 1 cachedData: - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 lumVsSatCurve: overrideState: 0 value: curve: serializedVersion: 2 m_Curve: [] m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 m_Loop: 0 m_ZeroValue: 0.5 m_Range: 1 cachedData: - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 - 0.5 --- !u!114 &114533367690942200 MonoBehaviour: m_ObjectHideFlags: 3 m_PrefabParentObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 48a79b01ea5641d4aa6daa2e23605641, type: 3} m_Name: Bloom m_EditorClassIdentifier: active: 1 enabled: overrideState: 1 value: 1 intensity: overrideState: 1 value: 1 threshold: overrideState: 0 value: 1 softKnee: overrideState: 0 value: 0.5 clamp: overrideState: 0 value: 65472 diffusion: overrideState: 0 value: 5 anamorphicRatio: overrideState: 0 value: 0 color: overrideState: 0 value: {r: 1, g: 1, b: 1, a: 1} fastMode: overrideState: 0 value: 1 dirtTexture: overrideState: 0 value: {fileID: 0} defaultState: 1 dirtIntensity: overrideState: 0 value: 0 --- !u!114 &114668727993528958 MonoBehaviour: m_ObjectHideFlags: 3 m_PrefabParentObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 7a34fa72bd4185749832024e9c8010bf, type: 3} m_Name: ScreenSpaceReflections m_EditorClassIdentifier: active: 0 enabled: overrideState: 1 value: 1 preset: overrideState: 1 value: 2 maximumIterationCount: overrideState: 0 value: 16 resolution: overrideState: 0 value: 0 thickness: overrideState: 0 value: 8 maximumMarchDistance: overrideState: 0 value: 100 distanceFade: overrideState: 0 value: 0.5 vignette: overrideState: 1 value: 1 ================================================ FILE: Water/Assets/Water/Scenes/SampleScene_Profiles/Post-process Volume Profile.asset.meta ================================================ fileFormatVersion: 2 guid: fe7b519646b984bcd9778a537cbc164c NativeFormatImporter: externalObjects: {} mainObjectFileID: 11400000 userData: assetBundleName: assetBundleVariant: ================================================ FILE: Water/Assets/Water/Scenes/SampleScene_Profiles.meta ================================================ fileFormatVersion: 2 guid: 74e3dc751f42141a58fb42c416891d2f folderAsset: yes DefaultImporter: externalObjects: {} userData: assetBundleName: assetBundleVariant: ================================================ FILE: Water/Assets/Water/Scenes.meta ================================================ fileFormatVersion: 2 guid: 4f704ae4b4f98ae41a0bce26658850c1 folderAsset: yes DefaultImporter: externalObjects: {} userData: assetBundleName: assetBundleVariant: ================================================ FILE: Water/Assets/Water/Scripts/CameraMove.cs ================================================ using UnityEngine; public class CameraMove : MonoBehaviour { void Update() { transform.Rotate(-Input.GetAxisRaw("Mouse Y") * 2, 0, 0, Space.Self); transform.Rotate(0, Input.GetAxisRaw("Mouse X") * 2, 0, Space.World); transform.Translate(Input.GetAxis("Horizontal") * Time.smoothDeltaTime * 10, 0, Input.GetAxis("Vertical") * Time.smoothDeltaTime * 10, Space.Self); } } ================================================ FILE: Water/Assets/Water/Scripts/CameraMove.cs.meta ================================================ fileFormatVersion: 2 guid: 55512927bb6e346438f511122529a907 MonoImporter: externalObjects: {} serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: ================================================ FILE: Water/Assets/Water/Scripts/LightGrab.cs ================================================ using UnityEngine; [ExecuteInEditMode] public class LightGrab : MonoBehaviour { [SerializeField] Color extinction = new Color(.45f, .55f, .7f); [SerializeField] Color noonColor = Color.white; [SerializeField] Color duskColor = new Color(1f, .5f, .2f); bool grabbing; Quaternion startRot; Quaternion camRot; void Update() { #if UNITY_EDITOR if(Application.isPlaying) #endif { if(Input.GetMouseButtonDown(0)) { grabbing = true; startRot = transform.rotation; camRot = Camera.main.transform.rotation; } if(grabbing) { if(Input.GetMouseButtonUp(0)) { grabbing = false; } transform.rotation = Quaternion.Inverse(camRot * Quaternion.Inverse(Camera.main.transform.rotation)) * startRot; } } var light = GetComponent(); if(light) light.color = GetLightColor(transform.forward); } Color GetLightColor(Vector3 lightDir) { float y = lightDir.y * 5; Color sunPenetration = new Color { r = Mathf.Max(1 - Mathf.Exp(y * extinction.r), 0), g = Mathf.Max(1 - Mathf.Exp(y * extinction.g), 0), b = Mathf.Max(1 - Mathf.Exp(y * extinction.b), 0) }; return new Color { r = Mathf.Lerp(duskColor.r, noonColor.r, sunPenetration.r), g = Mathf.Lerp(duskColor.g, noonColor.g, sunPenetration.g), b = Mathf.Lerp(duskColor.b, noonColor.b, sunPenetration.b) }; } } ================================================ FILE: Water/Assets/Water/Scripts/LightGrab.cs.meta ================================================ fileFormatVersion: 2 guid: 4b5fe6ee500ee41c39b6f3662c2fbf20 MonoImporter: externalObjects: {} serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: ================================================ FILE: Water/Assets/Water/Scripts/Water.cs ================================================ using System.Collections.Generic; using UnityEngine; [ExecuteInEditMode] public class Water : MonoBehaviour { [SerializeField] bool disablePixelLights = true; [SerializeField][Range(1, 5)] int reflectionDownsample = 2; [SerializeField] float clipPlaneOffset = 0.2f; // this is actually a maximum offset [SerializeField] LayerMask m_ReflectLayers = -1; [SerializeField] WaterSettings settings = WaterSettings.Default; public WaterSettings Settings => settings; [SerializeField] Material surfaceMaterial; [SerializeField] Material groundMaterial; [SerializeField] Light sunLight; Camera reflectionCamera; Dictionary reflTextures = new Dictionary(); Vector2Int currentTextureDimensions; static bool insideRendering; void OnWillRenderObject() { if(!surfaceMaterial) return; if(!enabled) return; Camera cam = Camera.current; if(!cam) return; // safeguard from recursive reflections. if(insideRendering) return; insideRendering = true; var reflTexture = GetRenderTexture(cam); surfaceMaterial.SetTexture("_ReflectionTex", reflTexture); // find out the reflection plane: position and normal in world space Vector3 pos = transform.position; Vector3 normal = cam.transform.position.y > pos.y ? Vector3.up : Vector3.down; // Optionally disable pixel lights for reflection int oldPixelLightCount = QualitySettings.pixelLightCount; if(disablePixelLights) QualitySettings.pixelLightCount = 0; UpdateCameraModes(cam); // Render reflection // Reflect camera around reflection plane float d = -Vector3.Dot(normal, pos); Vector4 reflectionPlane = new Vector4(normal.x, normal.y, normal.z, d); Matrix4x4 reflection = Matrix4x4.zero; CalculateReflectionMatrix(ref reflection, reflectionPlane); Vector3 oldPos = cam.transform.position; Vector3 newPos = reflection.MultiplyPoint(oldPos); reflectionCamera.worldToCameraMatrix = cam.worldToCameraMatrix * reflection; // Set up oblique projection matrix so that near plane is our reflection // plane. This way we clip everything below/above it for free. Vector4 clipPlane = CameraSpacePlane(reflectionCamera, pos, normal); Matrix4x4 projection = cam.CalculateObliqueMatrix(clipPlane); reflectionCamera.projectionMatrix = projection; reflectionCamera.cullingMatrix = cam.projectionMatrix * cam.worldToCameraMatrix; reflectionCamera.cullingMask = ~(1 << 4) & m_ReflectLayers.value; // never render water layer var oldCulling = GL.invertCulling; GL.invertCulling = !oldCulling; reflectionCamera.transform.position = newPos; Vector3 euler = cam.transform.eulerAngles; reflectionCamera.transform.eulerAngles = new Vector3(-euler.x, euler.y, euler.z); reflectionCamera.targetTexture = reflTexture; reflectionCamera.Render(); reflectionCamera.targetTexture = null; reflectionCamera.transform.position = oldPos; GL.invertCulling = oldCulling; // Restore pixel light count if(disablePixelLights) QualitySettings.pixelLightCount = oldPixelLightCount; insideRendering = false; } void UpdateMaterial() { if(!sunLight) sunLight = FindObjectOfType(); // make up our own light direction if no light could be found // (just avoids tedious null checks later on) var lightDir = sunLight ? sunLight.transform.forward : -Vector3.one.normalized; var transmittance = WaterUtility.GetTransmittance(lightDir, settings.sunExtinction.ToVector3()); float sunFade = Mathf.Clamp01((.1f - lightDir.y) * 10); float scatterFade = Mathf.Clamp01((.15f - lightDir.y) * 4); if(surfaceMaterial) { surfaceMaterial.SetTexture("_NormalTex", settings.normalTexture); surfaceMaterial.SetVector("_WindDirection", settings.windDirection); surfaceMaterial.SetFloat("_WindSpeed", settings.windSpeed); surfaceMaterial.SetFloat("_Visibility", settings.visibility); surfaceMaterial.SetFloat("_WaveScale", settings.waveScale); surfaceMaterial.SetFloat("_ScatterAmount", settings.scatterAmount); surfaceMaterial.SetColor("_ScatterColor", settings.scatterColor); surfaceMaterial.SetFloat("_ReflDistortionAmount", settings.reflectionDistortionAmount); surfaceMaterial.SetFloat("_RefrDistortionAmount", settings.refractionDistortionAmount); surfaceMaterial.SetFloat("_AberrationAmount", settings.aberrationAmount); surfaceMaterial.SetColor("_WaterExtinction", settings.waterExtinction); surfaceMaterial.SetVector("_SunTransmittance", transmittance); surfaceMaterial.SetFloat("_SunFade", sunFade); surfaceMaterial.SetFloat("_ScatterFade", scatterFade); } if(groundMaterial) { groundMaterial.SetTexture("_NormalTex", settings.normalTexture); groundMaterial.SetVector("_WindDirection", settings.windDirection); groundMaterial.SetFloat("_WindSpeed", settings.windSpeed); groundMaterial.SetFloat("_Visibility", settings.visibility); groundMaterial.SetFloat("_WaveScale", settings.waveScale); groundMaterial.SetColor("_MudExtinction", settings.mudExtinction); groundMaterial.SetColor("_WaterExtinction", settings.waterExtinction); groundMaterial.SetVector("_SunTransmittance", transmittance); groundMaterial.SetFloat("_SunFade", sunFade); groundMaterial.SetFloat("_ScatterFade", scatterFade); } } void OnEnable() { Camera.onPreRender += PreRender; } void LateUpdate() { UpdateMaterial(); } void PreRender(Camera c) { // ignore reflection camera if(c != reflectionCamera) { // cache camera position so reflected shader has access to it if(groundMaterial && c != reflectionCamera) groundMaterial.SetVector("_WorldSpaceCameraPos2", c.transform.position); } } void OnDisable() { foreach(var kvp in reflTextures) if(kvp.Value) DestroyImmediate(kvp.Value); reflTextures.Clear(); if(reflectionCamera) { DestroyImmediate(reflectionCamera.gameObject); reflectionCamera = null; } Camera.onPreRender -= PreRender; } void UpdateCameraModes(Camera src) { if(reflectionCamera == null) { reflectionCamera = new GameObject("Reflection Camera", typeof(Camera)).GetComponent(); reflectionCamera.enabled = false; reflectionCamera.gameObject.hideFlags = HideFlags.DontSave; } reflectionCamera.clearFlags = src.clearFlags; reflectionCamera.backgroundColor = src.backgroundColor; if(src.clearFlags == CameraClearFlags.Skybox) { Skybox sky = src.GetComponent(); Skybox reflSky = reflectionCamera.GetComponent(); if(!sky || !sky.material) { if(reflSky) reflSky.enabled = false; } else { if(!reflSky) reflSky = reflectionCamera.gameObject.AddComponent(); reflSky.enabled = true; reflSky.material = sky.material; } } reflectionCamera.farClipPlane = src.farClipPlane; reflectionCamera.nearClipPlane = src.nearClipPlane; reflectionCamera.orthographic = src.orthographic; reflectionCamera.fieldOfView = src.fieldOfView; reflectionCamera.aspect = src.aspect; reflectionCamera.orthographicSize = src.orthographicSize; } RenderTexture GetRenderTexture(Camera currentCamera) { Vector2Int newTextureDimensions = new Vector2Int(currentCamera.scaledPixelWidth / reflectionDownsample, currentCamera.scaledPixelHeight / reflectionDownsample); RenderTexture rt; if(reflTextures.TryGetValue(currentCamera, out rt)) { if(rt.width != newTextureDimensions.x || rt.height != newTextureDimensions.y) { DestroyImmediate(rt); reflTextures.Remove(currentCamera); } goto Skip; } rt = new RenderTexture(newTextureDimensions.x, newTextureDimensions.y, 16, RenderTextureFormat.DefaultHDR) { name = $"PlanarReflection {GetInstanceID()}", hideFlags = HideFlags.DontSave }; reflTextures.Add(currentCamera, rt); Skip: return rt; } Vector4 CameraSpacePlane(Camera cam, Vector3 pos, Vector3 normal) { // lerp between small clip plane offset and maximum offset based on dist from water plane // we want small offset when near surface and large offset when high above surface float dist = Mathf.Abs(cam.transform.position.y - pos.y); float clipOffset = Mathf.Lerp(.01f, clipPlaneOffset, Mathf.Clamp01(dist)); Matrix4x4 m = cam.worldToCameraMatrix; pos = m.MultiplyPoint(pos - normal * clipOffset); normal = m.MultiplyVector(normal).normalized; return new Vector4(normal.x, normal.y, normal.z, -Vector3.Dot(pos, normal)); } static void CalculateReflectionMatrix(ref Matrix4x4 reflectionMat, Vector4 plane) { reflectionMat.m00 = 1F - 2F * plane[0] * plane[0]; reflectionMat.m01 = -2F * plane[0] * plane[1]; reflectionMat.m02 = -2F * plane[0] * plane[2]; reflectionMat.m03 = -2F * plane[3] * plane[0]; reflectionMat.m10 = -2F * plane[1] * plane[0]; reflectionMat.m11 = 1F - 2F * plane[1] * plane[1]; reflectionMat.m12 = -2F * plane[1] * plane[2]; reflectionMat.m13 = -2F * plane[3] * plane[1]; reflectionMat.m20 = -2F * plane[2] * plane[0]; reflectionMat.m21 = -2F * plane[2] * plane[1]; reflectionMat.m22 = 1F - 2F * plane[2] * plane[2]; reflectionMat.m23 = -2F * plane[3] * plane[2]; reflectionMat.m30 = 0F; reflectionMat.m31 = 0F; reflectionMat.m32 = 0F; reflectionMat.m33 = 1F; } } ================================================ FILE: Water/Assets/Water/Scripts/Water.cs.meta ================================================ fileFormatVersion: 2 guid: cf6badaa217364968a525ba8a44a3fe3 MonoImporter: externalObjects: {} serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: ================================================ FILE: Water/Assets/Water/Scripts/WaterSettings.cs ================================================ using System; using UnityEngine; [Serializable] public class WaterSettings { public static WaterSettings Default => new WaterSettings { normalTexture = null, windDirection = new Vector2(-.5f, -.8f), windSpeed = .6f, visibility = 28f, waveScale = 1f, scatterAmount = 3.5f, scatterColor = new Color(0, 1f, .95f, 1), reflectionDistortionAmount = .03f, refractionDistortionAmount = .04f, aberrationAmount = .002f, mudExtinction = new Color(1f, .7f, .5f), waterExtinction = new Color(.6f, .8f, 1f), sunExtinction = new Color(.45f, .55f, .7f) }; public Texture2D normalTexture; public Vector2 windDirection; public float windSpeed; public float visibility; public float waveScale; public float scatterAmount; public Color scatterColor; public float reflectionDistortionAmount; public float refractionDistortionAmount; public float aberrationAmount; public Color mudExtinction; public Color waterExtinction; public Color sunExtinction; } ================================================ FILE: Water/Assets/Water/Scripts/WaterSettings.cs.meta ================================================ fileFormatVersion: 2 guid: 4a75d34a0ae34f259cb9e252b7454714 timeCreated: 1539418983 ================================================ FILE: Water/Assets/Water/Scripts/WaterUtility.cs ================================================ using UnityEngine; public static class WaterUtility { public static Vector3 ToVector3(this Color c) => new Vector3(c.r, c.g, c.b); public static Vector3 GetTransmittance(Vector3 lightDir, Vector3 lightExtinction) { float y = lightDir.y; return new Vector3 { x = Mathf.Max(1 - Mathf.Exp(y * lightExtinction.x), 0), y = Mathf.Max(1 - Mathf.Exp(y * lightExtinction.y), 0), z = Mathf.Max(1 - Mathf.Exp(y * lightExtinction.z), 0) }; } } ================================================ FILE: Water/Assets/Water/Scripts/WaterUtility.cs.meta ================================================ fileFormatVersion: 2 guid: 0cccd72dcdad4428bfc2bb16b1d1f5b4 timeCreated: 1540008067 ================================================ FILE: Water/Assets/Water/Scripts.meta ================================================ fileFormatVersion: 2 guid: 3a4dc27fd14f94831a20bd62dc2cd11d folderAsset: yes DefaultImporter: externalObjects: {} userData: assetBundleName: assetBundleVariant: ================================================ FILE: Water/Assets/Water/Shaders/WaterSurface.shader ================================================ Shader "Water/WaterSurface" { SubShader { Tags { "RenderType"="Overlay" "Queue"="Transparent" } LOD 100 ZWrite Off Cull Off GrabPass { "_RefractionTex" } Pass { Tags { "LightMode" = "ForwardBase" } CGPROGRAM #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" #include "Lighting.cginc" struct appdata { float4 vertex : POSITION; float3 normal : NORMAL; }; struct v2f { float4 vertex : SV_POSITION; float3 wPosition : TEXCOORD0; float4 sPosition : TEXCOORD1; float3 viewDir : TEXCOORD2; }; static const float2 bigWaves = float2(0.3, 0.3); // strength of big waves static const float2 midWaves = float2(0.3, 0.15); // strength of middle sized waves static const float2 smallWaves = float2(0.15, 0.1); // strength of small waves sampler2D _NormalTex; sampler2D _HeightTex; sampler2D _ReflectionTex; sampler2D _RefractionTex; sampler2D _CameraDepthTexture; float _Visibility; float2 _WindDirection; float _WindSpeed; float _WaveScale; float _ScatterAmount; float3 _ScatterColor; float _ReflDistortionAmount; float _RefrDistortionAmount; float _AberrationAmount; float3 _WaterExtinction; float3 _SunTransmittance; float _SunFade; float _ScatterFade; v2f vert(appdata v) { v2f o; o.wPosition = mul(unity_ObjectToWorld, v.vertex).xyz; o.vertex = UnityObjectToClipPos(v.vertex); o.sPosition = ComputeScreenPos(o.vertex); o.viewDir = _WorldSpaceCameraPos - o.wPosition; return o; } float fresnel_dielectric(float3 Incoming, float3 Normal, float eta) { // compute fresnel reflectance without explicitly computing // the refracted direction float c = abs(dot(Incoming, Normal)); float g = eta * eta - 1.0 + c * c; if(g > 0.0) { g = sqrt(g); float A = (g - c) / (g + c); float B = (c * (g + c) - 1.0) / (c * (g - c) + 1.0); return 0.5 * A * A * (1.0 + B * B); } return 1.0; // TIR (no refracted component) } fixed4 frag(v2f i) : SV_Target { float2 fragCoord = i.sPosition.xy / i.sPosition.w; fragCoord = clamp(fragCoord, 0.002, 0.998); bool aboveWater = _WorldSpaceCameraPos.y > 0.0; float normalFade = 1 - min(exp(-i.sPosition.w / 40), 1); float2 nCoord = i.wPosition.xz * _WaveScale * 0.04 + _WindDirection * _Time.y * _WindSpeed * 0.04; float3 normal0 = 2.0 * tex2D(_NormalTex, nCoord + float2(-_Time.y * 0.015, -_Time.y * 0.005)).xyz - 1.0; nCoord = i.wPosition.xz * _WaveScale * 0.1 + _WindDirection * _Time.y * _WindSpeed * 0.08; float3 normal1 = 2.0 * tex2D(_NormalTex, nCoord + float2(_Time.y * 0.020, _Time.y * 0.015)).xyz - 1.0; nCoord = i.wPosition.xz * _WaveScale * 0.25 + _WindDirection * _Time.y * _WindSpeed * 0.07; float3 normal2 = 2.0 * tex2D(_NormalTex, nCoord + float2(-_Time.y * 0.04, -_Time.y * 0.03)).xyz - 1.0; nCoord = i.wPosition.xz * _WaveScale * 0.5 + _WindDirection * _Time.y * _WindSpeed * 0.09; float3 normal3 = 2.0 * tex2D(_NormalTex, nCoord + float2(_Time.y * 0.03, _Time.y * 0.04)).xyz - 1.0; nCoord = i.wPosition.xz * _WaveScale * 1.0 + _WindDirection * _Time.y * _WindSpeed * 0.4; float3 normal4 = 2.0 * tex2D(_NormalTex, nCoord + float2(-_Time.y * 0.02, _Time.y * 0.1)).xyz - 1.0; nCoord = i.wPosition.xz * _WaveScale * 2.0 + _WindDirection * _Time.y * _WindSpeed * 0.7; float3 normal5 = 2.0 * tex2D(_NormalTex, nCoord + float2(_Time.y * 0.1, -_Time.y * 0.06)).xyz - 1.0; float3 normal = normalize(normal0 * bigWaves.x + normal1 * bigWaves.y + normal2 * midWaves.x + normal3 * midWaves.y + normal4 * smallWaves.x + normal5 * smallWaves.y); float3 nVec = lerp(normal.xzy, float3(0, 1, 0), normalFade); // converting normals to tangent space float3 vVec = normalize(i.viewDir); float3 lVec = _WorldSpaceLightPos0.xyz; // normal for light scattering float3 lNormal = normalize(normal0 * bigWaves.x * 0.5 + normal1 * bigWaves.y * 0.5 + normal2 * midWaves.x * 0.1 + normal3 * midWaves.y * 0.1 + normal4 * smallWaves.x * 0.1 + normal5 * smallWaves.y * 0.1); lNormal = lerp(lNormal.xzy, float3(0, 1, 0), normalFade); float3 lR = reflect(-lVec, lNormal); float s = max(dot(lR, vVec) * 2.0 - 1.2, 0); float lightScatter = saturate((saturate(dot(-lVec, lNormal) * 0.7 + 0.3) * s) * _ScatterAmount) * _SunFade * saturate(1.0 - exp(-_WorldSpaceLightPos0.y)); float3 scatterColor = lerp(_ScatterColor * float3(1.0, 0.4, 0.0), _ScatterColor, _SunTransmittance); // fresnel term float ior = aboveWater ? (1.333 / 1.0) : (1.0 / 1.333); // air to water; water to air float fresnel = fresnel_dielectric(-vVec, nVec, ior); // texture edge bleed removal is handled by clip plane offset float3 reflection = tex2D(_ReflectionTex, fragCoord + nVec.xz * float2(_ReflDistortionAmount, _ReflDistortionAmount * 6)).rgb; float3 luminosity = float3(0.30, 0.59, 0.11); float reflectivity = pow(dot(luminosity, reflection.rgb * 2.0), 3.0); float3 R = reflect(vVec, nVec); float specular = min(pow(atan(max(dot(R, -lVec), 0.0) * 1.55), 1000.0) * reflectivity * 8.0, 50); float2 rcoord = reflect(vVec, nVec).xz; float2 refrOffset = nVec.xz * _RefrDistortionAmount; // depth of potential refracted fragment float refractedDepth = LinearEyeDepth(UNITY_SAMPLE_DEPTH(tex2D(_CameraDepthTexture, fragCoord - refrOffset * 2))); float surfaceDepth = i.sPosition.w; float distortFade = saturate((refractedDepth - surfaceDepth) * 4); float3 refraction; refraction.r = tex2D(_RefractionTex, fragCoord - (refrOffset - rcoord * -_AberrationAmount) * distortFade).r; refraction.g = tex2D(_RefractionTex, fragCoord - refrOffset * distortFade).g; refraction.b = tex2D(_RefractionTex, fragCoord - (refrOffset - rcoord * _AberrationAmount) * distortFade).b; float waterSunGradient = dot(vVec, -_WorldSpaceLightPos0.xyz); waterSunGradient = saturate(pow(waterSunGradient * 0.7 + 0.3, 2.0)); float3 waterSunColor = float3(0.0, 1.0, 0.85) * waterSunGradient; waterSunColor *= aboveWater ? 0.25 : 0.5; float waterGradient = dot(vVec, float3(0.0, -1.0, 0.0)); waterGradient = clamp((waterGradient * 0.5 + 0.5), 0.2, 1.0); float3 watercolor = (float3(0.0078, 0.5176, 0.700) + waterSunColor) * waterGradient * 1.5; watercolor = lerp(watercolor * 0.3 * _SunFade, watercolor, _SunTransmittance); float fog = aboveWater ? 1.0 : surfaceDepth / _Visibility; float darkness = _Visibility * 2.0; darkness = saturate((_WorldSpaceCameraPos.y + darkness) / darkness); refraction = lerp(refraction, scatterColor, lightScatter); float3 color; if(aboveWater) { color = lerp(refraction, reflection, fresnel * .6); } // scatter and extinction between surface and camera else { color = lerp(min(refraction * 1.2, 1), reflection, fresnel); color = lerp(color, watercolor * darkness * _ScatterFade, saturate(fog / _WaterExtinction)); } return float4(float3(color + (_LightColor0 * specular)), 1.0); } ENDCG } } } // original GLSL shader source /* varying vec4 fragPos; //fragment coordinates varying vec3 T, B, N; //tangent binormal normal varying vec3 viewPos; varying vec3 worldPos; uniform float _Time.yr; uniform sampler2D reflectionSampler,refractionSampler, depthSampler, normalSampler; uniform vec3 cameraPos; //---------------- //tweakables vec2 windDir = vec2(0.5, -0.8); //wind direction XY float windSpeed = 0.2; //wind speed float visibility = 28.0; float _WaveScale = 1.0; //overall wave _WaveScale vec2 bigWaves = vec2(0.3, 0.3); //strength of big waves vec2 midWaves = vec2(0.3, 0.15); //strength of middle sized waves vec2 smallWaves = vec2(0.15, 0.1); //strength of small waves vec3 waterColor = vec3(0.2,0.4,0.5); //color of the water float waterDensity = 0.0; //water density (0.0-1.0) float choppy = 0.15; //wave choppyness float aberration = 0.002; //chromatic aberration amount float bump = 2.6; //overall water surface bumpyness float reflBump = 0.04; //reflection distortion amount float refrBump = 0.03; //refraction distortion amount vec3 sunPos = vec3(gl_ModelViewMatrixInverse*gl_LightSource[0].position); float sunSpec = 1000.0; //Sun specular hardness float scatterAmount = 3.5; //amount of sunlight scattering of waves vec3 scatterColor = vec3(0.0,1.0,0.95);// color of the sunlight scattering //---------------- vec3 tangentSpace(vec3 v) { vec3 vec; vec.xy=v.xy; vec.z=sqrt(1.0-dot(vec.xy,vec.xy)); vec.xyz= normalize(vec.x*T+vec.y*B+vec.z*N); return vec; } float fresnel_dielectric(vec3 Incoming, vec3 Normal, float eta) { /* compute fresnel reflectance without explicitly computing the refracted direction */ float c = abs(dot(Incoming, Normal)); float g = eta * eta - 1.0 + c * c; float result; if(g > 0.0) { g = sqrt(g); float A =(g - c)/(g + c); float B =(c *(g + c)- 1.0)/(c *(g - c)+ 1.0); result = 0.5 * A * A *(1.0 + B * B); } else result = 1.0; /* TIR (no refracted component) */ return result; } void main() { vec2 fragCoord = (fragPos.xy/fragPos.w)*0.5+0.5; fragCoord = clamp(fragCoord,0.002,0.998); //normal map vec2 nCoord = vec2(0.0); //normal coords vec2 coo = ((gl_TexCoord[0].st)/1106.208)-0.5; float depth = texture2D(depthSampler,coo).r; float coast = smoothstep(0.3,0.7,depth); float coast1 = smoothstep(0.49,0.5,depth); choppy = choppy * (coast)+0.05; bump = -bump*clamp(1.0-coast+0.0,0.0,1.0); bump = bump*clamp(1.0-coast1+0.0,0.0,1.0); //_WaveScale = _WaveScale - (coast*0.1); //_WaveScale = _WaveScale * (coast*0.1+0.9); float _Time.y = _Time.yr - (coast)*80.0; //hmmm //_Time.yr = _Time.yr * (coast*0.5+0.5)*1.5; //smallWaves.x = smallWaves.x + (0.1*coast); //smallWaves.y = smallWaves.y + (0.1*coast); //bigWaves.x = bigWaves.x - (0.1*(1.0-coast)); //bigWaves.y = bigWaves.y + (0.1*(1.0-coast)); vec3 mudext = vec3(1.0, 0.7, 0.5);//mud extinction float atmosphere = length(cameraPos-worldPos)/200.0; vec3 atmopherefog = clamp(1.0-exp(-atmosphere/mudext),0.0,1.0); nCoord = worldPos.xy * (_WaveScale * 0.04) + windDir * _Time.y * (windSpeed*0.04); vec3 normal0 = 2.0 * texture2D(normalSampler, nCoord + vec2(-_Time.y*0.015,-_Time.y*0.005)).rgb - 1.0; nCoord = worldPos.xy * (_WaveScale * 0.1) + windDir * _Time.y * (windSpeed*0.08)-(normal0.xy/normal0.zz)*choppy; vec3 normal1 = 2.0 * texture2D(normalSampler, nCoord + vec2(+_Time.y*0.020,+_Time.y*0.015)).rgb - 1.0; nCoord = worldPos.xy * (_WaveScale * 0.25) + windDir * _Time.y * (windSpeed*0.07)-(normal1.xy/normal1.zz)*choppy; vec3 normal2 = 2.0 * texture2D(normalSampler, nCoord + vec2(-_Time.y*0.04,-_Time.y*0.03)).rgb - 1.0; nCoord = worldPos.xy * (_WaveScale * 0.5) + windDir * _Time.y * (windSpeed*0.09)-(normal2.xy/normal2.z)*choppy; vec3 normal3 = 2.0 * texture2D(normalSampler, nCoord + vec2(+_Time.y*0.03,+_Time.y*0.04)).rgb - 1.0; nCoord = worldPos.xy * (_WaveScale* 1.0) + windDir * _Time.y * (windSpeed*0.4)-(normal3.xy/normal3.zz)*choppy; vec3 normal4 = 2.0 * texture2D(normalSampler, nCoord + vec2(-_Time.y*0.02,+_Time.y*0.1)).rgb - 1.0; nCoord = worldPos.xy * (_WaveScale * 2.0) + windDir * _Time.y * (windSpeed*0.7)-(normal4.xy/normal4.zz)*choppy; vec3 normal5 = 2.0 * texture2D(normalSampler, nCoord + vec2(+_Time.y*0.1,-_Time.y*0.06)).rgb - 1.0; vec3 normal = normalize(normal0 * bigWaves.x + normal1 * bigWaves.y + normal2 * midWaves.x + normal3 * midWaves.y + normal4 * smallWaves.x + normal5 * smallWaves.y); //normal.x = -normal.x; //in case you need to invert Red channel //normal.y = -normal.y; //in case you need to invert Green channel vec3 nVec = tangentSpace(normal*bump); //converting normals to tangent space vec3 vVec = normalize(viewPos); vec3 lVec = normalize(sunPos); //normal for light scattering vec3 lNormal = normalize(normal0 * bigWaves.x*0.5 + normal1 * bigWaves.y*0.5 + normal2 * midWaves.x*0.1 + normal3 * midWaves.y*0.1 + normal4 * smallWaves.x*0.1 + normal5 * smallWaves.y*0.1); lNormal = tangentSpace(lNormal*bump); vec3 pNormal = tangentSpace(vec3(0.0)); vec3 lR = reflect(lVec, lNormal); vec3 llR = reflect(lVec, pNormal); float sunFade = clamp((sunPos.z+10.0)/20.0,0.0,1.0); float scatterFade = clamp((sunPos.z+50.0)/200.0,0.0,1.0); vec3 sunext = vec3(0.45, 0.55, 0.68);//sunlight extinction float s = clamp((dot(lR, vVec)*2.0-1.2), 0.0,1.0); float lightScatter = clamp((clamp(dot(-lVec,lNormal)*0.7+0.3,0.0,1.0)*s)*scatterAmount,0.0,1.0)*sunFade *clamp(1.0-exp(-(sunPos.z/500.0)),0.0,1.0); scatterColor = mix(vec3(scatterColor)*vec3(1.0,0.4,0.0), scatterColor, clamp(1.0-exp(-(sunPos.z/500.0)*sunext),0.0,1.0)); //fresnel term float ior = 1.33; ior = (cameraPos.z>0.0)?(1.333/1.0):(1.0/1.333); //air to water; water to air float eta = max(ior, 0.00001); float fresnel = fresnel_dielectric(-vVec,nVec,eta); //texture edge bleed removal float fade = 12.0; vec2 distortFade = vec2(0.0); distortFade.s = clamp(fragCoord.s*fade,0.0,1.0); distortFade.s -= clamp(1.0-(1.0-fragCoord.s)*fade,0.0,1.0); distortFade.t = clamp(fragCoord.t*fade,0.0,1.0); distortFade.t -= clamp(1.0-(1.0-fragCoord.t)*fade,0.0,1.0); vec3 reflection = texture2D(reflectionSampler, fragCoord+(nVec.st*vec2(reflBump,reflBump*(6.0))*distortFade)).rgb; vec3 luminosity = vec3(0.30, 0.59, 0.11); float reflectivity = pow(dot(luminosity, reflection.rgb*2.0),3.0); float reflectivity1 = pow(dot(luminosity, reflection.rgb),3.0); vec3 R = reflect(vVec, nVec); float specular = clamp(pow(atan(max(dot(R, lVec),0.0)*1.55),1000.0)*reflectivity*8.0,0.0,1.0); vec3 specColor = mix(vec3(1.0,0.5,0.2), vec3(1.0,1.0,1.0), clamp(1.0-exp(-(sunPos.z/500.0)*sunext),0.0,1.0)); vec2 rcoord = reflect(vVec,nVec).st; vec3 refraction = vec3(0.0); refraction.r = texture2D(refractionSampler, (fragCoord-(nVec.st*refrBump*distortFade))*1.0).r; refraction.g = texture2D(refractionSampler, (fragCoord-(nVec.st*refrBump*distortFade))*1.0-(rcoord*aberration)).g; refraction.b = texture2D(refractionSampler, (fragCoord-(nVec.st*refrBump*distortFade))*1.0-(rcoord*aberration*2.0)).b; float waterSunGradient = dot(normalize(cameraPos-worldPos), -normalize(sunPos)); waterSunGradient = clamp(pow(waterSunGradient*0.7+0.3,2.0),0.0,1.0); vec3 waterSunColor = vec3(0.0,1.0,0.85)*waterSunGradient; waterSunColor = (cameraPos.z<0.0)?waterSunColor*0.5:waterSunColor*0.25;//below or above water? float waterGradient = dot(normalize(cameraPos-worldPos), vec3(0.0,0.0,-1.0)); waterGradient = clamp((waterGradient*0.5+0.5),0.2,1.0); vec3 watercolor = (vec3(0.0078, 0.5176, 0.700)+waterSunColor)*waterGradient*1.5; vec3 waterext = vec3(0.6, 0.8, 1.0);//water extinction watercolor = mix(watercolor*0.3*sunFade, watercolor, clamp(1.0-exp(-(sunPos.z/500.0)*sunext),0.0,1.0)); float fog = length(cameraPos-worldPos)/visibility; fog = (cameraPos.z<0.0)?fog:1.0; fog = clamp(pow(fog,1.0),0.0,1.0); float darkness = visibility*2.0; darkness = clamp((cameraPos.z+darkness)/darkness,0.0,1.0); fresnel = clamp(fresnel,0.0,1.0); vec3 color = mix(mix(refraction,scatterColor,lightScatter),reflection,fresnel*0.6); color = (cameraPos.z<0.0)?mix(clamp(refraction*1.2,0.0,1.0),reflection,fresnel):color; color = (cameraPos.z<0.0)?mix(color, watercolor*darkness*scatterFade, clamp(fog/ waterext,0.0,1.0)):color; //color = mix(color,atmopherefog*0.8,atmopherefog.b); //gl_FragColor = vec4(vec3(color*0.001+(specColor*specular)),1.0); gl_FragColor = vec4(vec3(color+(specColor*specular)),1.0); } */ ================================================ FILE: Water/Assets/Water/Shaders/WaterSurface.shader.meta ================================================ fileFormatVersion: 2 guid: 6cdea64d237bb4dfa80eddee7ad81c28 ShaderImporter: externalObjects: {} defaultTextures: [] nonModifiableTextures: [] userData: assetBundleName: assetBundleVariant: ================================================ FILE: Water/Assets/Water/Shaders/WaterUnder.shader ================================================ Shader "Water/WaterUnder" { Properties { _MainTex("Texture", 2D) = "white" {} } SubShader { Tags { "RenderType"="Opaque" "Queue"="Geometry" } LOD 100 Pass { Tags { "LightMode" = "ForwardBase" } CGPROGRAM #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" #include "Lighting.cginc" struct appdata { float4 vertex : POSITION; float3 normal : NORMAL; float2 uv : TEXCOORD0; }; struct v2f { float4 vertex : SV_POSITION; float3 wNormal : NORMAL; float2 uv : TEXCOORD0; float3 wPosition : TEXCOORD1; float3 viewDir : TEXCOORD2; }; sampler2D _MainTex; float4 _MainTex_ST; sampler2D _NormalTex; float _WaterLevel; float _Visibility; float2 _WindDirection; float _WindSpeed; float _WaveScale; float3 _MudExtinction; float3 _WaterExtinction; float3 _SunTransmittance; float3 _WorldSpaceCameraPos2; float _SunFade; float _ScatterFade; v2f vert(appdata v) { v2f o; o.vertex = UnityObjectToClipPos(v.vertex); o.wPosition = mul(unity_ObjectToWorld, v.vertex).xyz; o.wNormal = UnityObjectToWorldNormal(v.normal); o.uv = TRANSFORM_TEX(v.uv, _MainTex); o.viewDir = _WorldSpaceCameraPos - o.wPosition; return o; } float3 intercept(float3 lineP, float3 lineN, float3 planeN, float planeD) { float distance = (planeD - dot(planeN, lineP)) / dot(lineN, planeN); return lineP + lineN * distance; } float3 perturb(sampler2D tex, float2 coords, float bend) { float3 col = 0; float timer = _Time.y; float2 windDir = _WindDirection; float windSpeed = _WindSpeed; float scale = _WaveScale; // might need to swizzle, not sure float2 nCoord = coords * (scale * 0.04) + windDir * timer * (windSpeed * 0.03); col += tex2D(tex, nCoord + float2(-timer * 0.005, -timer * 0.01)).rgb * 0.20; nCoord = coords * (scale * 0.1) + windDir * timer * (windSpeed * 0.05) - (col.xy / col.z) * bend; col += tex2D(tex, nCoord + float2(+timer * 0.01, +timer * 0.005)).rgb * 0.20; nCoord = coords * (scale * 0.25) + windDir * timer * (windSpeed * 0.1) - (col.xy / col.z) * bend; col += tex2D(tex, nCoord + float2(-timer * 0.02, -timer * 0.03)).rgb * 0.20; nCoord = coords * (scale * 0.5) + windDir * timer * (windSpeed * 0.2) - (col.xy / col.z) * bend; col += tex2D(tex, nCoord + float2(+timer * 0.03, +timer * 0.02)).rgb * 0.15; nCoord = coords * (scale * 1.0) + windDir * timer * (windSpeed * 1.0) - (col.xy / col.z) * bend; col += tex2D(tex, nCoord + float2(+timer * 0.03, +timer * 0.02)).rgb * 0.15; nCoord = coords * (scale * 2.0) + windDir * timer * (windSpeed * 1.3) - (col.xy / col.z) * bend; col += tex2D(tex, nCoord + float2(+timer * 0.03, +timer * 0.02)).rgb * 0.15; return col; } fixed4 frag(v2f i) : SV_Target { float3 vVec = normalize(i.viewDir); float waterSunGradient = dot(vVec, -_WorldSpaceLightPos0.xyz); waterSunGradient = max(pow(waterSunGradient * 0.7 + 0.3, 2.0), 0.0); float waterGradient = dot(vVec, float3(0.0, -1.0, 0.0)); waterGradient = clamp((waterGradient * 0.5 + 0.5), 0.2, 1.0); float3 waterSunColor = float3(0.0, 1.0, 0.85) * waterSunGradient; bool aboveWater = _WorldSpaceCameraPos2.y > _WaterLevel; waterSunColor = aboveWater ? waterSunColor * 0.25 : waterSunColor * 0.5; float3 waterColor = (float3(0.0078, 0.5176, 0.700) + waterSunColor) * waterGradient * 1.5; float3 fragCoord = float3(i.vertex.xyz); float2 TexCoord = i.uv; float3 normal = i.wNormal; float3 waterEyePos = intercept(i.wPosition, vVec, float3(0.0, 1.0, 0.0), _WaterLevel); float3 diffuse = tex2D(_MainTex, i.uv); float NdotL = max(dot(normal, _WorldSpaceLightPos0.xyz), 0.0); float3 sunLight = _LightColor0 * NdotL * _SunFade; // sky illumination float skyBright = max(dot(normal, float3(0.0, 1.0, 0.0)) * 0.5 + 0.5, 0.0); float3 skyLight = lerp(float3(1.0, 0.5, 0.0) * 0.05, float3(0.2, 0.5, 1.0) * 1.5, _SunTransmittance); skyLight *= skyBright; // ground illumination float groundBright = max(dot(normal, float3(0.0, -1.0, 0.0)) * 0.5 + 0.5, 0.0); float sunLerp = saturate(1.0 - exp(-_WorldSpaceLightPos0.y)); float3 groundLight = .3 * sunLerp; groundLight *= groundBright; float3 EV = vVec; float underwaterFresnel = pow(saturate(1.0 - dot(normal, EV)), 2.0) * sunLerp; // water color float topfog = length(waterEyePos - i.wPosition) / _Visibility; topfog = saturate(topfog); float viewDepth = length(i.viewDir); float underfog = viewDepth / _Visibility; underfog = saturate(underfog); float depth = waterEyePos.y - i.wPosition.y; // water depth float far = viewDepth / 1000.0; float shorecut = aboveWater ? smoothstep(-0.001, 0.001, depth) : smoothstep(-5.0 * max(far, 0.0001), -4.0 * max(far, 0.0001), depth); float shorewetcut = smoothstep(-0.18, -0.000, depth + 0.01); depth /= _Visibility; depth = saturate(depth); float fog = aboveWater ? topfog : underfog; fog *= shorecut; float darkness = _Visibility * 1.5; darkness = lerp(1.0, saturate((_WorldSpaceCameraPos.y + darkness) / darkness), shorecut); float fogdarkness = _Visibility * 2.0; fogdarkness = lerp(1.0, saturate((_WorldSpaceCameraPos.y + fogdarkness) / fogdarkness), shorecut) * _ScatterFade; // caustics float3 causticPos = intercept(i.wPosition, _WorldSpaceLightPos0.xyz, float3(0.0, 1.0, 0.0), _WaterLevel); float causticdepth = length(causticPos - i.wPosition); // caustic depth causticdepth = 1.0 - saturate(causticdepth / _Visibility); causticdepth = saturate(causticdepth); float3 normalMap = perturb(_NormalTex, causticPos.xz, causticdepth) * 2 - 1; normalMap = normalMap.xzy; normalMap.xz *= -1; float3 causticnorm = normalMap; float fresnel = pow(saturate(dot(_WorldSpaceLightPos0.xyz, causticnorm)), 2.0); float causticR = 1.0 - perturb(_NormalTex, causticPos.xz, causticdepth).z; float3 caustics = saturate(pow(causticR * 5.5, 5.5 * causticdepth)) * NdotL * _SunFade * causticdepth; // not yet implemented //if(causticFringe) //{ // float causticG = 1.0-perturb(NormalSampler,causticPos.st+(1.0-causticdepth)*aberration,causticdepth).z; // float causticB = 1.0-perturb(NormalSampler,causticPos.st+(1.0-causticdepth)*aberration*2.0,causticdepth).z; // caustics = clamp(pow(vec3(causticR,causticG,causticB)*5.5,vec3(5.5*causticdepth)),0.0,1.0)*NdotL*_SunFade*causticdepth; //} float3 underwaterSunLight = saturate((sunLight + 0.9) - (1.0 - caustics)) * causticdepth + (sunLight * caustics); underwaterSunLight = lerp(underwaterSunLight, underwaterSunLight * waterColor, saturate((1.0 - causticdepth) / _WaterExtinction)); float3 waterPenetration = saturate(depth / _WaterExtinction); skyLight = lerp(skyLight, skyLight * waterColor, waterPenetration); groundLight = lerp(groundLight, groundLight * waterColor, waterPenetration); sunLight = lerp(sunLight, lerp(underwaterSunLight , (waterColor * 0.8 + 0.4) * _SunFade, underwaterFresnel), shorecut); float3 color = float3(sunLight + skyLight * 0.7 + groundLight * 0.8) * darkness; waterColor = lerp(waterColor * 0.3 * _SunFade, waterColor, _SunTransmittance); float3 fogging = lerp((diffuse * 0.2 + 0.8) * lerp(float3(1.2, 0.95, 0.58) * 0.8, float3(1.1, 0.85, 0.5) * 0.8, shorewetcut) * color, waterColor * fogdarkness, saturate(fog / _WaterExtinction)); // adding water color fog return float4(fogging, 1); } ENDCG } Pass { Name "ShadowCaster" Tags { "LightMode" = "ShadowCaster" } Fog { Mode Off } ZWrite On ZTest LEqual Cull Off Offset 1, 1 CGPROGRAM #pragma vertex vert #pragma fragment frag #pragma multi_compile_shadowcaster #include "UnityCG.cginc" struct v2f { V2F_SHADOW_CASTER; }; v2f vert(appdata_base v) { v2f o; TRANSFER_SHADOW_CASTER(o) return o; } float4 frag( v2f i ) : SV_Target { SHADOW_CASTER_FRAGMENT(i) } ENDCG } } } // original GLSL shader source /* varying vec3 WorldNormal, WorldTangent, WorldBinormal; varying vec3 WorldSpacePos, eyePos; varying vec3 LightVec; varying vec4 fragPos; varying mat3 WorldToTangent; uniform sampler2D NormalSampler, TextureSampler,foamSampler; //varying vec3 Pos; uniform float timer; bool causticFringe = false; float choppy = 0.8; float refractAmount = 0.4; float aberration = 0.04; float visibility = 28.0; //water visibility float waterLevel = 0.0; vec2 windDir = vec2(0.5, -0.8); //wind direction XY float windSpeed = 0.2; //wind speed float scale = 1.0; //overall wave scale vec2 bigWaves = vec2(0.3, 0.3); //strength of big waves vec2 midWaves = vec2(0.3, 0.15); //strength of middle sized waves vec2 smallWaves = vec2(0.15, 0.1); //strength of small waves vec3 tangentSpace(vec3 v) { vec3 vec; vec.xy=v.xy; vec.z=sqrt(1.0-dot(vec.xy,vec.xy)); vec.xyz= normalize(vec.x*WorldTangent+vec.y*WorldBinormal+vec.z*WorldNormal); return vec; } vec3 intercept(vec3 lineP, vec3 lineN, vec3 planeN, float planeD) { float distance = (planeD - dot(planeN, lineP)) /dot(lineN, planeN); return lineP + lineN * distance; } vec3 perturb1(sampler2D tex, vec2 coords, float bend) { //normal map vec2 nCoord = vec2(0.0); //normal coords bend *= choppy; nCoord = coords * (scale * 0.05) + windDir * timer * (windSpeed*0.04); vec3 normal0 = 2.0 * texture2D(tex, nCoord + vec2(-timer*0.015,-timer*0.05)).rgb - 1.0; nCoord = coords * (scale * 0.1) + windDir * timer * (windSpeed*0.08)-normal0.xy*bend; vec3 normal1 = 2.0 * texture2D(tex, nCoord + vec2(+timer*0.020,+timer*0.015)).rgb - 1.0; nCoord = coords * (scale * 0.25) + windDir * timer * (windSpeed*0.07)-normal1.xy*bend; vec3 normal2 = 2.0 * texture2D(tex, nCoord + vec2(-timer*0.04,-timer*0.03)).rgb - 1.0; nCoord = coords * (scale * 0.5) + windDir * timer * (windSpeed*0.09)-normal2.xy*bend; vec3 normal3 = 2.0 * texture2D(tex, nCoord + vec2(+timer*0.03,+timer*0.04)).rgb - 1.0; nCoord = coords * (scale* 1.0) + windDir * timer * (windSpeed*0.4)-normal3.xy*bend; vec3 normal4 = 2.0 * texture2D(tex, nCoord + vec2(-timer*0.2,+timer*0.1)).rgb - 1.0; nCoord = coords * (scale * 2.0) + windDir * timer * (windSpeed*0.7)-normal4.xy*bend; vec3 normal5 = 2.0 * texture2D(tex, nCoord + vec2(+timer*0.1,-timer*0.06)).rgb - 1.0; vec3 normal = normalize(normal0 * bigWaves.x + normal1 * bigWaves.y + normal2 * midWaves.x + normal3 * midWaves.y + normal4 * smallWaves.x + normal5 * smallWaves.y); return normal; } vec3 perturb(sampler2D tex, vec2 coords, float bend) { bend *= choppy; vec3 col = vec3(0.0); vec2 nCoord = vec2(0.0); //normal coords nCoord = coords * (scale * 0.04) + windDir * timer * (windSpeed*0.03); col += texture2D(tex,nCoord + vec2(-timer*0.005,-timer*0.01)).rgb*0.20; nCoord = coords * (scale * 0.1) + windDir * timer * (windSpeed*0.05)-(col.xy/col.zz)*bend; col += texture2D(tex,nCoord + vec2(+timer*0.01,+timer*0.005)).rgb*0.20; nCoord = coords * (scale * 0.25) + windDir * timer * (windSpeed*0.1)-(col.xy/col.zz)*bend; col += texture2D(tex,nCoord + vec2(-timer*0.02,-timer*0.03)).rgb*0.20; nCoord = coords * (scale * 0.5) + windDir * timer * (windSpeed*0.2)-(col.xy/col.zz)*bend; col += texture2D(tex,nCoord + vec2(+timer*0.03,+timer*0.02)).rgb*0.15; nCoord = coords * (scale* 1.0) + windDir * timer * (windSpeed*1.0)-(col.xy/col.zz)*bend; col += texture2D(tex, nCoord + vec2(-timer*0.06,+timer*0.08)).rgb*0.15; nCoord = coords * (scale * 2.0) + windDir * timer * (windSpeed*1.3)-(col.xy/col.zz)*bend; col += texture2D(tex,nCoord + vec2(+timer*0.08,-timer*0.06)).rgb*0.10; return col; } void main() { float waterSunGradient = dot(normalize(eyePos-WorldSpacePos), -normalize(LightVec)); waterSunGradient = clamp(pow(waterSunGradient*0.7+0.3,2.0),0.0,1.0); float waterGradient = dot(normalize(eyePos-WorldSpacePos), vec3(0.0,0.0,-1.0)); waterGradient = clamp((waterGradient*0.5+0.5),0.2,1.0); vec3 waterSunColor = vec3(0.0,1.0,0.85)*waterSunGradient; waterSunColor = (eyePos.z-waterLevel<0.0)?waterSunColor*0.5:waterSunColor*0.25;//below or above water? vec3 waterColor = (vec3(0.0078, 0.5176, 0.700)+waterSunColor)*waterGradient*1.5; vec3 mudext = vec3(1.0, 0.7, 0.5);//mud extinction vec3 waterext = vec3(0.6, 0.8, 1.0);//water extinction vec3 sunext = vec3(0.45, 0.55, 0.7);//sunlight extinction vec3 fragCoord = vec3(fragPos.xyz); vec2 TexCoord = gl_TexCoord[0].st; vec3 normal = tangentSpace(vec3(0.0,0.0,0.0)); vec3 EV = normalize(eyePos-WorldSpacePos); vec3 LV = normalize(LightVec-WorldSpacePos); vec3 waterEyePos = intercept(WorldSpacePos, eyePos-WorldSpacePos, vec3(0.0,0.0,1.0),waterLevel); vec3 diffuse = texture2D(TextureSampler,gl_TexCoord[0].st*0.05).rgb; float NdotL = max(dot(normal,LV),0.0); float sunFade = clamp((LightVec.z+10.0)/20.0,0.0,1.0); float scatterFade = clamp((LightVec.z+50.0)/200.0,0.0,1.0); vec3 sunLight = mix(vec3(1.0,0.5,0.2), vec3(1.0,1.0,1.0), clamp(1.0-exp(-(LightVec.z/500.0)*sunext),0.0,1.0)); sunLight *= NdotL*sunFade; //sky illumination float skyBright = max(dot(normal,vec3(0.0,0.0,1.0))*0.5+0.5,0.0); vec3 skyLight = mix(vec3(1.0,0.5,0.0)*0.05, vec3(0.2,0.5,1.0)*1.5, clamp(1.0-exp(-(LightVec.z/500.0)*sunext),0.0,1.0)); skyLight *= skyBright; //ground illumination float groundBright = max(dot(normal,vec3(0.0,0.0,-1.0))*0.5+0.5,0.0); vec3 groundLight = vec3(0.3,0.3,0.3)*1.0*clamp(1.0-exp(-(LightVec.z/500.0)),0.0,1.0); groundLight *= groundBright; float underwaterFresnel = pow(clamp(1.0-dot(normal,EV),0.0,1.0),2.0)*clamp(1.0-exp(-(LightVec.z/500.0)),0.0,1.0); //water fogging float topfog = length(waterEyePos-WorldSpacePos)/visibility; topfog = clamp(topfog,0.0,1.0); float underfog = length(eyePos-WorldSpacePos)/visibility; underfog = clamp(underfog,0.0,1.0); float depth = waterEyePos.z-WorldSpacePos.z;//water depth float far = length(eyePos-WorldSpacePos)/1000.0; float shorecut = ((eyePos.z)-waterLevel<0.0)?smoothstep(-5.0*max(far,0.0001),-4.0*max(far,0.0001),depth):smoothstep(-0.001,0.001,depth); float shorewetcut = smoothstep(-0.18,-0.000,depth+0.01); depth /= visibility; depth = clamp(depth,0.0,1.0); float fog = (eyePos.z-waterLevel<0.0)?underfog:topfog;//below or above water? fog = pow(fog,1.0); fog = fog*shorecut; float darkness = visibility*1.5; darkness = mix(1.0,clamp((eyePos.z+darkness)/darkness,0.0,1.0),shorecut); float fogdarkness = visibility*2.0; fogdarkness = mix(1.0,clamp((eyePos.z+fogdarkness)/fogdarkness,0.0,1.0),shorecut)*scatterFade; //caustics vec3 causticPos = intercept(WorldSpacePos, LightVec-WorldSpacePos, vec3(0.0,0.0,1.0),waterLevel); float causticdepth = length(causticPos-WorldSpacePos); //caustic depth causticdepth = 1.0-clamp(causticdepth/visibility,0.0,1.0); causticdepth = clamp(causticdepth,0.0,1.0); vec3 normalMap = perturb(NormalSampler,causticPos.st,causticdepth); vec3 causticnorm = tangentSpace(normalMap*2.0-1.0); float fresnel = pow(clamp(dot(LV,causticnorm),0.0,1.0),2.0); float causticR = 1.0-perturb(NormalSampler,causticPos.st,causticdepth).z; vec3 caustics = clamp(pow(vec3(causticR)*5.5,vec3(5.5*causticdepth)),0.0,1.0)*NdotL*sunFade*causticdepth; if(causticFringe) { float causticG = 1.0-perturb(NormalSampler,causticPos.st+(1.0-causticdepth)*aberration,causticdepth).z; float causticB = 1.0-perturb(NormalSampler,causticPos.st+(1.0-causticdepth)*aberration*2.0,causticdepth).z; caustics = clamp(pow(vec3(causticR,causticG,causticB)*5.5,vec3(5.5*causticdepth)),0.0,1.0)*NdotL*sunFade*causticdepth; } vec3 underwaterSunLight = clamp((sunLight+0.9)-(1.0-caustics),0.0,1.0)*causticdepth+(sunLight*caustics); underwaterSunLight = mix(underwaterSunLight, underwaterSunLight*waterColor, clamp((1.0-causticdepth)/waterext,0.0,1.0)); skyLight = mix(skyLight, skyLight*waterColor, clamp((depth)/waterext,0.0,1.0)); groundLight = mix(groundLight, groundLight*waterColor, clamp((depth)/waterext,0.0,1.0)); sunLight = mix(sunLight,mix(underwaterSunLight,(waterColor*0.8+0.4)*sunFade,underwaterFresnel),shorecut); vec3 color = vec3(sunLight+skyLight*0.7+groundLight*0.8)*darkness; waterColor = mix(waterColor*0.3*sunFade, waterColor, clamp(1.0-exp(-(LightVec.z/500.0)*sunext),0.0,1.0)); vec3 fogging = mix((diffuse*0.2+0.8)*mix(vec3(1.2,0.95,0.58)*0.8,vec3(1.1,0.85,0.5)*0.8,shorewetcut)*color, waterColor*fogdarkness, clamp(fog/waterext,0.0,1.0));//adding water color fog //vec3 light = ((diffuse*0.2+0.8)*vec3(1.0,0.85,0.55)*(NdotL+skyLight+groundLight)); gl_FragColor = vec4(vec3(fogging),1.0) ; } */ ================================================ FILE: Water/Assets/Water/Shaders/WaterUnder.shader.meta ================================================ fileFormatVersion: 2 guid: 891ac3ba7a1754646afff4b89a5a8a80 ShaderImporter: externalObjects: {} defaultTextures: [] nonModifiableTextures: [] userData: assetBundleName: assetBundleVariant: ================================================ FILE: Water/Assets/Water/Shaders.meta ================================================ fileFormatVersion: 2 guid: 733aac3ad35d543d1a150a975b03c3f9 folderAsset: yes DefaultImporter: externalObjects: {} userData: assetBundleName: assetBundleVariant: ================================================ FILE: Water/Assets/Water/Textures/grid.png.meta ================================================ fileFormatVersion: 2 guid: 65b81ca5f830e4f1f87398de1eedbad9 TextureImporter: fileIDToRecycleName: {} externalObjects: {} serializedVersion: 5 mipmaps: mipMapMode: 0 enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 borderMipMap: 0 mipMapsPreserveCoverage: 0 alphaTestReferenceValue: 0.5 mipMapFadeDistanceStart: 1 mipMapFadeDistanceEnd: 3 bumpmap: convertToNormalMap: 0 externalNormalMap: 0 heightScale: 0.25 normalMapFilter: 0 isReadable: 0 grayScaleToAlpha: 0 generateCubemap: 6 cubemapConvolution: 0 seamlessCubemap: 0 textureFormat: 1 maxTextureSize: 2048 textureSettings: serializedVersion: 2 filterMode: 2 aniso: 16 mipBias: -1 wrapU: -1 wrapV: -1 wrapW: -1 nPOTScale: 1 lightmap: 0 compressionQuality: 50 spriteMode: 0 spriteExtrude: 1 spriteMeshType: 1 alignment: 0 spritePivot: {x: 0.5, y: 0.5} spritePixelsToUnits: 100 spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteGenerateFallbackPhysicsShape: 1 alphaUsage: 0 alphaIsTransparency: 0 spriteTessellationDetail: -1 textureType: 0 textureShape: 1 singleChannelComponent: 0 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 platformSettings: - serializedVersion: 2 buildTarget: DefaultTexturePlatform maxTextureSize: 2048 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 compressionQuality: 50 crunchedCompression: 0 allowsAlphaSplitting: 0 overridden: 0 androidETC2FallbackOverride: 0 - serializedVersion: 2 buildTarget: Standalone maxTextureSize: 2048 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 compressionQuality: 50 crunchedCompression: 0 allowsAlphaSplitting: 0 overridden: 0 androidETC2FallbackOverride: 0 - serializedVersion: 2 buildTarget: WebGL maxTextureSize: 2048 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 compressionQuality: 50 crunchedCompression: 0 allowsAlphaSplitting: 0 overridden: 0 androidETC2FallbackOverride: 0 spriteSheet: serializedVersion: 2 sprites: [] outline: [] physicsShape: [] bones: [] spriteID: vertices: [] indices: edges: [] weights: [] spritePackingTag: userData: assetBundleName: assetBundleVariant: ================================================ FILE: Water/Assets/Water/Textures/water-normal.png.meta ================================================ fileFormatVersion: 2 guid: eca2a7fa5744c453b8a3dd4d9549b767 TextureImporter: fileIDToRecycleName: {} externalObjects: {} serializedVersion: 5 mipmaps: mipMapMode: 0 enableMipMap: 1 sRGBTexture: 0 linearTexture: 0 fadeOut: 0 borderMipMap: 0 mipMapsPreserveCoverage: 0 alphaTestReferenceValue: 0.5 mipMapFadeDistanceStart: 1 mipMapFadeDistanceEnd: 3 bumpmap: convertToNormalMap: 0 externalNormalMap: 0 heightScale: 0.25 normalMapFilter: 0 isReadable: 0 grayScaleToAlpha: 0 generateCubemap: 6 cubemapConvolution: 0 seamlessCubemap: 0 textureFormat: 1 maxTextureSize: 2048 textureSettings: serializedVersion: 2 filterMode: 2 aniso: 16 mipBias: -1 wrapU: -1 wrapV: -1 wrapW: -1 nPOTScale: 1 lightmap: 0 compressionQuality: 50 spriteMode: 0 spriteExtrude: 1 spriteMeshType: 1 alignment: 0 spritePivot: {x: 0.5, y: 0.5} spritePixelsToUnits: 100 spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteGenerateFallbackPhysicsShape: 1 alphaUsage: 1 alphaIsTransparency: 0 spriteTessellationDetail: -1 textureType: 0 textureShape: 1 singleChannelComponent: 0 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 platformSettings: - serializedVersion: 2 buildTarget: DefaultTexturePlatform maxTextureSize: 2048 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 0 compressionQuality: 50 crunchedCompression: 0 allowsAlphaSplitting: 0 overridden: 0 androidETC2FallbackOverride: 0 - serializedVersion: 2 buildTarget: Standalone maxTextureSize: 2048 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 0 compressionQuality: 50 crunchedCompression: 0 allowsAlphaSplitting: 0 overridden: 0 androidETC2FallbackOverride: 0 - serializedVersion: 2 buildTarget: WebGL maxTextureSize: 2048 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 0 compressionQuality: 50 crunchedCompression: 0 allowsAlphaSplitting: 0 overridden: 0 androidETC2FallbackOverride: 0 spriteSheet: serializedVersion: 2 sprites: [] outline: [] physicsShape: [] bones: [] spriteID: vertices: [] indices: edges: [] weights: [] spritePackingTag: userData: assetBundleName: assetBundleVariant: ================================================ FILE: Water/Assets/Water/Textures.meta ================================================ fileFormatVersion: 2 guid: 1e8901ab0328c441da00bc2a5d374b09 folderAsset: yes DefaultImporter: externalObjects: {} userData: assetBundleName: assetBundleVariant: ================================================ FILE: Water/Assets/Water.meta ================================================ fileFormatVersion: 2 guid: 446a5f9c4c14e4052b0dcda9fb25a2a0 folderAsset: yes DefaultImporter: externalObjects: {} userData: assetBundleName: assetBundleVariant: ================================================ FILE: Water/Packages/manifest.json ================================================ { "dependencies": { "com.unity.package-manager-ui": "1.9.11", "com.unity.postprocessing": "2.0.12-preview", "com.unity.textmeshpro": "1.2.4", "com.unity.modules.ai": "1.0.0", "com.unity.modules.animation": "1.0.0", "com.unity.modules.assetbundle": "1.0.0", "com.unity.modules.audio": "1.0.0", "com.unity.modules.cloth": "1.0.0", "com.unity.modules.director": "1.0.0", "com.unity.modules.imageconversion": "1.0.0", "com.unity.modules.imgui": "1.0.0", "com.unity.modules.jsonserialize": "1.0.0", "com.unity.modules.particlesystem": "1.0.0", "com.unity.modules.physics": "1.0.0", "com.unity.modules.physics2d": "1.0.0", "com.unity.modules.screencapture": "1.0.0", "com.unity.modules.terrain": "1.0.0", "com.unity.modules.terrainphysics": "1.0.0", "com.unity.modules.tilemap": "1.0.0", "com.unity.modules.ui": "1.0.0", "com.unity.modules.uielements": "1.0.0", "com.unity.modules.umbra": "1.0.0", "com.unity.modules.unityanalytics": "1.0.0", "com.unity.modules.unitywebrequest": "1.0.0", "com.unity.modules.unitywebrequestassetbundle": "1.0.0", "com.unity.modules.unitywebrequestaudio": "1.0.0", "com.unity.modules.unitywebrequesttexture": "1.0.0", "com.unity.modules.unitywebrequestwww": "1.0.0", "com.unity.modules.vehicles": "1.0.0", "com.unity.modules.video": "1.0.0", "com.unity.modules.vr": "1.0.0", "com.unity.modules.wind": "1.0.0", "com.unity.modules.xr": "1.0.0" } } ================================================ FILE: Water/ProjectSettings/AudioManager.asset ================================================ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!11 &1 AudioManager: m_ObjectHideFlags: 0 m_Volume: 1 Rolloff Scale: 1 Doppler Factor: 1 Default Speaker Mode: 2 m_SampleRate: 0 m_DSPBufferSize: 1024 m_VirtualVoiceCount: 512 m_RealVoiceCount: 32 m_SpatializerPlugin: m_AmbisonicDecoderPlugin: m_DisableAudio: 0 m_VirtualizeEffects: 1 ================================================ FILE: Water/ProjectSettings/ClusterInputManager.asset ================================================ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!236 &1 ClusterInputManager: m_ObjectHideFlags: 0 m_Inputs: [] ================================================ FILE: Water/ProjectSettings/DynamicsManager.asset ================================================ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!55 &1 PhysicsManager: m_ObjectHideFlags: 0 serializedVersion: 7 m_Gravity: {x: 0, y: -9.81, z: 0} m_DefaultMaterial: {fileID: 0} m_BounceThreshold: 2 m_SleepThreshold: 0.005 m_DefaultContactOffset: 0.01 m_DefaultSolverIterations: 6 m_DefaultSolverVelocityIterations: 1 m_QueriesHitBackfaces: 0 m_QueriesHitTriggers: 1 m_EnableAdaptiveForce: 0 m_ClothInterCollisionDistance: 0 m_ClothInterCollisionStiffness: 0 m_ContactsGeneration: 1 m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff m_AutoSimulation: 1 m_AutoSyncTransforms: 1 m_ClothInterCollisionSettingsToggle: 0 m_ContactPairsMode: 0 m_BroadphaseType: 0 m_WorldBounds: m_Center: {x: 0, y: 0, z: 0} m_Extent: {x: 250, y: 250, z: 250} m_WorldSubdivisions: 8 ================================================ FILE: Water/ProjectSettings/EditorBuildSettings.asset ================================================ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!1045 &1 EditorBuildSettings: m_ObjectHideFlags: 0 serializedVersion: 2 m_Scenes: - enabled: 1 path: Assets/Scenes/SampleScene.unity guid: 99c9720ab356a0642a771bea13969a05 m_configObjects: {} ================================================ FILE: Water/ProjectSettings/EditorSettings.asset ================================================ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!159 &1 EditorSettings: m_ObjectHideFlags: 0 serializedVersion: 7 m_ExternalVersionControlSupport: Visible Meta Files m_SerializationMode: 2 m_LineEndingsForNewScripts: 2 m_DefaultBehaviorMode: 0 m_SpritePackerMode: 0 m_SpritePackerPaddingPower: 1 m_EtcTextureCompressorBehavior: 1 m_EtcTextureFastCompressor: 1 m_EtcTextureNormalCompressor: 2 m_EtcTextureBestCompressor: 4 m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef m_ProjectGenerationRootNamespace: m_UserGeneratedProjectSuffix: m_CollabEditorSettings: inProgressEnabled: 1 ================================================ FILE: Water/ProjectSettings/GraphicsSettings.asset ================================================ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!30 &1 GraphicsSettings: m_ObjectHideFlags: 0 serializedVersion: 12 m_Deferred: m_Mode: 1 m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} m_DeferredReflections: m_Mode: 1 m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} m_ScreenSpaceShadows: m_Mode: 1 m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} m_LegacyDeferred: m_Mode: 1 m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} m_DepthNormals: m_Mode: 1 m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} m_MotionVectors: m_Mode: 1 m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} m_LightHalo: m_Mode: 1 m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} m_LensFlare: m_Mode: 1 m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} m_AlwaysIncludedShaders: - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 17000, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 16000, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 16001, guid: 0000000000000000f000000000000000, type: 0} m_PreloadedShaders: [] m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} m_CustomRenderPipeline: {fileID: 0} m_TransparencySortMode: 0 m_TransparencySortAxis: {x: 0, y: 0, z: 1} m_DefaultRenderingPath: 1 m_DefaultMobileRenderingPath: 1 m_TierSettings: - serializedVersion: 5 m_BuildTarget: 1 m_Tier: 0 m_Settings: standardShaderQuality: 2 renderingPath: 1 hdrMode: 1 realtimeGICPUUsage: 25 useReflectionProbeBoxProjection: 1 useReflectionProbeBlending: 1 useHDR: 1 useDetailNormalMap: 1 useCascadedShadowMaps: 1 prefer32BitShadowMaps: 0 enableLPPV: 1 useDitherMaskForAlphaBlendedShadows: 1 m_Automatic: 0 - serializedVersion: 5 m_BuildTarget: 1 m_Tier: 1 m_Settings: standardShaderQuality: 2 renderingPath: 1 hdrMode: 1 realtimeGICPUUsage: 25 useReflectionProbeBoxProjection: 1 useReflectionProbeBlending: 1 useHDR: 1 useDetailNormalMap: 1 useCascadedShadowMaps: 1 prefer32BitShadowMaps: 0 enableLPPV: 1 useDitherMaskForAlphaBlendedShadows: 1 m_Automatic: 0 - serializedVersion: 5 m_BuildTarget: 1 m_Tier: 2 m_Settings: standardShaderQuality: 2 renderingPath: 1 hdrMode: 1 realtimeGICPUUsage: 50 useReflectionProbeBoxProjection: 1 useReflectionProbeBlending: 1 useHDR: 1 useDetailNormalMap: 1 useCascadedShadowMaps: 1 prefer32BitShadowMaps: 0 enableLPPV: 1 useDitherMaskForAlphaBlendedShadows: 1 m_Automatic: 0 m_LightmapStripping: 0 m_FogStripping: 0 m_InstancingStripping: 0 m_LightmapKeepPlain: 1 m_LightmapKeepDirCombined: 1 m_LightmapKeepDynamicPlain: 1 m_LightmapKeepDynamicDirCombined: 1 m_LightmapKeepShadowMask: 1 m_LightmapKeepSubtractive: 1 m_FogKeepLinear: 1 m_FogKeepExp: 1 m_FogKeepExp2: 1 m_AlbedoSwatchInfos: [] m_LightsUseLinearIntensity: 0 m_LightsUseColorTemperature: 0 ================================================ FILE: Water/ProjectSettings/InputManager.asset ================================================ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!13 &1 InputManager: m_ObjectHideFlags: 0 serializedVersion: 2 m_Axes: - serializedVersion: 3 m_Name: Horizontal descriptiveName: descriptiveNegativeName: negativeButton: left positiveButton: right altNegativeButton: a altPositiveButton: d gravity: 3 dead: 0.001 sensitivity: 3 snap: 1 invert: 0 type: 0 axis: 0 joyNum: 0 - serializedVersion: 3 m_Name: Vertical descriptiveName: descriptiveNegativeName: negativeButton: down positiveButton: up altNegativeButton: s altPositiveButton: w gravity: 3 dead: 0.001 sensitivity: 3 snap: 1 invert: 0 type: 0 axis: 0 joyNum: 0 - serializedVersion: 3 m_Name: Fire1 descriptiveName: descriptiveNegativeName: negativeButton: positiveButton: left ctrl altNegativeButton: altPositiveButton: mouse 0 gravity: 1000 dead: 0.001 sensitivity: 1000 snap: 0 invert: 0 type: 0 axis: 0 joyNum: 0 - serializedVersion: 3 m_Name: Fire2 descriptiveName: descriptiveNegativeName: negativeButton: positiveButton: left alt altNegativeButton: altPositiveButton: mouse 1 gravity: 1000 dead: 0.001 sensitivity: 1000 snap: 0 invert: 0 type: 0 axis: 0 joyNum: 0 - serializedVersion: 3 m_Name: Fire3 descriptiveName: descriptiveNegativeName: negativeButton: positiveButton: left shift altNegativeButton: altPositiveButton: mouse 2 gravity: 1000 dead: 0.001 sensitivity: 1000 snap: 0 invert: 0 type: 0 axis: 0 joyNum: 0 - serializedVersion: 3 m_Name: Jump descriptiveName: descriptiveNegativeName: negativeButton: positiveButton: space altNegativeButton: altPositiveButton: gravity: 1000 dead: 0.001 sensitivity: 1000 snap: 0 invert: 0 type: 0 axis: 0 joyNum: 0 - serializedVersion: 3 m_Name: Mouse X descriptiveName: descriptiveNegativeName: negativeButton: positiveButton: altNegativeButton: altPositiveButton: gravity: 0 dead: 0 sensitivity: 0.1 snap: 0 invert: 0 type: 1 axis: 0 joyNum: 0 - serializedVersion: 3 m_Name: Mouse Y descriptiveName: descriptiveNegativeName: negativeButton: positiveButton: altNegativeButton: altPositiveButton: gravity: 0 dead: 0 sensitivity: 0.1 snap: 0 invert: 0 type: 1 axis: 1 joyNum: 0 - serializedVersion: 3 m_Name: Mouse ScrollWheel descriptiveName: descriptiveNegativeName: negativeButton: positiveButton: altNegativeButton: altPositiveButton: gravity: 0 dead: 0 sensitivity: 0.1 snap: 0 invert: 0 type: 1 axis: 2 joyNum: 0 - serializedVersion: 3 m_Name: Horizontal descriptiveName: descriptiveNegativeName: negativeButton: positiveButton: altNegativeButton: altPositiveButton: gravity: 0 dead: 0.19 sensitivity: 1 snap: 0 invert: 0 type: 2 axis: 0 joyNum: 0 - serializedVersion: 3 m_Name: Vertical descriptiveName: descriptiveNegativeName: negativeButton: positiveButton: altNegativeButton: altPositiveButton: gravity: 0 dead: 0.19 sensitivity: 1 snap: 0 invert: 1 type: 2 axis: 1 joyNum: 0 - serializedVersion: 3 m_Name: Fire1 descriptiveName: descriptiveNegativeName: negativeButton: positiveButton: joystick button 0 altNegativeButton: altPositiveButton: gravity: 1000 dead: 0.001 sensitivity: 1000 snap: 0 invert: 0 type: 0 axis: 0 joyNum: 0 - serializedVersion: 3 m_Name: Fire2 descriptiveName: descriptiveNegativeName: negativeButton: positiveButton: joystick button 1 altNegativeButton: altPositiveButton: gravity: 1000 dead: 0.001 sensitivity: 1000 snap: 0 invert: 0 type: 0 axis: 0 joyNum: 0 - serializedVersion: 3 m_Name: Fire3 descriptiveName: descriptiveNegativeName: negativeButton: positiveButton: joystick button 2 altNegativeButton: altPositiveButton: gravity: 1000 dead: 0.001 sensitivity: 1000 snap: 0 invert: 0 type: 0 axis: 0 joyNum: 0 - serializedVersion: 3 m_Name: Jump descriptiveName: descriptiveNegativeName: negativeButton: positiveButton: joystick button 3 altNegativeButton: altPositiveButton: gravity: 1000 dead: 0.001 sensitivity: 1000 snap: 0 invert: 0 type: 0 axis: 0 joyNum: 0 - serializedVersion: 3 m_Name: Submit descriptiveName: descriptiveNegativeName: negativeButton: positiveButton: return altNegativeButton: altPositiveButton: joystick button 0 gravity: 1000 dead: 0.001 sensitivity: 1000 snap: 0 invert: 0 type: 0 axis: 0 joyNum: 0 - serializedVersion: 3 m_Name: Submit descriptiveName: descriptiveNegativeName: negativeButton: positiveButton: enter altNegativeButton: altPositiveButton: space gravity: 1000 dead: 0.001 sensitivity: 1000 snap: 0 invert: 0 type: 0 axis: 0 joyNum: 0 - serializedVersion: 3 m_Name: Cancel descriptiveName: descriptiveNegativeName: negativeButton: positiveButton: escape altNegativeButton: altPositiveButton: joystick button 1 gravity: 1000 dead: 0.001 sensitivity: 1000 snap: 0 invert: 0 type: 0 axis: 0 joyNum: 0 ================================================ FILE: Water/ProjectSettings/NavMeshAreas.asset ================================================ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!126 &1 NavMeshProjectSettings: m_ObjectHideFlags: 0 serializedVersion: 2 areas: - name: Walkable cost: 1 - name: Not Walkable cost: 1 - name: Jump cost: 2 - name: cost: 1 - name: cost: 1 - name: cost: 1 - name: cost: 1 - name: cost: 1 - name: cost: 1 - name: cost: 1 - name: cost: 1 - name: cost: 1 - name: cost: 1 - name: cost: 1 - name: cost: 1 - name: cost: 1 - name: cost: 1 - name: cost: 1 - name: cost: 1 - name: cost: 1 - name: cost: 1 - name: cost: 1 - name: cost: 1 - name: cost: 1 - name: cost: 1 - name: cost: 1 - name: cost: 1 - name: cost: 1 - name: cost: 1 - name: cost: 1 - name: cost: 1 - name: cost: 1 m_LastAgentTypeID: -887442657 m_Settings: - serializedVersion: 2 agentTypeID: 0 agentRadius: 0.5 agentHeight: 2 agentSlope: 45 agentClimb: 0.75 ledgeDropHeight: 0 maxJumpAcrossDistance: 0 minRegionArea: 2 manualCellSize: 0 cellSize: 0.16666667 manualTileSize: 0 tileSize: 256 accuratePlacement: 0 debug: m_Flags: 0 m_SettingNames: - Humanoid ================================================ FILE: Water/ProjectSettings/NetworkManager.asset ================================================ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!149 &1 NetworkManager: m_ObjectHideFlags: 0 m_DebugLevel: 0 m_Sendrate: 15 m_AssetToPrefab: {} ================================================ FILE: Water/ProjectSettings/Physics2DSettings.asset ================================================ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!19 &1 Physics2DSettings: m_ObjectHideFlags: 0 serializedVersion: 3 m_Gravity: {x: 0, y: -9.81} m_DefaultMaterial: {fileID: 0} m_VelocityIterations: 8 m_PositionIterations: 3 m_VelocityThreshold: 1 m_MaxLinearCorrection: 0.2 m_MaxAngularCorrection: 8 m_MaxTranslationSpeed: 100 m_MaxRotationSpeed: 360 m_BaumgarteScale: 0.2 m_BaumgarteTimeOfImpactScale: 0.75 m_TimeToSleep: 0.5 m_LinearSleepTolerance: 0.01 m_AngularSleepTolerance: 2 m_DefaultContactOffset: 0.01 m_AutoSimulation: 1 m_QueriesHitTriggers: 1 m_QueriesStartInColliders: 1 m_ChangeStopsCallbacks: 0 m_CallbacksOnDisable: 1 m_AutoSyncTransforms: 1 m_AlwaysShowColliders: 0 m_ShowColliderSleep: 1 m_ShowColliderContacts: 0 m_ShowColliderAABB: 0 m_ContactArrowScale: 0.2 m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ================================================ FILE: Water/ProjectSettings/PresetManager.asset ================================================ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!1386491679 &1 PresetManager: m_ObjectHideFlags: 0 m_DefaultList: - type: m_NativeTypeID: 108 m_ManagedTypePPtr: {fileID: 0} m_ManagedTypeFallback: defaultPresets: - m_Preset: {fileID: 2655988077585873504, guid: c1cf8506f04ef2c4a88b64b6c4202eea, type: 2} - type: m_NativeTypeID: 1020 m_ManagedTypePPtr: {fileID: 0} m_ManagedTypeFallback: defaultPresets: - m_Preset: {fileID: 2655988077585873504, guid: 0cd792cc87e492d43b4e95b205fc5cc6, type: 2} - type: m_NativeTypeID: 1006 m_ManagedTypePPtr: {fileID: 0} m_ManagedTypeFallback: defaultPresets: - m_Preset: {fileID: 2655988077585873504, guid: 7a99f8aa944efe94cb9bd74562b7d5f9, type: 2} ================================================ FILE: Water/ProjectSettings/ProjectSettings.asset ================================================ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!129 &1 PlayerSettings: m_ObjectHideFlags: 0 serializedVersion: 15 productGUID: b04bf724ce5c14d10ad24a7ba3de8c44 AndroidProfiler: 0 AndroidFilterTouchesWhenObscured: 0 AndroidEnableSustainedPerformanceMode: 0 defaultScreenOrientation: 4 targetDevice: 2 useOnDemandResources: 0 accelerometerFrequency: 60 companyName: DefaultCompany productName: Water defaultCursor: {fileID: 0} cursorHotspot: {x: 0, y: 0} m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1} m_ShowUnitySplashScreen: 1 m_ShowUnitySplashLogo: 1 m_SplashScreenOverlayOpacity: 1 m_SplashScreenAnimation: 1 m_SplashScreenLogoStyle: 1 m_SplashScreenDrawMode: 0 m_SplashScreenBackgroundAnimationZoom: 1 m_SplashScreenLogoAnimationZoom: 1 m_SplashScreenBackgroundLandscapeAspect: 1 m_SplashScreenBackgroundPortraitAspect: 1 m_SplashScreenBackgroundLandscapeUvs: serializedVersion: 2 x: 0 y: 0 width: 1 height: 1 m_SplashScreenBackgroundPortraitUvs: serializedVersion: 2 x: 0 y: 0 width: 1 height: 1 m_SplashScreenLogos: [] m_VirtualRealitySplashScreen: {fileID: 0} m_HolographicTrackingLossScreen: {fileID: 0} defaultScreenWidth: 1024 defaultScreenHeight: 768 defaultScreenWidthWeb: 960 defaultScreenHeightWeb: 600 m_StereoRenderingPath: 0 m_ActiveColorSpace: 1 m_MTRendering: 1 m_StackTraceTypes: 010000000100000001000000010000000100000001000000 iosShowActivityIndicatorOnLoading: -1 androidShowActivityIndicatorOnLoading: -1 iosAppInBackgroundBehavior: 0 displayResolutionDialog: 1 iosAllowHTTPDownload: 1 allowedAutorotateToPortrait: 1 allowedAutorotateToPortraitUpsideDown: 1 allowedAutorotateToLandscapeRight: 1 allowedAutorotateToLandscapeLeft: 1 useOSAutorotation: 1 use32BitDisplayBuffer: 1 preserveFramebufferAlpha: 0 disableDepthAndStencilBuffers: 0 androidBlitType: 0 defaultIsNativeResolution: 1 macRetinaSupport: 1 runInBackground: 1 captureSingleScreen: 0 muteOtherAudioSources: 0 Prepare IOS For Recording: 0 Force IOS Speakers When Recording: 0 deferSystemGesturesMode: 0 hideHomeButton: 0 submitAnalytics: 1 usePlayerLog: 1 bakeCollisionMeshes: 0 forceSingleInstance: 0 resizableWindow: 0 useMacAppStoreValidation: 0 macAppStoreCategory: public.app-category.games gpuSkinning: 1 graphicsJobs: 0 xboxPIXTextureCapture: 0 xboxEnableAvatar: 0 xboxEnableKinect: 0 xboxEnableKinectAutoTracking: 0 xboxEnableFitness: 0 visibleInBackground: 1 allowFullscreenSwitch: 1 graphicsJobMode: 0 fullscreenMode: 1 xboxSpeechDB: 0 xboxEnableHeadOrientation: 0 xboxEnableGuest: 0 xboxEnablePIXSampling: 0 metalFramebufferOnly: 0 n3dsDisableStereoscopicView: 0 n3dsEnableSharedListOpt: 1 n3dsEnableVSync: 0 xboxOneResolution: 0 xboxOneSResolution: 0 xboxOneXResolution: 3 xboxOneMonoLoggingLevel: 0 xboxOneLoggingLevel: 1 xboxOneDisableEsram: 0 xboxOnePresentImmediateThreshold: 0 switchQueueCommandMemory: 0 videoMemoryForVertexBuffers: 0 psp2PowerMode: 0 psp2AcquireBGM: 1 vulkanEnableSetSRGBWrite: 0 vulkanUseSWCommandBuffers: 0 m_SupportedAspectRatios: 4:3: 1 5:4: 1 16:10: 1 16:9: 1 Others: 1 bundleVersion: 0.1 preloadedAssets: [] metroInputSource: 0 wsaTransparentSwapchain: 0 m_HolographicPauseOnTrackingLoss: 1 xboxOneDisableKinectGpuReservation: 0 xboxOneEnable7thCore: 0 isWsaHolographicRemotingEnabled: 0 vrSettings: cardboard: depthFormat: 0 enableTransitionView: 0 daydream: depthFormat: 0 useSustainedPerformanceMode: 0 enableVideoLayer: 0 useProtectedVideoMemory: 0 minimumSupportedHeadTracking: 0 maximumSupportedHeadTracking: 1 hololens: depthFormat: 1 depthBufferSharingEnabled: 0 oculus: sharedDepthBuffer: 0 dashSupport: 0 enable360StereoCapture: 0 protectGraphicsMemory: 0 useHDRDisplay: 0 m_ColorGamuts: 00000000 targetPixelDensity: 30 resolutionScalingMode: 0 androidSupportedAspectRatio: 1 androidMaxAspectRatio: 2.1 applicationIdentifier: {} buildNumber: {} AndroidBundleVersionCode: 1 AndroidMinSdkVersion: 16 AndroidTargetSdkVersion: 0 AndroidPreferredInstallLocation: 1 aotOptions: stripEngineCode: 1 iPhoneStrippingLevel: 0 iPhoneScriptCallOptimization: 0 ForceInternetPermission: 0 ForceSDCardPermission: 0 CreateWallpaper: 0 APKExpansionFiles: 0 keepLoadedShadersAlive: 0 StripUnusedMeshComponents: 1 VertexChannelCompressionMask: 4054 iPhoneSdkVersion: 988 iOSTargetOSVersionString: 8.0 tvOSSdkVersion: 0 tvOSRequireExtendedGameController: 0 tvOSTargetOSVersionString: 9.0 uIPrerenderedIcon: 0 uIRequiresPersistentWiFi: 0 uIRequiresFullScreen: 1 uIStatusBarHidden: 1 uIExitOnSuspend: 0 uIStatusBarStyle: 0 iPhoneSplashScreen: {fileID: 0} iPhoneHighResSplashScreen: {fileID: 0} iPhoneTallHighResSplashScreen: {fileID: 0} iPhone47inSplashScreen: {fileID: 0} iPhone55inPortraitSplashScreen: {fileID: 0} iPhone55inLandscapeSplashScreen: {fileID: 0} iPhone58inPortraitSplashScreen: {fileID: 0} iPhone58inLandscapeSplashScreen: {fileID: 0} iPadPortraitSplashScreen: {fileID: 0} iPadHighResPortraitSplashScreen: {fileID: 0} iPadLandscapeSplashScreen: {fileID: 0} iPadHighResLandscapeSplashScreen: {fileID: 0} appleTVSplashScreen: {fileID: 0} appleTVSplashScreen2x: {fileID: 0} tvOSSmallIconLayers: [] tvOSSmallIconLayers2x: [] tvOSLargeIconLayers: [] tvOSLargeIconLayers2x: [] tvOSTopShelfImageLayers: [] tvOSTopShelfImageLayers2x: [] tvOSTopShelfImageWideLayers: [] tvOSTopShelfImageWideLayers2x: [] iOSLaunchScreenType: 0 iOSLaunchScreenPortrait: {fileID: 0} iOSLaunchScreenLandscape: {fileID: 0} iOSLaunchScreenBackgroundColor: serializedVersion: 2 rgba: 0 iOSLaunchScreenFillPct: 100 iOSLaunchScreenSize: 100 iOSLaunchScreenCustomXibPath: iOSLaunchScreeniPadType: 0 iOSLaunchScreeniPadImage: {fileID: 0} iOSLaunchScreeniPadBackgroundColor: serializedVersion: 2 rgba: 0 iOSLaunchScreeniPadFillPct: 100 iOSLaunchScreeniPadSize: 100 iOSLaunchScreeniPadCustomXibPath: iOSUseLaunchScreenStoryboard: 0 iOSLaunchScreenCustomStoryboardPath: iOSDeviceRequirements: [] iOSURLSchemes: [] iOSBackgroundModes: 0 iOSMetalForceHardShadows: 0 metalEditorSupport: 1 metalAPIValidation: 1 iOSRenderExtraFrameOnPause: 0 appleDeveloperTeamID: iOSManualSigningProvisioningProfileID: tvOSManualSigningProvisioningProfileID: iOSManualSigningProvisioningProfileType: 0 tvOSManualSigningProvisioningProfileType: 0 appleEnableAutomaticSigning: 0 iOSRequireARKit: 0 appleEnableProMotion: 0 vulkanEditorSupport: 0 clonedFromGUID: 56e7a2d3a00f33d44bdd161b773c35b5 templatePackageId: com.unity.template.3d@1.0.0 templateDefaultScene: Assets/Scenes/SampleScene.unity AndroidTargetArchitectures: 5 AndroidSplashScreenScale: 0 androidSplashScreen: {fileID: 0} AndroidKeystoreName: AndroidKeyaliasName: AndroidBuildApkPerCpuArchitecture: 0 AndroidTVCompatibility: 1 AndroidIsGame: 1 AndroidEnableTango: 0 androidEnableBanner: 1 androidUseLowAccuracyLocation: 0 m_AndroidBanners: - width: 320 height: 180 banner: {fileID: 0} androidGamepadSupportLevel: 0 resolutionDialogBanner: {fileID: 0} m_BuildTargetIcons: [] m_BuildTargetPlatformIcons: [] m_BuildTargetBatching: - m_BuildTarget: Standalone m_StaticBatching: 1 m_DynamicBatching: 0 - m_BuildTarget: tvOS m_StaticBatching: 1 m_DynamicBatching: 0 - m_BuildTarget: Android m_StaticBatching: 1 m_DynamicBatching: 0 - m_BuildTarget: iPhone m_StaticBatching: 1 m_DynamicBatching: 0 - m_BuildTarget: WebGL m_StaticBatching: 0 m_DynamicBatching: 0 m_BuildTargetGraphicsAPIs: - m_BuildTarget: AndroidPlayer m_APIs: 0b00000015000000 m_Automatic: 1 - m_BuildTarget: iOSSupport m_APIs: 10000000 m_Automatic: 1 - m_BuildTarget: AppleTVSupport m_APIs: 10000000 m_Automatic: 0 - m_BuildTarget: WebGLSupport m_APIs: 0b000000 m_Automatic: 1 m_BuildTargetVRSettings: - m_BuildTarget: Standalone m_Enabled: 0 m_Devices: - Oculus - OpenVR m_BuildTargetEnableVuforiaSettings: [] openGLRequireES31: 0 openGLRequireES31AEP: 0 m_TemplateCustomTags: {} mobileMTRendering: Android: 1 iPhone: 1 tvOS: 1 m_BuildTargetGroupLightmapEncodingQuality: [] m_BuildTargetGroupLightmapSettings: [] playModeTestRunnerEnabled: 0 runPlayModeTestAsEditModeTest: 0 actionOnDotNetUnhandledException: 1 enableInternalProfiler: 0 logObjCUncaughtExceptions: 1 enableCrashReportAPI: 0 cameraUsageDescription: locationUsageDescription: microphoneUsageDescription: switchNetLibKey: switchSocketMemoryPoolSize: 6144 switchSocketAllocatorPoolSize: 128 switchSocketConcurrencyLimit: 14 switchScreenResolutionBehavior: 2 switchUseCPUProfiler: 0 switchApplicationID: 0x01004b9000490000 switchNSODependencies: switchTitleNames_0: switchTitleNames_1: switchTitleNames_2: switchTitleNames_3: switchTitleNames_4: switchTitleNames_5: switchTitleNames_6: switchTitleNames_7: switchTitleNames_8: switchTitleNames_9: switchTitleNames_10: switchTitleNames_11: switchTitleNames_12: switchTitleNames_13: switchTitleNames_14: switchPublisherNames_0: switchPublisherNames_1: switchPublisherNames_2: switchPublisherNames_3: switchPublisherNames_4: switchPublisherNames_5: switchPublisherNames_6: switchPublisherNames_7: switchPublisherNames_8: switchPublisherNames_9: switchPublisherNames_10: switchPublisherNames_11: switchPublisherNames_12: switchPublisherNames_13: switchPublisherNames_14: switchIcons_0: {fileID: 0} switchIcons_1: {fileID: 0} switchIcons_2: {fileID: 0} switchIcons_3: {fileID: 0} switchIcons_4: {fileID: 0} switchIcons_5: {fileID: 0} switchIcons_6: {fileID: 0} switchIcons_7: {fileID: 0} switchIcons_8: {fileID: 0} switchIcons_9: {fileID: 0} switchIcons_10: {fileID: 0} switchIcons_11: {fileID: 0} switchIcons_12: {fileID: 0} switchIcons_13: {fileID: 0} switchIcons_14: {fileID: 0} switchSmallIcons_0: {fileID: 0} switchSmallIcons_1: {fileID: 0} switchSmallIcons_2: {fileID: 0} switchSmallIcons_3: {fileID: 0} switchSmallIcons_4: {fileID: 0} switchSmallIcons_5: {fileID: 0} switchSmallIcons_6: {fileID: 0} switchSmallIcons_7: {fileID: 0} switchSmallIcons_8: {fileID: 0} switchSmallIcons_9: {fileID: 0} switchSmallIcons_10: {fileID: 0} switchSmallIcons_11: {fileID: 0} switchSmallIcons_12: {fileID: 0} switchSmallIcons_13: {fileID: 0} switchSmallIcons_14: {fileID: 0} switchManualHTML: switchAccessibleURLs: switchLegalInformation: switchMainThreadStackSize: 1048576 switchPresenceGroupId: switchLogoHandling: 0 switchReleaseVersion: 0 switchDisplayVersion: 1.0.0 switchStartupUserAccount: 0 switchTouchScreenUsage: 0 switchSupportedLanguagesMask: 0 switchLogoType: 0 switchApplicationErrorCodeCategory: switchUserAccountSaveDataSize: 0 switchUserAccountSaveDataJournalSize: 0 switchApplicationAttribute: 0 switchCardSpecSize: -1 switchCardSpecClock: -1 switchRatingsMask: 0 switchRatingsInt_0: 0 switchRatingsInt_1: 0 switchRatingsInt_2: 0 switchRatingsInt_3: 0 switchRatingsInt_4: 0 switchRatingsInt_5: 0 switchRatingsInt_6: 0 switchRatingsInt_7: 0 switchRatingsInt_8: 0 switchRatingsInt_9: 0 switchRatingsInt_10: 0 switchRatingsInt_11: 0 switchLocalCommunicationIds_0: switchLocalCommunicationIds_1: switchLocalCommunicationIds_2: switchLocalCommunicationIds_3: switchLocalCommunicationIds_4: switchLocalCommunicationIds_5: switchLocalCommunicationIds_6: switchLocalCommunicationIds_7: switchParentalControl: 0 switchAllowsScreenshot: 1 switchAllowsVideoCapturing: 1 switchAllowsRuntimeAddOnContentInstall: 0 switchDataLossConfirmation: 0 switchUserAccountLockEnabled: 0 switchSupportedNpadStyles: 3 switchNativeFsCacheSize: 32 switchIsHoldTypeHorizontal: 0 switchSupportedNpadCount: 8 switchSocketConfigEnabled: 0 switchTcpInitialSendBufferSize: 32 switchTcpInitialReceiveBufferSize: 64 switchTcpAutoSendBufferSizeMax: 256 switchTcpAutoReceiveBufferSizeMax: 256 switchUdpSendBufferSize: 9 switchUdpReceiveBufferSize: 42 switchSocketBufferEfficiency: 4 switchSocketInitializeEnabled: 1 switchNetworkInterfaceManagerInitializeEnabled: 1 switchPlayerConnectionEnabled: 1 ps4NPAgeRating: 12 ps4NPTitleSecret: ps4NPTrophyPackPath: ps4ParentalLevel: 11 ps4ContentID: ED1633-NPXX51362_00-0000000000000000 ps4Category: 0 ps4MasterVersion: 01.00 ps4AppVersion: 01.00 ps4AppType: 0 ps4ParamSfxPath: ps4VideoOutPixelFormat: 0 ps4VideoOutInitialWidth: 1920 ps4VideoOutBaseModeInitialWidth: 1920 ps4VideoOutReprojectionRate: 60 ps4PronunciationXMLPath: ps4PronunciationSIGPath: ps4BackgroundImagePath: ps4StartupImagePath: ps4StartupImagesFolder: ps4IconImagesFolder: ps4SaveDataImagePath: ps4SdkOverride: ps4BGMPath: ps4ShareFilePath: ps4ShareOverlayImagePath: ps4PrivacyGuardImagePath: ps4NPtitleDatPath: ps4RemotePlayKeyAssignment: -1 ps4RemotePlayKeyMappingDir: ps4PlayTogetherPlayerCount: 0 ps4EnterButtonAssignment: 1 ps4ApplicationParam1: 0 ps4ApplicationParam2: 0 ps4ApplicationParam3: 0 ps4ApplicationParam4: 0 ps4DownloadDataSize: 0 ps4GarlicHeapSize: 2048 ps4ProGarlicHeapSize: 2560 ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ ps4pnSessions: 1 ps4pnPresence: 1 ps4pnFriends: 1 ps4pnGameCustomData: 1 playerPrefsSupport: 0 enableApplicationExit: 0 restrictedAudioUsageRights: 0 ps4UseResolutionFallback: 0 ps4ReprojectionSupport: 0 ps4UseAudio3dBackend: 0 ps4SocialScreenEnabled: 0 ps4ScriptOptimizationLevel: 0 ps4Audio3dVirtualSpeakerCount: 14 ps4attribCpuUsage: 0 ps4PatchPkgPath: ps4PatchLatestPkgPath: ps4PatchChangeinfoPath: ps4PatchDayOne: 0 ps4attribUserManagement: 0 ps4attribMoveSupport: 0 ps4attrib3DSupport: 0 ps4attribShareSupport: 0 ps4attribExclusiveVR: 0 ps4disableAutoHideSplash: 0 ps4videoRecordingFeaturesUsed: 0 ps4contentSearchFeaturesUsed: 0 ps4attribEyeToEyeDistanceSettingVR: 0 ps4IncludedModules: [] monoEnv: psp2Splashimage: {fileID: 0} psp2NPTrophyPackPath: psp2NPSupportGBMorGJP: 0 psp2NPAgeRating: 12 psp2NPTitleDatPath: psp2NPCommsID: psp2NPCommunicationsID: psp2NPCommsPassphrase: psp2NPCommsSig: psp2ParamSfxPath: psp2ManualPath: psp2LiveAreaGatePath: psp2LiveAreaBackroundPath: psp2LiveAreaPath: psp2LiveAreaTrialPath: psp2PatchChangeInfoPath: psp2PatchOriginalPackage: psp2PackagePassword: F69AzBlax3CF3EDNhm3soLBPh71Yexui psp2KeystoneFile: psp2MemoryExpansionMode: 0 psp2DRMType: 0 psp2StorageType: 0 psp2MediaCapacity: 0 psp2DLCConfigPath: psp2ThumbnailPath: psp2BackgroundPath: psp2SoundPath: psp2TrophyCommId: psp2TrophyPackagePath: psp2PackagedResourcesPath: psp2SaveDataQuota: 10240 psp2ParentalLevel: 1 psp2ShortTitle: Not Set psp2ContentID: IV0000-ABCD12345_00-0123456789ABCDEF psp2Category: 0 psp2MasterVersion: 01.00 psp2AppVersion: 01.00 psp2TVBootMode: 0 psp2EnterButtonAssignment: 2 psp2TVDisableEmu: 0 psp2AllowTwitterDialog: 1 psp2Upgradable: 0 psp2HealthWarning: 0 psp2UseLibLocation: 0 psp2InfoBarOnStartup: 0 psp2InfoBarColor: 0 psp2ScriptOptimizationLevel: 0 splashScreenBackgroundSourceLandscape: {fileID: 0} splashScreenBackgroundSourcePortrait: {fileID: 0} spritePackerPolicy: webGLMemorySize: 256 webGLExceptionSupport: 1 webGLNameFilesAsHashes: 0 webGLDataCaching: 0 webGLDebugSymbols: 0 webGLEmscriptenArgs: webGLModulesDirectory: webGLTemplate: APPLICATION:Default webGLAnalyzeBuildSize: 0 webGLUseEmbeddedResources: 0 webGLCompressionFormat: 1 webGLLinkerTarget: 0 scriptingDefineSymbols: 1: UNITY_POST_PROCESSING_STACK_V2 4: UNITY_POST_PROCESSING_STACK_V2 7: UNITY_POST_PROCESSING_STACK_V2 13: UNITY_POST_PROCESSING_STACK_V2 14: UNITY_POST_PROCESSING_STACK_V2 17: UNITY_POST_PROCESSING_STACK_V2 18: UNITY_POST_PROCESSING_STACK_V2 19: UNITY_POST_PROCESSING_STACK_V2 21: UNITY_POST_PROCESSING_STACK_V2 23: UNITY_POST_PROCESSING_STACK_V2 24: UNITY_POST_PROCESSING_STACK_V2 25: UNITY_POST_PROCESSING_STACK_V2 26: UNITY_POST_PROCESSING_STACK_V2 27: UNITY_POST_PROCESSING_STACK_V2 platformArchitecture: {} scriptingBackend: {} il2cppCompilerConfiguration: {} incrementalIl2cppBuild: {} allowUnsafeCode: 0 additionalIl2CppArgs: scriptingRuntimeVersion: 1 apiCompatibilityLevelPerPlatform: {} m_RenderingPath: 1 m_MobileRenderingPath: 1 metroPackageName: Template_3D metroPackageVersion: metroCertificatePath: metroCertificatePassword: metroCertificateSubject: metroCertificateIssuer: metroCertificateNotAfter: 0000000000000000 metroApplicationDescription: Template_3D wsaImages: {} metroTileShortName: metroTileShowName: 0 metroMediumTileShowName: 0 metroLargeTileShowName: 0 metroWideTileShowName: 0 metroDefaultTileSize: 1 metroTileForegroundText: 2 metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, a: 1} metroSplashScreenUseBackgroundColor: 0 platformCapabilities: {} metroFTAName: metroFTAFileTypes: [] metroProtocolName: metroCompilationOverrides: 1 n3dsUseExtSaveData: 0 n3dsCompressStaticMem: 1 n3dsExtSaveDataNumber: 0x12345 n3dsStackSize: 131072 n3dsTargetPlatform: 2 n3dsRegion: 7 n3dsMediaSize: 0 n3dsLogoStyle: 3 n3dsTitle: GameName n3dsProductCode: n3dsApplicationId: 0xFF3FF XboxOneProductId: XboxOneUpdateKey: XboxOneSandboxId: XboxOneContentId: XboxOneTitleId: XboxOneSCId: XboxOneGameOsOverridePath: XboxOnePackagingOverridePath: XboxOneAppManifestOverridePath: XboxOneVersion: 1.0.0.0 XboxOnePackageEncryption: 0 XboxOnePackageUpdateGranularity: 2 XboxOneDescription: XboxOneLanguage: - enus XboxOneCapability: [] XboxOneGameRating: {} XboxOneIsContentPackage: 0 XboxOneEnableGPUVariability: 0 XboxOneSockets: {} XboxOneSplashScreen: {fileID: 0} XboxOneAllowedProductIds: [] XboxOnePersistentLocalStorageSize: 0 XboxOneXTitleMemory: 8 xboxOneScriptCompiler: 0 vrEditorSettings: daydream: daydreamIconForeground: {fileID: 0} daydreamIconBackground: {fileID: 0} cloudServicesEnabled: UNet: 1 facebookSdkVersion: 7.9.4 apiCompatibilityLevel: 3 cloudProjectId: projectName: Template_3D organizationId: cloudEnabled: 0 enableNativePlatformBackendsForNewInputSystem: 0 disableOldInputManagerSupport: 0 ================================================ FILE: Water/ProjectSettings/ProjectVersion.txt ================================================ m_EditorVersion: 2018.2.11f1 ================================================ FILE: Water/ProjectSettings/QualitySettings.asset ================================================ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!47 &1 QualitySettings: m_ObjectHideFlags: 0 serializedVersion: 5 m_CurrentQuality: 4 m_QualitySettings: - serializedVersion: 2 name: Very Low pixelLightCount: 0 shadows: 0 shadowResolution: 0 shadowProjection: 1 shadowCascades: 1 shadowDistance: 15 shadowNearPlaneOffset: 3 shadowCascade2Split: 0.33333334 shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} shadowmaskMode: 0 blendWeights: 1 textureQuality: 1 anisotropicTextures: 0 antiAliasing: 0 softParticles: 0 softVegetation: 0 realtimeReflectionProbes: 0 billboardsFaceCameraPosition: 0 vSyncCount: 0 lodBias: 0.3 maximumLODLevel: 0 particleRaycastBudget: 4 asyncUploadTimeSlice: 2 asyncUploadBufferSize: 4 resolutionScalingFixedDPIFactor: 1 excludedTargetPlatforms: [] - serializedVersion: 2 name: Low pixelLightCount: 0 shadows: 0 shadowResolution: 0 shadowProjection: 1 shadowCascades: 1 shadowDistance: 20 shadowNearPlaneOffset: 3 shadowCascade2Split: 0.33333334 shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} shadowmaskMode: 0 blendWeights: 2 textureQuality: 0 anisotropicTextures: 0 antiAliasing: 0 softParticles: 0 softVegetation: 0 realtimeReflectionProbes: 0 billboardsFaceCameraPosition: 0 vSyncCount: 0 lodBias: 0.4 maximumLODLevel: 0 particleRaycastBudget: 16 asyncUploadTimeSlice: 2 asyncUploadBufferSize: 4 resolutionScalingFixedDPIFactor: 1 excludedTargetPlatforms: [] - serializedVersion: 2 name: Medium pixelLightCount: 1 shadows: 1 shadowResolution: 0 shadowProjection: 1 shadowCascades: 1 shadowDistance: 20 shadowNearPlaneOffset: 3 shadowCascade2Split: 0.33333334 shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} shadowmaskMode: 0 blendWeights: 2 textureQuality: 0 anisotropicTextures: 1 antiAliasing: 0 softParticles: 0 softVegetation: 0 realtimeReflectionProbes: 0 billboardsFaceCameraPosition: 0 vSyncCount: 1 lodBias: 0.7 maximumLODLevel: 0 particleRaycastBudget: 64 asyncUploadTimeSlice: 2 asyncUploadBufferSize: 4 resolutionScalingFixedDPIFactor: 1 excludedTargetPlatforms: [] - serializedVersion: 2 name: High pixelLightCount: 2 shadows: 2 shadowResolution: 1 shadowProjection: 1 shadowCascades: 2 shadowDistance: 40 shadowNearPlaneOffset: 3 shadowCascade2Split: 0.33333334 shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} shadowmaskMode: 1 blendWeights: 2 textureQuality: 0 anisotropicTextures: 1 antiAliasing: 2 softParticles: 0 softVegetation: 1 realtimeReflectionProbes: 1 billboardsFaceCameraPosition: 1 vSyncCount: 1 lodBias: 1 maximumLODLevel: 0 particleRaycastBudget: 256 asyncUploadTimeSlice: 2 asyncUploadBufferSize: 4 resolutionScalingFixedDPIFactor: 1 excludedTargetPlatforms: [] - serializedVersion: 2 name: Very High pixelLightCount: 3 shadows: 2 shadowResolution: 2 shadowProjection: 1 shadowCascades: 2 shadowDistance: 40 shadowNearPlaneOffset: 3 shadowCascade2Split: 0.33333334 shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} shadowmaskMode: 1 blendWeights: 4 textureQuality: 0 anisotropicTextures: 1 antiAliasing: 4 softParticles: 1 softVegetation: 1 realtimeReflectionProbes: 1 billboardsFaceCameraPosition: 1 vSyncCount: 1 lodBias: 1.5 maximumLODLevel: 0 particleRaycastBudget: 1024 asyncUploadTimeSlice: 2 asyncUploadBufferSize: 4 resolutionScalingFixedDPIFactor: 1 excludedTargetPlatforms: [] - serializedVersion: 2 name: Ultra pixelLightCount: 4 shadows: 2 shadowResolution: 2 shadowProjection: 1 shadowCascades: 4 shadowDistance: 150 shadowNearPlaneOffset: 3 shadowCascade2Split: 0.33333334 shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} shadowmaskMode: 1 blendWeights: 4 textureQuality: 0 anisotropicTextures: 1 antiAliasing: 4 softParticles: 1 softVegetation: 1 realtimeReflectionProbes: 1 billboardsFaceCameraPosition: 1 vSyncCount: 1 lodBias: 2 maximumLODLevel: 0 particleRaycastBudget: 4096 asyncUploadTimeSlice: 2 asyncUploadBufferSize: 4 resolutionScalingFixedDPIFactor: 1 excludedTargetPlatforms: [] m_PerPlatformDefaultQuality: Android: 2 Nintendo 3DS: 5 Nintendo Switch: 5 PS4: 5 PSP2: 2 Standalone: 5 Tizen: 2 WebGL: 3 WiiU: 5 Windows Store Apps: 5 XboxOne: 5 iPhone: 2 tvOS: 2 ================================================ FILE: Water/ProjectSettings/TagManager.asset ================================================ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!78 &1 TagManager: serializedVersion: 2 tags: [] layers: - Default - TransparentFX - Ignore Raycast - - Water - UI - - - PostProcessing - - - - - - - - - - - - - - - - - - - - - - - m_SortingLayers: - name: Default uniqueID: 0 locked: 0 ================================================ FILE: Water/ProjectSettings/TimeManager.asset ================================================ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!5 &1 TimeManager: m_ObjectHideFlags: 0 Fixed Timestep: 0.0167 Maximum Allowed Timestep: 0.1 m_TimeScale: 1 Maximum Particle Timestep: 0.03 ================================================ FILE: Water/ProjectSettings/UnityConnectSettings.asset ================================================ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!310 &1 UnityConnectSettings: m_ObjectHideFlags: 0 m_Enabled: 1 m_TestMode: 0 m_TestEventUrl: m_TestConfigUrl: m_TestInitMode: 0 CrashReportingSettings: m_EventUrl: https://perf-events.cloud.unity3d.com/api/events/crashes m_NativeEventUrl: https://perf-events.cloud.unity3d.com/symbolicate m_Enabled: 0 m_CaptureEditorExceptions: 1 UnityPurchasingSettings: m_Enabled: 0 m_TestMode: 0 UnityAnalyticsSettings: m_Enabled: 1 m_InitializeOnStartup: 1 m_TestMode: 0 m_TestEventUrl: m_TestConfigUrl: UnityAdsSettings: m_Enabled: 0 m_InitializeOnStartup: 1 m_TestMode: 0 m_IosGameId: m_AndroidGameId: m_GameIds: {} m_GameId: PerformanceReportingSettings: m_Enabled: 0