浏览代码

Water shader improvements

Switched Non-tessellated shader to run in vert vs frag
Created Temp LOD patch mesh
/main
Andre McGrail 7 年前
当前提交
eaa6472e
共有 17 个文件被更改,包括 1653 次插入212 次删除
  1. 286
      Assets/WaterSystem/Meshes/Water.fbx
  2. 27
      Assets/WaterSystem/Meshes/Water.fbx.meta
  3. 4
      Assets/WaterSystem/Sea.mat
  4. 32
      Assets/WaterSystem/SeaVisual.prefab
  5. 77
      Assets/WaterSystem/Shaders/GerstnerWaves.cginc
  6. 50
      Assets/WaterSystem/Shaders/WaterCommon.hlsl
  7. 2
      Assets/WaterSystem/Water.cs
  8. 956
      Assets/scenes/Testing/WaterPerf.unity
  9. 9
      ProjectSettings/EditorBuildSettings.asset
  10. 103
      ProjectSettings/ProjectSettings.asset
  11. 2
      ProjectSettings/ProjectVersion.txt
  12. 8
      Assets/WaterSystem/Objects.meta
  13. 286
      Assets/WaterSystem/Objects/WaterLodPatch.prefab
  14. 8
      Assets/WaterSystem/Objects/WaterLodPatch.prefab.meta
  15. 8
      Assets/Cinemachine/Timeline/LegacyTimelineAPI.unitypackage.meta
  16. 7
      Assets/Cinemachine/CinemachineExamples.unitypackage.meta

286
Assets/WaterSystem/Meshes/Water.fbx
文件差异内容过多而无法显示
查看文件

27
Assets/WaterSystem/Meshes/Water.fbx.meta


serializedVersion: 22
fileIDToRecycleName:
100000: //RootNode
100002: WaterBlock_50m_LOD0
100004: WaterBlock_50m_LOD1
100006: WaterBlock_50m_LOD2
100008: WaterBlock_tessellation_1k
400002: WaterBlock_50m_LOD0
400004: WaterBlock_50m_LOD1
400006: WaterBlock_50m_LOD2
400008: WaterBlock_tessellation_1k
2300002: WaterBlock_50m_LOD0
2300004: WaterBlock_50m_LOD1
2300006: WaterBlock_50m_LOD2
2300008: WaterBlock_tessellation_1k
3300002: WaterBlock_50m_LOD0
3300004: WaterBlock_50m_LOD1
3300006: WaterBlock_50m_LOD2
3300008: WaterBlock_tessellation_1k
4300002: WaterBlock_50m_LOD0
4300004: WaterBlock_tessellation_1k
4300006: WaterBlock_50m_LOD1
4300008: WaterBlock_50m_LOD2
20500000: //RootNode
2186277476908879412: ImportLogs
2186277476908879414: ImportLogs
2186277476908879416: ImportLogs

2186277476908879432: ImportLogs
2186277476908879434: ImportLogs
2186277476908879436: ImportLogs
2186277476908879438: ImportLogs
externalObjects:
- first:
type: UnityEngine:Material

clipAnimations: []
isReadable: 1
meshes:
lODScreenPercentages: []
lODScreenPercentages:
- 0.25
- 0.125
- 0.01
globalScale: 1
meshCompression: 0
addColliders: 0

4
Assets/WaterSystem/Sea.mat


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

- _BumpValue: 0.5
- _Cutoff: 0.5
- _Debug: 0
- _DebugPass: 1
- _DebugPass: 8
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _FragWaves: 0

32
Assets/WaterSystem/SeaVisual.prefab


m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1015499191777110}
m_Mesh: {fileID: 4300000, guid: fb2f5cec30b474b89b778e3aab6f3dfe, type: 3}
m_Mesh: {fileID: 4300004, guid: fb2f5cec30b474b89b778e3aab6f3dfe, type: 3}
--- !u!114 &114084614423911968
MonoBehaviour:
m_ObjectHideFlags: 1

