This commit is contained in:
2025-10-31 15:20:38 +08:00
parent 254e1926cf
commit 5ad8b2b7e1
6502 changed files with 581819 additions and 0 deletions

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 6a89b9512702d634fb09b1850938ab04
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 73c25c66bb155b64788058949771f23e
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 3ed217015c7a6ca459b1a064b28848f3
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 4f1328ec22ec12d419a577bc7542faad
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,81 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Default_ReflectionMat
m_Shader: {fileID: 4800000, guid: 0f9c6fde4248b5345aa78baa9c51307c, 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: 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}
- _ReflectionTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _BumpScale: 1
- _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
- _ZWrite: 1
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: fbfc4efe23a9b0046a787d829353352b
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

View File

@@ -0,0 +1,118 @@
fileFormatVersion: 2
guid: 3c249ea879248f340a8701634b45b2a0
labels:
- Pidi_PlanarGizmos
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 0
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: 1
streamingMipmaps: 0
streamingMipmapsPriority: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: -1
aniso: 1
mipBias: -100
wrapU: 1
wrapV: 1
wrapW: -1
nPOTScale: 0
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: 1
spriteTessellationDetail: -1
textureType: 2
textureShape: 1
singleChannelComponent: 0
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
applyGammaDecoding: 1
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,94 @@
fileFormatVersion: 2
guid: 7895f1f943551db4e9784958a7e88a58
timeCreated: 1567123727
licenseType: Store
ModelImporter:
serializedVersion: 22
fileIDToRecycleName:
100000: //RootNode
400000: //RootNode
2100000: No Name
2300000: //RootNode
3300000: //RootNode
4300000: Plane
4300002: Default_Planar_Reflector
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
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: 0
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:

View File

@@ -0,0 +1,28 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: PIDIPlanarReflections4_WorldBasedFog
m_Shader: {fileID: 4800000, guid: fcb20b4cb153ee8429e9eead78936e77, type: 3}
m_ShaderKeywords:
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs: []
m_Floats:
- _FogDensity: 0.03
- _FogEnd: 200
- _FogMode: 0
- _FogStart: 0
m_Colors:
- _CameraPosition: {r: 8.186697, g: 1.258153, b: -8.00485, a: 0}

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: edc18ab1799dc3c4c8660c19ecccf8f1
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,67 @@
Shader "Hidden/PIDI SHaders Collection/Planar Reflections 4/World Based Fog"
{
Properties
{
_P4FogCameraPosition("Camera position", Vector) = (0,0,0,0)
_FogDensity("Fog Density", Float) = 0.03
_FogStart("Fog Start", Float) = 0
_FogEnd("Fog End", Float) = 300
[Enum(Linear,0,Exp,1)]_FogMode("Fog Mode", Float ) = 0
}
SubShader
{
Tags { "RenderType"="Opaque" }
LOD 100
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma multi_compile_fog
#include "UnityCG.cginc"
struct appdata
{
float4 vertex : POSITION;
float4 texcoord : TEXCOORD0;
};
struct v2f
{
float4 worldFog : TEXCOORD0;
float4 vertex : SV_POSITION;
};
sampler2D _MainTex;
float4 _MainTex_ST;
float3 _P4FogCameraPosition;
float _FogEnd;
float _FogStart;
v2f vert (appdata v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
float3 worldPos = mul(unity_ObjectToWorld, v.vertex);
float worldDist = distance(worldPos, _WorldSpaceCameraPos);
UNITY_CALC_FOG_FACTOR_RAW(worldDist);
o.worldFog = unityFogFactor;
return o;
}
fixed4 frag(v2f i) : SV_Target
{
half4 col = lerp( float4(0,0,0,0), unity_FogColor, 1-i.worldFog.x);
col.a = 1 - i.worldFog.x;
return col;
}
ENDCG
}
}
}

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: fcb20b4cb153ee8429e9eead78936e77
ShaderImporter:
externalObjects: {}
defaultTextures: []
nonModifiableTextures: []
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,65 @@
/*
* PIDI Planar Reflections 4
* Developed by : Jorge Pinal Negrete.
* Copyright(c) 2017-2021, Jorge Pinal Negrete. All Rights Reserved.
*
*/
Shader "PIDI Shaders Collection/Planar Reflections 4/Unlit/Reflection Only"
{
Properties
{
[PerRendererData]_ReflectionTex ("Reflection Texture", 2D) = "black" {}
}
SubShader
{
Tags { "RenderType"="Opaque" }
LOD 100
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
struct appdata
{
float4 vertex : POSITION;
float4 uv : TEXCOORD0;
};
struct v2f
{
float4 screenPos : TEXCOORD0;
float4 vertex : SV_POSITION;
};
sampler2D _ReflectionTex;
float4 _ReflectionTex_ST;
v2f vert (appdata v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.screenPos = ComputeGrabScreenPos(o.vertex);
return o;
}
fixed4 frag (v2f i) : SV_Target
{
i.screenPos.xy /= i.screenPos.w;
i.screenPos.x = 1-i.screenPos.x;
//i.screenPos.y = 1-i.screenPos.y;
// sample the texture
fixed4 col = tex2D(_ReflectionTex, i.screenPos.xy);
return col;
}
ENDCG
}
}
}

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 0f9c6fde4248b5345aa78baa9c51307c
timeCreated: 1567138136
licenseType: Store
ShaderImporter:
externalObjects: {}
defaultTextures: []
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,40 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: PlanarReflections4_InternalBlur
m_Shader: {fileID: 4800000, guid: c2ffde48fb65ed242aa3d765d2bd704b, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ReflectionDepth:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _HasDepth: 1
- _KernelSize: 8
- _Radius: 0.08
m_Colors: []
m_BuildTextureStacks: []

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: b9505779f15113c449b88ec624e8f352
timeCreated: 1600795542
licenseType: Store
NativeFormatImporter:
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,89 @@
Shader "Hidden/PIDI Shaders Collection/Planar Reflections 4/Blur Pass"
{
Properties
{
[Enum(Low,4,Normal,8,High,16)]_KernelSize("Blur Quality", Float) = 16
[PerRendererData]_Radius("Blur Radius", Range( 1, 32 )) = 1
[PerRendererData]_MainTex ("Texture", 2D) = "white" {}
[PerRendererData]_ReflectionDepth ("Texture", 2D) = "black" {}
}
SubShader
{
Tags { "Queue" = "Transparent" "RenderType" = "Opaque" "IgnoreProjector" = "True" "ForceNoShadowCasting" = "True" }
LOD 100
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
struct appdata
{
float4 vertex : POSITION;
float2 uv : TEXCOORD0;
};
struct v2f
{
float2 uv : TEXCOORD0;
float4 vertex : SV_POSITION;
};
int _KernelSize;
float _Radius;
sampler2D _MainTex;
float4 _MainTex_ST;
float2 _MainTex_TexelSize;
static const float TWO_PI = 6.28319;
static const float E = 2.71828;
float gaussian(int x, int y)
{
float sigmaSqu = _Radius * _Radius;
return (1 / sqrt(TWO_PI * sigmaSqu)) * pow(E, -((x * x) + (y * y)) / (2 * sigmaSqu));
}
v2f vert (appdata v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
return o;
}
fixed4 frag (v2f i) : SV_Target
{
fixed4 col = fixed4(0,0,0,1);
int upper = ((_KernelSize - 1) / 2);
int lower = -upper;
float kernelSum;
for (int x = lower; x <= upper; ++x)
{
for (int y = lower; y <= upper; ++y)
{
float gauss = gaussian(x, y);
kernelSum += gauss;
fixed2 offset = fixed2(_MainTex_TexelSize.x * x, _MainTex_TexelSize.y * y);
col += gauss * tex2D(_MainTex, i.uv + offset);
}
}
col /= kernelSum;
return col;
}
ENDCG
}
}
}

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: c2ffde48fb65ed242aa3d765d2bd704b
timeCreated: 1600790789
licenseType: Store
ShaderImporter:
defaultTextures: []
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: db8b8f7213caac341a2905e22c082979
folderAsset: yes
timeCreated: 1567532331
licenseType: Store
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,78 @@
fileFormatVersion: 2
guid: 1b27979f83089a74d8e0e37092ae6c66
timeCreated: 1567532375
licenseType: Store
TextureImporter:
fileIDToRecycleName: {}
externalObjects: {}
serializedVersion: 4
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: -1
aniso: -1
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
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
platformSettings:
- buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,78 @@
fileFormatVersion: 2
guid: 21af9a3bd6fe9a7459bd7f8913249c72
timeCreated: 1567532376
licenseType: Store
TextureImporter:
fileIDToRecycleName: {}
externalObjects: {}
serializedVersion: 4
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: -1
aniso: -1
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
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
platformSettings:
- buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,78 @@
fileFormatVersion: 2
guid: 3ce5160c86f773a4bbdc98508d41fe9d
timeCreated: 1567532376
licenseType: Store
TextureImporter:
fileIDToRecycleName: {}
externalObjects: {}
serializedVersion: 4
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: -1
aniso: -1
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
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
platformSettings:
- buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

View File

@@ -0,0 +1,78 @@
fileFormatVersion: 2
guid: 97204b14e5f25984e9a65f306002767f
timeCreated: 1567532376
licenseType: Store
TextureImporter:
fileIDToRecycleName: {}
externalObjects: {}
serializedVersion: 4
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: -1
aniso: -1
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
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
platformSettings:
- buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 KiB

View File

@@ -0,0 +1,78 @@
fileFormatVersion: 2
guid: 9dee4083c2cdae74a873d64904763b30
timeCreated: 1567532375
licenseType: Store
TextureImporter:
fileIDToRecycleName: {}
externalObjects: {}
serializedVersion: 4
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: -1
aniso: -1
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
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
platformSettings:
- buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 235 KiB

View File

@@ -0,0 +1,78 @@
fileFormatVersion: 2
guid: 6f5e0593c1b25774da9ea9dce850a026
timeCreated: 1567532375
licenseType: Store
TextureImporter:
fileIDToRecycleName: {}
externalObjects: {}
serializedVersion: 4
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: -1
aniso: -1
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: 1
textureShape: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
platformSettings:
- buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,78 @@
fileFormatVersion: 2
guid: d221b879ee42df14d8643aa3c004860a
timeCreated: 1567532376
licenseType: Store
TextureImporter:
fileIDToRecycleName: {}
externalObjects: {}
serializedVersion: 4
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: -1
aniso: -1
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
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
platformSettings:
- buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

View File

@@ -0,0 +1,78 @@
fileFormatVersion: 2
guid: d0532f1cdc6ef784386831f345dd6bd3
timeCreated: 1567532376
licenseType: Store
TextureImporter:
fileIDToRecycleName: {}
externalObjects: {}
serializedVersion: 4
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: -1
aniso: -1
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
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
platformSettings:
- buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 KiB

View File

@@ -0,0 +1,96 @@
fileFormatVersion: 2
guid: 6bdc80a30f4463948bb42d9323a571f3
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
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
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -100
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
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: d20c684c5ef31fc4c90f069f8bd3cb25
folderAsset: yes
timeCreated: 1568055240
licenseType: Store
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 621 KiB

View File

@@ -0,0 +1,78 @@
fileFormatVersion: 2
guid: cfa5a2106223add4487f9e7e69e0cc73
timeCreated: 1568227140
licenseType: Store
TextureImporter:
fileIDToRecycleName: {}
externalObjects: {}
serializedVersion: 4
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: -1
aniso: -1
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
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
platformSettings:
- buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

View File

@@ -0,0 +1,98 @@
fileFormatVersion: 2
guid: 4674bcc392530ad4999c810eb614ca3a
timeCreated: 1568835503
licenseType: Store
TextureImporter:
fileIDToRecycleName: {}
externalObjects: {}
serializedVersion: 4
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: -1
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
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
platformSettings:
- buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
- buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
- buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@@ -0,0 +1,98 @@
fileFormatVersion: 2
guid: 9f3d43c8d75062f4bb420270ea892aad
timeCreated: 1568055222
licenseType: Store
TextureImporter:
fileIDToRecycleName: {}
externalObjects: {}
serializedVersion: 4
mipmaps:
mipMapMode: 0
enableMipMap: 0
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: -1
aniso: -1
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
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
platformSettings:
- buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
- buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
- buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 279 KiB

