浏览代码

Added debug views for water shader

/main
Andre 7 年前
当前提交
ac9361da
共有 15 个文件被更改,包括 1687 次插入38 次删除
  1. 27
      Assets/WaterSystem/Sea.mat
  2. 3
      Assets/WaterSystem/Shaders/GerstnerWaves.cginc
  3. 42
      Assets/WaterSystem/Shaders/Water.shader
  4. 107
      Assets/WaterSystem/Shaders/WaterCommon.hlsl
  5. 5
      Assets/WaterSystem/Shaders/WaterInput.hlsl
  6. 36
      Assets/WaterSystem/Shaders/WaterTessellated.shader
  7. 21
      Assets/WaterSystem/Water.cs
  8. 76
      Assets/WaterSystem/Scripts/ShaderPerfTests.cs
  9. 11
      Assets/WaterSystem/Scripts/ShaderPerfTests.cs.meta
  10. 120
      Assets/WaterSystem/Sea_Tess.mat
  11. 8
      Assets/WaterSystem/Sea_Tess.mat.meta
  12. 167
      Assets/WaterSystem/Textures/PeakMap.tif
  13. 94
      Assets/WaterSystem/Textures/PeakMap.tif.meta
  14. 1001
      Assets/scenes/Testing/WaterPerf.unity
  15. 7
      Assets/scenes/Testing/WaterPerf.unity.meta

27
Assets/WaterSystem/Sea.mat


m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: Sea
m_Shader: {fileID: 4800000, guid: 4d4deeba0d8a64503964c2f653931109, type: 3}
m_ShaderKeywords: GERSTNER_WAVES _NORMALMAP _REFLECTION_PLANARREFLECTION _TESSELLATION
m_Shader: {fileID: 4800000, guid: a94edd303261140cf9e6ce8c90d7a99a, type: 3}
m_ShaderKeywords: GERSTNER_WAVES _DEBUGPASS_REFLECTION _NORMALMAP _PERF_COL _PERF_DEPTH
_PERF_FOAM _PERF_FRESNEL _PERF_GERSTNER _PERF_GESTNER _PERF_LIGHTING _PERF_REF
_PERF_VERT _REFLECTION_PLANARREFLECTION
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 1

m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _PeakMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpScale: 0.25
- _BumpScale: 0.5
- _Debug: 0
- _DebugPass: 1
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _FragWaves: 0

- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _Perf: 1
- _Perf_Col: 1
- _Perf_Depth: 1
- _Perf_Foam: 1
- _Perf_Fres: 1
- _Perf_Gerstner: 1
- _Perf_Light: 1
- _Perf_Ref: 1
- _Perf_Vert: 1
- _Reflection: 2
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1

- _Tessellation: 1
- _TessellationEdgeLength: 35
- _Tessellation: 0
- _TessellationEdgeLength: 11.9
- _UVSec: 0
- _WorkflowMode: 1
- _ZWrite: 1

3
Assets/WaterSystem/Shaders/GerstnerWaves.cginc


// calculate the offsets for the current point
wave.x = qi * amplitude * windDir.x * cosCalc;
wave.z = qi * amplitude * windDir.y * cosCalc;
wave.y = (((sinCalc * 0.5 + 0.5) * amplitude) - amplitude * 0.5)/numWaves;// the height is divided by the number of waves
wave.y = (((sinCalc * 0.5 + 0.5) * amplitude))/numWaves;// the height is divided by the number of waves
// - amplitude * 0.5 ^^ made the wave -0.5 >> 0.5 not 0 >> 1
////////////////////////////normal output calculations/////////////////////////
half wa = w * amplitude;

42
Assets/WaterSystem/Shaders/Water.shader