atime7: 0
m_Mode: 0
m_NumColorKeys: 3
m_NumAlphaKeys: 2
_peakRamp: {fileID: 0}
_peakRampRaw:
serializedVersion: 2
key0: {r: 1, g: 1, b: 1, a: 1}
key1: {r: 1, g: 1, b: 1, a: 1}
key2: {r: 0, g: 0, b: 0, a: 0}
key3: {r: 0, g: 0, b: 0, a: 0}
key4: {r: 0, g: 0, b: 0, a: 0}
key5: {r: 0, g: 0, b: 0, a: 0}
key6: {r: 0, g: 0, b: 0, a: 0}
key7: {r: 0, g: 0, b: 0, a: 0}
ctime0: 0
ctime1: 65535
ctime2: 0
ctime3: 0
ctime4: 0
ctime5: 0
ctime6: 0
ctime7: 0
atime0: 0
atime1: 65535
atime2: 0
atime3: 0
atime4: 0
atime5: 0
atime6: 0
atime7: 0
m_Mode: 0
m_NumColorKeys: 2
m_NumAlphaKeys: 2
_waves:
- amplitude: 0.33761293

77
Assets/WaterSystem/Shaders/GerstnerWaves.cginc


#ifndef GERSTNER_WAVES_INCLUDED
#define GERSTNER_WAVES_INCLUDED
uniform int _WaveCount; // how many waves, set via the water component
uniform uint _WaveCount; // how many waves, set via the water component
uniform float4 _WaveData[10]; // the data for the waves, x=amplitude, y=direction, z=wavelength, w=omniDir set via the water component
uniform float4 _WaveData2[10]; // more data, x=omnidirX, y=omnidirZ

float3 normal;
};
WaveStruct GerstnerWave(half2 pos, int numWaves, float amplitude, half direction, half wavelength, int omni, half2 omniPos)
WaveStruct GerstnerWave(half2 pos, float waveCountMulti, float amplitude, half direction, half wavelength, float omni, half2 omniPos)
////////////////////////////////wave value calculations//////////////////////////
half3 wave = 0; // wave vector
half wSpeed = sqrt(9.8 * (6.28318 / wavelength)); // frequency of the wave based off wavelength
half w = 6.28318 / wavelength; // 2pi over wavelength(hardcoded)
half peak = 1; // peak value, 1 is the sharpest peaks
half qi = peak / (amplitude * w * numWaves);
////////////////////////////////wave value calculations//////////////////////////
half3 wave = 0; // wave vector
half w = 6.28318 / wavelength; // 2pi over wavelength(hardcoded)
half wSpeed = sqrt(9.8 * w); // frequency of the wave based off wavelength
half peak = 1; // peak value, 1 is the sharpest peaks
half qi = peak / (amplitude * w * _WaveCount);
direction = radians(direction); // convert the incoming degrees to radians, for directional waves
half2 dirWaveInput = float2(sin(direction), cos(direction)) * (1 - omni);
half2 omniWaveInput = (pos - omniPos) * omni;
float2 windDir = 0;
float dir = 0;
if(omni == 0)
{
//// Linear waves
direction = radians(direction); // convert the incoming degrees to radians
windDir = normalize(float2(sin(direction), cos(direction))); // calculate wind direction - TODO - currently radians
dir = dot(windDir, pos); // calculate a gradient along the wind direction
}
else
{
//// Omnidirectional waves
windDir = normalize(pos - omniPos);
dir = dot(windDir, pos - omniPos); // calculate a gradient along the wind direction
}
half2 windDir = normalize(dirWaveInput + omniWaveInput); // calculate wind direction
half dir = dot(windDir, pos - (omniPos * omni)); // calculate a gradient along the wind direction
////////////////////////////position output calculations/////////////////////////
half calc = dir * w + -_Time.y * wSpeed; // the wave calculation
float cosCalc = cos(calc); // cosine version(used for horizontal undulation)
float sinCalc = sin(calc); // sin version(used for vertical undulation)
////////////////////////////position output calculations/////////////////////////
half calc = dir * w + -_Time.y * wSpeed; // the wave calculation
float cosCalc = cos(calc); // cosine version(used for horizontal undulation)
float sinCalc = sin(calc); // sin version(used for vertical undulation)
// 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))/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;
// normal vector
float3 n = float3(-(windDir.x * wa * cosCalc),
-(windDir.y * wa * cosCalc),
1-(qi * wa * sinCalc));
// calculate the offsets for the current point
wave.xz = qi * amplitude * windDir.xy * cosCalc;
wave.y = (((sinCalc * 0.5 + 0.5) * amplitude)) * waveCountMulti;// the height is divided by the number of waves
////////////////////////////normal output calculations/////////////////////////
half wa = w * amplitude;
// normal vector
float3 n = float3(-(windDir.xy * wa * cosCalc),
1-(qi * wa * sinCalc));
////////////////////////////////assign to output///////////////////////////////
waveOut.position = wave * clamp(amplitude * 10000, 0, 1);
waveOut.normal = (n / numWaves) * amplitude;
////////////////////////////////assign to output///////////////////////////////
waveOut.position = wave * saturate(amplitude * 10000);
waveOut.normal = (n * waveCountMulti) * amplitude;
return waveOut;
}