View File

@@ -0,0 +1,98 @@
fileFormatVersion: 2
guid: 4910e02118dc64947b2b69b4b4dd3cef
timeCreated: 1567532376
licenseType: Store
TextureImporter:
fileIDToRecycleName: {}
externalObjects: {}
serializedVersion: 4
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: -1
aniso: -1
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: 1
textureShape: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
platformSettings:
- buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
- buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
- buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a9ddebe418d99084db28b8747dce9b77
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: fe8f27a65200af547a4f12b3432f2d84
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 322 B

View File

@@ -0,0 +1,98 @@
fileFormatVersion: 2
guid: 8a729e09ea66d6240b2426eb800c7270
timeCreated: 1557507531
licenseType: Store
TextureImporter:
fileIDToRecycleName: {}
externalObjects: {}
serializedVersion: 4
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: 1
wrapV: 1
wrapW: -1
nPOTScale: 0
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: 1
spriteTessellationDetail: -1
textureType: 2
textureShape: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
platformSettings:
- buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
- buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
- buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 1334fd26c35966645990a236d4e0bb80
timeCreated: 1557507316
licenseType: Store
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,60 @@

#if UNITY_EDITOR
/*
* PIDI - Planar Reflections™ 4 - Copyright© 2017-2021
* PIDI - Planar Reflections is a trademark and copyrighted property of Jorge Pinal Negrete.
* You cannot sell, redistribute, share nor make public this code, modified or not, in part nor in whole, through any
* means on any platform except with the purpose of contacting the developers to request support and only when taking
* all pertinent measures to avoid its release to the public and / or any unrelated third parties.
* Modifications are allowed only for internal use within the limits of your Unity based projects and cannot be shared,
* published, redistributed nor made available to any third parties unrelated to Irreverent Software by any means.
*
* For more information, contact us at support@irreverent-software.com
*
*/
using UnityEditor;
class PlanarAPI{
[UnityEditor.Callbacks.DidReloadScripts]
public static void ModifyDefines() {
var defines = PlayerSettings.GetScriptingDefineSymbolsForGroup( EditorUserBuildSettings.selectedBuildTargetGroup );
if ( AssetDatabase.FindAssets( "PlanarReflectionsRenderer" ).Length > 0 ) {
if ( !defines.Contains( "UPDATE_PLANAR3" ) ) {
PlayerSettings.SetScriptingDefineSymbolsForGroup( EditorUserBuildSettings.selectedBuildTargetGroup, defines + ";UPDATE_PLANAR3" );
}
}
else {
if ( defines.Contains( "UPDATE_PLANAR3" ) ) {
PlayerSettings.SetScriptingDefineSymbolsForGroup( EditorUserBuildSettings.selectedBuildTargetGroup, defines.Replace( "UPDATE_PLANAR3", "" ) );
}
if ( defines.Contains( "PLANAR3_PRO" ) ) {
PlayerSettings.SetScriptingDefineSymbolsForGroup( EditorUserBuildSettings.selectedBuildTargetGroup, defines.Replace( "PLANAR3_PRO", "" ) );
}
if ( defines.Contains( "PLANAR3_HDRP" ) ) {
PlayerSettings.SetScriptingDefineSymbolsForGroup( EditorUserBuildSettings.selectedBuildTargetGroup, defines.Replace( "PLANAR3_HDRP", "" ) );
}
if ( defines.Contains( "PLANAR3_LWRP" ) ) {
PlayerSettings.SetScriptingDefineSymbolsForGroup( EditorUserBuildSettings.selectedBuildTargetGroup, defines.Replace( "PLANAR3_LWRP", "" ) );
}
if ( defines.Contains( "PLANAR3_URP" ) ) {
PlayerSettings.SetScriptingDefineSymbolsForGroup( EditorUserBuildSettings.selectedBuildTargetGroup, defines.Replace( "PLANAR3_URP", "" ) );
}
}
}
}
#endif

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: a8bbccd6aee90b84cb8fcf5402b53438
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,317 @@
namespace PlanarReflections4 {
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
[CustomEditor( typeof( PlanarReflectionCaster ) )]
public class PlanarReflectionCaster_Editor : Editor {
public GUISkin pidiSkin2;
public Texture2D reflectionsLogo;
bool[] _folds = new bool[16];
bool supportFold;
private void OnEnable() {
if ( ((PlanarReflectionCaster)target).GetComponent<Renderer>() ) {
_folds = new bool[( (PlanarReflectionCaster)target ).GetComponent<Renderer>().sharedMaterials.Length];
}
}
public override void OnInspectorGUI() {
var rend = ( (PlanarReflectionCaster)target ).GetComponent<Renderer>();
GUI.color = EditorGUIUtility.isProSkin ? new Color( 0.1f, 0.1f, 0.15f, 1 ) : new Color( 0.5f, 0.5f, 0.6f );
GUILayout.BeginVertical( EditorStyles.helpBox );
GUI.color = Color.white;
GUILayout.Space( 8 );
AssetLogoAndVersion();
GUILayout.Space( 4 );
EditorGUILayout.PropertyField( serializedObject.FindProperty( "castFromRenderer" ), new GUIContent( "Cast From Renderer", "The Planar Reflection Renderer from which this Caster will take the reflections" ) );
GUILayout.Space( 8 );
for ( int i = 0; i < _folds.Length; i++ ) {
if ( BeginCenteredGroup( rend.sharedMaterials[i].name, ref _folds[i] ) ) {
GUILayout.Space( 8 );
Toggle( new GUIContent( "Reflection Color", "Wether this material requires a reflection color texture" ), serializedObject, "castReflection", 1, i );
Toggle( new GUIContent( "Reflection Depth", "Wether this material requires a reflection depth texture" ), serializedObject, "castDepth", 1, i );
Toggle( new GUIContent( "Reflection Fog", "Wether this material requires a reflection fog texture" ), serializedObject, "castFog", 1, i );
GUILayout.Space( 4 );
var blurProp = serializedObject.FindProperty( "blurSettings" ).GetArrayElementAtIndex( i );
Toggle( new GUIContent( "Blur Pass", "Enables a blur pass on the reflection texture that can be used internally by reflection-compatible shaders" ), blurProp.FindPropertyRelative( "useBlur" ), 1 );
if ( blurProp.FindPropertyRelative( "useBlur" ).boolValue ) {
GUILayout.Space( 8 );
CenteredLabel( "Blur Settings" );
GUILayout.Space( 8 );
Toggle( new GUIContent( "Fast Blur", "A very simple, faked blur approximation designed for low end platforms" ), blurProp.FindPropertyRelative( "forceFakeBlur" ), 1 );
PopupField( new GUIContent( "Blur Pass Mode", "The way in which the blurred reflection will be sent to the material\n\nFinal Output - Blurs the reflection itself\nSeparate Pass - Stores the blurred reflection on its own texture (_BlurReflectionTex)" ), blurProp.FindPropertyRelative( "blurPassMode" ), new string[] { "Final Result", "Separate Pass" } );
EditorGUILayout.PropertyField( blurProp.FindPropertyRelative( "blurRadius" ), new GUIContent("Blur Radius","The spread of the blur effect") );
EditorGUILayout.PropertyField( blurProp.FindPropertyRelative( "blurDownscale" ), new GUIContent("Blur Downscale","The downscaling applied to the blurred reflection. Increases the overall blurriness") );
}
GUILayout.Space( 16 );
}
EndCenteredGroup();
}
if ( BeginCenteredGroup( "Help & Support", ref supportFold ) ) {
GUILayout.Space( 16 );
CenteredLabel( "Support & Assistance" );
GUILayout.Space( 10 );
EditorGUILayout.HelpBox( "Please make sure to include the following information with your request :\n - Invoice number\n- Unity version used\n- Universal RP / HDRP version used (if any)\n- Target platform\n - Screenshots of the PlanarReflectionRenderer component and its settings\n - Steps to reproduce the issue.\n\nOur support service usually takes 2-4 business days to reply, so please be patient. We always reply to all emails and support requests as soon as possible.", MessageType.Info );
GUILayout.Space( 8 );
GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace();
GUILayout.Label( "For support, contact us at : support@irreverent-software.com" );
GUILayout.FlexibleSpace(); GUILayout.EndHorizontal();
GUILayout.Space( 24 );
if ( CenteredButton( "Online Documentation", 500 ) ) {
Help.BrowseURL( "https://irreverent-software.com/docs/pidi-planar-reflections-4/" );
}
GUILayout.Space( 16 );
}
EndCenteredGroup();
GUILayout.Space( 16 );
GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace();
var lStyle = new GUIStyle();
lStyle.fontStyle = FontStyle.Italic;
lStyle.normal.textColor = EditorGUIUtility.isProSkin ? Color.white : Color.black;
lStyle.fontSize = 8;
GUILayout.Label( "Copyright© 2017-2021, Jorge Pinal N.", lStyle );
GUILayout.FlexibleSpace(); GUILayout.EndHorizontal();
GUILayout.Space( 24 );
GUILayout.EndVertical();
serializedObject.ApplyModifiedProperties();
}
private void AssetLogoAndVersion() {
GUILayout.BeginVertical( reflectionsLogo, pidiSkin2 ? pidiSkin2.customStyles[1] : null );
GUILayout.Space( 45 );
GUILayout.BeginHorizontal();
GUILayout.FlexibleSpace();
GUILayout.Label( "v4.0.7", pidiSkin2.customStyles[2] );
GUILayout.Space( 6 );
GUILayout.EndHorizontal();
GUILayout.EndVertical();
}
void CenteredLabel( string label ) {
GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace();
var tempStyle = new GUIStyle();
tempStyle.fontStyle = FontStyle.Bold;
tempStyle.normal.textColor = EditorGUIUtility.isProSkin ? Color.white : Color.black;
GUILayout.Label( label, tempStyle );
GUILayout.FlexibleSpace(); GUILayout.EndHorizontal();
}
bool CenteredButton( string label, float width = 400 ) {
GUILayout.BeginHorizontal();
GUILayout.FlexibleSpace();
var btn = GUILayout.Button( label, GUILayout.MaxWidth( width ) );
GUILayout.FlexibleSpace();
GUILayout.EndHorizontal();
return btn;
}
private bool BeginCenteredGroup( string label, ref bool groupFoldState ) {
if ( GUILayout.Button( label, EditorGUIUtility.isProSkin ? pidiSkin2.customStyles[0] : EditorGUIUtility.GetBuiltinSkin( EditorSkin.Inspector ).button ) ) {
groupFoldState = !groupFoldState;
}
GUILayout.BeginHorizontal(); GUILayout.Space( 12 );
GUILayout.BeginVertical();
return groupFoldState;
}
private void EndCenteredGroup() {
GUILayout.EndVertical();
GUILayout.Space( 12 );
GUILayout.EndHorizontal();
}
public static void PopupField( GUIContent label, SerializedProperty inValue, string[] options ) {
GUILayout.BeginHorizontal();
var tempStyle = new GUIStyle();
EditorGUILayout.PrefixLabel( label );
if ( inValue.hasMultipleDifferentValues ) {
var result = EditorGUILayout.Popup( -1, options );
if ( result > -1 ) {
inValue.intValue = result;
}
}
else {
inValue.intValue = EditorGUILayout.Popup( inValue.intValue, options );
}
GUILayout.EndHorizontal();
}
private static void Toggle( GUIContent label, SerializedObject serializedObject, string propertyID, int toggleType = 0, int atIndex = -1 ) {
GUILayout.BeginHorizontal();
var inValue = serializedObject.FindProperty( propertyID );
if (atIndex > -1 ) {
inValue = inValue.GetArrayElementAtIndex( atIndex );
}
switch ( toggleType ) {
case 0:
EditorGUILayout.PropertyField( inValue, label );
break;
case 1:
if ( inValue.hasMultipleDifferentValues ) {
var result = EditorGUILayout.Popup( label, -1, new string[] { "Enabled", "Disabled" } );
if ( result > -1 ) {
inValue.boolValue = result == 0;
}
}
else {
inValue.boolValue = EditorGUILayout.Popup( label, inValue.boolValue ? 0 : 1, new string[] { "Enabled", "Disabled" } ) == 0;
}
break;
case 2:
if ( inValue.hasMultipleDifferentValues ) {
var result = EditorGUILayout.Popup( label, -1, new string[] { "True", "False" } );
if ( result > -1 ) {
inValue.boolValue = result == 0;
}
}
else {
inValue.boolValue = EditorGUILayout.Popup( label, inValue.boolValue ? 0 : 1, new string[] { "True", "False" } ) == 0;
}
break;
}
GUILayout.EndHorizontal();
}
private static void Toggle( GUIContent label, SerializedProperty inValue, int toggleType = 0 ) {
GUILayout.BeginHorizontal();
switch ( toggleType ) {
case 0:
EditorGUILayout.PropertyField( inValue, label );
break;
case 1:
if ( inValue.hasMultipleDifferentValues ) {
var result = EditorGUILayout.Popup( label, -1, new string[] { "Enabled", "Disabled" } );
if ( result > -1 ) {
inValue.boolValue = result == 0;
}
}
else {
inValue.boolValue = EditorGUILayout.Popup( label, inValue.boolValue ? 0 : 1, new string[] { "Enabled", "Disabled" } ) == 0;
}
break;
case 2:
if ( inValue.hasMultipleDifferentValues ) {
var result = EditorGUILayout.Popup( label, -1, new string[] { "True", "False" } );
if ( result > -1 ) {
inValue.boolValue = result == 0;
}
}
else {
inValue.boolValue = EditorGUILayout.Popup( label, inValue.boolValue ? 0 : 1, new string[] { "True", "False" } ) == 0;
}
break;
}
GUILayout.EndHorizontal();
}
}
}