Properties
{
_TessellationEdgeLength ("Tessellation Edge Length", Range(5, 100)) = 50
//[NoScaleOffset]
//_ColorRamp("Color Ramp", 2D) = "grey" {}
[Toggle(_TESSELLATION)]
_Tessellation ("Tessellation", Float) = 0
[Header(Debug)]
[Toggle(_DEBUG)]
_Debug ("Debug Rendering", Float) = 0
[KeywordEnum(Final, Reflection, Color, Depth, WaterFX, Normals, Fresnel, Specular, Temporary)]
_DebugPass ("Debug Mode", Float) = 0
// Remove after testing
[Header(Performance)]
[Toggle(_PERF_REF)]
_Perf_Ref ("Perf Reflection", float) = 0
[Toggle(_PERF_COL)]
_Perf_Col ("Perf Color", float) = 0
[Toggle(_PERF_DEPTH)]
_Perf_Depth ("Perf Depth", float) = 0
[Toggle(_PERF_VERT)]
_Perf_Vert ("Perf Vert", float) = 0
[Toggle(_PERF_LIGHTING)]
_Perf_Light ("Perf Lighting", float) = 0
[Toggle(_PERF_FRESNEL)]
_Perf_Fres ("Perf Fresnel", float) = 0
[Toggle(_PERF_GERSTNER)]
_Perf_Gerstner ("Perf Gerstner Waves", float) = 0
[Toggle(_PERF_FOAM)]
_Perf_Foam ("Perf Foam", float) = 0
//[NoScaleOffset]
//_PeakMap("Peakmap", 2D) = "white" {}
}
SubShader
{

HLSLPROGRAM
/////////////////SHADER FEATURES//////////////////
#pragma shader_feature _ _TESSELLATION
#define _TESSELLATION 0
#pragma shader_feature _ _DEBUG
///////////////PERF SHADER FEATURES///////////////
#pragma multi_compile _ _PERF_REF
#pragma multi_compile _ _PERF_COL
#pragma multi_compile _ _PERF_DEPTH
#pragma multi_compile _ _PERF_VERT
#pragma multi_compile _ _PERF_LIGHTING
#pragma multi_compile _ _PERF_FRESNEL
#pragma multi_compile _ _PERF_GERSTNER
#pragma multi_compile _ _PERF_FOAM
////////////////////INCLUDES//////////////////////
#include "WaterCommon.hlsl"

107
Assets/WaterSystem/Shaders/WaterCommon.hlsl


// Fragment for water
half4 WaterFragment(WaterVertexOutput IN) : SV_Target
{
#if defined (_PERF_VERT) // PERF
half2 screenUV = ComputeNormalizedDeviceCoordinates(IN.clipPos);//screen UVs
screenUV /= half2(_ScreenParams.x * 0.5, -_ScreenParams.y * 0.5);// TODO - might be a SRP fix
half3 prePosWS = IN.posWS;

#else
//Do the gerstner waves in the pixel shader
WaveStruct wave;
#if defined (_PERF_GERSTNER) // PERF
//IN.posWS.xz -= wave.position.xz;
IN.uv.zw -= wave.position.xz;
SampleWaves(IN.posWS, 1, wave);
#else
wave.position = 0;
wave.normal = float3(0, 0, 1);
#endif
IN.posWS.y += wave.position.y;
IN.uv.zw += wave.position.xz;
//half thing = (length(wave.position.xz) * (wave.position.y + 0.25)) / _WaveCount;
//half thing = _PeakMap.Sample(sampler_PeakMap, float2(wave.position.y, 0));
IN.posWS.y += wave.position.y; //thing;
// Additional data(in vertex otherwise)
float3 viewPos = TransformWorldToView(IN.posWS);
IN.additionalData.x = length(viewPos / viewPos.z);// distance to surface

normalWS += half3(detailBump.x, 0, detailBump.y) * _BumpScale;
// Depth
#if defined (_PERF_DEPTH) // PERF
#else
half2 depth = 100;
#endif
#if defined (_PERF_FRESNEL) // PERF
//fresnelTerm = pow(fresnelTerm, 2);
#else
half fresnelTerm = 0;
#endif
// Shadows

float fogFactor = IN.fogFactorAndVertexLight.x;
// Do specular
#if defined (_PERF_LIGHTING) // PERF
#else
half3 spec = 0;
#endif
#if defined (_PERF_REF) // PERF
#else
half3 reflection = 0;
#endif
half3 refraction = _CameraColorTexture.Sample(sampler_CameraColorTexture, screenUV);
//half3 refraction = _CameraColorTexture.Sample(sampler_CameraColorTexture, screenUV);
#if defined (_PERF_FOAM) // PERF
half foamMask = IN.posWS.y - 0.25;
half foamMask = IN.posWS.y - 0.5;
foamMask = saturate(foamMask + shoreMask + waterFX.r);

#else
half foam = 0;
#endif
#if defined (_PERF_COL) // PERF
#else
color = 0.5;
#endif
half3 comp = color + foam + (reflection * (1-(foam)));
half3 comp = color + (foam * 0.75) + (reflection * (1-(foam)));
return half4(comp, 1);
// Tessellation check
// #if _TESSELLATION
// return half4(1, 0, 0, 1);
// #else
// return half4(0, 1, 0, 1);
// #endif
//return half4(depth.x * 0.1, 0, 0, 1);
//return waterFX;
//return half4(refraction, 1);
//return half4(frac(IN.additionalData.y), 0, 0, 1);
//return half4(color, 1);
//return half4(foam, foam, foam, 1);
//return half4(spec, 1);
//return half4(IN.vertColor);
//return half4(IN.viewDir, 1);
#if _DEBUG
if(_DebugPass == 1)
{
return half4(reflection, 1); // Reflection debug
}
else if(_DebugPass == 2) // Color debug
{
return half4(color, 1);
}
else if(_DebugPass == 3) // Depth debug
{
return half4(depth, 0, 1);
}
else if(_DebugPass == 4) // WaterFX pass debug
{
return waterFX;
}
else if(_DebugPass == 5) // Normals debug
{
return half4(normalWS, 1);
}
else if(_DebugPass == 6) // Fresnel debug
{
return half4(fresnelTerm, 0, 0, 1);
}
else if(_DebugPass == 7) // Specular debug
{
return half4(spec, 1);
}
else if(_DebugPass == 8) // Temp debug
{
return half4(frac(IN.uv.zw), 0, 1);
}
else // fallback to output
{
return half4(comp, 1);
}
#else
return half4(comp, 1);
#endif
#else // vert perf
return half4(0.5, 0.5, 0.5, 1);
#endif
}
#endif // WATER_COMMON_INCLUDED

5
Assets/WaterSystem/Shaders/WaterInput.hlsl


CBUFFER_START(MaterialProperties)
half _BumpScale;
half _MaxDepth;
int _DebugPass;
half4 _depthCamZParams;
CBUFFER_END

TEXTURE2D(_CameraDepthTexture); SAMPLER(sampler_CameraDepthTexture);
TEXTURE2D(_WaterDepthMap); SAMPLER(sampler_WaterDepthMap);
TEXTURE2D(_CameraColorTexture); SAMPLER(sampler_CameraColorTexture); // TODO - Grabpass temp replacement
//TEXTURE2D(_CameraColorTexture); SAMPLER(sampler_CameraColorTexture); // TODO - Grabpass temp replacement
TEXTURE2D(_PeakMap); SAMPLER(sampler_PeakMap);
// Surface textures

36
Assets/WaterSystem/Shaders/WaterTessellated.shader


Properties
{
_TessellationEdgeLength ("Tessellation Edge Length", Range(5, 100)) = 50
//[NoScaleOffset]
//_ColorRamp("Color Ramp", 2D) = "grey" {}
[NoScaleOffset]
_BumpMap("Detail Wave Normal", 2D) = "bump" {}
_BumpScale("Detail Wave Amount", Range(0, 1)) = 0.2//fine detail multiplier

_Reflection ("ReflectionMode", float) = 0
[Header(Debug)]
[Toggle(_DEBUG)]
_Debug ("Debug Rendering", Float) = 0
[KeywordEnum(Final, Reflection, Color, Depth, WaterFX, Normals, Fresnel, Specular, Temporary)]
_DebugPass ("Debug Mode", Float) = 0
// Remove after testing
[Toggle(_PERF_REF)]
_Perf_Ref ("Perf Reflection", float) = 0
[Toggle(_PERF_COL)]
_Perf_Col ("Perf Color", float) = 0
[Toggle(_PERF_DEPTH)]
_Perf_Depth ("Perf Depth", float) = 0
[Toggle(_PERF_VERT)]
_Perf_Vert ("Perf Vert", float) = 0
[Toggle(_PERF_LIGHTING)]
_Perf_Light ("Perf Lighting", float) = 0
[Toggle(_PERF_FRESNEL)]
_Perf_Fres ("Perf Fresnel", float) = 0
[Toggle(_PERF_GERSTNER)]
_Perf_Gerstner ("Perf Gerstner Waves", float) = 0
[Toggle(_PERF_FOAM)]
_Perf_Foam ("Perf Foam", float) = 0
}
SubShader
{

/////////////////SHADER FEATURES//////////////////
#pragma shader_feature _ _TESSELLATION
#define _TESSELLATION 1
#pragma shader_feature _ _DEBUG
#define _TESSELLATION 1
///////////////PERF SHADER FEATURES///////////////
#pragma multi_compile _ _PERF_REF
#pragma multi_compile _ _PERF_COL
#pragma multi_compile _ _PERF_DEPTH
#pragma multi_compile _ _PERF_VERT
#pragma multi_compile _ _PERF_LIGHTING
#pragma multi_compile _ _PERF_FRESNEL
#pragma multi_compile _ _PERF_GERSTNER
#pragma multi_compile _ _PERF_FOAM
////////////////////INCLUDES//////////////////////
#include "WaterCommon.hlsl"

21
Assets/WaterSystem/Water.cs


public Gradient _absorptionRampRaw;
public Gradient _scatterRampRaw;
[SerializeField]
private Texture2D _peakRamp;
public Gradient _peakRampRaw;
[SerializeField]
public List<Wave> _waves = new List<Wave>();
[SerializeField]
private Wave[] _backupWaves;

SetWaves();
GenerateVertexColors();
GenerateColorRamp();
GeneratePeakRamp();
CaptureDepthMap();
CreateFXCam();
}

_colorRamp.SetPixels(cols);
_colorRamp.Apply();
Shader.SetGlobalTexture("_AbsorptionScatteringRamp", _colorRamp);
}
[ContextMenu("Generate new peakmap")]
public void GeneratePeakRamp()
{
_peakRamp = new Texture2D(128, 1, TextureFormat.ARGB32, false, false);
_peakRamp.wrapMode = TextureWrapMode.Clamp;
Color[] cols = new Color[256];
for (int i = 0; i < 128; i++)
{
cols[i] = _peakRampRaw.Evaluate((float)i / 128f);
}
_peakRamp.SetPixels(cols);
_peakRamp.Apply();
Shader.SetGlobalTexture("_PeakMap", _peakRamp);
}
GerstnerWaves.WaveStruct tempWave = new GerstnerWaves.WaveStruct();