half2 pos = position.xz;
WaveStruct waves[10];
waveOut.position = 0;
half waveCountMulti = 1.0 / _WaveCount;
for(int i = 0; i < _WaveCount; i++)
for(uint i = 0; i < _WaveCount; i++)
waves[i] = GerstnerWave(pos, _WaveCount, _WaveData[i].x, _WaveData[i].y, _WaveData[i].z, _WaveData[i].w, half2(_WaveData2[i].x, _WaveData2[i].y)); // calculate the wave
waves[i] = GerstnerWave(pos, waveCountMulti, _WaveData[i].x, _WaveData[i].y, _WaveData[i].z, _WaveData[i].w, half2(_WaveData2[i].x, _WaveData2[i].y)); // calculate the wave
waveOut.position += waves[i].position; // add the position
waveOut.normal += waves[i].normal; // add the normal
}

50
Assets/WaterSystem/Shaders/WaterCommon.hlsl


//temp
inline float3 ObjSpaceViewDir( in float4 v )
{
float3 objSpaceCameraPos = mul(GetWorldToObjectMatrix(), float4(GetCameraPositionWS(), 1)).xyz;
float3 objSpaceCameraPos = GetCameraPositionWS(); //mul(GetWorldToObjectMatrix(), float4(GetCameraPositionWS(), 1)).xyz;
return objSpaceCameraPos - v.xyz;
}

o.posWS = TransformObjectToWorld(v.vertex.xyz);
o.uv.zw = o.posWS.xz;
o.clipPos = TransformWorldToHClip(o.posWS);
o.vertColor = v.color;
//Gerstner here
#if defined (_PERF_GERSTNER) // PERF
WaveStruct wave;
SampleWaves(o.posWS, 1, wave);
o.normal = normalize(wave.normal.xzy);
o.posWS += wave.position;
#endif
//after waves
o.clipPos = TransformWorldToHClip(o.posWS);
o.vertColor = v.color;
// We either sample GI from lightmap or SH. lightmap UV and vertex SH coefficients
// are packed in lightmapUVOrVertexSH to save interpolator.

o.fogFactorAndVertexLight = VertexLightingAndFog(o.normal, o.posWS, o.clipPos);
// Additional data
//o.additionalData.y = length(ObjSpaceViewDir(v.vertex));
//float3 viewPos = TransformWorldToView(o.posWS.xyz);
//o.additionalData.x = length(viewPos / viewPos.z);// distance to surface
o.additionalData.y = length(ObjSpaceViewDir(half4(o.posWS, 1)));
return o;
}

half4 waterFX = _WaterFXMap.Sample(sampler_WaterFXMap, float2(screenUV.x, screenUV.y));
#if _TESSELLATION
half3 normalWS = normalize(IN.normal);
#else
//Do the gerstner waves in the pixel shader
WaveStruct wave;
#if defined (_PERF_GERSTNER) // PERF
SampleWaves(IN.posWS, 1, wave);
//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.additionalData.y = length(ObjSpaceViewDir(half4(IN.posWS + wave.position, 1)));
half3 normalWS = normalize(wave.normal.xzy);
//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;
half3 normalWS = IN.normal;
#if !_TESSELLATION // additionalData.y needs more acuracy when not tessellated
float3 viewPos = TransformWorldToView(IN.posWS);
IN.additionalData.x = length(viewPos / viewPos.z);// distance to surface
#endif

// Depth
#if defined (_PERF_DEPTH) // PERF
half2 depth = WaterDepth(IN.posWS, IN.viewDir, IN.uv.xy, IN.additionalData, half2(screenUV.x, screenUV.y));
half2 depth = WaterDepth(IN.posWS, IN.viewDir, (IN.posWS.xz * 0.001) + 0.5, IN.additionalData, half2(screenUV.x, screenUV.y));// TODO - hardcoded shore depth UVs
#else
half2 depth = 100;
#endif