View File

@@ -0,0 +1,13 @@
fileFormatVersion: 2
guid: a1736bab9076d2143b283893606cac6e
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences:
- pidiSkin2: {fileID: 11400000, guid: 1334fd26c35966645990a236d4e0bb80, type: 2}
- reflectionsLogo: {fileID: 2800000, guid: 9ba256d32c910d741afcc66ab425375f, type: 3}
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,330 @@
namespace PlanarReflections4 {
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
[CustomEditor(typeof(PlanarReflectionRenderer))]
public class PlanarReflectionRenderer_Editor : Editor {
public GUISkin pidiSkin2;
public Texture2D reflectionsLogo;
bool[] _folds = new bool[16];
public override void OnInspectorGUI() {
GUI.color = EditorGUIUtility.isProSkin ? new Color( 0.1f, 0.1f, 0.15f, 1 ) : new Color( 0.5f, 0.5f, 0.6f );
GUILayout.BeginVertical( EditorStyles.helpBox );
GUI.color = Color.white;
GUILayout.Space( 8 );
AssetLogoAndVersion();
GUILayout.Space( 4 );
if ( BeginCenteredGroup("Main Settings", ref _folds[0] ) ) {
GUILayout.Space( 8 );
CenteredLabel( "Basic Settings" );
GUILayout.Space( 8 );
EditorGUILayout.PropertyField( serializedObject.FindProperty("_settings.reflectLayers"), new GUIContent( "Reflect Layers" ) );
EditorGUILayout.PropertyField( serializedObject.FindProperty( "_settings.camerasTag" ), new GUIContent( "Camera's Tag", "Filters the in-game cameras so that a reflection is generated and displayed only for those with the given tag" ) );
Toggle( new GUIContent( "Render Shadows", "Whether this reflection will display shadows or not" ), serializedObject, "_settings.renderShadows", 2 );
GUILayout.Space( 8 );
Toggle( new GUIContent( "Preview Reflection", "Enables or disables a preview reflection plane in the Scene view to show the reflection and its properties regardless of if it has been assigned to a Caster" ), serializedObject, "showPreviewReflector", 1 );
GUILayout.Space( 4 );
Toggle( new GUIContent( "Accurate Matrix", "When enabled, the reflection will use a custom oblique projection matrix to avoid clipping and present more accurate reflections.\nIt may, however, interfere with some PostFX and projection-dependant features" ), serializedObject, "_settings.accurateMatrix", 1 );
EditorGUILayout.PropertyField( serializedObject.FindProperty( "_settings.nearClipPlane" ), new GUIContent( "Near Clip Plane" ) );
EditorGUILayout.PropertyField( serializedObject.FindProperty( "_settings.farClipPlane" ), new GUIContent( "Far Clip Plane" ) );
GUILayout.Space( 8 );
CenteredLabel( "Reflection Features" );
GUILayout.Space( 8 );
EditorGUILayout.PropertyField( serializedObject.FindProperty( "externalReflectionTex" ), new GUIContent( "External Ref. Texture (Optional)", "An optional RenderTexture asset to which the reflection will be rendered to, instead of the internally managed resources. May not work accurately with multiple in-game cameras" ), GUILayout.Height( EditorGUIUtility.singleLineHeight ) );
if ( serializedObject.FindProperty( "_settings.renderDepth" ).boolValue ) {
EditorGUILayout.PropertyField( serializedObject.FindProperty( "externalReflectionDepth" ), new GUIContent( "External Ref. Depth (Optional)", "An optional RenderTexture asset to which the reflection's depth will be rendered to, instead of the internally managed resources. May not work accurately with multiple in-game cameras. Must be in 'Depth' texture format." ), GUILayout.Height( EditorGUIUtility.singleLineHeight ) );
}
GUILayout.Space( 4 );
Toggle( new GUIContent( "PostFX Support", "Allows the reflection to render Post Process FX with its own custom settings, useful to display ambient occlusion, bloom or other effects within the reflection itself" ) , serializedObject, "_settings.usePostFX", 1 );
Toggle( new GUIContent( "Reflection Depth", "Whether this reflection will render its own depth texture or not" ), serializedObject, "_settings.renderDepth", 1 );
Toggle( new GUIContent( "Reflection Fog", "Whether this reflection will render its own fog pass or not" ), serializedObject, "_settings.renderFog", 1 );
if ( serializedObject.FindProperty( "_settings.renderFog" ).boolValue ) {
EditorGUILayout.PropertyField( serializedObject.FindProperty( "_settings.fogRendererIndex" ), new GUIContent( "Fog Renderer Index" ) );
}
Toggle( new GUIContent( "Clear to Color", "Controls the clear flags of the reflection so that instead of reflecting the skybox it reflects a solid color" ), serializedObject, "_settings.clearToColor", 2 );
if ( serializedObject.FindProperty("_settings.clearToColor").boolValue ) {
EditorGUILayout.PropertyField( serializedObject.FindProperty( "_settings.backgroundColor" ), new GUIContent( "Background Color", "The color that this reflection will use as a solid background instead of the skybox" ) );
}
else {
EditorGUILayout.PropertyField( serializedObject.FindProperty( "_settings.customSkybox" ), new GUIContent( "Custom Skybox" ) );
}
GUILayout.Space( 8 );
CenteredLabel( "Reflection Quality" );
GUILayout.Space( 8 );
Toggle( new GUIContent( "Screen Based Resolution", "The resolution of the reflection will be determined by the resolution of the screen / game's window" ), serializedObject, "_settings.screenBasedResolution", 1 );
if ( !serializedObject.FindProperty( "_settings.screenBasedResolution" ).boolValue ) {
EditorGUILayout.PropertyField( serializedObject.FindProperty( "_settings.explicitResolution" ), new GUIContent( "Base Resolution" ) );
}
EditorGUILayout.PropertyField( serializedObject.FindProperty( "_settings.outputResolutionMultiplier" ), new GUIContent( "Resolution Multiplier", "The factor by which the reflection's resolution will be multiplied" ) );
GUILayout.Space( 4 );
Toggle( new GUIContent( "HDR Reflection", "Whether the reflection texture will use an HDRP compatible format" ), serializedObject, "_settings.forceHDR", 1 );
Toggle( new GUIContent( "Mip Maps", "Whether the reflection texture will use mip maps or not" ), serializedObject, "_settings.useMipMaps", 1 );
Toggle( new GUIContent( "Anti-aliasing", "Whether the reflection texture will use anti-aliasing or not" ), serializedObject, "_settings.useAntialiasing", 1 );
GUILayout.Space( 16 );
}
EndCenteredGroup();
if ( BeginCenteredGroup("Optimization Settings", ref _folds[1] ) ) {
GUILayout.Space( 8 );
GUILayout.Space( 8 );
EditorGUILayout.PropertyField( serializedObject.FindProperty( "_settings.customLODBias" ), new GUIContent( "Custom LOD Bias","Further adjusts the LOD bias of the game in order to render lower quality models for the reflections if necessary" ) );
EditorGUILayout.PropertyField( serializedObject.FindProperty( "_settings.maxLODLevel" ), new GUIContent( "Max. LOD Level", "The maximum LOD level allowed in reflections" ) );
GUILayout.Space( 8 );
EditorGUILayout.PropertyField( serializedObject.FindProperty( "_settings.reflectionFramerate" ), new GUIContent( "Reflection's Framerate", "The maximum framerate of this reflection. Set to 0 to remove any FPS cap and render the reflection in sync with the in-game cameras" ) );
GUILayout.Space( 16 );
}
EndCenteredGroup();
if ( serializedObject.FindProperty( "_settings.usePostFX" ).boolValue ) {
if ( BeginCenteredGroup( "PostFX Settings", ref _folds[2] ) ){
GUILayout.Space( 8 );
EditorGUILayout.PropertyField( serializedObject.FindProperty( "_settings.postFXVolumeMask" ), new GUIContent( "Post FX Volume Mask", "The layer mask for the PostFX volumes with which this reflection will interact" ) );
GUILayout.Space( 16 );
}
EndCenteredGroup();
}
if (BeginCenteredGroup("Help & Support", ref _folds[3] ) ) {
GUILayout.Space( 16 );
CenteredLabel( "Support & Assistance" );
GUILayout.Space( 10 );
EditorGUILayout.HelpBox( "Please make sure to include the following information with your request :\n - Invoice number\n- Unity version used\n- Universal RP / HDRP version used (if any)\n- Target platform\n - Screenshots of the PlanarReflectionRenderer component and its settings\n - Steps to reproduce the issue.\n\nOur support service usually takes 2-4 business days to reply, so please be patient. We always reply to all emails and support requests as soon as possible.", MessageType.Info );
GUILayout.Space( 8 );
GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace();
GUILayout.Label( "For support, contact us at : support@irreverent-software.com" );
GUILayout.FlexibleSpace(); GUILayout.EndHorizontal();
GUILayout.Space( 24 );
if ( CenteredButton( "Online Documentation", 500 ) ) {
Help.BrowseURL( "https://irreverent-software.com/docs/pidi-planar-reflections-4/" );
}
GUILayout.Space( 16 );
}
EndCenteredGroup();
GUILayout.Space( 8 );
GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace();
var lStyle = new GUIStyle();
lStyle.fontStyle = FontStyle.Italic;
lStyle.normal.textColor = EditorGUIUtility.isProSkin?Color.white:Color.black;
lStyle.fontSize = 8;
GUILayout.Label( "Copyright© 2017-2021, Jorge Pinal N.", lStyle );
GUILayout.FlexibleSpace(); GUILayout.EndHorizontal();
GUILayout.Space( 24 );
GUILayout.EndVertical();
if ( serializedObject.hasModifiedProperties ) {
( (PlanarReflectionRenderer)target ).ApplySettings();
}
serializedObject.ApplyModifiedProperties();
}
private void AssetLogoAndVersion() {
GUILayout.BeginVertical( reflectionsLogo, pidiSkin2 ? pidiSkin2.customStyles[1] : null );
GUILayout.Space( 45 );
GUILayout.BeginHorizontal();
GUILayout.FlexibleSpace();
GUILayout.Label( "v4.0.7", pidiSkin2.customStyles[2] );
GUILayout.Space( 6 );
GUILayout.EndHorizontal();
GUILayout.EndVertical();
}
void CenteredLabel( string label ) {
GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace();
var tempStyle = new GUIStyle();
tempStyle.fontStyle = FontStyle.Bold;
tempStyle.normal.textColor = EditorGUIUtility.isProSkin?Color.white:Color.black;
GUILayout.Label( label, tempStyle );
GUILayout.FlexibleSpace(); GUILayout.EndHorizontal();
}
bool CenteredButton( string label, float width = 400 ) {
GUILayout.BeginHorizontal();
GUILayout.FlexibleSpace();
var btn = GUILayout.Button( label, GUILayout.MaxWidth( width ) );
GUILayout.FlexibleSpace();
GUILayout.EndHorizontal();
return btn;
}
private bool BeginCenteredGroup( string label, ref bool groupFoldState ) {
if ( GUILayout.Button( label, EditorGUIUtility.isProSkin?pidiSkin2.customStyles[0]:EditorGUIUtility.GetBuiltinSkin(EditorSkin.Inspector).button ) ) {
groupFoldState = !groupFoldState;
}
GUILayout.BeginHorizontal(); GUILayout.Space( 12 );
GUILayout.BeginVertical();
return groupFoldState;
}
private void EndCenteredGroup() {
GUILayout.EndVertical();
GUILayout.Space( 12 );
GUILayout.EndHorizontal();
}
public static void PopupField( GUIContent label, SerializedObject serializedObject, string propertyID, string[] options ) {
GUILayout.BeginHorizontal();
var tempStyle = new GUIStyle();
EditorGUILayout.PrefixLabel( label );
var inValue = serializedObject.FindProperty( propertyID );
if ( inValue.hasMultipleDifferentValues ) {
var result = EditorGUILayout.Popup( -1, options );
if ( result > -1 ) {
inValue.intValue = result;
}
}
else {
inValue.intValue = EditorGUILayout.Popup( inValue.intValue, options );
}
GUILayout.EndHorizontal();
}
private static void Toggle( GUIContent label, SerializedObject serializedObject, string propertyID, int toggleType = 0 ) {
GUILayout.BeginHorizontal();
var inValue = serializedObject.FindProperty( propertyID );
switch ( toggleType ) {
case 0:
EditorGUILayout.PropertyField( inValue, label );
break;
case 1:
if ( inValue.hasMultipleDifferentValues ) {
var result = EditorGUILayout.Popup( label, -1, new string[] { "Enabled", "Disabled" } );
if ( result > -1 ) {
inValue.boolValue = result == 0;
}
}
else {
inValue.boolValue = EditorGUILayout.Popup( label, inValue.boolValue ? 0 : 1, new string[] { "Enabled", "Disabled" } ) == 0;
}
break;
case 2:
if ( inValue.hasMultipleDifferentValues ) {
var result = EditorGUILayout.Popup( label, -1, new string[] { "True", "False" } );
if ( result > -1 ) {
inValue.boolValue = result == 0;
}
}
else {
inValue.boolValue = EditorGUILayout.Popup( label, inValue.boolValue ? 0 : 1, new string[] { "True", "False" } ) == 0;
}
break;
}
GUILayout.EndHorizontal();
}
}
}