76
Assets/WaterSystem/Scripts/ShaderPerfTests.cs


using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ShaderPerfTests : MonoBehaviour {
public Material mat;
public void ToggleVert(bool toggle)
{
string key = "_PERF_VERT";
if(toggle)
mat.EnableKeyword(key);
else
mat.DisableKeyword(key);
}
public void ToggleRef(bool toggle)
{
string key = "_PERF_REF";
if(toggle)
mat.EnableKeyword(key);
else
mat.DisableKeyword(key);
}
public void ToggleCol(bool toggle)
{
string key = "_PERF_COL";
if(toggle)
mat.EnableKeyword(key);
else
mat.DisableKeyword(key);
}
public void ToggleDepth(bool toggle)
{
string key = "_PERF_DEPTH";
if(toggle)
mat.EnableKeyword(key);
else
mat.DisableKeyword(key);
}
public void ToggleLight(bool toggle)
{
string key = "_PERF_LIGHTING";
if(toggle)
mat.EnableKeyword(key);
else
mat.DisableKeyword(key);
}
public void ToggleFresnel(bool toggle)
{
string key = "_PERF_FRESNEL";
if(toggle)
mat.EnableKeyword(key);
else
mat.DisableKeyword(key);
}
public void ToggleGerstner(bool toggle)
{
string key = "_PERF_GERSTNER";
if(toggle)
mat.EnableKeyword(key);
else
mat.DisableKeyword(key);
}
public void ToggleFoam(bool toggle)
{
string key = "_PERF_FOAM";
if(toggle)
mat.EnableKeyword(key);
else
mat.DisableKeyword(key);
}
}

