UI调整
This commit is contained in:
@@ -909,13 +909,13 @@ Material:
|
||||
- _EmissionBlink: {r: 0, g: 0, b: 3.141593, a: 0}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _EmissionMap_ScrollRotate: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _FaceForward: {r: -0.0665922, g: -0.42889756, b: 0.9008953, a: 0}
|
||||
- _FaceUp: {r: 0.061814837, g: 0.8993918, b: 0.43275094, a: 0}
|
||||
- _FaceForward: {r: 0.03887351, g: -0.33023596, b: 0.9430976, a: 0}
|
||||
- _FaceUp: {r: -0.02244219, g: 0.9432844, b: 0.3312264, a: 0}
|
||||
- _GlitterAtras: {r: 1, g: 1, b: 0, a: 0}
|
||||
- _GlitterColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _GlitterParams1: {r: 256, g: 256, b: 0.16, a: 50}
|
||||
- _GlitterParams2: {r: 0.25, g: 0, b: 0, a: 0}
|
||||
- _HeadWorldPos: {r: -0.0049033333, g: 1.6045952, b: 0.033351183, a: 0}
|
||||
- _HeadWorldPos: {r: 0.005572671, g: 1.5960494, b: 0.025174975, a: 0}
|
||||
- _LightDirectionOverride: {r: 0.001, g: 0.002, b: 0.001, a: 0}
|
||||
- _Main2ndDissolveColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _Main2ndDissolveNoiseMask_ScrollRotate: {r: 0, g: 0, b: 0, a: 0}
|
||||
|
||||
@@ -938,13 +938,13 @@ Material:
|
||||
- _EmissionBlink: {r: 0, g: 0, b: 3.141593, a: 0}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _EmissionMap_ScrollRotate: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _FaceForward: {r: -0.0665922, g: -0.42889756, b: 0.9008953, a: 0}
|
||||
- _FaceUp: {r: 0.061814837, g: 0.8993918, b: 0.43275094, a: 0}
|
||||
- _FaceForward: {r: 0.03887351, g: -0.33023596, b: 0.9430976, a: 0}
|
||||
- _FaceUp: {r: -0.02244219, g: 0.9432844, b: 0.3312264, a: 0}
|
||||
- _GlitterAtras: {r: 1, g: 1, b: 0, a: 0}
|
||||
- _GlitterColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _GlitterParams1: {r: 256, g: 256, b: 0.16, a: 50}
|
||||
- _GlitterParams2: {r: 0.25, g: 0, b: 0, a: 0}
|
||||
- _HeadWorldPos: {r: -0.0049033333, g: 1.6045952, b: 0.033351183, a: 0}
|
||||
- _HeadWorldPos: {r: 0.005572671, g: 1.5960494, b: 0.025174975, a: 0}
|
||||
- _LightDirectionOverride: {r: 0.001, g: 0.002, b: 0.001, a: 0}
|
||||
- _Main2ndDissolveColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _Main2ndDissolveNoiseMask_ScrollRotate: {r: 0, g: 0, b: 0, a: 0}
|
||||
|
||||
@@ -909,13 +909,13 @@ Material:
|
||||
- _EmissionBlink: {r: 0, g: 0, b: 3.141593, a: 0}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _EmissionMap_ScrollRotate: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _FaceForward: {r: -0.0665922, g: -0.42889756, b: 0.9008953, a: 0}
|
||||
- _FaceUp: {r: 0.061814837, g: 0.8993918, b: 0.43275094, a: 0}
|
||||
- _FaceForward: {r: 0.03887351, g: -0.33023596, b: 0.9430976, a: 0}
|
||||
- _FaceUp: {r: -0.02244219, g: 0.9432844, b: 0.3312264, a: 0}
|
||||
- _GlitterAtras: {r: 1, g: 1, b: 0, a: 0}
|
||||
- _GlitterColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _GlitterParams1: {r: 256, g: 256, b: 0.16, a: 50}
|
||||
- _GlitterParams2: {r: 0.25, g: 0, b: 0, a: 0}
|
||||
- _HeadWorldPos: {r: -0.0049033333, g: 1.6045952, b: 0.033351183, a: 0}
|
||||
- _HeadWorldPos: {r: 0.005572671, g: 1.5960494, b: 0.025174975, a: 0}
|
||||
- _LightDirectionOverride: {r: 0.001, g: 0.002, b: 0.001, a: 0}
|
||||
- _Main2ndDissolveColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _Main2ndDissolveNoiseMask_ScrollRotate: {r: 0, g: 0, b: 0, a: 0}
|
||||
|
||||
@@ -909,13 +909,13 @@ Material:
|
||||
- _EmissionBlink: {r: 0, g: 0, b: 3.141593, a: 0}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _EmissionMap_ScrollRotate: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _FaceForward: {r: -0.0665922, g: -0.42889756, b: 0.9008953, a: 0}
|
||||
- _FaceUp: {r: 0.061814837, g: 0.8993918, b: 0.43275094, a: 0}
|
||||
- _FaceForward: {r: 0.03887351, g: -0.33023596, b: 0.9430976, a: 0}
|
||||
- _FaceUp: {r: -0.02244219, g: 0.9432844, b: 0.3312264, a: 0}
|
||||
- _GlitterAtras: {r: 1, g: 1, b: 0, a: 0}
|
||||
- _GlitterColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _GlitterParams1: {r: 256, g: 256, b: 0.16, a: 50}
|
||||
- _GlitterParams2: {r: 0.25, g: 0, b: 0, a: 0}
|
||||
- _HeadWorldPos: {r: -0.0049033333, g: 1.6045952, b: 0.033351183, a: 0}
|
||||
- _HeadWorldPos: {r: 0.005572671, g: 1.5960494, b: 0.025174975, a: 0}
|
||||
- _LightDirectionOverride: {r: 0.001, g: 0.002, b: 0.001, a: 0}
|
||||
- _Main2ndDissolveColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _Main2ndDissolveNoiseMask_ScrollRotate: {r: 0, g: 0, b: 0, a: 0}
|
||||
|
||||
@@ -937,13 +937,13 @@ Material:
|
||||
- _EmissionBlink: {r: 0, g: 0, b: 3.141593, a: 0}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _EmissionMap_ScrollRotate: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _FaceForward: {r: -0.0665922, g: -0.42889756, b: 0.9008953, a: 0}
|
||||
- _FaceUp: {r: 0.061814837, g: 0.8993918, b: 0.43275094, a: 0}
|
||||
- _FaceForward: {r: 0.03887351, g: -0.33023596, b: 0.9430976, a: 0}
|
||||
- _FaceUp: {r: -0.02244219, g: 0.9432844, b: 0.3312264, a: 0}
|
||||
- _GlitterAtras: {r: 1, g: 1, b: 0, a: 0}
|
||||
- _GlitterColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _GlitterParams1: {r: 256, g: 256, b: 0.16, a: 50}
|
||||
- _GlitterParams2: {r: 0.25, g: 0, b: 0, a: 0}
|
||||
- _HeadWorldPos: {r: -0.0049033333, g: 1.6045952, b: 0.033351183, a: 0}
|
||||
- _HeadWorldPos: {r: 0.005572671, g: 1.5960494, b: 0.025174975, a: 0}
|
||||
- _LightDirectionOverride: {r: 0.001, g: 0.002, b: 0.001, a: 0}
|
||||
- _Main2ndDissolveColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _Main2ndDissolveNoiseMask_ScrollRotate: {r: 0, g: 0, b: 0, a: 0}
|
||||
|
||||
@@ -908,13 +908,13 @@ Material:
|
||||
- _EmissionBlink: {r: 0, g: 0, b: 3.141593, a: 0}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _EmissionMap_ScrollRotate: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _FaceForward: {r: -0.0665922, g: -0.42889756, b: 0.9008953, a: 0}
|
||||
- _FaceUp: {r: 0.061814837, g: 0.8993918, b: 0.43275094, a: 0}
|
||||
- _FaceForward: {r: 0.03887351, g: -0.33023596, b: 0.9430976, a: 0}
|
||||
- _FaceUp: {r: -0.02244219, g: 0.9432844, b: 0.3312264, a: 0}
|
||||
- _GlitterAtras: {r: 1, g: 1, b: 0, a: 0}
|
||||
- _GlitterColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _GlitterParams1: {r: 256, g: 256, b: 0.16, a: 50}
|
||||
- _GlitterParams2: {r: 0.25, g: 0, b: 0, a: 0}
|
||||
- _HeadWorldPos: {r: -0.0049033333, g: 1.6045952, b: 0.033351183, a: 0}
|
||||
- _HeadWorldPos: {r: 0.005572671, g: 1.5960494, b: 0.025174975, a: 0}
|
||||
- _LightDirectionOverride: {r: 0.001, g: 0.002, b: 0.001, a: 0}
|
||||
- _Main2ndDissolveColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _Main2ndDissolveNoiseMask_ScrollRotate: {r: 0, g: 0, b: 0, a: 0}
|
||||
|
||||
@@ -954,13 +954,13 @@ Material:
|
||||
- _EmissionBlink: {r: 0, g: 0, b: 3.141593, a: 0}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _EmissionMap_ScrollRotate: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _FaceForward: {r: -0.0665922, g: -0.42889756, b: 0.9008953, a: 0}
|
||||
- _FaceUp: {r: 0.061814837, g: 0.8993918, b: 0.43275094, a: 0}
|
||||
- _FaceForward: {r: 0.03887351, g: -0.33023596, b: 0.9430976, a: 0}
|
||||
- _FaceUp: {r: -0.02244219, g: 0.9432844, b: 0.3312264, a: 0}
|
||||
- _GlitterAtras: {r: 1, g: 1, b: 0, a: 0}
|
||||
- _GlitterColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _GlitterParams1: {r: 256, g: 256, b: 0.16, a: 50}
|
||||
- _GlitterParams2: {r: 0.25, g: 0, b: 0, a: 0}
|
||||
- _HeadWorldPos: {r: -0.0049033333, g: 1.6045952, b: 0.033351183, a: 0}
|
||||
- _HeadWorldPos: {r: 0.005572671, g: 1.5960494, b: 0.025174975, a: 0}
|
||||
- _HiLightColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _LightDirectionOverride: {r: 0.001, g: 0.002, b: 0.001, a: 0}
|
||||
- _Main2ndDissolveColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
|
||||
@@ -909,13 +909,13 @@ Material:
|
||||
- _EmissionBlink: {r: 0, g: 0, b: 3.141593, a: 0}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _EmissionMap_ScrollRotate: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _FaceForward: {r: -0.0665922, g: -0.42889756, b: 0.9008953, a: 0}
|
||||
- _FaceUp: {r: 0.061814837, g: 0.8993918, b: 0.43275094, a: 0}
|
||||
- _FaceForward: {r: 0.03887351, g: -0.33023596, b: 0.9430976, a: 0}
|
||||
- _FaceUp: {r: -0.02244219, g: 0.9432844, b: 0.3312264, a: 0}
|
||||
- _GlitterAtras: {r: 1, g: 1, b: 0, a: 0}
|
||||
- _GlitterColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _GlitterParams1: {r: 256, g: 256, b: 0.16, a: 50}
|
||||
- _GlitterParams2: {r: 0.25, g: 0, b: 0, a: 0}
|
||||
- _HeadWorldPos: {r: -0.0049033333, g: 1.6045952, b: 0.033351183, a: 0}
|
||||
- _HeadWorldPos: {r: 0.005572671, g: 1.5960494, b: 0.025174975, a: 0}
|
||||
- _LightDirectionOverride: {r: 0.001, g: 0.002, b: 0.001, a: 0}
|
||||
- _Main2ndDissolveColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _Main2ndDissolveNoiseMask_ScrollRotate: {r: 0, g: 0, b: 0, a: 0}
|
||||
|
||||
@@ -19,11 +19,13 @@ Material:
|
||||
m_LightmapFlags: 0
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 1
|
||||
m_CustomRenderQueue: -1
|
||||
m_CustomRenderQueue: 3000
|
||||
stringTagMap:
|
||||
RenderType: Opaque
|
||||
RenderType: Transparent
|
||||
disabledShaderPasses:
|
||||
- GRABPASS
|
||||
- DepthOnly
|
||||
- SHADOWCASTER
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
@@ -94,8 +96,8 @@ Material:
|
||||
- _DistortionEnabled: 0
|
||||
- _DistortionStrength: 1
|
||||
- _DistortionStrengthScaled: 0
|
||||
- _DstBlend: 0
|
||||
- _DstBlendAlpha: 0
|
||||
- _DstBlend: 1
|
||||
- _DstBlendAlpha: 1
|
||||
- _EmissionEnabled: 0
|
||||
- _FlipbookBlending: 0
|
||||
- _FlipbookMode: 0
|
||||
@@ -115,11 +117,11 @@ Material:
|
||||
- _SoftParticlesFarFadeDistance: 1
|
||||
- _SoftParticlesNearFadeDistance: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _SrcBlend: 5
|
||||
- _SrcBlendAlpha: 1
|
||||
- _Surface: 1
|
||||
- _UVSec: 0
|
||||
- _ZWrite: 1
|
||||
- _ZWrite: 0
|
||||
- __dirty: 0
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
|
||||
682
Assets/Fonts/SDF/ZQK/ZQK Font SDF Glow.mat
Normal file
682
Assets/Fonts/SDF/ZQK/ZQK Font SDF Glow.mat
Normal file
@@ -0,0 +1,682 @@
|
||||
%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: ZQK Font SDF Glow
|
||||
m_Shader: {fileID: 4800000, guid: bb134d7d4389e3a45a6c49e898a344a4, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords:
|
||||
- _ISTEXTMESHPRO_ON
|
||||
- _ISTEXT_ON
|
||||
- _SHADERFADING_NONE
|
||||
- _SHADERSPACE_UV
|
||||
- _TEXTURELAYER1SHEETTOGGLE_ON
|
||||
- _TEXTURELAYER2SHEETTOGGLE_ON
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _AddColorMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _AddHueMask:
|
||||
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}
|
||||
- _Cube:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _CustomFadeFadeMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _FaceTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _FadingMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _InnerOutlineTintTexture:
|
||||
m_Texture: {fileID: 2800000, guid: 5af9a397a8643994c829e696a24a7845, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: -478184148220021899, guid: 21262bfde877c70478b3fcaf0d725c46, type: 2}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetalMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OuterOutlineTintTexture:
|
||||
m_Texture: {fileID: 2800000, guid: 5af9a397a8643994c829e696a24a7845, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OutlineTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _PixelOutlineTintTexture:
|
||||
m_Texture: {fileID: 2800000, guid: 5af9a397a8643994c829e696a24a7845, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _RecolorRGBTexture:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _RecolorRGBYCPTexture:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ShineMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SineGlowMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _StrongTintMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _TextureLayer1Texture:
|
||||
m_Texture: {fileID: 2800000, guid: 9685c3a024e22a946a7e8c2ce3542300, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _TextureLayer2Texture:
|
||||
m_Texture: {fileID: 2800000, guid: 9685c3a024e22a946a7e8c2ce3542300, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _UVDistortMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _UberNoiseTexture:
|
||||
m_Texture: {fileID: 2800000, guid: b8d18cd117976254d94a812a0bfc336e, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _texcoord:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _AddColorContrast: 0.5
|
||||
- _AddColorContrastToggle: 0
|
||||
- _AddColorFade: 1
|
||||
- _AddColorMaskToggle: 0
|
||||
- _AddHueBrightness: 2
|
||||
- _AddHueContrast: 0.5
|
||||
- _AddHueFade: 1
|
||||
- _AddHueMaskToggle: 0
|
||||
- _AddHueSaturation: 1
|
||||
- _AddHueSpeed: 1
|
||||
- _AlphaTintFade: 1
|
||||
- _AlphaTintMinAlpha: 0.02
|
||||
- _Ambient: 0.5
|
||||
- _BakedMaterial: 0
|
||||
- _Bevel: 0.5
|
||||
- _BevelClamp: 0
|
||||
- _BevelOffset: 0
|
||||
- _BevelRoundness: 0
|
||||
- _BevelWidth: 0
|
||||
- _BlackTintFade: 1
|
||||
- _BlackTintPower: 4
|
||||
- _Brightness: 1
|
||||
- _BumpFace: 0
|
||||
- _BumpOutline: 0
|
||||
- _BurnEdgeNoiseFactor: 0.5
|
||||
- _BurnFade: 1
|
||||
- _BurnInsideContrast: 2
|
||||
- _BurnInsideNoiseFactor: 0.2
|
||||
- _BurnRadius: 5
|
||||
- _BurnSwirlFactor: 1
|
||||
- _BurnWidth: 0.1
|
||||
- _CamouflageAnimationToggle: 0
|
||||
- _CamouflageContrast: 1
|
||||
- _CamouflageDensityA: 0.4
|
||||
- _CamouflageDensityB: 0.4
|
||||
- _CamouflageFade: 1
|
||||
- _CamouflageSmoothnessA: 0.2
|
||||
- _CamouflageSmoothnessB: 0.2
|
||||
- _CheckerboardDarken: 0.5
|
||||
- _CheckerboardTiling: 1
|
||||
- _ColorMask: 15
|
||||
- _ColorReplaceContrast: 1
|
||||
- _ColorReplaceFade: 1
|
||||
- _ColorReplaceRange: 0.05
|
||||
- _ColorReplaceSmoothness: 0.1
|
||||
- _Contrast: 1
|
||||
- _CullMode: 0
|
||||
- _CustomFadeAlpha: 1
|
||||
- _CustomFadeNoiseFactor: 0
|
||||
- _CustomFadeSmoothness: 2
|
||||
- _Diffuse: 0.5
|
||||
- _DirectionalAlphaFadeFade: 0
|
||||
- _DirectionalAlphaFadeInvert: 0
|
||||
- _DirectionalAlphaFadeNoiseFactor: 0.2
|
||||
- _DirectionalAlphaFadeRotation: 0
|
||||
- _DirectionalAlphaFadeWidth: 0.2
|
||||
- _DirectionalDistortionFade: 0
|
||||
- _DirectionalDistortionInvert: 0
|
||||
- _DirectionalDistortionNoiseFactor: 0.2
|
||||
- _DirectionalDistortionRandomDirection: 0.1
|
||||
- _DirectionalDistortionRotation: 0
|
||||
- _DirectionalDistortionWidth: 0.5
|
||||
- _DirectionalGlowFadeFade: 0
|
||||
- _DirectionalGlowFadeInvert: 0
|
||||
- _DirectionalGlowFadeNoiseFactor: 0.2
|
||||
- _DirectionalGlowFadeRotation: 0
|
||||
- _DirectionalGlowFadeWidth: 0.1
|
||||
- _EnableAddColor: 0
|
||||
- _EnableAddHue: 0
|
||||
- _EnableAlphaTint: 0
|
||||
- _EnableBlackTint: 0
|
||||
- _EnableBrightness: 0
|
||||
- _EnableBurn: 0
|
||||
- _EnableCamouflage: 0
|
||||
- _EnableCheckerboard: 0
|
||||
- _EnableColorReplace: 0
|
||||
- _EnableContrast: 0
|
||||
- _EnableCustomFade: 0
|
||||
- _EnableDirectionalAlphaFade: 0
|
||||
- _EnableDirectionalDistortion: 0
|
||||
- _EnableDirectionalGlowFade: 0
|
||||
- _EnableEnchanted: 0
|
||||
- _EnableFlame: 0
|
||||
- _EnableFrozen: 0
|
||||
- _EnableFullAlphaDissolve: 0
|
||||
- _EnableFullDistortion: 0
|
||||
- _EnableFullGlowDissolve: 0
|
||||
- _EnableGaussianBlur: 0
|
||||
- _EnableGlitch: 0
|
||||
- _EnableHalftone: 0
|
||||
- _EnableHologram: 0
|
||||
- _EnableHue: 0
|
||||
- _EnableInkSpread: 0
|
||||
- _EnableInnerOutline: 0
|
||||
- _EnableMetal: 0
|
||||
- _EnableNegative: 0
|
||||
- _EnableOuterOutline: 0
|
||||
- _EnablePingPongGlow: 0
|
||||
- _EnablePixelOutline: 0
|
||||
- _EnablePixelate: 0
|
||||
- _EnablePoison: 0
|
||||
- _EnableRainbow: 0
|
||||
- _EnableRecolorRGB: 0
|
||||
- _EnableRecolorRGBYCP: 0
|
||||
- _EnableSaturation: 0
|
||||
- _EnableScreenTiling: 0
|
||||
- _EnableShadow: 0
|
||||
- _EnableSharpen: 0
|
||||
- _EnableShiftHue: 0
|
||||
- _EnableShifting: 0
|
||||
- _EnableShine: 0
|
||||
- _EnableSineGlow: 0
|
||||
- _EnableSineMove: 0
|
||||
- _EnableSineRotate: 0
|
||||
- _EnableSineScale: 0
|
||||
- _EnableSmoke: 0
|
||||
- _EnableSmoothPixelArt: 0
|
||||
- _EnableSourceAlphaDissolve: 0
|
||||
- _EnableSourceGlowDissolve: 0
|
||||
- _EnableSplitToning: 0
|
||||
- _EnableSqueeze: 0
|
||||
- _EnableSquish: 0
|
||||
- _EnableStrongTint: 0
|
||||
- _EnableTextureLayer1: 0
|
||||
- _EnableTextureLayer2: 0
|
||||
- _EnableUVDistort: 0
|
||||
- _EnableUVRotate: 0
|
||||
- _EnableUVScale: 0
|
||||
- _EnableUVScroll: 0
|
||||
- _EnableVibrate: 0
|
||||
- _EnableWiggle: 0
|
||||
- _EnableWind: 0
|
||||
- _EnableWorldTiling: 0
|
||||
- _EnchantedBrightness: 1
|
||||
- _EnchantedContrast: 0.5
|
||||
- _EnchantedFade: 1
|
||||
- _EnchantedLerpToggle: 0
|
||||
- _EnchantedRainbowDensity: 0.5
|
||||
- _EnchantedRainbowSaturation: 0.8
|
||||
- _EnchantedRainbowSpeed: 0.5
|
||||
- _EnchantedRainbowToggle: 0
|
||||
- _EnchantedReduce: 0
|
||||
- _FaceDilate: 0
|
||||
- _FaceUVSpeedX: 0
|
||||
- _FaceUVSpeedY: 0
|
||||
- _FadingFade: 1
|
||||
- _FadingNoiseFactor: 0.2
|
||||
- _FadingWidth: 0.3
|
||||
- _FlameBrightness: 10
|
||||
- _FlameNoiseFactor: 2.5
|
||||
- _FlameNoiseHeightFactor: 1.5
|
||||
- _FlameRadius: 0.2
|
||||
- _FlameSmooth: 2
|
||||
- _FrozenContrast: 2
|
||||
- _FrozenFade: 1
|
||||
- _FrozenHighlightContrast: 2
|
||||
- _FrozenHighlightDensity: 1
|
||||
- _FrozenSnowContrast: 1
|
||||
- _FrozenSnowDensity: 0.25
|
||||
- _FullAlphaDissolveFade: 0.5
|
||||
- _FullAlphaDissolveWidth: 0.5
|
||||
- _FullDistortionFade: 1
|
||||
- _FullGlowDissolveFade: 0.5
|
||||
- _FullGlowDissolveWidth: 0.5
|
||||
- _GaussianBlurFade: 1
|
||||
- _GaussianBlurOffset: 0.5
|
||||
- _GlitchBrightness: 4
|
||||
- _GlitchFade: 1
|
||||
- _GlitchHueSpeed: 1
|
||||
- _GlitchMaskMin: 0.4
|
||||
- _GlowInner: 0.05
|
||||
- _GlowOffset: 0
|
||||
- _GlowOuter: 0.05
|
||||
- _GlowPower: 0.75
|
||||
- _GradientScale: 9
|
||||
- _HalftoneFade: 1
|
||||
- _HalftoneFadeWidth: 1.5
|
||||
- _HalftoneInvert: 0
|
||||
- _HalftoneTiling: 4
|
||||
- _HologramContrast: 1
|
||||
- _HologramDistortionDensity: 0.5
|
||||
- _HologramDistortionOffset: 0.5
|
||||
- _HologramDistortionScale: 10
|
||||
- _HologramDistortionSpeed: 2
|
||||
- _HologramFade: 1
|
||||
- _HologramLineFrequency: 500
|
||||
- _HologramLineGap: 3
|
||||
- _HologramLineSpeed: 0.01
|
||||
- _HologramMinAlpha: 0.2
|
||||
- _Hue: 0
|
||||
- _InkSpreadContrast: 2
|
||||
- _InkSpreadDistance: 3
|
||||
- _InkSpreadFade: 1
|
||||
- _InkSpreadNoiseFactor: 0.5
|
||||
- _InkSpreadWidth: 0.2
|
||||
- _InnerOutlineDistortionToggle: 0
|
||||
- _InnerOutlineFade: 1
|
||||
- _InnerOutlineOutlineOnlyToggle: 0
|
||||
- _InnerOutlineTextureToggle: 0
|
||||
- _InnerOutlineWidth: 0.02
|
||||
- _IsText: 1
|
||||
- _IsTextMeshPro: 1
|
||||
- _LightAngle: 3.1416
|
||||
- _MaskSoftnessX: 0
|
||||
- _MaskSoftnessY: 0
|
||||
- _MetalContrast: 2
|
||||
- _MetalFade: 1
|
||||
- _MetalHighlightContrast: 2
|
||||
- _MetalHighlightDensity: 1
|
||||
- _MetalMaskToggle: 0
|
||||
- _NegativeFade: 1
|
||||
- _OuterOutlineDistortionToggle: 0
|
||||
- _OuterOutlineFade: 1
|
||||
- _OuterOutlineOutlineOnlyToggle: 0
|
||||
- _OuterOutlineTextureToggle: 0
|
||||
- _OuterOutlineWidth: 0.04
|
||||
- _OutlineSoftness: 0
|
||||
- _OutlineUVSpeedX: 0
|
||||
- _OutlineUVSpeedY: 0
|
||||
- _OutlineWidth: 0
|
||||
- _PerspectiveFilter: 0.875
|
||||
- _PingPongGlowContrast: 1
|
||||
- _PingPongGlowFade: 1
|
||||
- _PingPongGlowFrequency: 3
|
||||
- _PixelOutlineAlphaLimit: 0.5
|
||||
- _PixelOutlineFade: 1
|
||||
- _PixelOutlineOutlineOnlyToggle: 0
|
||||
- _PixelOutlineTextureToggle: 0
|
||||
- _PixelOutlineWidth: 1
|
||||
- _PixelPerfectSpace: 0
|
||||
- _PixelPerfectUV: 0
|
||||
- _PixelateFade: 1
|
||||
- _PixelatePixelDensity: 16
|
||||
- _PixelatePixelsPerUnit: 100
|
||||
- _PixelsPerUnit: 100
|
||||
- _PoisonDensity: 3
|
||||
- _PoisonFade: 1
|
||||
- _PoisonNoiseBrightness: 2
|
||||
- _PoisonRecolorFactor: 0.5
|
||||
- _PoisonShiftSpeed: 0.2
|
||||
- _RainbowBrightness: 2
|
||||
- _RainbowContrast: 1
|
||||
- _RainbowDensity: 0.5
|
||||
- _RainbowFade: 1
|
||||
- _RainbowNoiseFactor: 0.2
|
||||
- _RainbowSaturation: 1
|
||||
- _RainbowSpeed: 1
|
||||
- _RecolorRGBFade: 1
|
||||
- _RecolorRGBTextureToggle: 0
|
||||
- _RecolorRGBYCPFade: 1
|
||||
- _RecolorRGBYCPTextureToggle: 0
|
||||
- _RectHeight: 100
|
||||
- _RectWidth: 100
|
||||
- _Reflectivity: 10
|
||||
- _Saturation: 1
|
||||
- _ScaleRatioA: 0.8888889
|
||||
- _ScaleRatioB: 0.7222222
|
||||
- _ScaleRatioC: 0.7222222
|
||||
- _ScaleX: 1
|
||||
- _ScaleY: 1
|
||||
- _ScreenTilingPixelsPerUnit: 100
|
||||
- _ScreenWidthUnits: 10
|
||||
- _ShaderFading: 0
|
||||
- _ShaderFlags: 0
|
||||
- _ShaderSpace: 0
|
||||
- _ShadowFade: 1
|
||||
- _SharpenFactor: 4
|
||||
- _SharpenFade: 1
|
||||
- _SharpenOffset: 2
|
||||
- _Sharpness: 0
|
||||
- _ShiftHueSpeed: 0.5
|
||||
- _ShiftingBrightness: 1
|
||||
- _ShiftingContrast: 0.5
|
||||
- _ShiftingDensity: 1.5
|
||||
- _ShiftingFade: 1
|
||||
- _ShiftingRainbowToggle: 0
|
||||
- _ShiftingSaturation: 0.8
|
||||
- _ShiftingSpeed: 0.5
|
||||
- _ShineContrast: 2
|
||||
- _ShineFade: 1
|
||||
- _ShineFrequency: 0.3
|
||||
- _ShineMaskToggle: 0
|
||||
- _ShineRotation: 30
|
||||
- _ShineSaturation: 0.5
|
||||
- _ShineSmooth: 1
|
||||
- _ShineSpeed: 5
|
||||
- _ShineWidth: 0.1
|
||||
- _SineGlowContrast: 1
|
||||
- _SineGlowFade: 1
|
||||
- _SineGlowFrequency: 4
|
||||
- _SineGlowMaskToggle: 0
|
||||
- _SineGlowMax: 1
|
||||
- _SineGlowMin: 0
|
||||
- _SineMoveFade: 1
|
||||
- _SineRotateAngle: 15
|
||||
- _SineRotateFade: 1
|
||||
- _SineRotateFrequency: 1
|
||||
- _SineScaleFrequency: 2
|
||||
- _SmokeAlpha: 1
|
||||
- _SmokeDarkEdge: 1
|
||||
- _SmokeNoiseFactor: 0.4
|
||||
- _SmokeNoiseScale: 0.5
|
||||
- _SmokeSmoothness: 1
|
||||
- _SmokeVertexSeed: 0
|
||||
- _SourceAlphaDissolveFade: 1
|
||||
- _SourceAlphaDissolveInvert: 0
|
||||
- _SourceAlphaDissolveNoiseFactor: 0.2
|
||||
- _SourceAlphaDissolveWidth: 0.2
|
||||
- _SourceGlowDissolveFade: 1
|
||||
- _SourceGlowDissolveInvert: 0
|
||||
- _SourceGlowDissolveNoiseFactor: 0.2
|
||||
- _SourceGlowDissolveWidth: 0.1
|
||||
- _SpecularPower: 2
|
||||
- _SplitToningBalance: 1
|
||||
- _SplitToningContrast: 1
|
||||
- _SplitToningFade: 1
|
||||
- _SplitToningShift: 0
|
||||
- _SpriteSheetFix: 0
|
||||
- _SqueezeFade: 1
|
||||
- _SqueezePower: 1
|
||||
- _SquishFade: 1
|
||||
- _SquishFlip: 0
|
||||
- _SquishSquish: 0.1
|
||||
- _SquishStretch: 0.1
|
||||
- _Stencil: 0
|
||||
- _StencilComp: 8
|
||||
- _StencilOp: 0
|
||||
- _StencilReadMask: 255
|
||||
- _StencilWriteMask: 255
|
||||
- _StrongTintContrast: 0
|
||||
- _StrongTintContrastToggle: 0
|
||||
- _StrongTintFade: 1
|
||||
- _StrongTintMaskToggle: 0
|
||||
- _TMPSmoothness: 5
|
||||
- _TMPThickness: -0.45
|
||||
- _TextureHeight: 1024
|
||||
- _TextureLayer1Columns: 3
|
||||
- _TextureLayer1Contrast: 1
|
||||
- _TextureLayer1ContrastToggle: 0
|
||||
- _TextureLayer1EdgeClip: 0.005
|
||||
- _TextureLayer1Fade: 1
|
||||
- _TextureLayer1Rows: 3
|
||||
- _TextureLayer1ScrollToggle: 0
|
||||
- _TextureLayer1SheetToggle: 1
|
||||
- _TextureLayer1Speed: 20
|
||||
- _TextureLayer1StartFrame: 0
|
||||
- _TextureLayer2Columns: 3
|
||||
- _TextureLayer2Contrast: 1
|
||||
- _TextureLayer2ContrastToggle: 0
|
||||
- _TextureLayer2EdgeClip: 0.005
|
||||
- _TextureLayer2Fade: 1
|
||||
- _TextureLayer2Rows: 3
|
||||
- _TextureLayer2ScrollToggle: 0
|
||||
- _TextureLayer2SheetToggle: 1
|
||||
- _TextureLayer2Speed: 20
|
||||
- _TextureLayer2StartFrame: 0
|
||||
- _TextureWidth: 1024
|
||||
- _TilingFix: 0
|
||||
- _TimeFPS: 5
|
||||
- _TimeFrequency: 2
|
||||
- _TimeRange: 0.5
|
||||
- _TimeSpeed: 1
|
||||
- _TimeValue: 0
|
||||
- _ToggleCustomTime: 0
|
||||
- _ToggleTimeFPS: 0
|
||||
- _ToggleTimeFrequency: 0
|
||||
- _ToggleTimeSpeed: 0
|
||||
- _ToggleUnscaledTime: 0
|
||||
- _UIVertexColorAlwaysGammaSpace: 0
|
||||
- _UVDistortFade: 1
|
||||
- _UVDistortMaskToggle: 0
|
||||
- _UVRotateSpeed: 1
|
||||
- _UnderlayDilate: 0
|
||||
- _UnderlayOffsetX: 0
|
||||
- _UnderlayOffsetY: 0
|
||||
- _UnderlaySoftness: 0
|
||||
- _UseUIAlphaClip: 0
|
||||
- _VertexOffsetX: 0
|
||||
- _VertexOffsetY: 0
|
||||
- _VertexTintFirst: 0
|
||||
- _VibrateFade: 1
|
||||
- _VibrateFrequency: 100
|
||||
- _VibrateOffset: 0.04
|
||||
- _VibrateRotation: 4
|
||||
- _WeightBold: 0.75
|
||||
- _WeightNormal: 0
|
||||
- _WiggleFade: 1
|
||||
- _WiggleFixedGroundToggle: 0
|
||||
- _WiggleFrequency: 2
|
||||
- _WiggleOffset: 0.02
|
||||
- _WiggleSpeed: 2
|
||||
- _WindFlip: 0
|
||||
- _WindHighQualityNoise: 0
|
||||
- _WindIsParallax: 0
|
||||
- _WindLocalWind: 0
|
||||
- _WindMaxIntensity: 0.4
|
||||
- _WindMaxRotation: 2
|
||||
- _WindMinIntensity: -0.4
|
||||
- _WindNoiseScale: 0.1
|
||||
- _WindNoiseSpeed: 1
|
||||
- _WindRotation: 0
|
||||
- _WindRotationWindFactor: 1
|
||||
- _WindSquishFactor: 0.3
|
||||
- _WindSquishWindFactor: 0
|
||||
- _WindXPosition: 0
|
||||
- _WorldTilingPixelsPerUnit: 100
|
||||
m_Colors:
|
||||
- _AddColorColor: {r: 2.996078, g: 0, b: 0, a: 0}
|
||||
- _AlphaTintColor: {r: 95.87451, g: 5.019608, b: 95.87451, a: 0}
|
||||
- _BlackTintColor: {r: 0, g: 0, b: 1, a: 0}
|
||||
- _BurnEdgeColor: {r: 11.98431, g: 1.129412, b: 0.1254902, a: 0}
|
||||
- _BurnEdgeNoiseScale: {r: 0.3, g: 0.3, b: 0, a: 0}
|
||||
- _BurnInsideColor: {r: 0.75, g: 0.5625, b: 0.525, a: 0}
|
||||
- _BurnInsideNoiseColor: {r: 3084.047, g: 257.0039, b: 0, a: 0}
|
||||
- _BurnInsideNoiseScale: {r: 0.5, g: 0.5, b: 0, a: 0}
|
||||
- _BurnPosition: {r: 0, g: 5, b: 0, a: 0}
|
||||
- _BurnSwirlNoiseScale: {r: 0.1, g: 0.1, b: 0, a: 0}
|
||||
- _CamouflageBaseColor: {r: 0.7450981, g: 0.7254902, b: 0.5686274, a: 0}
|
||||
- _CamouflageColorA: {r: 0.62745106, g: 0.5882353, b: 0.43137258, a: 0}
|
||||
- _CamouflageColorB: {r: 0.47058815, g: 0.43137258, b: 0.31372547, a: 0}
|
||||
- _CamouflageDistortionIntensity: {r: 0.1, g: 0.1, b: 0, a: 0}
|
||||
- _CamouflageDistortionScale: {r: 0.5, g: 0.5, b: 0, a: 0}
|
||||
- _CamouflageDistortionSpeed: {r: 0.1, g: 0.1, b: 0, a: 0}
|
||||
- _CamouflageNoiseScaleA: {r: 0.25, g: 0.25, b: 0, a: 0}
|
||||
- _CamouflageNoiseScaleB: {r: 0.25, g: 0.25, b: 0, a: 0}
|
||||
- _ClipRect: {r: -32767, g: -32767, b: 32767, a: 32767}
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _ColorReplaceFromColor: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _ColorReplaceToColor: {r: 0, g: 0, b: 0.2, a: 0}
|
||||
- _CustomFadeNoiseScale: {r: 1, g: 1, b: 0, a: 0}
|
||||
- _DirectionalAlphaFadeNoiseScale: {r: 0.3, g: 0.3, b: 0, a: 0}
|
||||
- _DirectionalDistortionDistortion: {r: 0, g: 0.1, b: 0, a: 0}
|
||||
- _DirectionalDistortionDistortionScale: {r: 1, g: 1, b: 0, a: 0}
|
||||
- _DirectionalDistortionNoiseScale: {r: 0.4, g: 0.4, b: 0, a: 0}
|
||||
- _DirectionalGlowFadeEdgeColor: {r: 11.98431, g: 0.6901961, b: 0.6901961, a: 0}
|
||||
- _DirectionalGlowFadeNoiseScale: {r: 0.4, g: 0.4, b: 0, a: 0}
|
||||
- _EnchantedHighColor: {r: 0, g: 0.7098798, b: 4.237095, a: 0}
|
||||
- _EnchantedLowColor: {r: 2.996078, g: 0, b: 0, a: 0}
|
||||
- _EnchantedScale: {r: 0.1, g: 0.1, b: 0, a: 0}
|
||||
- _EnchantedSpeed: {r: 0, g: 1, b: 0, a: 0}
|
||||
- _EnvMatrixRotation: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _FaceColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _FadingNoiseScale: {r: 0.2, g: 0.2, b: 0, a: 0}
|
||||
- _FadingPosition: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _FlameNoiseScale: {r: 1.2, g: 0.8, b: 0, a: 0}
|
||||
- _FlameSpeed: {r: 0, g: -0.5, b: 0, a: 0}
|
||||
- _FrozenHighlightColor: {r: 1.797647, g: 4.604501, b: 5.992157, a: 1}
|
||||
- _FrozenHighlightDistortion: {r: 0.5, g: 0.5, b: 0, a: 0}
|
||||
- _FrozenHighlightDistortionScale: {r: 0.2, g: 0.2, b: 0, a: 0}
|
||||
- _FrozenHighlightDistortionSpeed: {r: -0.05, g: -0.05, b: 0, a: 0}
|
||||
- _FrozenHighlightScale: {r: 0.2, g: 0.2, b: 0, a: 0}
|
||||
- _FrozenHighlightSpeed: {r: 0.1, g: 0.1, b: 0, a: 0}
|
||||
- _FrozenSnowColor: {r: 1.123529, g: 1.373203, b: 1.498039, a: 0}
|
||||
- _FrozenSnowScale: {r: 0.1, g: 0.1, b: 0, a: 0}
|
||||
- _FrozenTint: {r: 1.819608, g: 4.611765, b: 5.992157, a: 0}
|
||||
- _FullAlphaDissolveNoiseScale: {r: 0.1, g: 0.1, b: 0, a: 0}
|
||||
- _FullDistortionDistortion: {r: 0.2, g: 0.2, b: 0, a: 0}
|
||||
- _FullDistortionNoiseScale: {r: 0.5, g: 0.5, b: 0, a: 0}
|
||||
- _FullGlowDissolveEdgeColor: {r: 11.98431, g: 0.627451, b: 0.627451, a: 0}
|
||||
- _FullGlowDissolveNoiseScale: {r: 0.1, g: 0.1, b: 0, a: 0}
|
||||
- _GlitchDistortion: {r: 0.1, g: 0, b: 0, a: 0}
|
||||
- _GlitchDistortionScale: {r: 0, g: 3, b: 0, a: 0}
|
||||
- _GlitchDistortionSpeed: {r: 0, g: 1, b: 0, a: 0}
|
||||
- _GlitchMaskScale: {r: 0, g: 0.2, b: 0, a: 0}
|
||||
- _GlitchMaskSpeed: {r: 0, g: 4, b: 0, a: 0}
|
||||
- _GlitchNoiseScale: {r: 0, g: 3, b: 0, a: 0}
|
||||
- _GlitchNoiseSpeed: {r: 0, g: 1, b: 0, a: 0}
|
||||
- _GlowColor: {r: 0, g: 1, b: 0, a: 0.5}
|
||||
- _HalftonePosition: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _HologramTint: {r: 0.3137255, g: 1.662745, b: 2.996078, a: 1}
|
||||
- _InkSpreadColor: {r: 8.47419, g: 5.013525, b: 0.08873497, a: 0}
|
||||
- _InkSpreadNoiseScale: {r: 0.4, g: 0.4, b: 0, a: 0}
|
||||
- _InkSpreadPosition: {r: 0.5, g: -1, b: 0, a: 0}
|
||||
- _InnerOutlineColor: {r: 11.98431, g: 1.254902, b: 1.254902, a: 1}
|
||||
- _InnerOutlineDistortionIntensity: {r: 0.01, g: 0.01, b: 0, a: 0}
|
||||
- _InnerOutlineNoiseScale: {r: 4, g: 4, b: 0, a: 0}
|
||||
- _InnerOutlineNoiseSpeed: {r: 0, g: 0.1, b: 0, a: 0}
|
||||
- _InnerOutlineTextureSpeed: {r: 0.5, g: 0, b: 0, a: 0}
|
||||
- _MaskCoord: {r: 0, g: 0, b: 32767, a: 32767}
|
||||
- _MetalColor: {r: 5.992157, g: 3.639216, b: 0.3137255, a: 1}
|
||||
- _MetalHighlightColor: {r: 5.992157, g: 3.796078, b: 0.6588235, a: 1}
|
||||
- _MetalNoiseDistortion: {r: 0.5, g: 0.5, b: 0, a: 0}
|
||||
- _MetalNoiseDistortionScale: {r: 0.2, g: 0.2, b: 0, a: 0}
|
||||
- _MetalNoiseDistortionSpeed: {r: -0.05, g: -0.05, b: 0, a: 0}
|
||||
- _MetalNoiseScale: {r: 0.25, g: 0.25, b: 0, a: 0}
|
||||
- _MetalNoiseSpeed: {r: 0.05, g: 0.05, b: 0, a: 0}
|
||||
- _OuterOutlineColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _OuterOutlineDistortionIntensity: {r: 0.01, g: 0.01, b: 0, a: 0}
|
||||
- _OuterOutlineNoiseScale: {r: 4, g: 4, b: 0, a: 0}
|
||||
- _OuterOutlineNoiseSpeed: {r: 0, g: 0.1, b: 0, a: 0}
|
||||
- _OuterOutlineTextureSpeed: {r: 0.5, g: 0, b: 0, a: 0}
|
||||
- _OutlineColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _PingPongGlowFrom: {r: 5.992157, g: 0.1882353, b: 0.1882353, a: 0}
|
||||
- _PingPongGlowTo: {r: 0.1882353, g: 0.1882353, b: 5.992157, a: 0}
|
||||
- _PixelOutlineColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _PixelOutlineTextureSpeed: {r: 0.5, g: 0, b: 0, a: 0}
|
||||
- _PoisonColor: {r: 0.3137255, g: 2.996078, b: 0.3137255, a: 0}
|
||||
- _PoisonNoiseScale: {r: 0.2, g: 0.2, b: 0, a: 0}
|
||||
- _PoisonNoiseSpeed: {r: 0, g: -0.2, b: 0, a: 0}
|
||||
- _RainbowCenter: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _RainbowNoiseScale: {r: 0.2, g: 0.2, b: 0, a: 0}
|
||||
- _RecolorRGBBlueTint: {r: 1, g: 1, b: 1, a: 0.5019608}
|
||||
- _RecolorRGBGreenTint: {r: 1, g: 1, b: 1, a: 0.5019608}
|
||||
- _RecolorRGBRedTint: {r: 1, g: 1, b: 1, a: 0.5019608}
|
||||
- _RecolorRGBYCPBlueTint: {r: 1, g: 1, b: 1, a: 0.5019608}
|
||||
- _RecolorRGBYCPCyanTint: {r: 1, g: 1, b: 1, a: 0.5019608}
|
||||
- _RecolorRGBYCPGreenTint: {r: 1, g: 1, b: 1, a: 0.5019608}
|
||||
- _RecolorRGBYCPPurpleTint: {r: 1, g: 1, b: 1, a: 0.5019608}
|
||||
- _RecolorRGBYCPRedTint: {r: 1, g: 1, b: 1, a: 0.5019608}
|
||||
- _RecolorRGBYCPYellowTint: {r: 1, g: 1, b: 1, a: 0.5019608}
|
||||
- _ReflectFaceColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _ReflectOutlineColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _ScreenTilingOffset: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _ScreenTilingScale: {r: 1, g: 1, b: 0, a: 0}
|
||||
- _ShadowColor: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _ShadowOffset: {r: 0.05, g: -0.05, b: 0, a: 0}
|
||||
- _ShiftingColorA: {r: 1.498039, g: 0, b: 0, a: 0}
|
||||
- _ShiftingColorB: {r: 1.498039, g: 0.7490196, b: 0, a: 0}
|
||||
- _ShineColor: {r: 11.98431, g: 11.98431, b: 11.98431, a: 0}
|
||||
- _SineGlowColor: {r: 0, g: 2.007843, b: 2.996078, a: 0}
|
||||
- _SineMoveFrequency: {r: 1, g: 1, b: 0, a: 0}
|
||||
- _SineMoveOffset: {r: 0, g: 0.5, b: 0, a: 0}
|
||||
- _SineRotatePivot: {r: 0.5, g: 0.5, b: 0, a: 0}
|
||||
- _SineScaleFactor: {r: 0.2, g: 0.2, b: 0, a: 0}
|
||||
- _SourceAlphaDissolveNoiseScale: {r: 0.3, g: 0.3, b: 0, a: 0}
|
||||
- _SourceAlphaDissolvePosition: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _SourceGlowDissolveEdgeColor: {r: 11.98431, g: 0.627451, b: 0.627451, a: 0}
|
||||
- _SourceGlowDissolveNoiseScale: {r: 0.3, g: 0.3, b: 0, a: 0}
|
||||
- _SourceGlowDissolvePosition: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _SpecularColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _SplitToningHighlightsColor: {r: 1, g: 0.1, b: 0.1, a: 0}
|
||||
- _SplitToningShadowsColor: {r: 0.1, g: 0.4000002, b: 1, a: 0}
|
||||
- _SpriteSheetRect: {r: 0, g: 0, b: 1, a: 1}
|
||||
- _SqueezeCenter: {r: 0.5, g: 0.5, b: 0, a: 0}
|
||||
- _SqueezeScale: {r: 2, g: 0, b: 0, a: 0}
|
||||
- _StrongTintTint: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _TextureLayer1Color: {r: 0.4494117, g: 1.298301, b: 2.996079, a: 1}
|
||||
- _TextureLayer1Offset: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _TextureLayer1Scale: {r: 1, g: 1, b: 0, a: 0}
|
||||
- _TextureLayer1ScrollSpeed: {r: 0, g: 1, b: 0, a: 0}
|
||||
- _TextureLayer2Color: {r: 0.4494117, g: 1.298301, b: 2.996079, a: 1}
|
||||
- _TextureLayer2Offset: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _TextureLayer2Scale: {r: 1, g: 1, b: 0, a: 0}
|
||||
- _TextureLayer2ScrollSpeed: {r: 0, g: 1, b: 0, a: 0}
|
||||
- _UVDistortFrom: {r: -0.02, g: -0.02, b: 0, a: 0}
|
||||
- _UVDistortNoiseScale: {r: 0.1, g: 0.1, b: 0, a: 0}
|
||||
- _UVDistortSpeed: {r: 2, g: 2, b: 0, a: 0}
|
||||
- _UVDistortTo: {r: 0.02, g: 0.02, b: 0, a: 0}
|
||||
- _UVRotatePivot: {r: 0.5, g: 0.5, b: 0, a: 0}
|
||||
- _UVScalePivot: {r: 0.5, g: 0.5, b: 0, a: 0}
|
||||
- _UVScaleScale: {r: 1, g: 1, b: 0, a: 0}
|
||||
- _UVScrollSpeed: {r: 0.2, g: 0, b: 0, a: 0}
|
||||
- _UnderlayColor: {r: 0, g: 0, b: 0, a: 0.5}
|
||||
- _WorldTilingOffset: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _WorldTilingScale: {r: 1, g: 1, b: 0, a: 0}
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
||||
@@ -1,8 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f51589a19ab9f8f46834348da6cf70d0
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
guid: d1840e4d5c5355a438fd745078e16187
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
111
Assets/Fonts/SDF/ZQK/ZQK Font SDF Outline.mat
Normal file
111
Assets/Fonts/SDF/ZQK/ZQK Font SDF Outline.mat
Normal file
@@ -0,0 +1,111 @@
|
||||
%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: ZQK Font SDF Outline
|
||||
m_Shader: {fileID: 4800000, guid: 68e6db2ebdc24f95958faec2be5558d6, 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:
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _Cube:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _FaceTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: -478184148220021899, guid: 21262bfde877c70478b3fcaf0d725c46, type: 2}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OutlineTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _Ambient: 0.5
|
||||
- _Bevel: 0.5
|
||||
- _BevelClamp: 0
|
||||
- _BevelOffset: 0
|
||||
- _BevelRoundness: 0
|
||||
- _BevelWidth: 0
|
||||
- _BumpFace: 0
|
||||
- _BumpOutline: 0
|
||||
- _ColorMask: 15
|
||||
- _CullMode: 0
|
||||
- _Diffuse: 0.5
|
||||
- _FaceDilate: 0
|
||||
- _FaceUVSpeedX: 0
|
||||
- _FaceUVSpeedY: 0
|
||||
- _GlowInner: 0.05
|
||||
- _GlowOffset: 0
|
||||
- _GlowOuter: 0.05
|
||||
- _GlowPower: 0.75
|
||||
- _GradientScale: 9
|
||||
- _LightAngle: 3.1416
|
||||
- _MaskSoftnessX: 0
|
||||
- _MaskSoftnessY: 0
|
||||
- _OutlineSoftness: 0
|
||||
- _OutlineUVSpeedX: 0
|
||||
- _OutlineUVSpeedY: 0
|
||||
- _OutlineWidth: 0.25
|
||||
- _PerspectiveFilter: 0.875
|
||||
- _Reflectivity: 10
|
||||
- _ScaleRatioA: 0.8888889
|
||||
- _ScaleRatioB: 0.7222222
|
||||
- _ScaleRatioC: 0.7222222
|
||||
- _ScaleX: 1
|
||||
- _ScaleY: 1
|
||||
- _ShaderFlags: 0
|
||||
- _Sharpness: 0
|
||||
- _SpecularPower: 2
|
||||
- _Stencil: 0
|
||||
- _StencilComp: 8
|
||||
- _StencilOp: 0
|
||||
- _StencilReadMask: 255
|
||||
- _StencilWriteMask: 255
|
||||
- _TextureHeight: 1024
|
||||
- _TextureWidth: 1024
|
||||
- _UnderlayDilate: 0
|
||||
- _UnderlayOffsetX: 0
|
||||
- _UnderlayOffsetY: 0
|
||||
- _UnderlaySoftness: 0
|
||||
- _VertexOffsetX: 0
|
||||
- _VertexOffsetY: 0
|
||||
- _WeightBold: 0.75
|
||||
- _WeightNormal: 0
|
||||
m_Colors:
|
||||
- _ClipRect: {r: -32767, g: -32767, b: 32767, a: 32767}
|
||||
- _EnvMatrixRotation: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _FaceColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _GlowColor: {r: 0, g: 1, b: 0, a: 0.5}
|
||||
- _MaskCoord: {r: 0, g: 0, b: 32767, a: 32767}
|
||||
- _OutlineColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _ReflectFaceColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _ReflectOutlineColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SpecularColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _UnderlayColor: {r: 0, g: 0, b: 0, a: 0.5}
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
||||
8
Assets/Fonts/SDF/ZQK/ZQK Font SDF Outline.mat.meta
Normal file
8
Assets/Fonts/SDF/ZQK/ZQK Font SDF Outline.mat.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 538d28bfaad57dc47b726847ab356ae6
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -15,7 +15,7 @@ namespace Cielonos.MainGame.Characters.AI
|
||||
public override TaskStatus OnUpdate()
|
||||
{
|
||||
CooldownTimer cooldownTimer = self.selfTimeSm.coolDownTimers[timerName.Value];
|
||||
bool conditionMet = checkIfCompleted ? cooldownTimer.IsCompleted : !cooldownTimer.IsCompleted;
|
||||
bool conditionMet = checkIfCompleted ? cooldownTimer.isCompleted : !cooldownTimer.isCompleted;
|
||||
return conditionMet ? TaskStatus.Success : TaskStatus.Failure;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 762edfd7b07d0234683a7363f84f98c8
|
||||
folderAsset: yes
|
||||
timeCreated: 1489330932
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,3 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9e0a8b8cb3a94310a4032b06bb85bc40
|
||||
timeCreated: 1751091994
|
||||
@@ -1,24 +0,0 @@
|
||||
// Copyright (c) Le Loc Tai <leloctai.com> . All rights reserved. Do not redistribute.
|
||||
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace LeTai.Common.Editor
|
||||
{
|
||||
public static class Assets
|
||||
{
|
||||
public static T Find<T>(string assetName, string label = "TranslucentImageEditorResources") where T : Object
|
||||
{
|
||||
var guids = AssetDatabase.FindAssets($"l:{label} {assetName}");
|
||||
if (guids.Length == 0)
|
||||
{
|
||||
Debug.LogError($"Asset \"{assetName}\" not found. " +
|
||||
$"Make sure it have the label \"TranslucentImageEditorResources\"");
|
||||
return null;
|
||||
}
|
||||
|
||||
var path = AssetDatabase.GUIDToAssetPath(guids[0]);
|
||||
return AssetDatabase.LoadAssetAtPath<T>(path);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 62f3490712e742dbafd854da4b66319c
|
||||
timeCreated: 1751092491
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 78464
|
||||
packageName: Translucent Image - Fast UI Background Blur
|
||||
packageVersion: 6.5.0
|
||||
assetPath: Assets/Le Tai's Asset/Common/Editor/Assets.cs
|
||||
uploadId: 824068
|
||||
@@ -1,73 +0,0 @@
|
||||
// Copyright (c) Le Loc Tai <leloctai.com> . All rights reserved. Do not redistribute.
|
||||
|
||||
using System;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace LeTai.Common.Editor
|
||||
{
|
||||
public static class EditorCustom
|
||||
{
|
||||
static readonly GUIContent LABEL = new GUIContent();
|
||||
|
||||
public class LabelWidthScope : GUI.Scope
|
||||
{
|
||||
readonly float oldLabelWidth;
|
||||
|
||||
public LabelWidthScope(float labelWidth)
|
||||
{
|
||||
oldLabelWidth = EditorGUIUtility.labelWidth;
|
||||
EditorGUIUtility.labelWidth = labelWidth;
|
||||
}
|
||||
|
||||
protected override void CloseScope()
|
||||
{
|
||||
EditorGUIUtility.labelWidth = oldLabelWidth;
|
||||
}
|
||||
}
|
||||
|
||||
public static (Rect labelRect, Rect fieldRect) PrefixLabel(Rect rect, int id, GUIContent label)
|
||||
{
|
||||
var fieldRect = EditorGUI.PrefixLabel(rect, id, label);
|
||||
var labelRect = new Rect(rect.x, rect.y, rect.width - fieldRect.width, rect.height);
|
||||
|
||||
return (labelRect, fieldRect);
|
||||
}
|
||||
|
||||
public static float LabelFloatField(Rect rectControl, Rect rectLabel, GUIContent label, float value, GUIStyle styleLabel = null, GUIStyle styleField = null)
|
||||
{
|
||||
var controlId = GUIUtility.GetControlID(FocusType.Keyboard, rectControl);
|
||||
EditorGUI.HandlePrefixLabel(rectControl, rectLabel, label, controlId, styleLabel);
|
||||
return EditorInternal.DoFloatFieldInternal(rectControl, rectLabel, controlId, value, style: styleField);
|
||||
}
|
||||
|
||||
public static void ComputedPropertyField(SerializedProperty property, Func<SerializedProperty, string> compute)
|
||||
{
|
||||
using var _ = new EditorGUILayout.HorizontalScope();
|
||||
EditorGUILayout.PropertyField(property);
|
||||
EditorGUILayout.LabelField(compute(property), GUILayout.ExpandWidth(false));
|
||||
}
|
||||
|
||||
public static bool LinkButton(string label, params GUILayoutOption[] options)
|
||||
{
|
||||
LABEL.text = label;
|
||||
return LinkButton(LABEL, options);
|
||||
}
|
||||
|
||||
public static bool LinkButton(GUIContent label, params GUILayoutOption[] options)
|
||||
{
|
||||
var rect = GUILayoutUtility.GetRect(label, EditorStyles.linkLabel, options);
|
||||
rect = EditorGUI.IndentedRect(rect);
|
||||
|
||||
// var prevHandleColor = Handles.color;
|
||||
// Handles.color = EditorStyles.linkLabel.normal.textColor;
|
||||
// Handles.DrawLine(new Vector3(position.xMin + EditorStyles.linkLabel.padding.left, position.yMax),
|
||||
// new Vector3(position.xMax - EditorStyles.linkLabel.padding.right, position.yMax));
|
||||
// Handles.color = prevHandleColor;
|
||||
|
||||
EditorGUIUtility.AddCursorRect(rect, MouseCursor.Link);
|
||||
|
||||
return GUI.Button(rect, label, EditorStyles.linkLabel);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a42329183e3c49b9a43603047c1a7e92
|
||||
timeCreated: 1751092578
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 78464
|
||||
packageName: Translucent Image - Fast UI Background Blur
|
||||
packageVersion: 6.5.0
|
||||
assetPath: Assets/Le Tai's Asset/Common/Editor/EditorCustom.cs
|
||||
uploadId: 824068
|
||||
@@ -1,69 +0,0 @@
|
||||
using System;
|
||||
using System.Reflection;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace LeTai.Common.Editor
|
||||
{
|
||||
static class EditorInternal
|
||||
{
|
||||
static readonly MethodInfo DO_FLOAT_FIELD_METHOD;
|
||||
#if UNITY_6000_0_OR_NEWER
|
||||
static readonly PropertyInfo RECYCLED_EDITOR_PROPERTY;
|
||||
#else
|
||||
static readonly FieldInfo RECYCLED_EDITOR_PROPERTY;
|
||||
#endif
|
||||
static readonly FieldInfo FLOAT_FIELD_FORMAT_STRING_CONST;
|
||||
|
||||
static EditorInternal()
|
||||
{
|
||||
var editorGUIType = typeof(EditorGUI);
|
||||
const BindingFlags flags = BindingFlags.NonPublic | BindingFlags.Static;
|
||||
|
||||
Type[] argumentTypes = {
|
||||
Assembly.GetAssembly(editorGUIType).GetType("UnityEditor.EditorGUI+RecycledTextEditor"),
|
||||
typeof(Rect),
|
||||
typeof(Rect),
|
||||
typeof(int),
|
||||
typeof(float),
|
||||
typeof(string),
|
||||
typeof(GUIStyle),
|
||||
typeof(bool)
|
||||
};
|
||||
DO_FLOAT_FIELD_METHOD = editorGUIType.GetMethod("DoFloatField", flags, null, argumentTypes, null);
|
||||
#if UNITY_6000_0_OR_NEWER
|
||||
RECYCLED_EDITOR_PROPERTY = editorGUIType.GetProperty("s_RecycledEditor", flags);
|
||||
#else
|
||||
RECYCLED_EDITOR_PROPERTY = editorGUIType.GetField("s_RecycledEditor", flags);
|
||||
#endif
|
||||
FLOAT_FIELD_FORMAT_STRING_CONST = editorGUIType.GetField("kFloatFieldFormatString", flags);
|
||||
}
|
||||
|
||||
internal static float DoFloatFieldInternal(
|
||||
Rect position,
|
||||
Rect dragHotZone,
|
||||
int id,
|
||||
float value,
|
||||
string formatString = null,
|
||||
GUIStyle style = null,
|
||||
bool draggable = true
|
||||
)
|
||||
{
|
||||
style = style ?? EditorStyles.numberField;
|
||||
formatString = formatString ?? (string)FLOAT_FIELD_FORMAT_STRING_CONST.GetValue(null);
|
||||
|
||||
var editor = RECYCLED_EDITOR_PROPERTY.GetValue(null);
|
||||
|
||||
return (float)DO_FLOAT_FIELD_METHOD.Invoke(null, new[] {
|
||||
editor,
|
||||
position,
|
||||
dragHotZone,
|
||||
id,
|
||||
value,
|
||||
formatString,
|
||||
style,
|
||||
draggable
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c8c94534f87244218d95b02d343eabf2
|
||||
timeCreated: 1695375609
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 78464
|
||||
packageName: Translucent Image - Fast UI Background Blur
|
||||
packageVersion: 6.5.0
|
||||
assetPath: Assets/Le Tai's Asset/Common/Editor/EditorInternal.cs
|
||||
uploadId: 824068
|
||||
@@ -1,57 +0,0 @@
|
||||
// Copyright (c) Le Loc Tai <leloctai.com> . All rights reserved. Do not redistribute.
|
||||
|
||||
using System;
|
||||
using UnityEditor;
|
||||
|
||||
namespace LeTai.Common.Editor
|
||||
{
|
||||
public class EditorPrefValue<T>
|
||||
{
|
||||
readonly string key;
|
||||
readonly T initialValue;
|
||||
|
||||
public T Value
|
||||
{
|
||||
get
|
||||
{
|
||||
if (!EditorPrefs.HasKey(key))
|
||||
{
|
||||
Value = initialValue;
|
||||
return initialValue;
|
||||
}
|
||||
|
||||
return typeof(T) switch {
|
||||
{ } t when t == typeof(bool) => (T)(object)EditorPrefs.GetBool(key),
|
||||
{ } t when t == typeof(float) => (T)(object)EditorPrefs.GetFloat(key),
|
||||
|
||||
_ => throw new ArgumentException("Type " + typeof(T) + " is not supported.")
|
||||
};
|
||||
}
|
||||
set
|
||||
{
|
||||
switch (value)
|
||||
{
|
||||
case bool v:
|
||||
EditorPrefs.SetBool(key, v);
|
||||
break;
|
||||
case float v:
|
||||
EditorPrefs.SetFloat(key, v);
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentException("Type " + typeof(T) + " is not supported.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public EditorPrefValue(string key, T initialValue = default)
|
||||
{
|
||||
this.key = key;
|
||||
this.initialValue = initialValue;
|
||||
}
|
||||
|
||||
public static implicit operator T(EditorPrefValue<T> value)
|
||||
{
|
||||
return value.Value;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6654bb5e80e849c999172d15fba0797d
|
||||
timeCreated: 1751272512
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 78464
|
||||
packageName: Translucent Image - Fast UI Background Blur
|
||||
packageVersion: 6.5.0
|
||||
assetPath: Assets/Le Tai's Asset/Common/Editor/EditorPrefValue.cs
|
||||
uploadId: 824068
|
||||
@@ -1,96 +0,0 @@
|
||||
using System;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace LeTai.Common.Editor
|
||||
{
|
||||
public class EditorProperty
|
||||
{
|
||||
public readonly SerializedProperty serializedProperty;
|
||||
|
||||
readonly SerializedObject serializedObject;
|
||||
readonly MethodInfo propertySetter;
|
||||
readonly SerializedProperty dirtyFlag;
|
||||
|
||||
public EditorProperty(SerializedObject obj, string name, string serializedName = null)
|
||||
{
|
||||
serializedObject = obj;
|
||||
serializedProperty = FindPropertyByName(serializedObject, name);
|
||||
propertySetter = serializedObject.targetObject.GetType().GetProperty(name).SetMethod;
|
||||
dirtyFlag = serializedObject.FindProperty("modifiedFromInspector");
|
||||
}
|
||||
|
||||
static SerializedProperty FindPropertyByName(SerializedObject obj, string name)
|
||||
{
|
||||
var sb = new StringBuilder(name.Length + 1);
|
||||
var lower = sb.Append(char.ToLowerInvariant(name[0])).Append(name[1..]).ToString();
|
||||
var property = obj.FindProperty(lower);
|
||||
if (property != null)
|
||||
return property;
|
||||
|
||||
sb.Clear();
|
||||
property = obj.FindProperty(sb.Append('_').Append(lower).ToString());
|
||||
if (property != null)
|
||||
return property;
|
||||
|
||||
throw new ArgumentException($"Can't automatically find serialized name for property {name} in {obj.targetObject.GetType()}");
|
||||
}
|
||||
|
||||
public void Draw(params GUILayoutOption[] options)
|
||||
{
|
||||
using (var scope = new EditorGUI.ChangeCheckScope())
|
||||
{
|
||||
EditorGUILayout.PropertyField(serializedProperty, options);
|
||||
|
||||
if (!scope.changed)
|
||||
return;
|
||||
|
||||
if (dirtyFlag != null)
|
||||
dirtyFlag.boolValue = true;
|
||||
|
||||
serializedObject.ApplyModifiedProperties();
|
||||
|
||||
if (serializedProperty.propertyType != SerializedPropertyType.Generic) // Not needed for now
|
||||
{
|
||||
var propertyValue = GetPropertyValue();
|
||||
CallSetters(propertyValue);
|
||||
}
|
||||
|
||||
// In case the setter changes any serialized data
|
||||
serializedObject.Update();
|
||||
}
|
||||
}
|
||||
|
||||
public void CallSetters(object value)
|
||||
{
|
||||
foreach (var target in serializedObject.targetObjects)
|
||||
propertySetter.Invoke(target, new[] { value });
|
||||
}
|
||||
|
||||
object GetPropertyValue()
|
||||
{
|
||||
switch (serializedProperty.propertyType)
|
||||
{
|
||||
case SerializedPropertyType.ObjectReference:
|
||||
return serializedProperty.objectReferenceValue;
|
||||
case SerializedPropertyType.Float:
|
||||
return serializedProperty.floatValue;
|
||||
case SerializedPropertyType.Integer:
|
||||
return serializedProperty.intValue;
|
||||
case SerializedPropertyType.Rect:
|
||||
return serializedProperty.rectValue;
|
||||
case SerializedPropertyType.Enum:
|
||||
return serializedProperty.enumValueIndex;
|
||||
case SerializedPropertyType.Boolean:
|
||||
return serializedProperty.boolValue;
|
||||
case SerializedPropertyType.Color:
|
||||
return serializedProperty.colorValue;
|
||||
case SerializedPropertyType.Vector2:
|
||||
return serializedProperty.vector2Value;
|
||||
default: throw new NotImplementedException($"Type {serializedProperty.propertyType} is not implemented");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,67 +0,0 @@
|
||||
// Copyright (c) Le Loc Tai <leloctai.com> . All rights reserved. Do not redistribute.
|
||||
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using UnityEditor;
|
||||
using UnityEditor.Build;
|
||||
|
||||
namespace LeTai.Common.Editor
|
||||
{
|
||||
public static class EditorUtils
|
||||
{
|
||||
public static List<string> GetDefines(BuildTarget buildTarget = BuildTarget.NoTarget)
|
||||
{
|
||||
if (buildTarget == BuildTarget.NoTarget)
|
||||
buildTarget = EditorUserBuildSettings.activeBuildTarget;
|
||||
|
||||
var currentGroup = BuildPipeline.GetBuildTargetGroup(buildTarget);
|
||||
string definesStr;
|
||||
#if UNITY_2021_2_OR_NEWER
|
||||
var namedBuildTarget = NamedBuildTarget.FromBuildTargetGroup(currentGroup);
|
||||
definesStr = PlayerSettings.GetScriptingDefineSymbols(namedBuildTarget);
|
||||
#else
|
||||
definesStr = PlayerSettings.GetScriptingDefineSymbolsForGroup(currentGroup);
|
||||
#endif
|
||||
return definesStr.Split(';').ToList();
|
||||
}
|
||||
|
||||
public static void SetDefines(IEnumerable<string> defines, BuildTarget buildTarget = BuildTarget.NoTarget)
|
||||
{
|
||||
if (buildTarget == BuildTarget.NoTarget)
|
||||
buildTarget = EditorUserBuildSettings.activeBuildTarget;
|
||||
|
||||
var newDefinesStr = string.Join(";", defines);
|
||||
|
||||
var currentGroup = BuildPipeline.GetBuildTargetGroup(buildTarget);
|
||||
#if UNITY_2021_2_OR_NEWER
|
||||
var namedBuildTarget = NamedBuildTarget.FromBuildTargetGroup(currentGroup);
|
||||
PlayerSettings.SetScriptingDefineSymbols(namedBuildTarget, newDefinesStr);
|
||||
#else
|
||||
PlayerSettings.SetScriptingDefineSymbolsForGroup(currentGroup, newDefinesStr);
|
||||
#endif
|
||||
}
|
||||
|
||||
public static void AddDefines(HashSet<string> toAdd, BuildTarget buildTarget = BuildTarget.NoTarget)
|
||||
{
|
||||
if (buildTarget == BuildTarget.NoTarget)
|
||||
buildTarget = EditorUserBuildSettings.activeBuildTarget;
|
||||
|
||||
var defines = GetDefines(buildTarget);
|
||||
var missing = toAdd.Except(defines).ToList();
|
||||
defines.AddRange(missing);
|
||||
if (missing.Count > 0)
|
||||
SetDefines(defines, buildTarget);
|
||||
}
|
||||
|
||||
public static void RemoveDefines(HashSet<string> toRemove, BuildTarget buildTarget = BuildTarget.NoTarget)
|
||||
{
|
||||
if (buildTarget == BuildTarget.NoTarget)
|
||||
buildTarget = EditorUserBuildSettings.activeBuildTarget;
|
||||
|
||||
var defines = GetDefines(buildTarget);
|
||||
var removed = defines.Except(toRemove).ToList();
|
||||
if (removed.Count < defines.Count)
|
||||
SetDefines(removed, buildTarget);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cead91eb2ca046498697087e0c426513
|
||||
timeCreated: 1751099123
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 78464
|
||||
packageName: Translucent Image - Fast UI Background Blur
|
||||
packageVersion: 6.5.0
|
||||
assetPath: Assets/Le Tai's Asset/Common/Editor/EditorUtils.cs
|
||||
uploadId: 824068
|
||||
@@ -1,114 +0,0 @@
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
using EGU = UnityEditor.EditorGUIUtility;
|
||||
|
||||
namespace LeTai.Common.Editor
|
||||
{
|
||||
public static class EditorGUICustom
|
||||
{
|
||||
static readonly Texture2D KNOB_BG_TEXTURE = Assets.Find<Texture2D>("Knob_BG");
|
||||
static readonly Texture2D KNOB_FG_TEXTURE = Assets.Find<Texture2D>("Knob_FG");
|
||||
|
||||
static readonly Color KNOB_BG_COLOR;
|
||||
static readonly Color KNOB_FG_COLOR;
|
||||
static readonly Color KNOB_FG_COLOR_ACTIVE;
|
||||
|
||||
static EditorGUICustom()
|
||||
{
|
||||
if (EGU.isProSkin)
|
||||
{
|
||||
KNOB_BG_COLOR = new Color(.164f, .164f, .164f);
|
||||
KNOB_FG_COLOR = new Color(.701f, .701f, .701f);
|
||||
KNOB_FG_COLOR_ACTIVE = new Color(.49f, .67f, .94f);
|
||||
}
|
||||
else
|
||||
{
|
||||
KNOB_BG_COLOR = new Color(.941f, .941f, .941f);
|
||||
KNOB_FG_COLOR = new Color(.239f, .239f, .239f);
|
||||
KNOB_FG_COLOR_ACTIVE = new Color(.054f, .274f, .549f);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static float KnobField(GUIContent label, float angle, Vector2 zeroVector, float height = 0)
|
||||
{
|
||||
if (height <= 0)
|
||||
height = EGU.singleLineHeight * 1.3f;
|
||||
float knobSize = height + EGU.standardVerticalSpacing * (4 - 1);
|
||||
float knobYOffset = (height - knobSize) / 2;
|
||||
|
||||
Rect rect = EditorGUILayout.GetControlRect(true, height);
|
||||
|
||||
var labelRect = new Rect(rect) {
|
||||
y = rect.y + (height - EGU.singleLineHeight) / 2,
|
||||
height = EGU.singleLineHeight
|
||||
};
|
||||
|
||||
var oldLabelWidth = EGU.labelWidth;
|
||||
EGU.labelWidth -= height;
|
||||
|
||||
int fieldId = GUIUtility.GetControlID(FocusType.Keyboard, labelRect);
|
||||
var fieldRect = EditorGUI.PrefixLabel(labelRect, fieldId, label);
|
||||
labelRect.xMax = fieldRect.x;
|
||||
fieldRect.x += height;
|
||||
fieldRect.width -= height;
|
||||
|
||||
Rect knobRect = new Rect(rect.x + EGU.labelWidth + knobYOffset,
|
||||
rect.y + knobYOffset,
|
||||
knobSize, knobSize);
|
||||
|
||||
angle = Knob(knobRect, angle, zeroVector);
|
||||
angle = EditorInternal.DoFloatFieldInternal(fieldRect, labelRect, fieldId, angle);
|
||||
|
||||
EGU.labelWidth = oldLabelWidth;
|
||||
|
||||
return angle;
|
||||
}
|
||||
|
||||
public static float Knob(Rect position, float angle, Vector2 zeroVector)
|
||||
{
|
||||
int controlID = GUIUtility.GetControlID(FocusType.Passive, position);
|
||||
|
||||
if (Event.current != null)
|
||||
{
|
||||
if (Event.current.type == EventType.MouseDown && position.Contains(Event.current.mousePosition))
|
||||
{
|
||||
GUIUtility.hotControl = controlID;
|
||||
|
||||
var dir = (Event.current.mousePosition - position.center).normalized;
|
||||
angle = MathCustom.VecToAngle360(zeroVector, dir);
|
||||
|
||||
GUI.changed = true;
|
||||
}
|
||||
else if (Event.current.type == EventType.MouseUp && GUIUtility.hotControl == controlID)
|
||||
{
|
||||
GUIUtility.hotControl = 0;
|
||||
}
|
||||
else if (Event.current.type == EventType.MouseDrag && GUIUtility.hotControl == controlID)
|
||||
{
|
||||
var dir = (Event.current.mousePosition - position.center).normalized;
|
||||
angle = MathCustom.VecToAngle360(zeroVector, dir);
|
||||
|
||||
GUI.changed = true;
|
||||
}
|
||||
else if (Event.current.type == EventType.Repaint)
|
||||
{
|
||||
var notRotated = GUI.matrix;
|
||||
var oldColor = GUI.color;
|
||||
var highlighted = GUIUtility.hotControl == controlID;
|
||||
|
||||
GUIUtility.RotateAroundPivot(angle, position.center);
|
||||
GUI.color = KNOB_BG_COLOR;
|
||||
GUI.DrawTexture(position, KNOB_BG_TEXTURE, ScaleMode.ScaleToFit, true, 1);
|
||||
GUI.color = highlighted ? KNOB_FG_COLOR_ACTIVE : KNOB_FG_COLOR;
|
||||
GUI.DrawTexture(position, KNOB_FG_TEXTURE, ScaleMode.ScaleToFit, true, 1);
|
||||
|
||||
GUI.matrix = notRotated;
|
||||
GUI.color = oldColor;
|
||||
}
|
||||
}
|
||||
|
||||
return angle;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
{
|
||||
"name": "LeTai.Common.Editor",
|
||||
"rootNamespace": "LeTai.Common.Editor",
|
||||
"references": ["GUID:07cd4d3e8f0583542ab74e7b8b032f7e"],
|
||||
"includePlatforms": [
|
||||
"Editor"
|
||||
],
|
||||
"excludePlatforms": [],
|
||||
"allowUnsafeCode": false,
|
||||
"overrideReferences": false,
|
||||
"precompiledReferences": [],
|
||||
"autoReferenced": true,
|
||||
"defineConstraints": [],
|
||||
"versionDefines": [],
|
||||
"noEngineReferences": false
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6329229812871a6488deb623f659955b
|
||||
AssemblyDefinitionImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 78464
|
||||
packageName: Translucent Image - Fast UI Background Blur
|
||||
packageVersion: 6.5.0
|
||||
assetPath: Assets/Le Tai's Asset/Common/Editor/LeTai.Common.Editor.asmdef
|
||||
uploadId: 824068
|
||||
@@ -1,24 +0,0 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace LeTai.Common.Editor
|
||||
{
|
||||
public static class MathCustom
|
||||
{
|
||||
public static float VecToAngle360(Vector2 from, Vector2 to)
|
||||
{
|
||||
float angle = Vector2.SignedAngle(from, to);
|
||||
return angle < 0 ? 360 + angle : angle;
|
||||
}
|
||||
|
||||
public static Vector2 Angle360ToVec(float angle, Vector2 zeroVector)
|
||||
{
|
||||
float sin = Mathf.Sin(angle * Mathf.Deg2Rad);
|
||||
float cos = Mathf.Cos(angle * Mathf.Deg2Rad);
|
||||
|
||||
return new Vector2(
|
||||
zeroVector.x * cos - zeroVector.y * sin,
|
||||
zeroVector.x * sin + zeroVector.y * cos
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cd2f496da54e4254ac9c1b0ca2e76fb1
|
||||
timeCreated: 1695714616
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 78464
|
||||
packageName: Translucent Image - Fast UI Background Blur
|
||||
packageVersion: 6.5.0
|
||||
assetPath: Assets/Le Tai's Asset/Common/Editor/MathCustom.cs
|
||||
uploadId: 824068
|
||||
@@ -1,52 +0,0 @@
|
||||
// Copyright (c) Le Loc Tai <leloctai.com> . All rights reserved. Do not redistribute.
|
||||
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace LeTai.Common.Editor
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(TinyTween.Spring))]
|
||||
public class SpringDrawer : PropertyDrawer
|
||||
{
|
||||
public override float GetPropertyHeight(SerializedProperty property, GUIContent label)
|
||||
{
|
||||
return EditorGUIUtility.singleLineHeight * 2 + EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
|
||||
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
|
||||
{
|
||||
EditorGUI.BeginProperty(position, label, property);
|
||||
|
||||
SerializedProperty approxDurationProp = property.FindPropertyRelative(nameof(TinyTween.Spring.approxDuration));
|
||||
SerializedProperty overshootProp = property.FindPropertyRelative(nameof(TinyTween.Spring.overshoot));
|
||||
SerializedProperty stiffnessProp = property.FindPropertyRelative(nameof(TinyTween.Spring.stiffness));
|
||||
SerializedProperty dampingProp = property.FindPropertyRelative(nameof(TinyTween.Spring.damping));
|
||||
|
||||
position = EditorGUI.PrefixLabel(position, label);
|
||||
|
||||
using var _ = new EditorCustom.LabelWidthScope(64f);
|
||||
using var changes = new EditorGUI.ChangeCheckScope();
|
||||
|
||||
float lineHeight = EditorGUIUtility.singleLineHeight;
|
||||
Rect durationRect = new Rect(position.x, position.y,
|
||||
position.width, lineHeight);
|
||||
Rect overshootRect = new Rect(position.x, position.y + lineHeight + EditorGUIUtility.standardVerticalSpacing,
|
||||
position.width, lineHeight);
|
||||
|
||||
float approxDuration = EditorGUI.FloatField(durationRect, "Duration", approxDurationProp.floatValue);
|
||||
float overshoot = EditorGUI.Slider(overshootRect, "Overshoot", overshootProp.floatValue, 0, .5f);
|
||||
|
||||
if (changes.changed)
|
||||
{
|
||||
TinyTween.Spring s = TinyTween.Spring.DurationOvershoot(approxDuration, overshoot);
|
||||
|
||||
approxDurationProp.floatValue = s.approxDuration;
|
||||
overshootProp.floatValue = s.overshoot;
|
||||
stiffnessProp.floatValue = s.stiffness;
|
||||
dampingProp.floatValue = s.damping;
|
||||
}
|
||||
|
||||
EditorGUI.EndProperty();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 03b5046c644a48e8a2078a44033e85d0
|
||||
timeCreated: 1754471011
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 78464
|
||||
packageName: Translucent Image - Fast UI Background Blur
|
||||
packageVersion: 6.5.0
|
||||
assetPath: Assets/Le Tai's Asset/Common/Editor/SpringPropertyDrawer.cs
|
||||
uploadId: 824068
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
"name": "LeTai.Common",
|
||||
"rootNamespace": "LeTai.Common",
|
||||
"references": [],
|
||||
"includePlatforms": [],
|
||||
"excludePlatforms": [],
|
||||
"allowUnsafeCode": false,
|
||||
"overrideReferences": false,
|
||||
"precompiledReferences": [],
|
||||
"autoReferenced": true,
|
||||
"defineConstraints": [],
|
||||
"versionDefines": [],
|
||||
"noEngineReferences": false
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 07cd4d3e8f0583542ab74e7b8b032f7e
|
||||
AssemblyDefinitionImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 78464
|
||||
packageName: Translucent Image - Fast UI Background Blur
|
||||
packageVersion: 6.5.0
|
||||
assetPath: Assets/Le Tai's Asset/Common/Runtime/LeTai.Common.asmdef
|
||||
uploadId: 824068
|
||||
@@ -1,37 +0,0 @@
|
||||
// Copyright (c) Le Loc Tai <leloctai.com> . All rights reserved. Do not redistribute.
|
||||
|
||||
using System.Runtime.CompilerServices;
|
||||
using UnityEngine;
|
||||
|
||||
namespace LeTai.Common
|
||||
{
|
||||
public static class MaterialUtils
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static void SetKeyword(Material mat, string keyword, bool isOn)
|
||||
{
|
||||
if (isOn)
|
||||
mat.EnableKeyword(keyword);
|
||||
else
|
||||
mat.DisableKeyword(keyword);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static void CopyKeyword(Material src, Material dst, string keyword)
|
||||
{
|
||||
SetKeyword(dst, keyword, src.IsKeywordEnabled(keyword));
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static void CopyFloat(Material src, Material dst, int id)
|
||||
{
|
||||
dst.SetFloat(id, src.GetFloat(id));
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static void CopyVector(Material src, Material dst, int id)
|
||||
{
|
||||
dst.SetVector(id, src.GetVector(id));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7a120429bba141f3be27a147bcf46023
|
||||
timeCreated: 1752050295
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 78464
|
||||
packageName: Translucent Image - Fast UI Background Blur
|
||||
packageVersion: 6.5.0
|
||||
assetPath: Assets/Le Tai's Asset/Common/Runtime/MaterialUtils.cs
|
||||
uploadId: 824068
|
||||
@@ -1,111 +0,0 @@
|
||||
// Copyright (c) Le Loc Tai <leloctai.com> . All rights reserved. Do not redistribute.
|
||||
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using UnityEngine;
|
||||
|
||||
namespace LeTai.Common
|
||||
{
|
||||
public static class Packing
|
||||
{
|
||||
/// <summary>
|
||||
/// Packs floats into a single float, using up to 30 bits.
|
||||
/// The mapping guarantees the resulting float is not NaN, Inf, or subnormal.
|
||||
/// </summary>
|
||||
public readonly struct FloatPacker
|
||||
{
|
||||
private readonly int _bitsPerFloat;
|
||||
|
||||
private readonly uint _payload;
|
||||
private readonly int _nBitsUsed;
|
||||
|
||||
private FloatPacker(uint payload, int nBitsUsed, int bitsPerFloat)
|
||||
{
|
||||
_payload = payload;
|
||||
_nBitsUsed = nBitsUsed;
|
||||
_bitsPerFloat = bitsPerFloat;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static FloatPacker Varying() => new FloatPacker(0u, 0, 0);
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static FloatPacker Uniform(int bitsPerFloat) => new FloatPacker(0u, 0, bitsPerFloat);
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public FloatPacker Enqueue(float value, float min, float max, int nBits)
|
||||
{
|
||||
if (nBits == 0)
|
||||
throw new ArgumentException($"Use {nameof(Uniform)} or specify {nameof(nBits)}");
|
||||
|
||||
uint q = Quantize(value, min, max, nBits);
|
||||
return new FloatPacker((q << _nBitsUsed) | _payload, _nBitsUsed + nBits, _bitsPerFloat);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public FloatPacker Enqueue(float value, float min, float max) => Enqueue(value, min, max, _bitsPerFloat);
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public FloatPacker Enqueue(float value, float max) => Enqueue(value, 0, max, _bitsPerFloat);
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public float Finish()
|
||||
{
|
||||
if (_nBitsUsed > 30)
|
||||
throw new ArgumentOutOfRangeException(nameof(_nBitsUsed), $"Must use <= 30 bits. Requesting {_nBitsUsed} bits");
|
||||
|
||||
uint bits = EnsureNormalFloatExponent(_payload);
|
||||
return UintToFloatBits(bits);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static implicit operator float(FloatPacker packer) => packer.Finish();
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Packs floats into a single float, using up to 30 bits.
|
||||
/// The mapping guarantees the resulting float is not NaN, Inf, or subnormal.
|
||||
/// </summary>
|
||||
public static float PackFloatsSafe(
|
||||
float a, float minA, float maxA, int nBitsA,
|
||||
float b, float minB, float maxB, int nBitsB
|
||||
)
|
||||
{
|
||||
if (nBitsA + nBitsB > 30)
|
||||
throw new ArgumentOutOfRangeException(nameof(nBitsA), $"{nameof(nBitsA)} + {nameof(nBitsB)} must be <= 30");
|
||||
|
||||
uint aQuantized = Quantize(a, minA, maxA, nBitsA);
|
||||
uint bQuantized = Quantize(b, minB, maxB, nBitsB);
|
||||
|
||||
uint payload = (aQuantized << nBitsB) | bQuantized; // [0, (1u << 30) - 1]
|
||||
uint bits = EnsureNormalFloatExponent(payload);
|
||||
|
||||
return UintToFloatBits(bits);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static uint Quantize(float x, float min, float max, int nBits)
|
||||
{
|
||||
// Not checking positive range for speed.
|
||||
float normalized = Mathf.Clamp((x - min) / (max - min), 0f, 1f);
|
||||
uint maxQuantized = (1u << nBits) - 1u;
|
||||
return (uint)(normalized * maxQuantized + 0.5f);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
private static uint EnsureNormalFloatExponent(uint bits)
|
||||
{
|
||||
uint exponent = (bits >> 23) + 1;
|
||||
uint mantissa = bits & 0x7FFFFFu;
|
||||
return (exponent << 23) | mantissa;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static float UintToFloatBits(uint bits)
|
||||
{
|
||||
byte[] bytes = BitConverter.GetBytes(bits);
|
||||
return BitConverter.ToSingle(bytes, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0f7cb69b8d944a1b9553e8795472f6e1
|
||||
timeCreated: 1750649405
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 78464
|
||||
packageName: Translucent Image - Fast UI Background Blur
|
||||
packageVersion: 6.5.0
|
||||
assetPath: Assets/Le Tai's Asset/Common/Runtime/Packing.cs
|
||||
uploadId: 824068
|
||||
@@ -1,44 +0,0 @@
|
||||
// Copyright (c) Le Loc Tai <leloctai.com> . All rights reserved. Do not redistribute.
|
||||
|
||||
using UnityEngine;
|
||||
|
||||
namespace LeTai.Common
|
||||
{
|
||||
public static class RectTransformUtilityPatch
|
||||
{
|
||||
public static Ray ScreenPointToRay(Camera cam, Vector2 screenPos)
|
||||
{
|
||||
if (cam != null)
|
||||
return cam.ScreenPointToRay(screenPos);
|
||||
|
||||
Vector3 pos = screenPos;
|
||||
pos.z -= 1e4f; // Larger offset to account for rotation
|
||||
return new Ray(pos, Vector3.forward);
|
||||
}
|
||||
|
||||
public static bool ScreenPointToWorldPointInRectangle(RectTransform rect, Vector2 screenPoint, Camera cam, out Vector3 worldPoint)
|
||||
{
|
||||
worldPoint = Vector2.zero;
|
||||
Ray ray = ScreenPointToRay(cam, screenPoint);
|
||||
var plane = new Plane(rect.rotation * Vector3.back, rect.position);
|
||||
|
||||
// Remove unnecessary parallel check
|
||||
if (!plane.Raycast(ray, out var dist))
|
||||
return false;
|
||||
|
||||
worldPoint = ray.GetPoint(dist);
|
||||
return true;
|
||||
}
|
||||
|
||||
public static bool ScreenPointToLocalPointInRectangle(RectTransform rect, Vector2 screenPoint, Camera cam, out Vector2 localPoint)
|
||||
{
|
||||
localPoint = Vector2.zero;
|
||||
if (ScreenPointToWorldPointInRectangle(rect, screenPoint, cam, out Vector3 worldPoint))
|
||||
{
|
||||
localPoint = rect.InverseTransformPoint(worldPoint);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f995fa15a6db4214a82ce742668df43c
|
||||
timeCreated: 1752649074
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 78464
|
||||
packageName: Translucent Image - Fast UI Background Blur
|
||||
packageVersion: 6.5.0
|
||||
assetPath: Assets/Le Tai's Asset/Common/Runtime/RectTransformUtility.cs
|
||||
uploadId: 824068
|
||||
@@ -1,45 +0,0 @@
|
||||
// Copyright (c) Le Loc Tai <leloctai.com> . All rights reserved. Do not redistribute.
|
||||
|
||||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
namespace LeTai.Common
|
||||
{
|
||||
public static class SpanUtils
|
||||
{
|
||||
public static Vector4 ToVector4(ReadOnlySpan<float> span)
|
||||
{
|
||||
return new Vector4(span[0], span[1], span[2], span[3]);
|
||||
}
|
||||
|
||||
public static SpanWriter<T> WriterFor<T>(Span<T> span) => new(span);
|
||||
}
|
||||
|
||||
public ref struct SpanWriter<T>
|
||||
{
|
||||
readonly Span<T> _span;
|
||||
int _nextIndex;
|
||||
|
||||
public SpanWriter(Span<T> span)
|
||||
{
|
||||
_span = span;
|
||||
_nextIndex = 0;
|
||||
}
|
||||
|
||||
public void Reset() => _nextIndex = 0;
|
||||
|
||||
public void Write(T value)
|
||||
{
|
||||
_span[_nextIndex++] = value;
|
||||
}
|
||||
|
||||
public void FillRest(T value = default)
|
||||
{
|
||||
if (_nextIndex == _span.Length)
|
||||
return;
|
||||
|
||||
_span[_nextIndex..].Fill(value);
|
||||
_nextIndex = _span.Length;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f5ce123a774b475b90b9794e77ef7e20
|
||||
timeCreated: 1758619324
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 78464
|
||||
packageName: Translucent Image - Fast UI Background Blur
|
||||
packageVersion: 6.5.0
|
||||
assetPath: Assets/Le Tai's Asset/Common/Runtime/SpanUtils.cs
|
||||
uploadId: 824068
|
||||
@@ -1,245 +0,0 @@
|
||||
// Copyright (c) Le Loc Tai <leloctai.com> . All rights reserved. Do not redistribute.
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace LeTai.Common
|
||||
{
|
||||
public class TinyTween : MonoBehaviour
|
||||
{
|
||||
[Serializable]
|
||||
public struct Spring
|
||||
{
|
||||
public float stiffness;
|
||||
public float damping;
|
||||
public float approxDuration;
|
||||
public float overshoot;
|
||||
|
||||
public static readonly Spring DEFAULT = DurationOvershoot(.5f, .1f);
|
||||
|
||||
private Spring(float stiffness, float damping, float approxDuration, float overshoot)
|
||||
{
|
||||
this.stiffness = stiffness;
|
||||
this.damping = damping;
|
||||
this.approxDuration = approxDuration;
|
||||
this.overshoot = overshoot;
|
||||
}
|
||||
|
||||
public static Spring DurationOvershoot(float approxDuration, float overshoot)
|
||||
{
|
||||
approxDuration = Mathf.Max(0.001f, approxDuration);
|
||||
overshoot = Mathf.Clamp(overshoot, 0f, 0.999f);
|
||||
|
||||
float z;
|
||||
if (overshoot < 1e-3f)
|
||||
{
|
||||
z = 1f;
|
||||
}
|
||||
else
|
||||
{
|
||||
float lnOvershoot = Mathf.Log(overshoot);
|
||||
z = -lnOvershoot / Mathf.Sqrt(Mathf.PI * Mathf.PI + lnOvershoot * lnOvershoot);
|
||||
}
|
||||
|
||||
float wn = 2f * Mathf.PI / approxDuration;
|
||||
wn = -Mathf.Log(2e-3f) / (z * approxDuration);
|
||||
|
||||
float k = wn * wn;
|
||||
float c = 2f * z * wn;
|
||||
|
||||
return new Spring(k, c, approxDuration, overshoot);
|
||||
}
|
||||
}
|
||||
|
||||
private static class Ops<TValue>
|
||||
{
|
||||
public static readonly Func<TValue, TValue, TValue> ADD;
|
||||
public static readonly Func<TValue, TValue, TValue> SUB;
|
||||
public static readonly Func<TValue, float, TValue> MUL;
|
||||
public static readonly Func<TValue, bool> IS_NEAR_ZERO;
|
||||
|
||||
static Ops()
|
||||
{
|
||||
const float threshold = 2e-3f;
|
||||
|
||||
Ops<float>.ADD = (a, b) => a + b;
|
||||
Ops<float>.SUB = (a, b) => a - b;
|
||||
Ops<float>.MUL = (a, s) => a * s;
|
||||
Ops<float>.IS_NEAR_ZERO = v => Mathf.Abs(v) < threshold;
|
||||
|
||||
Ops<Vector2>.ADD = (a, b) => a + b;
|
||||
Ops<Vector2>.SUB = (a, b) => a - b;
|
||||
Ops<Vector2>.MUL = (a, s) => a * s;
|
||||
Ops<Vector2>.IS_NEAR_ZERO = v => v.sqrMagnitude < (threshold * threshold);
|
||||
|
||||
Ops<Vector3>.ADD = (a, b) => a + b;
|
||||
Ops<Vector3>.SUB = (a, b) => a - b;
|
||||
Ops<Vector3>.MUL = (a, s) => a * s;
|
||||
Ops<Vector3>.IS_NEAR_ZERO = v => v.sqrMagnitude < (threshold * threshold);
|
||||
|
||||
Ops<Color>.ADD = (a, b) => a + b;
|
||||
Ops<Color>.SUB = (a, b) => a - b;
|
||||
Ops<Color>.MUL = (a, s) => a * s;
|
||||
Ops<Color>.IS_NEAR_ZERO = c => (c.r * c.r + c.g * c.g + c.b * c.b + c.a * c.a) < (threshold * threshold);
|
||||
}
|
||||
}
|
||||
|
||||
private static class Ops
|
||||
{
|
||||
public static T Add<T>(T a, T b) => Ops<T>.ADD(a, b);
|
||||
public static T Sub<T>(T a, T b) => Ops<T>.SUB(a, b);
|
||||
public static T Mul<T>(T a, float s) => Ops<T>.MUL(a, s);
|
||||
public static bool IsNearZero<T>(T v) => Ops<T>.IS_NEAR_ZERO(v);
|
||||
}
|
||||
|
||||
private abstract class Tween
|
||||
{
|
||||
protected Spring spring;
|
||||
|
||||
public abstract bool MaybeRetarget(object newContext, Delegate newOnUpdate, object newTarget);
|
||||
public abstract bool Tick(float dt);
|
||||
public abstract void Reset();
|
||||
}
|
||||
|
||||
private static readonly Dictionary<Type, Stack<Tween>> TWEEN_POOLS = new(16);
|
||||
private static TinyTween instance;
|
||||
|
||||
private readonly List<Tween> _activeTweens = new();
|
||||
|
||||
private class Tween<TCtx, TVal> : Tween where TCtx : class
|
||||
{
|
||||
private TCtx _context;
|
||||
private Action<TCtx, TVal> _onUpdate;
|
||||
private TVal _target;
|
||||
private TVal _current;
|
||||
private TVal _velocity;
|
||||
|
||||
public void Setup(TCtx ctx, TVal from, TVal to, Spring spring, Action<TCtx, TVal> update)
|
||||
{
|
||||
_context = ctx;
|
||||
_onUpdate = update;
|
||||
_target = to;
|
||||
_current = from;
|
||||
_velocity = default;
|
||||
|
||||
this.spring = spring;
|
||||
}
|
||||
|
||||
public override bool MaybeRetarget(object newContext, Delegate newOnUpdate, object newTarget)
|
||||
{
|
||||
if (newTarget is TVal val
|
||||
&& ReferenceEquals(_context, newContext)
|
||||
&& ReferenceEquals(_onUpdate, newOnUpdate))
|
||||
{
|
||||
_target = val;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool Tick(float dt)
|
||||
{
|
||||
if (_context is UnityEngine.Object uc && !uc)
|
||||
return true;
|
||||
if (_context == null)
|
||||
return true;
|
||||
|
||||
TVal force = Ops.Mul(Ops.Sub(_target, _current), spring.stiffness);
|
||||
TVal dampingForce = Ops.Mul(_velocity, spring.damping);
|
||||
TVal acceleration = Ops.Sub(force, dampingForce);
|
||||
_velocity = Ops.Add(_velocity, Ops.Mul(acceleration, dt));
|
||||
_current = Ops.Add(_current, Ops.Mul(_velocity, dt));
|
||||
|
||||
var shouldStop = Ops.IsNearZero(Ops.Sub(_target, _current))
|
||||
&& Ops.IsNearZero(_velocity);
|
||||
|
||||
if (shouldStop)
|
||||
_current = _target;
|
||||
|
||||
try
|
||||
{
|
||||
_onUpdate?.Invoke(_context, _current);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Debug.LogException(e);
|
||||
return true;
|
||||
}
|
||||
|
||||
return shouldStop;
|
||||
}
|
||||
|
||||
public override void Reset()
|
||||
{
|
||||
_context = null;
|
||||
_onUpdate = null;
|
||||
}
|
||||
}
|
||||
|
||||
public static void Animate<TCtx, TVal>(TCtx context, TVal from, TVal to, Action<TCtx, TVal> onUpdate, Spring? spring = null) where TCtx : class
|
||||
{
|
||||
if (!instance)
|
||||
{
|
||||
// ReSharper disable once Unity.PerformanceCriticalCodeInvocation
|
||||
instance = new GameObject("[TinyTween]").AddComponent<TinyTween>();
|
||||
DontDestroyOnLoad(instance.gameObject);
|
||||
}
|
||||
|
||||
for (int i = 0; i < instance._activeTweens.Count; i++)
|
||||
{
|
||||
// ReSharper disable once Unity.PerformanceCriticalCodeInvocation
|
||||
if (instance._activeTweens[i].MaybeRetarget(context, onUpdate, to))
|
||||
return;
|
||||
}
|
||||
|
||||
Tween<TCtx, TVal> newTween = null;
|
||||
Type tweenType = typeof(Tween<TCtx, TVal>);
|
||||
if (TWEEN_POOLS.TryGetValue(tweenType, out var pool) && pool.Count > 0)
|
||||
{
|
||||
newTween = (Tween<TCtx, TVal>)pool.Pop();
|
||||
}
|
||||
|
||||
newTween ??= new Tween<TCtx, TVal>();
|
||||
newTween.Setup(context, from, to, spring ?? Spring.DEFAULT, onUpdate);
|
||||
instance._activeTweens.Add(newTween);
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (_activeTweens.Count == 0) return;
|
||||
|
||||
for (int i = _activeTweens.Count - 1; i >= 0; i--)
|
||||
{
|
||||
var tween = _activeTweens[i];
|
||||
if (tween.Tick(Time.deltaTime))
|
||||
{
|
||||
SwapAndPop(_activeTweens, i);
|
||||
tween.Reset();
|
||||
|
||||
Type tweenType = tween.GetType();
|
||||
if (!TWEEN_POOLS.TryGetValue(tweenType, out var pool))
|
||||
{
|
||||
pool = new Stack<Tween>();
|
||||
TWEEN_POOLS[tweenType] = pool;
|
||||
}
|
||||
pool.Push(tween);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void SwapAndPop<T>(List<T> list, int index)
|
||||
{
|
||||
int last = list.Count - 1;
|
||||
list[index] = list[last];
|
||||
list.RemoveAt(last);
|
||||
}
|
||||
|
||||
public static void Move(RectTransform rt, Vector2 to, Spring? spring = null)
|
||||
{
|
||||
Animate(rt, rt.anchoredPosition, to, MOVE, spring);
|
||||
}
|
||||
|
||||
static readonly Action<RectTransform, Vector3> MOVE = static (rt, pos) => rt.anchoredPosition = pos;
|
||||
}
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ab81ce18ae98496393c4e9021cd90940
|
||||
timeCreated: 1752827241
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 78464
|
||||
packageName: Translucent Image - Fast UI Background Blur
|
||||
packageVersion: 6.5.0
|
||||
assetPath: Assets/Le Tai's Asset/Common/Runtime/TinyTween.cs
|
||||
uploadId: 824068
|
||||
@@ -1,9 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f7d17cc01badd084cb6b9f7806e16fc6
|
||||
folderAsset: yes
|
||||
timeCreated: 1474981563
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,346 +0,0 @@
|
||||
Changelog:
|
||||
|
||||
v6.5.0:
|
||||
- Add selector to swap between multiple Sources on the same Camera
|
||||
- Fix multiple sources not working in URP
|
||||
- Fix editor error when using Source without Config
|
||||
- Improve URP compatibility in certain configurations
|
||||
- Fix demo looking incorrect
|
||||
|
||||
v6.4.1:
|
||||
- Fix compilation error in URP
|
||||
- Fix brightness control not working correctly in gamma space
|
||||
|
||||
v6.4.0:
|
||||
- Finer brightness control at low brightness. You may need to adjust your brightness value to compensate.
|
||||
- Fix dithering artifacts at high blur level
|
||||
- Fix dithering being too visible at low brightness
|
||||
- Fix blur Strength overwriting settings in Advanced mode when not interacted with
|
||||
|
||||
v6.3.0:
|
||||
- Add a shortcut to edit blur strength from Translucent Image
|
||||
- Small bug fixes
|
||||
|
||||
v6.2.2:
|
||||
- Fix True Shadow integration
|
||||
|
||||
v6.2.1:
|
||||
- Fix culling not taking Ring Thickness into account
|
||||
|
||||
v6.2.0:
|
||||
- Paraform: Ring Thickness feature lets you create ring-shaped UIs.
|
||||
|
||||
v6.1.0:
|
||||
- Smoother blur
|
||||
- New blur Modes:
|
||||
- Performance mode costs the same as before while being a little bit smoother.
|
||||
- Balanced mode is extra smooth and costs a bit more.
|
||||
- Balanced is the new default. If you're targeting low-end hardware, consider setting it back to Performance.
|
||||
- Fix blur quality being unstable at different resolution
|
||||
- Fix blur strength not staying constant at different screen density and aspects.
|
||||
This behavior is now configurable, but should not need to be configured in most cases
|
||||
- Fix heap allocation when using Render Graph
|
||||
- Fix minor editor issues
|
||||
|
||||
v6.0.0:
|
||||
!! This is a major release indicating breaking changes !!
|
||||
- The minimum supported Unity version is now 2021.3
|
||||
- New Colorful Background Mode that maintains both background colors and foreground contrasts
|
||||
- Move appearance properties out of material, improving scripting ergonomic, performance, and batching efficiency
|
||||
- Fix dark background being slightly brighter than expected
|
||||
- Improve URP performance. No longer requires CameraColorTexture
|
||||
- No longer dispatch an empty render pass if no Translucent Images are visible
|
||||
- Other minors under the hood fixes and improvements
|
||||
*Migration*
|
||||
- Use Tools > Translucent Image > Migrate to 6.0 to migrate all material settings in the opened scene
|
||||
to the corresponding component. Make sure to have a backup.
|
||||
- Optional: refactor spriteBlending -> foregroundOpacity
|
||||
- Optional: try the new Colorful Background Mode. Appearance properties will need to be adjusted.
|
||||
|
||||
|
||||
v5.5.0:
|
||||
- Display Source's strength in Translucent Image's inspector Source picker to easier distinguish multiple Sources on the same Camera
|
||||
- Fix some inspector values not updating immediately when changing blur config
|
||||
- Fix nullref when destroying Translucent Images at runtime
|
||||
- Fix Skip Culling not working in certain situations
|
||||
- Fix background not working in certain situations
|
||||
|
||||
v5.4.1:
|
||||
- Fix Translucent Images temporarily stop working after undoing material settings
|
||||
- Fix erroneous error logging
|
||||
|
||||
v5.4.0:
|
||||
- Fix demo scene colors
|
||||
|
||||
v5.3.0:
|
||||
- Fix vertex color, such as from mesh effect shadow and outline, not being applied correctly
|
||||
|
||||
v5.2.0:
|
||||
- Reduce banding
|
||||
- Improve default settings
|
||||
- Improve documentation
|
||||
|
||||
v5.1.0:
|
||||
- Increase the minimum supported Unity version to 2020.3 or BiRP and 2021.3 for URP
|
||||
- New Cull Padding setting to account for UI movement while using limited Update Rate
|
||||
- Culling now take into account the Camera's viewport
|
||||
- Support Rect Mask Softness
|
||||
- Support Canvas feature: Vertex Color Always In Gamma Color Space
|
||||
- Fix artifact with certain sprites on hdr background
|
||||
|
||||
v5.0.2:
|
||||
- Fix exception in certain cases
|
||||
|
||||
v5.0.1:
|
||||
- Fix exception in certain cases
|
||||
|
||||
v5.0.0:
|
||||
!! This is a major release indicating breaking changes !!
|
||||
- Culling system minimize GPU usage by only blur part of the screen covered by Translucent Images
|
||||
- Significant improvement to CPU usage for scenes with a large number of Translucent Images
|
||||
- Fix Flatten property not working correctly on dark Images
|
||||
- Update the demo scenes for the Builtin Render Pipeline to be the same as URP
|
||||
- Simpler API for controlling blur strength
|
||||
- Improve compatibility with Unity 6
|
||||
- Other minor fixes and improvements
|
||||
Breaking changes:
|
||||
- Appearance properties on Translucent Image is deprecated. Instead, set these values on the material directly
|
||||
- TranslucentImageSource.Request() is replaced by (Un)RegisterActivePointsProvider() . This is only needed if
|
||||
you access the blurred texture directly.
|
||||
- Extensions methods are moved into helper classes to avoid name collision
|
||||
|
||||
v4.4.2:
|
||||
- Fix blank background in the first frame
|
||||
|
||||
v4.4.1:
|
||||
- Improve compatibility with 2D renderer in Unity 2022
|
||||
- Improve compatibility with Unity 6
|
||||
- Improve editor performance when using URP
|
||||
|
||||
v4.4.0:
|
||||
- More stable blur Strength calculation
|
||||
- Fix compilation error in very old 2021.3 patch releases
|
||||
- Fix error when using extremely large blur
|
||||
- Remove Max Depth property
|
||||
- Under the hood changes to prepare for 2023.3 URP
|
||||
|
||||
v4.3.0:
|
||||
This is a re-release of the 4.1.0 release with hopefully less bugs.
|
||||
- Preparation to support Unity 2023.3 URP
|
||||
- Bug fixes
|
||||
|
||||
v4.2.0:
|
||||
- Temporarily rollback 4.1.0 due to bugs
|
||||
|
||||
v4.1.0:
|
||||
- Preparation to support Unity 2023.3 URP
|
||||
- Fix spurious warning
|
||||
|
||||
v4.0.1:
|
||||
- Fix issue in build
|
||||
|
||||
v4.0.0:
|
||||
This is a major version bump signifying breaking changes.
|
||||
Make sure you have your project committed to version control before upgrading
|
||||
|
||||
- Automatically pause blurring when there are no Translucent Images active
|
||||
- Allow filling the black void when using VR Passthrough and Underlay with a custom color
|
||||
- Improves prefab support
|
||||
- Other under-the-hood improvements
|
||||
|
||||
v3.18.0:
|
||||
- Improve support for newer versions of 2D Renderer
|
||||
- Add workaround for buggy URP versions
|
||||
- Blit mode selection is now completely automatic
|
||||
|
||||
v3.17.0:
|
||||
- Restore support for the URP 2D Renderer in newer Unity versions
|
||||
|
||||
v3.16.2:
|
||||
- Fix incorrect warning when used with True Shadow
|
||||
|
||||
v3.16.1:
|
||||
- Improve compatibility with Unity 2023
|
||||
|
||||
v3.16.0:
|
||||
- Fix incorrect rendering when using non default viewport in URP.
|
||||
As a result of this change, Blur Region is now relative to the actual viewport, instead of the one show in the Camera inspector. You may need to re-tune your Blur Region.
|
||||
|
||||
v3.15.0:
|
||||
- Fix color space mixed up. Your UIs appearance may change after this update.
|
||||
|
||||
v3.14.6:
|
||||
- Fix compatibility with 2021.3.13 URP
|
||||
|
||||
v3.14.5:
|
||||
- Fix editor script being included in build
|
||||
- Reorder create asset menu
|
||||
|
||||
v3.14.4:
|
||||
- Fix phantom windows again
|
||||
|
||||
v3.14.3:
|
||||
- Fix phantom windows in some Unity versions
|
||||
|
||||
v3.14.2:
|
||||
- Warn if Renderer Feature is missing in URP project
|
||||
|
||||
v3.14.1:
|
||||
- Fix some gizmo icons not showing in newer Unity versions
|
||||
|
||||
v3.14.0:
|
||||
- Improve compatibility with URP 13
|
||||
|
||||
v3.13.0:
|
||||
- Drop support for URP's 2D Renderer. It is too locked down and buggy at the moment
|
||||
|
||||
v3.12.0:
|
||||
- Improve compatibility with URP 12.1.7
|
||||
|
||||
v3.11.0:
|
||||
- Allow rendering before post-processing to work-around URP 2D renderer issue.
|
||||
|
||||
v3.10.3:
|
||||
- Fix shader compilation on GLES 2.0
|
||||
|
||||
v3.10.2:
|
||||
- Fix sprite blending property not applied correctly
|
||||
|
||||
v3.10.1:
|
||||
- Improve allocation behaviour
|
||||
|
||||
v3.10.0:
|
||||
- Fix Single Pass Instanced Stereo rendering
|
||||
|
||||
v3.9.0:
|
||||
- Improve error logging to be more relevant
|
||||
- Assigning Source property on Translucent Image is now easier with automatic suggestions
|
||||
- Fix compatibility with webgl in less capable browsers
|
||||
- Improve compatibility with URP 12.1.2
|
||||
|
||||
v3.8.3:
|
||||
- Workflow improvements on URP 12
|
||||
|
||||
v3.8.2:
|
||||
- Fix some bugs on URP 12
|
||||
|
||||
v3.8.1:
|
||||
- Fix some bugs on URP 12
|
||||
|
||||
v3.8.0:
|
||||
- Support URP 12
|
||||
- Fix prefab mode warning
|
||||
|
||||
v3.7.0:
|
||||
- Support latest True Shadow release
|
||||
- Fix spurious error messages
|
||||
- Improve PlayStation compatibility
|
||||
|
||||
v3.6.0:
|
||||
- Support Single Pass Instanced Stereo Render Mode
|
||||
- Reduce log level
|
||||
|
||||
v3.5.1:
|
||||
- Reduce error logging.
|
||||
- Improve compatibility with Addressable.
|
||||
|
||||
v3.5.0:
|
||||
- Changing Sprite Blending from script is now applied immediately.
|
||||
TranslucentImage.spriteBlending is now a property instead of a field.
|
||||
- You can now move the asset to a different path
|
||||
|
||||
v3.4.2:
|
||||
- Fix blur config not saved
|
||||
- Fix prefab instance not marked dirty
|
||||
|
||||
v3.4.1:
|
||||
- Improve documentation
|
||||
|
||||
v3.4.0:
|
||||
URP:
|
||||
- Remove slow workaround for Unity bugs #1196219. Please update your URP package to 7.2.0 or newer.
|
||||
- Downsampling and Blur Region now work with URP.
|
||||
|
||||
- Various fixes and optimizations.
|
||||
|
||||
v3.3.1:
|
||||
- True Shadow integration: Fix shadow color not react correctly to Translucent Image color
|
||||
|
||||
v3.3.0:
|
||||
Breaking changes:
|
||||
- Upgraded to Unity 2019.4
|
||||
- Remove deprecated LWRP package. URP continue to be supported.
|
||||
|
||||
- Translucent Image is now compatible with True Shadow.
|
||||
|
||||
v3.2.4:
|
||||
- Fix memory leak when Translucent Image Source are destroyed.
|
||||
|
||||
v3.2.3:
|
||||
- Example scene for blurring UI in URP
|
||||
|
||||
v3.2.2:
|
||||
- Fix preview features sometime not work in URP
|
||||
- Fix persistent black UI when not in play mode
|
||||
- Hide some harmless errors in demo scene
|
||||
- Fix RegisterSource() throw exception
|
||||
- Some other small changes
|
||||
|
||||
v3.2.1:
|
||||
- Convert Image to Translucent Image with context menu item
|
||||
- Some small fixes and enhancements
|
||||
|
||||
v3.2.0:
|
||||
Breaking changes: existing projects with Editor/Runtime version lower than these should not install this update.
|
||||
- Upgraded to Unity 2018.4 to follow new Asset Store requirements
|
||||
- Upgraded to .NET 4.x Equivalent Runtime, as .NET 3.5 is deprecated in Unity 2018
|
||||
|
||||
- Blur Region now can be controlled using on-screen GUI in the Game View when in Preview mode
|
||||
- Help button on components now open appropriated documentation page
|
||||
- Fix an issue with non fullscreen Camera Viewport Rect
|
||||
- Fix missing namespace in some demo scripts
|
||||
|
||||
v3.1.1:
|
||||
- Fix issue with URP Post Processing
|
||||
|
||||
v3.1.0:
|
||||
*** Breaking change for LWRP project ***
|
||||
- If you're using the asset in an existing LWRP project, please delete its folder first and import it again to avoid issue.
|
||||
- If you're using the "Demo Forward Renderer" and "Demo LightweightRenderPipelineAsset", you'll have to replace them with the new one located in "Universal RP/'Configs" folder. I recommend creating your own, specific to your project.
|
||||
***
|
||||
|
||||
- Added Universal RP support. LWRP support package is included for compatibility with older Unity version, but will not be updated anymore.
|
||||
- Fix some small bugs.
|
||||
|
||||
v3.0.5:
|
||||
- Added demo and documentation for setting up Translucent Images in world space.
|
||||
- Disable scene gizmos.
|
||||
|
||||
v3.0.4:
|
||||
- Better default file name when creating Blur Config from Translucent Image Source.
|
||||
- Some improvement to error messages
|
||||
|
||||
v3.0.3:
|
||||
- Fixed some bugs in demo scene
|
||||
|
||||
v3.0.2:
|
||||
- Fixed some bugs on LWRP
|
||||
- Added new demo for LWRP
|
||||
|
||||
v3.0.1:
|
||||
- Fix compatibility issue with Post Processing Stack on LWRP
|
||||
|
||||
v3.0:
|
||||
!!!Warning!!! Breaking changes:
|
||||
- Blur Config now stored as asset file, allows for sharing of configuration between different Cameras/Scenes/Projects. You will need to re-config your all of your Translucent Image Sources. Settings on Translucent Images will be fine.
|
||||
- Blur Size now called Radius to align with other software.
|
||||
|
||||
Added:
|
||||
- Initial LWRP support. Please visit the documentation for setup guide.
|
||||
- Bug fixes and performance improvements.
|
||||
- A lot of ground work for additional blur algorithms (none added yet).
|
||||
- Probably bugs. 😩
|
||||
|
||||
Changed:
|
||||
- Minimum supported Unity version is now 2017.4
|
||||
- Clearer preview box.
|
||||
@@ -1,14 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c5a3f80713b8e364e883263b67113edf
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 78464
|
||||
packageName: Translucent Image - Fast UI Background Blur
|
||||
packageVersion: 6.5.0
|
||||
assetPath: Assets/Le Tai's Asset/TranslucentImage/CHANGELOG.txt
|
||||
uploadId: 824068
|
||||
@@ -1,21 +0,0 @@
|
||||
{
|
||||
"name": "LeTai.Asset.TranslucentImage",
|
||||
"rootNamespace": "",
|
||||
"references": [
|
||||
"GUID:7ab3663edede26740845931880bf22af",
|
||||
"GUID:e0cd26848372d4e5c891c569017e11f1",
|
||||
"GUID:2665a8d13d1b3f18800f46e256720795",
|
||||
"GUID:07cd4d3e8f0583542ab74e7b8b032f7e",
|
||||
"GUID:c131f8808d09e154c956e66d97dd723c",
|
||||
"GUID:f063c9eabb2dec74ca53a0523cc14584"
|
||||
],
|
||||
"includePlatforms": [],
|
||||
"excludePlatforms": [],
|
||||
"allowUnsafeCode": true,
|
||||
"overrideReferences": false,
|
||||
"precompiledReferences": [],
|
||||
"autoReferenced": true,
|
||||
"defineConstraints": [],
|
||||
"versionDefines": [],
|
||||
"noEngineReferences": false
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ff218ee40fe2b8648ab3234d56415557
|
||||
AssemblyDefinitionImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 78464
|
||||
packageName: Translucent Image - Fast UI Background Blur
|
||||
packageVersion: 6.5.0
|
||||
assetPath: Assets/Le Tai's Asset/TranslucentImage/LeTai.TranslucentImage.asmdef
|
||||
uploadId: 824068
|
||||
@@ -1,125 +0,0 @@
|
||||
%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: Default-Translucent
|
||||
m_Shader: {fileID: 4800000, guid: b1115addd36579a429d5e6b4ffae668d, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords:
|
||||
- _BACKGROUND_MODE_COLORFUL
|
||||
m_InvalidKeywords:
|
||||
- _EMISSION
|
||||
- _FOREGROUND_MODE_COLORFUL
|
||||
- _REFRACTION_MODE_ON
|
||||
m_LightmapFlags: 1
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BlurTex:
|
||||
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}
|
||||
- _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}
|
||||
- _Mask:
|
||||
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}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _BACKGROUND_MODE: 1
|
||||
- _Brightness: 0.8
|
||||
- _BumpScale: 1
|
||||
- _ChromaticDispersion: 0.5
|
||||
- _ColorMask: 15
|
||||
- _Constrast: 0.1
|
||||
- _Cutoff: 0.5
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _EDGE_LIGHT_MODE: 0
|
||||
- _EdgeGlint1Strength: 0.25
|
||||
- _EdgeGlint2Strength: 0.1
|
||||
- _EdgeGlintSharpness: 512
|
||||
- _EdgeGlintWrap: 1
|
||||
- _EdgeLight1Strength: 0.65
|
||||
- _EdgeLight2Strength: 0.25
|
||||
- _FOREGROUND_MODE: 1
|
||||
- _Flatten: 0
|
||||
- _ForegroundOpacity: 0.5
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0.5
|
||||
- _GlossyReflections: 1
|
||||
- _Lightness: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _REFRACTION_MODE: 1
|
||||
- _RefractiveIndex: 1.5
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _Stencil: 0
|
||||
- _StencilComp: 8
|
||||
- _StencilOp: 0
|
||||
- _StencilReadMask: 255
|
||||
- _StencilWriteMask: 255
|
||||
- _USE_EDGE_GLINT: 0
|
||||
- _UVSec: 0
|
||||
- _UseUIAlphaClip: 0
|
||||
- _Vibrancy: 1.25
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EdgeGlintDirections: {r: -0.258819, g: 0.9659259, b: 0.2588191, a: -0.9659258}
|
||||
- _EdgeLightDirections: {r: -1, g: 1, b: 1, a: -1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _RefractiveIndexRatios: {r: 0.666666, g: 0.666666, b: 0.666666, a: 0}
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
||||
@@ -1,17 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 96c5704d0681e35408630c488fc0c234
|
||||
labels:
|
||||
- TranslucentImageResource
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 78464
|
||||
packageName: Translucent Image - Fast UI Background Blur
|
||||
packageVersion: 6.5.0
|
||||
assetPath: Assets/Le Tai's Asset/TranslucentImage/Material/Default-Translucent.mat
|
||||
uploadId: 824068
|
||||
Binary file not shown.
@@ -1,15 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 92a39630ef232a9459d20d55dd312799
|
||||
timeCreated: 1541066439
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 78464
|
||||
packageName: Translucent Image - Fast UI Background Blur
|
||||
packageVersion: 6.5.0
|
||||
assetPath: Assets/Le Tai's Asset/TranslucentImage/Offline Documentation.pdf
|
||||
uploadId: 824068
|
||||
@@ -1 +0,0 @@
|
||||
https://leloctai.com/asset/translucentimage/docs/
|
||||
@@ -1,14 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 54274fce3b51a88468a41e332f5de0a5
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 78464
|
||||
packageName: Translucent Image - Fast UI Background Blur
|
||||
packageVersion: 6.5.0
|
||||
assetPath: Assets/Le Tai's Asset/TranslucentImage/Online Documentation (recommended).txt
|
||||
uploadId: 824068
|
||||
@@ -1,9 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3c261078fb1a4da458b96776e33f88b1
|
||||
folderAsset: yes
|
||||
timeCreated: 1474981572
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,75 +0,0 @@
|
||||
// Copyright (c) Le Loc Tai <leloctai.com> . All rights reserved. Do not redistribute.
|
||||
|
||||
#include "./common.hlsl"
|
||||
#include "./fullscreen.hlsl"
|
||||
|
||||
float2 _Offset;
|
||||
float2 _TargetSize;
|
||||
float4 _CropRegion;
|
||||
half3 _BackgroundColor;
|
||||
|
||||
int _IsLast;
|
||||
// int _IsUp;
|
||||
|
||||
#define BlurVertexInput FullScreenVertexInput
|
||||
|
||||
struct BlurVertexOutput
|
||||
{
|
||||
float4 position : SV_POSITION;
|
||||
float2 texcoord : TEXCOORD0;
|
||||
UNITY_VERTEX_OUTPUT_STEREO
|
||||
};
|
||||
|
||||
BlurVertexOutput VertBlur(BlurVertexInput v)
|
||||
{
|
||||
BlurVertexOutput o;
|
||||
UNITY_SETUP_INSTANCE_ID(v);
|
||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
|
||||
|
||||
float4 posCS;
|
||||
float2 screenUV;
|
||||
GetFullScreenVertexData(v, posCS, screenUV);
|
||||
|
||||
o.position = half4(posCS.xy, 0.0, 1.0);
|
||||
|
||||
o.texcoord = UnCropUV(screenUV, _CropRegion);
|
||||
|
||||
return o;
|
||||
}
|
||||
|
||||
half4 FragBlur(BlurVertexOutput i) : SV_Target
|
||||
{
|
||||
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);
|
||||
|
||||
half2 dirs[] = {
|
||||
half2(-1, -1),
|
||||
half2(1, -1),
|
||||
half2(1, 1),
|
||||
half2(-1, 1),
|
||||
};
|
||||
#if !USE_EXTRA_SAMPLE
|
||||
half weight0 = 1.0h / 4.0h;
|
||||
#else
|
||||
half weight1 = 1.0h / 5.0h;
|
||||
half weight0 = (1.0h - weight1) / 4.0h;
|
||||
#endif
|
||||
|
||||
half4 o = 0;
|
||||
for (int j = 0; j < 4; ++j)
|
||||
o += SAMPLE_SCREEN_TEX(_MainTex, i.texcoord + dirs[j] * _Offset) * weight0;
|
||||
|
||||
#if USE_EXTRA_SAMPLE
|
||||
o += SAMPLE_SCREEN_TEX(_MainTex, i.texcoord) * weight1;
|
||||
#endif
|
||||
|
||||
#if BACKGROUND_FILL_COLOR
|
||||
o.rgb = lerp(_BackgroundColor, o.rgb, o.a);
|
||||
o.a = 1.0h;
|
||||
#endif
|
||||
|
||||
// dithering every pass is more correct, but combined with the low sample rate and cheap pattern introduces too much error
|
||||
if (_IsLast)
|
||||
o = dither(o, i.texcoord * _TargetSize);
|
||||
|
||||
return o;
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9ba876e9f43e4360a9d4ee63c412ce07
|
||||
timeCreated: 1729669244
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 78464
|
||||
packageName: Translucent Image - Fast UI Background Blur
|
||||
packageVersion: 6.5.0
|
||||
assetPath: Assets/Le Tai's Asset/TranslucentImage/Resources/Shaders/EfficientBlur.hlsl
|
||||
uploadId: 824068
|
||||
@@ -1,28 +0,0 @@
|
||||
// Copyright (c) Le Loc Tai <leloctai.com> . All rights reserved. Do not redistribute.
|
||||
|
||||
Shader "Hidden/EfficientBlur"
|
||||
{
|
||||
SubShader
|
||||
{
|
||||
Cull Off ZWrite Off ZTest Always Blend Off
|
||||
|
||||
Pass
|
||||
{
|
||||
CGPROGRAM
|
||||
// #pragma enable_d3d11_debug_symbols
|
||||
#pragma vertex VertBlur
|
||||
#pragma fragment FragBlur
|
||||
#pragma multi_compile_local BACKGROUND_FILL_NONE BACKGROUND_FILL_COLOR
|
||||
#pragma multi_compile_local _ USE_EXTRA_SAMPLE
|
||||
|
||||
#include "interop_birp.cginc"
|
||||
|
||||
UNITY_DECLARE_SCREENSPACE_TEXTURE(_MainTex);
|
||||
|
||||
#include "EfficientBlur.hlsl"
|
||||
ENDCG
|
||||
}
|
||||
}
|
||||
|
||||
FallBack Off
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 12e87e7c7fde8e74db9f75172456c5c3
|
||||
ShaderImporter:
|
||||
externalObjects: {}
|
||||
defaultTextures: []
|
||||
nonModifiableTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 78464
|
||||
packageName: Translucent Image - Fast UI Background Blur
|
||||
packageVersion: 6.5.0
|
||||
assetPath: Assets/Le Tai's Asset/TranslucentImage/Resources/Shaders/EfficientBlur.shader
|
||||
uploadId: 824068
|
||||
@@ -1,60 +0,0 @@
|
||||
// Copyright (c) Le Loc Tai <leloctai.com> . All rights reserved. Do not redistribute.
|
||||
|
||||
Shader "Hidden/FillCrop"
|
||||
{
|
||||
Properties
|
||||
{
|
||||
_MainTex ("Texture", 2D) = "white" {}
|
||||
}
|
||||
|
||||
SubShader
|
||||
{
|
||||
// No culling or depth
|
||||
Cull Off ZWrite Off ZTest Always
|
||||
|
||||
Pass
|
||||
{
|
||||
CGPROGRAM
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
|
||||
#include "interop_birp.cginc"
|
||||
#include "common.hlsl"
|
||||
|
||||
struct VertexInput
|
||||
{
|
||||
float4 vertex : POSITION;
|
||||
float2 uv : TEXCOORD0;
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
};
|
||||
|
||||
struct VertexOutput
|
||||
{
|
||||
float2 uv : TEXCOORD0;
|
||||
float4 vertex : SV_POSITION;
|
||||
UNITY_VERTEX_OUTPUT_STEREO
|
||||
};
|
||||
|
||||
VertexOutput vert(VertexInput v)
|
||||
{
|
||||
VertexOutput o;
|
||||
UNITY_SETUP_INSTANCE_ID(v);
|
||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
|
||||
o.vertex = UnityObjectToClipPos(v.vertex);
|
||||
o.uv = v.uv;
|
||||
return o;
|
||||
}
|
||||
|
||||
UNITY_DECLARE_SCREENSPACE_TEXTURE(_MainTex);
|
||||
float4 _CropRegion;
|
||||
|
||||
half4 frag(VertexOutput i) : SV_Target
|
||||
{
|
||||
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i)
|
||||
float2 uv = CropUV(i.uv, _CropRegion);
|
||||
return all(uv == saturate(uv)) ? SAMPLE_SCREEN_TEX(_MainTex, uv) : half4(0, 0, 0, 1);
|
||||
}
|
||||
ENDCG
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d996ab4381100014d99e25e68e9aac84
|
||||
timeCreated: 1540802700
|
||||
licenseType: Store
|
||||
ShaderImporter:
|
||||
defaultTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 78464
|
||||
packageName: Translucent Image - Fast UI Background Blur
|
||||
packageVersion: 6.5.0
|
||||
assetPath: Assets/Le Tai's Asset/TranslucentImage/Resources/Shaders/FillCrop.shader
|
||||
uploadId: 824068
|
||||
@@ -1,199 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include "UnityUI.cginc"
|
||||
// UI shaders still use birp texture convention
|
||||
#include "interop_birp.cginc"
|
||||
#include "common.hlsl"
|
||||
#include "packing.hlsl"
|
||||
#include "blending.hlsl"
|
||||
|
||||
uniform sampler2D _MainTex;
|
||||
uniform fixed4 _TextureSampleAdd;
|
||||
uniform float4 _ClipRect;
|
||||
uniform float4 _MainTex_ST;
|
||||
uniform float _UIMaskSoftnessX;
|
||||
uniform float _UIMaskSoftnessY;
|
||||
uniform int _UIVertexColorAlwaysGammaSpace;
|
||||
UNITY_DECLARE_SCREENSPACE_TEXTURE(_BlurTex);
|
||||
|
||||
uniform float4 _CropRegion; //xMin, yMin, xMax, yMax
|
||||
|
||||
uniform half4 _Debug;
|
||||
|
||||
struct VertexInput
|
||||
{
|
||||
float4 vertex : POSITION;
|
||||
half4 color : COLOR;
|
||||
float2 texcoord : TEXCOORD0;
|
||||
float4 packedData1 : TEXCOORD1;
|
||||
#ifdef _USE_PARAFORM
|
||||
float4 packedData2 : TEXCOORD2;
|
||||
float4 packedData3 : TEXCOORD3;
|
||||
#endif
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
};
|
||||
|
||||
struct VertexOutput
|
||||
{
|
||||
float4 vertex : SV_POSITION;
|
||||
half4 color : COLOR;
|
||||
float4 mask : TEXCOORD0;
|
||||
float2 texcoord : TEXCOORD1;
|
||||
float4 worldPosition : TEXCOORD2;
|
||||
float4 screenPos : TEXCOORD3;
|
||||
float4 transfer1 : TEXCOORD4;
|
||||
#ifdef _USE_PARAFORM
|
||||
float4 transfer2 : TEXCOORD5; // need float for hq derivative on some opengl driver
|
||||
half4 transfer3 : TEXCOORD6;
|
||||
half4 transfer4 : TEXCOORD7;
|
||||
half transfer5 : TEXCOORD8;
|
||||
#endif
|
||||
UNITY_VERTEX_OUTPUT_STEREO
|
||||
};
|
||||
|
||||
struct Appearance
|
||||
{
|
||||
half foregroundOpacity;
|
||||
half vibrancy;
|
||||
half brightness;
|
||||
half flatten;
|
||||
};
|
||||
|
||||
void unpackVertexData(VertexInput i, inout VertexOutput o)
|
||||
{
|
||||
FloatUnpacker upk0 = CreateUnpacker(i.packedData1[0], 8);
|
||||
FloatUnpacker upk1 = CreateUnpacker(i.packedData1[1], 10);
|
||||
o.transfer1 = float4(
|
||||
DequeueNonNegative(upk0, 1),
|
||||
Dequeue(upk1, -1, 2),
|
||||
Dequeue(upk1, -1, 1),
|
||||
DequeueNonNegative(upk0, 1)
|
||||
);
|
||||
}
|
||||
|
||||
Appearance createAppearance(float4 transfer1)
|
||||
{
|
||||
Appearance appearance;
|
||||
appearance.foregroundOpacity = transfer1[0];
|
||||
appearance.vibrancy = transfer1[1];
|
||||
appearance.brightness = transfer1[2];
|
||||
appearance.flatten = transfer1[3];
|
||||
return appearance;
|
||||
}
|
||||
|
||||
VertexOutput vert(VertexInput IN)
|
||||
{
|
||||
VertexOutput OUT = (VertexOutput)0;
|
||||
|
||||
UNITY_SETUP_INSTANCE_ID(IN);
|
||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(OUT);
|
||||
|
||||
OUT.worldPosition = IN.vertex;
|
||||
|
||||
float4 clipPos = UnityObjectToClipPos(IN.vertex);
|
||||
OUT.vertex = clipPos;
|
||||
|
||||
float2 pixelSize = clipPos.w;
|
||||
pixelSize /= float2(1, 1) * abs(mul((float2x2)UNITY_MATRIX_P, _ScreenParams.xy));
|
||||
float4 clampedRect = clamp(_ClipRect, -2e10, 2e10);
|
||||
OUT.mask = float4(IN.vertex.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_UIMaskSoftnessX, _UIMaskSoftnessY) + abs(pixelSize.xy)));
|
||||
|
||||
if (_UIVertexColorAlwaysGammaSpace && !IsGammaSpace())
|
||||
{
|
||||
IN.color.rgb = UIGammaToLinearShim(IN.color.rgb);
|
||||
}
|
||||
OUT.color = IN.color;
|
||||
|
||||
OUT.texcoord = IN.texcoord;
|
||||
|
||||
OUT.screenPos = ComputeNonStereoScreenPos(OUT.vertex);
|
||||
#if UNITY_VERSION >= 202120 && UNITY_UV_STARTS_AT_TOP
|
||||
if (_ProjectionParams.x > 0 && unity_MatrixVP[1][1] < 0)
|
||||
OUT.screenPos.y = OUT.screenPos.w - OUT.screenPos.y;
|
||||
#endif
|
||||
|
||||
unpackVertexData(IN, OUT);
|
||||
|
||||
return OUT;
|
||||
}
|
||||
|
||||
void fragSetup(inout VertexOutput IN, out half2 screenPos, out half4 foregroundColor, out Appearance appearance)
|
||||
{
|
||||
//Round up the alpha color coming from the interpolator (to 1.0/256.0 steps)
|
||||
//The incoming alpha could have numerical instability, which makes it very sensible to
|
||||
//HDR color transparency blend, when it blends with the world's texture.
|
||||
const half alphaPrecision = half(0xff);
|
||||
const half invAlphaPrecision = half(1.0 / alphaPrecision);
|
||||
IN.color.a = round(IN.color.a * alphaPrecision) * invAlphaPrecision;
|
||||
|
||||
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(IN);
|
||||
|
||||
screenPos = IN.screenPos.xy / IN.screenPos.w;
|
||||
foregroundColor = tex2D(_MainTex, IN.texcoord.xy) + _TextureSampleAdd;
|
||||
foregroundColor *= IN.color;
|
||||
|
||||
appearance = createAppearance(IN.transfer1);
|
||||
}
|
||||
|
||||
void fragFinish(VertexOutput IN, half2 screenPos, inout half4 color)
|
||||
{
|
||||
// TODO: fix Shadow and Outline tinting somehow
|
||||
// Multiplying last so glints work
|
||||
// color *= IN.color;
|
||||
|
||||
#ifdef UNITY_UI_CLIP_RECT
|
||||
half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(IN.mask.xy)) * IN.mask.zw);
|
||||
color.a *= m.x * m.y;
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef UNITY_UI_ALPHACLIP
|
||||
clip(color.a - 0.001);
|
||||
#endif
|
||||
|
||||
color.rgb *= color.a;
|
||||
color = dither(color, (screenPos.xy + 0) * _ScreenParams.xy);
|
||||
}
|
||||
|
||||
half3 sampleBackground(float2 screenPos)
|
||||
{
|
||||
half2 blurTexcoord = CropUV(screenPos, _CropRegion);
|
||||
half3 backgroundColor = SAMPLE_SCREEN_TEX(_BlurTex, blurTexcoord).rgb;
|
||||
return backgroundColor;
|
||||
}
|
||||
|
||||
half4 blendBackground(half4 foregroundColor, half3 backgroundColor, Appearance appearance)
|
||||
{
|
||||
half4 color;
|
||||
color.a = foregroundColor.a;
|
||||
|
||||
#if _BACKGROUND_MODE_NORMAL
|
||||
|
||||
backgroundColor = saturate(backgroundColor + (.5 - backgroundColor) * appearance.flatten);
|
||||
backgroundColor = saturate(lerp(LinearRgbToLuminance(backgroundColor), backgroundColor, appearance.vibrancy));
|
||||
half brightness = isGammaShim()
|
||||
? appearance.brightness
|
||||
: appearance.brightness * appearance.brightness * sign(appearance.brightness);
|
||||
backgroundColor = saturate(backgroundColor + brightness);
|
||||
|
||||
color.rgb = lerp(backgroundColor, foregroundColor.rgb, appearance.foregroundOpacity);
|
||||
|
||||
#else //#elif _BACKGROUND_MODE_COLORFUL
|
||||
|
||||
half targetL = appearance.brightness / 2. + .5;
|
||||
if (!isGammaShim())
|
||||
targetL = targetL * targetL;
|
||||
|
||||
backgroundColor = /*saturate*/(lerp(LinearRgbToLuminance(backgroundColor), backgroundColor, appearance.vibrancy));
|
||||
backgroundColor = /*saturate*/(backgroundColor + (targetL - backgroundColor) * appearance.flatten);
|
||||
backgroundColor = lerp(
|
||||
backgroundColor,
|
||||
setL(backgroundColor, LinearRgbToLuminance(backgroundColor), targetL),
|
||||
appearance.foregroundOpacity
|
||||
);
|
||||
color.rgb = gamutClip(backgroundColor * foregroundColor.rgb);
|
||||
|
||||
#endif
|
||||
|
||||
return color;
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b01fb1ca47c849279f7a0d19d1f20e7a
|
||||
timeCreated: 1752043759
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 78464
|
||||
packageName: Translucent Image - Fast UI Background Blur
|
||||
packageVersion: 6.5.0
|
||||
assetPath: Assets/Le Tai's Asset/TranslucentImage/Resources/Shaders/TranslucentImage.hlsl
|
||||
uploadId: 824068
|
||||
@@ -1,106 +0,0 @@
|
||||
// Copyright (c) Le Loc Tai <leloctai.com> . All rights reserved. Do not redistribute.
|
||||
|
||||
Shader "UI/TranslucentImage"
|
||||
{
|
||||
Properties
|
||||
{
|
||||
[PerRendererData] _MainTex("Sprite Texture", 2D) = "white" {}
|
||||
|
||||
[Header(Appearance)][Space]
|
||||
[KeywordEnum(Normal, Colorful)] _BACKGROUND_MODE("Background Mode", int) = 0
|
||||
|
||||
[Header(Refraction)][Space]
|
||||
[KeywordEnum(Off,On,Chromatic)] _REFRACTION_MODE("Refraction Mode", int) = 1
|
||||
// Singularity prevent reconstructions of control properties from _RefractiveIndexRatios
|
||||
// so they need to be stored in the material
|
||||
[PowerSlider(20)] _RefractiveIndex("Refractive Index", Range(1, 4.5)) = 1.5
|
||||
[PowerSlider(2)] _ChromaticDispersion("Chromatic Dispersion", Range(0, 2)) = 0.5
|
||||
_RefractiveIndexRatios("Refractive Index Ratio", Vector) = (0.666666, 0.666666, 0.666666, 0)
|
||||
|
||||
[Header(Edge Glint)][Space]
|
||||
[Toggle(_USE_EDGE_GLINT)] _USE_EDGE_GLINT("Enable Edge Glint", Float) = 0
|
||||
_EdgeGlintDirections("Edge Glint Directions", Vector) = (-0.258819, 0.9659259, 0.2588191, -0.9659258)
|
||||
_EdgeGlint1Strength("Edge Glint 1 Strength", Range(0, 1)) = .25
|
||||
_EdgeGlint2Strength("Edge Glint 2 Strength", Range(0, 1)) = .1
|
||||
_EdgeGlintWrap("Edge Glint Wrap", Float) = 1
|
||||
_EdgeGlintSharpness("Edge Glint Sharpness", Float) = 512
|
||||
|
||||
//_Debug("Debug", Vector) = (0,0,0,0)
|
||||
|
||||
[Header(Other)][Space]
|
||||
_StencilComp("Stencil Comparison", Float) = 8
|
||||
_Stencil("Stencil ID", Float) = 0
|
||||
_StencilOp("Stencil Operation", Float) = 0
|
||||
_StencilWriteMask("Stencil Write Mask", Float) = 255
|
||||
_StencilReadMask("Stencil Read Mask", Float) = 255
|
||||
|
||||
_ColorMask("Color Mask", Float) = 15
|
||||
[HideInInspector]_Color ("Dummy Color", Color) = (1,1,1,1)
|
||||
|
||||
[Toggle(UNITY_UI_ALPHACLIP)] _UseUIAlphaClip("Use Alpha Clip", Float) = 0
|
||||
}
|
||||
|
||||
SubShader
|
||||
{
|
||||
Tags
|
||||
{
|
||||
"Queue"= "Transparent"
|
||||
"IgnoreProjector"= "True"
|
||||
"RenderType"= "Transparent"
|
||||
"PreviewType"= "Plane"
|
||||
"CanUseSpriteAtlas"= "True"
|
||||
}
|
||||
|
||||
Stencil
|
||||
{
|
||||
Ref[_Stencil]
|
||||
Comp[_StencilComp]
|
||||
Pass[_StencilOp]
|
||||
ReadMask[_StencilReadMask]
|
||||
WriteMask[_StencilWriteMask]
|
||||
}
|
||||
|
||||
Cull Off
|
||||
Lighting Off
|
||||
ZWrite Off
|
||||
ZTest[unity_GUIZTestMode]
|
||||
Blend One OneMinusSrcAlpha
|
||||
ColorMask[_ColorMask]
|
||||
|
||||
Pass
|
||||
{
|
||||
CGPROGRAM
|
||||
// #pragma enable_d3d11_debug_symbols
|
||||
#pragma target 3.0
|
||||
#pragma exclude_renderers d3d11_9x gles
|
||||
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
|
||||
#include "TranslucentImage.hlsl"
|
||||
|
||||
#pragma multi_compile_local _ UNITY_UI_CLIP_RECT
|
||||
#pragma multi_compile_local _ UNITY_UI_ALPHACLIP
|
||||
|
||||
#pragma shader_feature_local_fragment _BACKGROUND_MODE_NORMAL _BACKGROUND_MODE_COLORFUL
|
||||
|
||||
half4 frag(VertexOutput IN) : SV_Target
|
||||
{
|
||||
half2 screenPos;
|
||||
half4 foregroundColor;
|
||||
Appearance appearance;
|
||||
fragSetup(IN, screenPos, foregroundColor, appearance);
|
||||
|
||||
half3 backgroundColor = sampleBackground(screenPos);
|
||||
half4 color = blendBackground(foregroundColor, backgroundColor, appearance);
|
||||
|
||||
fragFinish(IN, screenPos, color);
|
||||
|
||||
return color;
|
||||
}
|
||||
ENDCG
|
||||
}
|
||||
}
|
||||
|
||||
CustomEditor "LeTai.Asset.TranslucentImage.Editor.TranslucentImageShaderGUI"
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b1115addd36579a429d5e6b4ffae668d
|
||||
timeCreated: 1539852404
|
||||
licenseType: Store
|
||||
ShaderImporter:
|
||||
defaultTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 78464
|
||||
packageName: Translucent Image - Fast UI Background Blur
|
||||
packageVersion: 6.5.0
|
||||
assetPath: Assets/Le Tai's Asset/TranslucentImage/Resources/Shaders/TranslucentImage.shader
|
||||
uploadId: 824068
|
||||
@@ -1,50 +0,0 @@
|
||||
// Copyright (c) Le Loc Tai <leloctai.com> . All rights reserved. Do not redistribute.
|
||||
|
||||
#include <UnityCG.cginc>
|
||||
|
||||
half3 blendOverlay(half3 a, half3 b)
|
||||
{
|
||||
return a < .5 ? 2 * a * b : 1 - 2 * (1 - a) * (1 - b);
|
||||
}
|
||||
|
||||
half3 blendScreen(half3 a, half3 b)
|
||||
{
|
||||
return 1 - (1 - a) * (1 - b);
|
||||
}
|
||||
|
||||
half3 setL(half3 a, half lumA, half lumB)
|
||||
{
|
||||
return a + (lumB - lumA);
|
||||
}
|
||||
|
||||
half3 gamutClip(half3 color)
|
||||
{
|
||||
half L = LinearRgbToLuminance(color);
|
||||
half minComp = min(min(color.r, color.g), color.b);
|
||||
half maxComp = max(max(color.r, color.g), color.b);
|
||||
|
||||
// branches are never entered when the denom is 0
|
||||
|
||||
// if (minComp < 0)
|
||||
// // color = L + (color - L) * L / (L - minComp);
|
||||
// result = L * (result - minComp) / (L - minComp);
|
||||
// if (maxComp > 1)
|
||||
// result = L + (result - L) * (1 - L) / (maxComp - L);
|
||||
|
||||
|
||||
// Assumption: under blurring, branches are more likely to be coherence than not
|
||||
|
||||
// fully scalar
|
||||
half scale = 1;
|
||||
if (minComp < 0)
|
||||
scale = L / (L - minComp);
|
||||
if (maxComp > 1)
|
||||
scale = min(scale, (1 - L) / (maxComp - L));
|
||||
|
||||
// skipping the vector path should be worth the branch
|
||||
// if (scale < 1)
|
||||
if (scale < 1)
|
||||
color = L + (color - L) * scale;
|
||||
|
||||
return color;
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 15df69990d05474f9845874424d84acf
|
||||
timeCreated: 1750414240
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 78464
|
||||
packageName: Translucent Image - Fast UI Background Blur
|
||||
packageVersion: 6.5.0
|
||||
assetPath: Assets/Le Tai's Asset/TranslucentImage/Resources/Shaders/blending.hlsl
|
||||
uploadId: 824068
|
||||
@@ -1,99 +0,0 @@
|
||||
// Copyright (c) Le Loc Tai <leloctai.com> . All rights reserved. Do not redistribute.
|
||||
|
||||
#ifndef _TRANSLUCENTIMAGE_COMMON
|
||||
#define _TRANSLUCENTIMAGE_COMMON
|
||||
|
||||
float2 UnCropUV(float2 uvRelativeToCropped, float4 cropRegion)
|
||||
{
|
||||
return lerp(cropRegion.xy, cropRegion.zw, uvRelativeToCropped);
|
||||
}
|
||||
|
||||
float2 CropUV(float2 uvRelativeToUnCropped, float4 cropRegion)
|
||||
{
|
||||
return (uvRelativeToUnCropped - cropRegion.xy) / (cropRegion.zw - cropRegion.xy);
|
||||
}
|
||||
|
||||
// https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h
|
||||
float sqrtApprox01(float inX)
|
||||
{
|
||||
int x = asint(inX);
|
||||
x = 0x1FBD1DF5 + (x >> 1);
|
||||
return asfloat(x);
|
||||
}
|
||||
|
||||
// https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h
|
||||
float rsqrtApprox01(float inX)
|
||||
{
|
||||
int x = asint(inX);
|
||||
x = 0x5F341A43 - (x >> 1);
|
||||
return asfloat(x);
|
||||
}
|
||||
|
||||
// https://en.wikibooks.org/wiki/Algorithms/Distance_approximations
|
||||
float lengthApproxOctagon(float2 v)
|
||||
{
|
||||
float ax = abs(v.x);
|
||||
float ay = abs(v.y);
|
||||
float l = max(ax, ay);
|
||||
float s = min(ax, ay);
|
||||
|
||||
return .41 * s + .941246 * l;
|
||||
}
|
||||
|
||||
// https://extremelearning.com.au/unreasonable-effectiveness-of-quasirandom-sequences/
|
||||
inline float ggr21(float2 n)
|
||||
{
|
||||
static const float g = 1.32471795724474602596;
|
||||
static const float a1 = 1.0 / g;
|
||||
static const float a2 = 1.0 / (g * g);
|
||||
return frac(a1 * n.x + a2 * n.y);
|
||||
}
|
||||
|
||||
// https://www.shadertoy.com/view/4djSRW
|
||||
float hash12(float2 p)
|
||||
{
|
||||
float3 p3 = frac(float3(p.xyx) * .1031);
|
||||
p3 += dot(p3, p3.yzx + 33.33);
|
||||
return frac((p3.x + p3.y) * p3.z);
|
||||
}
|
||||
|
||||
half3 sdfViz(float d)
|
||||
{
|
||||
half3 col = (d > 0.0) ? half3(0.9, 0.6, 0.3) : half3(0.65, 0.85, 1.0);
|
||||
col *= 1.0 - exp(-12.0 * abs(d));
|
||||
col *= 0.8 + 0.2 * cos(150.0 * d);
|
||||
return lerp(col, 1.0, 1.0 - smoothstep(0.0, 0.01, abs(d)));
|
||||
}
|
||||
|
||||
bool isGammaShim()
|
||||
{
|
||||
#ifdef UNITY_COLORSPACE_GAMMA
|
||||
return true;
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
|
||||
half3 toPerceptual(half3 color)
|
||||
{
|
||||
return isGammaShim() ? color : sqrt(color);
|
||||
}
|
||||
|
||||
half3 fromPerceptual(half3 color)
|
||||
{
|
||||
return isGammaShim() ? color : color * color;
|
||||
}
|
||||
|
||||
half4 dither(half4 color, float2 coord)
|
||||
{
|
||||
half noise = ggr21(coord) * 1. / 255. - .5 / 255.;
|
||||
half4 result = color;
|
||||
|
||||
result.rgb = toPerceptual(result);
|
||||
result += noise;
|
||||
result.rgb = fromPerceptual(result);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -1,16 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a0f93ce7a1dcd4341947566d67947b0d
|
||||
ShaderImporter:
|
||||
externalObjects: {}
|
||||
defaultTextures: []
|
||||
nonModifiableTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 78464
|
||||
packageName: Translucent Image - Fast UI Background Blur
|
||||
packageVersion: 6.5.0
|
||||
assetPath: Assets/Le Tai's Asset/TranslucentImage/Resources/Shaders/common.hlsl
|
||||
uploadId: 824068
|
||||
@@ -1,61 +0,0 @@
|
||||
// Copyright (c) Le Loc Tai <leloctai.com> . All rights reserved. Do not redistribute.
|
||||
|
||||
struct FullScreenVertexInput
|
||||
{
|
||||
#if !SHADER_API_GLES
|
||||
uint vertexID : SV_VertexID;
|
||||
#else
|
||||
float4 position : POSITION;
|
||||
#endif
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
};
|
||||
|
||||
struct FullScreenVertexOutput
|
||||
{
|
||||
float2 uv : TEXCOORD0;
|
||||
float4 vertex : SV_POSITION;
|
||||
UNITY_VERTEX_OUTPUT_STEREO
|
||||
};
|
||||
|
||||
|
||||
float2 VertexToUV(float2 vertex)
|
||||
{
|
||||
float2 texcoord = (vertex + 1.0) * 0.5; // triangle vert to uv
|
||||
#if UNITY_UV_STARTS_AT_TOP
|
||||
texcoord = texcoord * float2(1.0, -1.0) + float2(0.0, 1.0);
|
||||
#endif
|
||||
return texcoord;
|
||||
}
|
||||
|
||||
|
||||
// BiRP do not have these methods, so copy here and namespaced to avoid collision in URP
|
||||
|
||||
// Generates a triangle in homogeneous clip space, s.t.
|
||||
// v0 = (-1, -1, 1), v1 = (3, -1, 1), v2 = (-1, 3, 1).
|
||||
float2 tai_GetFullScreenTriangleTexCoord(uint vertexID)
|
||||
{
|
||||
#if UNITY_UV_STARTS_AT_TOP
|
||||
return float2((vertexID << 1) & 2, 1.0 - (vertexID & 2));
|
||||
#else
|
||||
return float2((vertexID << 1) & 2, vertexID & 2);
|
||||
#endif
|
||||
}
|
||||
|
||||
float4 tai_GetFullScreenTriangleVertexPosition(uint vertexID, float z)
|
||||
{
|
||||
// note: the triangle vertex position coordinates are x2 so the returned UV coordinates are in range -1, 1 on the screen.
|
||||
float2 uv = float2((vertexID << 1) & 2, vertexID & 2);
|
||||
float4 pos = float4(uv * 2.0 - 1.0, z, 1.0);
|
||||
return pos;
|
||||
}
|
||||
|
||||
void GetFullScreenVertexData(FullScreenVertexInput v, out float4 posCS, out float2 screenUV)
|
||||
{
|
||||
#if !SHADER_API_GLES
|
||||
posCS = tai_GetFullScreenTriangleVertexPosition(v.vertexID, UNITY_NEAR_CLIP_VALUE);
|
||||
screenUV = tai_GetFullScreenTriangleTexCoord(v.vertexID);
|
||||
#else
|
||||
posCS = v.position;
|
||||
screenUV = VertexToUV(v.position.xy);
|
||||
#endif
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b1a79371c15c4beab2c91aa6e7f4c13e
|
||||
timeCreated: 1729673279
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 78464
|
||||
packageName: Translucent Image - Fast UI Background Blur
|
||||
packageVersion: 6.5.0
|
||||
assetPath: Assets/Le Tai's Asset/TranslucentImage/Resources/Shaders/fullscreen.hlsl
|
||||
uploadId: 824068
|
||||
@@ -1,19 +0,0 @@
|
||||
// Copyright (c) Le Loc Tai <leloctai.com> . All rights reserved. Do not redistribute.
|
||||
|
||||
#include <UnityCG.cginc>
|
||||
|
||||
// This need to be a macro since the type of tex can change :(
|
||||
#define SAMPLE_SCREEN_TEX(tex, uv) UNITY_SAMPLE_SCREENSPACE_TEXTURE(tex, UnityStereoTransformScreenSpaceTex(uv))
|
||||
|
||||
// This piecewise approximation has a precision better than 0.5 / 255 in gamma space over the [0..255] range
|
||||
// i.e. abs(l2g_exact(g2l_approx(value)) - value) < 0.5 / 255
|
||||
// It is much more precise than GammaToLinearSpace but remains relatively cheap
|
||||
half3 UIGammaToLinearShim(half3 value)
|
||||
{
|
||||
half3 low = 0.0849710 * value - 0.000163029;
|
||||
half3 high = value * (value * (value * 0.265885 + 0.736584) - 0.00980184) + 0.00319697;
|
||||
|
||||
// We should be 0.5 away from any actual gamma value stored in an 8 bit channel
|
||||
const half3 split = (half3)0.0725490; // Equals 18.5 / 255
|
||||
return (value < split) ? low : high;
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a8c68a14f2a58eb4eb95978229e5db5e
|
||||
labels:
|
||||
- TranslucentImageEditorResources
|
||||
ShaderImporter:
|
||||
externalObjects: {}
|
||||
defaultTextures: []
|
||||
nonModifiableTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 78464
|
||||
packageName: Translucent Image - Fast UI Background Blur
|
||||
packageVersion: 6.5.0
|
||||
assetPath: Assets/Le Tai's Asset/TranslucentImage/Resources/Shaders/interop_birp.cginc
|
||||
uploadId: 824068
|
||||
@@ -1,71 +0,0 @@
|
||||
// Copyright (c) Le Loc Tai <leloctai.com> . All rights reserved. Do not redistribute.
|
||||
|
||||
#ifndef LETAI_PACKING
|
||||
#define LETAI_PACKING
|
||||
|
||||
struct FloatUnpacker
|
||||
{
|
||||
uint payload;
|
||||
uint nBitsConsumed;
|
||||
uint bitsPerFloat;
|
||||
};
|
||||
|
||||
FloatUnpacker CreateUnpacker(float packed, int bitsPerFloat = 0)
|
||||
{
|
||||
uint bits = asuint(packed);
|
||||
uint exponent = (bits >> 23) & 0xFFu;
|
||||
uint mantissa = bits & 0x7FFFFFu;
|
||||
|
||||
FloatUnpacker u;
|
||||
u.payload = ((exponent - 1u) << 23) | mantissa;
|
||||
u.nBitsConsumed = 0;
|
||||
u.bitsPerFloat = bitsPerFloat;
|
||||
return u;
|
||||
}
|
||||
|
||||
float Dequeue(inout FloatUnpacker u, float minVal, float maxVal, uint nBits = 0)
|
||||
{
|
||||
if (nBits == 0) nBits = u.bitsPerFloat;
|
||||
|
||||
uint mask = (1u << nBits) - 1u;
|
||||
uint value = (u.payload >> u.nBitsConsumed) & mask;
|
||||
u.nBitsConsumed += nBits;
|
||||
|
||||
float norm = value * (1.0 / mask);
|
||||
return norm * (maxVal - minVal) + minVal;
|
||||
}
|
||||
|
||||
float DequeueNonNegative(inout FloatUnpacker u, float maxVal, uint nBits = 0)
|
||||
{
|
||||
return Dequeue(u, 0, maxVal, nBits);
|
||||
}
|
||||
|
||||
|
||||
void UnpackTwoFloatsSafe(
|
||||
float packed,
|
||||
float minA, float maxA, uint nBitsA,
|
||||
float minB, float maxB, uint nBitsB,
|
||||
out float a, out float b)
|
||||
{
|
||||
uint bits = asuint(packed);
|
||||
|
||||
uint exponent = (bits >> 23) & 0xFFu;
|
||||
uint mantissa = bits & 0x7FFFFFu;
|
||||
|
||||
uint payload = ((exponent - 1u) << 23) | mantissa;
|
||||
|
||||
uint maskB = (1u << nBitsB) - 1u;
|
||||
float aQuantized = payload >> nBitsB;
|
||||
float bQuantized = payload & maskB;
|
||||
|
||||
float maxAQuantized = (1u << nBitsA) - 1u;
|
||||
float maxBQuantized = maskB;
|
||||
|
||||
float aNormalized = aQuantized * (1. / maxAQuantized);
|
||||
float bNormalized = bQuantized * (1. / maxBQuantized);
|
||||
|
||||
a = aNormalized * (maxA - minA) + minA;
|
||||
b = bNormalized * (maxB - minB) + minB;
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -1,10 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1513fde2dd7f474a803858cd7ae75356
|
||||
timeCreated: 1750650448
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 78464
|
||||
packageName: Translucent Image - Fast UI Background Blur
|
||||
packageVersion: 6.5.0
|
||||
assetPath: Assets/Le Tai's Asset/TranslucentImage/Resources/Shaders/packing.hlsl
|
||||
uploadId: 824068
|
||||
@@ -1,16 +0,0 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !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: c98b4a46667547b294b1c048ab4fc355, type: 3}
|
||||
m_Name: Translucent Image Default Resources
|
||||
m_EditorClassIdentifier:
|
||||
material: {fileID: 2100000, guid: 96c5704d0681e35408630c488fc0c234, type: 2}
|
||||
paraformMaterial: {fileID: 2100000, guid: c2c99768271516e4b8f434b56fc1cea0, type: 2}
|
||||
@@ -1,16 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 06adab3c1d7cfaf4e8386d06623484fa
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 78464
|
||||
packageName: Translucent Image - Fast UI Background Blur
|
||||
packageVersion: 6.5.0
|
||||
assetPath: Assets/Le Tai's Asset/TranslucentImage/Resources/Translucent Image Default
|
||||
Resources.asset
|
||||
uploadId: 824068
|
||||
@@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bf78a7acb2cf96c468f81fe121a3301f
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,34 +0,0 @@
|
||||
Shader "Hidden/EfficientBlur_UniversalRP"
|
||||
{
|
||||
SubShader
|
||||
{
|
||||
Cull Off ZWrite Off ZTest Always Blend Off
|
||||
|
||||
Pass
|
||||
{
|
||||
HLSLPROGRAM
|
||||
// #pragma enable_d3d11_debug_symbols
|
||||
|
||||
#pragma target 3.0
|
||||
//HLSLcc is not used by default on gles
|
||||
#pragma prefer_hlslcc gles
|
||||
//SRP don't support dx9
|
||||
#pragma exclude_renderers d3d11_9x
|
||||
|
||||
#pragma vertex VertBlur
|
||||
#pragma fragment FragBlur
|
||||
#pragma multi_compile_local BACKGROUND_FILL_NONE BACKGROUND_FILL_COLOR
|
||||
#pragma multi_compile_local _ USE_EXTRA_SAMPLE
|
||||
|
||||
#include "interop_urp.hlsl"
|
||||
|
||||
TEXTURE2D_X(_MainTex);
|
||||
SAMPLER(sampler_MainTex);
|
||||
|
||||
#include "../Shaders/EfficientBlur.hlsl"
|
||||
ENDHLSL
|
||||
}
|
||||
}
|
||||
|
||||
FallBack Off
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4a1d960bb7429ed49a23391385e9ca1b
|
||||
ShaderImporter:
|
||||
externalObjects: {}
|
||||
defaultTextures: []
|
||||
nonModifiableTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,58 +0,0 @@
|
||||
Shader "Hidden/FillCrop_UniversalRP"
|
||||
{
|
||||
SubShader
|
||||
{
|
||||
// No culling or depth
|
||||
Cull Off ZWrite Off ZTest Always
|
||||
|
||||
Pass
|
||||
{
|
||||
HLSLPROGRAM
|
||||
#pragma target 3.0
|
||||
//HLSLcc is not used by default on gles
|
||||
#pragma prefer_hlslcc gles
|
||||
//SRP don't support dx9
|
||||
#pragma exclude_renderers d3d11_9x
|
||||
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
|
||||
#include "./interop_urp.hlsl"
|
||||
#include "../Shaders/fullscreen.hlsl"
|
||||
#include "../Shaders/common.hlsl"
|
||||
|
||||
struct v2f
|
||||
{
|
||||
float2 uv : TEXCOORD0;
|
||||
float4 vertex : SV_POSITION;
|
||||
UNITY_VERTEX_OUTPUT_STEREO
|
||||
};
|
||||
|
||||
v2f vert(FullScreenVertexInput v)
|
||||
{
|
||||
v2f o;
|
||||
UNITY_SETUP_INSTANCE_ID(v);
|
||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
|
||||
|
||||
float4 posCS;
|
||||
float2 screenUV;
|
||||
GetFullScreenVertexData(v, posCS, screenUV);
|
||||
|
||||
o.vertex = half4(posCS.xy, 0.0, 1.0);
|
||||
o.uv = screenUV;
|
||||
return o;
|
||||
}
|
||||
|
||||
TEXTURE2D_X(_MainTex);
|
||||
float4 _CropRegion;
|
||||
|
||||
half4 frag(v2f i) : SV_Target
|
||||
{
|
||||
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i)
|
||||
float2 uv = CropUV(i.uv, _CropRegion);
|
||||
return all(uv == saturate(uv)) ? SAMPLE_SCREEN_TEX(_MainTex, uv) : half4(0, 0, 0, 1);
|
||||
}
|
||||
ENDHLSL
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: be9460e8089353c42b6ec727f6fc3140
|
||||
ShaderImporter:
|
||||
externalObjects: {}
|
||||
defaultTextures: []
|
||||
nonModifiableTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,6 +0,0 @@
|
||||
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
|
||||
|
||||
#if UNITY_VERSION < 600000
|
||||
SAMPLER(sampler_LinearClamp);
|
||||
#endif
|
||||
#define SAMPLE_SCREEN_TEX(tex, uv) SAMPLE_TEXTURE2D_X(tex, sampler_LinearClamp, UnityStereoTransformScreenSpaceTex(uv))
|
||||
@@ -1,3 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 005bb204b9b54cb7868e1aa065f00838
|
||||
timeCreated: 1562251098
|
||||
@@ -1,9 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f086af857f26faa4ea62ddf64d9f44ec
|
||||
folderAsset: yes
|
||||
timeCreated: 1474981551
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,31 +0,0 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace LeTai.Asset.TranslucentImage
|
||||
{
|
||||
public readonly struct ActiveRegion
|
||||
{
|
||||
public static readonly ActiveRegion INACTIVE = new ActiveRegion(Rect.zero,
|
||||
Matrix4x4.zero,
|
||||
VPMatrixCache.Index.INVALID);
|
||||
|
||||
public readonly Rect rect;
|
||||
public readonly Matrix4x4 localToWorld;
|
||||
public readonly VPMatrixCache.Index vpMatrixCacheIndex;
|
||||
public bool IsWorldSpace => vpMatrixCacheIndex.IsValid();
|
||||
|
||||
/// <param name="vpMatrixCacheIndex">Use VPMatrixCache.Index.INVALID For Screen Space - Overlay Canvas. Otherwise, see <see cref="VPMatrixCache"/></param>
|
||||
public ActiveRegion(Rect rect, Matrix4x4 localToWorld, VPMatrixCache.Index vpMatrixCacheIndex)
|
||||
{
|
||||
this.rect = rect;
|
||||
this.localToWorld = localToWorld;
|
||||
this.vpMatrixCacheIndex = vpMatrixCacheIndex;
|
||||
}
|
||||
}
|
||||
|
||||
public interface IActiveRegionProvider
|
||||
{
|
||||
bool HaveActiveRegion();
|
||||
// out params to avoid double allocation of the fat struct
|
||||
void GetActiveRegion(VPMatrixCache vpMatrixCache, out ActiveRegion activeRegion);
|
||||
}
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4adf6e4aab6f4d09ad8edf1d91e8fd9c
|
||||
timeCreated: 1728639282
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 78464
|
||||
packageName: Translucent Image - Fast UI Background Blur
|
||||
packageVersion: 6.5.0
|
||||
assetPath: Assets/Le Tai's Asset/TranslucentImage/Script/ActiveRegion.cs
|
||||
uploadId: 824068
|
||||
@@ -1,66 +0,0 @@
|
||||
using Unity.Burst;
|
||||
using Unity.Collections;
|
||||
using Unity.Jobs;
|
||||
using UnityEngine;
|
||||
|
||||
namespace LeTai.Asset.TranslucentImage
|
||||
{
|
||||
[BurstCompile(FloatMode = FloatMode.Fast)]
|
||||
unsafe struct ActiveRegionMergeJob : IJob
|
||||
{
|
||||
[ReadOnly]
|
||||
public NativeList<ActiveRegion> activeRegions;
|
||||
[ReadOnly]
|
||||
public NativeList<Matrix4x4> vpMatrices;
|
||||
public Vector2 screenSize;
|
||||
public Rect viewport;
|
||||
|
||||
public NativeArray<Rect> merged;
|
||||
|
||||
public void Execute()
|
||||
{
|
||||
var xMin = 1f;
|
||||
var yMin = 1f;
|
||||
var xMax = 0f;
|
||||
var yMax = 0f;
|
||||
|
||||
var screenSizeInv = new Vector2(1f / screenSize.x, 1f / screenSize.y);
|
||||
|
||||
for (int i = 0; i < activeRegions.Length; i++)
|
||||
{
|
||||
var quad = activeRegions[i];
|
||||
var rect = quad.rect;
|
||||
var corners = stackalloc[] {
|
||||
new Vector2(rect.x, rect.y),
|
||||
new Vector2(rect.x, rect.yMax),
|
||||
new Vector2(rect.xMax, rect.yMax),
|
||||
new Vector2(rect.xMax, rect.y),
|
||||
};
|
||||
for (int j = 0; j < 4; j++)
|
||||
{
|
||||
Vector3 pointWorld = quad.localToWorld.MultiplyPoint3x4(corners[j]);
|
||||
Vector2 pointScreen;
|
||||
if (quad.IsWorldSpace)
|
||||
{
|
||||
Vector4 pointWorldHomo = pointWorld;
|
||||
pointWorldHomo.w = 1;
|
||||
Vector4 pointClip = vpMatrices[quad.vpMatrixCacheIndex.index] * pointWorldHomo;
|
||||
pointScreen = new Vector2(pointClip.x, pointClip.y) / pointClip.w * .5f + new Vector2(.5f, .5f);
|
||||
}
|
||||
else
|
||||
{
|
||||
pointScreen = pointWorld * screenSizeInv;
|
||||
pointScreen = (pointScreen - viewport.min) / viewport.size;
|
||||
}
|
||||
|
||||
xMin = Mathf.Min(xMin, pointScreen.x);
|
||||
yMin = Mathf.Min(yMin, pointScreen.y);
|
||||
xMax = Mathf.Max(xMax, pointScreen.x);
|
||||
yMax = Mathf.Max(yMax, pointScreen.y);
|
||||
}
|
||||
}
|
||||
|
||||
merged[0] = new Rect(xMin, yMin, xMax - xMin, yMax - yMin);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 998034a9a75347a4ad7404daa830d415
|
||||
timeCreated: 1728556086
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 78464
|
||||
packageName: Translucent Image - Fast UI Background Blur
|
||||
packageVersion: 6.5.0
|
||||
assetPath: Assets/Le Tai's Asset/TranslucentImage/Script/ActiveRegionMergeJob.cs
|
||||
uploadId: 824068
|
||||
@@ -1,4 +0,0 @@
|
||||
using System.Runtime.CompilerServices;
|
||||
|
||||
[assembly: InternalsVisibleTo("LeTai.Asset.TranslucentImage.Editor")]
|
||||
[assembly: InternalsVisibleTo("LeTai.Asset.TranslucentImage.Editor.Paraform")]
|
||||
@@ -1,10 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f5aa23395e6d4397a46bd5b2a1fb4f44
|
||||
timeCreated: 1694419168
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 78464
|
||||
packageName: Translucent Image - Fast UI Background Blur
|
||||
packageVersion: 6.5.0
|
||||
assetPath: Assets/Le Tai's Asset/TranslucentImage/Script/AssemblyInfo.cs
|
||||
uploadId: 824068
|
||||
@@ -1,3 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f164c4c349ef428f8c7537ba4218516d
|
||||
timeCreated: 1560157255
|
||||
@@ -1,9 +0,0 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace LeTai.Asset.TranslucentImage
|
||||
{
|
||||
public abstract class BlurConfig : ScriptableObject
|
||||
{
|
||||
public abstract float Strength { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5a1c97a4c20d4c698acd8a00210f69fe
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {fileID: 2800000, guid: c2fc80b7e20a4104db1297bcddfd83b5, type: 3}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 78464
|
||||
packageName: Translucent Image - Fast UI Background Blur
|
||||
packageVersion: 6.5.0
|
||||
assetPath: Assets/Le Tai's Asset/TranslucentImage/Script/BlurAlgorithm/BlurConfig.cs
|
||||
uploadId: 824068
|
||||
@@ -1,44 +0,0 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Rendering;
|
||||
|
||||
namespace LeTai.Asset.TranslucentImage
|
||||
{
|
||||
public enum BlurAlgorithmType
|
||||
{
|
||||
ScalableBlur
|
||||
}
|
||||
|
||||
public enum BackgroundFillMode
|
||||
{
|
||||
None,
|
||||
Color
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public class BackgroundFill
|
||||
{
|
||||
public BackgroundFillMode mode = BackgroundFillMode.None;
|
||||
public Color color = Color.white;
|
||||
}
|
||||
|
||||
public interface IBlurAlgorithm
|
||||
{
|
||||
void Init(BlurConfig config, bool isBirp);
|
||||
|
||||
void Blur(
|
||||
CommandBuffer cmd,
|
||||
RenderTargetIdentifier src,
|
||||
Rect srcCropRegion,
|
||||
Rect activeRegion,
|
||||
BackgroundFill backgroundFill,
|
||||
RenderTexture target
|
||||
);
|
||||
|
||||
int GetScratchesCount(float targetWidth, float targetHeight);
|
||||
|
||||
void GetNextScratchDescriptor(ref RenderTextureDescriptor prevDescriptor);
|
||||
|
||||
void SetScratch(int index, RenderTargetIdentifier value);
|
||||
}
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6cf12665875748ef9dd9416b900b5143
|
||||
timeCreated: 1558514104
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 78464
|
||||
packageName: Translucent Image - Fast UI Background Blur
|
||||
packageVersion: 6.5.0
|
||||
assetPath: Assets/Le Tai's Asset/TranslucentImage/Script/BlurAlgorithm/IBlurAlgorithm.cs
|
||||
uploadId: 824068
|
||||
@@ -1,227 +0,0 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Rendering;
|
||||
|
||||
namespace LeTai.Asset.TranslucentImage
|
||||
{
|
||||
public class ScalableBlur : IBlurAlgorithm
|
||||
{
|
||||
readonly RenderTargetIdentifier[] scratches = new RenderTargetIdentifier[14];
|
||||
|
||||
bool isBirp;
|
||||
Material material;
|
||||
ScalableBlurConfig config;
|
||||
MaterialPropertyBlock propertyBlock;
|
||||
|
||||
LocalKeyword kwBackgroundFillNone;
|
||||
LocalKeyword kwBackgroundFillColor;
|
||||
LocalKeyword kwUseExtraSample;
|
||||
|
||||
Material Material
|
||||
{
|
||||
get
|
||||
{
|
||||
if (material == null)
|
||||
{
|
||||
Material = new Material(Shader.Find(isBirp
|
||||
? "Hidden/EfficientBlur"
|
||||
: "Hidden/EfficientBlur_UniversalRP"));
|
||||
}
|
||||
|
||||
return material;
|
||||
}
|
||||
set => material = value;
|
||||
}
|
||||
|
||||
public void Init(BlurConfig config, bool isBirp)
|
||||
{
|
||||
this.isBirp = isBirp;
|
||||
this.config = (ScalableBlurConfig)config;
|
||||
propertyBlock = propertyBlock ?? new MaterialPropertyBlock();
|
||||
}
|
||||
|
||||
public void Blur(
|
||||
CommandBuffer cmd,
|
||||
RenderTargetIdentifier src,
|
||||
Rect srcCropRegion,
|
||||
Rect activeRegion,
|
||||
BackgroundFill backgroundFill,
|
||||
RenderTexture target
|
||||
)
|
||||
{
|
||||
(float strength, float radius, int iterations) = GetEffectiveConfig(target.width / srcCropRegion.width,
|
||||
target.height / srcCropRegion.height);
|
||||
var offsetDistanceDown = (radius / 2f) * Vector2.one;
|
||||
var offsetDistanceUp = (radius / 2f /*- .5f*/) * Vector2.one;
|
||||
|
||||
int stepCount = Mathf.Clamp(iterations * 2, 1, scratches.Length * 2 - 1);
|
||||
float extent = strength;
|
||||
|
||||
var activeRegionRelative = RectUtils.Intersect(activeRegion, srcCropRegion);
|
||||
activeRegionRelative.x = (activeRegionRelative.x - srcCropRegion.x) / srcCropRegion.width;
|
||||
activeRegionRelative.y = (activeRegionRelative.y - srcCropRegion.y) / srcCropRegion.height;
|
||||
activeRegionRelative.width = activeRegionRelative.width / srcCropRegion.width;
|
||||
activeRegionRelative.height = activeRegionRelative.height / srcCropRegion.height;
|
||||
|
||||
if (activeRegionRelative.width == 0 || activeRegionRelative.height == 0)
|
||||
return;
|
||||
|
||||
ConfigMaterial(backgroundFill);
|
||||
propertyBlock.Clear();
|
||||
propertyBlock.SetInteger("_IsLast", 0);
|
||||
|
||||
if (stepCount > 1)
|
||||
{
|
||||
CropViewport(target.width >> 1, target.height >> 1, extent, out var viewportFirst, out var activeRegionFirst);
|
||||
propertyBlock.SetVector(ShaderID.CROP_REGION, RectUtils.ToMinMaxVector(RectUtils.Crop(srcCropRegion, activeRegionFirst)));
|
||||
|
||||
var targetSize1 = new Vector2(target.width >> 1, target.height >> 1);
|
||||
propertyBlock.SetVector(ShaderID.TARGET_SIZE, targetSize1);
|
||||
propertyBlock.SetVector(ShaderID.OFFSET, offsetDistanceDown / targetSize1);
|
||||
|
||||
Blitter.Blit(cmd, src, scratches[0], Material, 0, propertyBlock, viewportFirst);
|
||||
}
|
||||
|
||||
var maxDepth = Mathf.Min(iterations - 1, scratches.Length - 1);
|
||||
for (var i = 1; i < stepCount - 1; i++)
|
||||
{
|
||||
var fromIdx = SimplePingPong(i - 1, maxDepth);
|
||||
var toIdx = SimplePingPong(i, maxDepth);
|
||||
var targetDepth = toIdx + 1;
|
||||
|
||||
CropViewport(target.width >> targetDepth, target.height >> targetDepth, extent, out var viewportStep, out var activeRegionStep);
|
||||
propertyBlock.SetVector(ShaderID.CROP_REGION, RectUtils.ToMinMaxVector(activeRegionStep));
|
||||
|
||||
var targetSizeStep = new Vector2(target.width >> targetDepth, target.height >> targetDepth);
|
||||
propertyBlock.SetVector(ShaderID.TARGET_SIZE, targetSizeStep);
|
||||
propertyBlock.SetVector(ShaderID.OFFSET, i < maxDepth
|
||||
? offsetDistanceDown / targetSizeStep
|
||||
: offsetDistanceUp / targetSizeStep);
|
||||
|
||||
Blitter.Blit(cmd, scratches[fromIdx], scratches[toIdx], Material, 0, propertyBlock, viewportStep);
|
||||
}
|
||||
|
||||
CropViewport(target.width, target.height, 0, out var viewportLast, out var activeRegionLast);
|
||||
activeRegionLast = stepCount > 1 ? activeRegionLast : RectUtils.Crop(srcCropRegion, activeRegionLast);
|
||||
propertyBlock.SetVector(ShaderID.CROP_REGION, RectUtils.ToMinMaxVector(activeRegionLast));
|
||||
|
||||
var targetSizeFinal = new Vector2(target.width, target.height);
|
||||
propertyBlock.SetVector(ShaderID.TARGET_SIZE, targetSizeFinal);
|
||||
propertyBlock.SetVector(ShaderID.OFFSET, stepCount == 1
|
||||
? offsetDistanceDown / targetSizeFinal
|
||||
: offsetDistanceUp / targetSizeFinal);
|
||||
propertyBlock.SetInteger(ShaderID.IS_LAST, 1);
|
||||
|
||||
Blitter.Blit(cmd,
|
||||
stepCount > 1 ? scratches[0] : src,
|
||||
target,
|
||||
Material,
|
||||
0,
|
||||
propertyBlock,
|
||||
viewportLast);
|
||||
return;
|
||||
|
||||
void CropViewport(int targetWidth, int targetHeight, float padding, out Rect viewport, out Rect activeRegionSnapped)
|
||||
{
|
||||
var x = activeRegionRelative.x * targetWidth;
|
||||
var y = activeRegionRelative.y * targetHeight;
|
||||
var xf = Mathf.Floor(x - padding);
|
||||
var yf = Mathf.Floor(y - padding);
|
||||
viewport = new Rect(xf,
|
||||
yf,
|
||||
Mathf.Ceil(x + activeRegionRelative.width * targetWidth + padding) - xf,
|
||||
Mathf.Ceil(y + activeRegionRelative.height * targetHeight + padding) - yf);
|
||||
|
||||
viewport.x = Mathf.Max(viewport.x, 0);
|
||||
viewport.y = Mathf.Max(viewport.y, 0);
|
||||
viewport.width = Mathf.Min(viewport.width, targetWidth);
|
||||
viewport.height = Mathf.Min(viewport.height, targetHeight);
|
||||
|
||||
activeRegionSnapped = new Rect(
|
||||
viewport.x / targetWidth,
|
||||
viewport.y / targetHeight,
|
||||
viewport.width / targetWidth,
|
||||
viewport.height / targetHeight
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
public int GetScratchesCount(float targetWidth, float targetHeight)
|
||||
{
|
||||
var (_, _, iterations) = GetEffectiveConfig(targetWidth, targetHeight);
|
||||
return Mathf.Min(iterations, scratches.Length);
|
||||
}
|
||||
|
||||
public void GetNextScratchDescriptor(ref RenderTextureDescriptor prevDescriptor)
|
||||
{
|
||||
prevDescriptor.width >>= 1;
|
||||
prevDescriptor.height >>= 1;
|
||||
if (prevDescriptor.width <= 0) prevDescriptor.width = 1;
|
||||
if (prevDescriptor.height <= 0) prevDescriptor.height = 1;
|
||||
}
|
||||
|
||||
public void SetScratch(int index, RenderTargetIdentifier value)
|
||||
{
|
||||
scratches[index] = value;
|
||||
}
|
||||
|
||||
protected void ConfigMaterial(BackgroundFill backgroundFill)
|
||||
{
|
||||
var mat = Material;
|
||||
|
||||
if (kwUseExtraSample == default || !kwUseExtraSample.isValid)
|
||||
InitKeywords();
|
||||
|
||||
switch (backgroundFill.mode)
|
||||
{
|
||||
case BackgroundFillMode.None:
|
||||
mat.SetKeyword(kwBackgroundFillNone, true);
|
||||
mat.SetKeyword(kwBackgroundFillNone, true);
|
||||
mat.SetKeyword(kwBackgroundFillColor, false);
|
||||
break;
|
||||
case BackgroundFillMode.Color:
|
||||
mat.SetKeyword(kwBackgroundFillColor, true);
|
||||
mat.SetKeyword(kwBackgroundFillNone, false);
|
||||
mat.SetColor(ShaderID.BACKGROUND_COLOR, backgroundFill.color);
|
||||
break;
|
||||
}
|
||||
mat.SetKeyword(kwUseExtraSample, config.Mode == ScalableBlurConfig.BlurMode.Balanced);
|
||||
}
|
||||
|
||||
(float strength, float radius, int iteration) GetEffectiveConfig(float targetWidth, float targetHeight)
|
||||
{
|
||||
float scaleFactor = config.GetResolutionScaleFactor(targetWidth, targetHeight);
|
||||
|
||||
float strength = config.Strength * scaleFactor;
|
||||
float radius;
|
||||
int iteration;
|
||||
|
||||
if (!config.UseStrength)
|
||||
{
|
||||
radius = config.Radius * scaleFactor;
|
||||
iteration = config.Iteration;
|
||||
}
|
||||
else
|
||||
{
|
||||
(radius, iteration) = ScalableBlurConfig.FromStrength(strength);
|
||||
}
|
||||
|
||||
return (strength, radius, iteration);
|
||||
}
|
||||
|
||||
static int SimplePingPong(int t, int max)
|
||||
{
|
||||
if (t > max)
|
||||
return 2 * max - t;
|
||||
return t;
|
||||
}
|
||||
|
||||
void InitKeywords()
|
||||
{
|
||||
var materialShader = Material.shader;
|
||||
kwBackgroundFillNone = new LocalKeyword(materialShader, "BACKGROUND_FILL_NONE");
|
||||
kwBackgroundFillColor = new LocalKeyword(materialShader, "BACKGROUND_FILL_COLOR");
|
||||
kwUseExtraSample = new LocalKeyword(materialShader, "USE_EXTRA_SAMPLE");
|
||||
}
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user