View File

@@ -0,0 +1,13 @@
fileFormatVersion: 2
guid: 26523091a6adc25458cfe16d6daf3982
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences:
- pidiSkin2: {fileID: 11400000, guid: 1334fd26c35966645990a236d4e0bb80, type: 2}
- reflectionsLogo: {fileID: 2800000, guid: 9ba256d32c910d741afcc66ab425375f, type: 3}
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,128 @@
fileFormatVersion: 2
guid: 9ba256d32c910d741afcc66ab425375f
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 0
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
streamingMipmaps: 0
streamingMipmapsPriority: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: -1
aniso: 1
mipBias: -100
wrapU: 1
wrapV: 1
wrapW: -1
nPOTScale: 0
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: 1
spriteTessellationDetail: -1
textureType: 2
textureShape: 1
singleChannelComponent: 0
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
applyGammaDecoding: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,281 @@
namespace PlanarReflections4 {
/*
* PIDI - Planar Reflections™ 4 - Copyright© 2017-2021
* PIDI - Planar Reflections is a trademark and copyrighted property of Jorge Pinal Negrete.
* You cannot sell, redistribute, share nor make public this code, modified or not, in part nor in whole, through any
* means on any platform except with the purpose of contacting the developers to request support and only when taking
* all pertinent measures to avoid its release to the public and / or any unrelated third parties.
* Modifications are allowed only for internal use within the limits of your Unity based projects and cannot be shared,
* published, redistributed nor made available to any third parties unrelated to Irreverent Software by any means.
*
* For more information, contact us at support@irreverent-software.com
*
*/
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Rendering;
[RequireComponent( typeof( Renderer ) )]
[ExecuteAlways]
public class PlanarReflectionCaster : MonoBehaviour {
public static readonly int _reflectionTex = Shader.PropertyToID( "_ReflectionTex" );
public static readonly int _reflectionDepth = Shader.PropertyToID( "_ReflectionDepth" );
public static readonly int _reflectionFog = Shader.PropertyToID( "_ReflectionFog" );
public static readonly int _blurReflectionTex = Shader.PropertyToID( "_BlurReflectionTex" );
[System.Serializable]
public struct BlurSettings {
[System.NonSerialized] public RenderTexture blurredMap;
[System.NonSerialized] public RenderTexture blurredDepth;
public bool useBlur;
public bool forceFakeBlur;
public int blurPassMode;
[Range( 0, 1 )] public float blurRadius;
[Range( 1, 4 )] public int blurDownscale;
#if UPDATE_PLANAR3
public static implicit operator BlurSettings( PlanarReflections3.PlanarReflectionsCaster.BlurSettings source ) {
var newBlur = new BlurSettings();
newBlur.useBlur = source.useBlur;
newBlur.blurPassMode = source.blurPassMode;
newBlur.blurDownscale = source.blurDownscale;
newBlur.blurRadius = source.blurRadius;
return newBlur;
}
#endif
}
public PlanarReflectionRenderer castFromRenderer;
public Material BlurMaterial;
public bool[] castDepth = new bool[0];
public bool[] castFog = new bool[0];
public bool[] castReflection = new bool[0];
public BlurSettings[] blurSettings = new BlurSettings[0];
[SerializeField] protected Renderer rend;
protected MaterialPropertyBlock mBlock;
private void OnEnable() {
#if UNITY_EDITOR
BlurMaterial = UnityEditor.AssetDatabase.LoadAssetAtPath<Material>( UnityEditor.AssetDatabase.GUIDToAssetPath( UnityEditor.AssetDatabase.FindAssets( "PlanarReflections4_InternalBlur" )[0] ) );
#endif
rend = GetComponent<Renderer>();
if ( castDepth.Length != rend.sharedMaterials.Length )
castDepth = new bool[rend.sharedMaterials.Length];
if ( castReflection.Length != castDepth.Length )
castReflection = new bool[castDepth.Length];
if ( castFog.Length != castDepth.Length )
castFog = new bool[castDepth.Length];
if ( blurSettings.Length != castDepth.Length ) {
blurSettings = new BlurSettings[castDepth.Length];
}
for ( int i = 0; i < blurSettings.Length; i++ ) {
blurSettings[i].blurDownscale = Mathf.Clamp( blurSettings[i].blurDownscale, 1, 4 );
}
#if UPDATE_PLANAR3
if ( GetComponent<PlanarReflections3.PlanarReflectionsCaster>() ) {
var cast = GetComponent<PlanarReflections3.PlanarReflectionsCaster>();
for ( int i = 0; i < blurSettings.Length; i++ ) {
RenderTexture.ReleaseTemporary( blurSettings[i].blurredMap );
}
blurSettings = new BlurSettings[cast.blurSettings.Length];
for ( int i = 0; i < cast.blurSettings.Length; i++ ) {
blurSettings[i] = cast.blurSettings[i];
}
castReflection = cast.castReflection;
castDepth = cast.castDepth;
}
#endif
RenderPipelineManager.beginCameraRendering -= AssignReflections;
RenderPipelineManager.beginCameraRendering += AssignReflections;
RenderPipelineManager.endCameraRendering -= BlackReflection;
RenderPipelineManager.endCameraRendering += BlackReflection;
}
private void OnDisable() {
RenderPipelineManager.beginCameraRendering -= AssignReflections;
RenderPipelineManager.endCameraRendering -= BlackReflection;
for ( int i = 0; i < blurSettings.Length; i++ ) {
RenderTexture.ReleaseTemporary( blurSettings[i].blurredMap );
RenderTexture.ReleaseTemporary( blurSettings[i].blurredDepth );
}
}
void BlackReflection( ScriptableRenderContext context, Camera cam ) {
if ( mBlock == null ) {
mBlock = new MaterialPropertyBlock();
}
for ( int i = 0; i < castReflection.Length; i++ ) {
mBlock.SetTexture( _blurReflectionTex, Texture2D.blackTexture );
mBlock.SetTexture( _reflectionTex, Texture2D.blackTexture );
rend.SetPropertyBlock( mBlock, i );
}
}
void AssignReflections( ScriptableRenderContext context, Camera cam ) {
if ( mBlock == null ) {
mBlock = new MaterialPropertyBlock();
}
for ( int i = 0; i < castReflection.Length; i++ ) {
mBlock.SetTexture( _blurReflectionTex, Texture2D.blackTexture );
mBlock.SetTexture( _reflectionTex, Texture2D.blackTexture );
rend.SetPropertyBlock( mBlock, i );
}
if ( !castFromRenderer ) {
return;
}
for ( int i = 0; i < castReflection.Length; i++ ) {
rend.GetPropertyBlock( mBlock, i );
if ( castReflection[i] || castDepth[i] ) {
Texture rTex = castFromRenderer.GetReflection( cam );
if ( rTex != Texture2D.blackTexture && blurSettings[i].useBlur ) {
if ( blurSettings[i].forceFakeBlur ) {
RenderTexture.ReleaseTemporary( blurSettings[i].blurredMap );
var rd = new RenderTextureDescriptor( Mathf.Max( rTex.width / (blurSettings[i].blurDownscale * 2), 16 ), Mathf.Max( rTex.height / (blurSettings[i].blurDownscale * 2), 16 ), RenderTextureFormat.DefaultHDR, 0 );
rd.msaaSamples = 8;
blurSettings[i].blurredMap = RenderTexture.GetTemporary( rd );
var quality = BlurMaterial.GetFloat( "_KernelSize" );
BlurMaterial.SetFloat( "_KernelSize", 8 );
BlurMaterial.SetFloat( "_Radius", ( blurSettings[i].blurRadius + 0.01f ) * 16 );
Graphics.Blit( rTex, blurSettings[i].blurredMap, BlurMaterial );
BlurMaterial.SetFloat( "_KernelSize", quality );
}
else {
var rd = new RenderTextureDescriptor( Mathf.Max( rTex.width / blurSettings[i].blurDownscale, 1 ), Mathf.Max( rTex.height / blurSettings[i].blurDownscale, 1 ), RenderTextureFormat.Default, 0 );
rd.sRGB = false;
if ( !blurSettings[i].blurredMap ) {
blurSettings[i].blurredMap = RenderTexture.GetTemporary( rd );
rd.colorFormat = RenderTextureFormat.Depth;
rd.depthBufferBits = 16;
}
else if ( blurSettings[i].blurredMap.width != rTex.width / blurSettings[i].blurDownscale || blurSettings[i].blurredMap.height != rTex.height / blurSettings[i].blurDownscale ) {
RenderTexture.ReleaseTemporary( blurSettings[i].blurredMap );
RenderTexture.ReleaseTemporary( blurSettings[i].blurredDepth );
rd.depthBufferBits = 0;
rd.colorFormat = RenderTextureFormat.Default;
blurSettings[i].blurredMap = RenderTexture.GetTemporary( rd );
rd.colorFormat = RenderTextureFormat.Depth;
rd.depthBufferBits = 16;
blurSettings[i].blurredDepth = RenderTexture.GetTemporary( rd );
}
rd.colorFormat = RenderTextureFormat.Default;
BlurMaterial.SetFloat( "_Radius", ( blurSettings[i].blurRadius + 0.01f ) * 8 );
var tempRT = RenderTexture.GetTemporary( rd );
Graphics.Blit( rTex, blurSettings[i].blurredMap, BlurMaterial );
Graphics.Blit( blurSettings[i].blurredMap, tempRT, BlurMaterial );
Graphics.Blit( tempRT, blurSettings[i].blurredMap, BlurMaterial );
RenderTexture.ReleaseTemporary( tempRT );
}
if ( blurSettings[i].blurredMap ) {
if ( blurSettings[i].blurPassMode == 0 ) {
mBlock.SetTexture( _reflectionTex, blurSettings[i].blurredMap );
}
else {
mBlock.SetTexture( _blurReflectionTex, blurSettings[i].blurredMap );
mBlock.SetTexture( _reflectionTex, rTex );
}
}
}
else {
mBlock.SetTexture( _blurReflectionTex, rTex );
mBlock.SetTexture( _reflectionTex, rTex );
}
if ( castDepth[i] && castFromRenderer.Settings.renderDepth ) {
mBlock.SetTexture( _reflectionDepth, castFromRenderer.GetReflectionDepth( cam ) );
}
else {
mBlock.SetTexture( _reflectionDepth, (Texture)Texture2D.whiteTexture );
}
if ( castFog[i] && castFromRenderer.Settings.renderFog ) {
rend.sharedMaterials[i].EnableKeyword( "_USE_FOG" );
mBlock.SetTexture( _reflectionFog, castFromRenderer.GetReflectionFog( cam ) );
}
else {
rend.sharedMaterials[i].DisableKeyword( "_USE_FOG" );
mBlock.SetTexture( _reflectionFog, (Texture)Texture2D.blackTexture );
}
}
else {
mBlock.SetTexture( _blurReflectionTex, (Texture)Texture2D.blackTexture );
mBlock.SetTexture( _reflectionTex, (Texture)Texture2D.blackTexture );
}
rend.SetPropertyBlock( mBlock, i );
}
}
}
}