11
Assets/WaterSystem/Scripts/ShaderPerfTests.cs.meta


fileFormatVersion: 2
guid: 0496a714bfab8da4c890436de8a44838
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

120
Assets/WaterSystem/Sea_Tess.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: Sea_Tess
m_Shader: {fileID: 4800000, guid: 4d4deeba0d8a64503964c2f653931109, type: 3}
m_ShaderKeywords: GERSTNER_WAVES _DEBUGPASS_REFLECTION _NORMALMAP _PERF_COL _PERF_DEPTH
_PERF_FOAM _PERF_FRESNEL _PERF_GERSTNER _PERF_GESTNER _PERF_LIGHTING _PERF_REF
_PERF_VERT _REFLECTION_PLANARREFLECTION
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 1
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses:
- PASS 0
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 2800000, guid: 6ef621565277fc147b3e6eecb98a325e, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ColorRamp:
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}
- _DispMap:
m_Texture: {fileID: 8400000, guid: 5510640d0517f4e78b407529b5d05e1e, type: 2}
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}
- _FoamMap:
m_Texture: {fileID: 2800000, guid: ca439406e806ecf44a9586510be9477d, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
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}
- _SpecGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _BumpScale: 0.5
- _BumpValue: 0.5
- _Cutoff: 0.5
- _Debug: 0
- _DebugPass: 1
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _FragWaves: 0
- _GlossMapScale: 1
- _Glossiness: 0
- _GlossyReflections: 1
- _Metallic: 0
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _Perf: 1
- _Perf_Col: 1
- _Perf_Depth: 1
- _Perf_Foam: 1
- _Perf_Fres: 1
- _Perf_Gerstner: 1
- _Perf_Light: 1
- _Perf_Ref: 1
- _Perf_Vert: 1
- _Reflection: 2
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _Tess: 4
- _TessEdge: 14.4
- _Tessellation: 0
- _TessellationEdgeLength: 5
- _UVSec: 0
- _WorkflowMode: 1
- _ZWrite: 1
- _dispDist: 5
m_Colors:
- _Color: {r: 0.051486313, g: 0.6744443, b: 0.8396226, a: 1}
- _Color2: {r: 0, g: 0.19346876, b: 0.4056604, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 0}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
- _wave01info: {r: 0.44, g: 2.3, b: 0, a: 12.3}
- _wave02info: {r: 0.3, g: 1.14, b: 1.25, a: 6.2}
- _wave03info: {r: 0.3, g: -1.13, b: 0.2, a: 9}