//half3 refraction = _CameraColorTexture.Sample(sampler_CameraColorTexture, screenUV);
// Do Foam
#if defined (_PERF_FOAM) // PERF
#if defined (_PERF_FOAM) // PERFpth.y
half3 foamMap = _FoamMap.Sample(sampler_FoamMap, (IN.uv.zw * 0.025) + (detailBump.xy * 0.0025)); //r=thick, g=medium, b=light
half shoreMask = saturate((1-depth.y + 1.25) * 0.35);//shore foam

}
else if(_DebugPass == 8) // Temp debug
{
return half4(frac(IN.uv.zw), 0, 1);
return half4(frac(IN.additionalData.y), 0, 0, 1);
}
else // fallback to output
{

2
Assets/WaterSystem/Water.cs


_depthCam.transform.up = Vector3.forward;//face teh camera down
_depthCam.enabled = true;
_depthCam.orthographic = true;
_depthCam.orthographicSize = 500;//hardcoded - TODO
_depthCam.orthographicSize = 500;//hardcoded = 1k area - TODO
_depthCam.depthTextureMode = DepthTextureMode.Depth;
_depthCam.nearClipPlane =0.1f;
_depthCam.farClipPlane = _waterMaxDepth;

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

9
ProjectSettings/EditorBuildSettings.asset


serializedVersion: 2
m_Scenes:
- enabled: 0
path: Assets/scenes/Testing/TestLevel.unity
guid: b6b31d405719d4360ad1673855c47ea8
- enabled: 1
path:
guid: 00000000000000000000000000000000
- enabled: 0
path: Assets/scenes/Island.unity
guid: e49366a21c3d84388bfb33016c0e77e2
- enabled: 0

path: Assets/scenes/Testing/Water.unity
guid: 3ec7517bb458ebc449f7ad88104046da
- enabled: 1
path: Assets/scenes/Testing/WaterPerf.unity
guid: 2537cd0765fecf0439b7d67b03a746e1
m_configObjects: {}

103
ProjectSettings/ProjectSettings.asset


androidBlitType: 0
defaultIsNativeResolution: 1
macRetinaSupport: 1
runInBackground: 0
runInBackground: 1
captureSingleScreen: 0
muteOtherAudioSources: 0
Prepare IOS For Recording: 0

androidGamepadSupportLevel: 0
resolutionDialogBanner: {fileID: 0}
m_BuildTargetIcons: []
m_BuildTargetPlatformIcons: []
m_BuildTargetPlatformIcons:
- m_BuildTarget: iPhone
m_Icons:
- m_Textures: []
m_Width: 180
m_Height: 180
m_Kind: 0
m_SubKind: iPhone
- m_Textures: []
m_Width: 120
m_Height: 120
m_Kind: 0
m_SubKind: iPhone
- m_Textures: []
m_Width: 167
m_Height: 167
m_Kind: 0
m_SubKind: iPad
- m_Textures: []
m_Width: 152
m_Height: 152
m_Kind: 0
m_SubKind: iPad
- m_Textures: []
m_Width: 76
m_Height: 76
m_Kind: 0
m_SubKind: iPad
- m_Textures: []
m_Width: 120
m_Height: 120
m_Kind: 3
m_SubKind: iPhone
- m_Textures: []
m_Width: 80
m_Height: 80
m_Kind: 3
m_SubKind: iPhone
- m_Textures: []
m_Width: 80
m_Height: 80
m_Kind: 3
m_SubKind: iPad
- m_Textures: []
m_Width: 40
m_Height: 40
m_Kind: 3
m_SubKind: iPad
- m_Textures: []
m_Width: 87
m_Height: 87
m_Kind: 1
m_SubKind: iPhone
- m_Textures: []
m_Width: 58
m_Height: 58
m_Kind: 1
m_SubKind: iPhone
- m_Textures: []
m_Width: 29
m_Height: 29
m_Kind: 1
m_SubKind: iPhone
- m_Textures: []
m_Width: 58
m_Height: 58
m_Kind: 1
m_SubKind: iPad
- m_Textures: []
m_Width: 29
m_Height: 29
m_Kind: 1
m_SubKind: iPad
- m_Textures: []
m_Width: 60
m_Height: 60
m_Kind: 2
m_SubKind: iPhone
- m_Textures: []
m_Width: 40
m_Height: 40
m_Kind: 2
m_SubKind: iPhone
- m_Textures: []
m_Width: 40
m_Height: 40
m_Kind: 2
m_SubKind: iPad
- m_Textures: []
m_Width: 20
m_Height: 20
m_Kind: 2
m_SubKind: iPad
- m_Textures: []
m_Width: 1024
m_Height: 1024
m_Kind: 4
m_SubKind: App Store
m_StaticBatching: 0
m_StaticBatching: 1
m_DynamicBatching: 0
- m_BuildTarget: Standalone
m_StaticBatching: 0

2
ProjectSettings/ProjectVersion.txt


m_EditorVersion: 2018.1.0b6
m_EditorVersion: 2018.1.0b5

8
Assets/WaterSystem/Objects.meta


fileFormatVersion: 2
guid: 4292e712c8bdf4771a35435c2934590a
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

286
Assets/WaterSystem/Objects/WaterLodPatch.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_ParentPrefab: {fileID: 0}
m_RootGameObject: {fileID: 1477961963965388}
m_IsPrefabParent: 1
--- !u!1 &1415045587928296
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5
m_Component:
- component: {fileID: 4172212805002138}
- component: {fileID: 33397681991365302}
- component: {fileID: 23309285156196136}
m_Layer: 0
m_Name: WaterBlock_50m_LOD0
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!1 &1477961963965388
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5
m_Component:
- component: {fileID: 4036952117179152}
- component: {fileID: 205520933258157784}
m_Layer: 0
m_Name: WaterLodPatch
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!1 &1896129854512888
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5
m_Component:
- component: {fileID: 4672200508544988}
- component: {fileID: 33387042011886832}
- component: {fileID: 23574842194601780}
m_Layer: 0
m_Name: WaterBlock_50m_LOD2
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!1 &1969045154341432
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5
m_Component:
- component: {fileID: 4006639810214120}
- component: {fileID: 33105359117845322}
- component: {fileID: 23508137269823142}
m_Layer: 0
m_Name: WaterBlock_50m_LOD1
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &4006639810214120
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1969045154341432}
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: 4036952117179152}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4036952117179152
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1477961963965388}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0.56, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 4172212805002138}
- {fileID: 4006639810214120}
- {fileID: 4672200508544988}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4172212805002138
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1415045587928296}
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: 4036952117179152}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4672200508544988
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1896129854512888}
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: 4036952117179152}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!23 &23309285156196136
MeshRenderer:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1415045587928296}
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: 4849d4d15a9cb42eb9533ae935e2630b, 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!23 &23508137269823142
MeshRenderer:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1969045154341432}
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: 4849d4d15a9cb42eb9533ae935e2630b, 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!23 &23574842194601780
MeshRenderer:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1896129854512888}
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: 4849d4d15a9cb42eb9533ae935e2630b, 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 &33105359117845322
MeshFilter:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1969045154341432}
m_Mesh: {fileID: 4300006, guid: fb2f5cec30b474b89b778e3aab6f3dfe, type: 3}
--- !u!33 &33387042011886832
MeshFilter:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1896129854512888}
m_Mesh: {fileID: 4300008, guid: fb2f5cec30b474b89b778e3aab6f3dfe, type: 3}
--- !u!33 &33397681991365302
MeshFilter:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1415045587928296}
m_Mesh: {fileID: 4300002, guid: fb2f5cec30b474b89b778e3aab6f3dfe, type: 3}
--- !u!205 &205520933258157784
LODGroup:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1477961963965388}
serializedVersion: 2
m_LocalReferencePoint: {x: 0, y: 0, z: 0}
m_Size: 50.000004
m_FadeMode: 0
m_AnimateCrossFading: 0
m_LODs:
- screenRelativeHeight: 0.80181605
fadeTransitionWidth: 0
renderers:
- renderer: {fileID: 23309285156196136}
- screenRelativeHeight: 0.4018018
fadeTransitionWidth: 0
renderers:
- renderer: {fileID: 23508137269823142}
- screenRelativeHeight: 0.1
fadeTransitionWidth: 0
renderers:
- renderer: {fileID: 23574842194601780}
m_Enabled: 1

8
Assets/WaterSystem/Objects/WaterLodPatch.prefab.meta


fileFormatVersion: 2
guid: b92151ed482ed45ef84412410142f938
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 100100000
userData:
assetBundleName:
assetBundleVariant:

8
Assets/Cinemachine/Timeline/LegacyTimelineAPI.unitypackage.meta


fileFormatVersion: 2
guid: 1e24085edff8e4e499582d8dcf099510
timeCreated: 1493908344
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

7
Assets/Cinemachine/CinemachineExamples.unitypackage.meta


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