View File

@@ -0,0 +1,13 @@
fileFormatVersion: 2
guid: 0c7e755dc2cfc9342a9678ffe3c4e2c9
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences:
- castFromRenderer: {instanceID: 0}
- BlurMaterial: {fileID: 2100000, guid: b9505779f15113c449b88ec624e8f352, type: 2}
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,897 @@
namespace PlanarReflections4 {
/*
* PIDI - Planar Reflections™ 4 - Copyright© 2017-2021
* PIDI - Planar Reflections is a trademark and copyrighted property of Jorge Pinal Negrete.
* You cannot sell, redistribute, share nor make public this code, modified or not, in part nor in whole, through any
* means on any platform except with the purpose of contacting the developers to request support and only when taking
* all pertinent measures to avoid its release to the public and / or any unrelated third parties.
* Modifications are allowed only for internal use within the limits of your Unity based projects and cannot be shared,
* published, redistributed nor made available to any third parties unrelated to Irreverent Software by any means.
*
* For more information, contact us at support@irreverent-software.com
*
*/
using UnityEngine.Rendering;
using UnityEngine.Rendering.Universal;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
#if UNITY_POST_PROCESSING_STACK_V2
using UnityEngine.Rendering.PostProcessing;
#endif
[System.Serializable]
public class PlanarReflectionSettings {
public float nearClipPlane = 0.03f;
public float farClipPlane = 1000;
public LayerMask reflectLayers = 1;
[Range( 0, 1 )] public float customLODBias = 1.0f;
public int maxLODLevel;
public bool renderShadows = true;
public bool usePostFX = true;
public LayerMask postFXVolumeMask;
public bool accurateMatrix = true;
public string camerasTag;
public bool screenBasedResolution = true;
public Vector2 explicitResolution = new Vector2( 512, 512 );
[Range( 0.1f, 2.0f )] public float outputResolutionMultiplier = 1.0f;
[Range( 0, 60 )] public int reflectionFramerate = 0;
public bool useMipMaps = true;
public bool useAntialiasing = false;
public bool clearToColor = false;
public Color backgroundColor = Color.blue;
public bool renderDepth = false;
public bool renderFog;
public int fogRendererIndex = 1;
public bool forceHDR = true;
public bool updateOnCastOnly = true;
public bool framerateByDistance = true;
public float framerateThreshold = 20;
public Material customSkybox;
#if UPDATE_PLANAR3
#region LEGACY_API
/// <summary>
/// This is a legacy method and will be deprecated soon. Please use nearClipPlane instead.
/// <br>Controls the near clip plane value of the virtual camera that renders the reflection. When using accurate matrices it is ignored and the reflective surface's plane is used instead.</br>
/// </summary>
public float nearClipDistance { get { return nearClipPlane; } set { nearClipPlane = value; } }
public float farClipDistance { get { return farClipPlane; } set { farClipPlane = value; } }
public bool customShadowDistance { get { return renderShadows; } }
public float shadowDistance { get { return 50f; } }
public int targetFramerate { get { return reflectionFramerate; } set { reflectionFramerate = value; } }
public bool useDepth { get { return renderDepth; } set { renderDepth = value; } }
public string CamerasTag { get { return camerasTag; } set { camerasTag = value; } }
public bool trackCamerasWithTag { get { return !string.IsNullOrEmpty( camerasTag ); } }
public PlanarReflections3.ReflectionClipMode reflectionClipMode {
get { return accurateMatrix ? PlanarReflections3.ReflectionClipMode.AccurateClipping : PlanarReflections3.ReflectionClipMode.SimpleApproximation; }
set { accurateMatrix = value == PlanarReflections3.ReflectionClipMode.AccurateClipping; }
}
public PlanarReflections3.ResolutionMode resolutionMode {
get { return screenBasedResolution ? PlanarReflections3.ResolutionMode.ScreenBased : PlanarReflections3.ResolutionMode.ExplicitValue; }
set { screenBasedResolution = value == PlanarReflections3.ResolutionMode.ScreenBased; }
}
public bool useCustomClearFlags { get { return true; } }
public int clearFlags { get { return clearToColor ? 1 : 0; } set { clearToColor = value == 1; } }
public bool forceFloatOutput { get { return forceHDR; } set { forceHDR = value; } }
#endregion
#endif
#if UPDATE_PLANAR3
public static implicit operator PlanarReflectionSettings( PlanarReflections3.ReflectionSettings source ) {
var newSettings = new PlanarReflectionSettings();
newSettings.nearClipPlane = source.nearClipDistance;
newSettings.farClipPlane = source.farClipDistance;
newSettings.reflectLayers = source.reflectLayers;
newSettings.renderShadows = !source.customShadowDistance || source.shadowDistance > 0.1f;
newSettings.reflectionFramerate = source.targetFramerate;
newSettings.usePostFX = source.usePostFX;
newSettings.explicitResolution = source.explicitResolution;
newSettings.renderDepth = source.useDepth;
newSettings.useMipMaps = source.useMipMaps;
newSettings.useAntialiasing = source.useAntialiasing;
newSettings.clearToColor = source.useCustomClearFlags && source.clearFlags == 1;
newSettings.camerasTag = source.trackCamerasWithTag ? source.CamerasTag : "";
newSettings.outputResolutionMultiplier = source.resolutionDownscale;
newSettings.forceHDR = source.forceFloatOutput;
newSettings.backgroundColor = source.backgroundColor;
newSettings.accurateMatrix = source.reflectionClipMode == PlanarReflections3.ReflectionClipMode.AccurateClipping;
newSettings.screenBasedResolution = source.resolutionMode == PlanarReflections3.ResolutionMode.ScreenBased;
return newSettings;
}
#endif
}
[System.Serializable]
public class ReflectionData {
protected Camera _reflectionCam;
public Camera ReflectionCamera { get { return _reflectionCam; } }
public UniversalAdditionalCameraData UniversalData;
public RenderTexture _reflectionTex;
public RenderTexture _reflectionDepth;
public RenderTexture _reflectionFog;
public Vector2Int screenRes;
public int recursionLevel = 0;
public float timer;
public void ForceSetCamera( Camera cam ) {
_reflectionCam = cam;
UniversalData = _reflectionCam.GetUniversalAdditionalCameraData();
}
public ReflectionData( Camera cam, PlanarReflectionSettings settings ) {
_reflectionCam = cam;
_reflectionTex = RenderTexture.GetTemporary( 1, 1 );
_reflectionDepth = RenderTexture.GetTemporary( 1, 1 );
_reflectionFog = RenderTexture.GetTemporary( 1, 1 );
screenRes = new Vector2Int( Screen.width, Screen.height );
UniversalData = _reflectionCam.GetUniversalAdditionalCameraData();
RegenerateTextures( settings );
}
public void RegenerateTextures( PlanarReflectionSettings settings ) {
RenderTexture.ReleaseTemporary( _reflectionTex );
RenderTexture.ReleaseTemporary( _reflectionDepth );
RenderTexture.ReleaseTemporary( _reflectionFog );
var rd = new RenderTextureDescriptor( Mathf.RoundToInt( settings.outputResolutionMultiplier * ( settings.screenBasedResolution ? Screen.width : settings.explicitResolution.x ) ), Mathf.RoundToInt( settings.outputResolutionMultiplier * ( settings.screenBasedResolution ? Screen.height : settings.explicitResolution.y ) ) );
rd.useMipMap = settings.useMipMaps;
rd.msaaSamples = 1;
rd.colorFormat = settings.forceHDR ? RenderTextureFormat.DefaultHDR : RenderTextureFormat.Default;
rd.depthBufferBits = 16;
rd.autoGenerateMips = true;
rd.volumeDepth = 1;
rd.vrUsage = VRTextureUsage.None;
rd.dimension = UnityEngine.Rendering.TextureDimension.Tex2D;
rd.mipCount = 6;
_reflectionTex = RenderTexture.GetTemporary( rd );
_reflectionTex.filterMode = FilterMode.Bilinear;
if ( settings.renderDepth ) {
rd.colorFormat = RenderTextureFormat.Depth;
_reflectionDepth = RenderTexture.GetTemporary( rd );
_reflectionDepth.filterMode = FilterMode.Bilinear;
_reflectionDepth.name = "_REFDEPTHP4";
}
else {
RenderTexture.ReleaseTemporary( _reflectionDepth );
}
if ( settings.renderFog ) {
rd.colorFormat = RenderTextureFormat.Default;
_reflectionFog = RenderTexture.GetTemporary( rd );
_reflectionFog.filterMode = FilterMode.Bilinear;
_reflectionFog.name = "_REFFOGP4";
}
else {
RenderTexture.ReleaseTemporary( _reflectionFog );
}
screenRes = new Vector2Int( Screen.width, Screen.height );
_reflectionTex.name = "_REFTEXP4";
}
}
[HelpURL( "https://irreverent-software.com/docs/pidi-planar-reflections-4/getting-started/installation/" )]
[ExecuteAlways]
public class PlanarReflectionRenderer : MonoBehaviour {
#if UNITY_POST_PROCESSING_STACK_V2
public PostProcessResources internalPostFXResources;
#endif
#if UNITY_EDITOR
public Mesh defaultReflectorMesh;
public Material defaultReflectorMaterial;
public bool showPreviewReflector;
public string Version { get { return "4.1.0"; } }
#endif
[SerializeField] protected PlanarReflectionSettings _settings = new PlanarReflectionSettings();
public PlanarReflectionSettings Settings { get { return _settings; } }
public RenderTexture externalReflectionTex;
public RenderTexture externalReflectionDepth;
protected Dictionary<Camera, ReflectionData> _reflectionData = new Dictionary<Camera, ReflectionData>();
private List<Camera> _reflectionCameras = new List<Camera>( new Camera[1] );
private Camera[] updateCams = new Camera[0];
#if UNITY_EDITOR
protected ReflectionData _sceneReflection;
private MaterialPropertyBlock _sceneReflectorMatBlock;
#endif
public Texture GetReflection( Camera cam ) {
if ( cam.cameraType == CameraType.SceneView ) {
#if UNITY_EDITOR
if ( externalReflectionTex ) {
return _sceneReflection != null && _sceneReflection._reflectionTex != null ? (Texture)externalReflectionTex : Texture2D.blackTexture;
}
return _sceneReflection != null && _sceneReflection._reflectionTex != null ? (Texture)_sceneReflection._reflectionTex : Texture2D.blackTexture;
#else
return Texture2D.blackTexture;
#endif
}
else {
if ( externalReflectionTex ) {
return _reflectionData.ContainsKey( cam ) ? (Texture)externalReflectionTex : Texture2D.blackTexture;
}
if ( _reflectionData.ContainsKey( cam ) ) {
return _reflectionData[cam]._reflectionTex;
}
else {
return Texture2D.blackTexture;
}
}
}
public Texture GetReflectionDepth( Camera cam ) {
if ( cam.cameraType == CameraType.SceneView ) {
#if UNITY_EDITOR
return _sceneReflection != null && _sceneReflection._reflectionDepth != null ? (Texture)_sceneReflection._reflectionDepth : Texture2D.whiteTexture;
#else
return Texture2D.blackTexture;
#endif
}
else {
if ( _reflectionData.ContainsKey( cam ) ) {
return _reflectionData[cam]._reflectionDepth;
}
else {
return Texture2D.blackTexture;
}
}
}
public Texture GetReflectionFog( Camera cam ) {
if ( cam.cameraType == CameraType.SceneView ) {
#if UNITY_EDITOR
return _sceneReflection != null && _sceneReflection._reflectionFog != null ? (Texture)_sceneReflection._reflectionFog : Texture2D.blackTexture;
#else
return Texture2D.blackTexture;
#endif
}
else {
if ( _reflectionData.ContainsKey( cam ) ) {
return _reflectionData[cam]._reflectionFog;
}
else {
return Texture2D.blackTexture;
}
}
}
#if UNITY_EDITOR
[UnityEditor.MenuItem( "GameObject/Effects/Planar Reflections 4/Create Reflections Renderer", priority = -99 )]
public static void CreateReflectionsRendererObject() {
var reflector = new GameObject( "Reflection Renderer", typeof( PlanarReflectionRenderer ) );
reflector.transform.position = Vector3.zero;
reflector.transform.rotation = Quaternion.identity;
}
[UnityEditor.Callbacks.DidReloadScripts]
private static void OnScriptsReloaded() {
var cams = Resources.FindObjectsOfTypeAll<Camera>();
foreach ( Camera cam in cams ) {
if ( cam.name.Contains( "_URPReflectionCamera" ) ) {
#if !UNITY_2018_3_OR_NEWER
DestroyImmediate( cam.targetTexture );
#else
RenderTexture.ReleaseTemporary( cam.targetTexture );
#endif
cam.targetTexture = null;
DestroyImmediate( cam.gameObject );
}
}
}
#endif
public void OnEnable() {
_reflectionCameras = new List<Camera>( new Camera[1] );
#if UNITY_EDITOR
#if UNITY_2018_1_OR_NEWER
UnityEditor.EditorApplication.QueuePlayerLoopUpdate();
UnityEditor.SceneView.RepaintAll();
#endif
UnityEditor.Undo.undoRedoPerformed += ApplySettings;
if ( UnityEditor.AssetDatabase.FindAssets( "Planar4Logo_Gizmos" ).Length < 1 ) {
var sceneIcon = UnityEditor.AssetDatabase.LoadAssetAtPath<Texture2D>( UnityEditor.AssetDatabase.GUIDToAssetPath( UnityEditor.AssetDatabase.FindAssets( "l: Pidi_PlanarGizmos" )[0] ) );
if ( !UnityEditor.AssetDatabase.IsValidFolder( "Assets/Gizmos" ) )
UnityEditor.AssetDatabase.CreateFolder( "Assets", "Gizmos" );
var t = new Texture2D( sceneIcon.width, sceneIcon.height );
t.SetPixels( sceneIcon.GetPixels() );
System.IO.File.WriteAllBytes( Application.dataPath + "/Gizmos/Planar4Logo_Gizmos.png", t.EncodeToPNG() );
UnityEditor.AssetDatabase.Refresh();
var importer = (UnityEditor.TextureImporter)UnityEditor.AssetImporter.GetAtPath( "Assets/Gizmos/Planar4Logo_Gizmos.png" );
importer.isReadable = true;
importer.textureType = UnityEditor.TextureImporterType.GUI;
importer.SaveAndReimport();
UnityEditor.AssetDatabase.Refresh();
}
#endif
#if UPDATE_PLANAR3
if ( GetComponent<PlanarReflections3.PlanarReflectionsRenderer>() ) {
_settings = GetComponent<PlanarReflections3.PlanarReflectionsRenderer>().Settings;
}
#endif
//Camera.onPreCull += RenderReflection;
RenderPipelineManager.beginCameraRendering -= RenderURPReflection;
RenderPipelineManager.beginCameraRendering += RenderURPReflection;
}
public void OnDisable() {
#if UNITY_EDITOR
UnityEditor.Undo.undoRedoPerformed -= ApplySettings;
#endif
UnityEngine.Rendering.RenderPipelineManager.beginCameraRendering -= RenderURPReflection;
foreach ( KeyValuePair<Camera, ReflectionData> pair in _reflectionData ) {
RenderTexture.ReleaseTemporary( pair.Value._reflectionTex );
RenderTexture.ReleaseTemporary( pair.Value._reflectionDepth );
RenderTexture.ReleaseTemporary( pair.Value._reflectionFog );
}
var cams = _reflectionCameras.ToArray();
for ( int i = 0; i < cams.Length; i++ ) {
if ( cams[i] ) {
DestroyImmediate( cams[i].gameObject );
}
}
_reflectionCameras.Clear();
_reflectionCameras.Add( null );
_reflectionData.Clear();
#if UNITY_EDITOR
_sceneReflection = default;
#endif
}
public void ApplySettings() {
foreach ( KeyValuePair<Camera, ReflectionData> pair in _reflectionData ) {
_reflectionData[pair.Key].RegenerateTextures( _settings );
}
#if UNITY_EDITOR
if ( _sceneReflection != null )
_sceneReflection.RegenerateTextures( _settings );
#endif
}
public void RenderURPReflection( ScriptableRenderContext context, Camera cam ) {
if ( !_reflectionData.ContainsKey( cam )
#if UNITY_EDITOR
||
_sceneReflection == null ||
!_sceneReflection.ReflectionCamera
#endif
) {
#if UNITY_EDITOR
if ( cam.cameraType == CameraType.SceneView ) {
if ( _sceneReflection == null ) {
var rCam = new GameObject( "_URPSceneReflectionCamera", typeof( Camera ), typeof( Skybox ), typeof( UniversalAdditionalCameraData ) );
_reflectionCameras[0] = rCam.GetComponent<Camera>();
rCam.hideFlags = HideFlags.HideAndDontSave;
rCam.GetComponent<Camera>().enabled = false;
rCam.GetComponent<Camera>().cameraType = CameraType.Game;
#if UNITY_POST_PROCESSING_STACK_V2
rCam.AddComponent<PostProcessLayer>();
rCam.GetComponent<PostProcessLayer>().Init( internalPostFXResources );
rCam.GetComponent<PostProcessLayer>().enabled = false;
#endif
_sceneReflection = new ReflectionData( _reflectionCameras[0], _settings );
}
else {
if ( !_sceneReflection.ReflectionCamera ) {
var rCam = new GameObject( "_URPSceneReflectionCamera", typeof( Camera ), typeof( Skybox ), typeof( UniversalAdditionalCameraData ) );
_reflectionCameras[0] = rCam.GetComponent<Camera>();
#if UNITY_POST_PROCESSING_STACK_V2
rCam.AddComponent<PostProcessLayer>();
rCam.GetComponent<PostProcessLayer>().Init( internalPostFXResources );
rCam.GetComponent<PostProcessLayer>().enabled = false;
#endif
rCam.hideFlags = HideFlags.HideAndDontSave;
rCam.GetComponent<Camera>().enabled = false;
rCam.GetComponent<Camera>().cameraType = CameraType.Game;
}
_sceneReflection.ForceSetCamera( _reflectionCameras[0] );
}
//var rCam = new GameObject( "_URPReflectionCamera", typeof( Camera ), typeof( Skybox ), typeof(UniversalAdditionalCameraData) );
}
else
#endif
if ( cam.cameraType == CameraType.Game && !_reflectionData.ContainsKey( cam ) && !cam.gameObject.name.Contains( "ReflectionCamera" ) && cam.gameObject.hideFlags == HideFlags.None ) {
var rCam = new GameObject( "_URPGameReflectionCamera", typeof( Camera ), typeof( Skybox ), typeof( UniversalAdditionalCameraData ) );
_reflectionCameras.Add( rCam.GetComponent<Camera>() );
rCam.hideFlags = HideFlags.HideAndDontSave;
rCam.GetComponent<Camera>().enabled = false;
rCam.GetComponent<Camera>().cameraType = CameraType.Game;
_reflectionData.Add( cam, new ReflectionData( rCam.GetComponent<Camera>(), _settings ) );
}
#if UNITY_EDITOR
if ( cam.cameraType == CameraType.SceneView ) {
if ( _sceneReflection == null ) {
_sceneReflection = new ReflectionData( _reflectionCameras[0], _settings );
}
else {
_sceneReflection.ForceSetCamera( _reflectionCameras[0] );
}
}
else
# endif
if ( cam.cameraType == CameraType.Game && !_reflectionData.ContainsKey( cam ) && !cam.gameObject.name.Contains( "ReflectionCamera" ) && cam.gameObject.hideFlags == HideFlags.None ) {
_reflectionData.Add( cam, new ReflectionData( _reflectionCameras[0], _settings ) );
}
else if ( cam.gameObject.hideFlags != HideFlags.None ) {
return;
}
}
Plane reflectionPlane = new Plane( transform.up, transform.position );
if ( Mathf.Abs( Vector3.Dot( transform.up, cam.transform.forward ) ) < 0.01f && ( cam.orthographic || reflectionPlane.GetDistanceToPoint( cam.transform.position ) < 0.025f ) ) {
return;
}
#if UNITY_EDITOR
var isSceneCam = cam.cameraType == CameraType.SceneView;
if ( !_reflectionData.ContainsKey( cam ) && !isSceneCam ) {
return;
}
if ( isSceneCam ) {
if ( Screen.width != _sceneReflection.screenRes.x || Screen.height != _sceneReflection.screenRes.y ) {
_sceneReflection.RegenerateTextures( _settings );
}
}
else {
if ( Screen.width != _reflectionData[cam].screenRes.x || Screen.height != _reflectionData[cam].screenRes.y ) {
_reflectionData[cam].RegenerateTextures( _settings );
}
}
var currentData = isSceneCam ? _sceneReflection : _reflectionData[cam];
#else
if ( Screen.width != _reflectionData[cam].screenRes.x || Screen.height != _reflectionData[cam].screenRes.y ) {
_reflectionData[cam].RegenerateTextures( _settings );
}
var currentData = _reflectionData[cam];
#endif
var refCamera = currentData.ReflectionCamera;
refCamera.CopyFrom( cam );
refCamera.allowHDR = cam.allowHDR;
refCamera.allowMSAA = false;
refCamera.useOcclusionCulling = false;
refCamera.cullingMask = _settings.reflectLayers;
refCamera.clearFlags = _settings.clearToColor ? CameraClearFlags.SolidColor : CameraClearFlags.Skybox;
refCamera.backgroundColor = _settings.backgroundColor;
refCamera.cameraType = CameraType.Game;
refCamera.renderingPath = cam.renderingPath;
refCamera.useOcclusionCulling = false;
refCamera.targetTexture = externalReflectionTex ? externalReflectionTex : currentData._reflectionTex;
Skybox skyComp;
if ( refCamera.TryGetComponent<Skybox>( out skyComp ) ) {
skyComp.material = _settings.customSkybox;
}
#if UNITY_POST_PROCESSING_STACK_V2
var uData = refCamera.GetUniversalAdditionalCameraData();
PostProcessLayer postFX;
if ( refCamera.TryGetComponent<PostProcessLayer>( out postFX ) ) {
postFX.enabled = _settings.usePostFX;
postFX.volumeLayer = _settings.postFXVolumeMask;
}
#else
var uData = refCamera.GetUniversalAdditionalCameraData();
#endif
Vector3 worldSpaceViewDir = cam.transform.forward;
Vector3 worldSpaceViewUp = cam.transform.up;
Vector3 worldSpaceCamPos = cam.transform.position;
Vector3 planeSpaceViewDir = transform.InverseTransformDirection( worldSpaceViewDir );
Vector3 planeSpaceViewUp = transform.InverseTransformDirection( worldSpaceViewUp );
Vector3 planeSpaceCamPos = transform.InverseTransformPoint( worldSpaceCamPos );
planeSpaceViewDir.y *= -1.0f;
planeSpaceViewUp.y *= -1.0f;
planeSpaceCamPos.y *= -1.0f;
worldSpaceViewDir = transform.TransformDirection( planeSpaceViewDir );
worldSpaceViewUp = transform.TransformDirection( planeSpaceViewUp );
worldSpaceCamPos = transform.TransformPoint( planeSpaceCamPos );
refCamera.transform.position = worldSpaceCamPos;
refCamera.transform.LookAt( worldSpaceCamPos + worldSpaceViewDir, worldSpaceViewUp );
refCamera.nearClipPlane = _settings.nearClipPlane;
refCamera.farClipPlane = _settings.farClipPlane;
refCamera.rect = new Rect( 0, 0, 1, 1 );
refCamera.aspect = cam.aspect;
if ( _settings.accurateMatrix ) {
refCamera.projectionMatrix = refCamera.CalculateObliqueMatrix( CameraSpacePlane( refCamera, transform.position, transform.up ) );
}
var tempLOD = QualitySettings.lodBias;
var maxLod = QualitySettings.maximumLODLevel;
QualitySettings.lodBias *= _settings.customLODBias;
QualitySettings.maximumLODLevel = _settings.maxLODLevel;
uData.renderShadows = _settings.renderShadows;
uData.volumeLayerMask = _settings.postFXVolumeMask;
uData.antialiasing = _settings.useAntialiasing ? AntialiasingMode.FastApproximateAntialiasing : AntialiasingMode.None;
if (
#if UNITY_EDITOR
!Application.isPlaying ||
#endif
( Time.realtimeSinceStartup > currentData.timer ) ) {
if ( _settings.renderFog ) {
refCamera.targetTexture = currentData._reflectionFog;
#if UNITY_POST_PROCESSING_STACK_V2
if (postFX)
postFX.enabled = false;
#else
uData.renderPostProcessing = false;
#endif
uData.SetRenderer( _settings.fogRendererIndex );
UniversalRenderPipeline.RenderSingleCamera( context, refCamera );
uData.SetRenderer( 0 );
}
if ( _settings.renderDepth ) {
refCamera.targetTexture = currentData._reflectionDepth;
refCamera.depthTextureMode = DepthTextureMode.Depth;
#if UNITY_POST_PROCESSING_STACK_V2
if (postFX)
postFX.enabled = false;
#else
uData.renderPostProcessing = false;
#endif
uData.requiresColorOption = CameraOverrideOption.Off;
uData.renderShadows = false;
UniversalRenderPipeline.RenderSingleCamera( context, refCamera );
#if UNITY_EDITOR
if ( isSceneCam ) {
uData.renderPostProcessing = false;
}
else {
#endif
#if UNITY_POST_PROCESSING_STACK_V2
if (!postFX)
#endif
uData.renderPostProcessing = _settings.usePostFX;
#if UNITY_EDITOR
}
#endif
uData.volumeLayerMask = _settings.postFXVolumeMask;
}
refCamera.targetTexture = currentData._reflectionTex;
#if UNITY_EDITOR
if ( isSceneCam ) {
uData.renderPostProcessing = false;
}
else {
#endif
uData.renderPostProcessing = _settings.usePostFX;
#if UNITY_EDITOR
}
#endif
uData.volumeLayerMask = _settings.postFXVolumeMask;
uData.requiresDepthOption = CameraOverrideOption.Off;
uData.requiresColorOption = CameraOverrideOption.Off;
if ( _settings.usePostFX
#if UNITY_EDITOR
&& !isSceneCam
#endif
) {
refCamera.enabled = true;
}
else {
refCamera.enabled = false;
UniversalRenderPipeline.RenderSingleCamera( context, refCamera );
}
}
QualitySettings.maximumLODLevel = maxLod;
QualitySettings.lodBias = tempLOD;
if (
#if UNITY_EDITOR
Application.isPlaying &&
#endif
Time.realtimeSinceStartup > currentData.timer && _settings.reflectionFramerate > 0 ) {
currentData.timer = Time.realtimeSinceStartup + ( 1.0f / _settings.reflectionFramerate );
}
#if UNITY_EDITOR
if ( cam.cameraType == CameraType.SceneView && showPreviewReflector )
DrawReflectorMesh( cam, currentData );
#endif
}
private void LateUpdate() {
if ( _settings.usePostFX ) {
if ( updateCams.Length != _reflectionData.Keys.Count ) {
updateCams = new Camera[_reflectionData.Keys.Count];
}
_reflectionData.Keys.CopyTo( updateCams, 0 );
for ( int c = 0; c < updateCams.Length; c++ ) {
if ( updateCams[c] != null ) {
Vector3 worldSpaceViewDir = updateCams[c].transform.forward;
Vector3 worldSpaceViewUp = updateCams[c].transform.up;
Vector3 worldSpaceCamPos = updateCams[c].transform.position;
Vector3 planeSpaceViewDir = transform.InverseTransformDirection( worldSpaceViewDir );
Vector3 planeSpaceViewUp = transform.InverseTransformDirection( worldSpaceViewUp );
Vector3 planeSpaceCamPos = transform.InverseTransformPoint( worldSpaceCamPos );
planeSpaceViewDir.y *= -1.0f;
planeSpaceViewUp.y *= -1.0f;
planeSpaceCamPos.y *= -1.0f;
worldSpaceViewDir = transform.TransformDirection( planeSpaceViewDir );
worldSpaceViewUp = transform.TransformDirection( planeSpaceViewUp );
worldSpaceCamPos = transform.TransformPoint( planeSpaceCamPos );
if ( _reflectionData[updateCams[c]].ReflectionCamera ) {
_reflectionData[updateCams[c]].ReflectionCamera.transform.position = worldSpaceCamPos;
_reflectionData[updateCams[c]].ReflectionCamera.transform.LookAt( worldSpaceCamPos + worldSpaceViewDir, worldSpaceViewUp );
}
}
}
}
}
private Vector4 CameraSpacePlane( Camera forCamera, Vector3 planeCenter, Vector3 planeNormal ) {
Vector3 offsetPos = planeCenter;
Matrix4x4 mtx = forCamera.worldToCameraMatrix;
Vector3 cPos = mtx.MultiplyPoint( offsetPos );
Vector3 cNormal = mtx.MultiplyVector( planeNormal ).normalized * 1;
return new Vector4( cNormal.x, cNormal.y, cNormal.z, -Vector3.Dot( cPos, cNormal ) );
}
#if UNITY_EDITOR
private void DrawReflectorMesh( Camera sceneCam, ReflectionData data ) {
var matrix = new Matrix4x4();
matrix.SetTRS( transform.position, transform.rotation, Vector3.one * 10 );
if ( _sceneReflectorMatBlock == null ) {
_sceneReflectorMatBlock = new MaterialPropertyBlock();
}
_sceneReflectorMatBlock.SetTexture( "_ReflectionTex", data._reflectionTex ? (Texture)data._reflectionTex : (Texture)Texture2D.blackTexture );
Graphics.DrawMesh( defaultReflectorMesh, matrix, defaultReflectorMaterial, 0, sceneCam, 0, _sceneReflectorMatBlock );
}
public void OnDrawGizmos() {
Gizmos.matrix = Matrix4x4.TRS( transform.position, transform.rotation, Vector3.one );
Gizmos.DrawIcon( transform.position + transform.rotation * Vector3.up, "Planar4Logo_Gizmos.png" );
Gizmos.color = Color.clear;
Gizmos.DrawCube( Vector3.zero, new Vector3( 1, 0.01f, 1 ) * 10 );
Gizmos.color = Color.cyan;
Gizmos.DrawWireCube( Vector3.zero, new Vector3( 1, 0, 1 ) * 10 );
Gizmos.matrix = Matrix4x4.TRS( Vector3.zero, Quaternion.identity, Vector3.one );
}
public void OnDrawGizmosSelected() {
}
#endif
}
}