8
Assets/WaterSystem/Sea_Tess.mat.meta


fileFormatVersion: 2
guid: 7d5435876e995f24ea1d82f90b67d2d5
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

167
Assets/WaterSystem/Textures/PeakMap.tif


II*�@
�D"(1" 2B�T6VI��
�7i��Es�0�B�$'�$'Adobe Photoshop CC 2015 (Windows)2018:02:17 22:14:24<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c111 79.158325, 2015/09/10-01:10:20 ">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/">
<xmp:CreatorTool>Adobe Photoshop CC 2015 (Windows)</xmp:CreatorTool>
<xmp:CreateDate>2018-02-17T22:01:33Z</xmp:CreateDate>
<xmp:MetadataDate>2018-02-17T22:14:24Z</xmp:MetadataDate>
<xmp:ModifyDate>2018-02-17T22:14:24Z</xmp:ModifyDate>
<dc:format>image/tiff</dc:format>
<xmpMM:InstanceID>xmp.iid:eb486fc1-55ec-e940-8587-81c16674b1be</xmpMM:InstanceID>
<xmpMM:DocumentID>xmp.did:eb486fc1-55ec-e940-8587-81c16674b1be</xmpMM:DocumentID>
<xmpMM:OriginalDocumentID>xmp.did:eb486fc1-55ec-e940-8587-81c16674b1be</xmpMM:OriginalDocumentID>
<xmpMM:History>
<rdf:Seq>
<rdf:li rdf:parseType="Resource">
<stEvt:action>created</stEvt:action>
<stEvt:instanceID>xmp.iid:eb486fc1-55ec-e940-8587-81c16674b1be</stEvt:instanceID>
<stEvt:when>2018-02-17T22:01:33Z</stEvt:when>
<stEvt:softwareAgent>Adobe Photoshop CC 2015 (Windows)</stEvt:softwareAgent>
</rdf:li>
</rdf:Seq>
</xmpMM:History>
<photoshop:ColorMode>3</photoshop:ColorMode>
<photoshop:ICCProfile>Adobe RGB (1998)</photoshop:ICCProfile>
</rdf:Description>
</rdf:RDF>
</x:xmpmeta>
<?xpacket end="w"?>8BIM%8BIM:� printOutputPstSboolInteenumInteClrmprintSixteenBitbool printerNameTEXTprintProofSetupObjc Proof Setup
proofSetupBltnenum builtinProof proofCMYK8BIM;-printOutputOptionsCptnboolClbrboolRgsMboolCrnCboolCntCboolLblsboolNgtvboolEmlDboolIntrboolBckgObjcRGBCRd doub@o�Grn doub@o�Bl doub@o�BrdTUntF#RltBld UntF#RltRsltUntF#Pxl@n
vectorDataboolPgPsenumPgPsPgPCLeftUntF#RltTop UntF#RltScl UntF#Prc@YcropWhenPrintingboolcropRectBottomlong cropRectLeftlong cropRectRightlong cropRectToplong8BIM���8BIM&?�8BIM Z8BIM8BIM� 8BIM'
8BIM�H/fflff/ff���2Z5-8BIM�p��������������������������������������������������������������������������������������������8BIM@@8BIM8BIM5@@nullboundsObjcRct1Top longLeftlongBtomlongRghtlong@slicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum
ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlongRghtlong@urlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong
leftOutsetlong bottomOutsetlong rightOutsetlong8BIM( ?�8BIM8BIM H<<,���� Adobe_CM��Adobed����   
        ��"����?

 3!1AQa"q�2���B#$R�b34r��C%�S���cs5���&D�TdE£t6�U�e�����u��F'���������������Vfv��������7GWgw��������5!1AQaq"2����B#�R��3$b�r��CScs4�%���&5��D�T�dEU6te������u��F���������������Vfv��������'7GWgw������� ?�<?�a�>�W �J}�����'��IxZI%��8BIM!]Adobe PhotoshopAdobe Photoshop CC 20150ADBEmntrRGB XYZ �acspAPPLnone���-ADBE
cprt�2desc0kwtpt�bkpt�rTRC�gTRC�bTRC�rXYZ�gXYZbXYZtextCopyright 1999 Adobe Systems IncorporateddescAdobe RGB (1998)XYZ �Q�XYZ curv3curv3curv3XYZ �O��XYZ 4��,�XYZ &1/��� P7p H�0�@ Ab1�+>#1�*;D�2�6K%U�2� B[-sf3pNk5 g3��Z{=a(4�j�E7)4��z�M$*5P��U+ +5����]N
,6���e m6����mk n7p��uj �7�p��} 08�� �Sq8�Q�@�9a++�Vs9�C;�4:q_K��:��{[�&�;�k� �;�ѻ{�B�<�ۋ�S�<�
��J�z=
+��5�;=��[���<>���,�}>�����O��?+#��O�?������ ����@�

94
Assets/WaterSystem/Textures/PeakMap.tif.meta


fileFormatVersion: 2
guid: 73acf520ecbde384a992281db16d291c
TextureImporter:
fileIDToRecycleName: {}
externalObjects: {}
serializedVersion: 5
mipmaps:
mipMapMode: 0
enableMipMap: 0
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: -1
aniso: -1
mipBias: -1
wrapU: 2
wrapV: 2
wrapW: 2
nPOTScale: 1
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
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
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
vertices: []
indices:
edges: []
weights: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:

1001
Assets/scenes/Testing/WaterPerf.unity
文件差异内容过多而无法显示
查看文件

7
Assets/scenes/Testing/WaterPerf.unity.meta


fileFormatVersion: 2
guid: 2537cd0765fecf0439b7d67b03a746e1
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
正在加载...
取消
保存