View File

@@ -0,0 +1,19 @@
fileFormatVersion: 2
guid: dde72cd477072284786978889ffce393
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences:
- internalPostFXResources: {fileID: 11400000, guid: 4be3c01c56742ae44be75ba170c06426,
type: 2}
- defaultReflectorMesh: {fileID: 4300002, guid: 7895f1f943551db4e9784958a7e88a58,
type: 3}
- defaultReflectorMaterial: {fileID: 2100000, guid: fbfc4efe23a9b0046a787d829353352b,
type: 2}
- externalReflectionTex: {instanceID: 0}
- externalReflectionDepth: {instanceID: 0}
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 6504fa9825c3280408e47492ea01509e
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 955435e283c014f48a9f1e914fb1a113
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,78 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-3390901880458225834
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 6b3d386ba5cd94485973aee1479b272e, type: 3}
m_Name: Fog Pass
m_EditorClassIdentifier:
m_Active: 1
settings:
passTag: Fog Pass
Event: 1000
filterSettings:
RenderQueueType: 0
LayerMask:
serializedVersion: 2
m_Bits: 4294967295
PassNames: []
overrideMaterial: {fileID: 2100000, guid: edc18ab1799dc3c4c8660c19ecccf8f1, type: 2}
overrideMaterialPassIndex: 0
overrideDepthState: 0
depthCompareFunction: 4
enableWrite: 1
stencilSettings:
overrideStencilState: 0
stencilReference: 0
stencilCompareFunction: 8
passOperation: 0
failOperation: 0
zFailOperation: 0
cameraSettings:
overrideCamera: 0
restoreCamera: 1
offset: {x: 0, y: 0, z: 0, w: 0}
cameraFieldOfView: 60
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3}
m_Name: FogPassRenderer
m_EditorClassIdentifier:
m_RendererFeatures:
- {fileID: -3390901880458225834}
m_RendererFeatureMap: 5657159bb418f1d0
postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2}
shaders:
blitPS: {fileID: 4800000, guid: c17132b1f77d20942aa75f8429c0f8bc, type: 3}
copyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3}
screenSpaceShadowPS: {fileID: 4800000, guid: 0f854b35a0cf61a429bd5dcfea30eddd,
type: 3}
samplingPS: {fileID: 4800000, guid: 04c410c9937594faa893a11dceb85f7e, type: 3}
fallbackErrorPS: {fileID: 4800000, guid: e6e9a19c3678ded42a3bc431ebef7dbd, type: 3}
m_OpaqueLayerMask:
serializedVersion: 2
m_Bits: 0
m_TransparentLayerMask:
serializedVersion: 2
m_Bits: 0
m_DefaultStencilState:
overrideStencilState: 0
stencilReference: 0
stencilCompareFunction: 8
passOperation: 0
failOperation: 0
zFailOperation: 0
m_ShadowTransparentReceive: 0

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 5ac2af85432eee34fa79ce979fd9b4d1
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 0d8670d18e5ba894da1dc5f71c504325
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 395f8074c40345b4ea2c6ed4323235d0
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,115 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-8341277315260605683
MonoBehaviour:
m_ObjectHideFlags: 11
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 1
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: 05_1
m_Shader: {fileID: -6465566751694194690, guid: 218a4b777c24d964cb8acdef5fb8b2e6, type: 3}
m_ShaderKeywords: _BLUR_REFLECTIONS_ON
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BaseMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
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: 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}
- _MetallicMap:
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}
- _PBRLikeReflections_F050121A_Texture2DBCCC4859_293498272:
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}
- unity_Lightmaps:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_LightmapsInd:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_ShadowMasks:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _AlphaClip: 0
- _BLUR_REFLECTIONS: 1
- _Blend: 0
- _BumpScale: 1
- _Cull: 2
- _Cutoff: 0.5
- _DstBlend: 0
- _EnvironmentReflections: 1
- _GlossMapScale: 0
- _Glossiness: 1
- _GlossyReflections: 0
- _Metallic: 0.39
- _OcclusionStrength: 1
- _QueueOffset: 0
- _ReceiveShadows: 1
- _ReflectionBump: 0.026
- _SmoothToReflection: 1
- _Smoothness: 0.5
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _Surface: 0
- _WorkflowMode: 1
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 0.29245278, g: 0.27610323, b: 0.25566626, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _ReflectionTint: {r: 0.6603774, g: 0.6603774, b: 0.6603774, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
- _UVTiling: {r: 2, g: 2, b: 0, a: 0}
m_BuildTextureStacks: []

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a35887026d4dd4a47947aacdc3db238f
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,115 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-8341277315260605683
MonoBehaviour:
m_ObjectHideFlags: 11
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 1
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Metallic (Alpha) 1
m_Shader: {fileID: -6465566751694194690, guid: 218a4b777c24d964cb8acdef5fb8b2e6, type: 3}
m_ShaderKeywords: _BLUR_REFLECTIONS_ON
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BaseMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
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: be8dcd3fe301d794ab25ee90ed59a54b, type: 3}
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}
- _MetallicMap:
m_Texture: {fileID: 2800000, guid: d221b879ee42df14d8643aa3c004860a, 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}
- _PBRLikeReflections_F050121A_Texture2DBCCC4859_293498272:
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}
- unity_Lightmaps:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_LightmapsInd:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_ShadowMasks:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _AlphaClip: 0
- _BLUR_REFLECTIONS: 1
- _Blend: 0
- _BumpScale: 1
- _Cull: 2
- _Cutoff: 0.5
- _DstBlend: 0
- _EnvironmentReflections: 1
- _GlossMapScale: 0
- _Glossiness: 0.12
- _GlossyReflections: 0
- _Metallic: 0.107
- _OcclusionStrength: 1
- _QueueOffset: 0
- _ReceiveShadows: 1
- _ReflectionBump: 0.026
- _SmoothToReflection: 1
- _Smoothness: 0.5
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _Surface: 0
- _WorkflowMode: 1
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 0.6981132, g: 0.5705907, b: 0.43796724, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _ReflectionTint: {r: 0.6320754, g: 0.6320754, b: 0.6320754, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
- _UVTiling: {r: 2, g: 2, b: 0, a: 0}
m_BuildTextureStacks: []

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 5f619788981f933478acfd3586163983
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,115 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-8341277315260605683
MonoBehaviour:
m_ObjectHideFlags: 11
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 1
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: zt04_deng03
m_Shader: {fileID: -6465566751694194690, guid: 218a4b777c24d964cb8acdef5fb8b2e6, type: 3}
m_ShaderKeywords: _BLUR_REFLECTIONS_ON
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BaseMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
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: 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}
- _MetallicMap:
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}
- _PBRLikeReflections_F050121A_Texture2DBCCC4859_293498272:
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}
- unity_Lightmaps:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_LightmapsInd:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_ShadowMasks:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _AlphaClip: 0
- _BLUR_REFLECTIONS: 1
- _Blend: 0
- _BumpScale: 1
- _Cull: 2
- _Cutoff: 0.5
- _DstBlend: 0
- _EnvironmentReflections: 1
- _GlossMapScale: 0
- _Glossiness: 1
- _GlossyReflections: 0
- _Metallic: 0.39
- _OcclusionStrength: 1
- _QueueOffset: 0
- _ReceiveShadows: 1
- _ReflectionBump: 0.026
- _SmoothToReflection: 1
- _Smoothness: 0.5
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _Surface: 0
- _WorkflowMode: 1
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 0.2924528, g: 0.27610326, b: 0.2556663, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _ReflectionTint: {r: 1, g: 1, b: 1, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
- _UVTiling: {r: 2, g: 2, b: 0, a: 0}
m_BuildTextureStacks: []

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 56120534f49c5a1479171c78737dbb3f
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: ce4d89ec66acfea46bdde037e5a13b4c
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 8eacc4a6336aacc40887d864b1a2e5e0
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 60072b568d64c40a485e0fc55012dc9f, type: 3}

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: a71bd3b2478457941b98aad7197cb70b
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 60072b568d64c40a485e0fc55012dc9f, type: 3}

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 49797e4406351924ca8e7b2088e0e34f
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 04a9f39249719fb4b9df72e054ae53ca
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3}

View File

@@ -0,0 +1,116 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Debug Depth
m_Shader: {fileID: -6465566751694194690, guid: a3d5b0efec42ea943be72fbc2ba197fe, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses:
- MOTIONVECTORS
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BaseMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
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: 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}
- _ReflectionTex:
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}
- unity_Lightmaps:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_LightmapsInd:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_ShadowMasks:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _AlphaClip: 0
- _Blend: 0
- _BumpScale: 1
- _Cull: 2
- _Cutoff: 0.5
- _DepthPower: 0.564
- _DstBlend: 0
- _EnvironmentReflections: 1
- _GlossMapScale: 0
- _Glossiness: 0
- _GlossyReflections: 0
- _Metallic: 0
- _OcclusionStrength: 1
- _QueueControl: 0
- _QueueOffset: 0
- _ReceiveShadows: 1
- _Smoothness: 0.5
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _Surface: 0
- _WorkflowMode: 1
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _ReflectionTint: {r: 1, g: 1, b: 1, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1
--- !u!114 &4277353908764529035
MonoBehaviour:
m_ObjectHideFlags: 11
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 9

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 090c79d01d176ed45b5003e0e9cd36eb
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: a3d5b0efec42ea943be72fbc2ba197fe
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3}

View File

@@ -0,0 +1,115 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Simple Tinted
m_Shader: {fileID: -6465566751694194690, guid: bd4bc9822254d704cbf48f35aebc9928, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses:
- MOTIONVECTORS
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BaseMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
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: 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}
- _ReflectionTex:
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}
- unity_Lightmaps:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_LightmapsInd:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_ShadowMasks:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _AlphaClip: 0
- _Blend: 0
- _BumpScale: 1
- _Cull: 2
- _Cutoff: 0.5
- _DstBlend: 0
- _EnvironmentReflections: 1
- _GlossMapScale: 0
- _Glossiness: 0
- _GlossyReflections: 0
- _Metallic: 0
- _OcclusionStrength: 1
- _QueueControl: 0
- _QueueOffset: 0
- _ReceiveShadows: 1
- _Smoothness: 0.5
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _Surface: 0
- _WorkflowMode: 1
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _ReflectionTint: {r: 1, g: 1, b: 1, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1
--- !u!114 &4277353908764529035
MonoBehaviour:
m_ObjectHideFlags: 11
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 9

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 05d5a3161d7a66549978326d21661471
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: bd4bc9822254d704cbf48f35aebc9928
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3}

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 2cfcb09805835c141a3cfdc0a0e13fd0
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,84 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-7794566347460897111
MonoBehaviour:
m_ObjectHideFlags: 11
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 9
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Shader Graphs_Water (Advanced)
m_Shader: {fileID: -6465566751694194690, guid: df7154b5fd570834ba7977e15023cab9, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: 3000
stringTagMap: {}
disabledShaderPasses:
- MOTIONVECTORS
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _FoamTexture:
m_Texture: {fileID: 2800000, guid: cfa5a2106223add4487f9e7e69e0cc73, 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}
- _WaterGradient:
m_Texture: {fileID: 2800000, guid: 9f3d43c8d75062f4bb420270ea892aad, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _WavesMap:
m_Texture: {fileID: 2800000, guid: 4910e02118dc64947b2b69b4b4dd3cef, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_Lightmaps:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_LightmapsInd:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_ShadowMasks:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- Vector1_DA47F82B: -0.03
- Vector1_EF8DA9C1: 0
- _FoamWidth: 0.046
- _QueueControl: 1
- _QueueOffset: 0
- _Smoothness: 0.64
- _WaterBottom: 10.8
- _WaterClarity: -0
m_Colors:
- _FoamColor: {r: 0.6698113, g: 0.6698113, b: 0.6698113, a: 0.28235295}
- _FoamData: {r: 0.3, g: 0.3, b: 0.05, a: 0.15}
- _WaveData0: {r: -0.2, g: -0.1, b: 0.15, a: -0.15}
- _WaveData1: {r: 0.33, g: 0.33, b: -0.05, a: 0}
m_BuildTextureStacks: []
m_AllowLocking: 1

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 44b41d44292d1cb40bb26fdfe69a0baa
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,85 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Shader Graphs_Water (No Refraction)
m_Shader: {fileID: -6465566751694194690, guid: 967c325d92eb9ee43b17094d71d1a4dc, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses:
- MOTIONVECTORS
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _FoamTexture:
m_Texture: {fileID: 2800000, guid: cfa5a2106223add4487f9e7e69e0cc73, 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}
- _WaterGradient:
m_Texture: {fileID: 2800000, guid: 5b55c69206e460349b7a0b97d6e07d6e, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _WavesMap:
m_Texture: {fileID: 2800000, guid: 4910e02118dc64947b2b69b4b4dd3cef, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_Lightmaps:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_LightmapsInd:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_ShadowMasks:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- Vector1_DA47F82B: -0.03
- Vector1_EF8DA9C1: 0
- _FoamWidth: 0.195
- _QueueControl: 0
- _QueueOffset: 0
- _Smoothness: 0.916
- _WaterBottom: 9.4
- _WaterClarity: -2.84
m_Colors:
- _FoamColor: {r: 0.6981132, g: 0.6981132, b: 0.6981132, a: 0}
- _FoamData: {r: 1, g: 1, b: 0.05, a: 0.15}
- _WaterColor: {r: 0.23767357, g: 0.45586398, b: 0.46226418, a: 0}
- _WaveData0: {r: 0.66, g: 0.66, b: 0.15, a: -0.15}
- _WaveData1: {r: 0.33, g: 0.33, b: -0.05, a: 0}
m_BuildTextureStacks: []
m_AllowLocking: 1
--- !u!114 &2185651902784238174
MonoBehaviour:
m_ObjectHideFlags: 11
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 9

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 26ab81578c6518349a6f7f16fe3451e6
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,85 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Shader Graphs_Water (Simple)
m_Shader: {fileID: -6465566751694194690, guid: 0d72c7ee57a3f2d46b6dcc1f98b03116, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses:
- MOTIONVECTORS
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _FoamTexture:
m_Texture: {fileID: 2800000, guid: 59c44ebf4813c8646a8823a20b53631f, 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}
- _WaterGradient:
m_Texture: {fileID: 2800000, guid: 5b55c69206e460349b7a0b97d6e07d6e, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _WavesMap:
m_Texture: {fileID: 2800000, guid: 4910e02118dc64947b2b69b4b4dd3cef, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_Lightmaps:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_LightmapsInd:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_ShadowMasks:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- Vector1_DA47F82B: -0.03
- Vector1_EF8DA9C1: 0
- _FoamWidth: 0.195
- _QueueControl: 0
- _QueueOffset: 0
- _Smoothness: 0.916
- _WaterBottom: 3.74
- _WaterClarity: -1.4
m_Colors:
- _FoamColor: {r: 0.6981132, g: 0.6981132, b: 0.6981132, a: 0}
- _FoamData: {r: 1, g: 1, b: 0.05, a: 0.15}
- _WaterColor: {r: 0.18218228, g: 0.4077506, b: 0.4339623, a: 0}
- _WaveData0: {r: 0.66, g: 0.66, b: 0.15, a: -0.15}
- _WaveData1: {r: 0.33, g: 0.33, b: -0.05, a: 0}
m_BuildTextureStacks: []
m_AllowLocking: 1
--- !u!114 &2047254195071031035
MonoBehaviour:
m_ObjectHideFlags: 11
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 9

Some files were not shown because too many files have changed in this diff Show More