diff options
| author | tylermurphy534 <tylermurphy534@gmail.com> | 2022-11-06 15:12:42 -0500 |
|---|---|---|
| committer | tylermurphy534 <tylermurphy534@gmail.com> | 2022-11-06 15:12:42 -0500 |
| commit | eb84bb298d2b95aec7b2ae12cbf25ac64f25379a (patch) | |
| tree | efd616a157df06ab661c6d56651853431ac6b08b /VRCSDK3Worlds/Assets/_PoiyomiShaders | |
| download | unityprojects-eb84bb298d2b95aec7b2ae12cbf25ac64f25379a.tar.gz unityprojects-eb84bb298d2b95aec7b2ae12cbf25ac64f25379a.tar.bz2 unityprojects-eb84bb298d2b95aec7b2ae12cbf25ac64f25379a.zip | |
move to self host
Diffstat (limited to 'VRCSDK3Worlds/Assets/_PoiyomiShaders')
745 files changed, 58701 insertions, 0 deletions
diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Examples.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Examples.meta new file mode 100644 index 00000000..517e2171 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Examples.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5d6049688051f5f4286acaa0018213d1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Examples/Random.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Examples/Random.meta new file mode 100644 index 00000000..7a0d501a --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Examples/Random.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ce460e1b52e7c8641976ffbb07155a81 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Examples/Random/M_Poiyomi_Slime.mat b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Examples/Random/M_Poiyomi_Slime.mat new file mode 100644 index 00000000..8caa92e2 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Examples/Random/M_Poiyomi_Slime.mat @@ -0,0 +1,2527 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: M_Poiyomi_Slime + m_Shader: {fileID: 4800000, guid: e9e18fbf88ba9eb44ab0d683cd27c2a3, type: 3} + m_ShaderKeywords: BLOOM_LOW _GLOSSYREFLECTIONS_OFF _METALLICGLOSSMAP _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A + _SPECGLOSSMAP + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 3010 + stringTagMap: + OptimizedShaderFolder: M_Poiyomi_Slime-194ba681 + OriginalShader: ".poiyomi/\u2605 Poiyomi Pro \u2605" + RenderType: Opaque + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _1st_ShadeMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _2nd_ShadeMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _AlphaMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _AnisoTangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _AnisoTangentMap1: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BRDFFallback: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BRDFMetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BRDFMetallicMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BRDFSpecularMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BackFaceTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BlueTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BulgeMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: b8960a088bdbdad478c88078ffab9d8c, type: 3} + m_Scale: {x: 3, y: 3} + m_Offset: {x: 0, y: 0} + - _ClearCoatCubeMap: + m_Texture: {fileID: 8900000, guid: 1f79f71b84fc2844bb81e9ae4f5bc384, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ClearCoatMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ClearCoatSmoothnessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ClearcoatFallback: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ClearcoatMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ClippingMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CubeMap: + m_Texture: {fileID: 8900000, guid: 1f79f71b84fc2844bb81e9ae4f5bc384, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DecalMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DecalTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DecalTexture1: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DecalTexture2: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DecalTexture3: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DepthGradient: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DepthMask: + 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: 2800000, guid: b8960a088bdbdad478c88078ffab9d8c, type: 3} + m_Scale: {x: 3, y: 3} + m_Offset: {x: 0, y: 0} + - _DetailTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DissolveDetailNoise: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DissolveEdgeGradient: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DissolveMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DissolveNoiseTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DissolveToTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionFlowTexture: + m_Texture: {fileID: 2800000, guid: 07f0a54a3a4e7754eabc8ced70d7b30c, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionFlowTexture1: + m_Texture: {fileID: 2800000, guid: 07f0a54a3a4e7754eabc8ced70d7b30c, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionMask: + 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} + - _EmissionMap1: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMask1: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionScrollingCurve: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionScrollingCurve1: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _FlipbookMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _FlipbookTexArray: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _GlitterColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _GlitterMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _GlitterTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _GrabPassBlendMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _GreenTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HoloAlphaMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceRamp: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _LightingAOTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _LightingDetailShadows: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _LightingShadowMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _LightingShadowTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainColorAdjustTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainFadeTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainHueShiftMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: a6d6984545cde4a4f9317b17d6dca225, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Matcap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Matcap2: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Matcap2Mask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MatcapMask: + 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} + - _MetallicMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicTintMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MirrorTexture: + 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} + - _OrificeData: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OutlineMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OutlineTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _PanoCubeMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _PanoMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _PanosphereTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxHeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxHeightMapMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxInternalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxInternalMapMask: + 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} + - _RGBMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _RedTexure: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _RgbNormalB: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _RgbNormalG: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _RgbNormalR: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _RimEnviroMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _RimMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _RimTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _RimWidthNoiseTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SSSThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SkinLUT: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SmoothnessMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpawnInNoise: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularAnisoJitterMacro: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularAnisoJitterMacro1: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularAnisoJitterMicro: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularAnisoJitterMicro1: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularMap1: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularMask1: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularMetallicMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularMetallicMap1: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TextGlyphs: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ToonRamp: + m_Texture: {fileID: 2800000, guid: 61bd594533da4fc42bd46ef93ba5a4f6, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ToonRamp1: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ToonRamp2: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _VertexManipulationHeightMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _VideoDebugTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _VideoGameboyRamp: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _VideoMaskTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _VideoPixelTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _VoronoiMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _VoronoiNoise: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - DSGI: 0 + - Instancing: 0 + - LightmapFlags: 0 + - _1st2nd_Shades_Feather: 0.0001 + - _1st2nd_Shades_FeatherAnimated: 0 + - _1stShadeMapMask_Inverse: 0 + - _1stShadeMapMask_InverseAnimated: 0 + - _1st_ShadeColorAnimated: 0 + - _1st_ShadeMapAnimated: 0 + - _1st_ShadeMapPanAnimated: 0 + - _1st_ShadeMapUV: 0 + - _1st_ShadeMapUVAnimated: 0 + - _2ndShadeMapMask_Inverse: 0 + - _2ndShadeMapMask_InverseAnimated: 0 + - _2nd_ShadeColorAnimated: 0 + - _2nd_ShadeMapAnimated: 0 + - _2nd_ShadeMapPanAnimated: 0 + - _2nd_ShadeMapUV: 0 + - _2nd_ShadeMapUVAnimated: 0 + - _AOStrength: 0 + - _AOStrengthAnimated: 0 + - _AlphaMaskAnimated: 0 + - _AlphaMaskPanAnimated: 0 + - _AlphaMaskUV: 0 + - _AlphaMaskUVAnimated: 0 + - _AlphaMod: 0 + - _AlphaModAnimated: 0 + - _AlphaPremultiply: 0 + - _AlphaPremultiplyAnimated: 0 + - _AlphaToMask: 0 + - _AlphaToMaskAnimated: 0 + - _AngleCompareTo: 0 + - _AngleCompareToAnimated: 0 + - _AngleForwardDirectionAnimated: 0 + - _AngleMinAlpha: 0 + - _AngleMinAlphaAnimated: 0 + - _AngleType: 0 + - _AngleTypeAnimated: 0 + - _AnisoSpec1Alpha: 1 + - _AnisoSpec1Alpha1: 1 + - _AnisoSpec1Alpha1Animated: 0 + - _AnisoSpec1AlphaAnimated: 0 + - _AnisoSpec2Alpha: 1 + - _AnisoSpec2Alpha1: 1 + - _AnisoSpec2Alpha1Animated: 0 + - _AnisoSpec2AlphaAnimated: 0 + - _AnisoTangentMap1Animated: 0 + - _AnisoTangentMap1PanAnimated: 0 + - _AnisoTangentMap1UV: 0 + - _AnisoTangentMap1UVAnimated: 0 + - _AnisoTangentMapAnimated: 0 + - _AnisoTangentMapPanAnimated: 0 + - _AnisoTangentMapUV: 0 + - _AnisoTangentMapUVAnimated: 0 + - _AnisoUseTangentMap: 0 + - _AnisoUseTangentMap1: 0 + - _AnisoUseTangentMap1Animated: 0 + - _AnisoUseTangentMapAnimated: 0 + - _AttenuationMultiplier: 0 + - _AttenuationMultiplierAnimated: 0 + - _AudioLinkAddEmission1Band: 0 + - _AudioLinkAddEmissionBand: 0 + - _AudioLinkAverageRange: 0.5 + - _AudioLinkAveraging: 0 + - _AudioLinkDebugAnimate: 0 + - _AudioLinkDebugBass: 0 + - _AudioLinkDebugHighMid: 0 + - _AudioLinkDebugLowMid: 0 + - _AudioLinkDebugTreble: 0 + - _AudioLinkDecal0AlphaBand: 0 + - _AudioLinkDecal0EmissionBand: 0 + - _AudioLinkDecal0ScaleBand: 0 + - _AudioLinkDecal1AlphaBand: 0 + - _AudioLinkDecal1EmissionBand: 0 + - _AudioLinkDecal1ScaleBand: 0 + - _AudioLinkDecal2AlphaBand: 0 + - _AudioLinkDecal2EmissionBand: 0 + - _AudioLinkDecal2ScaleBand: 0 + - _AudioLinkDecal3AlphaBand: 0 + - _AudioLinkDecal3EmissionBand: 0 + - _AudioLinkDecal3ScaleBand: 0 + - _AudioLinkDelay: 0 + - _AudioLinkDissolveAlphaBand: 0 + - _AudioLinkDissolveDetailBand: 0 + - _AudioLinkEmission1CenterOutBand: 0 + - _AudioLinkEmission1StrengthBand: 0 + - _AudioLinkEmissionCenterOutBand: 0 + - _AudioLinkEmissionStrengthBand: 0 + - _AudioLinkHelp: 0 + - _BRDFAnisotropy: 0 + - _BRDFAnisotropyAnimated: 0 + - _BRDFFallbackAnimated: 0 + - _BRDFForceFallback: 0 + - _BRDFForceFallbackAnimated: 0 + - _BRDFGlossiness: 0 + - _BRDFGlossinessAnimated: 0 + - _BRDFInvertGlossiness: 0 + - _BRDFInvertGlossinessAnimated: 0 + - _BRDFMetallic: 0 + - _BRDFMetallicAnimated: 0 + - _BRDFMetallicGlossMapAnimated: 0 + - _BRDFMetallicGlossMapPanAnimated: 0 + - _BRDFMetallicGlossMapToolTip: 0 + - _BRDFMetallicGlossMapToolTipAnimated: 0 + - _BRDFMetallicGlossMapUV: 0 + - _BRDFMetallicGlossMapUVAnimated: 0 + - _BRDFMetallicMapAnimated: 0 + - _BRDFMetallicMapPanAnimated: 0 + - _BRDFMetallicMapToolTip: 0 + - _BRDFMetallicMapToolTipAnimated: 0 + - _BRDFMetallicMapUV: 0 + - _BRDFMetallicMapUVAnimated: 0 + - _BRDFReflectance: 0.5 + - _BRDFReflectanceAnimated: 0 + - _BRDFReflectionsEnabled: 1 + - _BRDFReflectionsEnabledAnimated: 0 + - _BRDFSpecularEnabled: 1 + - _BRDFSpecularEnabledAnimated: 0 + - _BRDFSpecularMapAnimated: 0 + - _BRDFSpecularMapPanAnimated: 0 + - _BRDFSpecularMapToolTip: 0 + - _BRDFSpecularMapToolTipAnimated: 0 + - _BRDFSpecularMapUV: 0 + - _BRDFSpecularMapUVAnimated: 0 + - _BackFaceColorAnimated: 0 + - _BackFaceDetailIntensity: 1 + - _BackFaceDetailIntensityAnimated: 0 + - _BackFaceEmissionStrength: 0 + - _BackFaceEmissionStrengthAnimated: 0 + - _BackFaceEnabled: 0 + - _BackFaceEnabledAnimated: 0 + - _BackFaceHueShift: 0 + - _BackFaceHueShiftAnimated: 0 + - _BackFacePanningAnimated: 0 + - _BackFaceTextureAnimated: 0 + - _BackFaceTextureUV: 0 + - _BackFaceTextureUVAnimated: 0 + - _BaseColor_Step: 0.5 + - _BaseColor_StepAnimated: 0 + - _BaseShade_Feather: 0.0001 + - _BaseShade_FeatherAnimated: 0 + - _BlackLightMaskClearCoat: 4 + - _BlackLightMaskClearCoatAnimated: 0 + - _BlackLightMaskDebug: 0 + - _BlackLightMaskDebugAnimated: 0 + - _BlackLightMaskDissolve: 4 + - _BlackLightMaskDissolveAnimated: 0 + - _BlackLightMaskEmission: 4 + - _BlackLightMaskEmission2: 4 + - _BlackLightMaskEmission2Animated: 0 + - _BlackLightMaskEmissionAnimated: 0 + - _BlackLightMaskEnabled: 0 + - _BlackLightMaskEnabledAnimated: 0 + - _BlackLightMaskEndAnimated: 0 + - _BlackLightMaskFlipbook: 4 + - _BlackLightMaskFlipbookAnimated: 0 + - _BlackLightMaskGlitter: 4 + - _BlackLightMaskGlitterAnimated: 0 + - _BlackLightMaskIridescence: 4 + - _BlackLightMaskIridescenceAnimated: 0 + - _BlackLightMaskKeysAnimated: 0 + - _BlackLightMaskMatcap: 4 + - _BlackLightMaskMatcap2: 4 + - _BlackLightMaskMatcap2Animated: 0 + - _BlackLightMaskMatcapAnimated: 0 + - _BlackLightMaskMetallic: 4 + - _BlackLightMaskMetallicAnimated: 0 + - _BlackLightMaskPanosphere: 4 + - _BlackLightMaskPanosphereAnimated: 0 + - _BlackLightMaskStartAnimated: 0 + - _BlendOp: 0 + - _BlendOpAlpha: 0 + - _BlendOpAlphaAnimated: 0 + - _BlendOpAnimated: 0 + - _BlendshapeBadScaleFix: 1 + - _BlendshapePower: 1 + - _BlueColorAnimated: 0 + - _BlueTextureAnimated: 0 + - _BuldgeFadeLength: 31.55 + - _BuldgeFadeLengthAnimated: 0 + - _BuldgeHeight: 0.2 + - _BuldgeHeightAnimated: 0 + - _BulgeMaskAnimated: 0 + - _BulgeOffset: 0 + - _BulgePower: 0 + - _BumpMapAnimated: 0 + - _BumpMapPanAnimated: 0 + - _BumpMapUV: 0 + - _BumpMapUVAnimated: 0 + - _BumpScale: 0.1 + - _BumpScaleAnimated: 0 + - _CameraAngleMax: 90 + - _CameraAngleMaxAnimated: 0 + - _CameraAngleMin: 45 + - _CameraAngleMinAnimated: 0 + - _ClearCoat: 1 + - _ClearCoatAnimated: 0 + - _ClearCoatCubeMapAnimated: 0 + - _ClearCoatForceLighting: 0 + - _ClearCoatForceLightingAnimated: 0 + - _ClearCoatInvertSmoothness: 0 + - _ClearCoatInvertSmoothnessAnimated: 0 + - _ClearCoatMaskAnimated: 0 + - _ClearCoatMaskPanAnimated: 0 + - _ClearCoatMaskUV: 0 + - _ClearCoatMaskUVAnimated: 0 + - _ClearCoatNormalToUse: 0 + - _ClearCoatNormalToUseAnimated: 0 + - _ClearCoatSampleWorld: 0 + - _ClearCoatSampleWorldAnimated: 0 + - _ClearCoatSmoothness: 0 + - _ClearCoatSmoothnessAnimated: 0 + - _ClearCoatSmoothnessMapAnimated: 0 + - _ClearCoatSmoothnessMapPanAnimated: 0 + - _ClearCoatSmoothnessMapUV: 0 + - _ClearCoatSmoothnessMapUVAnimated: 0 + - _ClearCoatTintAnimated: 0 + - _Clearcoat: 1 + - _ClearcoatAnimated: 0 + - _ClearcoatAnisotropy: 0 + - _ClearcoatAnisotropyAnimated: 0 + - _ClearcoatEnableReflections: 1 + - _ClearcoatEnableReflectionsAnimated: 0 + - _ClearcoatEnableSpecular: 1 + - _ClearcoatEnableSpecularAnimated: 0 + - _ClearcoatFallbackAnimated: 0 + - _ClearcoatForceFallback: 0 + - _ClearcoatForceFallbackAnimated: 0 + - _ClearcoatGlossiness: 0 + - _ClearcoatGlossinessAnimated: 0 + - _ClearcoatHelpBox: 0 + - _ClearcoatInvertSmoothness: 0 + - _ClearcoatInvertSmoothnessAnimated: 0 + - _ClearcoatMapAnimated: 0 + - _ClearcoatMapPanAnimated: 0 + - _ClearcoatMapUV: 0 + - _ClearcoatMapUVAnimated: 0 + - _ClippingMaskAnimated: 0 + - _ClippingMaskPanAnimated: 0 + - _ClippingMaskUV: 0 + - _ClippingMaskUVAnimated: 0 + - _ColorAnimated: 0 + - _ColorMask: 15 + - _ColorMaskAnimated: 0 + - _ContinuousDissolve: 0 + - _ContinuousDissolveAnimated: 0 + - _CubeMapAnimated: 0 + - _Cull: 2 + - _CullAnimated: 0 + - _Curvature: 0 + - _Cutoff: 0 + - _CutoffAnimated: 0 + - _DebugCameraData: 0 + - _DebugCameraDataAnimated: 0 + - _DebugEnabled: 0 + - _DebugLightingData: 0 + - _DebugLightingDataAnimated: 0 + - _DebugMeshData: 0 + - _DebugMeshDataAnimated: 0 + - _DecalBlendAdd: 0 + - _DecalBlendAddAnimated: 0 + - _DecalBlendAlpha: 1 + - _DecalBlendAlpha1: 1 + - _DecalBlendAlpha2: 1 + - _DecalBlendAlpha3: 1 + - _DecalBlendAlphaAnimated: 0 + - _DecalBlendMultiply: 0 + - _DecalBlendMultiplyAnimated: 0 + - _DecalBlendReplace: 0 + - _DecalBlendReplaceAnimated: 0 + - _DecalBlendType: 0 + - _DecalBlendType1: 0 + - _DecalBlendType2: 0 + - _DecalBlendType3: 0 + - _DecalBlendTypeAnimated: 0 + - _DecalColorAnimated: 0 + - _DecalEmissionStrength: 0 + - _DecalEmissionStrength1: 0 + - _DecalEmissionStrength2: 0 + - _DecalEmissionStrength3: 0 + - _DecalEmissionStrengthAnimated: 0 + - _DecalEnabled: 0 + - _DecalEnabled1: 0 + - _DecalEnabled2: 0 + - _DecalEnabled3: 0 + - _DecalEnabledAnimated: 0 + - _DecalHueShift: 0 + - _DecalHueShift1: 0 + - _DecalHueShift2: 0 + - _DecalHueShift3: 0 + - _DecalHueShiftAnimated: 0 + - _DecalHueShiftEnabled: 0 + - _DecalHueShiftEnabled1: 0 + - _DecalHueShiftEnabled2: 0 + - _DecalHueShiftEnabled3: 0 + - _DecalHueShiftEnabledAnimated: 0 + - _DecalHueShiftSpeed: 0 + - _DecalHueShiftSpeed1: 0 + - _DecalHueShiftSpeed2: 0 + - _DecalHueShiftSpeed3: 0 + - _DecalHueShiftSpeedAnimated: 0 + - _DecalMaskAnimated: 0 + - _DecalMaskPanAnimated: 0 + - _DecalMaskUV: 0 + - _DecalMaskUVAnimated: 0 + - _DecalPositionAnimated: 0 + - _DecalRotation: 0 + - _DecalRotation1: 0 + - _DecalRotation2: 0 + - _DecalRotation3: 0 + - _DecalRotationAnimated: 0 + - _DecalRotationSpeed: 0 + - _DecalRotationSpeed1: 0 + - _DecalRotationSpeed2: 0 + - _DecalRotationSpeed3: 0 + - _DecalRotationSpeedAnimated: 0 + - _DecalScaleAnimated: 0 + - _DecalTexture1UV: 0 + - _DecalTexture2UV: 0 + - _DecalTexture3UV: 0 + - _DecalTextureAnimated: 0 + - _DecalTexturePanAnimated: 0 + - _DecalTextureUV: 0 + - _DecalTextureUVAnimated: 0 + - _DecalTiled: 0 + - _DecalTiled1: 0 + - _DecalTiled2: 0 + - _DecalTiled3: 0 + - _DecalTiledAnimated: 0 + - _DepthAlphaMax: 1 + - _DepthAlphaMaxAnimated: 0 + - _DepthAlphaMin: 1 + - _DepthAlphaMinAnimated: 0 + - _DepthGlowColorAnimated: 0 + - _DepthGlowEmission: 3 + - _DepthGlowEmissionAnimated: 0 + - _DepthGradientAnimated: 0 + - _DepthGradientBlend: 0 + - _DepthGradientBlendAnimated: 0 + - _DepthGradientPanAnimated: 0 + - _DepthGradientTextureUV: 0 + - _DepthGradientTextureUVAnimated: 0 + - _DepthGradientUV: 0 + - _DepthGradientUVAnimated: 0 + - _DepthMaskAnimated: 0 + - _DepthMaskPanAnimated: 0 + - _DepthMaskUV: 0 + - _DepthMaskUVAnimated: 0 + - _DetailBrightness: 1 + - _DetailBrightnessAnimated: 0 + - _DetailEnabled: 0 + - _DetailMaskAnimated: 0 + - _DetailMaskPanAnimated: 0 + - _DetailMaskUV: 0 + - _DetailMaskUVAnimated: 0 + - _DetailNormalMapAnimated: 0 + - _DetailNormalMapPanAnimated: 0 + - _DetailNormalMapScale: 0.1 + - _DetailNormalMapScaleAnimated: 0 + - _DetailNormalMapUV: 0 + - _DetailNormalMapUVAnimated: 0 + - _DetailTexAnimated: 0 + - _DetailTexIntensity: 1 + - _DetailTexIntensityAnimated: 0 + - _DetailTexPanAnimated: 0 + - _DetailTexUV: 0 + - _DetailTexUVAnimated: 0 + - _DetailTintAnimated: 0 + - _DisableDirectionalInAdd: 1 + - _DissolveAlpha: 0 + - _DissolveAlpha0: 0 + - _DissolveAlpha0Animated: 0 + - _DissolveAlpha1: 0 + - _DissolveAlpha1Animated: 0 + - _DissolveAlpha2: 0 + - _DissolveAlpha2Animated: 0 + - _DissolveAlpha3: 0 + - _DissolveAlpha3Animated: 0 + - _DissolveAlpha4: 0 + - _DissolveAlpha4Animated: 0 + - _DissolveAlpha5: 0 + - _DissolveAlpha5Animated: 0 + - _DissolveAlpha6: 0 + - _DissolveAlpha6Animated: 0 + - _DissolveAlpha7: 0 + - _DissolveAlpha7Animated: 0 + - _DissolveAlpha8: 0 + - _DissolveAlpha8Animated: 0 + - _DissolveAlpha9: 0 + - _DissolveAlpha9Animated: 0 + - _DissolveAlphaAnimated: 0 + - _DissolveDetailNoiseAnimated: 0 + - _DissolveDetailNoisePanAnimated: 0 + - _DissolveDetailNoiseUV: 0 + - _DissolveDetailNoiseUVAnimated: 0 + - _DissolveDetailStrength: 0.1 + - _DissolveDetailStrengthAnimated: 0 + - _DissolveEdgeColorAnimated: 0 + - _DissolveEdgeEmission: 0 + - _DissolveEdgeEmissionAnimated: 0 + - _DissolveEdgeGradientAnimated: 0 + - _DissolveEdgeHardness: 0.5 + - _DissolveEdgeHardnessAnimated: 0 + - _DissolveEdgeHueShift: 0 + - _DissolveEdgeHueShiftAnimated: 0 + - _DissolveEdgeHueShiftEnabled: 0 + - _DissolveEdgeHueShiftEnabledAnimated: 0 + - _DissolveEdgeHueShiftSpeed: 0 + - _DissolveEdgeHueShiftSpeedAnimated: 0 + - _DissolveEdgeWidth: 0.025 + - _DissolveEdgeWidthAnimated: 0 + - _DissolveEmission1Side: 2 + - _DissolveEmission1SideAnimated: 0 + - _DissolveEmissionSide: 2 + - _DissolveEmissionSideAnimated: 0 + - _DissolveEndPointAnimated: 0 + - _DissolveHueShift: 0 + - _DissolveHueShiftAnimated: 0 + - _DissolveHueShiftEnabled: 0 + - _DissolveHueShiftEnabledAnimated: 0 + - _DissolveHueShiftSpeed: 0 + - _DissolveHueShiftSpeedAnimated: 0 + - _DissolveInvertDetailNoise: 0 + - _DissolveInvertDetailNoiseAnimated: 0 + - _DissolveInvertNoise: 0 + - _DissolveInvertNoiseAnimated: 0 + - _DissolveMaskAnimated: 0 + - _DissolveMaskInvert: 0 + - _DissolveMaskInvertAnimated: 0 + - _DissolveMaskPanAnimated: 0 + - _DissolveMaskUV: 0 + - _DissolveMaskUVAnimated: 0 + - _DissolveNoiseTextureAnimated: 0 + - _DissolveNoiseTexturePanAnimated: 0 + - _DissolveNoiseTextureUV: 0 + - _DissolveNoiseTextureUVAnimated: 0 + - _DissolveP2PEdgeLength: 0.1 + - _DissolveP2PEdgeLengthAnimated: 0 + - _DissolveP2PWorldLocal: 0 + - _DissolveP2PWorldLocalAnimated: 0 + - _DissolveStartPointAnimated: 0 + - _DissolveTextureColorAnimated: 0 + - _DissolveToEmissionStrength: 0 + - _DissolveToEmissionStrengthAnimated: 0 + - _DissolveToTextureAnimated: 0 + - _DissolveToTexturePanAnimated: 0 + - _DissolveToTextureUV: 0 + - _DissolveToTextureUVAnimated: 0 + - _DissolveType: 1 + - _DissolveTypeAnimated: 0 + - _DissolveUseVertexColors: 0 + - _DissolveUseVertexColorsAnimated: 0 + - _DistortionFlowTexture1Animated: 0 + - _DistortionFlowTextureAnimated: 0 + - _DistortionMaskAnimated: 0 + - _DistortionMaskPanAnimated: 0 + - _DistortionMaskUV: 0 + - _DistortionMaskUVAnimated: 0 + - _DistortionSpeed1Animated: 0 + - _DistortionSpeedAnimated: 0 + - _DistortionStrength: 0.5 + - _DistortionStrength1: 0.5 + - _DistortionStrength1Animated: 0 + - _DistortionStrengthAnimated: 0 + - _DitherGradient: 0.1 + - _DitherGradientAnimated: 0 + - _DitheringEnabled: 0 + - _DitheringEnabledAnimated: 0 + - _DstBlend: 0 + - _DstBlendAnimated: 0 + - _EmissionBaseColorAsMap: 0 + - _EmissionBaseColorAsMap1: 0 + - _EmissionBaseColorAsMap1Animated: 0 + - _EmissionBaseColorAsMapAnimated: 0 + - _EmissionBlinkingEnabled: 0 + - _EmissionBlinkingEnabled1: 0 + - _EmissionBlinkingEnabledAnimated: 0 + - _EmissionBlinkingOffset: 0 + - _EmissionBlinkingOffset1: 0 + - _EmissionBlinkingOffset1Animated: 0 + - _EmissionBlinkingOffsetAnimated: 0 + - _EmissionCenterOutEnabled: 0 + - _EmissionCenterOutEnabled1: 0 + - _EmissionCenterOutEnabled1Animated: 0 + - _EmissionCenterOutEnabledAnimated: 0 + - _EmissionCenterOutSpeed: 5 + - _EmissionCenterOutSpeed1: 5 + - _EmissionCenterOutSpeed1Animated: 0 + - _EmissionCenterOutSpeedAnimated: 0 + - _EmissionColor1Animated: 0 + - _EmissionColorAnimated: 0 + - _EmissionHueShift: 0 + - _EmissionHueShift1: 0 + - _EmissionHueShift1Animated: 0 + - _EmissionHueShiftAnimated: 0 + - _EmissionHueShiftEnabled: 0 + - _EmissionHueShiftEnabled1: 0 + - _EmissionHueShiftEnabled1Animated: 0 + - _EmissionHueShiftEnabledAnimated: 0 + - _EmissionHueShiftSpeed: 0 + - _EmissionHueShiftSpeed1: 0 + - _EmissionMap1Animated: 0 + - _EmissionMap1PanAnimated: 0 + - _EmissionMap1UV: 0 + - _EmissionMap1UVAnimated: 0 + - _EmissionMapAnimated: 0 + - _EmissionMapPanAnimated: 0 + - _EmissionMapUV: 0 + - _EmissionMapUVAnimated: 0 + - _EmissionMask1Animated: 0 + - _EmissionMask1PanAnimated: 0 + - _EmissionMask1UV: 0 + - _EmissionMask1UVAnimated: 0 + - _EmissionMaskAnimated: 0 + - _EmissionMaskPanAnimated: 0 + - _EmissionMaskUV: 0 + - _EmissionMaskUVAnimated: 0 + - _EmissionReplace: 0 + - _EmissionReplaceAnimated: 0 + - _EmissionScrollingCurve1Animated: 0 + - _EmissionScrollingCurveAnimated: 0 + - _EmissionScrollingOffset: 0 + - _EmissionScrollingOffset1: 0 + - _EmissionScrollingOffset1Animated: 0 + - _EmissionScrollingOffsetAnimated: 0 + - _EmissionScrollingUseCurve: 0 + - _EmissionScrollingUseCurve1: 0 + - _EmissionScrollingUseCurve1Animated: 0 + - _EmissionScrollingUseCurveAnimated: 0 + - _EmissionScrollingVertexColor: 0 + - _EmissionScrollingVertexColor1: 0 + - _EmissionScrollingVertexColor1Animated: 0 + - _EmissionScrollingVertexColorAnimated: 0 + - _EmissionStrength: 0 + - _EmissionStrength1: 0 + - _EmissionStrength1Animated: 0 + - _EmissionStrengthAnimated: 0 + - _EmissiveBlink_Max: 1 + - _EmissiveBlink_Max1: 1 + - _EmissiveBlink_Max1Animated: 0 + - _EmissiveBlink_MaxAnimated: 0 + - _EmissiveBlink_Min: 0 + - _EmissiveBlink_Min1: 0 + - _EmissiveBlink_Min1Animated: 0 + - _EmissiveBlink_MinAnimated: 0 + - _EmissiveBlink_Velocity: 4 + - _EmissiveBlink_Velocity1: 4 + - _EmissiveBlink_Velocity1Animated: 0 + - _EmissiveBlink_VelocityAnimated: 0 + - _EmissiveScroll_Direction1Animated: 0 + - _EmissiveScroll_DirectionAnimated: 0 + - _EmissiveScroll_Interval: 20 + - _EmissiveScroll_Interval1: 20 + - _EmissiveScroll_Interval1Animated: 0 + - _EmissiveScroll_IntervalAnimated: 0 + - _EmissiveScroll_Velocity: 10 + - _EmissiveScroll_Velocity1: 10 + - _EmissiveScroll_Velocity1Animated: 0 + - _EmissiveScroll_VelocityAnimated: 0 + - _EmissiveScroll_Width: 10 + - _EmissiveScroll_Width1: 10 + - _EmissiveScroll_Width1Animated: 0 + - _EmissiveScroll_WidthAnimated: 0 + - _EnableAudioLink: 0 + - _EnableAudioLinkDebug: 0 + - _EnableBRDF: 0 + - _EnableBlur: 0 + - _EnableBlurAnimated: 0 + - _EnableBulge: 1 + - _EnableBulgeAnimated: 0 + - _EnableClearCoat: 0 + - _EnableClearCoatAnimated: 0 + - _EnableDissolve: 0 + - _EnableDissolveAnimated: 0 + - _EnableDissolveAudioLink: 0 + - _EnableDistortion: 0 + - _EnableDistortionAnimated: 0 + - _EnableEmission: 0 + - _EnableEmission1: 0 + - _EnableEmission1Animated: 0 + - _EnableEmission1CenterOutAudioLink: 0 + - _EnableEmission1StrengthAudioLink: 0 + - _EnableEmissionAnimated: 0 + - _EnableEmissionCenterOutAudioLink: 0 + - _EnableEmissionStrengthAudioLink: 0 + - _EnableEnvironmentalRim: 0 + - _EnableEnvironmentalRimAnimated: 0 + - _EnableFlipbook: 0 + - _EnableFlipbookAnimated: 0 + - _EnableGITDEmission: 0 + - _EnableGITDEmission1: 0 + - _EnableGITDEmission1Animated: 0 + - _EnableGITDEmissionAnimated: 0 + - _EnableHolo: 0 + - _EnableHoloAnimated: 0 + - _EnableIridescence: 0 + - _EnableIridescenceAnimated: 0 + - _EnableLighting: 0 + - _EnableLightingAnimated: 0 + - _EnableMetallic: 1 + - _EnableMetallicAnimated: 0 + - _EnableMirrorOptions: 0 + - _EnableMirrorOptionsAnimated: 0 + - _EnableMirrorTexture: 0 + - _EnableMirrorTextureAnimated: 0 + - _EnableRandom: 0 + - _EnableRandomAnimated: 0 + - _EnableRimLighting: 1 + - _EnableRimLightingAnimated: 0 + - _EnableSSS: 0 + - _EnableSSSAnimated: 0 + - _EnableScifiSpawnIn: 0 + - _EnableScifiSpawnInAnimated: 0 + - _EnableSpecular: 1 + - _EnableSpecular1: 0 + - _EnableSpecular1Animated: 0 + - _EnableSpecularAnimated: 0 + - _EnableTouchGlow: 0 + - _EnableTouchGlowAnimated: 0 + - _EnableVertexGlitch: 0 + - _EnableVertexGlitchAnimated: 0 + - _EnableVideo: 0 + - _EnableVideoAnimated: 0 + - _EnableVoronoi: 0 + - _EnableVoronoiAnimated: 0 + - _EntranceStiffness: 0 + - _EntryOpenDuration: 0.1 + - _FadeLength: 0.02 + - _FadeLengthAnimated: 0 + - _FlipbookAdd: 0 + - _FlipbookAddAnimated: 0 + - _FlipbookAlphaControlsFinalAlpha: 0 + - _FlipbookAlphaControlsFinalAlphaAnimated: 0 + - _FlipbookColorAnimated: 0 + - _FlipbookColorReplaces: 0 + - _FlipbookColorReplacesAnimated: 0 + - _FlipbookCrossfadeEnabled: 0 + - _FlipbookCrossfadeEnabledAnimated: 0 + - _FlipbookCrossfadeRangeAnimated: 0 + - _FlipbookCurrentFrame: -1 + - _FlipbookCurrentFrameAnimated: 0 + - _FlipbookEmissionStrength: 0 + - _FlipbookEmissionStrengthAnimated: 0 + - _FlipbookFPS: 30 + - _FlipbookFPSAnimated: 0 + - _FlipbookHueShift: 0 + - _FlipbookHueShiftAnimated: 0 + - _FlipbookHueShiftEnabled: 0 + - _FlipbookHueShiftEnabledAnimated: 0 + - _FlipbookHueShiftSpeed: 0 + - _FlipbookHueShiftSpeedAnimated: 0 + - _FlipbookIntensityControlsAlpha: 0 + - _FlipbookIntensityControlsAlphaAnimated: 0 + - _FlipbookMaskAnimated: 0 + - _FlipbookMaskPanAnimated: 0 + - _FlipbookMaskUV: 0 + - _FlipbookMaskUVAnimated: 0 + - _FlipbookMultiply: 0 + - _FlipbookMultiplyAnimated: 0 + - _FlipbookReplace: 1 + - _FlipbookReplaceAnimated: 0 + - _FlipbookRotation: 0 + - _FlipbookRotationAnimated: 0 + - _FlipbookRotationSpeed: 0 + - _FlipbookRotationSpeedAnimated: 0 + - _FlipbookScaleOffsetAnimated: 0 + - _FlipbookTexArrayAnimated: 0 + - _FlipbookTexArrayPanAnimated: 0 + - _FlipbookTexArrayUV: 0 + - _FlipbookTexArrayUVAnimated: 0 + - _FlipbookTiled: 0 + - _FlipbookTiledAnimated: 0 + - _FlipbookTotalFrames: 1 + - _FlipbookTotalFramesAnimated: 0 + - _ForceOpaque: 0 + - _ForceOpaqueAnimated: 0 + - _ForgotToLockMaterial: 1 + - _GIEmissionMultiplier: 1 + - _GITDEMaxEmissionMultiplier: 0 + - _GITDEMaxEmissionMultiplier1: 0 + - _GITDEMaxEmissionMultiplier1Animated: 0 + - _GITDEMaxEmissionMultiplierAnimated: 0 + - _GITDEMaxLight: 1 + - _GITDEMaxLight1: 1 + - _GITDEMaxLight1Animated: 0 + - _GITDEMaxLightAnimated: 0 + - _GITDEMinEmissionMultiplier: 1 + - _GITDEMinEmissionMultiplier1: 1 + - _GITDEMinEmissionMultiplier1Animated: 0 + - _GITDEMinEmissionMultiplierAnimated: 0 + - _GITDEMinLight: 0 + - _GITDEMinLight1: 0 + - _GITDEMinLight1Animated: 0 + - _GITDEMinLightAnimated: 0 + - _GITDEWorldOrMesh: 0 + - _GITDEWorldOrMesh1: 0 + - _GITDEWorldOrMesh1Animated: 0 + - _GITDEWorldOrMeshAnimated: 0 + - _GlitterAngleRange: 90 + - _GlitterAngleRangeAnimated: 0 + - _GlitterBias: 0.8 + - _GlitterBiasAnimated: 0 + - _GlitterBlendType: 0 + - _GlitterBlendTypeAnimated: 0 + - _GlitterBrightness: 3 + - _GlitterBrightnessAnimated: 0 + - _GlitterCenterSize: 0.08 + - _GlitterCenterSizeAnimated: 0 + - _GlitterColorAnimated: 0 + - _GlitterColorMapAnimated: 0 + - _GlitterColorMapPanAnimated: 0 + - _GlitterColorMapUV: 0 + - _GlitterColorMapUVAnimated: 0 + - _GlitterContrast: 300 + - _GlitterContrastAnimated: 0 + - _GlitterEnable: 0 + - _GlitterEnableAnimated: 0 + - _GlitterFrequency: 300 + - _GlitterFrequencyAnimated: 0 + - _GlitterHideInShadow: 0 + - _GlitterHueShift: 0 + - _GlitterHueShiftAnimated: 0 + - _GlitterHueShiftEnabled: 0 + - _GlitterHueShiftEnabledAnimated: 0 + - _GlitterHueShiftSpeed: 0 + - _GlitterHueShiftSpeedAnimated: 0 + - _GlitterJaggyFix: 0 + - _GlitterJaggyFixAnimated: 0 + - _GlitterJitter: 1 + - _GlitterJitterAnimated: 0 + - _GlitterMaskAnimated: 0 + - _GlitterMaskPanAnimated: 0 + - _GlitterMaskUV: 0 + - _GlitterMaskUVAnimated: 0 + - _GlitterMinBrightness: 0 + - _GlitterMinBrightnessAnimated: 0 + - _GlitterMinMaxBrightnessAnimated: 0 + - _GlitterMinMaxSaturationAnimated: 0 + - _GlitterMinMaxSizeAnimated: 0 + - _GlitterMode: 0 + - _GlitterModeAnimated: 0 + - _GlitterPanAnimated: 0 + - _GlitterRandomColors: 0 + - _GlitterRandomColorsAnimated: 0 + - _GlitterRandomRotation: 0 + - _GlitterRandomRotationAnimated: 0 + - _GlitterRandomSize: 0 + - _GlitterRandomSizeAnimated: 0 + - _GlitterShape: 0 + - _GlitterShapeAnimated: 0 + - _GlitterSize: 0.3 + - _GlitterSizeAnimated: 0 + - _GlitterSpeed: 10 + - _GlitterSpeedAnimated: 0 + - _GlitterTextureAnimated: 0 + - _GlitterTexturePanAnimated: 0 + - _GlitterTextureRotation: 0 + - _GlitterTextureRotationAnimated: 0 + - _GlitterUseSurfaceColor: 0 + - _GlitterUseSurfaceColorAnimated: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _GrabBlurDirections: 4 + - _GrabBlurDirectionsAnimated: 0 + - _GrabBlurDistance: 0 + - _GrabBlurDistanceAnimated: 0 + - _GrabBlurQuality: 2 + - _GrabBlurQualityAnimated: 0 + - _GrabDstBlend: 0 + - _GrabDstBlendAnimated: 0 + - _GrabPassBlendFactor: 1 + - _GrabPassBlendFactorAnimated: 0 + - _GrabPassBlendMapUV: 0 + - _GrabPassUseAlpha: 1 + - _GrabPassUseAlphaAnimated: 0 + - _GrabSrcBlend: 2 + - _GrabSrcBlendAnimated: 0 + - _GreenColorAnimated: 0 + - _GreenTextureAnimated: 0 + - _HoloAlphaMapAnimated: 0 + - _HoloCoordinateSpace: 0 + - _HoloCoordinateSpaceAnimated: 0 + - _HoloDirectionAnimated: 0 + - _HoloFresnelAlpha: 0 + - _HoloFresnelAlphaAnimated: 0 + - _HoloLineDensity: 10 + - _HoloLineDensityAnimated: 0 + - _HoloRimSharpness: 0.5 + - _HoloRimSharpnessAnimated: 0 + - _HoloRimWidth: 0.5 + - _HoloRimWidthAnimated: 0 + - _HoloScrollSpeed: 1 + - _HoloScrollSpeedAnimated: 0 + - _IgnoreFog: 0 + - _IgnoreFogAnimated: 0 + - _Inverse_Clipping: 0 + - _InvertSmoothness: 0 + - _InvertSmoothnessAnimated: 0 + - _IridescenceAddBlend: 0 + - _IridescenceAddBlendAnimated: 0 + - _IridescenceEmissionStrength: 0 + - _IridescenceEmissionStrengthAnimated: 0 + - _IridescenceIntensity: 1 + - _IridescenceIntensityAnimated: 0 + - _IridescenceMaskAnimated: 0 + - _IridescenceMaskUV: 0 + - _IridescenceMaskUVAnimated: 0 + - _IridescenceMultiplyBlend: 0 + - _IridescenceMultiplyBlendAnimated: 0 + - _IridescenceNormalIntensity: 1 + - _IridescenceNormalIntensityAnimated: 0 + - _IridescenceNormalMapAnimated: 0 + - _IridescenceNormalSelection: 1 + - _IridescenceNormalSelectionAnimated: 0 + - _IridescenceNormalToggle: 0 + - _IridescenceNormalToggleAnimated: 0 + - _IridescenceNormalUV: 0 + - _IridescenceNormalUVAnimated: 0 + - _IridescenceRampAnimated: 0 + - _IridescenceReplaceBlend: 0 + - _IridescenceReplaceBlendAnimated: 0 + - _IridescenceTime: 0 + - _IridescenceTimeAnimated: 0 + - _Length: 0 + - _LightingAOTexAnimated: 0 + - _LightingAOTexPanAnimated: 0 + - _LightingAOTexUV: 0 + - _LightingAOTexUVAnimated: 0 + - _LightingAdditiveDetailStrength: 1 + - _LightingAdditiveDetailStrengthAnimated: 0 + - _LightingAdditiveGradientEnd: 0.5 + - _LightingAdditiveGradientEndAnimated: 0 + - _LightingAdditiveGradientStart: 0 + - _LightingAdditiveGradientStartAnimated: 0 + - _LightingAdditiveLimitIntensity: 0 + - _LightingAdditiveLimitIntensityAnimated: 0 + - _LightingAdditiveMaxIntensity: 1 + - _LightingAdditiveMaxIntensityAnimated: 0 + - _LightingAdditivePassthrough: 0.5 + - _LightingAdditivePassthroughAnimated: 0 + - _LightingAdditiveType: 1 + - _LightingAdditiveTypeAnimated: 0 + - _LightingDetailShadowsAnimated: 0 + - _LightingDetailShadowsEnabled: 0 + - _LightingDetailShadowsEnabledAnimated: 0 + - _LightingDetailShadowsPanAnimated: 0 + - _LightingDetailShadowsUV: 0 + - _LightingDetailShadowsUVAnimated: 0 + - _LightingDetailStrength: 1 + - _LightingDetailStrengthAnimated: 0 + - _LightingDirectColorMode: 0 + - _LightingDirectColorModeAnimated: 0 + - _LightingEnableAO: 0 + - _LightingEnableAOAnimated: 0 + - _LightingEnableHSL: 0 + - _LightingEnableHSLAnimated: 0 + - _LightingEndColorAnimated: 0 + - _LightingGradientEnd: 0.5 + - _LightingGradientEndAnimated: 0 + - _LightingGradientStart: 0 + - _LightingGradientStartAnimated: 0 + - _LightingHSLIntensity: 1 + - _LightingHSLIntensityAnimated: 0 + - _LightingIgnoreAmbientColor: 0 + - _LightingIgnoreAmbientColorAnimated: 0 + - _LightingIndirectColorMode: 0 + - _LightingIndirectColorModeAnimated: 0 + - _LightingIndirectContribution: 0.2 + - _LightingIndirectContributionAnimated: 0 + - _LightingMinLightBrightness: 0 + - _LightingMinLightBrightnessAnimated: 0 + - _LightingMinShadowBrightnessRatio: 0 + - _LightingMinShadowBrightnessRatioAnimated: 0 + - _LightingMode: 0 + - _LightingModeAnimated: 0 + - _LightingMonochromatic: 0 + - _LightingMonochromaticAnimated: 0 + - _LightingNoIndirectMultiplier: 0.5 + - _LightingNoIndirectMultiplierAnimated: 0 + - _LightingNoIndirectThreshold: 0.01 + - _LightingNoIndirectThresholdAnimated: 0 + - _LightingNumRamps: 1 + - _LightingNumRampsAnimated: 0 + - _LightingOnlyUnityShadows: 0 + - _LightingOnlyUnityShadowsAnimated: 0 + - _LightingRampType: 0 + - _LightingRampTypeAnimated: 0 + - _LightingShadingEnabled: 0 + - _LightingShadingEnabledAnimated: 0 + - _LightingShadowColorAnimated: 0 + - _LightingShadowHuAnimatede: 0 + - _LightingShadowHue: 0.5 + - _LightingShadowHueAnimated: 0 + - _LightingShadowLightness: 0.5 + - _LightingShadowLightnessAnimated: 0 + - _LightingShadowMaskAnimated: 0 + - _LightingShadowMaskPanAnimated: 0 + - _LightingShadowMaskUV: 0 + - _LightingShadowMaskUVAnimated: 0 + - _LightingShadowSaturation: 0.5 + - _LightingShadowSaturationAnimated: 0 + - _LightingShadowStrength1: 1 + - _LightingShadowStrength1Animated: 0 + - _LightingShadowStrength2: 1 + - _LightingShadowStrength2Animated: 0 + - _LightingShadowTextureAnimated: 0 + - _LightingShadowTexturePanAnimated: 0 + - _LightingShadowTextureUV: 0 + - _LightingShadowTextureUVAnimated: 0 + - _LightingStandardControlsToon: 0 + - _LightingStandardControlsToonAnimated: 0 + - _LightingStandardSmoothness: 0 + - _LightingStandardSmoothnessAnimated: 0 + - _LightingType: 0 + - _LightingTypeAnimated: 0 + - _LightingUncapped: 0 + - _LightingUncappedAnimated: 0 + - _LightingWrappedNormalization: 0 + - _LightingWrappedWrap: 0 + - _LineColorAnimated: 0 + - _LineWidth: 0 + - _LineWidthAnimated: 0 + - _LockTooltip: 0 + - _MainAlphaToCoverage: 0 + - _MainAlphaToCoverageAnimated: 0 + - _MainBrightness: 0 + - _MainBrightnessAnimated: 0 + - _MainColorAdjustTextureAnimated: 0 + - _MainColorAdjustTexturePanAnimated: 0 + - _MainColorAdjustTextureUV: 0 + - _MainColorAdjustTextureUVAnimated: 0 + - _MainDistanceFadeAnimated: 0 + - _MainEmissionStrength: 0 + - _MainEmissionStrengthAnimated: 0 + - _MainFadeTextureAnimated: 0 + - _MainFadeTexturePanAnimated: 0 + - _MainFadeTextureUV: 0 + - _MainFadeTextureUVAnimated: 0 + - _MainHueShift: 0 + - _MainHueShiftAnimated: 0 + - _MainHueShiftMaskAnimated: 0 + - _MainHueShiftMaskPanAnimated: 0 + - _MainHueShiftMaskUV: 0 + - _MainHueShiftMaskUVAnimated: 0 + - _MainHueShiftReplace: 1 + - _MainHueShiftReplaceAnimated: 0 + - _MainHueShiftSpeed: 0 + - _MainHueShiftSpeedAnimated: 0 + - _MainHueShiftToggle: 0 + - _MainHueShiftToggleAnimated: 0 + - _MainMinAlpha: 0 + - _MainMinAlphaAnimated: 0 + - _MainMipScale: 0.25 + - _MainMipScaleAnimated: 0 + - _MainShadowClipMod: 0 + - _MainShadowClipModAnimated: 0 + - _MainTexAnimated: 0 + - _MainTexPanAnimated: 0 + - _MainTex_STAnimated: 0 + - _MainTextureUV: 0 + - _MainTextureUVAnimated: 0 + - _MainUseVertexColorAlpha: 0 + - _MainUseVertexColorAlphaAnimated: 0 + - _MainVertexColoring: 0 + - _MainVertexColoringAnimated: 0 + - _Matcap2Add: 0 + - _Matcap2AddAnimated: 0 + - _Matcap2Animated: 0 + - _Matcap2Border: 0.43 + - _Matcap2BorderAnimated: 0 + - _Matcap2ColorAnimated: 0 + - _Matcap2EmissionStrength: 0 + - _Matcap2EmissionStrengthAnimated: 0 + - _Matcap2Enable: 0 + - _Matcap2EnableAnimated: 0 + - _Matcap2HueShift: 0 + - _Matcap2HueShiftAnimated: 0 + - _Matcap2HueShiftEnabled: 0 + - _Matcap2HueShiftEnabledAnimated: 0 + - _Matcap2HueShiftSpeed: 0 + - _Matcap2HueShiftSpeedAnimated: 0 + - _Matcap2Intensity: 1 + - _Matcap2IntensityAnimated: 0 + - _Matcap2LightMask: 0 + - _Matcap2LightMaskAnimated: 0 + - _Matcap2MaskAnimated: 0 + - _Matcap2MaskInvert: 0 + - _Matcap2MaskInvertAnimated: 0 + - _Matcap2MaskPanAnimated: 0 + - _Matcap2MaskUV: 0 + - _Matcap2MaskUVAnimated: 0 + - _Matcap2Multiply: 0 + - _Matcap2MultiplyAnimated: 0 + - _Matcap2Normal: 1 + - _Matcap2NormalAnimated: 0 + - _Matcap2Replace: 0 + - _Matcap2ReplaceAnimated: 0 + - _MatcapAdd: 0 + - _MatcapAddAnimated: 0 + - _MatcapAnimated: 0 + - _MatcapBorder: 0.43 + - _MatcapBorderAnimated: 0 + - _MatcapColorAnimated: 0 + - _MatcapEmissionStrength: 0 + - _MatcapEmissionStrengthAnimated: 0 + - _MatcapEnable: 0 + - _MatcapEnableAnimated: 0 + - _MatcapHueShift: 0 + - _MatcapHueShiftAnimated: 0 + - _MatcapHueShiftEnabled: 0 + - _MatcapHueShiftEnabledAnimated: 0 + - _MatcapHueShiftSpeed: 0 + - _MatcapHueShiftSpeedAnimated: 0 + - _MatcapIntensity: 1 + - _MatcapIntensityAnimated: 0 + - _MatcapLightMask: 0 + - _MatcapLightMaskAnimated: 0 + - _MatcapMaskAnimated: 0 + - _MatcapMaskInvert: 0 + - _MatcapMaskInvertAnimated: 0 + - _MatcapMaskPanAnimated: 0 + - _MatcapMaskUV: 0 + - _MatcapMaskUVAnimated: 0 + - _MatcapMultiply: 0 + - _MatcapMultiplyAnimated: 0 + - _MatcapNormal: 1 + - _MatcapNormalAnimated: 0 + - _MatcapReplace: 1 + - _MatcapReplaceAnimated: 0 + - _MetalReflectionTintAnimated: 0 + - _Metallic: 0 + - _MetallicAnimated: 0 + - _MetallicMaskAnimated: 0 + - _MetallicMaskPanAnimated: 0 + - _MetallicMaskUV: 0 + - _MetallicMaskUVAnimated: 0 + - _MetallicTintMapAnimated: 0 + - _MetallicTintMapPanAnimated: 0 + - _MetallicTintMapUV: 0 + - _MetallicTintMapUVAnimated: 0 + - _Mirror: 0 + - _MirrorAnimated: 0 + - _MirrorTextureAnimated: 0 + - _MirrorTexturePanAnimated: 0 + - _MirrorTextureUV: 0 + - _MirrorTextureUVAnimated: 0 + - _Mode: 8 + - _ModelAngleMax: 90 + - _ModelAngleMaxAnimated: 0 + - _ModelAngleMin: 45 + - _ModelAngleMinAnimated: 0 + - _OcclusionStrength: 1 + - _OffsetFactor: 0 + - _OffsetFactorAnimated: 0 + - _OffsetUnits: 0 + - _OffsetUnitsAnimated: 0 + - _OrifaceEnabled: 0 + - _OrificeChannel: 0 + - _OutlineCull: 1 + - _OutlineCullAnimated: 0 + - _OutlineDropShadowOffsetAnimated: 0 + - _OutlineEmission: 0 + - _OutlineEmissionAnimated: 0 + - _OutlineFadeDistanceAnimated: 0 + - _OutlineFixedSize: 0 + - _OutlineFixedSizeAnimated: 0 + - _OutlineLit: 1 + - _OutlineLitAnimated: 0 + - _OutlineMaskAnimated: 0 + - _OutlineMaskUV: 0 + - _OutlineMode: 0 + - _OutlineModeAnimated: 0 + - _OutlineOffsetFactor: 0 + - _OutlineOffsetUnits: 0 + - _OutlinePersonaDirectionAnimated: 0 + - _OutlineRimLightBlend: 0 + - _OutlineRimLightBlendAnimated: 0 + - _OutlineShadowStrength: 1 + - _OutlineShadowStrengthAnimated: 0 + - _OutlineStencilCompareFunction: 8 + - _OutlineStencilCompareFunctionAnimated: 0 + - _OutlineStencilFailOp: 0 + - _OutlineStencilFailOpAnimated: 0 + - _OutlineStencilPassOp: 0 + - _OutlineStencilPassOpAnimated: 0 + - _OutlineStencilReadMask: 255 + - _OutlineStencilReadMaskAnimated: 0 + - _OutlineStencilRef: 0 + - _OutlineStencilRefAnimated: 0 + - _OutlineStencilWriteMask: 255 + - _OutlineStencilWriteMaskAnimated: 0 + - _OutlineStencilZFailOp: 0 + - _OutlineStencilZFailOpAnimated: 0 + - _OutlineTextureAnimated: 0 + - _OutlineTexturePanAnimated: 0 + - _OutlineTextureUV: 0 + - _OutlineTintMix: 0 + - _OutlineTintMixAnimated: 0 + - _OutlineUseVertexColors: 0 + - _OutlineUseVertexColorsAnimated: 0 + - _OutlinesMaxDistance: 9999 + - _PanoBlend: 0 + - _PanoBlendAnimated: 0 + - _PanoCubeMapAnimated: 0 + - _PanoCubeMapToggle: 0 + - _PanoCubeMapToggleAnimated: 0 + - _PanoEmission: 0 + - _PanoEmissionAnimated: 0 + - _PanoInfiniteStereoToggle: 0 + - _PanoInfiniteStereoToggleAnimated: 0 + - _PanoMaskAnimated: 0 + - _PanoMaskPanAnimated: 0 + - _PanoMaskUV: 0 + - _PanoMaskUVAnimated: 0 + - _PanoToggle: 0 + - _PanoToggleAnimated: 0 + - _PanosphereColorAnimated: 0 + - _PanospherePanAnimated: 0 + - _PanosphereTextureAnimated: 0 + - _Parallax: 0.02 + - _ParallaxBias: 0.42 + - _ParallaxBiasAnimated: 0 + - _ParallaxHeightMapAnimated: 0 + - _ParallaxHeightMapEnabled: 0 + - _ParallaxHeightMapEnabledAnimated: 0 + - _ParallaxHeightMapMaskAnimated: 0 + - _ParallaxHeightMapMaskPanAnimated: 0 + - _ParallaxHeightMapMaskUV: 0 + - _ParallaxHeightMapMaskUVAnimated: 0 + - _ParallaxHeightMapPanAnimated: 0 + - _ParallaxInternalHeightFromAlpha: 0 + - _ParallaxInternalHeightFromAlphaAnimated: 0 + - _ParallaxInternalHeightmapMode: 0 + - _ParallaxInternalHeightmapModeAnimated: 0 + - _ParallaxInternalIterations: 1 + - _ParallaxInternalIterationsAnimated: 0 + - _ParallaxInternalMapAnimated: 0 + - _ParallaxInternalMapEnabled: 0 + - _ParallaxInternalMapEnabledAnimated: 0 + - _ParallaxInternalMapMaskAnimated: 0 + - _ParallaxInternalMapMaskPanAnimated: 0 + - _ParallaxInternalMapMaskUV: 0 + - _ParallaxInternalMapMaskUVAnimated: 0 + - _ParallaxInternalMaxColorAnimated: 0 + - _ParallaxInternalMaxDepth: 1 + - _ParallaxInternalMaxDepthAnimated: 0 + - _ParallaxInternalMaxFade: 1 + - _ParallaxInternalMaxFadeAnimated: 0 + - _ParallaxInternalMinColorAnimated: 0 + - _ParallaxInternalMinDepth: 0 + - _ParallaxInternalMinDepthAnimated: 0 + - _ParallaxInternalMinFade: 0 + - _ParallaxInternalMinFadeAnimated: 0 + - _ParallaxInternalPanDepthSpeedAnimated: 0 + - _ParallaxInternalPanSpeedAnimated: 0 + - _ParallaxMap: 0 + - _ParallaxMapAnimated: 0 + - _ParallaxStrength: 0 + - _ParallaxStrengthAnimated: 0 + - _ParallaxUV: 0 + - _ParallaxUVAnimated: 0 + - _PenetratorEnabled: 0 + - _PoiMode: 1 + - _PoiModeAnimated: 0 + - _RGBBlendMultiplicative: 0 + - _RGBBlendMultiplicativeAnimated: 0 + - _RGBBluePanningAnimated: 0 + - _RGBBlue_UV: 0 + - _RGBBlue_UVAnimated: 0 + - _RGBGreenPanningAnimated: 0 + - _RGBGreen_UV: 0 + - _RGBGreen_UVAnimated: 0 + - _RGBMaskAnimated: 0 + - _RGBMaskEnabled: 0 + - _RGBMaskEnabledAnimated: 0 + - _RGBMaskPanningAnimated: 0 + - _RGBMaskUV: 0 + - _RGBMaskUVAnimated: 0 + - _RGBNormalBlend: 0 + - _RGBNormalBlendAnimated: 0 + - _RGBRedPanningAnimated: 0 + - _RGBRed_UV: 0 + - _RGBRed_UVAnimated: 0 + - _RGBUseVertexColors: 0 + - _RGBUseVertexColorsAnimated: 0 + - _RalivAdvancedHelp: 0 + - _RalivHelp: 0 + - _ReCurvature: 0 + - _RedColorAnimated: 0 + - _RedTexureAnimated: 0 + - _RefractionChromaticAberattion: 0 + - _RefractionChromaticAberattionAnimated: 0 + - _RefractionEnabled: 1 + - _RefractionEnabledAnimated: 0 + - _RefractionIndex: 1.333333 + - _RefractionIndexAnimated: 0 + - _RgbNormalBScale: 0 + - _RgbNormalBUV: 0 + - _RgbNormalGScale: 0 + - _RgbNormalGUV: 0 + - _RgbNormalRScale: 0 + - _RgbNormalRUV: 0 + - _RgbNormalsEnabled: 0 + - _RimBrighten: 0.15 + - _RimBrightenAnimated: 0 + - _RimEnviroBlur: 0.7 + - _RimEnviroBlurAnimated: 0 + - _RimEnviroIntensity: 1 + - _RimEnviroIntensityAnimated: 0 + - _RimEnviroMaskAnimated: 0 + - _RimEnviroMaskPanAnimated: 0 + - _RimEnviroMaskUV: 0 + - _RimEnviroMaskUVAnimated: 0 + - _RimEnviroMinBrightness: 0 + - _RimEnviroMinBrightnessAnimated: 0 + - _RimEnviroSharpness: 0 + - _RimEnviroSharpnessAnimated: 0 + - _RimEnviroWidth: 0.45 + - _RimEnviroWidthAnimated: 0 + - _RimHueShift: 0 + - _RimHueShiftAnimated: 0 + - _RimHueShiftEnabled: 0 + - _RimHueShiftEnabledAnimated: 0 + - _RimHueShiftSpeed: 0 + - _RimHueShiftSpeedAnimated: 0 + - _RimLightColorAnimated: 0 + - _RimLightColorBias: 0 + - _RimLightColorBiasAnimated: 0 + - _RimLightNormal: 1 + - _RimLightNormalAnimated: 0 + - _RimLightingInvert: 0 + - _RimLightingInvertAnimated: 0 + - _RimMaskAnimated: 0 + - _RimMaskPanAnimated: 0 + - _RimMaskUV: 0 + - _RimMaskUVAnimated: 0 + - _RimSharpness: 0.25 + - _RimSharpnessAnimated: 0 + - _RimStrength: 0 + - _RimStrengthAnimated: 0 + - _RimTexAnimated: 0 + - _RimTexPanAnimated: 0 + - _RimTexUV: 0 + - _RimTexUVAnimated: 0 + - _RimWidth: 0.8 + - _RimWidthAnimated: 0 + - _RimWidthNoiseStrength: 0.1 + - _RimWidthNoiseStrengthAnimated: 0 + - _RimWidthNoiseTextureAnimated: 0 + - _RimWidthNoiseTexturePanAnimated: 0 + - _RimWidthNoiseTextureUV: 0 + - _RimWidthNoiseTextureUVAnimated: 0 + - _SSSColorAnimated: 0 + - _SSSDistortion: 1 + - _SSSDistortionAnimated: 0 + - _SSSPower: 5 + - _SSSPowerAnimated: 0 + - _SSSSCale: 0.25 + - _SSSSCaleAnimated: 0 + - _SSSThicknessMapAnimated: 0 + - _SSSThicknessMapPanAnimated: 0 + - _SSSThicknessMapUV: 0 + - _SSSThicknessMapUVAnimated: 0 + - _SSSThicknessMod: 0 + - _SSSThicknessModAnimated: 0 + - _SampleWorld: 0 + - _SampleWorldAnimated: 0 + - _Saturation: 0 + - _SaturationAnimated: 0 + - _ScrollingEmission: 0 + - _ScrollingEmission1: 0 + - _ScrollingEmission1Animated: 0 + - _ScrollingEmissionAnimated: 0 + - _ShadeColor_Step: 0 + - _ShadeColor_StepAnimated: 0 + - _ShaderOptimizerEnabled: 0 + - _ShadowMix: 0 + - _ShadowMixAnimated: 0 + - _ShadowMixThreshold: 0.5 + - _ShadowMixThresholdAnimated: 0 + - _ShadowMixWidthMod: 0.5 + - _ShadowMixWidthModAnimated: 0 + - _ShadowOffset: 0 + - _ShadowOffset1: 0 + - _ShadowOffset1Animated: 0 + - _ShadowOffset2: 0 + - _ShadowOffset2Animated: 0 + - _ShadowOffsetAnimated: 0 + - _ShadowStrength: 1 + - _ShadowStrengthAnimated: 0 + - _Shape1Depth: 0.1 + - _Shape1Duration: 0.1 + - _Shape2Depth: 0.2 + - _Shape2Duration: 0.1 + - _Shape3Depth: 0.3 + - _Shape3Duration: 0.1 + - _Smoothness: 1 + - _SmoothnessAnimated: 0 + - _SmoothnessFrom: 1 + - _SmoothnessFrom1: 1 + - _SmoothnessFrom1Animated: 0 + - _SmoothnessFromAnimated: 0 + - _SmoothnessMaskAnimated: 0 + - _SmoothnessMaskPanAnimated: 0 + - _SmoothnessMaskUV: 0 + - _SmoothnessMaskUVAnimated: 0 + - _SmoothnessTextureChannel: 0 + - _SpawnInAlpha: 0 + - _SpawnInAlphaAnimated: 0 + - _SpawnInEmissionColorAnimated: 0 + - _SpawnInEmissionOffset: 0.1 + - _SpawnInEmissionOffsetAnimated: 0 + - _SpawnInGradientFinishAnimated: 0 + - _SpawnInGradientStartAnimated: 0 + - _SpawnInNoiseAnimated: 0 + - _SpawnInNoiseIntensity: 0.35 + - _SpawnInNoiseIntensityAnimated: 0 + - _SpawnInVertOffset: 10 + - _SpawnInVertOffsetAnimated: 0 + - _SpawnInVertOffsetOffset: 0.1 + - _SpawnInVertOffsetOffsetAnimated: 0 + - _Spec1Offset: 0 + - _Spec1Offset1: 0 + - _Spec1Offset1Animated: 0 + - _Spec1OffsetAnimated: 0 + - _Spec2Smoothness: 0 + - _Spec2Smoothness1: 0 + - _Spec2Smoothness1Animated: 0 + - _Spec2SmoothnessAnimated: 0 + - _SpecLMOcclusionAdjust: 0.2 + - _SpecWhatTangent: 0 + - _SpecWhatTangent1: 0 + - _SpecWhatTangent1Animated: 0 + - _SpecWhatTangentAnimated: 0 + - _SpecularAnisoJitterMacro1Animated: 0 + - _SpecularAnisoJitterMacro1PanAnimated: 0 + - _SpecularAnisoJitterMacro1UV: 0 + - _SpecularAnisoJitterMacro1UVAnimated: 0 + - _SpecularAnisoJitterMacroAnimated: 0 + - _SpecularAnisoJitterMacroMultiplier: 0 + - _SpecularAnisoJitterMacroMultiplier1: 0 + - _SpecularAnisoJitterMacroMultiplier1Animated: 0 + - _SpecularAnisoJitterMacroMultiplierAnimated: 0 + - _SpecularAnisoJitterMacroPanAnimated: 0 + - _SpecularAnisoJitterMacroUV: 0 + - _SpecularAnisoJitterMacroUVAnimated: 0 + - _SpecularAnisoJitterMicro1Animated: 0 + - _SpecularAnisoJitterMicro1PanAnimated: 0 + - _SpecularAnisoJitterMicro1UV: 0 + - _SpecularAnisoJitterMicro1UVAnimated: 0 + - _SpecularAnisoJitterMicroAnimated: 0 + - _SpecularAnisoJitterMicroMultiplier: 0 + - _SpecularAnisoJitterMicroMultiplier1: 0 + - _SpecularAnisoJitterMicroMultiplier1Animated: 0 + - _SpecularAnisoJitterMicroMultiplierAnimated: 0 + - _SpecularAnisoJitterMicroPanAnimated: 0 + - _SpecularAnisoJitterMicroUV: 0 + - _SpecularAnisoJitterMicroUVAnimated: 0 + - _SpecularAnisoJitterMirrored: 0 + - _SpecularAnisoJitterMirrored1: 0 + - _SpecularAnisoJitterMirrored1Animated: 0 + - _SpecularAnisoJitterMirroredAnimated: 0 + - _SpecularAttenuation: 1 + - _SpecularAttenuation1: 1 + - _SpecularAttenuation1Animated: 0 + - _SpecularAttenuationAnimated: 0 + - _SpecularHighlights: 1 + - _SpecularInvertSmoothness: 0 + - _SpecularInvertSmoothness1: 0 + - _SpecularInvertSmoothness1Animated: 0 + - _SpecularInvertSmoothnessAnimated: 0 + - _SpecularLMOcclusion: 0 + - _SpecularMap1Animated: 0 + - _SpecularMap1PanAnimated: 0 + - _SpecularMap1UV: 0 + - _SpecularMap1UVAnimated: 0 + - _SpecularMapAnimated: 0 + - _SpecularMapPanAnimated: 0 + - _SpecularMapUV: 0 + - _SpecularMapUVAnimated: 0 + - _SpecularMask1Animated: 0 + - _SpecularMask1PanAnimated: 0 + - _SpecularMask1UV: 0 + - _SpecularMask1UVAnimated: 0 + - _SpecularMaskAnimated: 0 + - _SpecularMaskPanAnimated: 0 + - _SpecularMaskUV: 0 + - _SpecularMaskUVAnimated: 0 + - _SpecularMetallic: 0 + - _SpecularMetallic1: 0 + - _SpecularMetallic1Animated: 0 + - _SpecularMetallicAnimated: 0 + - _SpecularMetallicMap1UV: 0 + - _SpecularMetallicMapUV: 0 + - _SpecularNormal: 1 + - _SpecularNormal1: 1 + - _SpecularNormal1Animated: 0 + - _SpecularNormalAnimated: 0 + - _SpecularSmoothness: 0.908 + - _SpecularSmoothness1: 0.75 + - _SpecularSmoothness1Animated: 0 + - _SpecularSmoothnessAnimated: 0 + - _SpecularTint1Animated: 0 + - _SpecularTintAnimated: 0 + - _SpecularToonEnd: 1 + - _SpecularToonEnd1: 1 + - _SpecularToonEnd1Animated: 0 + - _SpecularToonEndAnimated: 0 + - _SpecularToonInnerOuter1Animated: 0 + - _SpecularToonInnerOuterAnimated: 0 + - _SpecularToonStart: 0.95 + - _SpecularToonStart1: 0.95 + - _SpecularToonStart1Animated: 0 + - _SpecularToonStartAnimated: 0 + - _SpecularType: 1 + - _SpecularType1: 1 + - _SpecularType1Animated: 0 + - _SpecularTypeAnimated: 0 + - _SqueezeDist: 0 + - _SrcBlend: 1 + - _SrcBlendAnimated: 0 + - _SssBumpBlur: 0.7 + - _SssScale: 1 + - _StencilCompareFunction: 8 + - _StencilCompareFunctionAnimated: 0 + - _StencilFailOp: 0 + - _StencilFailOpAnimated: 0 + - _StencilPassOp: 0 + - _StencilPassOpAnimated: 0 + - _StencilReadMask: 255 + - _StencilReadMaskAnimated: 0 + - _StencilRef: 0 + - _StencilRefAnimated: 0 + - _StencilWriteMask: 255 + - _StencilWriteMaskAnimated: 0 + - _StencilZFailOp: 0 + - _StencilZFailOpAnimated: 0 + - _TextEnabled: 0 + - _TextEnabledAnimated: 0 + - _TextFPSColorAnimated: 0 + - _TextFPSEmissionStrength: 0 + - _TextFPSEmissionStrengthAnimated: 0 + - _TextFPSEnabled: 0 + - _TextFPSEnabledAnimated: 0 + - _TextFPSOffsetAnimated: 0 + - _TextFPSPaddingAnimated: 0 + - _TextFPSRotation: 0 + - _TextFPSRotationAnimated: 0 + - _TextFPSScaleAnimated: 0 + - _TextFPSUV: 0 + - _TextFPSUVAnimated: 0 + - _TextGlyphsAnimated: 0 + - _TextPixelRange: 4 + - _TextPixelRangeAnimated: 0 + - _TextPositionColorAnimated: 0 + - _TextPositionEmissionStrength: 0 + - _TextPositionEmissionStrengthAnimated: 0 + - _TextPositionEnabled: 0 + - _TextPositionEnabledAnimated: 0 + - _TextPositionOffsetAnimated: 0 + - _TextPositionPaddingAnimated: 0 + - _TextPositionRotation: 0 + - _TextPositionRotationAnimated: 0 + - _TextPositionScaleAnimated: 0 + - _TextPositionUV: 0 + - _TextPositionUVAnimated: 0 + - _TextTimeColorAnimated: 0 + - _TextTimeEmissionStrength: 0 + - _TextTimeEmissionStrengthAnimated: 0 + - _TextTimeEnabled: 0 + - _TextTimeEnabledAnimated: 0 + - _TextTimeOffsetAnimated: 0 + - _TextTimePaddingAnimated: 0 + - _TextTimeRotation: 0 + - _TextTimeRotationAnimated: 0 + - _TextTimeScaleAnimated: 0 + - _TextTimeUV: 0 + - _TextTimeUVAnimated: 0 + - _ToonRamp1Animated: 0 + - _ToonRamp2Animated: 0 + - _ToonRampAnimated: 0 + - _UVSec: 0 + - _UseShadowTexture: 0 + - _UseShadowTextureAnimated: 0 + - _Use_1stAs2nd: 0 + - _Use_1stAs2ndAnimated: 0 + - _Use_1stShadeMapAlpha_As_ShadowMask: 0 + - _Use_1stShadeMapAlpha_As_ShadowMaskAnimated: 0 + - _Use_2ndShadeMapAlpha_As_ShadowMask: 0 + - _Use_2ndShadeMapAlpha_As_ShadowMaskAnimated: 0 + - _Use_BaseAs1st: 0 + - _Use_BaseAs1stAnimated: 0 + - _VertexGlitchFrequency: 0 + - _VertexGlitchFrequencyAnimated: 0 + - _VertexGlitchStrength: 1 + - _VertexGlitchStrengthAnimated: 0 + - _VertexGlitchThreshold: 1 + - _VertexGlitchThresholdAnimated: 0 + - _VertexManipulationHeight: 0 + - _VertexManipulationHeightAnimated: 0 + - _VertexManipulationHeightBias: 0 + - _VertexManipulationHeightBiasAnimated: 0 + - _VertexManipulationHeightMaskAnimated: 0 + - _VertexManipulationHeightPanAnimated: 0 + - _VertexManipulationHeightUV: 0 + - _VertexManipulationHeightUVAnimated: 0 + - _VertexManipulationLocalRotationAnimated: 0 + - _VertexManipulationLocalScaleAnimated: 0 + - _VertexManipulationLocalTranslationAnimated: 0 + - _VertexManipulationWorldTranslationAnimated: 0 + - _VertexManipulationsEnabled: 0 + - _VertexRoundingDivision: 500 + - _VertexRoundingDivisionAnimated: 0 + - _VertexRoundingEnabled: 0 + - _VertexRoundingEnabledAnimated: 0 + - _VertexUnwrap: 0 + - _VertexUnwrapAnimated: 0 + - _VideoBacklight: 1 + - _VideoBacklightAnimated: 0 + - _VideoCRTPixelEnergizedTime: 1.9 + - _VideoCRTPixelEnergizedTimeAnimated: 0 + - _VideoCRTRefreshRate: 24 + - _VideoCRTRefreshRateAnimated: 0 + - _VideoContrast: 0 + - _VideoContrastAnimated: 0 + - _VideoDebugTextureAnimated: 0 + - _VideoEmissionEnabled: 1 + - _VideoEnableDebug: 0 + - _VideoEnableDebugAnimated: 0 + - _VideoEnableVideoPlayer: 0 + - _VideoEnableVideoPlayerAnimated: 0 + - _VideoGameboyRampAnimated: 0 + - _VideoMaskPanningAnimated: 0 + - _VideoMaskTextureAnimated: 0 + - _VideoOffsetAnimated: 0 + - _VideoPanningAnimated: 0 + - _VideoPixelTextureAnimated: 0 + - _VideoPixelateToResolution: 0 + - _VideoPixelateToResolutionAnimated: 0 + - _VideoRepeatVideoTexture: 0 + - _VideoRepeatVideoTextureAnimated: 0 + - _VideoResolutionAnimated: 0 + - _VideoSaturation: 0 + - _VideoSaturationAnimated: 0 + - _VideoTilingAnimated: 0 + - _VideoType: 3 + - _VideoTypeAnimated: 0 + - _VideoUVNumber: 0 + - _VideoUVNumberAnimated: 0 + - _VoronoiBlend: 0 + - _VoronoiBlendAnimated: 0 + - _VoronoiColor0Animated: 0 + - _VoronoiColor1Animated: 0 + - _VoronoiEffectsMaterialAlpha: 0 + - _VoronoiEffectsMaterialAlphaAnimated: 0 + - _VoronoiEmission0: 0 + - _VoronoiEmission0Animated: 0 + - _VoronoiEmission1: 0 + - _VoronoiEmission1Animated: 0 + - _VoronoiEnableRandomCellColor: 0 + - _VoronoiEnableRandomCellColorAnimated: 0 + - _VoronoiGradientAnimated: 0 + - _VoronoiMaskAnimated: 0 + - _VoronoiMaskPanAnimated: 0 + - _VoronoiMaskUV: 0 + - _VoronoiMaskUVAnimated: 0 + - _VoronoiNoiseAnimated: 0 + - _VoronoiNoiseIntensity: 0.1 + - _VoronoiNoiseIntensityAnimated: 0 + - _VoronoiNoisePanAnimated: 0 + - _VoronoiNoiseUV: 0 + - _VoronoiNoiseUVAnimated: 0 + - _VoronoiRandomMinMaxBrightnessAnimated: 0 + - _VoronoiRandomMinMaxSaturationAnimated: 0 + - _VoronoiScale: 5 + - _VoronoiScaleAnimated: 0 + - _VoronoiSpace: 0 + - _VoronoiSpaceAnimated: 0 + - _VoronoiSpeedAnimated: 0 + - _VoronoiType: 1 + - _VoronoiTypeAnimated: 0 + - _Wriggle: 0.28 + - _WriggleSpeed: 0.28 + - _ZTest: 4 + - _ZTestAnimated: 0 + - _ZWrite: 1 + - _ZWriteAnimated: 0 + - __dirty: 1 + - _commentIfZero_EnableGrabpass: 1 + - _commentIfZero_EnableOutlinePass: 0 + - _commentIfZero_LightingAdditiveEnable: 1 + - _commentIfZero_LightingAdditiveEnableAnimated: 0 + - _glitterFrequencyLinearEmissive: 20 + - _glitterFrequencyLinearEmissiveAnimated: 0 + - _squeeze: 0 + - footer_discord: 0 + - footer_github: 0 + - footer_patreon: 0 + - footer_twitter: 0 + - footer_youtube: 0 + - m_ParallaxMap: 0 + - m_Patreon: 1 + - m_Special_Effects: 1 + - m_end_Alpha: 0 + - m_end_BlackLight: 0 + - m_end_Blur: 0 + - m_end_BonusSliders: 0 + - m_end_Bulge: 0 + - m_end_CRT: 0 + - m_end_CenterOutEmission: 0 + - m_end_CenterOutEmission1: 0 + - m_end_Decal0: 0 + - m_end_Decal0AudioLink: 0 + - m_end_Decal1: 0 + - m_end_Decal1AudioLink: 0 + - m_end_Decal2: 0 + - m_end_Decal2AudioLink: 0 + - m_end_Decal3: 0 + - m_end_Decal3AudioLink: 0 + - m_end_DecalSection: 0 + - m_end_DetailOptions: 0 + - m_end_Emission1AudioLink: 0 + - m_end_EmissionAudioLink: 0 + - m_end_FresnelAlpha: 0 + - m_end_Gameboy: 0 + - m_end_GrabPass: 0 + - m_end_Hologram: 0 + - m_end_Iridescence: 0 + - m_end_Lighting: 0 + - m_end_MainHueShift: 0 + - m_end_MainVertexColors: 0 + - m_end_Matcap2: 0 + - m_end_Metallic: 0 + - m_end_OutlineStencil: 0 + - m_end_RGBMask: 0 + - m_end_Refraction: 0 + - m_end_SciFiSpawnIn: 0 + - m_end_ShadowMix: 0 + - m_end_Spawns: 0 + - m_end_StencilPassOptions: 0 + - m_end_Text: 0 + - m_end_TextFPS: 0 + - m_end_TextInstanceTime: 0 + - m_end_TextPosition: 0 + - m_end_TouchGlow: 0 + - m_end_TouchOptions: 0 + - m_end_VertexGlitch: 0 + - m_end_Video: 0 + - m_end_VideoDebug: 0 + - m_end_VideoSettings: 0 + - m_end_Voronoi: 0 + - m_end_ambientOcclusion: 0 + - m_end_angularFade: 0 + - m_end_audioLink: 0 + - m_end_audioLinkDebug: 0 + - m_end_backFace: 0 + - m_end_bakedLighting: 0 + - m_end_blending: 0 + - m_end_blinkingEmissionOptions: 0 + - m_end_blinkingEmissionOptions1: 0 + - m_end_brdf: 0 + - m_end_clearCoat: 0 + - m_end_crossfade: 0 + - m_end_debugOptions: 0 + - m_end_detailShadows: 0 + - m_end_dissolve: 0 + - m_end_dissolveAudioLink: 0 + - m_end_dissolveHueShift: 0 + - m_end_dissolveMasking: 0 + - m_end_distanceFade: 0 + - m_end_distortionFlow: 0 + - m_end_emission1Options: 0 + - m_end_emissionOptions: 0 + - m_end_flipBook: 0 + - m_end_flipbookHueShift: 0 + - m_end_glitter: 0 + - m_end_glitterHueShift: 0 + - m_end_glitterRandom: 0 + - m_end_glowInDarkEmissionOptions: 0 + - m_end_glowInDarkEmissionOptions1: 0 + - m_end_lightingAdvanced: 0 + - m_end_lightingBeta: 0 + - m_end_lightingHSL: 0 + - m_end_lightingModifiers: 0 + - m_end_manualFlipbookControl: 0 + - m_end_matcap: 0 + - m_end_matcap2HueShift: 0 + - m_end_matcapHueShift: 0 + - m_end_mirrorOptions: 0 + - m_end_outlineAdvanced: 0 + - m_end_panosphereOptions: 0 + - m_end_parallaxAdvanced: 0 + - m_end_parallaxHeightmap: 0 + - m_end_parallaxInternal: 0 + - m_end_pointToPoint: 0 + - m_end_raliv: 0 + - m_end_ralivAdvanced: 0 + - m_end_ralivOriface: 0 + - m_end_ralivPenetrator: 0 + - m_end_reflectionRim: 0 + - m_end_rimHueShift: 0 + - m_end_rimLightOptions: 0 + - m_end_rimWidthNoise: 0 + - m_end_scrollingEmission1Options: 0 + - m_end_scrollingEmissionOptions: 0 + - m_end_shadowTexture: 0 + - m_end_specular: 0 + - m_end_specular1: 0 + - m_end_subsurface: 0 + - m_end_vertexManipulation: 0 + - m_end_voronoiRandom: 0 + - m_lightingOptions: 1 + - m_mainOptions: 1 + - m_outlineOptions: 0 + - m_renderingOptions: 0 + - m_start_Alpha: 1 + - m_start_BlackLight: 0 + - m_start_Blur: 0 + - m_start_BonusSliders: 0 + - m_start_Bulge: 1 + - m_start_CRT: 0 + - m_start_CenterOutEmission: 0 + - m_start_CenterOutEmission1: 0 + - m_start_Decal0: 0 + - m_start_Decal0AudioLink: 0 + - m_start_Decal1: 0 + - m_start_Decal1AudioLink: 0 + - m_start_Decal2: 0 + - m_start_Decal2AudioLink: 0 + - m_start_Decal3: 0 + - m_start_Decal3AudioLink: 0 + - m_start_DecalSection: 0 + - m_start_DetailOptions: 1 + - m_start_Emission1AudioLink: 0 + - m_start_EmissionAudioLink: 0 + - m_start_FresnelAlpha: 0 + - m_start_Gameboy: 0 + - m_start_GrabPass: 1 + - m_start_Hologram: 0 + - m_start_Iridescence: 0 + - m_start_Lighting: 0 + - m_start_MainHueShift: 0 + - m_start_MainVertexColors: 0 + - m_start_Matcap2: 0 + - m_start_Metallic: 0 + - m_start_OutlineStencil: 0 + - m_start_RGBMask: 0 + - m_start_Refraction: 1 + - m_start_ScifiSpawnIn: 0 + - m_start_ShadowMix: 0 + - m_start_Spawns: 0 + - m_start_StencilPassOptions: 0 + - m_start_Text: 0 + - m_start_TextFPS: 0 + - m_start_TextInstanceTime: 0 + - m_start_TextPosition: 0 + - m_start_TouchGlow: 0 + - m_start_TouchOptions: 1 + - m_start_VertexGlitch: 0 + - m_start_Video: 0 + - m_start_VideoDebug: 0 + - m_start_VideoSettings: 0 + - m_start_Voronoi: 0 + - m_start_ambientOcclusion: 0 + - m_start_angularFade: 0 + - m_start_audioLink: 0 + - m_start_audioLinkDebug: 0 + - m_start_backFace: 0 + - m_start_bakedLighting: 0 + - m_start_blending: 0 + - m_start_blinkingEmissionOptions: 0 + - m_start_blinkingEmissionOptions1: 0 + - m_start_brdf: 0 + - m_start_clearCoat: 0 + - m_start_crossfade: 0 + - m_start_debugOptions: 0 + - m_start_detailShadows: 0 + - m_start_dissolve: 0 + - m_start_dissolveAudioLink: 0 + - m_start_dissolveHueShift: 0 + - m_start_dissolveMasking: 0 + - m_start_distanceFade: 0 + - m_start_distortionFlow: 0 + - m_start_emission1Options: 0 + - m_start_emissionOptions: 0 + - m_start_flipBook: 0 + - m_start_flipbookHueShift: 0 + - m_start_glitter: 0 + - m_start_glitterHueShift: 0 + - m_start_glitterRandom: 0 + - m_start_glowInDarkEmissionOptions: 0 + - m_start_glowInDarkEmissionOptions1: 0 + - m_start_lightingAdvanced: 0 + - m_start_lightingBeta: 0 + - m_start_lightingHSL: 0 + - m_start_lightingModifiers: 0 + - m_start_manualFlipbookControl: 0 + - m_start_matcap: 0 + - m_start_matcap2HueShift: 0 + - m_start_matcapHueShift: 0 + - m_start_mirrorOptions: 0 + - m_start_outlineAdvanced: 0 + - m_start_panosphereOptions: 0 + - m_start_parallaxAdvanced: 0 + - m_start_parallaxHeightmap: 0 + - m_start_parallaxInternal: 0 + - m_start_pointToPoint: 0 + - m_start_raliv: 0 + - m_start_ralivAdvanced: 0 + - m_start_ralivOriface: 0 + - m_start_ralivPenetrator: 0 + - m_start_reflectionRim: 0 + - m_start_rimHueShift: 0 + - m_start_rimLightOptions: 0 + - m_start_rimWidthNoise: 0 + - m_start_scrollingEmissionOptions: 0 + - m_start_scrollingEmissionOptions1: 0 + - m_start_shadowTexture: 0 + - m_start_specular: 0 + - m_start_specular1: 0 + - m_start_subsurface: 0 + - m_start_vertexManipulation: 0 + - m_start_voronoiRandom: 0 + - m_thirdparty: 0 + - shader_is_using_thry_editor: 69 + - shader_master_label: 0 + - shader_presets: 0 + - shader_properties_label_file: 0 + m_Colors: + - _1st_ShadeColor: {r: 1, g: 1, b: 1, a: 1} + - _1st_ShadeMapPan: {r: 0, g: 0, b: 0, a: 0} + - _2nd_ShadeColor: {r: 1, g: 1, b: 1, a: 1} + - _2nd_ShadeMapPan: {r: 0, g: 0, b: 0, a: 0} + - _AlphaMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _AngleForwardDirection: {r: 0, g: 0, b: 1, a: 0} + - _AnisoTangentMap1Pan: {r: 0, g: 0, b: 0, a: 0} + - _AnisoTangentMapPan: {r: 0, g: 0, b: 0, a: 0} + - _AudioLinkAddEmission: {r: 0, g: 0, b: -10, a: 10} + - _AudioLinkAddEmission1: {r: 0, g: 0, b: -10, a: 10} + - _AudioLinkDecal0Alpha: {r: 0, g: 0, b: 0, a: 0} + - _AudioLinkDecal0Emission: {r: 0, g: 0, b: 0, a: 0} + - _AudioLinkDecal0Scale: {r: 0, g: 0, b: 0, a: 0} + - _AudioLinkDecal1Alpha: {r: 0, g: 0, b: 0, a: 0} + - _AudioLinkDecal1Emission: {r: 0, g: 0, b: 0, a: 0} + - _AudioLinkDecal1Scale: {r: 0, g: 0, b: 0, a: 0} + - _AudioLinkDecal2Alpha: {r: 0, g: 0, b: 0, a: 0} + - _AudioLinkDecal2Emission: {r: 0, g: 0, b: 0, a: 0} + - _AudioLinkDecal2Scale: {r: 0, g: 0, b: 0, a: 0} + - _AudioLinkDecal3Alpha: {r: 0, g: 0, b: 0, a: 0} + - _AudioLinkDecal3Emission: {r: 0, g: 0, b: 0, a: 0} + - _AudioLinkDecal3Scale: {r: 0, g: 0, b: 0, a: 0} + - _AudioLinkDissolveAlpha: {r: 0, g: 0, b: -1, a: 1} + - _AudioLinkDissolveDetail: {r: 0, g: 0, b: -1, a: 1} + - _BRDFMetallicGlossMapPan: {r: 0, g: 0, b: 0, a: 0} + - _BRDFMetallicMapPan: {r: 0, g: 0, b: 0, a: 0} + - _BRDFSpecularMapPan: {r: 0, g: 0, b: 0, a: 0} + - _BackFaceColor: {r: 1, g: 1, b: 1, a: 1} + - _BackFacePanning: {r: 0, g: 0, b: 0, a: 0} + - _BlackLightMaskEnd: {r: 1, g: 1, b: 1, a: 1} + - _BlackLightMaskKeys: {r: 2, g: 3, b: 4, a: 5} + - _BlackLightMaskStart: {r: 0, g: 0, b: 0, a: 0} + - _BlueColor: {r: 1, g: 1, b: 1, a: 1} + - _BumpMapPan: {r: 0, g: 5, b: 0, a: 0} + - _ClearCoatMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _ClearCoatSmoothnessMapPan: {r: 0, g: 0, b: 0, a: 0} + - _ClearCoatTint: {r: 1, g: 1, b: 1, a: 1} + - _ClearcoatMapPan: {r: 0, g: 0, b: 0, a: 0} + - _ClippingMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 0.6839622, g: 0.98736686, b: 1, a: 0} + - _DecalColor: {r: 1, g: 1, b: 1, a: 1} + - _DecalColor1: {r: 1, g: 1, b: 1, a: 1} + - _DecalColor2: {r: 1, g: 1, b: 1, a: 1} + - _DecalColor3: {r: 1, g: 1, b: 1, a: 1} + - _DecalMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _DecalPosition: {r: 0.5, g: 0.5, b: 0, a: 0} + - _DecalPosition1: {r: 0.5, g: 0.5, b: 0, a: 0} + - _DecalPosition2: {r: 0.5, g: 0.5, b: 0, a: 0} + - _DecalPosition3: {r: 0.5, g: 0.5, b: 0, a: 0} + - _DecalScale: {r: 1, g: 1, b: 0, a: 0} + - _DecalScale1: {r: 1, g: 1, b: 0, a: 0} + - _DecalScale2: {r: 1, g: 1, b: 0, a: 0} + - _DecalScale3: {r: 1, g: 1, b: 0, a: 0} + - _DecalTexture1Pan: {r: 0, g: 0, b: 0, a: 0} + - _DecalTexture2Pan: {r: 0, g: 0, b: 0, a: 0} + - _DecalTexture3Pan: {r: 0, g: 0, b: 0, a: 0} + - _DecalTexturePan: {r: 0, g: 0, b: 0, a: 0} + - _DepthGlowColor: {r: 1, g: 1, b: 1, a: 1} + - _DepthGradientPan: {r: 0, g: 0, b: 0, a: 0} + - _DepthMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _DetailMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _DetailNormalMapPan: {r: 2, g: 0, b: 0, a: 0} + - _DetailTexPan: {r: 0, g: 0, b: 0, a: 0} + - _DetailTint: {r: 1, g: 1, b: 1, a: 1} + - _DissolveDetailNoisePan: {r: 0, g: 0, b: 0, a: 0} + - _DissolveEdgeColor: {r: 1, g: 1, b: 1, a: 1} + - _DissolveEndPoint: {r: 0, g: 1, b: 0, a: 0} + - _DissolveMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _DissolveNoiseTexturePan: {r: 0, g: 0, b: 0, a: 0} + - _DissolveStartPoint: {r: 0, g: -1, b: 0, a: 0} + - _DissolveTextureColor: {r: 1, g: 1, b: 1, a: 1} + - _DissolveToTexturePan: {r: 0, g: 0, b: 0, a: 0} + - _DistortionMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _DistortionSpeed: {r: 0.5, g: 0.5, b: 0, a: 0} + - _DistortionSpeed1: {r: 0.5, g: 0.5, b: 0, a: 0} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissionColor1: {r: 1, g: 1, b: 1, a: 1} + - _EmissionMap1Pan: {r: 0, g: 0, b: 0, a: 0} + - _EmissionMapPan: {r: 0, g: 0, b: 0, a: 0} + - _EmissionMask1Pan: {r: 0, g: 0, b: 0, a: 0} + - _EmissionMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _EmissiveScroll_Direction: {r: 0, g: -10, b: 0, a: 0} + - _EmissiveScroll_Direction1: {r: 0, g: -10, b: 0, a: 0} + - _FlipbookColor: {r: 1, g: 1, b: 1, a: 1} + - _FlipbookCrossfadeRange: {r: 0.75, g: 1, b: 0, a: 1} + - _FlipbookMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _FlipbookScaleOffset: {r: 1, g: 1, b: 0, a: 0} + - _FlipbookTexArrayPan: {r: 0, g: 0, b: 0, a: 0} + - _GlitterColor: {r: 1, g: 1, b: 1, a: 1} + - _GlitterColorMapPan: {r: 0, g: 0, b: 0, a: 0} + - _GlitterMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _GlitterMinMaxBrightness: {r: 0.8, g: 1, b: 0, a: 1} + - _GlitterMinMaxSaturation: {r: 0.8, g: 1, b: 0, a: 1} + - _GlitterMinMaxSize: {r: 0.1, g: 0.5, b: 0, a: 1} + - _GlitterPan: {r: 0, g: 0, b: 0, a: 0} + - _GlitterTexturePan: {r: 0, g: 0, b: 0, a: 0} + - _GrabPassBlendMapPan: {r: 0, g: 0, b: 0, a: 0} + - _GreenColor: {r: 1, g: 1, b: 1, a: 1} + - _HoloDirection: {r: 0, g: 1, b: 0, a: 1} + - _LightingAOTexPan: {r: 0, g: 0, b: 0, a: 0} + - _LightingDetailShadowsPan: {r: 0, g: 0, b: 0, a: 0} + - _LightingEndColor: {r: 1, g: 1, b: 1, a: 1} + - _LightingShadowColor: {r: 1, g: 1, b: 1, a: 1} + - _LightingShadowMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _LightingShadowTexturePan: {r: 0, g: 0, b: 0, a: 0} + - _LineColor: {r: 1, g: 1, b: 1, a: 1} + - _MainColorAdjustTexturePan: {r: 0, g: 0, b: 0, a: 0} + - _MainDistanceFade: {r: 0, g: 0, b: 0, a: 0} + - _MainFadeTexturePan: {r: 0, g: 0, b: 0, a: 0} + - _MainHueShiftMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _MainTexPan: {r: 0, g: 0, b: 0, a: 0} + - _Matcap2Color: {r: 1, g: 1, b: 1, a: 1} + - _Matcap2MaskPan: {r: 0, g: 0, b: 0, a: 0} + - _MatcapColor: {r: 1, g: 1, b: 1, a: 1} + - _MatcapMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _MetalReflectionTint: {r: 1, g: 1, b: 1, a: 1} + - _MetallicMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _MetallicTintMapPan: {r: 0, g: 0, b: 0, a: 0} + - _MirrorTexturePan: {r: 0, g: 0, b: 0, a: 0} + - _OutlineDropShadowOffset: {r: 1, g: 0, b: 0, a: 0} + - _OutlineFadeDistance: {r: 0, g: 0, b: 0, a: 0} + - _OutlineMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _OutlinePersonaDirection: {r: 1, g: 0, b: 0, a: 0} + - _OutlineTexturePan: {r: 0, g: 0, b: 0, a: 0} + - _PanoMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _PanosphereColor: {r: 1, g: 1, b: 1, a: 1} + - _PanospherePan: {r: 0, g: 0, b: 0, a: 0} + - _ParallaxHeightMapMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _ParallaxHeightMapPan: {r: 0, g: 0, b: 0, a: 0} + - _ParallaxInternalMapMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _ParallaxInternalMaxColor: {r: 1, g: 1, b: 1, a: 1} + - _ParallaxInternalMinColor: {r: 1, g: 1, b: 1, a: 1} + - _ParallaxInternalPanDepthSpeed: {r: 0, g: 0, b: 0, a: 0} + - _ParallaxInternalPanSpeed: {r: 0, g: 0, b: 0, a: 0} + - _RGBBluePanning: {r: 0, g: 0, b: 0, a: 0} + - _RGBGreenPanning: {r: 0, g: 0, b: 0, a: 0} + - _RGBMaskPanning: {r: 0, g: 0, b: 0, a: 0} + - _RGBRedPanning: {r: 0, g: 0, b: 0, a: 0} + - _RedColor: {r: 1, g: 1, b: 1, a: 1} + - _RgbNormalBPan: {r: 0, g: 0, b: 0, a: 0} + - _RgbNormalGPan: {r: 0, g: 0, b: 0, a: 0} + - _RgbNormalRPan: {r: 0, g: 0, b: 0, a: 0} + - _RimEnviroMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _RimLightColor: {r: 1, g: 1, b: 1, a: 1} + - _RimMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _RimTexPan: {r: 0, g: 0, b: 0, a: 0} + - _RimWidthNoiseTexturePan: {r: 0, g: 0, b: 0, a: 0} + - _SSSColor: {r: 1, g: 0, b: 0, a: 1} + - _SSSThicknessMapPan: {r: 0, g: 0, b: 0, a: 0} + - _SmoothnessMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _SpawnInEmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _SpawnInGradientFinish: {r: 0, g: -2, b: 0, a: 1} + - _SpawnInGradientStart: {r: 0, g: 2, b: 0, a: 1} + - _SpecularAnisoJitterMacro1Pan: {r: 0, g: 0, b: 0, a: 0} + - _SpecularAnisoJitterMacroPan: {r: 0, g: 0, b: 0, a: 0} + - _SpecularAnisoJitterMicro1Pan: {r: 0, g: 0, b: 0, a: 0} + - _SpecularAnisoJitterMicroPan: {r: 0, g: 0, b: 0, a: 0} + - _SpecularMap1Pan: {r: 0, g: 0, b: 0, a: 0} + - _SpecularMapPan: {r: 0, g: 0, b: 0, a: 0} + - _SpecularMask1Pan: {r: 0, g: 0, b: 0, a: 0} + - _SpecularMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _SpecularMetallicMap1Pan: {r: 0, g: 0, b: 0, a: 0} + - _SpecularMetallicMapPan: {r: 0, g: 0, b: 0, a: 0} + - _SpecularTint: {r: 1, g: 1, b: 1, a: 1} + - _SpecularTint1: {r: 1, g: 1, b: 1, a: 1} + - _SpecularToonInnerOuter: {r: 0.25, g: 0.3, b: 0, a: 1} + - _SpecularToonInnerOuter1: {r: 0.25, g: 0.3, b: 0, a: 1} + - _SssColorBleedAoWeights: {r: 0.4, g: 0.15, b: 0.13, a: 0} + - _SssTransmissionAbsorption: {r: -8, g: -40, b: -64, a: 0} + - _TextFPSColor: {r: 1, g: 1, b: 1, a: 1} + - _TextFPSOffset: {r: 0, g: 0, b: 0, a: 0} + - _TextFPSPadding: {r: 0, g: 0, b: 0, a: 0} + - _TextFPSScale: {r: 1, g: 1, b: 1, a: 1} + - _TextPositionColor: {r: 1, g: 0, b: 1, a: 1} + - _TextPositionOffset: {r: 0, g: 0, b: 0, a: 0} + - _TextPositionPadding: {r: 0, g: 0, b: 0, a: 0} + - _TextPositionScale: {r: 1, g: 1, b: 1, a: 1} + - _TextTimeColor: {r: 1, g: 0, b: 1, a: 1} + - _TextTimeOffset: {r: 0, g: 0, b: 0, a: 0} + - _TextTimePadding: {r: 0, g: 0, b: 0, a: 0} + - _TextTimeScale: {r: 1, g: 1, b: 1, a: 1} + - _VertexManipulationHeightPan: {r: 0, g: 0, b: 0, a: 0} + - _VertexManipulationLocalRotation: {r: 0, g: 0, b: 0, a: 1} + - _VertexManipulationLocalScale: {r: 1, g: 1, b: 1, a: 1} + - _VertexManipulationLocalTranslation: {r: 0, g: 0, b: 0, a: 1} + - _VertexManipulationWorldTranslation: {r: 0, g: 0, b: 0, a: 1} + - _VideoMaskPanning: {r: 0, g: 0, b: 0, a: 0} + - _VideoOffset: {r: 0, g: 0, b: 0, a: 0} + - _VideoPanning: {r: 0, g: 0, b: 0, a: 0} + - _VideoResolution: {r: 1280, g: 720, b: 0, a: 1} + - _VideoTiling: {r: 1, g: 1, b: 0, a: 0} + - _VoronoiColor0: {r: 0, g: 0, b: 0, a: 1} + - _VoronoiColor1: {r: 1, g: 1, b: 1, a: 1} + - _VoronoiGradient: {r: 0.04, g: 0.05, b: 0, a: 0} + - _VoronoiMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _VoronoiNoisePan: {r: 0, g: 0, b: 0, a: 0} + - _VoronoiRandomMinMaxBrightness: {r: 0.8, g: 1, b: 0, a: 1} + - _VoronoiRandomMinMaxSaturation: {r: 0.8, g: 1, b: 0, a: 1} + - _VoronoiSpeed: {r: 3, g: 3, b: 3, a: 1} diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Examples/Random/M_Poiyomi_Slime.mat.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Examples/Random/M_Poiyomi_Slime.mat.meta new file mode 100644 index 00000000..03bd98dd --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Examples/Random/M_Poiyomi_Slime.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 13dd248373e5f8f4f8c0b1143481373d +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Examples/Stencil.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Examples/Stencil.meta new file mode 100644 index 00000000..cbdf081f --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Examples/Stencil.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0474baa79a2c0bc498935959455df1d8 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Examples/Stencil/DoubleSphere.fbx b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Examples/Stencil/DoubleSphere.fbx Binary files differnew file mode 100644 index 00000000..4ced4f01 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Examples/Stencil/DoubleSphere.fbx diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Examples/Stencil/DoubleSphere.fbx.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Examples/Stencil/DoubleSphere.fbx.meta new file mode 100644 index 00000000..eb70f8e4 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Examples/Stencil/DoubleSphere.fbx.meta @@ -0,0 +1,108 @@ +fileFormatVersion: 2 +guid: 8159a8c4615e8c745be28e820af37cf4 +ModelImporter: + serializedVersion: 23 + fileIDToRecycleName: + 100000: //RootNode + 400000: //RootNode + 2100000: inside + 2100002: outside + 2300000: //RootNode + 3300000: //RootNode + 4300000: Sphere + externalObjects: + - first: + type: UnityEngine:Material + assembly: UnityEngine.CoreModule + name: inside + second: {fileID: 2100000, guid: 30f4ef6c54f791c4a81aad0db95bdd5e, type: 2} + - first: + type: UnityEngine:Material + assembly: UnityEngine.CoreModule + name: outside + second: {fileID: 2100000, guid: dd5a9a3b9e3639c46bda1485d4465e63, type: 2} + materials: + importMaterials: 1 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + preserveHierarchy: 0 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + previousCalculatedGlobalScale: 1 + hasPreviousCalculatedGlobalScale: 0 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + importAnimation: 1 + copyAvatar: 0 + humanDescription: + serializedVersion: 2 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Examples/Stencil/inside.mat b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Examples/Stencil/inside.mat new file mode 100644 index 00000000..2b6b1541 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Examples/Stencil/inside.mat @@ -0,0 +1,2093 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: inside + m_Shader: {fileID: 4800000, guid: 917b37092bae034459c28c00a3a19b54, type: 3} + m_ShaderKeywords: VIGNETTE_MASKED _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 3001 + stringTagMap: + RenderType: Transparent + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _1st_ShadeMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _2nd_ShadeMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _AlphaMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _AnisoTangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _AnisoTangentMap1: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BackFaceTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BlueTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BulgeMask: + 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} + - _ClearCoatCubeMap: + m_Texture: {fileID: 8900000, guid: 1f79f71b84fc2844bb81e9ae4f5bc384, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ClearCoatMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ClearCoatSmoothnessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CubeMap: + m_Texture: {fileID: 8900000, guid: 1f79f71b84fc2844bb81e9ae4f5bc384, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DecalMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DecalTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DepthGradient: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DepthMask: + 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} + - _DetailTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DissolveDetailNoise: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DissolveEdgeGradient: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DissolveMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DissolveNoiseTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DissolveToTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionFlowTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionFlowTexture1: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionMask: + 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} + - _EmissionMap1: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMask1: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionScrollingCurve: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionScrollingCurve1: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _FlipbookMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _FlipbookTexArray: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _GlitterColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _GlitterMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _GlitterTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _GrabPassBlendMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _GreenTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HoloAlphaMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceRamp: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _LightingAOTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _LightingDetailShadows: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _LightingShadowMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _LightingShadowTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainFadeTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainHueShiftMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 5757e282ae2aac54e99d40378b103e7c, type: 3} + m_Scale: {x: 10, y: 5} + m_Offset: {x: 0, y: 0} + - _Matcap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Matcap2: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Matcap2Mask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MatcapMask: + 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} + - _MetallicMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicTintMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MirrorTexture: + 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} + - _OutlineMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OutlineTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _PanoCubeMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _PanoMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _PanosphereTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxHeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxHeightMapMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxInternalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxInternalMapMask: + 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} + - _RGBMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _RedTexure: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _RgbNormalB: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _RgbNormalG: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _RgbNormalR: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _RimEnviroMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _RimMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _RimTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _RimWidthNoiseTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SSSThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SmoothnessMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpawnInNoise: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularAnisoJitterMacro: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularAnisoJitterMacro1: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularAnisoJitterMicro: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularAnisoJitterMicro1: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularMap1: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularMask1: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularMetallicMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularMetallicMap1: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TextGlyphs: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ToonRamp: + m_Texture: {fileID: 2800000, guid: 61bd594533da4fc42bd46ef93ba5a4f6, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _VertexManipulationHeightMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _VideoDebugTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _VideoGameboyRamp: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _VideoMaskTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _VideoPixelTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _VoronoiMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _VoronoiNoise: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - DSGI: 0 + - Instancing: 0 + - LightmapFlags: 0 + - _1st2nd_Shades_Feather: 0.0001 + - _1st_ShadeMapUV: 0 + - _2nd_ShadeMapUV: 0 + - _AOStrength: 1 + - _AOStrengthAnimated: 0 + - _AlphaMaskAnimated: 0 + - _AlphaMaskPanAnimated: 0 + - _AlphaMaskUV: 0 + - _AlphaMaskUVAnimated: 0 + - _AlphaMod: 0 + - _AlphaModAnimated: 0 + - _AlphaPremultiply: 0 + - _AlphaPremultiplyAnimated: 0 + - _AlphaToMask: 0 + - _AlphaToMaskAnimated: 0 + - _AngleCompareTo: 0 + - _AngleCompareToAnimated: 0 + - _AngleForwardDirectionAnimated: 0 + - _AngleMinAlpha: 0 + - _AngleMinAlphaAnimated: 0 + - _AngleType: 0 + - _AngleTypeAnimated: 0 + - _AnisoSpec1Alpha: 1 + - _AnisoSpec1Alpha1: 1 + - _AnisoSpec1Alpha1Animated: 0 + - _AnisoSpec1AlphaAnimated: 0 + - _AnisoSpec2Alpha: 1 + - _AnisoSpec2Alpha1: 1 + - _AnisoSpec2Alpha1Animated: 0 + - _AnisoSpec2AlphaAnimated: 0 + - _AnisoTangentMap1Animated: 0 + - _AnisoTangentMap1PanAnimated: 0 + - _AnisoTangentMap1UV: 0 + - _AnisoTangentMap1UVAnimated: 0 + - _AnisoTangentMapAnimated: 0 + - _AnisoTangentMapPanAnimated: 0 + - _AnisoTangentMapUV: 0 + - _AnisoTangentMapUVAnimated: 0 + - _AnisoUseTangentMap: 0 + - _AnisoUseTangentMap1: 0 + - _AnisoUseTangentMap1Animated: 0 + - _AnisoUseTangentMapAnimated: 0 + - _AttenuationMultiplier: 0 + - _AttenuationMultiplierAnimated: 0 + - _BackFaceDetailIntensity: 1 + - _BackFaceEmissionStrength: 0 + - _BackFaceEnabled: 0 + - _BackFaceHueShift: 0 + - _BackFaceTextureUV: 0 + - _BaseColor_Step: 0.5 + - _BaseShade_Feather: 0.0001 + - _BlackLightMaskClearCoat: 4 + - _BlackLightMaskClearCoatAnimated: 0 + - _BlackLightMaskDebug: 0 + - _BlackLightMaskDebugAnimated: 0 + - _BlackLightMaskDissolve: 4 + - _BlackLightMaskDissolveAnimated: 0 + - _BlackLightMaskEmission: 4 + - _BlackLightMaskEmission2: 4 + - _BlackLightMaskEmission2Animated: 0 + - _BlackLightMaskEmissionAnimated: 0 + - _BlackLightMaskEnabled: 0 + - _BlackLightMaskEnabledAnimated: 0 + - _BlackLightMaskEndAnimated: 0 + - _BlackLightMaskFlipbook: 4 + - _BlackLightMaskFlipbookAnimated: 0 + - _BlackLightMaskGlitter: 4 + - _BlackLightMaskGlitterAnimated: 0 + - _BlackLightMaskIridescence: 4 + - _BlackLightMaskIridescenceAnimated: 0 + - _BlackLightMaskKeysAnimated: 0 + - _BlackLightMaskMatcap: 4 + - _BlackLightMaskMatcap2: 4 + - _BlackLightMaskMatcap2Animated: 0 + - _BlackLightMaskMatcapAnimated: 0 + - _BlackLightMaskMetallic: 4 + - _BlackLightMaskMetallicAnimated: 0 + - _BlackLightMaskPanosphere: 4 + - _BlackLightMaskPanosphereAnimated: 0 + - _BlackLightMaskStartAnimated: 0 + - _BlendOp: 0 + - _BlendOpAlpha: 0 + - _BlendOpAlphaAnimated: 0 + - _BlendOpAnimated: 0 + - _BlueColorAnimated: 0 + - _BlueTextureAnimated: 0 + - _BuldgeFadeLength: 0.02 + - _BuldgeFadeLengthAnimated: 0 + - _BuldgeHeight: 0.02 + - _BuldgeHeightAnimated: 0 + - _BulgeMaskAnimated: 0 + - _BumpMapAnimated: 0 + - _BumpMapPanAnimated: 0 + - _BumpMapUV: 0 + - _BumpMapUVAnimated: 0 + - _BumpScale: 1 + - _BumpScaleAnimated: 0 + - _CameraAngleMax: 90 + - _CameraAngleMaxAnimated: 0 + - _CameraAngleMin: 45 + - _CameraAngleMinAnimated: 0 + - _ClearCoat: 1 + - _ClearCoatAnimated: 0 + - _ClearCoatCubeMapAnimated: 0 + - _ClearCoatForceLighting: 0 + - _ClearCoatForceLightingAnimated: 0 + - _ClearCoatInvertSmoothness: 0 + - _ClearCoatInvertSmoothnessAnimated: 0 + - _ClearCoatMaskAnimated: 0 + - _ClearCoatMaskPanAnimated: 0 + - _ClearCoatMaskUV: 0 + - _ClearCoatMaskUVAnimated: 0 + - _ClearCoatNormalToUse: 0 + - _ClearCoatNormalToUseAnimated: 0 + - _ClearCoatSampleWorld: 0 + - _ClearCoatSampleWorldAnimated: 0 + - _ClearCoatSmoothness: 0 + - _ClearCoatSmoothnessAnimated: 0 + - _ClearCoatSmoothnessMapAnimated: 0 + - _ClearCoatSmoothnessMapPanAnimated: 0 + - _ClearCoatSmoothnessMapUV: 0 + - _ClearCoatSmoothnessMapUVAnimated: 0 + - _ClearCoatTintAnimated: 0 + - _ColorAnimated: 0 + - _ColorMask: 15 + - _ColorMaskAnimated: 0 + - _ContinuousDissolve: 0 + - _ContinuousDissolveAnimated: 0 + - _CubeMapAnimated: 0 + - _Cull: 2 + - _CullAnimated: 0 + - _Cutoff: 0 + - _CutoffAnimated: 0 + - _DebugCameraData: 0 + - _DebugCameraDataAnimated: 0 + - _DebugEnabled: 0 + - _DebugLightingData: 0 + - _DebugLightingDataAnimated: 0 + - _DebugMeshData: 0 + - _DebugMeshDataAnimated: 0 + - _DecalBlendAdd: 0 + - _DecalBlendAddAnimated: 0 + - _DecalBlendAlpha: 1 + - _DecalBlendAlphaAnimated: 0 + - _DecalBlendMultiply: 0 + - _DecalBlendMultiplyAnimated: 0 + - _DecalBlendReplace: 0 + - _DecalBlendReplaceAnimated: 0 + - _DecalBlendType: 0 + - _DecalBlendTypeAnimated: 0 + - _DecalColorAnimated: 0 + - _DecalEmissionStrength: 0 + - _DecalEmissionStrengthAnimated: 0 + - _DecalEnabled: 0 + - _DecalEnabledAnimated: 0 + - _DecalMaskAnimated: 0 + - _DecalMaskPanAnimated: 0 + - _DecalMaskUV: 0 + - _DecalMaskUVAnimated: 0 + - _DecalPositionAnimated: 0 + - _DecalRotation: 0 + - _DecalRotationAnimated: 0 + - _DecalRotationSpeed: 0 + - _DecalRotationSpeedAnimated: 0 + - _DecalScaleAnimated: 0 + - _DecalTextureAnimated: 0 + - _DecalTexturePanAnimated: 0 + - _DecalTextureUV: 0 + - _DecalTextureUVAnimated: 0 + - _DecalTiled: 0 + - _DecalTiledAnimated: 0 + - _DepthAlphaMax: 1 + - _DepthAlphaMaxAnimated: 0 + - _DepthAlphaMin: 1 + - _DepthAlphaMinAnimated: 0 + - _DepthGlowColorAnimated: 0 + - _DepthGlowEmission: 3 + - _DepthGlowEmissionAnimated: 0 + - _DepthGradientAnimated: 0 + - _DepthGradientBlend: 0 + - _DepthGradientBlendAnimated: 0 + - _DepthGradientPanAnimated: 0 + - _DepthGradientTextureUV: 0 + - _DepthGradientTextureUVAnimated: 0 + - _DepthGradientUV: 0 + - _DepthGradientUVAnimated: 0 + - _DepthMaskAnimated: 0 + - _DepthMaskPanAnimated: 0 + - _DepthMaskUV: 0 + - _DepthMaskUVAnimated: 0 + - _DetailBrightness: 1 + - _DetailBrightnessAnimated: 0 + - _DetailEnabled: 0 + - _DetailMaskAnimated: 0 + - _DetailMaskPanAnimated: 0 + - _DetailMaskUV: 0 + - _DetailMaskUVAnimated: 0 + - _DetailNormalMapAnimated: 0 + - _DetailNormalMapPanAnimated: 0 + - _DetailNormalMapScale: 1 + - _DetailNormalMapScaleAnimated: 0 + - _DetailNormalMapUV: 0 + - _DetailNormalMapUVAnimated: 0 + - _DetailTexAnimated: 0 + - _DetailTexIntensity: 1 + - _DetailTexIntensityAnimated: 0 + - _DetailTexPanAnimated: 0 + - _DetailTexUV: 0 + - _DetailTexUVAnimated: 0 + - _DetailTintAnimated: 0 + - _DisableDirectionalInAdd: 1 + - _DissolveAlpha: 0 + - _DissolveAlpha0: 0 + - _DissolveAlpha0Animated: 0 + - _DissolveAlpha1: 0 + - _DissolveAlpha1Animated: 0 + - _DissolveAlpha2: 0 + - _DissolveAlpha2Animated: 0 + - _DissolveAlpha3: 0 + - _DissolveAlpha3Animated: 0 + - _DissolveAlpha4: 0 + - _DissolveAlpha4Animated: 0 + - _DissolveAlpha5: 0 + - _DissolveAlpha5Animated: 0 + - _DissolveAlpha6: 0 + - _DissolveAlpha6Animated: 0 + - _DissolveAlpha7: 0 + - _DissolveAlpha7Animated: 0 + - _DissolveAlpha8: 0 + - _DissolveAlpha8Animated: 0 + - _DissolveAlpha9: 0 + - _DissolveAlpha9Animated: 0 + - _DissolveAlphaAnimated: 0 + - _DissolveDetailNoiseAnimated: 0 + - _DissolveDetailNoisePanAnimated: 0 + - _DissolveDetailNoiseUV: 0 + - _DissolveDetailNoiseUVAnimated: 0 + - _DissolveDetailStrength: 0.1 + - _DissolveDetailStrengthAnimated: 0 + - _DissolveEdgeColorAnimated: 0 + - _DissolveEdgeEmission: 0 + - _DissolveEdgeEmissionAnimated: 0 + - _DissolveEdgeGradientAnimated: 0 + - _DissolveEdgeHardness: 0.5 + - _DissolveEdgeHardnessAnimated: 0 + - _DissolveEdgeWidth: 0.025 + - _DissolveEdgeWidthAnimated: 0 + - _DissolveEmission1Side: 2 + - _DissolveEmission1SideAnimated: 0 + - _DissolveEmissionSide: 2 + - _DissolveEmissionSideAnimated: 0 + - _DissolveEndPointAnimated: 0 + - _DissolveInvertDetailNoise: 0 + - _DissolveInvertDetailNoiseAnimated: 0 + - _DissolveInvertNoise: 0 + - _DissolveInvertNoiseAnimated: 0 + - _DissolveMaskAnimated: 0 + - _DissolveMaskInvert: 0 + - _DissolveMaskInvertAnimated: 0 + - _DissolveMaskPanAnimated: 0 + - _DissolveMaskUV: 0 + - _DissolveMaskUVAnimated: 0 + - _DissolveNoiseTextureAnimated: 0 + - _DissolveNoiseTexturePanAnimated: 0 + - _DissolveNoiseTextureUV: 0 + - _DissolveNoiseTextureUVAnimated: 0 + - _DissolveP2PEdgeLength: 0.1 + - _DissolveP2PEdgeLengthAnimated: 0 + - _DissolveP2PWorldLocal: 0 + - _DissolveP2PWorldLocalAnimated: 0 + - _DissolveStartPointAnimated: 0 + - _DissolveTextureColorAnimated: 0 + - _DissolveToEmissionStrength: 0 + - _DissolveToEmissionStrengthAnimated: 0 + - _DissolveToTextureAnimated: 0 + - _DissolveToTexturePanAnimated: 0 + - _DissolveToTextureUV: 0 + - _DissolveToTextureUVAnimated: 0 + - _DissolveType: 1 + - _DissolveTypeAnimated: 0 + - _DissolveUseVertexColors: 0 + - _DissolveUseVertexColorsAnimated: 0 + - _DistortionFlowTexture1Animated: 0 + - _DistortionFlowTextureAnimated: 0 + - _DistortionMaskAnimated: 0 + - _DistortionMaskPanAnimated: 0 + - _DistortionMaskUV: 0 + - _DistortionMaskUVAnimated: 0 + - _DistortionSpeed1Animated: 0 + - _DistortionSpeedAnimated: 0 + - _DistortionStrength: 0.5 + - _DistortionStrength1: 0.5 + - _DistortionStrength1Animated: 0 + - _DistortionStrengthAnimated: 0 + - _DitherGradient: 0.1 + - _DitherGradientAnimated: 0 + - _DitheringEnabled: 0 + - _DitheringEnabledAnimated: 0 + - _DstBlend: 10 + - _DstBlendAnimated: 0 + - _EmissionBaseColorAsMap: 0 + - _EmissionBaseColorAsMap1: 0 + - _EmissionBaseColorAsMap1Animated: 0 + - _EmissionBaseColorAsMapAnimated: 0 + - _EmissionBlinkingEnabled: 0 + - _EmissionBlinkingEnabled1: 0 + - _EmissionBlinkingEnabledAnimated: 0 + - _EmissionBlinkingOffset: 0 + - _EmissionBlinkingOffset1: 0 + - _EmissionBlinkingOffset1Animated: 0 + - _EmissionBlinkingOffsetAnimated: 0 + - _EmissionCenterOutEnabled: 0 + - _EmissionCenterOutEnabled1: 0 + - _EmissionCenterOutEnabled1Animated: 0 + - _EmissionCenterOutEnabledAnimated: 0 + - _EmissionCenterOutSpeed: 5 + - _EmissionCenterOutSpeed1: 5 + - _EmissionCenterOutSpeed1Animated: 0 + - _EmissionCenterOutSpeedAnimated: 0 + - _EmissionColor1Animated: 0 + - _EmissionColorAnimated: 0 + - _EmissionHueShift: 0 + - _EmissionHueShift1: 0 + - _EmissionHueShift1Animated: 0 + - _EmissionHueShiftAnimated: 0 + - _EmissionHueShiftEnabled: 0 + - _EmissionHueShiftEnabled1: 0 + - _EmissionHueShiftEnabled1Animated: 0 + - _EmissionHueShiftEnabledAnimated: 0 + - _EmissionMap1Animated: 0 + - _EmissionMap1PanAnimated: 0 + - _EmissionMap1UV: 0 + - _EmissionMap1UVAnimated: 0 + - _EmissionMapAnimated: 0 + - _EmissionMapPanAnimated: 0 + - _EmissionMapUV: 0 + - _EmissionMapUVAnimated: 0 + - _EmissionMask1Animated: 0 + - _EmissionMask1PanAnimated: 0 + - _EmissionMask1UV: 0 + - _EmissionMask1UVAnimated: 0 + - _EmissionMaskAnimated: 0 + - _EmissionMaskPanAnimated: 0 + - _EmissionMaskUV: 0 + - _EmissionMaskUVAnimated: 0 + - _EmissionReplace: 0 + - _EmissionReplaceAnimated: 0 + - _EmissionScrollingCurve1Animated: 0 + - _EmissionScrollingCurveAnimated: 0 + - _EmissionScrollingOffset: 0 + - _EmissionScrollingOffset1: 0 + - _EmissionScrollingOffset1Animated: 0 + - _EmissionScrollingOffsetAnimated: 0 + - _EmissionScrollingUseCurve: 0 + - _EmissionScrollingUseCurve1: 0 + - _EmissionScrollingUseCurve1Animated: 0 + - _EmissionScrollingUseCurveAnimated: 0 + - _EmissionScrollingVertexColor: 0 + - _EmissionScrollingVertexColor1: 0 + - _EmissionScrollingVertexColor1Animated: 0 + - _EmissionScrollingVertexColorAnimated: 0 + - _EmissionStrength: 0 + - _EmissionStrength1: 0 + - _EmissionStrength1Animated: 0 + - _EmissionStrengthAnimated: 0 + - _EmissiveBlink_Max: 1 + - _EmissiveBlink_Max1: 1 + - _EmissiveBlink_Max1Animated: 0 + - _EmissiveBlink_MaxAnimated: 0 + - _EmissiveBlink_Min: 0 + - _EmissiveBlink_Min1: 0 + - _EmissiveBlink_Min1Animated: 0 + - _EmissiveBlink_MinAnimated: 0 + - _EmissiveBlink_Velocity: 4 + - _EmissiveBlink_Velocity1: 4 + - _EmissiveBlink_Velocity1Animated: 0 + - _EmissiveBlink_VelocityAnimated: 0 + - _EmissiveScroll_Direction1Animated: 0 + - _EmissiveScroll_DirectionAnimated: 0 + - _EmissiveScroll_Interval: 20 + - _EmissiveScroll_Interval1: 20 + - _EmissiveScroll_Interval1Animated: 0 + - _EmissiveScroll_IntervalAnimated: 0 + - _EmissiveScroll_Velocity: 10 + - _EmissiveScroll_Velocity1: 10 + - _EmissiveScroll_Velocity1Animated: 0 + - _EmissiveScroll_VelocityAnimated: 0 + - _EmissiveScroll_Width: 10 + - _EmissiveScroll_Width1: 10 + - _EmissiveScroll_Width1Animated: 0 + - _EmissiveScroll_WidthAnimated: 0 + - _EnableBlur: 0 + - _EnableBlurAnimated: 0 + - _EnableBulge: 0 + - _EnableBulgeAnimated: 0 + - _EnableClearCoat: 0 + - _EnableClearCoatAnimated: 0 + - _EnableDissolve: 0 + - _EnableDissolveAnimated: 0 + - _EnableDistortion: 0 + - _EnableDistortionAnimated: 0 + - _EnableEmission: 0 + - _EnableEmission1: 0 + - _EnableEmission1Animated: 0 + - _EnableEmissionAnimated: 0 + - _EnableEnvironmentalRim: 0 + - _EnableEnvironmentalRimAnimated: 0 + - _EnableFlipbook: 0 + - _EnableFlipbookAnimated: 0 + - _EnableGITDEmission: 0 + - _EnableGITDEmission1: 0 + - _EnableGITDEmission1Animated: 0 + - _EnableGITDEmissionAnimated: 0 + - _EnableHolo: 0 + - _EnableHoloAnimated: 0 + - _EnableIridescence: 0 + - _EnableIridescenceAnimated: 0 + - _EnableLighting: 1 + - _EnableLightingAnimated: 0 + - _EnableMetallic: 0 + - _EnableMetallicAnimated: 0 + - _EnableMirrorOptions: 0 + - _EnableMirrorOptionsAnimated: 0 + - _EnableMirrorTexture: 0 + - _EnableMirrorTextureAnimated: 0 + - _EnableRandom: 0 + - _EnableRandomAnimated: 0 + - _EnableRimLighting: 0 + - _EnableRimLightingAnimated: 0 + - _EnableSSS: 0 + - _EnableSSSAnimated: 0 + - _EnableScifiSpawnIn: 0 + - _EnableScifiSpawnInAnimated: 0 + - _EnableSpecular: 0 + - _EnableSpecular1: 0 + - _EnableSpecular1Animated: 0 + - _EnableSpecularAnimated: 0 + - _EnableTouchGlow: 0 + - _EnableTouchGlowAnimated: 0 + - _EnableVertexGlitch: 0 + - _EnableVertexGlitchAnimated: 0 + - _EnableVideo: 0 + - _EnableVideoAnimated: 0 + - _EnableVoronoi: 0 + - _EnableVoronoiAnimated: 0 + - _FadeLength: 20 + - _FadeLengthAnimated: 0 + - _FlipbookAdd: 0 + - _FlipbookAddAnimated: 0 + - _FlipbookAlphaControlsFinalAlpha: 0 + - _FlipbookAlphaControlsFinalAlphaAnimated: 0 + - _FlipbookColorAnimated: 0 + - _FlipbookColorReplaces: 0 + - _FlipbookColorReplacesAnimated: 0 + - _FlipbookCurrentFrame: -1 + - _FlipbookCurrentFrameAnimated: 0 + - _FlipbookEmissionStrength: 0 + - _FlipbookEmissionStrengthAnimated: 0 + - _FlipbookFPS: 30 + - _FlipbookFPSAnimated: 0 + - _FlipbookIntensityControlsAlpha: 0 + - _FlipbookIntensityControlsAlphaAnimated: 0 + - _FlipbookMaskAnimated: 0 + - _FlipbookMaskPanAnimated: 0 + - _FlipbookMaskUV: 0 + - _FlipbookMaskUVAnimated: 0 + - _FlipbookMultiply: 0 + - _FlipbookMultiplyAnimated: 0 + - _FlipbookReplace: 1 + - _FlipbookReplaceAnimated: 0 + - _FlipbookRotation: 0 + - _FlipbookRotationAnimated: 0 + - _FlipbookRotationSpeed: 0 + - _FlipbookRotationSpeedAnimated: 0 + - _FlipbookScaleOffsetAnimated: 0 + - _FlipbookTexArrayAnimated: 0 + - _FlipbookTexArrayPanAnimated: 0 + - _FlipbookTexArrayUV: 0 + - _FlipbookTexArrayUVAnimated: 0 + - _FlipbookTiled: 0 + - _FlipbookTiledAnimated: 0 + - _FlipbookTotalFrames: 1 + - _FlipbookTotalFramesAnimated: 0 + - _ForceOpaque: 0 + - _ForceOpaqueAnimated: 0 + - _ForgotToLockMaterial: 1 + - _GIEmissionMultiplier: 1 + - _GITDEMaxEmissionMultiplier: 0 + - _GITDEMaxEmissionMultiplier1: 0 + - _GITDEMaxEmissionMultiplier1Animated: 0 + - _GITDEMaxEmissionMultiplierAnimated: 0 + - _GITDEMaxLight: 1 + - _GITDEMaxLight1: 1 + - _GITDEMaxLight1Animated: 0 + - _GITDEMaxLightAnimated: 0 + - _GITDEMinEmissionMultiplier: 1 + - _GITDEMinEmissionMultiplier1: 1 + - _GITDEMinEmissionMultiplier1Animated: 0 + - _GITDEMinEmissionMultiplierAnimated: 0 + - _GITDEMinLight: 0 + - _GITDEMinLight1: 0 + - _GITDEMinLight1Animated: 0 + - _GITDEMinLightAnimated: 0 + - _GITDEWorldOrMesh: 0 + - _GITDEWorldOrMesh1: 0 + - _GITDEWorldOrMesh1Animated: 0 + - _GITDEWorldOrMeshAnimated: 0 + - _GlitterAngleRange: 90 + - _GlitterAngleRangeAnimated: 0 + - _GlitterBias: 0.8 + - _GlitterBiasAnimated: 0 + - _GlitterBlendType: 0 + - _GlitterBlendTypeAnimated: 0 + - _GlitterBrightness: 3 + - _GlitterBrightnessAnimated: 0 + - _GlitterCenterSize: 0.08 + - _GlitterCenterSizeAnimated: 0 + - _GlitterColorAnimated: 0 + - _GlitterColorMapAnimated: 0 + - _GlitterColorMapPanAnimated: 0 + - _GlitterColorMapUV: 0 + - _GlitterColorMapUVAnimated: 0 + - _GlitterContrast: 300 + - _GlitterContrastAnimated: 0 + - _GlitterEnable: 0 + - _GlitterEnableAnimated: 0 + - _GlitterFrequency: 300 + - _GlitterFrequencyAnimated: 0 + - _GlitterJaggyFix: 0 + - _GlitterJaggyFixAnimated: 0 + - _GlitterJitter: 1 + - _GlitterJitterAnimated: 0 + - _GlitterMaskAnimated: 0 + - _GlitterMaskPanAnimated: 0 + - _GlitterMaskUV: 0 + - _GlitterMaskUVAnimated: 0 + - _GlitterMinBrightness: 0 + - _GlitterMinBrightnessAnimated: 0 + - _GlitterMinMaxBrightnessAnimated: 0 + - _GlitterMinMaxSaturationAnimated: 0 + - _GlitterMinMaxSizeAnimated: 0 + - _GlitterMode: 0 + - _GlitterModeAnimated: 0 + - _GlitterPanAnimated: 0 + - _GlitterRandomColors: 0 + - _GlitterRandomColorsAnimated: 0 + - _GlitterRandomRotation: 0 + - _GlitterRandomRotationAnimated: 0 + - _GlitterRandomSize: 0 + - _GlitterRandomSizeAnimated: 0 + - _GlitterShape: 0 + - _GlitterShapeAnimated: 0 + - _GlitterSize: 0.3 + - _GlitterSizeAnimated: 0 + - _GlitterSpeed: 10 + - _GlitterSpeedAnimated: 0 + - _GlitterTextureAnimated: 0 + - _GlitterTexturePanAnimated: 0 + - _GlitterTextureRotation: 0 + - _GlitterTextureRotationAnimated: 0 + - _GlitterUseSurfaceColor: 0 + - _GlitterUseSurfaceColorAnimated: 0 + - _GlossMapScale: 1 + - _Glossiness: 0 + - _GlossyReflections: 1 + - _GrabBlurDirections: 4 + - _GrabBlurDirectionsAnimated: 0 + - _GrabBlurDistance: 0 + - _GrabBlurDistanceAnimated: 0 + - _GrabBlurQuality: 2 + - _GrabBlurQualityAnimated: 0 + - _GrabDstBlend: 0 + - _GrabDstBlendAnimated: 0 + - _GrabPassBlendFactor: 1 + - _GrabPassBlendFactorAnimated: 0 + - _GrabPassBlendMapUV: 0 + - _GrabPassUseAlpha: 1 + - _GrabPassUseAlphaAnimated: 0 + - _GrabSrcBlend: 2 + - _GrabSrcBlendAnimated: 0 + - _GreenColorAnimated: 0 + - _GreenTextureAnimated: 0 + - _HelpBoxHideLocking: 0 + - _HelpBoxLocking: 0 + - _HoloAlphaMapAnimated: 0 + - _HoloCoordinateSpace: 0 + - _HoloCoordinateSpaceAnimated: 0 + - _HoloDirectionAnimated: 0 + - _HoloFresnelAlpha: 0 + - _HoloFresnelAlphaAnimated: 0 + - _HoloLineDensity: 10 + - _HoloLineDensityAnimated: 0 + - _HoloRimSharpness: 0.5 + - _HoloRimSharpnessAnimated: 0 + - _HoloRimWidth: 0.5 + - _HoloRimWidthAnimated: 0 + - _HoloScrollSpeed: 1 + - _HoloScrollSpeedAnimated: 0 + - _IgnoreFog: 0 + - _IgnoreFogAnimated: 0 + - _InvertSmoothness: 0 + - _InvertSmoothnessAnimated: 0 + - _IridescenceAddBlend: 0 + - _IridescenceAddBlendAnimated: 0 + - _IridescenceEmissionStrength: 0 + - _IridescenceEmissionStrengthAnimated: 0 + - _IridescenceIntensity: 1 + - _IridescenceIntensityAnimated: 0 + - _IridescenceMaskAnimated: 0 + - _IridescenceMaskUV: 0 + - _IridescenceMaskUVAnimated: 0 + - _IridescenceMultiplyBlend: 0 + - _IridescenceMultiplyBlendAnimated: 0 + - _IridescenceNormalIntensity: 1 + - _IridescenceNormalIntensityAnimated: 0 + - _IridescenceNormalMapAnimated: 0 + - _IridescenceNormalSelection: 1 + - _IridescenceNormalSelectionAnimated: 0 + - _IridescenceNormalToggle: 0 + - _IridescenceNormalToggleAnimated: 0 + - _IridescenceNormalUV: 0 + - _IridescenceNormalUVAnimated: 0 + - _IridescenceRampAnimated: 0 + - _IridescenceReplaceBlend: 0 + - _IridescenceReplaceBlendAnimated: 0 + - _IridescenceTime: 0 + - _IridescenceTimeAnimated: 0 + - _LightingAOTexAnimated: 0 + - _LightingAOTexPanAnimated: 0 + - _LightingAOTexUV: 0 + - _LightingAOTexUVAnimated: 0 + - _LightingAdditiveDetailStrength: 1 + - _LightingAdditiveDetailStrengthAnimated: 0 + - _LightingAdditiveGradientEnd: 0.5 + - _LightingAdditiveGradientEndAnimated: 0 + - _LightingAdditiveGradientStart: 0 + - _LightingAdditiveGradientStartAnimated: 0 + - _LightingAdditiveLimitIntensity: 0 + - _LightingAdditiveLimitIntensityAnimated: 0 + - _LightingAdditiveMaxIntensity: 1 + - _LightingAdditiveMaxIntensityAnimated: 0 + - _LightingAdditivePassthrough: 0.5 + - _LightingAdditivePassthroughAnimated: 0 + - _LightingAdditiveType: 1 + - _LightingAdditiveTypeAnimated: 0 + - _LightingDetailShadowsAnimated: 0 + - _LightingDetailShadowsEnabled: 0 + - _LightingDetailShadowsEnabledAnimated: 0 + - _LightingDetailShadowsPanAnimated: 0 + - _LightingDetailShadowsUV: 0 + - _LightingDetailShadowsUVAnimated: 0 + - _LightingDetailStrength: 1 + - _LightingDetailStrengthAnimated: 0 + - _LightingDirectColorMode: 0 + - _LightingDirectColorModeAnimated: 0 + - _LightingEnableAO: 0 + - _LightingEnableAOAnimated: 0 + - _LightingEnableHSL: 0 + - _LightingEnableHSLAnimated: 0 + - _LightingGradientEnd: 0.5 + - _LightingGradientEndAnimated: 0 + - _LightingGradientStart: 0 + - _LightingGradientStartAnimated: 0 + - _LightingHSLIntensity: 1 + - _LightingHSLIntensityAnimated: 0 + - _LightingIgnoreAmbientColor: 0 + - _LightingIgnoreAmbientColorAnimated: 0 + - _LightingIndirectColorMode: 0 + - _LightingIndirectColorModeAnimated: 0 + - _LightingMinLightBrightness: 0 + - _LightingMinLightBrightnessAnimated: 0 + - _LightingMinShadowBrightnessRatio: 0 + - _LightingMinShadowBrightnessRatioAnimated: 0 + - _LightingMode: 0 + - _LightingModeAnimated: 0 + - _LightingMonochromatic: 0 + - _LightingMonochromaticAnimated: 0 + - _LightingOnlyUnityShadows: 0 + - _LightingOnlyUnityShadowsAnimated: 0 + - _LightingRampType: 0 + - _LightingRampTypeAnimated: 0 + - _LightingShadingEnabled: 0 + - _LightingShadingEnabledAnimated: 0 + - _LightingShadowColorAnimated: 0 + - _LightingShadowHue: 0.5 + - _LightingShadowHueAnimated: 0 + - _LightingShadowLightness: 0.5 + - _LightingShadowLightnessAnimated: 0 + - _LightingShadowMaskAnimated: 0 + - _LightingShadowMaskPanAnimated: 0 + - _LightingShadowMaskUV: 0 + - _LightingShadowMaskUVAnimated: 0 + - _LightingShadowSaturation: 0.5 + - _LightingShadowSaturationAnimated: 0 + - _LightingShadowTextureAnimated: 0 + - _LightingShadowTexturePanAnimated: 0 + - _LightingShadowTextureUV: 0 + - _LightingShadowTextureUVAnimated: 0 + - _LightingStandardSmoothness: 0 + - _LightingStandardSmoothnessAnimated: 0 + - _LightingUncapped: 0 + - _LightingUncappedAnimated: 0 + - _LineColorAnimated: 0 + - _LineWidth: 0 + - _LineWidthAnimated: 0 + - _LockTooltip: 0 + - _MainAlphaToCoverage: 0 + - _MainAlphaToCoverageAnimated: 0 + - _MainDistanceFadeAnimated: 0 + - _MainEmissionStrength: 0 + - _MainEmissionStrengthAnimated: 0 + - _MainFadeTextureAnimated: 0 + - _MainFadeTexturePanAnimated: 0 + - _MainFadeTextureUV: 0 + - _MainFadeTextureUVAnimated: 0 + - _MainHueShift: 0 + - _MainHueShiftAnimated: 0 + - _MainHueShiftMaskAnimated: 0 + - _MainHueShiftMaskPanAnimated: 0 + - _MainHueShiftMaskUV: 0 + - _MainHueShiftMaskUVAnimated: 0 + - _MainHueShiftReplace: 1 + - _MainHueShiftReplaceAnimated: 0 + - _MainHueShiftSpeed: 0 + - _MainHueShiftSpeedAnimated: 0 + - _MainHueShiftToggle: 0 + - _MainHueShiftToggleAnimated: 0 + - _MainMinAlpha: 0 + - _MainMinAlphaAnimated: 0 + - _MainMipScale: 0.25 + - _MainMipScaleAnimated: 0 + - _MainShadowClipMod: 0 + - _MainShadowClipModAnimated: 0 + - _MainTexAnimated: 0 + - _MainTexPanAnimated: 0 + - _MainTex_STAnimated: 0 + - _MainTextureUV: 0 + - _MainTextureUVAnimated: 0 + - _MainUseVertexColorAlpha: 0 + - _MainUseVertexColorAlphaAnimated: 0 + - _MainVertexColoring: 0 + - _MainVertexColoringAnimated: 0 + - _Matcap2Add: 0 + - _Matcap2AddAnimated: 0 + - _Matcap2Animated: 0 + - _Matcap2Border: 0.43 + - _Matcap2BorderAnimated: 0 + - _Matcap2ColorAnimated: 0 + - _Matcap2EmissionStrength: 0 + - _Matcap2EmissionStrengthAnimated: 0 + - _Matcap2Enable: 0 + - _Matcap2EnableAnimated: 0 + - _Matcap2Intensity: 1 + - _Matcap2IntensityAnimated: 0 + - _Matcap2LightMask: 0 + - _Matcap2LightMaskAnimated: 0 + - _Matcap2MaskAnimated: 0 + - _Matcap2MaskInvert: 0 + - _Matcap2MaskInvertAnimated: 0 + - _Matcap2MaskPanAnimated: 0 + - _Matcap2MaskUV: 0 + - _Matcap2MaskUVAnimated: 0 + - _Matcap2Multiply: 0 + - _Matcap2MultiplyAnimated: 0 + - _Matcap2Normal: 1 + - _Matcap2NormalAnimated: 0 + - _Matcap2Replace: 0 + - _Matcap2ReplaceAnimated: 0 + - _MatcapAdd: 0 + - _MatcapAddAnimated: 0 + - _MatcapAnimated: 0 + - _MatcapBorder: 0.43 + - _MatcapBorderAnimated: 0 + - _MatcapColorAnimated: 0 + - _MatcapEmissionStrength: 0 + - _MatcapEmissionStrengthAnimated: 0 + - _MatcapEnable: 0 + - _MatcapEnableAnimated: 0 + - _MatcapIntensity: 1 + - _MatcapIntensityAnimated: 0 + - _MatcapLightMask: 0 + - _MatcapLightMaskAnimated: 0 + - _MatcapMaskAnimated: 0 + - _MatcapMaskInvert: 0 + - _MatcapMaskInvertAnimated: 0 + - _MatcapMaskPanAnimated: 0 + - _MatcapMaskUV: 0 + - _MatcapMaskUVAnimated: 0 + - _MatcapMultiply: 0 + - _MatcapMultiplyAnimated: 0 + - _MatcapNormal: 1 + - _MatcapNormalAnimated: 0 + - _MatcapReplace: 1 + - _MatcapReplaceAnimated: 0 + - _MetalReflectionTintAnimated: 0 + - _Metallic: 0 + - _MetallicAnimated: 0 + - _MetallicMaskAnimated: 0 + - _MetallicMaskPanAnimated: 0 + - _MetallicMaskUV: 0 + - _MetallicMaskUVAnimated: 0 + - _MetallicTintMapAnimated: 0 + - _MetallicTintMapPanAnimated: 0 + - _MetallicTintMapUV: 0 + - _MetallicTintMapUVAnimated: 0 + - _Mirror: 0 + - _MirrorAnimated: 0 + - _MirrorTextureAnimated: 0 + - _MirrorTexturePanAnimated: 0 + - _MirrorTextureUV: 0 + - _MirrorTextureUVAnimated: 0 + - _Mode: 2 + - _ModelAngleMax: 90 + - _ModelAngleMaxAnimated: 0 + - _ModelAngleMin: 45 + - _ModelAngleMinAnimated: 0 + - _OcclusionStrength: 1 + - _OffsetFactor: 0 + - _OffsetFactorAnimated: 0 + - _OffsetUnits: 0 + - _OffsetUnitsAnimated: 0 + - _OutlineCull: 1 + - _OutlineCullAnimated: 0 + - _OutlineDropShadowOffsetAnimated: 0 + - _OutlineEmission: 0 + - _OutlineEmissionAnimated: 0 + - _OutlineFadeDistanceAnimated: 0 + - _OutlineFixedSize: 0 + - _OutlineFixedSizeAnimated: 0 + - _OutlineLit: 1 + - _OutlineLitAnimated: 0 + - _OutlineMaskAnimated: 0 + - _OutlineMaskUV: 0 + - _OutlineMode: 0 + - _OutlineModeAnimated: 0 + - _OutlineOffsetFactor: 0 + - _OutlineOffsetUnits: 0 + - _OutlinePersonaDirectionAnimated: 0 + - _OutlineRimLightBlend: 0 + - _OutlineRimLightBlendAnimated: 0 + - _OutlineShadowStrength: 1 + - _OutlineShadowStrengthAnimated: 0 + - _OutlineStencilCompareFunction: 8 + - _OutlineStencilCompareFunctionAnimated: 0 + - _OutlineStencilFailOp: 0 + - _OutlineStencilFailOpAnimated: 0 + - _OutlineStencilPassOp: 0 + - _OutlineStencilPassOpAnimated: 0 + - _OutlineStencilReadMask: 255 + - _OutlineStencilReadMaskAnimated: 0 + - _OutlineStencilRef: 0 + - _OutlineStencilRefAnimated: 0 + - _OutlineStencilWriteMask: 255 + - _OutlineStencilWriteMaskAnimated: 0 + - _OutlineStencilZFailOp: 0 + - _OutlineStencilZFailOpAnimated: 0 + - _OutlineTextureAnimated: 0 + - _OutlineTexturePanAnimated: 0 + - _OutlineTextureUV: 0 + - _OutlineTintMix: 0 + - _OutlineTintMixAnimated: 0 + - _OutlineUseVertexColors: 0 + - _OutlineUseVertexColorsAnimated: 0 + - _PanoBlend: 0 + - _PanoBlendAnimated: 0 + - _PanoCubeMapAnimated: 0 + - _PanoCubeMapToggle: 0 + - _PanoCubeMapToggleAnimated: 0 + - _PanoEmission: 0 + - _PanoEmissionAnimated: 0 + - _PanoInfiniteStereoToggle: 0 + - _PanoInfiniteStereoToggleAnimated: 0 + - _PanoMaskAnimated: 0 + - _PanoMaskPanAnimated: 0 + - _PanoMaskUV: 0 + - _PanoMaskUVAnimated: 0 + - _PanoToggle: 0 + - _PanoToggleAnimated: 0 + - _PanosphereColorAnimated: 0 + - _PanospherePanAnimated: 0 + - _PanosphereTextureAnimated: 0 + - _Parallax: 0.02 + - _ParallaxBias: 0.42 + - _ParallaxBiasAnimated: 0 + - _ParallaxHeightMapAnimated: 0 + - _ParallaxHeightMapEnabled: 0 + - _ParallaxHeightMapEnabledAnimated: 0 + - _ParallaxHeightMapMaskAnimated: 0 + - _ParallaxHeightMapMaskPanAnimated: 0 + - _ParallaxHeightMapMaskUV: 0 + - _ParallaxHeightMapMaskUVAnimated: 0 + - _ParallaxHeightMapPanAnimated: 0 + - _ParallaxInternalHeightFromAlpha: 0 + - _ParallaxInternalHeightFromAlphaAnimated: 0 + - _ParallaxInternalHeightmapMode: 0 + - _ParallaxInternalHeightmapModeAnimated: 0 + - _ParallaxInternalIterations: 1 + - _ParallaxInternalIterationsAnimated: 0 + - _ParallaxInternalMapAnimated: 0 + - _ParallaxInternalMapEnabled: 0 + - _ParallaxInternalMapEnabledAnimated: 0 + - _ParallaxInternalMapMaskAnimated: 0 + - _ParallaxInternalMapMaskPanAnimated: 0 + - _ParallaxInternalMapMaskUV: 0 + - _ParallaxInternalMapMaskUVAnimated: 0 + - _ParallaxInternalMaxColorAnimated: 0 + - _ParallaxInternalMaxDepth: 1 + - _ParallaxInternalMaxDepthAnimated: 0 + - _ParallaxInternalMaxFade: 1 + - _ParallaxInternalMaxFadeAnimated: 0 + - _ParallaxInternalMinColorAnimated: 0 + - _ParallaxInternalMinDepth: 0 + - _ParallaxInternalMinDepthAnimated: 0 + - _ParallaxInternalMinFade: 0 + - _ParallaxInternalMinFadeAnimated: 0 + - _ParallaxInternalPanDepthSpeedAnimated: 0 + - _ParallaxInternalPanSpeedAnimated: 0 + - _ParallaxMap: 0 + - _ParallaxMapAnimated: 0 + - _ParallaxStrength: 0 + - _ParallaxStrengthAnimated: 0 + - _ParallaxUV: 0 + - _ParallaxUVAnimated: 0 + - _RGBBlendMultiplicative: 0 + - _RGBBlendMultiplicativeAnimated: 0 + - _RGBBluePanningAnimated: 0 + - _RGBBlue_UV: 0 + - _RGBBlue_UVAnimated: 0 + - _RGBGreenPanningAnimated: 0 + - _RGBGreen_UV: 0 + - _RGBGreen_UVAnimated: 0 + - _RGBMaskAnimated: 0 + - _RGBMaskEnabled: 0 + - _RGBMaskEnabledAnimated: 0 + - _RGBMaskPanningAnimated: 0 + - _RGBMaskUV: 0 + - _RGBMaskUVAnimated: 0 + - _RGBNormalBlend: 0 + - _RGBNormalBlendAnimated: 0 + - _RGBRedPanningAnimated: 0 + - _RGBRed_UV: 0 + - _RGBRed_UVAnimated: 0 + - _RGBUseVertexColors: 0 + - _RGBUseVertexColorsAnimated: 0 + - _RedColorAnimated: 0 + - _RedTexureAnimated: 0 + - _RefractionChromaticAberattion: 0 + - _RefractionChromaticAberattionAnimated: 0 + - _RefractionEnabled: 0 + - _RefractionEnabledAnimated: 0 + - _RefractionIndex: 1.333333 + - _RefractionIndexAnimated: 0 + - _RgbNormalBScale: 0 + - _RgbNormalBUV: 0 + - _RgbNormalGScale: 0 + - _RgbNormalGUV: 0 + - _RgbNormalRScale: 0 + - _RgbNormalRUV: 0 + - _RgbNormalsEnabled: 0 + - _RimBrighten: 0 + - _RimBrightenAnimated: 0 + - _RimEnviroBlur: 0.7 + - _RimEnviroBlurAnimated: 0 + - _RimEnviroIntensity: 1 + - _RimEnviroIntensityAnimated: 0 + - _RimEnviroMaskAnimated: 0 + - _RimEnviroMaskPanAnimated: 0 + - _RimEnviroMaskUV: 0 + - _RimEnviroMaskUVAnimated: 0 + - _RimEnviroMinBrightness: 0 + - _RimEnviroMinBrightnessAnimated: 0 + - _RimEnviroSharpness: 0 + - _RimEnviroSharpnessAnimated: 0 + - _RimEnviroWidth: 0.45 + - _RimEnviroWidthAnimated: 0 + - _RimLightColorAnimated: 0 + - _RimLightColorBias: 0 + - _RimLightColorBiasAnimated: 0 + - _RimLightNormal: 1 + - _RimLightNormalAnimated: 0 + - _RimLightingInvert: 0 + - _RimLightingInvertAnimated: 0 + - _RimMaskAnimated: 0 + - _RimMaskPanAnimated: 0 + - _RimMaskUV: 0 + - _RimMaskUVAnimated: 0 + - _RimSharpness: 0.25 + - _RimSharpnessAnimated: 0 + - _RimStrength: 0 + - _RimStrengthAnimated: 0 + - _RimTexAnimated: 0 + - _RimTexPanAnimated: 0 + - _RimTexUV: 0 + - _RimTexUVAnimated: 0 + - _RimWidth: 0.8 + - _RimWidthAnimated: 0 + - _RimWidthNoiseStrength: 0.1 + - _RimWidthNoiseStrengthAnimated: 0 + - _RimWidthNoiseTextureAnimated: 0 + - _RimWidthNoiseTexturePanAnimated: 0 + - _RimWidthNoiseTextureUV: 0 + - _RimWidthNoiseTextureUVAnimated: 0 + - _SSSColorAnimated: 0 + - _SSSDistortion: 1 + - _SSSDistortionAnimated: 0 + - _SSSPower: 5 + - _SSSPowerAnimated: 0 + - _SSSSCale: 0.25 + - _SSSSCaleAnimated: 0 + - _SSSThicknessMapAnimated: 0 + - _SSSThicknessMapPanAnimated: 0 + - _SSSThicknessMapUV: 0 + - _SSSThicknessMapUVAnimated: 0 + - _SSSThicknessMod: 0 + - _SSSThicknessModAnimated: 0 + - _SampleWorld: 0 + - _SampleWorldAnimated: 0 + - _Saturation: 0 + - _SaturationAnimated: 0 + - _ScrollingEmission: 0 + - _ScrollingEmission1: 0 + - _ScrollingEmission1Animated: 0 + - _ScrollingEmissionAnimated: 0 + - _ShadeColor_Step: 0 + - _ShaderOptimizerEnabled: 0 + - _ShadowMix: 0 + - _ShadowMixAnimated: 0 + - _ShadowMixThreshold: 0.5 + - _ShadowMixThresholdAnimated: 0 + - _ShadowMixWidthMod: 0.5 + - _ShadowMixWidthModAnimated: 0 + - _ShadowOffset: 0 + - _ShadowOffsetAnimated: 0 + - _ShadowStrength: 1 + - _ShadowStrengthAnimated: 0 + - _Smoothness: 0 + - _SmoothnessAnimated: 0 + - _SmoothnessFrom: 1 + - _SmoothnessFrom1: 1 + - _SmoothnessFrom1Animated: 0 + - _SmoothnessFromAnimated: 0 + - _SmoothnessMaskAnimated: 0 + - _SmoothnessMaskPanAnimated: 0 + - _SmoothnessMaskUV: 0 + - _SmoothnessMaskUVAnimated: 0 + - _SmoothnessTextureChannel: 0 + - _SpawnInAlpha: 0 + - _SpawnInAlphaAnimated: 0 + - _SpawnInEmissionColorAnimated: 0 + - _SpawnInEmissionOffset: 0.1 + - _SpawnInEmissionOffsetAnimated: 0 + - _SpawnInGradientFinishAnimated: 0 + - _SpawnInGradientStartAnimated: 0 + - _SpawnInNoiseAnimated: 0 + - _SpawnInNoiseIntensity: 0.35 + - _SpawnInNoiseIntensityAnimated: 0 + - _SpawnInVertOffset: 10 + - _SpawnInVertOffsetAnimated: 0 + - _SpawnInVertOffsetOffset: 0.1 + - _SpawnInVertOffsetOffsetAnimated: 0 + - _Spec1Offset: 0 + - _Spec1Offset1: 0 + - _Spec1Offset1Animated: 0 + - _Spec1OffsetAnimated: 0 + - _Spec2Smoothness: 0 + - _Spec2Smoothness1: 0 + - _Spec2Smoothness1Animated: 0 + - _Spec2SmoothnessAnimated: 0 + - _SpecWhatTangent: 0 + - _SpecWhatTangent1: 0 + - _SpecWhatTangent1Animated: 0 + - _SpecWhatTangentAnimated: 0 + - _SpecularAnisoJitterMacro1Animated: 0 + - _SpecularAnisoJitterMacro1PanAnimated: 0 + - _SpecularAnisoJitterMacro1UV: 0 + - _SpecularAnisoJitterMacro1UVAnimated: 0 + - _SpecularAnisoJitterMacroAnimated: 0 + - _SpecularAnisoJitterMacroMultiplier: 0 + - _SpecularAnisoJitterMacroMultiplier1: 0 + - _SpecularAnisoJitterMacroMultiplier1Animated: 0 + - _SpecularAnisoJitterMacroMultiplierAnimated: 0 + - _SpecularAnisoJitterMacroPanAnimated: 0 + - _SpecularAnisoJitterMacroUV: 0 + - _SpecularAnisoJitterMacroUVAnimated: 0 + - _SpecularAnisoJitterMicro1Animated: 0 + - _SpecularAnisoJitterMicro1PanAnimated: 0 + - _SpecularAnisoJitterMicro1UV: 0 + - _SpecularAnisoJitterMicro1UVAnimated: 0 + - _SpecularAnisoJitterMicroAnimated: 0 + - _SpecularAnisoJitterMicroMultiplier: 0 + - _SpecularAnisoJitterMicroMultiplier1: 0 + - _SpecularAnisoJitterMicroMultiplier1Animated: 0 + - _SpecularAnisoJitterMicroMultiplierAnimated: 0 + - _SpecularAnisoJitterMicroPanAnimated: 0 + - _SpecularAnisoJitterMicroUV: 0 + - _SpecularAnisoJitterMicroUVAnimated: 0 + - _SpecularAnisoJitterMirrored: 0 + - _SpecularAnisoJitterMirrored1: 0 + - _SpecularAnisoJitterMirrored1Animated: 0 + - _SpecularAnisoJitterMirroredAnimated: 0 + - _SpecularHighlights: 1 + - _SpecularInvertSmoothness: 0 + - _SpecularInvertSmoothness1: 0 + - _SpecularInvertSmoothness1Animated: 0 + - _SpecularInvertSmoothnessAnimated: 0 + - _SpecularMap1Animated: 0 + - _SpecularMap1PanAnimated: 0 + - _SpecularMap1UV: 0 + - _SpecularMap1UVAnimated: 0 + - _SpecularMapAnimated: 0 + - _SpecularMapPanAnimated: 0 + - _SpecularMapUV: 0 + - _SpecularMapUVAnimated: 0 + - _SpecularMask1Animated: 0 + - _SpecularMask1PanAnimated: 0 + - _SpecularMask1UV: 0 + - _SpecularMask1UVAnimated: 0 + - _SpecularMaskAnimated: 0 + - _SpecularMaskPanAnimated: 0 + - _SpecularMaskUV: 0 + - _SpecularMaskUVAnimated: 0 + - _SpecularMetallic: 0 + - _SpecularMetallic1: 0 + - _SpecularMetallic1Animated: 0 + - _SpecularMetallicAnimated: 0 + - _SpecularMetallicMap1UV: 0 + - _SpecularMetallicMapUV: 0 + - _SpecularNormal: 1 + - _SpecularNormal1: 1 + - _SpecularNormal1Animated: 0 + - _SpecularNormalAnimated: 0 + - _SpecularSmoothness: 1 + - _SpecularSmoothness1: 0.75 + - _SpecularSmoothness1Animated: 0 + - _SpecularSmoothnessAnimated: 0 + - _SpecularTint1Animated: 0 + - _SpecularTintAnimated: 0 + - _SpecularToonEnd: 1 + - _SpecularToonEnd1: 1 + - _SpecularToonEnd1Animated: 0 + - _SpecularToonEndAnimated: 0 + - _SpecularToonInnerOuter1Animated: 0 + - _SpecularToonInnerOuterAnimated: 0 + - _SpecularToonStart: 0.95 + - _SpecularToonStart1: 0.95 + - _SpecularToonStart1Animated: 0 + - _SpecularToonStartAnimated: 0 + - _SpecularType: 1 + - _SpecularType1: 1 + - _SpecularType1Animated: 0 + - _SpecularTypeAnimated: 0 + - _SrcBlend: 5 + - _SrcBlendAnimated: 0 + - _StencilCompareFunction: 6 + - _StencilCompareFunctionAnimated: 0 + - _StencilFailOp: 0 + - _StencilFailOpAnimated: 0 + - _StencilPassOp: 0 + - _StencilPassOpAnimated: 0 + - _StencilReadMask: 255 + - _StencilReadMaskAnimated: 0 + - _StencilRef: 12 + - _StencilRefAnimated: 0 + - _StencilWriteMask: 255 + - _StencilWriteMaskAnimated: 0 + - _StencilZFailOp: 0 + - _StencilZFailOpAnimated: 0 + - _TextEnabled: 0 + - _TextEnabledAnimated: 0 + - _TextFPSColorAnimated: 0 + - _TextFPSEmissionStrength: 0 + - _TextFPSEmissionStrengthAnimated: 0 + - _TextFPSEnabled: 0 + - _TextFPSEnabledAnimated: 0 + - _TextFPSOffsetAnimated: 0 + - _TextFPSPaddingAnimated: 0 + - _TextFPSRotation: 0 + - _TextFPSRotationAnimated: 0 + - _TextFPSScaleAnimated: 0 + - _TextFPSUV: 0 + - _TextFPSUVAnimated: 0 + - _TextGlyphsAnimated: 0 + - _TextPixelRange: 4 + - _TextPixelRangeAnimated: 0 + - _TextPositionColorAnimated: 0 + - _TextPositionEmissionStrength: 0 + - _TextPositionEmissionStrengthAnimated: 0 + - _TextPositionEnabled: 0 + - _TextPositionEnabledAnimated: 0 + - _TextPositionOffsetAnimated: 0 + - _TextPositionPaddingAnimated: 0 + - _TextPositionRotation: 0 + - _TextPositionRotationAnimated: 0 + - _TextPositionScaleAnimated: 0 + - _TextPositionUV: 0 + - _TextPositionUVAnimated: 0 + - _TextTimeColorAnimated: 0 + - _TextTimeEmissionStrength: 0 + - _TextTimeEmissionStrengthAnimated: 0 + - _TextTimeEnabled: 0 + - _TextTimeEnabledAnimated: 0 + - _TextTimeOffsetAnimated: 0 + - _TextTimePaddingAnimated: 0 + - _TextTimeRotation: 0 + - _TextTimeRotationAnimated: 0 + - _TextTimeScaleAnimated: 0 + - _TextTimeUV: 0 + - _TextTimeUVAnimated: 0 + - _ToonRampAnimated: 0 + - _UVSec: 0 + - _UseShadowTexture: 0 + - _UseShadowTextureAnimated: 0 + - _Use_1stAs2nd: 0 + - _Use_BaseAs1st: 0 + - _VertexGlitchFrequency: 0 + - _VertexGlitchFrequencyAnimated: 0 + - _VertexGlitchStrength: 1 + - _VertexGlitchStrengthAnimated: 0 + - _VertexGlitchThreshold: 1 + - _VertexGlitchThresholdAnimated: 0 + - _VertexManipulationHeight: 0 + - _VertexManipulationHeightAnimated: 0 + - _VertexManipulationHeightBias: 0 + - _VertexManipulationHeightBiasAnimated: 0 + - _VertexManipulationHeightMaskAnimated: 0 + - _VertexManipulationHeightPanAnimated: 0 + - _VertexManipulationHeightUV: 0 + - _VertexManipulationHeightUVAnimated: 0 + - _VertexManipulationLocalRotationAnimated: 0 + - _VertexManipulationLocalScaleAnimated: 0 + - _VertexManipulationLocalTranslationAnimated: 0 + - _VertexManipulationWorldTranslationAnimated: 0 + - _VertexManipulationsEnabled: 0 + - _VertexRoundingDivision: 500 + - _VertexRoundingDivisionAnimated: 0 + - _VertexRoundingEnabled: 0 + - _VertexRoundingEnabledAnimated: 0 + - _VertexUnwrap: 0 + - _VertexUnwrapAnimated: 0 + - _VideoBacklight: 1 + - _VideoBacklightAnimated: 0 + - _VideoCRTPixelEnergizedTime: 1.9 + - _VideoCRTPixelEnergizedTimeAnimated: 0 + - _VideoCRTRefreshRate: 24 + - _VideoCRTRefreshRateAnimated: 0 + - _VideoContrast: 0 + - _VideoContrastAnimated: 0 + - _VideoDebugTextureAnimated: 0 + - _VideoEnableDebug: 0 + - _VideoEnableDebugAnimated: 0 + - _VideoEnableVideoPlayer: 0 + - _VideoEnableVideoPlayerAnimated: 0 + - _VideoGameboyRampAnimated: 0 + - _VideoMaskPanningAnimated: 0 + - _VideoMaskTextureAnimated: 0 + - _VideoOffsetAnimated: 0 + - _VideoPanningAnimated: 0 + - _VideoPixelTextureAnimated: 0 + - _VideoPixelateToResolution: 0 + - _VideoPixelateToResolutionAnimated: 0 + - _VideoRepeatVideoTexture: 0 + - _VideoRepeatVideoTextureAnimated: 0 + - _VideoResolutionAnimated: 0 + - _VideoSaturation: 0 + - _VideoSaturationAnimated: 0 + - _VideoTilingAnimated: 0 + - _VideoType: 3 + - _VideoTypeAnimated: 0 + - _VideoUVNumber: 0 + - _VideoUVNumberAnimated: 0 + - _VoronoiBlend: 0 + - _VoronoiBlendAnimated: 0 + - _VoronoiColor0Animated: 0 + - _VoronoiColor1Animated: 0 + - _VoronoiEffectsMaterialAlpha: 0 + - _VoronoiEffectsMaterialAlphaAnimated: 0 + - _VoronoiEmission0: 0 + - _VoronoiEmission0Animated: 0 + - _VoronoiEmission1: 0 + - _VoronoiEmission1Animated: 0 + - _VoronoiEnableRandomCellColor: 0 + - _VoronoiEnableRandomCellColorAnimated: 0 + - _VoronoiGradientAnimated: 0 + - _VoronoiMaskAnimated: 0 + - _VoronoiMaskPanAnimated: 0 + - _VoronoiMaskUV: 0 + - _VoronoiMaskUVAnimated: 0 + - _VoronoiNoiseAnimated: 0 + - _VoronoiNoiseIntensity: 0.1 + - _VoronoiNoiseIntensityAnimated: 0 + - _VoronoiNoisePanAnimated: 0 + - _VoronoiNoiseUV: 0 + - _VoronoiNoiseUVAnimated: 0 + - _VoronoiRandomMinMaxBrightnessAnimated: 0 + - _VoronoiRandomMinMaxSaturationAnimated: 0 + - _VoronoiScale: 5 + - _VoronoiScaleAnimated: 0 + - _VoronoiSpace: 0 + - _VoronoiSpaceAnimated: 0 + - _VoronoiSpeedAnimated: 0 + - _VoronoiType: 1 + - _VoronoiTypeAnimated: 0 + - _ZTest: 4 + - _ZTestAnimated: 0 + - _ZWrite: 0 + - _ZWriteAnimated: 0 + - _commentIfZero_EnableGrabpass: 0 + - _commentIfZero_EnableOutlinePass: 0 + - _commentIfZero_LightingAdditiveEnable: 1 + - _commentIfZero_LightingAdditiveEnableAnimated: 0 + - _glitterFrequencyLinearEmissive: 20 + - _glitterFrequencyLinearEmissiveAnimated: 0 + - footer_discord: 0 + - footer_github: 0 + - footer_patreon: 0 + - footer_twitter: 0 + - footer_youtube: 0 + - m_LockingInfo: 0 + - m_ParallaxMap: 0 + - m_Patreon: 0 + - m_Special_Effects: 0 + - m_end_Alpha: 0 + - m_end_BlackLight: 0 + - m_end_Blur: 0 + - m_end_BonusSliders: 0 + - m_end_Bulge: 0 + - m_end_CRT: 0 + - m_end_CenterOutEmission: 0 + - m_end_CenterOutEmission1: 0 + - m_end_DecalSection: 0 + - m_end_DetailOptions: 0 + - m_end_FresnelAlpha: 0 + - m_end_Gameboy: 0 + - m_end_GrabPass: 0 + - m_end_Hologram: 0 + - m_end_Iridescence: 0 + - m_end_Lighting: 0 + - m_end_MainHueShift: 0 + - m_end_MainVertexColors: 0 + - m_end_Matcap2: 0 + - m_end_Metallic: 0 + - m_end_OutlineStencil: 0 + - m_end_RGBMask: 0 + - m_end_Refraction: 0 + - m_end_SciFiSpawnIn: 0 + - m_end_ShadowMix: 0 + - m_end_Spawns: 0 + - m_end_StencilPassOptions: 0 + - m_end_Text: 0 + - m_end_TextFPS: 0 + - m_end_TextInstanceTime: 0 + - m_end_TextPosition: 0 + - m_end_TouchGlow: 0 + - m_end_TouchOptions: 0 + - m_end_VertexGlitch: 0 + - m_end_Video: 0 + - m_end_VideoDebug: 0 + - m_end_VideoSettings: 0 + - m_end_Voronoi: 0 + - m_end_ambientOcclusion: 0 + - m_end_angularFade: 0 + - m_end_backFace: 0 + - m_end_bakedLighting: 0 + - m_end_blending: 0 + - m_end_blinkingEmissionOptions: 0 + - m_end_blinkingEmissionOptions1: 0 + - m_end_clearCoat: 0 + - m_end_debugOptions: 0 + - m_end_detailShadows: 0 + - m_end_dissolve: 0 + - m_end_dissolveMasking: 0 + - m_end_distanceFade: 0 + - m_end_distortionFlow: 0 + - m_end_emission1Options: 0 + - m_end_emissionOptions: 0 + - m_end_flipBook: 0 + - m_end_glitter: 0 + - m_end_glitterRandom: 0 + - m_end_glowInDarkEmissionOptions: 0 + - m_end_glowInDarkEmissionOptions1: 0 + - m_end_lightingAdvanced: 0 + - m_end_lightingHSL: 0 + - m_end_lightingModifiers: 0 + - m_end_manualFlipbookControl: 0 + - m_end_matcap: 0 + - m_end_mirrorOptions: 0 + - m_end_outlineAdvanced: 0 + - m_end_panosphereOptions: 0 + - m_end_parallaxAdvanced: 0 + - m_end_parallaxHeightmap: 0 + - m_end_parallaxInternal: 0 + - m_end_pointToPoint: 0 + - m_end_reflectionRim: 0 + - m_end_rimLightOptions: 0 + - m_end_rimWidthNoise: 0 + - m_end_scrollingEmission1Options: 0 + - m_end_scrollingEmissionOptions: 0 + - m_end_shadowTexture: 0 + - m_end_specular: 0 + - m_end_specular1: 0 + - m_end_subsurface: 0 + - m_end_vertexManipulation: 0 + - m_end_voronoiRandom: 0 + - m_lightingOptions: 0 + - m_mainOptions: 1 + - m_outlineOptions: 0 + - m_renderingOptions: 1 + - m_start_Alpha: 0 + - m_start_BlackLight: 0 + - m_start_Blur: 0 + - m_start_BonusSliders: 0 + - m_start_Bulge: 0 + - m_start_CRT: 0 + - m_start_CenterOutEmission: 0 + - m_start_CenterOutEmission1: 0 + - m_start_DecalSection: 0 + - m_start_DetailOptions: 0 + - m_start_FresnelAlpha: 0 + - m_start_Gameboy: 0 + - m_start_GrabPass: 0 + - m_start_Hologram: 0 + - m_start_Iridescence: 0 + - m_start_Lighting: 0 + - m_start_MainHueShift: 0 + - m_start_MainVertexColors: 0 + - m_start_Matcap2: 0 + - m_start_Metallic: 0 + - m_start_OutlineStencil: 0 + - m_start_RGBMask: 0 + - m_start_Refraction: 0 + - m_start_ScifiSpawnIn: 0 + - m_start_ShadowMix: 0 + - m_start_Spawns: 0 + - m_start_StencilPassOptions: 1 + - m_start_Text: 0 + - m_start_TextFPS: 0 + - m_start_TextInstanceTime: 0 + - m_start_TextPosition: 0 + - m_start_TouchGlow: 0 + - m_start_TouchOptions: 0 + - m_start_VertexGlitch: 0 + - m_start_Video: 0 + - m_start_VideoDebug: 0 + - m_start_VideoSettings: 0 + - m_start_Voronoi: 0 + - m_start_ambientOcclusion: 0 + - m_start_angularFade: 0 + - m_start_backFace: 0 + - m_start_bakedLighting: 0 + - m_start_blending: 0 + - m_start_blinkingEmissionOptions: 0 + - m_start_blinkingEmissionOptions1: 0 + - m_start_clearCoat: 0 + - m_start_debugOptions: 0 + - m_start_detailShadows: 0 + - m_start_dissolve: 0 + - m_start_dissolveMasking: 0 + - m_start_distanceFade: 0 + - m_start_distortionFlow: 0 + - m_start_emission1Options: 0 + - m_start_emissionOptions: 0 + - m_start_flipBook: 0 + - m_start_glitter: 0 + - m_start_glitterRandom: 0 + - m_start_glowInDarkEmissionOptions: 0 + - m_start_glowInDarkEmissionOptions1: 0 + - m_start_lightingAdvanced: 0 + - m_start_lightingHSL: 0 + - m_start_lightingModifiers: 0 + - m_start_manualFlipbookControl: 0 + - m_start_matcap: 0 + - m_start_mirrorOptions: 0 + - m_start_outlineAdvanced: 0 + - m_start_panosphereOptions: 0 + - m_start_parallaxAdvanced: 0 + - m_start_parallaxHeightmap: 0 + - m_start_parallaxInternal: 0 + - m_start_pointToPoint: 0 + - m_start_reflectionRim: 0 + - m_start_rimLightOptions: 0 + - m_start_rimWidthNoise: 0 + - m_start_scrollingEmissionOptions: 0 + - m_start_scrollingEmissionOptions1: 0 + - m_start_shadowTexture: 0 + - m_start_specular: 0 + - m_start_specular1: 0 + - m_start_subsurface: 0 + - m_start_vertexManipulation: 0 + - m_start_voronoiRandom: 0 + - shader_is_using_thry_editor: 69 + - shader_master_label: 0 + - shader_presets: 0 + - shader_properties_label_file: 0 + m_Colors: + - _1st_ShadeColor: {r: 1, g: 1, b: 1, a: 1} + - _1st_ShadeMapPan: {r: 0, g: 0, b: 0, a: 0} + - _2nd_ShadeColor: {r: 1, g: 1, b: 1, a: 1} + - _2nd_ShadeMapPan: {r: 0, g: 0, b: 0, a: 0} + - _AlphaMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _AngleForwardDirection: {r: 0, g: 0, b: 1, a: 0} + - _AnisoTangentMap1Pan: {r: 0, g: 0, b: 0, a: 0} + - _AnisoTangentMapPan: {r: 0, g: 0, b: 0, a: 0} + - _BackFaceColor: {r: 1, g: 1, b: 1, a: 1} + - _BackFacePanning: {r: 0, g: 0, b: 0, a: 0} + - _BlackLightMaskEnd: {r: 1, g: 1, b: 1, a: 1} + - _BlackLightMaskKeys: {r: 2, g: 3, b: 4, a: 5} + - _BlackLightMaskStart: {r: 0, g: 0, b: 0, a: 0} + - _BlueColor: {r: 1, g: 1, b: 1, a: 1} + - _BumpMapPan: {r: 0, g: 0, b: 0, a: 0} + - _ClearCoatMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _ClearCoatSmoothnessMapPan: {r: 0, g: 0, b: 0, a: 0} + - _ClearCoatTint: {r: 1, g: 1, b: 1, a: 1} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _DecalColor: {r: 1, g: 1, b: 1, a: 1} + - _DecalMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _DecalPosition: {r: 0.5, g: 0.5, b: 0, a: 0} + - _DecalScale: {r: 1, g: 1, b: 0, a: 0} + - _DecalTexturePan: {r: 0, g: 0, b: 0, a: 0} + - _DepthGlowColor: {r: 1, g: 1, b: 1, a: 1} + - _DepthGradientPan: {r: 0, g: 0, b: 0, a: 0} + - _DepthMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _DetailMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _DetailNormalMapPan: {r: 0, g: 0, b: 0, a: 0} + - _DetailTexPan: {r: 0, g: 0, b: 0, a: 0} + - _DetailTint: {r: 1, g: 1, b: 1, a: 1} + - _DissolveDetailNoisePan: {r: 0, g: 0, b: 0, a: 0} + - _DissolveEdgeColor: {r: 1, g: 1, b: 1, a: 1} + - _DissolveEndPoint: {r: 0, g: 1, b: 0, a: 0} + - _DissolveMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _DissolveNoiseTexturePan: {r: 0, g: 0, b: 0, a: 0} + - _DissolveStartPoint: {r: 0, g: -1, b: 0, a: 0} + - _DissolveTextureColor: {r: 1, g: 1, b: 1, a: 1} + - _DissolveToTexturePan: {r: 0, g: 0, b: 0, a: 0} + - _DistortionMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _DistortionSpeed: {r: 0.5, g: 0.5, b: 0, a: 0} + - _DistortionSpeed1: {r: 0.5, g: 0.5, b: 0, a: 0} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 0} + - _EmissionColor1: {r: 1, g: 1, b: 1, a: 1} + - _EmissionMap1Pan: {r: 0, g: 0, b: 0, a: 0} + - _EmissionMapPan: {r: 0, g: 0, b: 0, a: 0} + - _EmissionMask1Pan: {r: 0, g: 0, b: 0, a: 0} + - _EmissionMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _EmissiveScroll_Direction: {r: 0, g: -10, b: 0, a: 0} + - _EmissiveScroll_Direction1: {r: 0, g: -10, b: 0, a: 0} + - _FlipbookColor: {r: 1, g: 1, b: 1, a: 1} + - _FlipbookMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _FlipbookScaleOffset: {r: 1, g: 1, b: 0, a: 0} + - _FlipbookTexArrayPan: {r: 0, g: 0, b: 0, a: 0} + - _GlitterColor: {r: 1, g: 1, b: 1, a: 1} + - _GlitterColorMapPan: {r: 0, g: 0, b: 0, a: 0} + - _GlitterMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _GlitterMinMaxBrightness: {r: 0.8, g: 1, b: 0, a: 1} + - _GlitterMinMaxSaturation: {r: 0.8, g: 1, b: 0, a: 1} + - _GlitterMinMaxSize: {r: 0.1, g: 0.5, b: 0, a: 1} + - _GlitterPan: {r: 0, g: 0, b: 0, a: 0} + - _GlitterTexturePan: {r: 0, g: 0, b: 0, a: 0} + - _GrabPassBlendMapPan: {r: 0, g: 0, b: 0, a: 0} + - _GreenColor: {r: 1, g: 1, b: 1, a: 1} + - _HoloDirection: {r: 0, g: 1, b: 0, a: 1} + - _LightingAOTexPan: {r: 0, g: 0, b: 0, a: 0} + - _LightingDetailShadowsPan: {r: 0, g: 0, b: 0, a: 0} + - _LightingShadowColor: {r: 1, g: 1, b: 1, a: 1} + - _LightingShadowMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _LightingShadowTexturePan: {r: 0, g: 0, b: 0, a: 0} + - _LineColor: {r: 1, g: 1, b: 1, a: 1} + - _MainDistanceFade: {r: 0, g: 0, b: 0, a: 0} + - _MainFadeTexturePan: {r: 0, g: 0, b: 0, a: 0} + - _MainHueShiftMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _MainTexPan: {r: 0, g: 0, b: 0, a: 0} + - _Matcap2Color: {r: 1, g: 1, b: 1, a: 1} + - _Matcap2MaskPan: {r: 0, g: 0, b: 0, a: 0} + - _MatcapColor: {r: 1, g: 1, b: 1, a: 1} + - _MatcapMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _MetalReflectionTint: {r: 1, g: 1, b: 1, a: 1} + - _MetallicMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _MetallicTintMapPan: {r: 0, g: 0, b: 0, a: 0} + - _MirrorTexturePan: {r: 0, g: 0, b: 0, a: 0} + - _OutlineDropShadowOffset: {r: 1, g: 0, b: 0, a: 0} + - _OutlineFadeDistance: {r: 0, g: 0, b: 0, a: 0} + - _OutlineMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _OutlinePersonaDirection: {r: 1, g: 0, b: 0, a: 0} + - _OutlineTexturePan: {r: 0, g: 0, b: 0, a: 0} + - _PanoMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _PanosphereColor: {r: 1, g: 1, b: 1, a: 1} + - _PanospherePan: {r: 0, g: 0, b: 0, a: 0} + - _ParallaxHeightMapMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _ParallaxHeightMapPan: {r: 0, g: 0, b: 0, a: 0} + - _ParallaxInternalMapMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _ParallaxInternalMaxColor: {r: 1, g: 1, b: 1, a: 1} + - _ParallaxInternalMinColor: {r: 1, g: 1, b: 1, a: 1} + - _ParallaxInternalPanDepthSpeed: {r: 0, g: 0, b: 0, a: 0} + - _ParallaxInternalPanSpeed: {r: 0, g: 0, b: 0, a: 0} + - _RGBBluePanning: {r: 0, g: 0, b: 0, a: 0} + - _RGBGreenPanning: {r: 0, g: 0, b: 0, a: 0} + - _RGBMaskPanning: {r: 0, g: 0, b: 0, a: 0} + - _RGBRedPanning: {r: 0, g: 0, b: 0, a: 0} + - _RedColor: {r: 1, g: 1, b: 1, a: 1} + - _RgbNormalBPan: {r: 0, g: 0, b: 0, a: 0} + - _RgbNormalGPan: {r: 0, g: 0, b: 0, a: 0} + - _RgbNormalRPan: {r: 0, g: 0, b: 0, a: 0} + - _RimEnviroMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _RimLightColor: {r: 1, g: 1, b: 1, a: 1} + - _RimMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _RimTexPan: {r: 0, g: 0, b: 0, a: 0} + - _RimWidthNoiseTexturePan: {r: 0, g: 0, b: 0, a: 0} + - _SSSColor: {r: 1, g: 0, b: 0, a: 1} + - _SSSThicknessMapPan: {r: 0, g: 0, b: 0, a: 0} + - _SmoothnessMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _SpawnInEmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _SpawnInGradientFinish: {r: 0, g: -2, b: 0, a: 1} + - _SpawnInGradientStart: {r: 0, g: 2, b: 0, a: 1} + - _SpecularAnisoJitterMacro1Pan: {r: 0, g: 0, b: 0, a: 0} + - _SpecularAnisoJitterMacroPan: {r: 0, g: 0, b: 0, a: 0} + - _SpecularAnisoJitterMicro1Pan: {r: 0, g: 0, b: 0, a: 0} + - _SpecularAnisoJitterMicroPan: {r: 0, g: 0, b: 0, a: 0} + - _SpecularMap1Pan: {r: 0, g: 0, b: 0, a: 0} + - _SpecularMapPan: {r: 0, g: 0, b: 0, a: 0} + - _SpecularMask1Pan: {r: 0, g: 0, b: 0, a: 0} + - _SpecularMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _SpecularMetallicMap1Pan: {r: 0, g: 0, b: 0, a: 0} + - _SpecularMetallicMapPan: {r: 0, g: 0, b: 0, a: 0} + - _SpecularTint: {r: 1, g: 1, b: 1, a: 1} + - _SpecularTint1: {r: 1, g: 1, b: 1, a: 1} + - _SpecularToonInnerOuter: {r: 0.25, g: 0.3, b: 0, a: 1} + - _SpecularToonInnerOuter1: {r: 0.25, g: 0.3, b: 0, a: 1} + - _TextFPSColor: {r: 1, g: 1, b: 1, a: 1} + - _TextFPSOffset: {r: 0, g: 0, b: 0, a: 0} + - _TextFPSPadding: {r: 0, g: 0, b: 0, a: 0} + - _TextFPSScale: {r: 1, g: 1, b: 1, a: 1} + - _TextPositionColor: {r: 1, g: 0, b: 1, a: 1} + - _TextPositionOffset: {r: 0, g: 0, b: 0, a: 0} + - _TextPositionPadding: {r: 0, g: 0, b: 0, a: 0} + - _TextPositionScale: {r: 1, g: 1, b: 1, a: 1} + - _TextTimeColor: {r: 1, g: 0, b: 1, a: 1} + - _TextTimeOffset: {r: 0, g: 0, b: 0, a: 0} + - _TextTimePadding: {r: 0, g: 0, b: 0, a: 0} + - _TextTimeScale: {r: 1, g: 1, b: 1, a: 1} + - _VertexManipulationHeightPan: {r: 0, g: 0, b: 0, a: 0} + - _VertexManipulationLocalRotation: {r: 0, g: 0, b: 0, a: 1} + - _VertexManipulationLocalScale: {r: 1, g: 1, b: 1, a: 1} + - _VertexManipulationLocalTranslation: {r: 0, g: 0, b: 0, a: 1} + - _VertexManipulationWorldTranslation: {r: 0, g: 0, b: 0, a: 1} + - _VideoMaskPanning: {r: 0, g: 0, b: 0, a: 0} + - _VideoOffset: {r: 0, g: 0, b: 0, a: 0} + - _VideoPanning: {r: 0, g: 0, b: 0, a: 0} + - _VideoResolution: {r: 1280, g: 720, b: 0, a: 1} + - _VideoTiling: {r: 1, g: 1, b: 0, a: 0} + - _VoronoiColor0: {r: 0, g: 0, b: 0, a: 1} + - _VoronoiColor1: {r: 1, g: 1, b: 1, a: 1} + - _VoronoiGradient: {r: 0.04, g: 0.05, b: 0, a: 0} + - _VoronoiMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _VoronoiNoisePan: {r: 0, g: 0, b: 0, a: 0} + - _VoronoiRandomMinMaxBrightness: {r: 0.8, g: 1, b: 0, a: 1} + - _VoronoiRandomMinMaxSaturation: {r: 0.8, g: 1, b: 0, a: 1} + - _VoronoiSpeed: {r: 3, g: 3, b: 3, a: 1} diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Examples/Stencil/inside.mat.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Examples/Stencil/inside.mat.meta new file mode 100644 index 00000000..34260e9b --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Examples/Stencil/inside.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 30f4ef6c54f791c4a81aad0db95bdd5e +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Examples/Stencil/outside.mat b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Examples/Stencil/outside.mat new file mode 100644 index 00000000..09e3de98 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Examples/Stencil/outside.mat @@ -0,0 +1,2096 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: outside + m_Shader: {fileID: 4800000, guid: 917b37092bae034459c28c00a3a19b54, type: 3} + m_ShaderKeywords: VIGNETTE_MASKED _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 3000 + stringTagMap: + RenderType: Transparent + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _1st_ShadeMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _2nd_ShadeMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _AlphaMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _AnisoTangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _AnisoTangentMap1: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BackFaceTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BlueTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BulgeMask: + 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} + - _ClearCoatCubeMap: + m_Texture: {fileID: 8900000, guid: 1f79f71b84fc2844bb81e9ae4f5bc384, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ClearCoatMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ClearCoatSmoothnessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CubeMap: + m_Texture: {fileID: 8900000, guid: 1f79f71b84fc2844bb81e9ae4f5bc384, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DecalMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DecalTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DepthGradient: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DepthMask: + 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} + - _DetailTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DissolveDetailNoise: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DissolveEdgeGradient: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DissolveMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DissolveNoiseTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DissolveToTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionFlowTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionFlowTexture1: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionMask: + 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} + - _EmissionMap1: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMask1: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionScrollingCurve: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionScrollingCurve1: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _FlipbookMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _FlipbookTexArray: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _GlitterColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _GlitterMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _GlitterTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _GrabPassBlendMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _GreenTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HoloAlphaMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceRamp: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _LightingAOTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _LightingDetailShadows: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _LightingShadowMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _LightingShadowTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainFadeTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainHueShiftMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: a6d6984545cde4a4f9317b17d6dca225, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Matcap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Matcap2: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Matcap2Mask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MatcapMask: + 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} + - _MetallicMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicTintMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MirrorTexture: + 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} + - _OutlineMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OutlineTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _PanoCubeMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _PanoMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _PanosphereTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxHeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxHeightMapMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxInternalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxInternalMapMask: + 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} + - _RGBMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _RedTexure: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _RgbNormalB: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _RgbNormalG: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _RgbNormalR: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _RimEnviroMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _RimMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _RimTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _RimWidthNoiseTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SSSThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SmoothnessMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpawnInNoise: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularAnisoJitterMacro: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularAnisoJitterMacro1: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularAnisoJitterMicro: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularAnisoJitterMicro1: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularMap1: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularMask1: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularMetallicMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularMetallicMap1: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TextGlyphs: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ToonRamp: + m_Texture: {fileID: 2800000, guid: 61bd594533da4fc42bd46ef93ba5a4f6, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _VertexManipulationHeightMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _VideoDebugTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _VideoGameboyRamp: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _VideoMaskTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _VideoPixelTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _VoronoiMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _VoronoiNoise: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - DSGI: 0 + - Instancing: 0 + - LightmapFlags: 0 + - _1st2nd_Shades_Feather: 0.0001 + - _1st_ShadeMapUV: 0 + - _2nd_ShadeMapUV: 0 + - _AOStrength: 1 + - _AOStrengthAnimated: 0 + - _AlphaMaskAnimated: 0 + - _AlphaMaskPanAnimated: 0 + - _AlphaMaskUV: 0 + - _AlphaMaskUVAnimated: 0 + - _AlphaMod: 0 + - _AlphaModAnimated: 0 + - _AlphaPremultiply: 0 + - _AlphaPremultiplyAnimated: 0 + - _AlphaToMask: 0 + - _AlphaToMaskAnimated: 0 + - _AngleCompareTo: 0 + - _AngleCompareToAnimated: 0 + - _AngleForwardDirectionAnimated: 0 + - _AngleMinAlpha: 0 + - _AngleMinAlphaAnimated: 0 + - _AngleType: 0 + - _AngleTypeAnimated: 0 + - _AnisoSpec1Alpha: 1 + - _AnisoSpec1Alpha1: 1 + - _AnisoSpec1Alpha1Animated: 0 + - _AnisoSpec1AlphaAnimated: 0 + - _AnisoSpec2Alpha: 1 + - _AnisoSpec2Alpha1: 1 + - _AnisoSpec2Alpha1Animated: 0 + - _AnisoSpec2AlphaAnimated: 0 + - _AnisoTangentMap1Animated: 0 + - _AnisoTangentMap1PanAnimated: 0 + - _AnisoTangentMap1UV: 0 + - _AnisoTangentMap1UVAnimated: 0 + - _AnisoTangentMapAnimated: 0 + - _AnisoTangentMapPanAnimated: 0 + - _AnisoTangentMapUV: 0 + - _AnisoTangentMapUVAnimated: 0 + - _AnisoUseTangentMap: 0 + - _AnisoUseTangentMap1: 0 + - _AnisoUseTangentMap1Animated: 0 + - _AnisoUseTangentMapAnimated: 0 + - _AttenuationMultiplier: 0 + - _AttenuationMultiplierAnimated: 0 + - _BackFaceDetailIntensity: 1 + - _BackFaceEmissionStrength: 0 + - _BackFaceEnabled: 0 + - _BackFaceHueShift: 0 + - _BackFaceTextureUV: 0 + - _BaseColor_Step: 0.5 + - _BaseShade_Feather: 0.0001 + - _BlackLightMaskClearCoat: 4 + - _BlackLightMaskClearCoatAnimated: 0 + - _BlackLightMaskDebug: 0 + - _BlackLightMaskDebugAnimated: 0 + - _BlackLightMaskDissolve: 4 + - _BlackLightMaskDissolveAnimated: 0 + - _BlackLightMaskEmission: 4 + - _BlackLightMaskEmission2: 4 + - _BlackLightMaskEmission2Animated: 0 + - _BlackLightMaskEmissionAnimated: 0 + - _BlackLightMaskEnabled: 0 + - _BlackLightMaskEnabledAnimated: 0 + - _BlackLightMaskEndAnimated: 0 + - _BlackLightMaskFlipbook: 4 + - _BlackLightMaskFlipbookAnimated: 0 + - _BlackLightMaskGlitter: 4 + - _BlackLightMaskGlitterAnimated: 0 + - _BlackLightMaskIridescence: 4 + - _BlackLightMaskIridescenceAnimated: 0 + - _BlackLightMaskKeysAnimated: 0 + - _BlackLightMaskMatcap: 4 + - _BlackLightMaskMatcap2: 4 + - _BlackLightMaskMatcap2Animated: 0 + - _BlackLightMaskMatcapAnimated: 0 + - _BlackLightMaskMetallic: 4 + - _BlackLightMaskMetallicAnimated: 0 + - _BlackLightMaskPanosphere: 4 + - _BlackLightMaskPanosphereAnimated: 0 + - _BlackLightMaskStartAnimated: 0 + - _BlendOp: 0 + - _BlendOpAlpha: 0 + - _BlendOpAlphaAnimated: 0 + - _BlendOpAnimated: 0 + - _BlueColorAnimated: 0 + - _BlueTextureAnimated: 0 + - _BuldgeFadeLength: 0.02 + - _BuldgeFadeLengthAnimated: 0 + - _BuldgeHeight: 0.02 + - _BuldgeHeightAnimated: 0 + - _BulgeMaskAnimated: 0 + - _BumpMapAnimated: 0 + - _BumpMapPanAnimated: 0 + - _BumpMapUV: 0 + - _BumpMapUVAnimated: 0 + - _BumpScale: 1 + - _BumpScaleAnimated: 0 + - _CameraAngleMax: 90 + - _CameraAngleMaxAnimated: 0 + - _CameraAngleMin: 45 + - _CameraAngleMinAnimated: 0 + - _ClearCoat: 1 + - _ClearCoatAnimated: 0 + - _ClearCoatCubeMapAnimated: 0 + - _ClearCoatForceLighting: 0 + - _ClearCoatForceLightingAnimated: 0 + - _ClearCoatInvertSmoothness: 0 + - _ClearCoatInvertSmoothnessAnimated: 0 + - _ClearCoatMaskAnimated: 0 + - _ClearCoatMaskPanAnimated: 0 + - _ClearCoatMaskUV: 0 + - _ClearCoatMaskUVAnimated: 0 + - _ClearCoatNormalToUse: 0 + - _ClearCoatNormalToUseAnimated: 0 + - _ClearCoatSampleWorld: 0 + - _ClearCoatSampleWorldAnimated: 0 + - _ClearCoatSmoothness: 0 + - _ClearCoatSmoothnessAnimated: 0 + - _ClearCoatSmoothnessMapAnimated: 0 + - _ClearCoatSmoothnessMapPanAnimated: 0 + - _ClearCoatSmoothnessMapUV: 0 + - _ClearCoatSmoothnessMapUVAnimated: 0 + - _ClearCoatTintAnimated: 0 + - _ColorAnimated: 0 + - _ColorMask: 15 + - _ColorMaskAnimated: 0 + - _ContinuousDissolve: 0 + - _ContinuousDissolveAnimated: 0 + - _CubeMapAnimated: 0 + - _Cull: 2 + - _CullAnimated: 0 + - _Cutoff: 0 + - _CutoffAnimated: 0 + - _DebugCameraData: 0 + - _DebugCameraDataAnimated: 0 + - _DebugEnabled: 0 + - _DebugLightingData: 0 + - _DebugLightingDataAnimated: 0 + - _DebugMeshData: 0 + - _DebugMeshDataAnimated: 0 + - _DecalBlendAdd: 0 + - _DecalBlendAddAnimated: 0 + - _DecalBlendAlpha: 1 + - _DecalBlendAlphaAnimated: 0 + - _DecalBlendMultiply: 0 + - _DecalBlendMultiplyAnimated: 0 + - _DecalBlendReplace: 0 + - _DecalBlendReplaceAnimated: 0 + - _DecalBlendType: 0 + - _DecalBlendTypeAnimated: 0 + - _DecalColorAnimated: 0 + - _DecalEmissionStrength: 0 + - _DecalEmissionStrengthAnimated: 0 + - _DecalEnabled: 0 + - _DecalEnabledAnimated: 0 + - _DecalMaskAnimated: 0 + - _DecalMaskPanAnimated: 0 + - _DecalMaskUV: 0 + - _DecalMaskUVAnimated: 0 + - _DecalPositionAnimated: 0 + - _DecalRotation: 0 + - _DecalRotationAnimated: 0 + - _DecalRotationSpeed: 0 + - _DecalRotationSpeedAnimated: 0 + - _DecalScaleAnimated: 0 + - _DecalTextureAnimated: 0 + - _DecalTexturePanAnimated: 0 + - _DecalTextureUV: 0 + - _DecalTextureUVAnimated: 0 + - _DecalTiled: 0 + - _DecalTiledAnimated: 0 + - _DepthAlphaMax: 1 + - _DepthAlphaMaxAnimated: 0 + - _DepthAlphaMin: 1 + - _DepthAlphaMinAnimated: 0 + - _DepthGlowColorAnimated: 0 + - _DepthGlowEmission: 3 + - _DepthGlowEmissionAnimated: 0 + - _DepthGradientAnimated: 0 + - _DepthGradientBlend: 0 + - _DepthGradientBlendAnimated: 0 + - _DepthGradientPanAnimated: 0 + - _DepthGradientTextureUV: 0 + - _DepthGradientTextureUVAnimated: 0 + - _DepthGradientUV: 0 + - _DepthGradientUVAnimated: 0 + - _DepthMaskAnimated: 0 + - _DepthMaskPanAnimated: 0 + - _DepthMaskUV: 0 + - _DepthMaskUVAnimated: 0 + - _DestinationBlend: 10 + - _DetailBrightness: 1 + - _DetailBrightnessAnimated: 0 + - _DetailEnabled: 0 + - _DetailMaskAnimated: 0 + - _DetailMaskPanAnimated: 0 + - _DetailMaskUV: 0 + - _DetailMaskUVAnimated: 0 + - _DetailNormalMapAnimated: 0 + - _DetailNormalMapPanAnimated: 0 + - _DetailNormalMapScale: 1 + - _DetailNormalMapScaleAnimated: 0 + - _DetailNormalMapUV: 0 + - _DetailNormalMapUVAnimated: 0 + - _DetailTexAnimated: 0 + - _DetailTexIntensity: 1 + - _DetailTexIntensityAnimated: 0 + - _DetailTexPanAnimated: 0 + - _DetailTexUV: 0 + - _DetailTexUVAnimated: 0 + - _DetailTintAnimated: 0 + - _DisableDirectionalInAdd: 1 + - _DissolveAlpha: 0 + - _DissolveAlpha0: 0 + - _DissolveAlpha0Animated: 0 + - _DissolveAlpha1: 0 + - _DissolveAlpha1Animated: 0 + - _DissolveAlpha2: 0 + - _DissolveAlpha2Animated: 0 + - _DissolveAlpha3: 0 + - _DissolveAlpha3Animated: 0 + - _DissolveAlpha4: 0 + - _DissolveAlpha4Animated: 0 + - _DissolveAlpha5: 0 + - _DissolveAlpha5Animated: 0 + - _DissolveAlpha6: 0 + - _DissolveAlpha6Animated: 0 + - _DissolveAlpha7: 0 + - _DissolveAlpha7Animated: 0 + - _DissolveAlpha8: 0 + - _DissolveAlpha8Animated: 0 + - _DissolveAlpha9: 0 + - _DissolveAlpha9Animated: 0 + - _DissolveAlphaAnimated: 0 + - _DissolveDetailNoiseAnimated: 0 + - _DissolveDetailNoisePanAnimated: 0 + - _DissolveDetailNoiseUV: 0 + - _DissolveDetailNoiseUVAnimated: 0 + - _DissolveDetailStrength: 0.1 + - _DissolveDetailStrengthAnimated: 0 + - _DissolveEdgeColorAnimated: 0 + - _DissolveEdgeEmission: 0 + - _DissolveEdgeEmissionAnimated: 0 + - _DissolveEdgeGradientAnimated: 0 + - _DissolveEdgeHardness: 0.5 + - _DissolveEdgeHardnessAnimated: 0 + - _DissolveEdgeWidth: 0.025 + - _DissolveEdgeWidthAnimated: 0 + - _DissolveEmission1Side: 2 + - _DissolveEmission1SideAnimated: 0 + - _DissolveEmissionSide: 2 + - _DissolveEmissionSideAnimated: 0 + - _DissolveEndPointAnimated: 0 + - _DissolveInvertDetailNoise: 0 + - _DissolveInvertDetailNoiseAnimated: 0 + - _DissolveInvertNoise: 0 + - _DissolveInvertNoiseAnimated: 0 + - _DissolveMaskAnimated: 0 + - _DissolveMaskInvert: 0 + - _DissolveMaskInvertAnimated: 0 + - _DissolveMaskPanAnimated: 0 + - _DissolveMaskUV: 0 + - _DissolveMaskUVAnimated: 0 + - _DissolveNoiseTextureAnimated: 0 + - _DissolveNoiseTexturePanAnimated: 0 + - _DissolveNoiseTextureUV: 0 + - _DissolveNoiseTextureUVAnimated: 0 + - _DissolveP2PEdgeLength: 0.1 + - _DissolveP2PEdgeLengthAnimated: 0 + - _DissolveP2PWorldLocal: 0 + - _DissolveP2PWorldLocalAnimated: 0 + - _DissolveStartPointAnimated: 0 + - _DissolveTextureColorAnimated: 0 + - _DissolveToEmissionStrength: 0 + - _DissolveToEmissionStrengthAnimated: 0 + - _DissolveToTextureAnimated: 0 + - _DissolveToTexturePanAnimated: 0 + - _DissolveToTextureUV: 0 + - _DissolveToTextureUVAnimated: 0 + - _DissolveType: 1 + - _DissolveTypeAnimated: 0 + - _DissolveUseVertexColors: 0 + - _DissolveUseVertexColorsAnimated: 0 + - _DistortionFlowTexture1Animated: 0 + - _DistortionFlowTextureAnimated: 0 + - _DistortionMaskAnimated: 0 + - _DistortionMaskPanAnimated: 0 + - _DistortionMaskUV: 0 + - _DistortionMaskUVAnimated: 0 + - _DistortionSpeed1Animated: 0 + - _DistortionSpeedAnimated: 0 + - _DistortionStrength: 0.5 + - _DistortionStrength1: 0.5 + - _DistortionStrength1Animated: 0 + - _DistortionStrengthAnimated: 0 + - _DitherGradient: 0.1 + - _DitherGradientAnimated: 0 + - _DitheringEnabled: 0 + - _DitheringEnabledAnimated: 0 + - _DstBlend: 10 + - _DstBlendAnimated: 0 + - _EmissionBaseColorAsMap: 0 + - _EmissionBaseColorAsMap1: 0 + - _EmissionBaseColorAsMap1Animated: 0 + - _EmissionBaseColorAsMapAnimated: 0 + - _EmissionBlinkingEnabled: 0 + - _EmissionBlinkingEnabled1: 0 + - _EmissionBlinkingEnabledAnimated: 0 + - _EmissionBlinkingOffset: 0 + - _EmissionBlinkingOffset1: 0 + - _EmissionBlinkingOffset1Animated: 0 + - _EmissionBlinkingOffsetAnimated: 0 + - _EmissionCenterOutEnabled: 0 + - _EmissionCenterOutEnabled1: 0 + - _EmissionCenterOutEnabled1Animated: 0 + - _EmissionCenterOutEnabledAnimated: 0 + - _EmissionCenterOutSpeed: 5 + - _EmissionCenterOutSpeed1: 5 + - _EmissionCenterOutSpeed1Animated: 0 + - _EmissionCenterOutSpeedAnimated: 0 + - _EmissionColor1Animated: 0 + - _EmissionColorAnimated: 0 + - _EmissionHueShift: 0 + - _EmissionHueShift1: 0 + - _EmissionHueShift1Animated: 0 + - _EmissionHueShiftAnimated: 0 + - _EmissionHueShiftEnabled: 0 + - _EmissionHueShiftEnabled1: 0 + - _EmissionHueShiftEnabled1Animated: 0 + - _EmissionHueShiftEnabledAnimated: 0 + - _EmissionMap1Animated: 0 + - _EmissionMap1PanAnimated: 0 + - _EmissionMap1UV: 0 + - _EmissionMap1UVAnimated: 0 + - _EmissionMapAnimated: 0 + - _EmissionMapPanAnimated: 0 + - _EmissionMapUV: 0 + - _EmissionMapUVAnimated: 0 + - _EmissionMask1Animated: 0 + - _EmissionMask1PanAnimated: 0 + - _EmissionMask1UV: 0 + - _EmissionMask1UVAnimated: 0 + - _EmissionMaskAnimated: 0 + - _EmissionMaskPanAnimated: 0 + - _EmissionMaskUV: 0 + - _EmissionMaskUVAnimated: 0 + - _EmissionReplace: 0 + - _EmissionReplaceAnimated: 0 + - _EmissionScrollingCurve1Animated: 0 + - _EmissionScrollingCurveAnimated: 0 + - _EmissionScrollingOffset: 0 + - _EmissionScrollingOffset1: 0 + - _EmissionScrollingOffset1Animated: 0 + - _EmissionScrollingOffsetAnimated: 0 + - _EmissionScrollingUseCurve: 0 + - _EmissionScrollingUseCurve1: 0 + - _EmissionScrollingUseCurve1Animated: 0 + - _EmissionScrollingUseCurveAnimated: 0 + - _EmissionScrollingVertexColor: 0 + - _EmissionScrollingVertexColor1: 0 + - _EmissionScrollingVertexColor1Animated: 0 + - _EmissionScrollingVertexColorAnimated: 0 + - _EmissionStrength: 0 + - _EmissionStrength1: 0 + - _EmissionStrength1Animated: 0 + - _EmissionStrengthAnimated: 0 + - _EmissiveBlink_Max: 1 + - _EmissiveBlink_Max1: 1 + - _EmissiveBlink_Max1Animated: 0 + - _EmissiveBlink_MaxAnimated: 0 + - _EmissiveBlink_Min: 0 + - _EmissiveBlink_Min1: 0 + - _EmissiveBlink_Min1Animated: 0 + - _EmissiveBlink_MinAnimated: 0 + - _EmissiveBlink_Velocity: 4 + - _EmissiveBlink_Velocity1: 4 + - _EmissiveBlink_Velocity1Animated: 0 + - _EmissiveBlink_VelocityAnimated: 0 + - _EmissiveScroll_Direction1Animated: 0 + - _EmissiveScroll_DirectionAnimated: 0 + - _EmissiveScroll_Interval: 20 + - _EmissiveScroll_Interval1: 20 + - _EmissiveScroll_Interval1Animated: 0 + - _EmissiveScroll_IntervalAnimated: 0 + - _EmissiveScroll_Velocity: 10 + - _EmissiveScroll_Velocity1: 10 + - _EmissiveScroll_Velocity1Animated: 0 + - _EmissiveScroll_VelocityAnimated: 0 + - _EmissiveScroll_Width: 10 + - _EmissiveScroll_Width1: 10 + - _EmissiveScroll_Width1Animated: 0 + - _EmissiveScroll_WidthAnimated: 0 + - _EnableBlur: 0 + - _EnableBlurAnimated: 0 + - _EnableBulge: 0 + - _EnableBulgeAnimated: 0 + - _EnableClearCoat: 0 + - _EnableClearCoatAnimated: 0 + - _EnableDissolve: 0 + - _EnableDissolveAnimated: 0 + - _EnableDistortion: 0 + - _EnableDistortionAnimated: 0 + - _EnableEmission: 0 + - _EnableEmission1: 0 + - _EnableEmission1Animated: 0 + - _EnableEmissionAnimated: 0 + - _EnableEnvironmentalRim: 0 + - _EnableEnvironmentalRimAnimated: 0 + - _EnableFlipbook: 0 + - _EnableFlipbookAnimated: 0 + - _EnableGITDEmission: 0 + - _EnableGITDEmission1: 0 + - _EnableGITDEmission1Animated: 0 + - _EnableGITDEmissionAnimated: 0 + - _EnableHolo: 0 + - _EnableHoloAnimated: 0 + - _EnableIridescence: 0 + - _EnableIridescenceAnimated: 0 + - _EnableLighting: 1 + - _EnableLightingAnimated: 0 + - _EnableMetallic: 0 + - _EnableMetallicAnimated: 0 + - _EnableMirrorOptions: 0 + - _EnableMirrorOptionsAnimated: 0 + - _EnableMirrorTexture: 0 + - _EnableMirrorTextureAnimated: 0 + - _EnableRandom: 0 + - _EnableRandomAnimated: 0 + - _EnableRimLighting: 0 + - _EnableRimLightingAnimated: 0 + - _EnableSSS: 0 + - _EnableSSSAnimated: 0 + - _EnableScifiSpawnIn: 0 + - _EnableScifiSpawnInAnimated: 0 + - _EnableSpecular: 0 + - _EnableSpecular1: 0 + - _EnableSpecular1Animated: 0 + - _EnableSpecularAnimated: 0 + - _EnableTouchGlow: 0 + - _EnableTouchGlowAnimated: 0 + - _EnableVertexGlitch: 0 + - _EnableVertexGlitchAnimated: 0 + - _EnableVideo: 0 + - _EnableVideoAnimated: 0 + - _EnableVoronoi: 0 + - _EnableVoronoiAnimated: 0 + - _FadeLength: 20 + - _FadeLengthAnimated: 0 + - _FlipbookAdd: 0 + - _FlipbookAddAnimated: 0 + - _FlipbookAlphaControlsFinalAlpha: 0 + - _FlipbookAlphaControlsFinalAlphaAnimated: 0 + - _FlipbookColorAnimated: 0 + - _FlipbookColorReplaces: 0 + - _FlipbookColorReplacesAnimated: 0 + - _FlipbookCurrentFrame: -1 + - _FlipbookCurrentFrameAnimated: 0 + - _FlipbookEmissionStrength: 0 + - _FlipbookEmissionStrengthAnimated: 0 + - _FlipbookFPS: 30 + - _FlipbookFPSAnimated: 0 + - _FlipbookIntensityControlsAlpha: 0 + - _FlipbookIntensityControlsAlphaAnimated: 0 + - _FlipbookMaskAnimated: 0 + - _FlipbookMaskPanAnimated: 0 + - _FlipbookMaskUV: 0 + - _FlipbookMaskUVAnimated: 0 + - _FlipbookMultiply: 0 + - _FlipbookMultiplyAnimated: 0 + - _FlipbookReplace: 1 + - _FlipbookReplaceAnimated: 0 + - _FlipbookRotation: 0 + - _FlipbookRotationAnimated: 0 + - _FlipbookRotationSpeed: 0 + - _FlipbookRotationSpeedAnimated: 0 + - _FlipbookScaleOffsetAnimated: 0 + - _FlipbookTexArrayAnimated: 0 + - _FlipbookTexArrayPanAnimated: 0 + - _FlipbookTexArrayUV: 0 + - _FlipbookTexArrayUVAnimated: 0 + - _FlipbookTiled: 0 + - _FlipbookTiledAnimated: 0 + - _FlipbookTotalFrames: 1 + - _FlipbookTotalFramesAnimated: 0 + - _ForceOpaque: 0 + - _ForceOpaqueAnimated: 0 + - _ForgotToLockMaterial: 1 + - _GIEmissionMultiplier: 1 + - _GITDEMaxEmissionMultiplier: 0 + - _GITDEMaxEmissionMultiplier1: 0 + - _GITDEMaxEmissionMultiplier1Animated: 0 + - _GITDEMaxEmissionMultiplierAnimated: 0 + - _GITDEMaxLight: 1 + - _GITDEMaxLight1: 1 + - _GITDEMaxLight1Animated: 0 + - _GITDEMaxLightAnimated: 0 + - _GITDEMinEmissionMultiplier: 1 + - _GITDEMinEmissionMultiplier1: 1 + - _GITDEMinEmissionMultiplier1Animated: 0 + - _GITDEMinEmissionMultiplierAnimated: 0 + - _GITDEMinLight: 0 + - _GITDEMinLight1: 0 + - _GITDEMinLight1Animated: 0 + - _GITDEMinLightAnimated: 0 + - _GITDEWorldOrMesh: 0 + - _GITDEWorldOrMesh1: 0 + - _GITDEWorldOrMesh1Animated: 0 + - _GITDEWorldOrMeshAnimated: 0 + - _GlitterAngleRange: 90 + - _GlitterAngleRangeAnimated: 0 + - _GlitterBias: 0.8 + - _GlitterBiasAnimated: 0 + - _GlitterBlendType: 0 + - _GlitterBlendTypeAnimated: 0 + - _GlitterBrightness: 3 + - _GlitterBrightnessAnimated: 0 + - _GlitterCenterSize: 0.08 + - _GlitterCenterSizeAnimated: 0 + - _GlitterColorAnimated: 0 + - _GlitterColorMapAnimated: 0 + - _GlitterColorMapPanAnimated: 0 + - _GlitterColorMapUV: 0 + - _GlitterColorMapUVAnimated: 0 + - _GlitterContrast: 300 + - _GlitterContrastAnimated: 0 + - _GlitterEnable: 0 + - _GlitterEnableAnimated: 0 + - _GlitterFrequency: 300 + - _GlitterFrequencyAnimated: 0 + - _GlitterJaggyFix: 0 + - _GlitterJaggyFixAnimated: 0 + - _GlitterJitter: 1 + - _GlitterJitterAnimated: 0 + - _GlitterMaskAnimated: 0 + - _GlitterMaskPanAnimated: 0 + - _GlitterMaskUV: 0 + - _GlitterMaskUVAnimated: 0 + - _GlitterMinBrightness: 0 + - _GlitterMinBrightnessAnimated: 0 + - _GlitterMinMaxBrightnessAnimated: 0 + - _GlitterMinMaxSaturationAnimated: 0 + - _GlitterMinMaxSizeAnimated: 0 + - _GlitterMode: 0 + - _GlitterModeAnimated: 0 + - _GlitterPanAnimated: 0 + - _GlitterRandomColors: 0 + - _GlitterRandomColorsAnimated: 0 + - _GlitterRandomRotation: 0 + - _GlitterRandomRotationAnimated: 0 + - _GlitterRandomSize: 0 + - _GlitterRandomSizeAnimated: 0 + - _GlitterShape: 0 + - _GlitterShapeAnimated: 0 + - _GlitterSize: 0.3 + - _GlitterSizeAnimated: 0 + - _GlitterSpeed: 10 + - _GlitterSpeedAnimated: 0 + - _GlitterTextureAnimated: 0 + - _GlitterTexturePanAnimated: 0 + - _GlitterTextureRotation: 0 + - _GlitterTextureRotationAnimated: 0 + - _GlitterUseSurfaceColor: 0 + - _GlitterUseSurfaceColorAnimated: 0 + - _GlossMapScale: 1 + - _Glossiness: 0 + - _GlossyReflections: 1 + - _GrabBlurDirections: 4 + - _GrabBlurDirectionsAnimated: 0 + - _GrabBlurDistance: 0 + - _GrabBlurDistanceAnimated: 0 + - _GrabBlurQuality: 2 + - _GrabBlurQualityAnimated: 0 + - _GrabDstBlend: 0 + - _GrabDstBlendAnimated: 0 + - _GrabPassBlendFactor: 1 + - _GrabPassBlendFactorAnimated: 0 + - _GrabPassBlendMapUV: 0 + - _GrabPassUseAlpha: 1 + - _GrabPassUseAlphaAnimated: 0 + - _GrabSrcBlend: 2 + - _GrabSrcBlendAnimated: 0 + - _GreenColorAnimated: 0 + - _GreenTextureAnimated: 0 + - _HelpBoxHideLocking: 0 + - _HelpBoxLocking: 0 + - _HoloAlphaMapAnimated: 0 + - _HoloCoordinateSpace: 0 + - _HoloCoordinateSpaceAnimated: 0 + - _HoloDirectionAnimated: 0 + - _HoloFresnelAlpha: 0 + - _HoloFresnelAlphaAnimated: 0 + - _HoloLineDensity: 10 + - _HoloLineDensityAnimated: 0 + - _HoloRimSharpness: 0.5 + - _HoloRimSharpnessAnimated: 0 + - _HoloRimWidth: 0.5 + - _HoloRimWidthAnimated: 0 + - _HoloScrollSpeed: 1 + - _HoloScrollSpeedAnimated: 0 + - _IgnoreFog: 0 + - _IgnoreFogAnimated: 0 + - _InvertSmoothness: 0 + - _InvertSmoothnessAnimated: 0 + - _IridescenceAddBlend: 0 + - _IridescenceAddBlendAnimated: 0 + - _IridescenceEmissionStrength: 0 + - _IridescenceEmissionStrengthAnimated: 0 + - _IridescenceIntensity: 1 + - _IridescenceIntensityAnimated: 0 + - _IridescenceMaskAnimated: 0 + - _IridescenceMaskUV: 0 + - _IridescenceMaskUVAnimated: 0 + - _IridescenceMultiplyBlend: 0 + - _IridescenceMultiplyBlendAnimated: 0 + - _IridescenceNormalIntensity: 1 + - _IridescenceNormalIntensityAnimated: 0 + - _IridescenceNormalMapAnimated: 0 + - _IridescenceNormalSelection: 1 + - _IridescenceNormalSelectionAnimated: 0 + - _IridescenceNormalToggle: 0 + - _IridescenceNormalToggleAnimated: 0 + - _IridescenceNormalUV: 0 + - _IridescenceNormalUVAnimated: 0 + - _IridescenceRampAnimated: 0 + - _IridescenceReplaceBlend: 0 + - _IridescenceReplaceBlendAnimated: 0 + - _IridescenceTime: 0 + - _IridescenceTimeAnimated: 0 + - _LightingAOTexAnimated: 0 + - _LightingAOTexPanAnimated: 0 + - _LightingAOTexUV: 0 + - _LightingAOTexUVAnimated: 0 + - _LightingAdditiveDetailStrength: 1 + - _LightingAdditiveDetailStrengthAnimated: 0 + - _LightingAdditiveGradientEnd: 0.5 + - _LightingAdditiveGradientEndAnimated: 0 + - _LightingAdditiveGradientStart: 0 + - _LightingAdditiveGradientStartAnimated: 0 + - _LightingAdditiveLimitIntensity: 0 + - _LightingAdditiveLimitIntensityAnimated: 0 + - _LightingAdditiveMaxIntensity: 1 + - _LightingAdditiveMaxIntensityAnimated: 0 + - _LightingAdditivePassthrough: 0.5 + - _LightingAdditivePassthroughAnimated: 0 + - _LightingAdditiveType: 1 + - _LightingAdditiveTypeAnimated: 0 + - _LightingDetailShadowsAnimated: 0 + - _LightingDetailShadowsEnabled: 0 + - _LightingDetailShadowsEnabledAnimated: 0 + - _LightingDetailShadowsPanAnimated: 0 + - _LightingDetailShadowsUV: 0 + - _LightingDetailShadowsUVAnimated: 0 + - _LightingDetailStrength: 1 + - _LightingDetailStrengthAnimated: 0 + - _LightingDirectColorMode: 0 + - _LightingDirectColorModeAnimated: 0 + - _LightingEnableAO: 0 + - _LightingEnableAOAnimated: 0 + - _LightingEnableHSL: 0 + - _LightingEnableHSLAnimated: 0 + - _LightingGradientEnd: 0.5 + - _LightingGradientEndAnimated: 0 + - _LightingGradientStart: 0 + - _LightingGradientStartAnimated: 0 + - _LightingHSLIntensity: 1 + - _LightingHSLIntensityAnimated: 0 + - _LightingIgnoreAmbientColor: 0 + - _LightingIgnoreAmbientColorAnimated: 0 + - _LightingIndirectColorMode: 0 + - _LightingIndirectColorModeAnimated: 0 + - _LightingMinLightBrightness: 0 + - _LightingMinLightBrightnessAnimated: 0 + - _LightingMinShadowBrightnessRatio: 0 + - _LightingMinShadowBrightnessRatioAnimated: 0 + - _LightingMode: 0 + - _LightingModeAnimated: 0 + - _LightingMonochromatic: 0 + - _LightingMonochromaticAnimated: 0 + - _LightingOnlyUnityShadows: 0 + - _LightingOnlyUnityShadowsAnimated: 0 + - _LightingRampType: 0 + - _LightingRampTypeAnimated: 0 + - _LightingShadingEnabled: 0 + - _LightingShadingEnabledAnimated: 0 + - _LightingShadowColorAnimated: 0 + - _LightingShadowHue: 0.5 + - _LightingShadowHueAnimated: 0 + - _LightingShadowLightness: 0.5 + - _LightingShadowLightnessAnimated: 0 + - _LightingShadowMaskAnimated: 0 + - _LightingShadowMaskPanAnimated: 0 + - _LightingShadowMaskUV: 0 + - _LightingShadowMaskUVAnimated: 0 + - _LightingShadowSaturation: 0.5 + - _LightingShadowSaturationAnimated: 0 + - _LightingShadowTextureAnimated: 0 + - _LightingShadowTexturePanAnimated: 0 + - _LightingShadowTextureUV: 0 + - _LightingShadowTextureUVAnimated: 0 + - _LightingStandardSmoothness: 0 + - _LightingStandardSmoothnessAnimated: 0 + - _LightingUncapped: 0 + - _LightingUncappedAnimated: 0 + - _LineColorAnimated: 0 + - _LineWidth: 0 + - _LineWidthAnimated: 0 + - _LockTooltip: 0 + - _MainAlphaToCoverage: 0 + - _MainAlphaToCoverageAnimated: 0 + - _MainDistanceFadeAnimated: 0 + - _MainEmissionStrength: 0 + - _MainEmissionStrengthAnimated: 0 + - _MainFadeTextureAnimated: 0 + - _MainFadeTexturePanAnimated: 0 + - _MainFadeTextureUV: 0 + - _MainFadeTextureUVAnimated: 0 + - _MainHueShift: 0 + - _MainHueShiftAnimated: 0 + - _MainHueShiftMaskAnimated: 0 + - _MainHueShiftMaskPanAnimated: 0 + - _MainHueShiftMaskUV: 0 + - _MainHueShiftMaskUVAnimated: 0 + - _MainHueShiftReplace: 1 + - _MainHueShiftReplaceAnimated: 0 + - _MainHueShiftSpeed: 0 + - _MainHueShiftSpeedAnimated: 0 + - _MainHueShiftToggle: 0 + - _MainHueShiftToggleAnimated: 0 + - _MainMinAlpha: 0 + - _MainMinAlphaAnimated: 0 + - _MainMipScale: 0.25 + - _MainMipScaleAnimated: 0 + - _MainShadowClipMod: 0 + - _MainShadowClipModAnimated: 0 + - _MainTexAnimated: 0 + - _MainTexPanAnimated: 0 + - _MainTex_STAnimated: 0 + - _MainTextureUV: 0 + - _MainTextureUVAnimated: 0 + - _MainUseVertexColorAlpha: 0 + - _MainUseVertexColorAlphaAnimated: 0 + - _MainVertexColoring: 0 + - _MainVertexColoringAnimated: 0 + - _Matcap2Add: 0 + - _Matcap2AddAnimated: 0 + - _Matcap2Animated: 0 + - _Matcap2Border: 0.43 + - _Matcap2BorderAnimated: 0 + - _Matcap2ColorAnimated: 0 + - _Matcap2EmissionStrength: 0 + - _Matcap2EmissionStrengthAnimated: 0 + - _Matcap2Enable: 0 + - _Matcap2EnableAnimated: 0 + - _Matcap2Intensity: 1 + - _Matcap2IntensityAnimated: 0 + - _Matcap2LightMask: 0 + - _Matcap2LightMaskAnimated: 0 + - _Matcap2MaskAnimated: 0 + - _Matcap2MaskInvert: 0 + - _Matcap2MaskInvertAnimated: 0 + - _Matcap2MaskPanAnimated: 0 + - _Matcap2MaskUV: 0 + - _Matcap2MaskUVAnimated: 0 + - _Matcap2Multiply: 0 + - _Matcap2MultiplyAnimated: 0 + - _Matcap2Normal: 1 + - _Matcap2NormalAnimated: 0 + - _Matcap2Replace: 0 + - _Matcap2ReplaceAnimated: 0 + - _MatcapAdd: 0 + - _MatcapAddAnimated: 0 + - _MatcapAnimated: 0 + - _MatcapBorder: 0.43 + - _MatcapBorderAnimated: 0 + - _MatcapColorAnimated: 0 + - _MatcapEmissionStrength: 0 + - _MatcapEmissionStrengthAnimated: 0 + - _MatcapEnable: 0 + - _MatcapEnableAnimated: 0 + - _MatcapIntensity: 1 + - _MatcapIntensityAnimated: 0 + - _MatcapLightMask: 0 + - _MatcapLightMaskAnimated: 0 + - _MatcapMaskAnimated: 0 + - _MatcapMaskInvert: 0 + - _MatcapMaskInvertAnimated: 0 + - _MatcapMaskPanAnimated: 0 + - _MatcapMaskUV: 0 + - _MatcapMaskUVAnimated: 0 + - _MatcapMultiply: 0 + - _MatcapMultiplyAnimated: 0 + - _MatcapNormal: 1 + - _MatcapNormalAnimated: 0 + - _MatcapReplace: 1 + - _MatcapReplaceAnimated: 0 + - _MetalReflectionTintAnimated: 0 + - _Metallic: 0 + - _MetallicAnimated: 0 + - _MetallicMaskAnimated: 0 + - _MetallicMaskPanAnimated: 0 + - _MetallicMaskUV: 0 + - _MetallicMaskUVAnimated: 0 + - _MetallicTintMapAnimated: 0 + - _MetallicTintMapPanAnimated: 0 + - _MetallicTintMapUV: 0 + - _MetallicTintMapUVAnimated: 0 + - _Mirror: 0 + - _MirrorAnimated: 0 + - _MirrorTextureAnimated: 0 + - _MirrorTexturePanAnimated: 0 + - _MirrorTextureUV: 0 + - _MirrorTextureUVAnimated: 0 + - _Mode: 2 + - _ModelAngleMax: 90 + - _ModelAngleMaxAnimated: 0 + - _ModelAngleMin: 45 + - _ModelAngleMinAnimated: 0 + - _OcclusionStrength: 1 + - _OffsetFactor: 0 + - _OffsetFactorAnimated: 0 + - _OffsetUnits: 0 + - _OffsetUnitsAnimated: 0 + - _OutlineCull: 1 + - _OutlineCullAnimated: 0 + - _OutlineDropShadowOffsetAnimated: 0 + - _OutlineEmission: 0 + - _OutlineEmissionAnimated: 0 + - _OutlineFadeDistanceAnimated: 0 + - _OutlineFixedSize: 0 + - _OutlineFixedSizeAnimated: 0 + - _OutlineLit: 1 + - _OutlineLitAnimated: 0 + - _OutlineMaskAnimated: 0 + - _OutlineMaskUV: 0 + - _OutlineMode: 0 + - _OutlineModeAnimated: 0 + - _OutlineOffsetFactor: 0 + - _OutlineOffsetUnits: 0 + - _OutlinePersonaDirectionAnimated: 0 + - _OutlineRimLightBlend: 0 + - _OutlineRimLightBlendAnimated: 0 + - _OutlineShadowStrength: 1 + - _OutlineShadowStrengthAnimated: 0 + - _OutlineStencilCompareFunction: 8 + - _OutlineStencilCompareFunctionAnimated: 0 + - _OutlineStencilFailOp: 0 + - _OutlineStencilFailOpAnimated: 0 + - _OutlineStencilPassOp: 0 + - _OutlineStencilPassOpAnimated: 0 + - _OutlineStencilReadMask: 255 + - _OutlineStencilReadMaskAnimated: 0 + - _OutlineStencilRef: 0 + - _OutlineStencilRefAnimated: 0 + - _OutlineStencilWriteMask: 255 + - _OutlineStencilWriteMaskAnimated: 0 + - _OutlineStencilZFailOp: 0 + - _OutlineStencilZFailOpAnimated: 0 + - _OutlineTextureAnimated: 0 + - _OutlineTexturePanAnimated: 0 + - _OutlineTextureUV: 0 + - _OutlineTintMix: 0 + - _OutlineTintMixAnimated: 0 + - _OutlineUseVertexColors: 0 + - _OutlineUseVertexColorsAnimated: 0 + - _PanoBlend: 0 + - _PanoBlendAnimated: 0 + - _PanoCubeMapAnimated: 0 + - _PanoCubeMapToggle: 0 + - _PanoCubeMapToggleAnimated: 0 + - _PanoEmission: 0 + - _PanoEmissionAnimated: 0 + - _PanoInfiniteStereoToggle: 0 + - _PanoInfiniteStereoToggleAnimated: 0 + - _PanoMaskAnimated: 0 + - _PanoMaskPanAnimated: 0 + - _PanoMaskUV: 0 + - _PanoMaskUVAnimated: 0 + - _PanoToggle: 0 + - _PanoToggleAnimated: 0 + - _PanosphereColorAnimated: 0 + - _PanospherePanAnimated: 0 + - _PanosphereTextureAnimated: 0 + - _Parallax: 0.02 + - _ParallaxBias: 0.42 + - _ParallaxBiasAnimated: 0 + - _ParallaxHeightMapAnimated: 0 + - _ParallaxHeightMapEnabled: 0 + - _ParallaxHeightMapEnabledAnimated: 0 + - _ParallaxHeightMapMaskAnimated: 0 + - _ParallaxHeightMapMaskPanAnimated: 0 + - _ParallaxHeightMapMaskUV: 0 + - _ParallaxHeightMapMaskUVAnimated: 0 + - _ParallaxHeightMapPanAnimated: 0 + - _ParallaxInternalHeightFromAlpha: 0 + - _ParallaxInternalHeightFromAlphaAnimated: 0 + - _ParallaxInternalHeightmapMode: 0 + - _ParallaxInternalHeightmapModeAnimated: 0 + - _ParallaxInternalIterations: 1 + - _ParallaxInternalIterationsAnimated: 0 + - _ParallaxInternalMapAnimated: 0 + - _ParallaxInternalMapEnabled: 0 + - _ParallaxInternalMapEnabledAnimated: 0 + - _ParallaxInternalMapMaskAnimated: 0 + - _ParallaxInternalMapMaskPanAnimated: 0 + - _ParallaxInternalMapMaskUV: 0 + - _ParallaxInternalMapMaskUVAnimated: 0 + - _ParallaxInternalMaxColorAnimated: 0 + - _ParallaxInternalMaxDepth: 1 + - _ParallaxInternalMaxDepthAnimated: 0 + - _ParallaxInternalMaxFade: 1 + - _ParallaxInternalMaxFadeAnimated: 0 + - _ParallaxInternalMinColorAnimated: 0 + - _ParallaxInternalMinDepth: 0 + - _ParallaxInternalMinDepthAnimated: 0 + - _ParallaxInternalMinFade: 0 + - _ParallaxInternalMinFadeAnimated: 0 + - _ParallaxInternalPanDepthSpeedAnimated: 0 + - _ParallaxInternalPanSpeedAnimated: 0 + - _ParallaxMap: 0 + - _ParallaxMapAnimated: 0 + - _ParallaxStrength: 0 + - _ParallaxStrengthAnimated: 0 + - _ParallaxUV: 0 + - _ParallaxUVAnimated: 0 + - _RGBBlendMultiplicative: 0 + - _RGBBlendMultiplicativeAnimated: 0 + - _RGBBluePanningAnimated: 0 + - _RGBBlue_UV: 0 + - _RGBBlue_UVAnimated: 0 + - _RGBGreenPanningAnimated: 0 + - _RGBGreen_UV: 0 + - _RGBGreen_UVAnimated: 0 + - _RGBMaskAnimated: 0 + - _RGBMaskEnabled: 0 + - _RGBMaskEnabledAnimated: 0 + - _RGBMaskPanningAnimated: 0 + - _RGBMaskUV: 0 + - _RGBMaskUVAnimated: 0 + - _RGBNormalBlend: 0 + - _RGBNormalBlendAnimated: 0 + - _RGBRedPanningAnimated: 0 + - _RGBRed_UV: 0 + - _RGBRed_UVAnimated: 0 + - _RGBUseVertexColors: 0 + - _RGBUseVertexColorsAnimated: 0 + - _RedColorAnimated: 0 + - _RedTexureAnimated: 0 + - _RefractionChromaticAberattion: 0 + - _RefractionChromaticAberattionAnimated: 0 + - _RefractionEnabled: 0 + - _RefractionEnabledAnimated: 0 + - _RefractionIndex: 1.333333 + - _RefractionIndexAnimated: 0 + - _RgbNormalBScale: 0 + - _RgbNormalBUV: 0 + - _RgbNormalGScale: 0 + - _RgbNormalGUV: 0 + - _RgbNormalRScale: 0 + - _RgbNormalRUV: 0 + - _RgbNormalsEnabled: 0 + - _RimBrighten: 0 + - _RimBrightenAnimated: 0 + - _RimEnviroBlur: 0.7 + - _RimEnviroBlurAnimated: 0 + - _RimEnviroIntensity: 1 + - _RimEnviroIntensityAnimated: 0 + - _RimEnviroMaskAnimated: 0 + - _RimEnviroMaskPanAnimated: 0 + - _RimEnviroMaskUV: 0 + - _RimEnviroMaskUVAnimated: 0 + - _RimEnviroMinBrightness: 0 + - _RimEnviroMinBrightnessAnimated: 0 + - _RimEnviroSharpness: 0 + - _RimEnviroSharpnessAnimated: 0 + - _RimEnviroWidth: 0.45 + - _RimEnviroWidthAnimated: 0 + - _RimLightColorAnimated: 0 + - _RimLightColorBias: 0 + - _RimLightColorBiasAnimated: 0 + - _RimLightNormal: 1 + - _RimLightNormalAnimated: 0 + - _RimLightingInvert: 0 + - _RimLightingInvertAnimated: 0 + - _RimMaskAnimated: 0 + - _RimMaskPanAnimated: 0 + - _RimMaskUV: 0 + - _RimMaskUVAnimated: 0 + - _RimSharpness: 0.25 + - _RimSharpnessAnimated: 0 + - _RimStrength: 0 + - _RimStrengthAnimated: 0 + - _RimTexAnimated: 0 + - _RimTexPanAnimated: 0 + - _RimTexUV: 0 + - _RimTexUVAnimated: 0 + - _RimWidth: 0.8 + - _RimWidthAnimated: 0 + - _RimWidthNoiseStrength: 0.1 + - _RimWidthNoiseStrengthAnimated: 0 + - _RimWidthNoiseTextureAnimated: 0 + - _RimWidthNoiseTexturePanAnimated: 0 + - _RimWidthNoiseTextureUV: 0 + - _RimWidthNoiseTextureUVAnimated: 0 + - _SSSColorAnimated: 0 + - _SSSDistortion: 1 + - _SSSDistortionAnimated: 0 + - _SSSPower: 5 + - _SSSPowerAnimated: 0 + - _SSSSCale: 0.25 + - _SSSSCaleAnimated: 0 + - _SSSThicknessMapAnimated: 0 + - _SSSThicknessMapPanAnimated: 0 + - _SSSThicknessMapUV: 0 + - _SSSThicknessMapUVAnimated: 0 + - _SSSThicknessMod: 0 + - _SSSThicknessModAnimated: 0 + - _SampleWorld: 0 + - _SampleWorldAnimated: 0 + - _Saturation: 0 + - _SaturationAnimated: 0 + - _ScrollingEmission: 0 + - _ScrollingEmission1: 0 + - _ScrollingEmission1Animated: 0 + - _ScrollingEmissionAnimated: 0 + - _ShadeColor_Step: 0 + - _ShaderOptimizerEnabled: 0 + - _ShadowMix: 0 + - _ShadowMixAnimated: 0 + - _ShadowMixThreshold: 0.5 + - _ShadowMixThresholdAnimated: 0 + - _ShadowMixWidthMod: 0.5 + - _ShadowMixWidthModAnimated: 0 + - _ShadowOffset: 0 + - _ShadowOffsetAnimated: 0 + - _ShadowStrength: 1 + - _ShadowStrengthAnimated: 0 + - _Smoothness: 0 + - _SmoothnessAnimated: 0 + - _SmoothnessFrom: 1 + - _SmoothnessFrom1: 1 + - _SmoothnessFrom1Animated: 0 + - _SmoothnessFromAnimated: 0 + - _SmoothnessMaskAnimated: 0 + - _SmoothnessMaskPanAnimated: 0 + - _SmoothnessMaskUV: 0 + - _SmoothnessMaskUVAnimated: 0 + - _SmoothnessTextureChannel: 0 + - _SourceBlend: 5 + - _SpawnInAlpha: 0 + - _SpawnInAlphaAnimated: 0 + - _SpawnInEmissionColorAnimated: 0 + - _SpawnInEmissionOffset: 0.1 + - _SpawnInEmissionOffsetAnimated: 0 + - _SpawnInGradientFinishAnimated: 0 + - _SpawnInGradientStartAnimated: 0 + - _SpawnInNoiseAnimated: 0 + - _SpawnInNoiseIntensity: 0.35 + - _SpawnInNoiseIntensityAnimated: 0 + - _SpawnInVertOffset: 10 + - _SpawnInVertOffsetAnimated: 0 + - _SpawnInVertOffsetOffset: 0.1 + - _SpawnInVertOffsetOffsetAnimated: 0 + - _Spec1Offset: 0 + - _Spec1Offset1: 0 + - _Spec1Offset1Animated: 0 + - _Spec1OffsetAnimated: 0 + - _Spec2Smoothness: 0 + - _Spec2Smoothness1: 0 + - _Spec2Smoothness1Animated: 0 + - _Spec2SmoothnessAnimated: 0 + - _SpecWhatTangent: 0 + - _SpecWhatTangent1: 0 + - _SpecWhatTangent1Animated: 0 + - _SpecWhatTangentAnimated: 0 + - _SpecularAnisoJitterMacro1Animated: 0 + - _SpecularAnisoJitterMacro1PanAnimated: 0 + - _SpecularAnisoJitterMacro1UV: 0 + - _SpecularAnisoJitterMacro1UVAnimated: 0 + - _SpecularAnisoJitterMacroAnimated: 0 + - _SpecularAnisoJitterMacroMultiplier: 0 + - _SpecularAnisoJitterMacroMultiplier1: 0 + - _SpecularAnisoJitterMacroMultiplier1Animated: 0 + - _SpecularAnisoJitterMacroMultiplierAnimated: 0 + - _SpecularAnisoJitterMacroPanAnimated: 0 + - _SpecularAnisoJitterMacroUV: 0 + - _SpecularAnisoJitterMacroUVAnimated: 0 + - _SpecularAnisoJitterMicro1Animated: 0 + - _SpecularAnisoJitterMicro1PanAnimated: 0 + - _SpecularAnisoJitterMicro1UV: 0 + - _SpecularAnisoJitterMicro1UVAnimated: 0 + - _SpecularAnisoJitterMicroAnimated: 0 + - _SpecularAnisoJitterMicroMultiplier: 0 + - _SpecularAnisoJitterMicroMultiplier1: 0 + - _SpecularAnisoJitterMicroMultiplier1Animated: 0 + - _SpecularAnisoJitterMicroMultiplierAnimated: 0 + - _SpecularAnisoJitterMicroPanAnimated: 0 + - _SpecularAnisoJitterMicroUV: 0 + - _SpecularAnisoJitterMicroUVAnimated: 0 + - _SpecularAnisoJitterMirrored: 0 + - _SpecularAnisoJitterMirrored1: 0 + - _SpecularAnisoJitterMirrored1Animated: 0 + - _SpecularAnisoJitterMirroredAnimated: 0 + - _SpecularHighlights: 1 + - _SpecularInvertSmoothness: 0 + - _SpecularInvertSmoothness1: 0 + - _SpecularInvertSmoothness1Animated: 0 + - _SpecularInvertSmoothnessAnimated: 0 + - _SpecularMap1Animated: 0 + - _SpecularMap1PanAnimated: 0 + - _SpecularMap1UV: 0 + - _SpecularMap1UVAnimated: 0 + - _SpecularMapAnimated: 0 + - _SpecularMapPanAnimated: 0 + - _SpecularMapUV: 0 + - _SpecularMapUVAnimated: 0 + - _SpecularMask1Animated: 0 + - _SpecularMask1PanAnimated: 0 + - _SpecularMask1UV: 0 + - _SpecularMask1UVAnimated: 0 + - _SpecularMaskAnimated: 0 + - _SpecularMaskPanAnimated: 0 + - _SpecularMaskUV: 0 + - _SpecularMaskUVAnimated: 0 + - _SpecularMetallic: 0 + - _SpecularMetallic1: 0 + - _SpecularMetallic1Animated: 0 + - _SpecularMetallicAnimated: 0 + - _SpecularMetallicMap1UV: 0 + - _SpecularMetallicMapUV: 0 + - _SpecularNormal: 1 + - _SpecularNormal1: 1 + - _SpecularNormal1Animated: 0 + - _SpecularNormalAnimated: 0 + - _SpecularSmoothness: 1 + - _SpecularSmoothness1: 0.75 + - _SpecularSmoothness1Animated: 0 + - _SpecularSmoothnessAnimated: 0 + - _SpecularTint1Animated: 0 + - _SpecularTintAnimated: 0 + - _SpecularToonEnd: 1 + - _SpecularToonEnd1: 1 + - _SpecularToonEnd1Animated: 0 + - _SpecularToonEndAnimated: 0 + - _SpecularToonInnerOuter1Animated: 0 + - _SpecularToonInnerOuterAnimated: 0 + - _SpecularToonStart: 0.95 + - _SpecularToonStart1: 0.95 + - _SpecularToonStart1Animated: 0 + - _SpecularToonStartAnimated: 0 + - _SpecularType: 1 + - _SpecularType1: 1 + - _SpecularType1Animated: 0 + - _SpecularTypeAnimated: 0 + - _SrcBlend: 5 + - _SrcBlendAnimated: 0 + - _StencilCompareFunction: 8 + - _StencilCompareFunctionAnimated: 0 + - _StencilFailOp: 0 + - _StencilFailOpAnimated: 0 + - _StencilPassOp: 2 + - _StencilPassOpAnimated: 0 + - _StencilReadMask: 255 + - _StencilReadMaskAnimated: 0 + - _StencilRef: 12 + - _StencilRefAnimated: 0 + - _StencilWriteMask: 255 + - _StencilWriteMaskAnimated: 0 + - _StencilZFailOp: 0 + - _StencilZFailOpAnimated: 0 + - _TextEnabled: 0 + - _TextEnabledAnimated: 0 + - _TextFPSColorAnimated: 0 + - _TextFPSEmissionStrength: 0 + - _TextFPSEmissionStrengthAnimated: 0 + - _TextFPSEnabled: 0 + - _TextFPSEnabledAnimated: 0 + - _TextFPSOffsetAnimated: 0 + - _TextFPSPaddingAnimated: 0 + - _TextFPSRotation: 0 + - _TextFPSRotationAnimated: 0 + - _TextFPSScaleAnimated: 0 + - _TextFPSUV: 0 + - _TextFPSUVAnimated: 0 + - _TextGlyphsAnimated: 0 + - _TextPixelRange: 4 + - _TextPixelRangeAnimated: 0 + - _TextPositionColorAnimated: 0 + - _TextPositionEmissionStrength: 0 + - _TextPositionEmissionStrengthAnimated: 0 + - _TextPositionEnabled: 0 + - _TextPositionEnabledAnimated: 0 + - _TextPositionOffsetAnimated: 0 + - _TextPositionPaddingAnimated: 0 + - _TextPositionRotation: 0 + - _TextPositionRotationAnimated: 0 + - _TextPositionScaleAnimated: 0 + - _TextPositionUV: 0 + - _TextPositionUVAnimated: 0 + - _TextTimeColorAnimated: 0 + - _TextTimeEmissionStrength: 0 + - _TextTimeEmissionStrengthAnimated: 0 + - _TextTimeEnabled: 0 + - _TextTimeEnabledAnimated: 0 + - _TextTimeOffsetAnimated: 0 + - _TextTimePaddingAnimated: 0 + - _TextTimeRotation: 0 + - _TextTimeRotationAnimated: 0 + - _TextTimeScaleAnimated: 0 + - _TextTimeUV: 0 + - _TextTimeUVAnimated: 0 + - _ToonRampAnimated: 0 + - _UVSec: 0 + - _UseShadowTexture: 0 + - _UseShadowTextureAnimated: 0 + - _Use_1stAs2nd: 0 + - _Use_BaseAs1st: 0 + - _VertexGlitchFrequency: 0 + - _VertexGlitchFrequencyAnimated: 0 + - _VertexGlitchStrength: 1 + - _VertexGlitchStrengthAnimated: 0 + - _VertexGlitchThreshold: 1 + - _VertexGlitchThresholdAnimated: 0 + - _VertexManipulationHeight: 0 + - _VertexManipulationHeightAnimated: 0 + - _VertexManipulationHeightBias: 0 + - _VertexManipulationHeightBiasAnimated: 0 + - _VertexManipulationHeightMaskAnimated: 0 + - _VertexManipulationHeightPanAnimated: 0 + - _VertexManipulationHeightUV: 0 + - _VertexManipulationHeightUVAnimated: 0 + - _VertexManipulationLocalRotationAnimated: 0 + - _VertexManipulationLocalScaleAnimated: 0 + - _VertexManipulationLocalTranslationAnimated: 0 + - _VertexManipulationWorldTranslationAnimated: 0 + - _VertexManipulationsEnabled: 0 + - _VertexRoundingDivision: 500 + - _VertexRoundingDivisionAnimated: 0 + - _VertexRoundingEnabled: 0 + - _VertexRoundingEnabledAnimated: 0 + - _VertexUnwrap: 0 + - _VertexUnwrapAnimated: 0 + - _VideoBacklight: 1 + - _VideoBacklightAnimated: 0 + - _VideoCRTPixelEnergizedTime: 1.9 + - _VideoCRTPixelEnergizedTimeAnimated: 0 + - _VideoCRTRefreshRate: 24 + - _VideoCRTRefreshRateAnimated: 0 + - _VideoContrast: 0 + - _VideoContrastAnimated: 0 + - _VideoDebugTextureAnimated: 0 + - _VideoEnableDebug: 0 + - _VideoEnableDebugAnimated: 0 + - _VideoEnableVideoPlayer: 0 + - _VideoEnableVideoPlayerAnimated: 0 + - _VideoGameboyRampAnimated: 0 + - _VideoMaskPanningAnimated: 0 + - _VideoMaskTextureAnimated: 0 + - _VideoOffsetAnimated: 0 + - _VideoPanningAnimated: 0 + - _VideoPixelTextureAnimated: 0 + - _VideoPixelateToResolution: 0 + - _VideoPixelateToResolutionAnimated: 0 + - _VideoRepeatVideoTexture: 0 + - _VideoRepeatVideoTextureAnimated: 0 + - _VideoResolutionAnimated: 0 + - _VideoSaturation: 0 + - _VideoSaturationAnimated: 0 + - _VideoTilingAnimated: 0 + - _VideoType: 3 + - _VideoTypeAnimated: 0 + - _VideoUVNumber: 0 + - _VideoUVNumberAnimated: 0 + - _VoronoiBlend: 0 + - _VoronoiBlendAnimated: 0 + - _VoronoiColor0Animated: 0 + - _VoronoiColor1Animated: 0 + - _VoronoiEffectsMaterialAlpha: 0 + - _VoronoiEffectsMaterialAlphaAnimated: 0 + - _VoronoiEmission0: 0 + - _VoronoiEmission0Animated: 0 + - _VoronoiEmission1: 0 + - _VoronoiEmission1Animated: 0 + - _VoronoiEnableRandomCellColor: 0 + - _VoronoiEnableRandomCellColorAnimated: 0 + - _VoronoiGradientAnimated: 0 + - _VoronoiMaskAnimated: 0 + - _VoronoiMaskPanAnimated: 0 + - _VoronoiMaskUV: 0 + - _VoronoiMaskUVAnimated: 0 + - _VoronoiNoiseAnimated: 0 + - _VoronoiNoiseIntensity: 0.1 + - _VoronoiNoiseIntensityAnimated: 0 + - _VoronoiNoisePanAnimated: 0 + - _VoronoiNoiseUV: 0 + - _VoronoiNoiseUVAnimated: 0 + - _VoronoiRandomMinMaxBrightnessAnimated: 0 + - _VoronoiRandomMinMaxSaturationAnimated: 0 + - _VoronoiScale: 5 + - _VoronoiScaleAnimated: 0 + - _VoronoiSpace: 0 + - _VoronoiSpaceAnimated: 0 + - _VoronoiSpeedAnimated: 0 + - _VoronoiType: 1 + - _VoronoiTypeAnimated: 0 + - _ZTest: 4 + - _ZTestAnimated: 0 + - _ZWrite: 0 + - _ZWriteAnimated: 0 + - _commentIfZero_EnableGrabpass: 0 + - _commentIfZero_EnableOutlinePass: 0 + - _commentIfZero_LightingAdditiveEnable: 1 + - _commentIfZero_LightingAdditiveEnableAnimated: 0 + - _glitterFrequencyLinearEmissive: 20 + - _glitterFrequencyLinearEmissiveAnimated: 0 + - footer_discord: 0 + - footer_github: 0 + - footer_patreon: 0 + - footer_twitter: 0 + - footer_youtube: 0 + - m_LockingInfo: 0 + - m_ParallaxMap: 0 + - m_Patreon: 0 + - m_Special_Effects: 0 + - m_StencilPassOptions: 0 + - m_end_Alpha: 0 + - m_end_BlackLight: 0 + - m_end_Blur: 0 + - m_end_BonusSliders: 0 + - m_end_Bulge: 0 + - m_end_CRT: 0 + - m_end_CenterOutEmission: 0 + - m_end_CenterOutEmission1: 0 + - m_end_DecalSection: 0 + - m_end_DetailOptions: 0 + - m_end_FresnelAlpha: 0 + - m_end_Gameboy: 0 + - m_end_GrabPass: 0 + - m_end_Hologram: 0 + - m_end_Iridescence: 0 + - m_end_Lighting: 0 + - m_end_MainHueShift: 0 + - m_end_MainVertexColors: 0 + - m_end_Matcap2: 0 + - m_end_Metallic: 0 + - m_end_OutlineStencil: 0 + - m_end_RGBMask: 0 + - m_end_Refraction: 0 + - m_end_SciFiSpawnIn: 0 + - m_end_ShadowMix: 0 + - m_end_Spawns: 0 + - m_end_StencilPassOptions: 0 + - m_end_Text: 0 + - m_end_TextFPS: 0 + - m_end_TextInstanceTime: 0 + - m_end_TextPosition: 0 + - m_end_TouchGlow: 0 + - m_end_TouchOptions: 0 + - m_end_VertexGlitch: 0 + - m_end_Video: 0 + - m_end_VideoDebug: 0 + - m_end_VideoSettings: 0 + - m_end_Voronoi: 0 + - m_end_ambientOcclusion: 0 + - m_end_angularFade: 0 + - m_end_backFace: 0 + - m_end_bakedLighting: 0 + - m_end_blending: 0 + - m_end_blinkingEmissionOptions: 0 + - m_end_blinkingEmissionOptions1: 0 + - m_end_clearCoat: 0 + - m_end_debugOptions: 0 + - m_end_detailShadows: 0 + - m_end_dissolve: 0 + - m_end_dissolveMasking: 0 + - m_end_distanceFade: 0 + - m_end_distortionFlow: 0 + - m_end_emission1Options: 0 + - m_end_emissionOptions: 0 + - m_end_flipBook: 0 + - m_end_glitter: 0 + - m_end_glitterRandom: 0 + - m_end_glowInDarkEmissionOptions: 0 + - m_end_glowInDarkEmissionOptions1: 0 + - m_end_lightingAdvanced: 0 + - m_end_lightingHSL: 0 + - m_end_lightingModifiers: 0 + - m_end_manualFlipbookControl: 0 + - m_end_matcap: 0 + - m_end_mirrorOptions: 0 + - m_end_outlineAdvanced: 0 + - m_end_panosphereOptions: 0 + - m_end_parallaxAdvanced: 0 + - m_end_parallaxHeightmap: 0 + - m_end_parallaxInternal: 0 + - m_end_pointToPoint: 0 + - m_end_reflectionRim: 0 + - m_end_rimLightOptions: 0 + - m_end_rimWidthNoise: 0 + - m_end_scrollingEmission1Options: 0 + - m_end_scrollingEmissionOptions: 0 + - m_end_shadowTexture: 0 + - m_end_specular: 0 + - m_end_specular1: 0 + - m_end_subsurface: 0 + - m_end_vertexManipulation: 0 + - m_end_voronoiRandom: 0 + - m_lightingOptions: 0 + - m_mainOptions: 1 + - m_outlineOptions: 0 + - m_renderingOptions: 0 + - m_start_Alpha: 0 + - m_start_BlackLight: 0 + - m_start_Blur: 0 + - m_start_BonusSliders: 0 + - m_start_Bulge: 0 + - m_start_CRT: 0 + - m_start_CenterOutEmission: 0 + - m_start_CenterOutEmission1: 0 + - m_start_DecalSection: 0 + - m_start_DetailOptions: 0 + - m_start_FresnelAlpha: 0 + - m_start_Gameboy: 0 + - m_start_GrabPass: 0 + - m_start_Hologram: 0 + - m_start_Iridescence: 0 + - m_start_Lighting: 0 + - m_start_MainHueShift: 0 + - m_start_MainVertexColors: 0 + - m_start_Matcap2: 0 + - m_start_Metallic: 0 + - m_start_OutlineStencil: 0 + - m_start_RGBMask: 0 + - m_start_Refraction: 0 + - m_start_ScifiSpawnIn: 0 + - m_start_ShadowMix: 0 + - m_start_Spawns: 0 + - m_start_StencilPassOptions: 0 + - m_start_Text: 0 + - m_start_TextFPS: 0 + - m_start_TextInstanceTime: 0 + - m_start_TextPosition: 0 + - m_start_TouchGlow: 0 + - m_start_TouchOptions: 0 + - m_start_VertexGlitch: 0 + - m_start_Video: 0 + - m_start_VideoDebug: 0 + - m_start_VideoSettings: 0 + - m_start_Voronoi: 0 + - m_start_ambientOcclusion: 0 + - m_start_angularFade: 0 + - m_start_backFace: 0 + - m_start_bakedLighting: 0 + - m_start_blending: 0 + - m_start_blinkingEmissionOptions: 0 + - m_start_blinkingEmissionOptions1: 0 + - m_start_clearCoat: 0 + - m_start_debugOptions: 0 + - m_start_detailShadows: 0 + - m_start_dissolve: 0 + - m_start_dissolveMasking: 0 + - m_start_distanceFade: 0 + - m_start_distortionFlow: 0 + - m_start_emission1Options: 0 + - m_start_emissionOptions: 0 + - m_start_flipBook: 0 + - m_start_glitter: 0 + - m_start_glitterRandom: 0 + - m_start_glowInDarkEmissionOptions: 0 + - m_start_glowInDarkEmissionOptions1: 0 + - m_start_lightingAdvanced: 0 + - m_start_lightingHSL: 0 + - m_start_lightingModifiers: 0 + - m_start_manualFlipbookControl: 0 + - m_start_matcap: 0 + - m_start_mirrorOptions: 0 + - m_start_outlineAdvanced: 0 + - m_start_panosphereOptions: 0 + - m_start_parallaxAdvanced: 0 + - m_start_parallaxHeightmap: 0 + - m_start_parallaxInternal: 0 + - m_start_pointToPoint: 0 + - m_start_reflectionRim: 0 + - m_start_rimLightOptions: 0 + - m_start_rimWidthNoise: 0 + - m_start_scrollingEmissionOptions: 0 + - m_start_scrollingEmissionOptions1: 0 + - m_start_shadowTexture: 0 + - m_start_specular: 0 + - m_start_specular1: 0 + - m_start_subsurface: 0 + - m_start_vertexManipulation: 0 + - m_start_voronoiRandom: 0 + - shader_is_using_thry_editor: 69 + - shader_master_label: 0 + - shader_presets: 0 + - shader_properties_label_file: 0 + m_Colors: + - _1st_ShadeColor: {r: 1, g: 1, b: 1, a: 1} + - _1st_ShadeMapPan: {r: 0, g: 0, b: 0, a: 0} + - _2nd_ShadeColor: {r: 1, g: 1, b: 1, a: 1} + - _2nd_ShadeMapPan: {r: 0, g: 0, b: 0, a: 0} + - _AlphaMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _AngleForwardDirection: {r: 0, g: 0, b: 1, a: 0} + - _AnisoTangentMap1Pan: {r: 0, g: 0, b: 0, a: 0} + - _AnisoTangentMapPan: {r: 0, g: 0, b: 0, a: 0} + - _BackFaceColor: {r: 1, g: 1, b: 1, a: 1} + - _BackFacePanning: {r: 0, g: 0, b: 0, a: 0} + - _BlackLightMaskEnd: {r: 1, g: 1, b: 1, a: 1} + - _BlackLightMaskKeys: {r: 2, g: 3, b: 4, a: 5} + - _BlackLightMaskStart: {r: 0, g: 0, b: 0, a: 0} + - _BlueColor: {r: 1, g: 1, b: 1, a: 1} + - _BumpMapPan: {r: 0, g: 0, b: 0, a: 0} + - _ClearCoatMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _ClearCoatSmoothnessMapPan: {r: 0, g: 0, b: 0, a: 0} + - _ClearCoatTint: {r: 1, g: 1, b: 1, a: 1} + - _Color: {r: 1, g: 1, b: 1, a: 0.21176471} + - _DecalColor: {r: 1, g: 1, b: 1, a: 1} + - _DecalMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _DecalPosition: {r: 0.5, g: 0.5, b: 0, a: 0} + - _DecalScale: {r: 1, g: 1, b: 0, a: 0} + - _DecalTexturePan: {r: 0, g: 0, b: 0, a: 0} + - _DepthGlowColor: {r: 1, g: 1, b: 1, a: 1} + - _DepthGradientPan: {r: 0, g: 0, b: 0, a: 0} + - _DepthMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _DetailMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _DetailNormalMapPan: {r: 0, g: 0, b: 0, a: 0} + - _DetailTexPan: {r: 0, g: 0, b: 0, a: 0} + - _DetailTint: {r: 1, g: 1, b: 1, a: 1} + - _DissolveDetailNoisePan: {r: 0, g: 0, b: 0, a: 0} + - _DissolveEdgeColor: {r: 1, g: 1, b: 1, a: 1} + - _DissolveEndPoint: {r: 0, g: 1, b: 0, a: 0} + - _DissolveMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _DissolveNoiseTexturePan: {r: 0, g: 0, b: 0, a: 0} + - _DissolveStartPoint: {r: 0, g: -1, b: 0, a: 0} + - _DissolveTextureColor: {r: 1, g: 1, b: 1, a: 1} + - _DissolveToTexturePan: {r: 0, g: 0, b: 0, a: 0} + - _DistortionMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _DistortionSpeed: {r: 0.5, g: 0.5, b: 0, a: 0} + - _DistortionSpeed1: {r: 0.5, g: 0.5, b: 0, a: 0} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 0} + - _EmissionColor1: {r: 1, g: 1, b: 1, a: 1} + - _EmissionMap1Pan: {r: 0, g: 0, b: 0, a: 0} + - _EmissionMapPan: {r: 0, g: 0, b: 0, a: 0} + - _EmissionMask1Pan: {r: 0, g: 0, b: 0, a: 0} + - _EmissionMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _EmissiveScroll_Direction: {r: 0, g: -10, b: 0, a: 0} + - _EmissiveScroll_Direction1: {r: 0, g: -10, b: 0, a: 0} + - _FlipbookColor: {r: 1, g: 1, b: 1, a: 1} + - _FlipbookMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _FlipbookScaleOffset: {r: 1, g: 1, b: 0, a: 0} + - _FlipbookTexArrayPan: {r: 0, g: 0, b: 0, a: 0} + - _GlitterColor: {r: 1, g: 1, b: 1, a: 1} + - _GlitterColorMapPan: {r: 0, g: 0, b: 0, a: 0} + - _GlitterMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _GlitterMinMaxBrightness: {r: 0.8, g: 1, b: 0, a: 1} + - _GlitterMinMaxSaturation: {r: 0.8, g: 1, b: 0, a: 1} + - _GlitterMinMaxSize: {r: 0.1, g: 0.5, b: 0, a: 1} + - _GlitterPan: {r: 0, g: 0, b: 0, a: 0} + - _GlitterTexturePan: {r: 0, g: 0, b: 0, a: 0} + - _GrabPassBlendMapPan: {r: 0, g: 0, b: 0, a: 0} + - _GreenColor: {r: 1, g: 1, b: 1, a: 1} + - _HoloDirection: {r: 0, g: 1, b: 0, a: 1} + - _LightingAOTexPan: {r: 0, g: 0, b: 0, a: 0} + - _LightingDetailShadowsPan: {r: 0, g: 0, b: 0, a: 0} + - _LightingShadowColor: {r: 1, g: 1, b: 1, a: 1} + - _LightingShadowMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _LightingShadowTexturePan: {r: 0, g: 0, b: 0, a: 0} + - _LineColor: {r: 1, g: 1, b: 1, a: 1} + - _MainDistanceFade: {r: 0, g: 0, b: 0, a: 0} + - _MainFadeTexturePan: {r: 0, g: 0, b: 0, a: 0} + - _MainHueShiftMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _MainTexPan: {r: 0, g: 0, b: 0, a: 0} + - _Matcap2Color: {r: 1, g: 1, b: 1, a: 1} + - _Matcap2MaskPan: {r: 0, g: 0, b: 0, a: 0} + - _MatcapColor: {r: 1, g: 1, b: 1, a: 1} + - _MatcapMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _MetalReflectionTint: {r: 1, g: 1, b: 1, a: 1} + - _MetallicMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _MetallicTintMapPan: {r: 0, g: 0, b: 0, a: 0} + - _MirrorTexturePan: {r: 0, g: 0, b: 0, a: 0} + - _OutlineDropShadowOffset: {r: 1, g: 0, b: 0, a: 0} + - _OutlineFadeDistance: {r: 0, g: 0, b: 0, a: 0} + - _OutlineMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _OutlinePersonaDirection: {r: 1, g: 0, b: 0, a: 0} + - _OutlineTexturePan: {r: 0, g: 0, b: 0, a: 0} + - _PanoMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _PanosphereColor: {r: 1, g: 1, b: 1, a: 1} + - _PanospherePan: {r: 0, g: 0, b: 0, a: 0} + - _ParallaxHeightMapMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _ParallaxHeightMapPan: {r: 0, g: 0, b: 0, a: 0} + - _ParallaxInternalMapMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _ParallaxInternalMaxColor: {r: 1, g: 1, b: 1, a: 1} + - _ParallaxInternalMinColor: {r: 1, g: 1, b: 1, a: 1} + - _ParallaxInternalPanDepthSpeed: {r: 0, g: 0, b: 0, a: 0} + - _ParallaxInternalPanSpeed: {r: 0, g: 0, b: 0, a: 0} + - _RGBBluePanning: {r: 0, g: 0, b: 0, a: 0} + - _RGBGreenPanning: {r: 0, g: 0, b: 0, a: 0} + - _RGBMaskPanning: {r: 0, g: 0, b: 0, a: 0} + - _RGBRedPanning: {r: 0, g: 0, b: 0, a: 0} + - _RedColor: {r: 1, g: 1, b: 1, a: 1} + - _RgbNormalBPan: {r: 0, g: 0, b: 0, a: 0} + - _RgbNormalGPan: {r: 0, g: 0, b: 0, a: 0} + - _RgbNormalRPan: {r: 0, g: 0, b: 0, a: 0} + - _RimEnviroMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _RimLightColor: {r: 1, g: 1, b: 1, a: 1} + - _RimMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _RimTexPan: {r: 0, g: 0, b: 0, a: 0} + - _RimWidthNoiseTexturePan: {r: 0, g: 0, b: 0, a: 0} + - _SSSColor: {r: 1, g: 0, b: 0, a: 1} + - _SSSThicknessMapPan: {r: 0, g: 0, b: 0, a: 0} + - _SmoothnessMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _SpawnInEmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _SpawnInGradientFinish: {r: 0, g: -2, b: 0, a: 1} + - _SpawnInGradientStart: {r: 0, g: 2, b: 0, a: 1} + - _SpecularAnisoJitterMacro1Pan: {r: 0, g: 0, b: 0, a: 0} + - _SpecularAnisoJitterMacroPan: {r: 0, g: 0, b: 0, a: 0} + - _SpecularAnisoJitterMicro1Pan: {r: 0, g: 0, b: 0, a: 0} + - _SpecularAnisoJitterMicroPan: {r: 0, g: 0, b: 0, a: 0} + - _SpecularMap1Pan: {r: 0, g: 0, b: 0, a: 0} + - _SpecularMapPan: {r: 0, g: 0, b: 0, a: 0} + - _SpecularMask1Pan: {r: 0, g: 0, b: 0, a: 0} + - _SpecularMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _SpecularMetallicMap1Pan: {r: 0, g: 0, b: 0, a: 0} + - _SpecularMetallicMapPan: {r: 0, g: 0, b: 0, a: 0} + - _SpecularTint: {r: 1, g: 1, b: 1, a: 1} + - _SpecularTint1: {r: 1, g: 1, b: 1, a: 1} + - _SpecularToonInnerOuter: {r: 0.25, g: 0.3, b: 0, a: 1} + - _SpecularToonInnerOuter1: {r: 0.25, g: 0.3, b: 0, a: 1} + - _TextFPSColor: {r: 1, g: 1, b: 1, a: 1} + - _TextFPSOffset: {r: 0, g: 0, b: 0, a: 0} + - _TextFPSPadding: {r: 0, g: 0, b: 0, a: 0} + - _TextFPSScale: {r: 1, g: 1, b: 1, a: 1} + - _TextPositionColor: {r: 1, g: 0, b: 1, a: 1} + - _TextPositionOffset: {r: 0, g: 0, b: 0, a: 0} + - _TextPositionPadding: {r: 0, g: 0, b: 0, a: 0} + - _TextPositionScale: {r: 1, g: 1, b: 1, a: 1} + - _TextTimeColor: {r: 1, g: 0, b: 1, a: 1} + - _TextTimeOffset: {r: 0, g: 0, b: 0, a: 0} + - _TextTimePadding: {r: 0, g: 0, b: 0, a: 0} + - _TextTimeScale: {r: 1, g: 1, b: 1, a: 1} + - _VertexManipulationHeightPan: {r: 0, g: 0, b: 0, a: 0} + - _VertexManipulationLocalRotation: {r: 0, g: 0, b: 0, a: 1} + - _VertexManipulationLocalScale: {r: 1, g: 1, b: 1, a: 1} + - _VertexManipulationLocalTranslation: {r: 0, g: 0, b: 0, a: 1} + - _VertexManipulationWorldTranslation: {r: 0, g: 0, b: 0, a: 1} + - _VideoMaskPanning: {r: 0, g: 0, b: 0, a: 0} + - _VideoOffset: {r: 0, g: 0, b: 0, a: 0} + - _VideoPanning: {r: 0, g: 0, b: 0, a: 0} + - _VideoResolution: {r: 1280, g: 720, b: 0, a: 1} + - _VideoTiling: {r: 1, g: 1, b: 0, a: 0} + - _VoronoiColor0: {r: 0, g: 0, b: 0, a: 1} + - _VoronoiColor1: {r: 1, g: 1, b: 1, a: 1} + - _VoronoiGradient: {r: 0.04, g: 0.05, b: 0, a: 0} + - _VoronoiMaskPan: {r: 0, g: 0, b: 0, a: 0} + - _VoronoiNoisePan: {r: 0, g: 0, b: 0, a: 0} + - _VoronoiRandomMinMaxBrightness: {r: 0.8, g: 1, b: 0, a: 1} + - _VoronoiRandomMinMaxSaturation: {r: 0.8, g: 1, b: 0, a: 1} + - _VoronoiSpeed: {r: 3, g: 3, b: 3, a: 1} diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Examples/Stencil/outside.mat.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Examples/Stencil/outside.mat.meta new file mode 100644 index 00000000..3780a762 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Examples/Stencil/outside.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: dd5a9a3b9e3639c46bda1485d4465e63 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts.meta new file mode 100644 index 00000000..efc55817 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cfc4de536d16ce04fb4f58bf9a796b91 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor.meta new file mode 100644 index 00000000..f9fcf77a --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 50db53e135bda584495e8da68bb28e8d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor.meta new file mode 100644 index 00000000..9fc152bd --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 009d7c02d58e9e946aa96449dac24a84 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Config.cs b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Config.cs new file mode 100644 index 00000000..2b923007 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Config.cs @@ -0,0 +1,169 @@ +// Material/Shader Inspector for Unity 2017/2018 +// Copyright (C) 2019 Thryrallo + +using System; +using System.Collections; +using System.Collections.Generic; +using System.ComponentModel; +using System.Globalization; +using System.IO; +using UnityEditor; +using UnityEngine; + +namespace Thry +{ + public class Config + { + // consts + private const string PATH_CONFIG_FILE = "Thry/Config.json"; + private const string VERSION = "2.13.7"; + + // static + private static Config config; + + public static void OnCompile() + { + if (!File.Exists(PATH_CONFIG_FILE)) + { + //Settings.firstTimePopup(); + } + else + { + string prevVersion = Singleton.verion; + string installedVersion = VERSION; + int versionComparision = Helper.compareVersions(installedVersion, prevVersion); + if (versionComparision != 0) + { + config.verion = VERSION; + config.save(); + } + if (versionComparision == 1) + { + Settings.updatedPopup(versionComparision); + } + else if (versionComparision == -1) + { + config.OnUpgrade(prevVersion); + Debug.Log(">>> Thry Editor has been updated to version " + installedVersion); + } + } + } + + //load the config from file + private static Config LoadConfig() + { + if (File.Exists(PATH_CONFIG_FILE)) + return JsonUtility.FromJson<Config>(FileHelper.ReadFileIntoString(PATH_CONFIG_FILE)); + new Config().save(); + return new Config(); + } + + public static Config Singleton + { + get + { + if (config == null) config = LoadConfig(); + return config; + } + } + + //actual config class + public TextureDisplayType default_texture_type = TextureDisplayType.small; + public bool showRenderQueue = true; + public bool renameAnimatedProps = true; + public bool showManualReloadButton = false; + + public string locale = "English"; + + public string gradient_name = "gradient_<hash>.png"; + + public string verion = VERSION; + + public void save() + { + FileHelper.WriteStringToFile(JsonUtility.ToJson(this), PATH_CONFIG_FILE); + } + + private void OnUpgrade(string oldVersionString) + { + Version newVersion = new Version(VERSION); + Version oldVersion = new Version(oldVersionString); + + //Upgrade locking valuesd from Animated property to tags + if (newVersion >= "2.11.0" && oldVersion > "2.0" && oldVersion < "2.11.0") + { + ShaderOptimizer.UpgradeAnimatedPropertiesToTagsOnAllMaterials(); + } + } + } + + public class Version + { + private string value; + + public Version(string s) + { + this.value = s; + } + + public static bool operator ==(Version x, Version y) + { + return Helper.compareVersions(x.value, y.value) == 0; + } + + public static bool operator !=(Version x, Version y) + { + return Helper.compareVersions(x.value, y.value) != 0; + } + + public static bool operator >(Version x, Version y) + { + return Helper.compareVersions(x.value, y.value) == -1; + } + + public static bool operator <(Version x, Version y) + { + return Helper.compareVersions(x.value, y.value) == 1; + } + + public static bool operator >=(Version x, Version y) + { + return Helper.compareVersions(x.value, y.value) < 1; + } + + public static bool operator <=(Version x, Version y) + { + return Helper.compareVersions(x.value, y.value) > -1; + } + + public static bool operator ==(Version x, string y) + { + return Helper.compareVersions(x.value, y) == 0; + } + + public static bool operator !=(Version x, string y) + { + return Helper.compareVersions(x.value, y) != 0; + } + + public static bool operator >(Version x, string y) + { + return Helper.compareVersions(x.value, y) == -1; + } + + public static bool operator <(Version x, string y) + { + return Helper.compareVersions(x.value, y) == 1; + } + + public static bool operator >=(Version x, string y) + { + return Helper.compareVersions(x.value, y) < 1; + } + + public static bool operator <=(Version x, string y) + { + return Helper.compareVersions(x.value, y) > -1; + } + } +} diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Config.cs.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Config.cs.meta new file mode 100644 index 00000000..e31eeacb --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Config.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5b48f91946ace6944a90d8313e080259 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/DataStructs.cs b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/DataStructs.cs new file mode 100644 index 00000000..ac362f3a --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/DataStructs.cs @@ -0,0 +1,564 @@ +// Material/Shader Inspector for Unity 2017/2018 +// Copyright (C) 2019 Thryrallo + +using System.Collections; +using System.Collections.Generic; +using System.Text.RegularExpressions; +using UnityEditor; +using UnityEngine; +using UnityEngine.Rendering; + +namespace Thry +{ + public class PATH + { + public const string TEXTURES_DIR = "Assets/textures"; + public const string RSP_NEEDED_PATH = "Assets/"; + + public const string DELETING_DIR = "Thry/trash"; + + public const string PERSISTENT_DATA = "Thry/persistent_data"; + public const string AFTER_COMPILE_DATA = "Thry/after_compile_data"; + public const string MATERIALS_BACKUP_FILE = "Thry/materialsBackup"; + public const string THRY_EDITOR_SHADERS = "Thry/shaders"; + + public const string GRADIENT_INFO_FILE = "Thry/gradients"; + public const string TEXT_INFO_FILE = "Thry/text_textures"; + public const string MODULES_LOCATION__DATA = "Thry/modules_location_data"; + + public const string LINKED_MATERIALS_FILE = "Thry/linked_materials.json"; + + public const string TEMP_VRC_SDK_PACKAGE = "./vrc_sdk_package.unitypackage"; + } + + public class URL + { + public const string MODULE_COLLECTION = "https://thryeditor.thryrallo.de/files/modules.json"; + public const string SETTINGS_MESSAGE_URL = "http://thryeditor.thryrallo.de/message.json"; + + public const string DATA_SHARE_SEND = "http://thryeditor.thryrallo.de/send_analytics.php"; + public const string DATA_SHARE_GET_MY_DATA = "https://thryeditor.thryrallo.de/get_my_data.php"; + public const string COUNT_PROJECT = "http://thryeditor.thryrallo.de/count_project.php"; + public const string COUNT_USER = "http://thryeditor.thryrallo.de/count_user.php"; + } + + public class DEFINE_SYMBOLS + { + public const string IMAGING_EXISTS = "IMAGING_DLL_EXISTS"; + } + + public class RESOURCE_NAME + { + public const string DROPDOWN_SETTINGS_TEXTURE = "thry_settings_dropdown"; + public const string SETTINGS_ICON_TEXTURE = "thry_settings_icon"; + public const string WHITE_RECT = "thry_white_rect"; + public const string DARK_RECT = "thry_dark_rect"; + public const string ACTICE_LINK_ICON = "thry_link_icon_active"; + public const string INACTICE_LINK_ICON = "thry_link_icon_inactive"; + public const string VISIVILITY_ICON = "thry_visiblity_icon"; + public const string SEARCH_ICON = "thry_magnifying_glass_icon"; + public const string PRESETS_ICON = "thry_presets_icon"; + public const string TEXTURE_ARROW = "thry_arrow"; + public const string TEXTURE_ANIMTED = "thry_animated_icon"; + } + + public class DrawingData + { + public static TextureProperty currentTexProperty; + public static Rect lastGuiObjectRect; + public static Rect lastGuiObjectHeaderRect; + public static Rect tooltipCheckRect; + public static bool lastPropertyUsedCustomDrawer; + public static DrawerType lastPropertyDrawerType; + public static MaterialPropertyDrawer lastPropertyDrawer; + public static bool is_enabled = true; + + public static ShaderPart lastInitiatedPart; + + public static void ResetLastDrawerData() + { + lastPropertyUsedCustomDrawer = false; + lastPropertyDrawer = null; + lastPropertyDrawerType = DrawerType.None; + } + } + + public enum DrawerType + { + None, Header + } + + public class GradientData + { + public Texture preview_texture; + public Gradient gradient; + } + + //--------------Shader Data Structs-------------------- + + public class PropertyOptions + { + public int offset = 0; + public string tooltip = ""; + public DefineableAction altClick; + public DefineableCondition condition_show = new DefineableCondition(); + public string condition_showS; + public DefineableCondition condition_enable = null; + public PropertyValueAction[] on_value_actions; + public string on_value; + public DefineableAction[] actions; + public ButtonData button_right; + public TextureData texture; + public string[] reference_properties; + public string reference_property; + public bool force_texture_options = false; + public bool hide_in_inspector = false; + public bool is_hideable = false; + public bool is_visible_simple = false; + public string file_name; + } + + public class ButtonData + { + public string text = ""; + public TextureData texture = null; + public DefineableAction action = new DefineableAction(); + public string hover = ""; + public DefineableCondition condition_show = new DefineableCondition(); + } + + public class TextureData + { + public string name = null; + + public int width = 128; + public int height = 128; + + public char channel = 'r'; + + public int ansioLevel = 1; + public FilterMode filterMode = FilterMode.Bilinear; + public TextureWrapMode wrapMode = TextureWrapMode.Repeat; + + public void ApplyModes(Texture texture) + { + texture.filterMode = filterMode; + texture.wrapMode = wrapMode; + texture.anisoLevel = ansioLevel; + } + public void ApplyModes(string path) + { + TextureImporter importer = (TextureImporter)AssetImporter.GetAtPath(path); + importer.filterMode = filterMode; + importer.wrapMode = wrapMode; + importer.anisoLevel = ansioLevel; + importer.SaveAndReimport(); + } + + private Texture p_loaded_texture; + public Texture loaded_texture + { + get + { + if (p_loaded_texture == null) + { + string path = FileHelper.FindFile(name, "texture"); + if (path != null) + p_loaded_texture = AssetDatabase.LoadAssetAtPath<Texture>(path); + else + p_loaded_texture = new Texture2D(1, 1); + } + return p_loaded_texture; + } + } + } + + public class PropertyValueAction + { + public string value; + public DefineableAction[] actions; + + public bool Execute(MaterialProperty p) + { + if((p.floatValue.ToString()==value) + || ( p.colorValue.ToString() == value) + || ( p.vectorValue.ToString() == value ) + || (p.textureValue != null && p.textureValue.ToString() == value)) + { + foreach (DefineableAction a in actions) + a.Perform(); + return true; + } + return false; + } + + // value,property1=value1,property2=value2 + public static PropertyValueAction Parse(string s) + { + s = s.Trim(); + string[] parts = s.Split(','); + if (parts.Length > 0) + { + PropertyValueAction propaction = new PropertyValueAction(); + propaction.value = parts[0]; + List<DefineableAction> actions = new List<DefineableAction>(); + for (int i = 1; i < parts.Length; i++) + { + actions.Add(DefineableAction.Parse(parts[i])); + } + propaction.actions = actions.ToArray(); + return propaction; + } + return null; + } + + public static PropertyValueAction[] ParseToArray(string s) + { + //s = v,p1=v1,p2=v2;v3 + List<PropertyValueAction> propactions = new List<PropertyValueAction>(); + string[] parts = s.Split(';'); + foreach (string p in parts) + { + PropertyValueAction propertyValueAction = PropertyValueAction.Parse(p); + if (propertyValueAction != null) + propactions.Add(propertyValueAction); + } + return propactions.ToArray(); + } + } + + public class DefineableAction + { + public DefineableActionType type = DefineableActionType.NONE; + public string data = ""; + public void Perform() + { + switch (type) + { + case DefineableActionType.URL: + Application.OpenURL(data); + break; + case DefineableActionType.SET_PROPERTY: + string[] set = Regex.Split(data, @"="); + if (set.Length > 1) + MaterialHelper.SetMaterialValue(set[0].Trim(), set[1].Trim()); + break; + case DefineableActionType.SET_TAG: + string[] keyValue = Regex.Split(data, @"="); + foreach (Material m in ShaderEditor.active.materials) + m.SetOverrideTag(keyValue[0].Trim(), keyValue[1].Trim()); + break; + case DefineableActionType.SET_SHADER: + Shader shader = Shader.Find(data); + if (shader != null) + { + foreach (Material m in ShaderEditor.active.materials) + m.shader = shader; + } + break; + } + } + + public static DefineableAction Parse(string s) + { + s = s.Trim(); + DefineableAction action = new DefineableAction(); + if (s.StartsWith("https") || s.StartsWith("www")) + { + action.type = DefineableActionType.URL; + action.data = s; + } + else if (s.StartsWith("tag::")) + { + action.type = DefineableActionType.SET_TAG; + action.data = s.Replace("tag::", ""); + } + else if (s.StartsWith("shader=")) + { + action.type = DefineableActionType.SET_SHADER; + action.data = s.Replace("shader=", ""); + } + else if (s.Contains("=")) + { + action.type = DefineableActionType.SET_PROPERTY; + action.data = s; + } + return action; + } + + public static DefineableAction ParseDrawerParameter(string s) + { + s = s.Trim(); + DefineableAction action = new DefineableAction(); + if (s.StartsWith("youtube#")) + { + action.type = DefineableActionType.URL; + action.data = "https://www.youtube.com/watch?v="+s.Substring(8); + } + return action; + } + } + + public enum DefineableActionType + { + NONE, + URL, + SET_PROPERTY, + SET_SHADER, + SET_TAG + } + + public class DefineableCondition + { + public DefineableConditionType type = DefineableConditionType.NONE; + public string data = ""; + public DefineableCondition condition1; + public DefineableCondition condition2; + public bool Test() + { + switch (type) + { + case DefineableConditionType.NONE: + return true; + case DefineableConditionType.TRUE: + return true; + case DefineableConditionType.FALSE: + return false; + } + string comparator = GetComparetor(); + string[] parts = Regex.Split(data, comparator); + string obj = parts[0]; + string value = parts[parts.Length-1]; + switch (type) + { + case DefineableConditionType.PROPERTY_BOOL: + ShaderProperty prop = ShaderEditor.active.propertyDictionary[obj]; + if (prop == null) return false; + if (comparator == "##") return prop.materialProperty.floatValue == 1; + float f = Parser.ParseFloat(parts[1]); + if (comparator == "==") return prop.materialProperty.floatValue == f; + if (comparator == "!=") return prop.materialProperty.floatValue != f; + if (comparator == "<") return prop.materialProperty.floatValue < f; + if (comparator == ">") return prop.materialProperty.floatValue > f; + if (comparator == ">=") return prop.materialProperty.floatValue >= f; + if (comparator == "<=") return prop.materialProperty.floatValue <= f; + break; + case DefineableConditionType.EDITOR_VERSION: + int c_ev = Helper.compareVersions(Config.Singleton.verion, value); + if (comparator == "==") return c_ev == 0; + if (comparator == "!=") return c_ev != 0; + if (comparator == "<") return c_ev == 1; + if (comparator == ">") return c_ev == -1; + if (comparator == ">=") return c_ev == -1 || c_ev == 0; + if (comparator == "<=") return c_ev == 1 || c_ev == 0; + break; + case DefineableConditionType.VRC_SDK_VERSION: + if (VRCInterface.Get().sdk_information.type == VRCInterface.VRC_SDK_Type.NONE) + return false; + int c_vrc = Helper.compareVersions(VRCInterface.Get().sdk_information.installed_version, value); + if (comparator == "==") return c_vrc == 0; + if (comparator == "!=") return c_vrc != 0; + if (comparator == "<") return c_vrc == 1; + if (comparator == ">") return c_vrc == -1; + if (comparator == ">=") return c_vrc == -1 || c_vrc == 0; + if (comparator == "<=") return c_vrc == 1 || c_vrc == 0; + break; + case DefineableConditionType.TEXTURE_SET: + ShaderProperty shaderProperty = ShaderEditor.active.propertyDictionary[data]; + if (shaderProperty == null) return false; + return shaderProperty.materialProperty.textureValue != null; + case DefineableConditionType.DROPDOWN: + ShaderProperty dropdownProperty = ShaderEditor.active.propertyDictionary[obj]; + if (dropdownProperty == null) return false; + if (comparator == "##") return dropdownProperty.materialProperty.floatValue == 1; + if (comparator == "==") return "" + dropdownProperty.materialProperty.floatValue == parts[1]; + if (comparator == "!=") return "" + dropdownProperty.materialProperty.floatValue != parts[1]; + break; + case DefineableConditionType.AND: + if(condition1!=null&&condition2!=null) return condition1.Test() && condition2.Test(); + break; + case DefineableConditionType.OR: + if (condition1 != null && condition2 != null) return condition1.Test() || condition2.Test(); + break; + } + + return true; + } + private string GetComparetor() + { + if (data.Contains("==")) + return "=="; + if (data.Contains("!=")) + return "!="; + if (data.Contains(">=")) + return ">="; + if (data.Contains("<=")) + return "<="; + if (data.Contains(">")) + return ">"; + if (data.Contains("<")) + return "<"; + return "##"; + } + + public override string ToString() + { + switch (type) + { + case DefineableConditionType.PROPERTY_BOOL: + return data; + case DefineableConditionType.EDITOR_VERSION: + return "EDITOR_VERSION" + data; + case DefineableConditionType.VRC_SDK_VERSION: + return "VRC_SDK_VERSION" + data; + case DefineableConditionType.AND: + if (condition1 != null && condition2 != null) return "("+condition1.ToString() + "&&" + condition2.ToString()+")"; + break; + case DefineableConditionType.OR: + if (condition1 != null && condition2 != null) return "("+condition1.ToString()+"||"+condition2.ToString()+")"; + break; + } + return ""; + } + + public static DefineableCondition Parse(string s) + { + s = Strip(s); + + int depth = 0; + for (int i = 0; i < s.Length - 1; i++) + { + char c = s[i]; + char cc = s[i + 1]; + if (c == '(') + depth++; + else if (c == ')') + depth--; + + if (depth == 0) + { + if (c == '&' && cc == '&') + { + DefineableCondition con = new DefineableCondition(); + con.type = DefineableConditionType.AND; + con.condition1 = Parse(s.Substring(0, i)); + con.condition2 = Parse(s.Substring(i + 2, s.Length - i - 2)); + return con; + } + if (c == '|' && cc == '|') + { + DefineableCondition con = new DefineableCondition(); + con.type = DefineableConditionType.OR; + con.condition1 = Parse(s.Substring(0, i)); + con.condition2 = Parse(s.Substring(i + 2, s.Length - i - 2)); + return con; + } + } + } + for (int i = 0; i < s.Length - 1; i++) + { + char c = s[i]; + char cc = s[i + 1]; + if (c == '(') + depth++; + else if (c == ')') + depth--; + + if (depth == 0) + { + if (c == '>' || c=='<' || c=='=' || c == '!') + { + DefineableCondition con = new DefineableCondition(); + con.data = s; + con.type = DefineableConditionType.PROPERTY_BOOL; + if (s.StartsWith("VRCSDK")) + { + con.type = DefineableConditionType.VRC_SDK_VERSION; + con.data = s.Replace("VRCSDK", ""); + }else if (s.StartsWith("ThryEditor")) + { + con.type = DefineableConditionType.VRC_SDK_VERSION; + con.data = s.Replace("ThryEditor", ""); + } + return con; + } + } + } + return new DefineableCondition(); + } + + private static string Strip(string s) + { + s = s.Trim(); + if (s.StartsWith("(") == false) + return s; + bool stripKlammer = true; + int depth = 0; + int i = 0; + foreach (char c in s) + { + if (c == '(') + depth++; + else if (c == ')') + depth--; + if (depth == 0 && i != 0 && i != s.Length - 1) + stripKlammer = false; + i++; + } + if (stripKlammer) + return Strip(s.Substring(1, s.Length - 2)); + return s; + } + } + + public enum DefineableConditionType + { + NONE, + TRUE, + FALSE, + PROPERTY_BOOL, + EDITOR_VERSION, + VRC_SDK_VERSION, + TEXTURE_SET, + DROPDOWN, + AND, + OR + } + + public class Module + { + public string id; + public string url = ""; + public string author; + public string path; + public bool is_being_installed_or_removed = false; + public bool available_requirement_fullfilled = true; + public bool update_available = false; + public ModuleLocationData location_data; + public ModuleInfo available_module = null; + public ModuleInfo installed_module = null; + public bool ui_expanded = false; + } + + public class ModuleInfo + { + public string name = ""; + public string version = "0"; + public string description = ""; + public string classname = ""; + public DefineableCondition requirement; + public List<string> files; + } + + public class ModuleLocationData + { + public string guid; + public string classname; + public string[] files; + } + + public enum TextureDisplayType + { + small,big,stylized_big + } +}
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/DataStructs.cs.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/DataStructs.cs.meta new file mode 100644 index 00000000..16085f5b --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/DataStructs.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 42f9390784d11e84bbf6366e794e6b20 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Drawers.cs b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Drawers.cs new file mode 100644 index 00000000..39473918 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Drawers.cs @@ -0,0 +1,845 @@ +// Material/Shader Inspector for Unity 2017/2018 +// Copyright (C) 2019 Thryrallo + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text.RegularExpressions; +using UnityEditor; +using UnityEngine; + +namespace Thry +{ + public class SmallTextureDrawer : MaterialPropertyDrawer + { + public override void OnGUI(Rect position, MaterialProperty prop, GUIContent label, MaterialEditor editor) + { + GuiHelper.drawSmallTextureProperty(position, prop, label, editor, ((TextureProperty)ShaderEditor.active.currentProperty).hasScaleOffset); + } + + public override float GetPropertyHeight(MaterialProperty prop, string label, MaterialEditor editor) + { + DrawingData.lastPropertyUsedCustomDrawer = true; + return base.GetPropertyHeight(prop, label, editor); + } + } + + public class BigTextureDrawer : MaterialPropertyDrawer + { + public override void OnGUI(Rect position, MaterialProperty prop, GUIContent label, MaterialEditor editor) + { + GuiHelper.drawBigTextureProperty(position, prop, label, editor, ((TextureProperty)ShaderEditor.active.currentProperty).hasScaleOffset); + } + + public override float GetPropertyHeight(MaterialProperty prop, string label, MaterialEditor editor) + { + DrawingData.lastPropertyUsedCustomDrawer = true; + return base.GetPropertyHeight(prop, label, editor); + } + } + + public class StylizedBigTextureDrawer : MaterialPropertyDrawer + { + public override void OnGUI(Rect position, MaterialProperty prop, GUIContent label, MaterialEditor editor) + { + GuiHelper.drawStylizedBigTextureProperty(position, prop, label, editor, ((TextureProperty)ShaderEditor.active.currentProperty).hasScaleOffset); + } + + public override float GetPropertyHeight(MaterialProperty prop, string label, MaterialEditor editor) + { + DrawingData.lastPropertyUsedCustomDrawer = true; + return base.GetPropertyHeight(prop, label, editor); + } + } + + public class ThryToggleUIDrawer : MaterialPropertyDrawer + { + public string keyword; + private bool isFirstGUICall = true; + public ThryToggleUIDrawer() + { + } + + public ThryToggleUIDrawer(string keyword) + { + } + + protected virtual void SetKeyword(MaterialProperty prop, bool on) + { + } + + protected virtual void CheckKeyword(MaterialProperty prop) + { + } + + static bool IsPropertyTypeSuitable(MaterialProperty prop) + { + return prop.type == MaterialProperty.PropType.Float || prop.type == MaterialProperty.PropType.Range; + } + + public override float GetPropertyHeight(MaterialProperty prop, string label, MaterialEditor editor) + { + if (!IsPropertyTypeSuitable(prop)) + { + return EditorGUIUtility.singleLineHeight * 2.5f; + } + return base.GetPropertyHeight(prop, label, editor); + } + + public override void OnGUI(Rect position, MaterialProperty prop, GUIContent label, MaterialEditor editor) + { + if (!IsPropertyTypeSuitable(prop)) + { + return; + } + if (isFirstGUICall) + { + CheckKeyword(prop); + isFirstGUICall = false; + } + //why is this not inFirstGUICall ? cause it seems drawers are kept between different openings of the shader editor, so this needs to be set again every time the shader editor is reopened for that material + (ShaderEditor.active.propertyDictionary[prop.name] as ShaderProperty).keyword = keyword; + + EditorGUI.BeginChangeCheck(); + + bool value = (Math.Abs(prop.floatValue) > 0.001f); + EditorGUI.showMixedValue = prop.hasMixedValue; + value = EditorGUI.Toggle(position, label, value); + EditorGUI.showMixedValue = false; + if (EditorGUI.EndChangeCheck()) + { + prop.floatValue = value ? 1.0f : 0.0f; + SetKeyword(prop, value); + } + } + + public override void Apply(MaterialProperty prop) + { + base.Apply(prop); + if (!IsPropertyTypeSuitable(prop)) + return; + + if (prop.hasMixedValue) + return; + + SetKeyword(prop, (Math.Abs(prop.floatValue) > 0.001f)); + } + } + + public class ThryToggleDrawer : ThryToggleUIDrawer + { + public ThryToggleDrawer() + { + } + + public ThryToggleDrawer(string keyword) + { + this.keyword = keyword; + } + + protected override void SetKeyword(MaterialProperty prop, bool on) + { + SetKeywordInternal(prop, on, "_ON"); + } + + protected virtual void CheckKeyword(MaterialProperty prop) + { + foreach (Material m in prop.targets) + { + if (m.GetFloat(prop.name) == 1) + m.EnableKeyword((string)keyword); + else + m.DisableKeyword((string)keyword); + } + } + + protected void SetKeywordInternal(MaterialProperty prop, bool on, string defaultKeywordSuffix) + { + // if no keyword is provided, use <uppercase property name> + defaultKeywordSuffix + string kw = string.IsNullOrEmpty(keyword) ? prop.name.ToUpperInvariant() + defaultKeywordSuffix : keyword; + // set or clear the keyword + foreach (Material material in prop.targets) + { + if (on) + material.EnableKeyword(kw); + else + material.DisableKeyword(kw); + } + } + } + public class CurveDrawer : MaterialPropertyDrawer + { + public AnimationCurve curve; + public EditorWindow window; + public Texture2D texture; + public bool saved = true; + public TextureData imageData; + + public CurveDrawer() + { + curve = new AnimationCurve(); + } + + private void Init() + { + if (imageData == null) + { + if (ShaderEditor.active.currentProperty.options.texture == null) + imageData = new TextureData(); + else + imageData = ShaderEditor.active.currentProperty.options.texture; + } + } + + public override void OnGUI(Rect position, MaterialProperty prop, GUIContent label, MaterialEditor editor) + { + Init(); + Rect border_position = new Rect(position.x + EditorGUIUtility.labelWidth - 15, position.y, position.width - EditorGUIUtility.labelWidth - position.x + 15, position.height); + + EditorGUI.BeginChangeCheck(); + curve = EditorGUI.CurveField(border_position,curve); + if (EditorGUI.EndChangeCheck()) + { + UpdateCurveTexture(prop); + } + + GuiHelper.drawSmallTextureProperty(position, prop, label, editor, DrawingData.currentTexProperty.hasFoldoutProperties); + + CheckWindowForCurveEditor(); + + if (window == null && !saved) + Save(prop); + } + + private void UpdateCurveTexture(MaterialProperty prop) + { + texture = Converter.CurveToTexture(curve, imageData); + prop.textureValue = texture; + saved = false; + } + + private void CheckWindowForCurveEditor() + { + string windowName = ""; + if (EditorWindow.focusedWindow != null) + windowName = EditorWindow.focusedWindow.titleContent.text; + bool isCurveEditor = windowName == "Curve"; + if (isCurveEditor) + window = EditorWindow.focusedWindow; + } + + private void Save(MaterialProperty prop) + { + Debug.Log(prop.textureValue.ToString()); + Texture saved_texture = TextureHelper.SaveTextureAsPNG(texture, PATH.TEXTURES_DIR + "curves/" + curve.GetHashCode() + ".png", null); + prop.textureValue = saved_texture; + saved = true; + } + + public override float GetPropertyHeight(MaterialProperty prop, string label, MaterialEditor editor) + { + DrawingData.lastPropertyUsedCustomDrawer = true; + return base.GetPropertyHeight(prop, label, editor); + } + } + + public class GradientDrawer : MaterialPropertyDrawer + { + GradientData data; + bool is_init = false; + + Rect border_position; + Rect gradient_position; + + private void Init(MaterialProperty prop) + { + data = new GradientData(); + data.preview_texture = prop.textureValue; + is_init = true; + } + + public override void OnGUI(Rect position, MaterialProperty prop, GUIContent label, MaterialEditor editor) + { + if (!is_init) + Init(prop); + + EditorGUI.BeginChangeCheck(); + if (EditorGUI.EndChangeCheck()) + Init(prop); + + UpdateRects(position); + if (ShaderEditor.input.MouseClick && border_position.Contains(Event.current.mousePosition)) + { + ShaderEditor.input.Use(); + PropertyOptions options = ShaderEditor.active.currentProperty.options; + GradientEditor.Open(data, prop, options.texture, options.force_texture_options, !options.force_texture_options); + } + + GuiHelper.drawSmallTextureProperty(position, prop, label, editor, DrawingData.currentTexProperty.hasFoldoutProperties); + + GradientField(); + } + + private void UpdateRects(Rect position) + { + border_position = new Rect(position.x + EditorGUIUtility.labelWidth, position.y, position.width - EditorGUIUtility.labelWidth - position.x, position.height); + gradient_position = new Rect(border_position.x + 1, border_position.y + 1, border_position.width - 2, border_position.height - 2); + } + + private void GradientField() + { + DrawBackgroundTexture(); + if (data.preview_texture != null) + DrawGradientTexture(); + else + GUI.DrawTexture(border_position, Texture2D.whiteTexture, ScaleMode.StretchToFill, false, 0, Color.grey, 1, 1); + } + + private void DrawBackgroundTexture() + { + Texture2D backgroundTexture = TextureHelper.GetBackgroundTexture(); + Rect texCoordsRect = new Rect(0, 0, gradient_position.width / backgroundTexture.width, gradient_position.height / backgroundTexture.height); + GUI.DrawTextureWithTexCoords(gradient_position, backgroundTexture, texCoordsRect, false); + } + + private void DrawGradientTexture() + { + TextureWrapMode wrap_mode = data.preview_texture.wrapMode; + data.preview_texture.wrapMode = TextureWrapMode.Clamp; + bool vertical = data.preview_texture.height > data.preview_texture.width; + Vector2 pivot = new Vector2(); + if (vertical) + { + pivot = new Vector2(gradient_position.x, gradient_position.y + gradient_position.height); + GUIUtility.RotateAroundPivot(-90, pivot); + gradient_position.y += gradient_position.height; + float h = gradient_position.width; + gradient_position.width = gradient_position.height; + gradient_position.y += h; + gradient_position.height = -h; + } + GUI.DrawTexture(gradient_position, data.preview_texture, ScaleMode.StretchToFill, true); + if (vertical) + { + GUIUtility.RotateAroundPivot(90, pivot); + } + GUI.DrawTexture(border_position, data.preview_texture, ScaleMode.StretchToFill, false, 0, Color.grey, 1, 1); + data.preview_texture.wrapMode = wrap_mode; + } + + public override float GetPropertyHeight(MaterialProperty prop, string label, MaterialEditor editor) + { + DrawingData.lastPropertyUsedCustomDrawer = true; + return base.GetPropertyHeight(prop, label, editor); + } + } + + public class MultiSliderDrawer : MaterialPropertyDrawer + { + public override void OnGUI(Rect position, MaterialProperty prop, GUIContent label, MaterialEditor editor) + { + GuiHelper.MinMaxSlider(position, label, prop); + } + + public override float GetPropertyHeight(MaterialProperty prop, string label, MaterialEditor editor) + { + DrawingData.lastPropertyUsedCustomDrawer = true; + return base.GetPropertyHeight(prop, label, editor); + } + } + + public class Vector3Drawer : MaterialPropertyDrawer + { + public override void OnGUI(Rect position, MaterialProperty prop, GUIContent label, MaterialEditor editor) + { + EditorGUI.BeginChangeCheck(); + EditorGUI.showMixedValue = prop.hasMixedValue; + Vector4 vec = EditorGUI.Vector3Field(position, label, prop.vectorValue); + if (EditorGUI.EndChangeCheck()) + { + prop.vectorValue = new Vector4(vec.x, vec.y, vec.z, prop.vectorValue.w); + } + } + + public override float GetPropertyHeight(MaterialProperty prop, string label, MaterialEditor editor) + { + DrawingData.lastPropertyUsedCustomDrawer = true; + return base.GetPropertyHeight(prop, label, editor); + } + } + + public class Vector2Drawer : MaterialPropertyDrawer + { + public override void OnGUI(Rect position, MaterialProperty prop, GUIContent label, MaterialEditor editor) + { + EditorGUI.BeginChangeCheck(); + EditorGUI.showMixedValue = prop.hasMixedValue; + Vector4 vec = EditorGUI.Vector2Field(position, label, prop.vectorValue); + if (EditorGUI.EndChangeCheck()) + { + prop.vectorValue = new Vector4(vec.x, vec.y, prop.vectorValue.z, prop.vectorValue.w); + } + } + + public override float GetPropertyHeight(MaterialProperty prop, string label, MaterialEditor editor) + { + DrawingData.lastPropertyUsedCustomDrawer = true; + return base.GetPropertyHeight(prop, label, editor); + } + } + + public class TextureArrayDrawer : MaterialPropertyDrawer + { + private string framesProperty; + + public TextureArrayDrawer() + { + + } + + public TextureArrayDrawer(string framesProperty) + { + this.framesProperty = framesProperty; + } + + public override void OnGUI(Rect position, MaterialProperty prop, GUIContent label, MaterialEditor editor) + { + ShaderProperty shaderProperty = (ShaderProperty)ShaderEditor.active.currentProperty; + GuiHelper.drawConfigTextureProperty(position, prop, label, editor, true, true); + + string n = ""; + if (prop.textureValue != null) n = prop.textureValue.name; + if ((ShaderEditor.input.is_drag_drop_event) && position.Contains(ShaderEditor.input.mouse_position)) + { + DragAndDrop.visualMode = DragAndDropVisualMode.Copy; + if (ShaderEditor.input.is_drop_event) + { + DragAndDrop.AcceptDrag(); + HanldeDropEvent(prop, shaderProperty); + } + } + if (ShaderEditor.active.firstCall) + ShaderEditor.active.textureArrayProperties.Add(shaderProperty); + } + + public void HanldeDropEvent(MaterialProperty prop, ShaderProperty shaderProperty) + { + string[] paths = DragAndDrop.paths; + Texture2DArray tex; + if (AssetDatabase.GetMainAssetTypeAtPath(paths[0]) != typeof(Texture2DArray)) + { + tex = Converter.PathsToTexture2DArray(paths); + MaterialHelper.UpdateTargetsValue(prop, tex); + } + else + { + tex = AssetDatabase.LoadAssetAtPath<Texture2DArray>(paths[0]); + } + prop.textureValue = tex; + UpdateFramesProperty(prop, shaderProperty, tex); + } + + private void UpdateFramesProperty(MaterialProperty prop, ShaderProperty shaderProperty, Texture2DArray tex) + { + if (framesProperty != null) + { + ShaderProperty p; + if (ShaderEditor.active.propertyDictionary.TryGetValue(framesProperty, out p)) + MaterialHelper.UpdateFloatValue(p.materialProperty, tex.depth); + } + else if (shaderProperty.options.reference_property != null) + { + ShaderProperty p; + if (ShaderEditor.active.propertyDictionary.TryGetValue(shaderProperty.options.reference_property, out p)) + MaterialHelper.UpdateFloatValue(p.materialProperty, tex.depth); + } + } + + public override float GetPropertyHeight(MaterialProperty prop, string label, MaterialEditor editor) + { + DrawingData.lastPropertyUsedCustomDrawer = true; + return base.GetPropertyHeight(prop, label, editor); + } + } + + public class HelpboxDrawer : MaterialPropertyDrawer + { + readonly MessageType type; + + public HelpboxDrawer() + { + type = MessageType.Info; + } + + public HelpboxDrawer(float f) + { + type = (MessageType)(int)f; + } + + public override void OnGUI(Rect position, MaterialProperty prop, GUIContent label, MaterialEditor editor) + { + EditorGUILayout.HelpBox(label.text, type); + } + + public override float GetPropertyHeight(MaterialProperty prop, string label, MaterialEditor editor) + { + DrawingData.lastPropertyUsedCustomDrawer = true; + return 0; + } + } + + public class ThryHeaderLabelDecorator : MaterialPropertyDrawer + { + readonly string text; + + public ThryHeaderLabelDecorator(string text) + { + this.text = text; + } + + public override float GetPropertyHeight(MaterialProperty prop, string label, MaterialEditor editor) + { + return 16f; + } + + public override void OnGUI(Rect position, MaterialProperty prop, string label, MaterialEditor editor) + { + position = EditorGUI.IndentedRect(position); + GUI.Label(position, text, EditorStyles.boldLabel); + } + } + + public class ThryHeaderLabel2Drawer : MaterialPropertyDrawer + { + public override float GetPropertyHeight(MaterialProperty prop, string label, MaterialEditor editor) + { + return 16f; + } + + public override void OnGUI(Rect position, MaterialProperty prop, string label, MaterialEditor editor) + { + position = EditorGUI.IndentedRect(position); + GUI.Label(position, label, EditorStyles.boldLabel); + } + } + + public class ReferencePropertyDecorator : MaterialPropertyDrawer + { + readonly string property; + + public ReferencePropertyDecorator(string property) + { + this.property = property; + } + + public override float GetPropertyHeight(MaterialProperty prop, string label, MaterialEditor editor) + { + if(DrawingData.lastInitiatedPart != null) + { + DrawingData.lastInitiatedPart.SetReferenceProperty(property); + } + return 0; + } + + public override void OnGUI(Rect position, MaterialProperty prop, string label, MaterialEditor editor){} + } + + public class ReferencePropertiesDecorator : MaterialPropertyDrawer + { + readonly string[] properties; + + public ReferencePropertiesDecorator(bool mainInit, params string[] properties) + { + this.properties = properties; + } + + public ReferencePropertiesDecorator(string property0, string property1, string property2, string property3, string property4, string property5) : this(true, property0, property1, property2, property3, property4, property5){} + public ReferencePropertiesDecorator(string property0, string property1, string property2, string property3, string property4) : this(true, property0, property1, property2, property3, property4){} + public ReferencePropertiesDecorator(string property0, string property1, string property2, string property3) : this(true, property0, property1, property2, property3){} + public ReferencePropertiesDecorator(string property0, string property1, string property2) : this(true, property0, property1, property2){} + public ReferencePropertiesDecorator(string property0, string property1) : this(true, property0, property1){} + public ReferencePropertiesDecorator(string property0) : this(true, property0){} + + public override float GetPropertyHeight(MaterialProperty prop, string label, MaterialEditor editor) + { + if (DrawingData.lastInitiatedPart != null) + { + DrawingData.lastInitiatedPart.SetReferenceProperties(properties); + } + return 0; + } + + public override void OnGUI(Rect position, MaterialProperty prop, string label, MaterialEditor editor) { } + } + + public class TooltipDecorator : MaterialPropertyDrawer + { + readonly string tooltip; + + public TooltipDecorator(string tooltip) + { + this.tooltip = tooltip; + } + + public override float GetPropertyHeight(MaterialProperty prop, string label, MaterialEditor editor) + { + if (DrawingData.lastInitiatedPart != null) + { + DrawingData.lastInitiatedPart.SetTooltip(tooltip); + } + return 0; + } + + public override void OnGUI(Rect position, MaterialProperty prop, string label, MaterialEditor editor) { } + } + + public enum ColorMask + { + None, + Alpha, + Blue, + BA, + Green, + GA, + GB, + GBA, + Red, + RA, + RB, + RBA, + RG, + RGA, + RGB, + RGBA + } + + // DX11 only blend operations + public enum BlendOp + { + Add, + Subtract, + ReverseSubtract, + Min, + Max, + LogicalClear, + LogicalSet, + LogicalCopy, + LogicalCopyInverted, + LogicalNoop, + LogicalInvert, + LogicalAnd, + LogicalNand, + LogicalOr, + LogicalNor, + LogicalXor, + LogicalEquivalence, + LogicalAndReverse, + LogicalAndInverted, + LogicalOrReverse, + LogicalOrInverted + } + + //Original Code from https://github.com/DarthShader/Kaj-Unity-Shaders + /**MIT License + + Copyright (c) 2020 DarthShader + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE.**/ + public class ThryShaderOptimizerLockButtonDrawer : MaterialPropertyDrawer + { + public override void OnGUI(Rect position, MaterialProperty shaderOptimizer, string label, MaterialEditor materialEditor) + { + // Theoretically this shouldn't ever happen since locked in materials have different shaders. + // But in a case where the material property says its locked in but the material really isn't, this + // will display and allow users to fix the property/lock in + ShaderEditor.active.isLockedMaterial = shaderOptimizer.floatValue == 1; + if (shaderOptimizer.hasMixedValue) + { + EditorGUI.BeginChangeCheck(); + GUILayout.Button("Lock in Optimized Shaders (" + materialEditor.targets.Length + " materials)"); + if (EditorGUI.EndChangeCheck()) + foreach (Material m in materialEditor.targets) + { + m.SetFloat(shaderOptimizer.name, 1); + MaterialProperty[] props = MaterialEditor.GetMaterialProperties(new UnityEngine.Object[] { m }); + if (!ShaderOptimizer.Lock(m, props)) // Error locking shader, revert property + m.SetFloat(shaderOptimizer.name, 0); + } + } + else + { + EditorGUI.BeginChangeCheck(); + if (shaderOptimizer.floatValue == 0) + { + if (materialEditor.targets.Length == 1) + GUILayout.Button("Lock In Optimized Shader"); + else GUILayout.Button("Lock in Optimized Shaders (" + materialEditor.targets.Length + " materials)"); + } + else GUILayout.Button("Unlock Shader"); + if (EditorGUI.EndChangeCheck()) + { + shaderOptimizer.floatValue = shaderOptimizer.floatValue == 1 ? 0 : 1; + if (shaderOptimizer.floatValue == 1) + { + foreach (Material m in materialEditor.targets) + { + MaterialProperty[] props = MaterialEditor.GetMaterialProperties(new UnityEngine.Object[] { m }); + if (!ShaderOptimizer.Lock(m, props)) + m.SetFloat(shaderOptimizer.name, 0); + } + } + else + { + foreach (Material m in materialEditor.targets) + if (!ShaderOptimizer.Unlock(m)) + m.SetFloat(shaderOptimizer.name, 1); + } + } + } + if (ShaderEditor.input.MouseClick) + { + if (GUILayoutUtility.GetLastRect().Contains(Event.current.mousePosition)) + { + foreach (Material m in materialEditor.targets) + { + ShaderOptimizer.Unlock(m); + m.SetFloat(shaderOptimizer.name, 0); + } + } + } + } + + public override float GetPropertyHeight(MaterialProperty prop, string label, MaterialEditor editor) + { + DrawingData.lastPropertyUsedCustomDrawer = true; + return -2; + } + } + + // Enum with normal editor width, rather than MaterialEditor Default GUI widths + // Would be nice if Decorators could access Drawers too so this wouldn't be necessary for something to trivial + // Adapted from Unity interal MaterialEnumDrawer https://github.com/Unity-Technologies/UnityCsReference/ + public class ThryWideEnumDrawer : MaterialPropertyDrawer + { + private readonly GUIContent[] names; + private readonly float[] values; + + // internal Unity AssemblyHelper can't be accessed + private Type[] TypesFromAssembly(Assembly a) + { + if (a == null) + return new Type[0]; + try + { + return a.GetTypes(); + } + catch (ReflectionTypeLoadException) + { + return new Type[0]; + } + } + public ThryWideEnumDrawer(string enumName,int j) + { + var types = AppDomain.CurrentDomain.GetAssemblies().SelectMany( + x => TypesFromAssembly(x)).ToArray(); + try + { + var enumType = types.FirstOrDefault( + x => x.IsEnum && (x.Name == enumName || x.FullName == enumName) + ); + var enumNames = Enum.GetNames(enumType); + names = new GUIContent[enumNames.Length]; + for (int i = 0; i < enumNames.Length; ++i) + names[i] = new GUIContent(enumNames[i]); + + var enumVals = Enum.GetValues(enumType); + values = new float[enumVals.Length]; + for (int i = 0; i < enumVals.Length; ++i) + values[i] = (int)enumVals.GetValue(i); + } + catch (Exception) + { + Debug.LogWarningFormat("Failed to create WideEnum, enum {0} not found", enumName); + throw; + } + + } + + public ThryWideEnumDrawer(string n1, float v1) : this(new[] { n1 }, new[] { v1 }) { } + public ThryWideEnumDrawer(string n1, float v1, string n2, float v2) : this(new[] { n1, n2 }, new[] { v1, v2 }) { } + public ThryWideEnumDrawer(string n1, float v1, string n2, float v2, string n3, float v3) : this(new[] { n1, n2, n3 }, new[] { v1, v2, v3 }) { } + public ThryWideEnumDrawer(string n1, float v1, string n2, float v2, string n3, float v3, string n4, float v4) : this(new[] { n1, n2, n3, n4 }, new[] { v1, v2, v3, v4 }) { } + public ThryWideEnumDrawer(string n1, float v1, string n2, float v2, string n3, float v3, string n4, float v4, string n5, float v5) : this(new[] { n1, n2, n3, n4, n5 }, new[] { v1, v2, v3, v4, v5 }) { } + public ThryWideEnumDrawer(string n1, float v1, string n2, float v2, string n3, float v3, string n4, float v4, string n5, float v5, string n6, float v6) : this(new[] { n1, n2, n3, n4, n5, n6 }, new[] { v1, v2, v3, v4, v5, v6 }) { } + public ThryWideEnumDrawer(string n1, float v1, string n2, float v2, string n3, float v3, string n4, float v4, string n5, float v5, string n6, float v6, string n7, float v7) : this(new[] { n1, n2, n3, n4, n5, n6, n7 }, new[] { v1, v2, v3, v4, v5, v6, v7 }) { } + public ThryWideEnumDrawer(string n1, float v1, string n2, float v2, string n3, float v3, string n4, float v4, string n5, float v5, string n6, float v6, string n7, float v7, string n8, float v8) : this(new[] { n1, n2, n3, n4, n5, n6, n7, n8}, new[] { v1, v2, v3, v4, v5, v6, v7, v8}) { } + public ThryWideEnumDrawer(string n1, float v1, string n2, float v2, string n3, float v3, string n4, float v4, string n5, float v5, string n6, float v6, string n7, float v7, string n8, float v8, string n9, float v9) : this(new[] { n1, n2, n3, n4, n5, n6, n7, n8, n9}, new[] { v1, v2, v3, v4, v5, v6, v7, v8, v9}) { } + public ThryWideEnumDrawer(string n1, float v1, string n2, float v2, string n3, float v3, string n4, float v4, string n5, float v5, string n6, float v6, string n7, float v7, string n8, float v8, string n9, float v9, string n10, float v10) : this(new[] { n1, n2, n3, n4, n5, n6, n7, n8, n9, n10 }, new[] { v1, v2, v3, v4, v5, v6, v7, v8, v9, v10 }) { } + public ThryWideEnumDrawer(string n1, float v1, string n2, float v2, string n3, float v3, string n4, float v4, string n5, float v5, string n6, float v6, string n7, float v7, string n8, float v8, string n9, float v9, string n10, float v10, string n11, float v11) : this(new[] { n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11 }, new[] { v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11 }) { } + public ThryWideEnumDrawer(string n1, float v1, string n2, float v2, string n3, float v3, string n4, float v4, string n5, float v5, string n6, float v6, string n7, float v7, string n8, float v8, string n9, float v9, string n10, float v10, string n11, float v11, string n12, float v12) : this(new[] { n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12 }, new[] { v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12 }) { } + public ThryWideEnumDrawer(string n1, float v1, string n2, float v2, string n3, float v3, string n4, float v4, string n5, float v5, string n6, float v6, string n7, float v7, string n8, float v8, string n9, float v9, string n10, float v10, string n11, float v11, string n12, float v12, string n13, float v13) : this(new[] { n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13 }, new[] { v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13 }) { } + public ThryWideEnumDrawer(string n1, float v1, string n2, float v2, string n3, float v3, string n4, float v4, string n5, float v5, string n6, float v6, string n7, float v7, string n8, float v8, string n9, float v9, string n10, float v10, string n11, float v11, string n12, float v12, string n13, float v13, string n14, float v14) : this(new[] { n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14 }, new[] { v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14 }) { } + public ThryWideEnumDrawer(string n1, float v1, string n2, float v2, string n3, float v3, string n4, float v4, string n5, float v5, string n6, float v6, string n7, float v7, string n8, float v8, string n9, float v9, string n10, float v10, string n11, float v11, string n12, float v12, string n13, float v13, string n14, float v14, string n15, float v15) : this(new[] { n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14, n15 }, new[] { v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15 }) { } + public ThryWideEnumDrawer(string n1, float v1, string n2, float v2, string n3, float v3, string n4, float v4, string n5, float v5, string n6, float v6, string n7, float v7, string n8, float v8, string n9, float v9, string n10, float v10, string n11, float v11, string n12, float v12, string n13, float v13, string n14, float v14, string n15, float v15, string n16, float v16) : this(new[] { n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14, n15, n16 }, new[] { v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16 }) { } + public ThryWideEnumDrawer(string n1, float v1, string n2, float v2, string n3, float v3, string n4, float v4, string n5, float v5, string n6, float v6, string n7, float v7, string n8, float v8, string n9, float v9, string n10, float v10, string n11, float v11, string n12, float v12, string n13, float v13, string n14, float v14, string n15, float v15, string n16, float v16, string n17, float v17) : this(new[] { n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14, n15, n16, n17 }, new[] { v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17 }) { } + public ThryWideEnumDrawer(string n1, float v1, string n2, float v2, string n3, float v3, string n4, float v4, string n5, float v5, string n6, float v6, string n7, float v7, string n8, float v8, string n9, float v9, string n10, float v10, string n11, float v11, string n12, float v12, string n13, float v13, string n14, float v14, string n15, float v15, string n16, float v16, string n17, float v17, string n18, float v18) : this(new[] { n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14, n15, n16, n17, n18 }, new[] { v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18 }) { } + public ThryWideEnumDrawer(string n1, float v1, string n2, float v2, string n3, float v3, string n4, float v4, string n5, float v5, string n6, float v6, string n7, float v7, string n8, float v8, string n9, float v9, string n10, float v10, string n11, float v11, string n12, float v12, string n13, float v13, string n14, float v14, string n15, float v15, string n16, float v16, string n17, float v17, string n18, float v18, string n19, float v19) : this(new[] { n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14, n15, n16, n17, n18, n19 }, new[] { v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19 }) { } + public ThryWideEnumDrawer(string n1, float v1, string n2, float v2, string n3, float v3, string n4, float v4, string n5, float v5, string n6, float v6, string n7, float v7, string n8, float v8, string n9, float v9, string n10, float v10, string n11, float v11, string n12, float v12, string n13, float v13, string n14, float v14, string n15, float v15, string n16, float v16, string n17, float v17, string n18, float v18, string n19, float v19, string n20, float v20) : this(new[] { n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14, n15, n16, n17, n18, n19, n20 }, new[] { v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20 }) { } + public ThryWideEnumDrawer(string[] enumNames, float[] vals) + { + names = new GUIContent[enumNames.Length]; + for (int i = 0; i < enumNames.Length; ++i) + names[i] = new GUIContent(enumNames[i]); + + values = new float[vals.Length]; + for (int i = 0; i < vals.Length; ++i) + values[i] = vals[i]; + } + + public override void OnGUI(Rect position, MaterialProperty prop, GUIContent label, MaterialEditor editor) + { + EditorGUI.showMixedValue = prop.hasMixedValue; + EditorGUI.BeginChangeCheck(); + var value = prop.floatValue; + int selectedIndex = -1; + for (int i = 0; i < values.Length; i++) + if (values[i] == value) + { + selectedIndex = i; + break; + } + + float labelWidth = EditorGUIUtility.labelWidth; + EditorGUIUtility.labelWidth = 0f; + var selIndex = EditorGUI.Popup(position, label, selectedIndex, names); + EditorGUI.showMixedValue = false; + if (EditorGUI.EndChangeCheck()) + prop.floatValue = values[selIndex]; + EditorGUIUtility.labelWidth = labelWidth; + } + + public override float GetPropertyHeight(MaterialProperty prop, string label, MaterialEditor editor) + { + DrawingData.lastPropertyUsedCustomDrawer = true; + return base.GetPropertyHeight(prop, label, editor); + } + } +}
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Drawers.cs.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Drawers.cs.meta new file mode 100644 index 00000000..b1a60c1c --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Drawers.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f835e027ceb24bf4b8607004ce304fa7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/EditorChanger.cs b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/EditorChanger.cs new file mode 100644 index 00000000..aef84e6d --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/EditorChanger.cs @@ -0,0 +1,175 @@ +// Material/Shader Inspector for Unity 2017/2018 +// Copyright (C) 2019 Thryrallo + +using System.Collections; +using System.Collections.Generic; +using System.Text.RegularExpressions; +using UnityEditor; +using UnityEngine; + +namespace Thry +{ + public class EditorChanger : EditorWindow + { + // Add menu named "My Window" to the Window menu + [MenuItem("Thry/Editor Tools/Use Thry Editor for other shaders")] + static void Init() + { + // Get existing open window or if none, make a new one: + EditorChanger window = (EditorChanger)EditorWindow.GetWindow(typeof(EditorChanger)); + window.Show(); + } + + Vector2 scrollPos; + + bool[] setEditor; + bool[] wasEditor; + + List<string> paths = null; + List<Shader> shaders = null; + + void OnGUI() + { + scrollPos = GUILayout.BeginScrollView(scrollPos); + + bool init = false; + + if (paths == null) + { + paths = new List<string>(); + shaders = new List<Shader>(); + string[] shaderGuids = AssetDatabase.FindAssets("t:shader"); + + for (int sguid = 0; sguid < shaderGuids.Length; sguid++) + { + string path = AssetDatabase.GUIDToAssetPath(shaderGuids[sguid]); + Shader shader = AssetDatabase.LoadAssetAtPath<Shader>(path); + paths.Add(path); + shaders.Add(shader); + } + + if (setEditor == null || setEditor.Length != shaderGuids.Length) + { + setEditor = new bool[paths.Count]; + wasEditor = new bool[paths.Count]; + } + init = true; + } + + for (int p = 0; p < paths.Count; p++) + { + if (init) + { + EditorUtility.DisplayProgressBar("Load all shaders...", "", (float)p / paths.Count); + setEditor[p] = ShaderHelper.IsShaderUsingShaderEditor(shaders[p]); + wasEditor[p] = setEditor[p]; + } + setEditor[p] = GUILayout.Toggle(setEditor[p], shaders[p].name); + } + if (init) EditorUtility.ClearProgressBar(); + + GUILayout.EndScrollView(); + + if (GUILayout.Button("Apply")) + { + for (int i = 0; i < paths.Count; i++) + { + if (wasEditor[i] != setEditor[i]) + { + string path = paths[i]; + if (setEditor[i]) addShaderEditor(path); + else removeShaderEditor(path); + } + + wasEditor[i] = setEditor[i]; + } + AssetDatabase.Refresh(); + ShaderEditor.Repaint(); + } + } + + private void addShaderEditor(string path) + { + replaceEditorInShader(path, "ShaderEditor"); + AddThryProperty(path); + } + + public static void AddThryProperty(Shader shader) + { + string path = AssetDatabase.GetAssetPath(shader); + AddThryProperty(path); + } + + private static void AddThryProperty(string path) + { + addProperty(path, "[HideInInspector] shader_is_using_thry_editor(\"\", Float)", "0"); + } + + private void removeShaderEditor(string path) + { + revertEditor(path); + RemoveThryProperty(path); + } + + private void RemoveThryProperty(string path) + { + removeProperty(path, "[HideInInspector] shader_is_using_thry_editor(\"\", Float)", "0"); + } + + private static void addProperty(string path, string property, string value) + { + string shaderCode = FileHelper.ReadFileIntoString(path); + string pattern = @"Properties.*\n?\s*{"; + RegexOptions options = RegexOptions.Multiline; + shaderCode = Regex.Replace(shaderCode, pattern, "Properties \r\n {" + " \r\n " + property + "=" + value, options); + + FileHelper.WriteStringToFile(shaderCode, path); + } + + private void removeProperty(string path, string property, string value) + { + string shaderCode = FileHelper.ReadFileIntoString(path); + string pattern = @"\r?\n.*" + Regex.Escape(property) + " ?= ?" + value; + RegexOptions options = RegexOptions.Multiline; + + shaderCode = Regex.Replace(shaderCode, pattern, "", options); + + FileHelper.WriteStringToFile(shaderCode, path); + } + + private void revertEditor(string path) + { + string shaderCode = FileHelper.ReadFileIntoString(path); + string pattern = @"//originalEditor.*\n"; + Match m = Regex.Match(shaderCode, pattern); + if (m.Success) + { + string orignialEditor = m.Value.Replace("//originalEditor", ""); + pattern = @"//originalEditor.*\n.*\n"; + shaderCode = Regex.Replace(shaderCode, pattern, orignialEditor); + FileHelper.WriteStringToFile(shaderCode, path); + } + } + + private void replaceEditorInShader(string path, string newEditor) + { + string shaderCode = FileHelper.ReadFileIntoString(path); + string pattern = @"CustomEditor ?.*\n"; + Match m = Regex.Match(shaderCode, pattern); + if (m.Success) + { + string oldEditor = "//originalEditor" + m.Value; + shaderCode = Regex.Replace(shaderCode, pattern, oldEditor + "CustomEditor \"" + newEditor + "\"\r\n"); + } + else + { + pattern = @"SubShader.*\r?\n?\s*{"; + RegexOptions options = RegexOptions.Multiline; + shaderCode = Regex.Replace(shaderCode, pattern, "CustomEditor \"" + newEditor + "\" \r\n SubShader \r\n {", options); + } + + FileHelper.WriteStringToFile(shaderCode, path); + } + + } +}
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/EditorChanger.cs.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/EditorChanger.cs.meta new file mode 100644 index 00000000..693a1370 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/EditorChanger.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2512996118f494a44972192a9fafb1a3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/EditorStructs.cs b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/EditorStructs.cs new file mode 100644 index 00000000..9a176edb --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/EditorStructs.cs @@ -0,0 +1,664 @@ +using System.Collections; +using System.Collections.Generic; +using System.Text.RegularExpressions; +using UnityEditor; +using UnityEngine; + +namespace Thry +{ + public class CRect + { + public Rect r; + public CRect(Rect r) + { + this.r = r; + } + } + + public class InputEvent + { + public bool HadMouseDownRepaint; + public bool HadMouseDown; + public bool MouseClick; + public bool MouseLeftClick; + + public bool is_alt_down; + + public bool is_drag_drop_event; + public bool is_drop_event; + + public Vector2 mouse_position; + + public void Use() + { + HadMouseDownRepaint = false; + HadMouseDown = false; + MouseClick = false; + MouseLeftClick = false; + } + } + + public abstract class ShaderPart + { + public ShaderEditor shaderEditor; + + public int xOffset = 0; + public GUIContent content; + public MaterialProperty materialProperty; + public System.Object property_data = null; + public PropertyOptions options; + public bool reference_properties_exist = false; + public bool reference_property_exists = false; + public bool is_hidden = false; + public bool is_animated = false; + public bool is_animatable = false; + public bool is_renaming = false; + public bool exempt_from_locked_disabling = false; + + public BetterTooltips.Tooltip tooltip; + + public bool has_searchedFor = true; //used for property search + + public ShaderPart(ShaderEditor shaderEditor, MaterialProperty prop, int xOffset, string displayName, PropertyOptions options) + { + this.shaderEditor = shaderEditor; + this.materialProperty = prop; + this.xOffset = xOffset; + this.options = options; + this.content = new GUIContent(displayName); + this.tooltip = new BetterTooltips.Tooltip(options.tooltip); + this.reference_properties_exist = options.reference_properties != null && options.reference_properties.Length > 0; + this.reference_property_exists = options.reference_property != null; + + if (prop == null) + return; + bool propHasDuplicate = ShaderEditor.active.GetMaterialProperty(prop.name + "_" + ShaderEditor.active.animPropertySuffix) != null; + string tag = null; + //If prop is og, but is duplicated (locked) dont have it animateable + if (propHasDuplicate) + { + this.is_animatable = false; + } + else + { + //if prop is a duplicated or renamed get og property to check for animted status + if (prop.name.Contains(ShaderEditor.active.animPropertySuffix)) + { + string ogName = prop.name.Substring(0, prop.name.Length - ShaderEditor.active.animPropertySuffix.Length - 1); + tag = ShaderOptimizer.GetAnimatedTag(materialProperty.targets[0] as Material, ogName); + } + else + { + tag = ShaderOptimizer.GetAnimatedTag(materialProperty); + } + this.is_animatable = true; + } + + this.is_animated = is_animatable && tag != ""; + this.is_renaming = is_animatable && tag == "2"; + } + + public void SetReferenceProperty(string s) + { + options.reference_property = s; + this.reference_property_exists = options.reference_property != null; + } + + public void SetReferenceProperties(string[] properties) + { + options.reference_properties = properties; + this.reference_properties_exist = options.reference_properties != null && options.reference_properties.Length > 0; + } + + public void SetTooltip(string tooltip) + { + this.tooltip.SetText(tooltip); + } + + public abstract void DrawInternal(GUIContent content, CRect rect = null, bool useEditorIndent = false, bool isInHeader = false); + public abstract void CopyFromMaterial(Material m); + public abstract void CopyToMaterial(Material m); + + public abstract void TransferFromMaterialAndGroup(Material m, ShaderPart g); + + public void Draw(CRect rect = null, GUIContent content = null, bool useEditorIndent = false, bool isInHeader = false) + { + if (ShaderEditor.active.show_search_bar && !has_searchedFor) + return; + if (HeaderHider.IsHeaderHidden(this)) + return; + bool addDisableGroup = options.condition_enable != null && DrawingData.is_enabled; + if (addDisableGroup) + { + DrawingData.is_enabled = options.condition_enable.Test(); + EditorGUI.BeginDisabledGroup(!DrawingData.is_enabled); + } + if (options.condition_show.Test()) + { + PerformDraw(content, rect, useEditorIndent, isInHeader); + } + if (addDisableGroup) + { + DrawingData.is_enabled = true; + EditorGUI.EndDisabledGroup(); + } + } + + public void HandleKajAnimatable() + { + Rect lastRect = GUILayoutUtility.GetLastRect(); + if (ShaderEditor.active.isLockedMaterial == false && Event.current.isMouse && Event.current.button == 1 && lastRect.Contains(Event.current.mousePosition)) + { + if (Event.current.control && Config.Singleton.renameAnimatedProps) + { + if (!is_animated) + { + is_animated = true; + } + + if (is_animated) + { + is_renaming = !is_renaming; + } + } + else + { + is_animated = !is_animated; + } + ShaderOptimizer.SetAnimatedTag(materialProperty, is_animated ? (is_renaming ? "2" : "1") : ""); + ShaderEditor.Repaint(); + } + if (is_animated) + { + Rect r = new Rect(8, lastRect.y + 2, 16, 16); + GUI.DrawTexture(r, is_renaming ? Styles.texture_animated_renamed : Styles.texture_animated, ScaleMode.StretchToFill, true); + } + } + + private void PerformDraw(GUIContent content, CRect rect, bool useEditorIndent, bool isInHeader = false) + { + if (content == null) + content = this.content; + EditorGUI.BeginChangeCheck(); + DrawInternal(content, rect, useEditorIndent, isInHeader); + + DrawingData.tooltipCheckRect = DrawingData.lastGuiObjectRect; + DrawingData.tooltipCheckRect.width = EditorGUIUtility.labelWidth; + if (this is TextureProperty == false) tooltip.ConditionalDraw(DrawingData.tooltipCheckRect); + + if (EditorGUI.EndChangeCheck()) + { + if (options.on_value_actions != null) + { + foreach (PropertyValueAction action in options.on_value_actions) + { + action.Execute(materialProperty); + } + } + } + Helper.testAltClick(DrawingData.lastGuiObjectRect, this); + } + } + + public class ShaderGroup : ShaderPart + { + public List<ShaderPart> parts = new List<ShaderPart>(); + + public ShaderGroup(ShaderEditor shaderEditor) : base(shaderEditor, null, 0, "", new PropertyOptions()) + { + + } + + public ShaderGroup(ShaderEditor shaderEditor, PropertyOptions options) : base(shaderEditor, null, 0, "", new PropertyOptions()) + { + this.options = options; + } + + public ShaderGroup(ShaderEditor shaderEditor, MaterialProperty prop, MaterialEditor materialEditor, string displayName, int xOffset, PropertyOptions options) : base(shaderEditor, prop, xOffset, displayName, options) + { + + } + + public void addPart(ShaderPart part) + { + parts.Add(part); + } + + public override void CopyFromMaterial(Material m) + { + if (options.reference_property != null) + ShaderEditor.active.propertyDictionary[options.reference_property].CopyFromMaterial(m); + foreach (ShaderPart p in parts) + p.CopyFromMaterial(m); + } + + public override void CopyToMaterial(Material m) + { + if (options.reference_property != null) + ShaderEditor.active.propertyDictionary[options.reference_property].CopyToMaterial(m); + foreach (ShaderPart p in parts) + p.CopyToMaterial(m); + } + + public override void DrawInternal(GUIContent content, CRect rect = null, bool useEditorIndent = false, bool isInHeader = false) + { + foreach (ShaderPart part in parts) + { + part.Draw(); + } + } + + public override void TransferFromMaterialAndGroup(Material m, ShaderPart p) + { + if (p is ShaderGroup == false) return; + ShaderGroup group = p as ShaderGroup; + if (options.reference_property != null && group.options.reference_property != null) + ShaderEditor.active.propertyDictionary[options.reference_property].TransferFromMaterialAndGroup(m, group.shaderEditor.propertyDictionary[group.options.reference_property]); + for(int i=0;i<group.parts.Count && i < parts.Count; i++) + { + parts[i].TransferFromMaterialAndGroup(m, group.parts[i]); + } + } + } + + public class ShaderHeader : ShaderGroup + { + private ThryHeaderDrawer headerDrawer; + private bool isLegacy; + + public ShaderHeader(ShaderEditor shaderEditor) : base(shaderEditor) + { + this.headerDrawer = new ThryHeaderDrawer(); + } + + public ShaderHeader(ShaderEditor shaderEditor, MaterialProperty prop, MaterialEditor materialEditor, string displayName, int xOffset, PropertyOptions options) : base(shaderEditor, prop, materialEditor, displayName, xOffset, options) + { + DrawingData.ResetLastDrawerData(); + materialEditor.GetPropertyHeight(prop); + if(DrawingData.lastPropertyDrawerType == DrawerType.Header) + { + //new header setup with drawer + this.headerDrawer = DrawingData.lastPropertyDrawer as ThryHeaderDrawer; + options.is_hideable |= headerDrawer.isHideable; + } + else + { + //legacy setup with HideInInspector + this.headerDrawer = new ThryHeaderDrawer(); + isLegacy = true; + } + this.headerDrawer.xOffset = xOffset; + } + + public string GetEndProperty() + { + return headerDrawer.GetEndProperty(); + } + + public override void DrawInternal(GUIContent content, CRect rect = null, bool useEditorIndent = false, bool isInHeader = false) + { + ShaderEditor.active.currentProperty = this; + EditorGUI.BeginChangeCheck(); + Rect position = GUILayoutUtility.GetRect(content, Styles.dropDownHeader); + if (isLegacy) headerDrawer.OnGUI(position, this.materialProperty, content, ShaderEditor.active.editor); + else ShaderEditor.active.editor.ShaderProperty(position, this.materialProperty, content); + Rect headerRect = DrawingData.lastGuiObjectHeaderRect; + if (this.headerDrawer.is_expanded) + { + EditorGUILayout.Space(); + foreach (ShaderPart part in parts) + { + part.Draw(); + } + EditorGUILayout.Space(); + } + if (EditorGUI.EndChangeCheck()) + HandleLinkedMaterials(); + DrawingData.lastGuiObjectHeaderRect = headerRect; + DrawingData.lastGuiObjectRect = headerRect; + } + + private void HandleLinkedMaterials() + { + List<Material> linked_materials = MaterialLinker.GetLinked(materialProperty); + if (linked_materials != null) + foreach (Material m in linked_materials) + this.CopyToMaterial(m); + } + } + + public class ShaderProperty : ShaderPart + { + public bool drawDefault; + + public float setFloat; + public bool updateFloat; + + public bool forceOneLine = false; + + private int property_index = 0; + + public string keyword; + + public ShaderProperty(ShaderEditor shaderEditor, MaterialProperty materialProperty, string displayName, int xOffset, PropertyOptions options, bool forceOneLine) : base(shaderEditor, materialProperty, xOffset, displayName, options) + { + drawDefault = false; + this.forceOneLine = forceOneLine; + + property_index = System.Array.IndexOf(ShaderEditor.active.properties, materialProperty); + } + + public override void CopyFromMaterial(Material m) + { + MaterialHelper.CopyPropertyValueFromMaterial(materialProperty, m); + if (keyword != null) SetKeyword(ShaderEditor.active.materials, m.GetFloat(materialProperty.name)==1); + if (is_animatable) + { + ShaderOptimizer.CopyAnimatedTagFromMaterial(m, materialProperty); + } + this.is_animated = is_animatable && ShaderOptimizer.GetAnimatedTag(materialProperty) != ""; + this.is_renaming = is_animatable && ShaderOptimizer.GetAnimatedTag(materialProperty) == "2"; + } + + public override void CopyToMaterial(Material m) + { + MaterialHelper.CopyPropertyValueToMaterial(materialProperty, m); + if (keyword != null) SetKeyword(m, materialProperty.floatValue == 1); + if (is_animatable) + ShaderOptimizer.CopyAnimatedTagToMaterials(new Material[] { m }, materialProperty); + } + + private void SetKeyword(Material[] materials, bool enabled) + { + if (enabled) foreach (Material m in materials) m.EnableKeyword(keyword); + else foreach (Material m in materials) m.DisableKeyword(keyword); + } + + private void SetKeyword(Material m, bool enabled) + { + if (enabled) m.EnableKeyword(keyword); + else m.DisableKeyword(keyword); + } + + public override void DrawInternal(GUIContent content, CRect rect = null, bool useEditorIndent = false, bool isInHeader = false) + { + PreDraw(); + ShaderEditor.active.currentProperty = this; + this.materialProperty = ShaderEditor.active.properties[property_index]; + if (ShaderEditor.active.isLockedMaterial) + EditorGUI.BeginDisabledGroup(!(is_animatable && (is_animated || is_renaming)) && !exempt_from_locked_disabling); + int oldIndentLevel = EditorGUI.indentLevel; + if (!useEditorIndent) + EditorGUI.indentLevel = xOffset + 1; + + if (drawDefault) + DrawDefault(); + else + { + //ShaderEditor.active.gui.BeginAnimatedCheck(materialProperty); + if (forceOneLine) + ShaderEditor.active.editor.ShaderProperty(GUILayoutUtility.GetRect(content, Styles.vectorPropertyStyle), this.materialProperty, content); + else if (rect != null) + ShaderEditor.active.editor.ShaderProperty(rect.r, this.materialProperty, content); + else + ShaderEditor.active.editor.ShaderProperty(this.materialProperty, content); + //ShaderEditor.active.gui.EndAnimatedCheck(); + } + + EditorGUI.indentLevel = oldIndentLevel; + if (rect == null) DrawingData.lastGuiObjectRect = GUILayoutUtility.GetLastRect(); + else DrawingData.lastGuiObjectRect = rect.r; + if (this is TextureProperty == false && is_animatable && isInHeader == false) + HandleKajAnimatable(); + if (ShaderEditor.active.isLockedMaterial) + EditorGUI.EndDisabledGroup(); + } + + public virtual void PreDraw() { } + + public virtual void DrawDefault() { } + + public override void TransferFromMaterialAndGroup(Material m, ShaderPart p) + { + if (materialProperty.type != p.materialProperty.type) return; + MaterialHelper.CopyMaterialValueFromProperty(materialProperty, p.materialProperty); + if (keyword != null) SetKeyword(ShaderEditor.active.materials, m.GetFloat(p.materialProperty.name) == 1); + if (is_animatable && p.is_animatable) + ShaderOptimizer.CopyAnimatedTagFromProperty(p.materialProperty, materialProperty); + this.is_animated = is_animatable && ShaderOptimizer.GetAnimatedTag(materialProperty) != ""; + this.is_renaming = is_animatable && ShaderOptimizer.GetAnimatedTag(materialProperty) == "2"; + } + } + + public class TextureProperty : ShaderProperty + { + public bool showFoldoutProperties = false; + public bool hasFoldoutProperties = false; + public bool hasScaleOffset = false; + + public TextureProperty(ShaderEditor shaderEditor, MaterialProperty materialProperty, string displayName, int xOffset, PropertyOptions options, bool hasScaleOffset, bool forceThryUI) : base(shaderEditor, materialProperty, displayName, xOffset, options, false) + { + drawDefault = forceThryUI; + this.hasScaleOffset = hasScaleOffset; + this.hasFoldoutProperties = hasScaleOffset || reference_properties_exist; + } + + public override void PreDraw() + { + DrawingData.currentTexProperty = this; + } + + public override void DrawDefault() + { + Rect pos = GUILayoutUtility.GetRect(content, Styles.vectorPropertyStyle); + GuiHelper.drawConfigTextureProperty(pos, materialProperty, content, ShaderEditor.active.editor, hasFoldoutProperties); + DrawingData.lastGuiObjectRect = pos; + } + + public override void CopyFromMaterial(Material m) + { + MaterialHelper.CopyPropertyValueFromMaterial(materialProperty, m); + CopyReferencePropertiesFromMaterial(m); + } + + public override void CopyToMaterial(Material m) + { + MaterialHelper.CopyPropertyValueToMaterial(materialProperty, m); + CopyReferencePropertiesToMaterial(m); + } + + public override void TransferFromMaterialAndGroup(Material m, ShaderPart p) + { + if (materialProperty.type != p.materialProperty.type) return; + MaterialHelper.CopyMaterialValueFromProperty(materialProperty, p.materialProperty); + TransferReferencePropertiesToMaterial(m, p); + } + private void TransferReferencePropertiesToMaterial(Material target, ShaderPart p) + { + if (p.options.reference_properties == null || this.options.reference_properties == null) return; + for (int i = 0; i < p.options.reference_properties.Length && i < options.reference_properties.Length; i++) + { + if (ShaderEditor.active.propertyDictionary.ContainsKey(this.options.reference_properties[i]) == false) continue; + + ShaderProperty targetP = ShaderEditor.active.propertyDictionary[this.options.reference_properties[i]]; + ShaderProperty sourceP = p.shaderEditor.propertyDictionary[p.options.reference_properties[i]]; + MaterialHelper.CopyMaterialValueFromProperty(targetP.materialProperty, sourceP.materialProperty); + } + } + + private void CopyReferencePropertiesToMaterial(Material target) + { + if (options.reference_properties != null) + foreach (string r_property in options.reference_properties) + { + ShaderProperty property = ShaderEditor.active.propertyDictionary[r_property]; + MaterialHelper.CopyPropertyValueToMaterial(property.materialProperty, target); + } + } + + private void CopyReferencePropertiesFromMaterial(Material source) + { + if (options.reference_properties != null) + foreach (string r_property in options.reference_properties) + { + ShaderProperty property = ShaderEditor.active.propertyDictionary[r_property]; + MaterialHelper.CopyPropertyValueFromMaterial(property.materialProperty, source); + } + } + } + + public class ShaderHeaderProperty : ShaderPart + { + public ShaderHeaderProperty(ShaderEditor shaderEditor, MaterialProperty materialProperty, string displayName, int xOffset, PropertyOptions options, bool forceOneLine) : base(shaderEditor, materialProperty, xOffset, displayName, options) + { + } + + public override void DrawInternal(GUIContent content, CRect rect = null, bool useEditorIndent = false, bool isInHeader = false) + { + if (rect == null) + { + if (options.texture != null && options.texture.name != null) + { + //is texutre draw + content = new GUIContent(options.texture.loaded_texture, content.tooltip); + int height = options.texture.height; + int width = (int)((float)options.texture.loaded_texture.width / options.texture.loaded_texture.height * height); + Rect control = EditorGUILayout.GetControlRect(false, height-18); + Rect r = new Rect((control.width-width)/2,control.y,width, height); + GUI.DrawTexture(r, options.texture.loaded_texture); + } + } + else + { + //is text draw + Rect headerrect = new Rect(0, rect.r.y, rect.r.width, 18); + EditorGUI.LabelField(headerrect, "<size=16>" + this.content.text + "</size>", Styles.masterLabel); + DrawingData.lastGuiObjectRect = headerrect; + } + } + + public override void CopyFromMaterial(Material m) + { + throw new System.NotImplementedException(); + } + + public override void CopyToMaterial(Material m) + { + throw new System.NotImplementedException(); + } + + public override void TransferFromMaterialAndGroup(Material m, ShaderPart p) + { + throw new System.NotImplementedException(); + } + } + + public class InstancingProperty : ShaderProperty + { + public InstancingProperty(ShaderEditor shaderEditor, MaterialProperty materialProperty, string displayName, int xOffset, PropertyOptions options, bool forceOneLine) : base(shaderEditor, materialProperty, displayName, xOffset, options, forceOneLine) + { + drawDefault = true; + } + + public override void DrawDefault() + { + ShaderEditor.active.editor.EnableInstancingField(); + } + } + public class GIProperty : ShaderProperty + { + public GIProperty(ShaderEditor shaderEditor, MaterialProperty materialProperty, string displayName, int xOffset, PropertyOptions options, bool forceOneLine) : base(shaderEditor, materialProperty, displayName, xOffset, options, forceOneLine) + { + drawDefault = true; + } + + public override void DrawDefault() + { + LightmapEmissionFlagsProperty(xOffset, false); + } + + public static readonly GUIContent lightmapEmissiveLabel = EditorGUIUtility.TrTextContent("Global Illumination", "Controls if the emission is baked or realtime.\n\nBaked only has effect in scenes where baked global illumination is enabled.\n\nRealtime uses realtime global illumination if enabled in the scene. Otherwise the emission won't light up other objects."); + public static GUIContent[] lightmapEmissiveStrings = { EditorGUIUtility.TrTextContent("Realtime"), EditorGUIUtility.TrTextContent("Baked"), EditorGUIUtility.TrTextContent("None") }; + public static int[] lightmapEmissiveValues = { (int)MaterialGlobalIlluminationFlags.RealtimeEmissive, (int)MaterialGlobalIlluminationFlags.BakedEmissive, (int)MaterialGlobalIlluminationFlags.None }; + + public static void FixupEmissiveFlag(Material mat) + { + if (mat == null) + throw new System.ArgumentNullException("mat"); + + mat.globalIlluminationFlags = FixupEmissiveFlag(mat.GetColor("_EmissionColor"), mat.globalIlluminationFlags); + } + + public static MaterialGlobalIlluminationFlags FixupEmissiveFlag(Color col, MaterialGlobalIlluminationFlags flags) + { + if ((flags & MaterialGlobalIlluminationFlags.BakedEmissive) != 0 && col.maxColorComponent == 0.0f) // flag black baked + flags |= MaterialGlobalIlluminationFlags.EmissiveIsBlack; + else if (flags != MaterialGlobalIlluminationFlags.EmissiveIsBlack) // clear baked flag on everything else, unless it's explicity disabled + flags &= MaterialGlobalIlluminationFlags.AnyEmissive; + return flags; + } + + public void LightmapEmissionFlagsProperty(int indent, bool enabled) + { + LightmapEmissionFlagsProperty(indent, enabled, false); + } + + public void LightmapEmissionFlagsProperty(int indent, bool enabled, bool ignoreEmissionColor) + { + // Calculate isMixed + MaterialGlobalIlluminationFlags any_em = MaterialGlobalIlluminationFlags.AnyEmissive; + MaterialGlobalIlluminationFlags giFlags = ShaderEditor.active.materials[0].globalIlluminationFlags & any_em; + bool isMixed = false; + for (int i = 1; i < ShaderEditor.active.materials.Length; i++) + { + if((ShaderEditor.active.materials[i].globalIlluminationFlags & any_em) != giFlags) + { + isMixed = true; + break; + } + } + + EditorGUI.BeginChangeCheck(); + + // Show popup + EditorGUI.showMixedValue = isMixed; + giFlags = (MaterialGlobalIlluminationFlags)EditorGUILayout.IntPopup(lightmapEmissiveLabel, (int)giFlags, lightmapEmissiveStrings, lightmapEmissiveValues); + EditorGUI.showMixedValue = false; + + // Apply flags. But only the part that this tool modifies (RealtimeEmissive, BakedEmissive, None) + bool applyFlags = EditorGUI.EndChangeCheck(); + foreach (Material mat in ShaderEditor.active.materials) + { + mat.globalIlluminationFlags = applyFlags ? giFlags : mat.globalIlluminationFlags; + if (!ignoreEmissionColor) + { + FixupEmissiveFlag(mat); + } + } + } + } + public class DSGIProperty : ShaderProperty + { + public DSGIProperty(ShaderEditor shaderEditor, MaterialProperty materialProperty, string displayName, int xOffset, PropertyOptions options, bool forceOneLine) : base(shaderEditor, materialProperty, displayName, xOffset, options, forceOneLine) + { + drawDefault = true; + } + + public override void DrawDefault() + { + ShaderEditor.active.editor.DoubleSidedGIField(); + } + } + public class LocaleProperty : ShaderProperty + { + public LocaleProperty(ShaderEditor shaderEditor, MaterialProperty materialProperty, string displayName, int xOffset, PropertyOptions options, bool forceOneLine) : base(shaderEditor, materialProperty, displayName, xOffset, options, forceOneLine) + { + drawDefault = true; + } + + public override void DrawDefault() + { + GuiHelper.DrawLocaleSelection(this.content, ShaderEditor.active.gui.locale.available_locales, ShaderEditor.active.gui.locale.selected_locale_index); + } + } +}
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/EditorStructs.cs.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/EditorStructs.cs.meta new file mode 100644 index 00000000..9a8cc3c7 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/EditorStructs.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 02b9c440c777db4458c2284c28736ca0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/GUIHelper.cs b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/GUIHelper.cs new file mode 100644 index 00000000..2c130956 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/GUIHelper.cs @@ -0,0 +1,1017 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Threading.Tasks; +using UnityEditor; +using UnityEngine; + +namespace Thry +{ + public class GuiHelper + { + + public static void drawConfigTextureProperty(Rect position, MaterialProperty prop, GUIContent label, MaterialEditor editor, bool hasFoldoutProperties, bool skip_drag_and_drop_handling = false) + { + switch (Config.Singleton.default_texture_type) + { + case TextureDisplayType.small: + drawSmallTextureProperty(position, prop, label, editor, hasFoldoutProperties); + break; + case TextureDisplayType.big: + if (DrawingData.currentTexProperty.reference_properties_exist || DrawingData.currentTexProperty.reference_property_exists) + drawStylizedBigTextureProperty(position, prop, label, editor, hasFoldoutProperties); + else + drawBigTextureProperty(position, prop, label, editor, DrawingData.currentTexProperty.hasScaleOffset); + break; + + case TextureDisplayType.stylized_big: + drawStylizedBigTextureProperty(position, prop, label, editor, hasFoldoutProperties, skip_drag_and_drop_handling); + break; + } + } + + public static void drawSmallTextureProperty(Rect position, MaterialProperty prop, GUIContent label, MaterialEditor editor, bool hasFoldoutProperties) + { + Rect thumbnailPos = position; + thumbnailPos.x += hasFoldoutProperties ? 20 : 0; + editor.TexturePropertyMiniThumbnail(thumbnailPos, prop, label.text, label.tooltip); + DrawingData.currentTexProperty.tooltip.ConditionalDraw(thumbnailPos); + if (DrawingData.currentTexProperty.reference_property_exists) + { + ShaderProperty property = ShaderEditor.active.propertyDictionary[DrawingData.currentTexProperty.options.reference_property]; + Rect r = position; + r.x += EditorGUIUtility.labelWidth - CurrentIndentWidth(); + r.width -= EditorGUIUtility.labelWidth - CurrentIndentWidth(); + property.Draw(new CRect(r), new GUIContent()); + property.tooltip.ConditionalDraw(r); + } + if (hasFoldoutProperties && DrawingData.currentTexProperty != null) + { + //draw dropdown triangle + thumbnailPos.x += DrawingData.currentTexProperty.xOffset * 15; + //This is an invisible button with zero functionality. But it needs to be here so that the triangle click reacts fast + if (GUI.Button(thumbnailPos, "", Styles.none)); + if (Event.current.type == EventType.Repaint) + EditorStyles.foldout.Draw(thumbnailPos, false, false, DrawingData.currentTexProperty.showFoldoutProperties, false); + + if (DrawingData.is_enabled) + { + //test click and draw scale/offset + if (DrawingData.currentTexProperty.showFoldoutProperties) + { + EditorGUI.indentLevel += 2; + if (DrawingData.currentTexProperty.hasScaleOffset) + { + ShaderEditor.active.editor.TextureScaleOffsetProperty(prop); + if(DrawingData.currentTexProperty.is_animatable) + DrawingData.currentTexProperty.HandleKajAnimatable(); + } + + PropertyOptions options = DrawingData.currentTexProperty.options; + if (options.reference_properties != null) + foreach (string r_property in options.reference_properties) + { + ShaderProperty property = ShaderEditor.active.propertyDictionary[r_property]; + property.Draw(useEditorIndent: true); + } + EditorGUI.indentLevel -= 2; + } + if (ShaderEditor.input.MouseLeftClick && position.Contains(Event.current.mousePosition)) + { + ShaderEditor.input.Use(); + DrawingData.currentTexProperty.showFoldoutProperties = !DrawingData.currentTexProperty.showFoldoutProperties; + } + } + } + + Rect object_rect = new Rect(position); + object_rect.height = GUILayoutUtility.GetLastRect().y - object_rect.y + GUILayoutUtility.GetLastRect().height; + DrawingData.lastGuiObjectRect = object_rect; + } + + public static void drawBigTextureProperty(Rect position, MaterialProperty prop, GUIContent label, MaterialEditor editor, bool scaleOffset) + { + Rect rect = GUILayoutUtility.GetRect(label, Styles.bigTextureStyle); + float defaultLabelWidth = EditorGUIUtility.labelWidth; + float defaultFieldWidth = EditorGUIUtility.fieldWidth; + editor.SetDefaultGUIWidths(); + editor.TextureProperty(position, prop, label.text, label.tooltip, scaleOffset); + EditorGUIUtility.labelWidth = defaultLabelWidth; + EditorGUIUtility.fieldWidth = defaultFieldWidth; + Rect object_rect = new Rect(position); + object_rect.height += rect.height; + DrawingData.lastGuiObjectRect = object_rect; + DrawingData.currentTexProperty.tooltip.ConditionalDraw(object_rect); + } + + static int texturePickerWindow = -1; + static MaterialProperty texturePickerWindowProperty = null; + public static void drawStylizedBigTextureProperty(Rect position, MaterialProperty prop, GUIContent label, MaterialEditor editor, bool hasFoldoutProperties, bool skip_drag_and_drop_handling = false) + { + position.x += (EditorGUI.indentLevel) * 15; + position.width -= (EditorGUI.indentLevel) * 15; + Rect rect = GUILayoutUtility.GetRect(label, Styles.bigTextureStyle); + rect.x += (EditorGUI.indentLevel) * 15; + rect.width -= (EditorGUI.indentLevel) * 15; + Rect border = new Rect(rect); + border.position = new Vector2(border.x, border.y - position.height); + border.height += position.height; + + if (DrawingData.currentTexProperty.reference_properties_exist) + { + border.height += 8; + foreach (string r_property in DrawingData.currentTexProperty.options.reference_properties) + { + border.height += editor.GetPropertyHeight(ShaderEditor.active.propertyDictionary[r_property].materialProperty); + } + } + if (DrawingData.currentTexProperty.reference_property_exists) + { + border.height += 8; + border.height += editor.GetPropertyHeight(ShaderEditor.active.propertyDictionary[DrawingData.currentTexProperty.options.reference_property].materialProperty); + } + + + //background + GUI.DrawTexture(border, Styles.rounded_texture, ScaleMode.StretchToFill, true); + Rect quad = new Rect(border); + quad.width = quad.height / 2; + GUI.DrawTextureWithTexCoords(quad, Styles.rounded_texture, new Rect(0, 0, 0.5f, 1), true); + quad.x += border.width - quad.width; + GUI.DrawTextureWithTexCoords(quad, Styles.rounded_texture, new Rect(0.5f, 0, 0.5f, 1), true); + + quad.width = border.height - 4; + quad.height = quad.width; + quad.x = border.x + border.width - quad.width - 1; + quad.y += 2; + + DrawingData.currentTexProperty.tooltip.ConditionalDraw(border); + + Rect preview_rect_border = new Rect(position); + preview_rect_border.height = rect.height + position.height - 6; + preview_rect_border.width = preview_rect_border.height; + preview_rect_border.y += 3; + preview_rect_border.x += position.width - preview_rect_border.width - 3; + Rect preview_rect = new Rect(preview_rect_border); + preview_rect.height -= 6; + preview_rect.width -= 6; + preview_rect.x += 3; + preview_rect.y += 3; + if (prop.hasMixedValue) + { + Rect mixedRect = new Rect(preview_rect); + mixedRect.y -= 5; + mixedRect.x += mixedRect.width / 2 - 4; + GUI.Label(mixedRect, "_"); + } + else if (prop.textureValue != null) + { + GUI.DrawTexture(preview_rect, prop.textureValue); + } + GUI.DrawTexture(preview_rect_border, Texture2D.whiteTexture, ScaleMode.StretchToFill, false, 0, Color.grey, 3, 5); + + //selection button and pinging + Rect select_rect = new Rect(preview_rect); + select_rect.height = 12; + select_rect.y += preview_rect.height - 12; + if (Event.current.commandName == "ObjectSelectorUpdated" && EditorGUIUtility.GetObjectPickerControlID() == texturePickerWindow && texturePickerWindowProperty.name == prop.name) + { + prop.textureValue = (Texture)EditorGUIUtility.GetObjectPickerObject(); + ShaderEditor.Repaint(); + } + if (Event.current.commandName == "ObjectSelectorClosed" && EditorGUIUtility.GetObjectPickerControlID() == texturePickerWindow) + { + texturePickerWindow = -1; + texturePickerWindowProperty = null; + } + if (GUI.Button(select_rect, "Select", EditorStyles.miniButton)) + { + EditorGUIUtility.ShowObjectPicker<Texture>(prop.textureValue, false, "", 0); + texturePickerWindow = EditorGUIUtility.GetObjectPickerControlID(); + texturePickerWindowProperty = prop; + } + else if (Event.current.type == EventType.MouseDown && preview_rect.Contains(Event.current.mousePosition)) + { + EditorGUIUtility.PingObject(prop.textureValue); + } + + if (!skip_drag_and_drop_handling) + if ((ShaderEditor.input.is_drag_drop_event) && preview_rect.Contains(ShaderEditor.input.mouse_position) && DragAndDrop.objectReferences[0] is Texture) + { + DragAndDrop.visualMode = DragAndDropVisualMode.Copy; + if (ShaderEditor.input.is_drop_event) + { + DragAndDrop.AcceptDrag(); + prop.textureValue = (Texture)DragAndDrop.objectReferences[0]; + } + } + + //scale offset rect + + if (hasFoldoutProperties || DrawingData.currentTexProperty.options.reference_property != null) + { + EditorGUI.indentLevel += 2; + + if (DrawingData.currentTexProperty.hasScaleOffset) + { + Rect scale_offset_rect = new Rect(position); + scale_offset_rect.y += 37; + scale_offset_rect.width -= 2 + preview_rect.width + 10 + 30; + scale_offset_rect.x += 30; + editor.TextureScaleOffsetProperty(scale_offset_rect, prop); + if (DrawingData.currentTexProperty.is_animatable) + DrawingData.currentTexProperty.HandleKajAnimatable(); + } + float oldLabelWidth = EditorGUIUtility.labelWidth; + EditorGUIUtility.labelWidth = 128; + + PropertyOptions options = DrawingData.currentTexProperty.options; + if (options.reference_property != null) + { + ShaderProperty property = ShaderEditor.active.propertyDictionary[options.reference_property]; + property.Draw(useEditorIndent: true); + } + if (options.reference_properties != null) + foreach (string r_property in options.reference_properties) + { + ShaderProperty property = ShaderEditor.active.propertyDictionary[r_property]; + property.Draw(useEditorIndent: true); + if (DrawingData.currentTexProperty.is_animatable) + property.HandleKajAnimatable(); + } + EditorGUIUtility.labelWidth = oldLabelWidth; + EditorGUI.indentLevel -= 2; + } + + Rect label_rect = new Rect(position); + label_rect.x += 2; + label_rect.y += 2; + GUI.Label(label_rect, label); + + GUILayoutUtility.GetRect(0, 5); + + DrawingData.lastGuiObjectRect = border; + } + + const float kNumberWidth = 65; + + public static void MinMaxSlider(Rect settingsRect, GUIContent content, MaterialProperty prop) + { + bool changed = false; + Vector4 vec = prop.vectorValue; + Rect sliderRect = settingsRect; + + EditorGUI.LabelField(settingsRect, content); + + if (settingsRect.width > 160) + { + Rect numberRect = settingsRect; + numberRect.width = kNumberWidth + (EditorGUI.indentLevel - 1) * 15; + + numberRect.x = EditorGUIUtility.labelWidth - (EditorGUI.indentLevel - 1) * 15; + + EditorGUI.BeginChangeCheck(); + EditorGUI.showMixedValue = prop.hasMixedValue; + vec.x = EditorGUI.FloatField(numberRect, vec.x, EditorStyles.textField); + changed |= EditorGUI.EndChangeCheck(); + + numberRect.x = settingsRect.xMax - numberRect.width; + + EditorGUI.BeginChangeCheck(); + EditorGUI.showMixedValue = prop.hasMixedValue; + vec.y = EditorGUI.FloatField(numberRect, vec.y); + changed |= EditorGUI.EndChangeCheck(); + + sliderRect.xMin = EditorGUIUtility.labelWidth - (EditorGUI.indentLevel - 1) * 15; + sliderRect.xMin += (kNumberWidth + -8); + sliderRect.xMax -= (kNumberWidth + -8); + } + + vec.x = Mathf.Clamp(vec.x, vec.z, vec.y); + vec.y = Mathf.Clamp(vec.y, vec.x, vec.w); + + EditorGUI.BeginChangeCheck(); + EditorGUI.MinMaxSlider(sliderRect, ref vec.x, ref vec.y, vec.z, vec.w); + changed |= EditorGUI.EndChangeCheck(); + + if (changed) + { + prop.vectorValue = vec; + } + } + + public static bool DrawListField<type>(List<type> list) where type : UnityEngine.Object + { + GUILayout.BeginHorizontal(); + if (GUILayout.Button("Add", EditorStyles.miniButton)) + list.Add(null); + if (GUILayout.Button("Remove", EditorStyles.miniButton)) + if (list.Count > 0) + list.RemoveAt(list.Count - 1); + GUILayout.EndHorizontal(); + + for (int i = 0; i < list.Count; i++) + { + list[i] = (type)EditorGUILayout.ObjectField(list[i], typeof(type), false); + } + return false; + } + public static bool DrawListField<type>(List<type> list, float maxHeight, ref Vector2 scrollPosition) where type : UnityEngine.Object + { + GUILayout.BeginHorizontal(); + if (GUILayout.Button("Add", EditorStyles.miniButton)) + list.Add(null); + if (GUILayout.Button("Remove", EditorStyles.miniButton)) + if (list.Count > 0) + list.RemoveAt(list.Count - 1); + GUILayout.EndHorizontal(); + + scrollPosition = GUILayout.BeginScrollView(scrollPosition, GUILayout.MaxHeight(maxHeight)); + for (int i = 0; i < list.Count; i++) + { + list[i] = (type)EditorGUILayout.ObjectField(list[i], typeof(type), false); + } + GUILayout.EndScrollView(); + return false; + } + + public static bool GUIDataStruct<t>(t data) + { + return GUIDataStruct<t>(data, new string[] { }); + } + + public static bool GUIDataStruct<t>(t data, string[] exclude) + { + Type type = data.GetType(); + bool changed = false; + foreach (FieldInfo f in type.GetFields()) + { + bool skip = false; + foreach (string s in exclude) + if (s == f.Name) + skip = true; + if (skip) + continue; + + if (f.FieldType.IsEnum) + changed |= GUIEnum(f, data); + else if (f.FieldType == typeof(string)) + changed |= GUIString(f, data); + else if (f.FieldType == typeof(int)) + changed |= GUIInt(f, data); + else if (f.FieldType == typeof(float)) + changed |= GUIFloat(f, data); + } + return changed; + } + + private static bool GUIEnum(FieldInfo f, object o) + { + EditorGUI.BeginChangeCheck(); + Enum e = EditorGUILayout.EnumPopup(f.Name, (Enum)f.GetValue(o), GUILayout.ExpandWidth(false)); + bool changed = EditorGUI.EndChangeCheck(); + if (changed) + f.SetValue(o, e); + return changed; + } + + private static bool GUIString(FieldInfo f, object o) + { + EditorGUI.BeginChangeCheck(); + string s = EditorGUILayout.TextField(f.Name, (string)f.GetValue(o), GUILayout.ExpandWidth(false)); + bool changed = EditorGUI.EndChangeCheck(); + if (changed) + f.SetValue(o, s); + return changed; + } + + private static bool GUIInt(FieldInfo f, object o) + { + EditorGUI.BeginChangeCheck(); + int i = EditorGUILayout.IntField(f.Name, (int)f.GetValue(o), GUILayout.ExpandWidth(false)); + bool changed = EditorGUI.EndChangeCheck(); + if (changed) + f.SetValue(o, i); + return changed; + } + + private static bool GUIFloat(FieldInfo f, object o) + { + EditorGUI.BeginChangeCheck(); + float i = EditorGUILayout.FloatField(f.Name, (float)f.GetValue(o), GUILayout.ExpandWidth(false)); + bool changed = EditorGUI.EndChangeCheck(); + if (changed) + f.SetValue(o, i); + return changed; + } + + public static void DrawLocaleSelection(GUIContent label, string[] locales, int selected) + { + EditorGUI.BeginChangeCheck(); + selected = EditorGUILayout.Popup(label.text, selected, locales); + if (EditorGUI.EndChangeCheck()) + { + ShaderEditor.active.propertyDictionary[ShaderEditor.PROPERTY_NAME_LOCALE].materialProperty.floatValue = selected; + ShaderEditor.reload(); + } + } + + public static void DrawHeader(ref bool enabled, ref bool options, GUIContent name) + { + var r = EditorGUILayout.BeginHorizontal("box"); + enabled = EditorGUILayout.Toggle(enabled, EditorStyles.radioButton, GUILayout.MaxWidth(15.0f)); + options = GUI.Toggle(r, options, GUIContent.none, new GUIStyle()); + EditorGUILayout.LabelField(name, Styles.dropDownHeaderLabel); + EditorGUILayout.EndHorizontal(); + } + + public static void DrawMasterLabel(string shaderName, Rect parent) + { + Rect rect = new Rect(0, parent.y, parent.width, 18); + EditorGUI.LabelField(rect, "<size=16>" + shaderName + "</size>", Styles.masterLabel); + } + + public static void DrawNotificationBox(Rect position, int width, int height, string text) + { + Rect box_position = new Rect(position.x- width + position.width, position.y + position.height + 50, width,height); + Rect arrow_position = new Rect(position.x - 25, position.y + position.height, 50, 50); + GUI.DrawTexture(arrow_position, Styles.t_arrow, ScaleMode.ScaleToFit, true, 0, Color.red, 0, 0); + GUI.Box(box_position, text, Styles.notification_style); + } + + public static float CurrentIndentWidth() + { + return EditorGUI.indentLevel * 15; + } + } + + public class BetterTooltips + { + private static Tooltip activeTooltip; + + public class Tooltip + { + private GUIContent content; + private bool empty; + + public bool isSelected { get; private set; } = false; + + private Rect containerRect; + private Rect contentRect; + + readonly static Vector2 PADDING = new Vector2(10, 10); + + public Tooltip(string text) + { + content = new GUIContent(text); + empty = string.IsNullOrWhiteSpace(text); + } + + public Tooltip(string text, Texture texture) + { + content = new GUIContent(text, texture); + empty = string.IsNullOrWhiteSpace(text) && texture == null; + } + + public void SetText(string text) + { + content.text = text; + empty &= string.IsNullOrWhiteSpace(text); + } + + public void ConditionalDraw(Rect hoverOverRect) + { + if (empty) return; + bool isSelected = hoverOverRect.Contains(Event.current.mousePosition); + if (isSelected ) + { + CalculatePositions(hoverOverRect); + activeTooltip = this; + this.isSelected = true; + } + } + + private void CalculatePositions(Rect hoverOverRect) + { + Vector2 contentSize = EditorStyles.label.CalcSize(content); + Vector2 containerPosition = new Vector2(Event.current.mousePosition.x - contentSize.x / 2 - PADDING.x / 2, hoverOverRect.y - contentSize.y - PADDING.y - 3); + + containerPosition.x = Mathf.Max(0, containerPosition.x); + containerPosition.x = Mathf.Min(EditorGUIUtility.currentViewWidth - contentSize.x - PADDING.x, containerPosition.x); + + contentRect = new Rect(containerPosition + new Vector2(PADDING.x/2, PADDING.y/2), contentSize); + containerRect = new Rect(containerPosition, contentSize + new Vector2(PADDING.x, PADDING.y)); + } + + public void Draw() + { + EditorGUI.DrawRect(containerRect, Styles.backgroundColor); + EditorGUI.LabelField(contentRect, content); + isSelected = false; + } + } + + public static void DrawActive() + { + if(activeTooltip != null) + { + if (activeTooltip.isSelected) + { + activeTooltip.Draw(); + } + else + { + activeTooltip = null; + } + } + } + } + + public class FooterButton + { + private GUIContent content; + private bool isTextureContent; + const int texture_height = 40; + int texture_width; + private ButtonData data; + + public FooterButton(ButtonData data) + { + this.data = data; + if (data != null) + { + if (data.texture == null) + { + content = new GUIContent(data.text, data.hover); + isTextureContent = false; + } + else + { + texture_width = (int)((float)data.texture.loaded_texture.width / data.texture.loaded_texture.height * texture_height); + content = new GUIContent(data.texture.loaded_texture, data.hover); + isTextureContent = true; + } + } + else + { + content = new GUIContent(); + } + } + + public void Draw() + { + Rect cursorRect; + if (isTextureContent) + { + if(GUILayout.Button(content, new GUIStyle(), GUILayout.MaxWidth(texture_width), GUILayout.Height(texture_height))){ + data.action.Perform(); + } + cursorRect = GUILayoutUtility.GetLastRect(); + GUILayout.Space(8); + } + else + { + if (GUILayout.Button(content, GUILayout.ExpandWidth(false), GUILayout.Height(texture_height))) + data.action.Perform(); + cursorRect = GUILayoutUtility.GetLastRect(); + GUILayout.Space(2); + } + EditorGUIUtility.AddCursorRect(cursorRect, MouseCursor.Link); + } + + public static void DrawList(List<FooterButton> list) + { + EditorGUILayout.BeginHorizontal(); + GUILayout.FlexibleSpace(); + GUILayout.Space(2); + foreach (FooterButton b in list) + { + b.Draw(); + } + GUILayout.FlexibleSpace(); + EditorGUILayout.EndHorizontal(); + } + } + + public class ThryHeaderDrawer : MaterialPropertyDrawer + { + private MaterialProperty property; + + private bool expanded; + + private string keyword; + private string end; + + public bool isHideable; + + public int xOffset = 0; + + private ButtonData button; + + public ThryHeaderDrawer(string end, string keyword, string buttonText, string buttonHover, string buttonAction, float isHideable) + { + this.end = end; + this.keyword = keyword; + + button = new ButtonData(); + button.text = buttonText; + button.hover = buttonHover; + button.action = DefineableAction.ParseDrawerParameter(buttonAction); + + this.isHideable = isHideable == 1; + } + + public ThryHeaderDrawer(string end, string keyword, string buttonText, string buttonHover, string buttonAction) : this(end, keyword, buttonText, buttonHover, buttonAction, 0 ) { } + public ThryHeaderDrawer(string end, string keyword, float isHideable) : this(end, keyword, null, null, null, isHideable ) { } + public ThryHeaderDrawer(string end, string keyword) : this(end, keyword, null, null, null, 0 ) { } + + public ThryHeaderDrawer(float isHideable) : this(null,null, null, null, null, isHideable ) { } + public ThryHeaderDrawer(float isHideable, string end) : this(end, null, null, null, null, isHideable ) { } + public ThryHeaderDrawer(float isHideable, string buttonText, string buttonHover, string buttonAction) : this(null,null, buttonText, buttonHover, buttonAction, 0 ) { } + public ThryHeaderDrawer(float isHideable, string end, string buttonText, string buttonHover, string buttonAction):this(end, null, buttonText, buttonHover, buttonAction, isHideable ) { } + + public ThryHeaderDrawer(){} + + public string GetEndProperty() + { + return end; + } + + public override float GetPropertyHeight(MaterialProperty prop, string label, MaterialEditor editor) + { + DrawingData.lastPropertyUsedCustomDrawer = true; + DrawingData.lastPropertyDrawerType = DrawerType.Header; + DrawingData.lastPropertyDrawer = this; + return base.GetPropertyHeight(prop, label, editor); + } + + public bool is_expanded + { + get + { + return expanded; + } + } + + public void Toggle() + { + expanded = !expanded; + if (!AnimationMode.InAnimationMode()) + { + property.floatValue = expanded ? 1 : 0; + } + } + + public override void OnGUI(Rect position, MaterialProperty prop, GUIContent label, MaterialEditor editor) + { + if (!AnimationMode.InAnimationMode() || this.property == null) + { + this.property = prop; + this.expanded = prop.floatValue == 1; + } + + PropertyOptions options = ShaderEditor.active.currentProperty.options; + Event e = Event.current; + + int offset = 15 * xOffset + 15; + position.width -= offset - position.x; + position.x = offset; + + DrawingData.lastGuiObjectHeaderRect = position; + + DrawBoxAndContent(position, e, label, options); + + DrawSmallArrow(position, e); + HandleToggleInput(e, position); + } + + private void DrawBoxAndContent(Rect rect, Event e, GUIContent content, PropertyOptions options) + { + if (options.reference_property != null && ShaderEditor.active.propertyDictionary.ContainsKey(options.reference_property)) + { + GUI.Box(rect, new GUIContent(" " + content.text, content.tooltip), Styles.dropDownHeader); + DrawIcons(rect, e); + DrawButton(rect, options, e); + + Rect togglePropertyRect = new Rect(rect); + togglePropertyRect.x += 5; + togglePropertyRect.y += 2; + togglePropertyRect.height -= 4; + togglePropertyRect.width = GUI.skin.font.fontSize * 3; + float fieldWidth = EditorGUIUtility.fieldWidth; + EditorGUIUtility.fieldWidth = 20; + ShaderProperty prop = ShaderEditor.active.propertyDictionary[options.reference_property]; + + int xOffset = prop.xOffset; + prop.xOffset = 0; + prop.Draw(new CRect(togglePropertyRect), new GUIContent(), isInHeader: true); + prop.xOffset = xOffset; + EditorGUIUtility.fieldWidth = fieldWidth; + }else if(keyword != null) + { + GUI.Box(rect, " " + content.text, Styles.dropDownHeader); + DrawIcons(rect, e); + DrawButton(rect, options, e); + + Rect togglePropertyRect = new Rect(rect); + togglePropertyRect.x += 20; + togglePropertyRect.width = 20; + + EditorGUI.BeginChangeCheck(); + bool keywordOn = EditorGUI.Toggle(togglePropertyRect, "", ShaderEditor.active.materials[0].IsKeywordEnabled(keyword)); + if (EditorGUI.EndChangeCheck()) + { + MaterialHelper.ToggleKeyword(ShaderEditor.active.materials, keyword, keywordOn); + } + } + else + { + GUI.Box(rect, content, Styles.dropDownHeader); + DrawIcons(rect, e); + DrawButton(rect, options, e); + } + + } + + /// <summary> + /// Draws extra buttons in the header + /// </summary> + /// <param name="rect"></param> + /// <param name="options"></param> + /// <param name="e"></param> + /// <param name="style"></param> + private void DrawButton(Rect rect, PropertyOptions options, Event e) + { + ButtonData button = this.button != null ? this.button : options.button_right; + if (button != null && button.condition_show.Test()) + { + Rect buttonRect = new Rect(rect); + GUIContent buttoncontent = new GUIContent(button.text, button.hover); + float width = Styles.dropDownHeaderButton.CalcSize(buttoncontent).x; + width = width < rect.width / 3 ? rect.width / 3 : width; + buttonRect.x += buttonRect.width - width - 50; + buttonRect.y += 2; + buttonRect.width = width; + if (GUI.Button(buttonRect, buttoncontent, Styles.dropDownHeaderButton)) + { + e.Use(); + if (button.action != null) + button.action.Perform(); + } + EditorGUIUtility.AddCursorRect(buttonRect, MouseCursor.Link); + } + } + + /// <summary> + /// Draws the icons for ShaderEditor features like linking and copying + /// </summary> + /// <param name="rect"></param> + /// <param name="e"></param> + private void DrawIcons(Rect rect, Event e) + { + DrawDowdownSettings(rect, e); + DrawLinkSettings(rect, e); + } + + private void DrawDowdownSettings(Rect rect, Event e) + { + Rect buttonRect = new Rect(rect); + buttonRect.width = 20; + buttonRect.x += rect.width - 25; + buttonRect.y += 1; + buttonRect.height -= 4; + if (GUI.Button(buttonRect, Styles.dropdown_settings_icon, EditorStyles.largeLabel)) + { + e.Use(); + + buttonRect.width = 150; + buttonRect.x = Mathf.Min(Screen.width - buttonRect.width, buttonRect.x); + buttonRect.height = 60; + float maxY = GUIUtility.ScreenToGUIPoint(new Vector2(0, EditorWindow.focusedWindow.position.y + Screen.height)).y - 2.5f * buttonRect.height; + buttonRect.y = Mathf.Min(buttonRect.y - buttonRect.height / 2, maxY); + + ShowHeaderContextMenu(buttonRect, ShaderEditor.active.currentProperty, ShaderEditor.active.materials[0]); + } + } + + private void DrawLinkSettings(Rect rect, Event e) + { + Rect buttonRect = new Rect(rect); + buttonRect.width = 20; + buttonRect.x += rect.width - 45; + buttonRect.y += 1; + buttonRect.height -= 4; + List<Material> linked_materials = MaterialLinker.GetLinked(ShaderEditor.active.currentProperty.materialProperty); + Texture2D icon = Styles.inactive_link_icon; + if (linked_materials != null) + icon = Styles.active_link_icon; + if (GUI.Button(buttonRect, icon, EditorStyles.largeLabel)) + { + MaterialLinker.Popup(buttonRect, linked_materials, ShaderEditor.active.currentProperty.materialProperty); + e.Use(); + } + } + + void ShowHeaderContextMenu(Rect position, ShaderPart property, Material material) + { + var menu = new GenericMenu(); + menu.AddItem(new GUIContent("Reset"), false, delegate () + { + property.CopyFromMaterial(new Material(material.shader)); + List<Material> linked_materials = MaterialLinker.GetLinked(property.materialProperty); + if (linked_materials != null) + foreach (Material m in linked_materials) + property.CopyToMaterial(m); + }); + menu.AddItem(new GUIContent("Copy"), false, delegate () + { + Mediator.copy_material = new Material(material); + Mediator.transfer_group = property; + }); + menu.AddItem(new GUIContent("Paste"), false, delegate () + { + if (Mediator.copy_material != null || Mediator.transfer_group != null) + { + property.TransferFromMaterialAndGroup(Mediator.copy_material, Mediator.transfer_group); + List<Material> linked_materials = MaterialLinker.GetLinked(property.materialProperty); + if (linked_materials != null) + foreach (Material m in linked_materials) + property.CopyToMaterial(m); + } + }); + menu.DropDown(position); + } + + private void DrawSmallArrow(Rect rect, Event e) + { + if (e.type == EventType.Repaint) + { + var toggleRect = new Rect(rect.x + 4f, rect.y + 2f, 13f, 13f); + EditorStyles.foldout.Draw(toggleRect, false, false, expanded, false); + } + } + + private void HandleToggleInput(Event e, Rect rect) + { + if (e.type == EventType.MouseDown && rect.Contains(e.mousePosition) && !e.alt) + { + this.Toggle(); + e.Use(); + } + } + } + + public class HeaderHider{ + + public enum HeaderHidingType + { + simple = 1, + show_all = 2, + custom=3 + } + + private static Dictionary<string,bool> headerHiddenSaved; + public static HeaderHidingType state { get; private set; } + private static void LoadHiddenHeaderNames() + { + string data = PersistentData.Get("HiddenHeaderNames"); + if (data == null) + headerHiddenSaved = new Dictionary<string, bool>(); + else + headerHiddenSaved = Parser.Deserialize<Dictionary<string, bool>>(data); + data = PersistentData.Get("HeaderHiderState"); + if (data == null) + state = HeaderHidingType.simple; + else + state = (HeaderHidingType)Enum.Parse(typeof(HeaderHidingType),data); + } + + public static bool InitHidden(ShaderHeader header) + { + if (headerHiddenSaved == null) + LoadHiddenHeaderNames(); + if (header.options.is_hideable == false) + return false; + bool is_hidden = false; + if (headerHiddenSaved.ContainsKey(header.materialProperty.name)) + is_hidden = headerHiddenSaved[header.materialProperty.name]; + else + headerHiddenSaved[header.materialProperty.name] = is_hidden; + header.is_hidden = is_hidden; + return is_hidden; + } + + public static void SetHidden(ShaderHeader header, bool set_hidden, bool save=true) + { + bool contains = headerHiddenSaved.ContainsKey(header.materialProperty.name); + if (!contains || (contains && headerHiddenSaved[header.materialProperty.name] != set_hidden)) + { + headerHiddenSaved[header.materialProperty.name] = set_hidden; + header.is_hidden = set_hidden; + if(save) + PersistentData.Set("HiddenHeaderNames", Parser.Serialize(headerHiddenSaved)); + } + UpdateValues(); + } + public static void SetHidden(List<ShaderPart> parts, bool set_hidden) + { + foreach (ShaderPart part in parts) + { + if (part.GetType() == typeof(ShaderHeader) && part.options.is_hideable) + { + SetHidden((ShaderHeader)part, set_hidden, false); + } + } + PersistentData.Set("HiddenHeaderNames", Parser.Serialize(headerHiddenSaved)); + UpdateValues(); + } + + private static void UpdateValues() + { + foreach (ShaderPart part in ShaderEditor.active.shaderParts) + { + if (part.options.is_hideable == false) + continue; + bool is_hidden = part.is_hidden; + } + } + + private static void SetType(HeaderHidingType newstate) + { + state = newstate; + PersistentData.Set("HeaderHiderState", state.ToString()); + } + + public static bool IsHeaderHidden(ShaderPart header) + { + return header.options.is_hideable && ((header.is_hidden && state == HeaderHidingType.custom) || (state == HeaderHidingType.simple && !header.options.is_visible_simple)); + } + + public static void HeaderHiderGUI(ShaderEditor editor) + { + EditorGUILayout.BeginHorizontal(Styles.style_toolbar); + if (GUILayout.Button("Simple", Styles.style_toolbar_toggle(state == HeaderHidingType.simple))) + SetType(HeaderHidingType.simple); + if (GUILayout.Button("Advanced", Styles.style_toolbar_toggle(state == HeaderHidingType.show_all))) + SetType(HeaderHidingType.show_all); + Rect right = GUILayoutUtility.GetRect(10, 20); + Rect arrow = new Rect(right.x + right.width - 20, right.y, 20, 20); + if (GUI.Button(arrow, Styles.dropdown_settings_icon, EditorStyles.largeLabel)) + DrawHeaderHiderMenu(arrow, editor.shaderParts); + if (GUI.Button(right, "Custom", Styles.style_toolbar_toggle(state == HeaderHidingType.custom))) + SetType(HeaderHidingType.custom); + + GUI.Button(arrow, Styles.dropdown_settings_icon, EditorStyles.largeLabel); + + EditorGUILayout.EndHorizontal(); + EditorGUILayout.Space(); + } + + public static void DrawHeaderHiderMenu(Rect position, List<ShaderPart> shaderParts) + { + position.y -= 5; + position.width = 150; + position.x = Mathf.Min(Screen.width - position.width, position.x); + position.height = 60; + float maxY = GUIUtility.ScreenToGUIPoint(new Vector2(0, EditorWindow.focusedWindow.position.y + Screen.height)).y - 2.5f * position.height; + position.y = Mathf.Min(position.y - position.height / 2, maxY); + + var menu = new GenericMenu(); + + bool allHidden = true; + bool allShown = true; + foreach (ShaderPart part in shaderParts) + { + if (part.GetType() == typeof(ShaderHeader) && part.options.is_hideable) + { + if (part.is_hidden) + allShown = false; + else + allHidden = false; + } + } + menu.AddItem(new GUIContent("Everything"), allShown, delegate () + { + SetHidden(shaderParts, false); + }); + menu.AddItem(new GUIContent("Nothing"), allHidden, delegate () + { + SetHidden(shaderParts, true); + }); + foreach (ShaderPart part in shaderParts) + { + if (part.GetType() == typeof(ShaderHeader) && part.options.is_hideable) + { + menu.AddItem(new GUIContent(part.content.text), !part.is_hidden, delegate () + { + SetHidden((ShaderHeader)part, !part.is_hidden); + }); + } + } + menu.DropDown(position); + } + + } +}
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/GUIHelper.cs.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/GUIHelper.cs.meta new file mode 100644 index 00000000..56ae27f6 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/GUIHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 86ee0d31fc0c2e740bb6237d6281a257 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/GradiantEditor.cs b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/GradiantEditor.cs new file mode 100644 index 00000000..8562afcb --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/GradiantEditor.cs @@ -0,0 +1,254 @@ +// Material/Shader Inspector for Unity 2017/2018 +// Copyright (C) 2019 Thryrallo + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Reflection; +using System.Text.RegularExpressions; +using UnityEditor; +using UnityEngine; + +namespace Thry +{ + public class GradientEditor : EditorWindow + { + + public static void Open(GradientData data, MaterialProperty prop, TextureData predefinedTextureSettings, bool force_texture_options = false, bool show_texture_options=true) + { + texture_settings_data = LoadTextureSettings(prop, predefinedTextureSettings, force_texture_options); + data.gradient = TextureHelper.GetGradient(prop.textureValue); + GradientEditor window = (GradientEditor)EditorWindow.GetWindow(typeof(GradientEditor)); + window.privious_preview_texture = prop.textureValue; + window.prop = prop; + window.data = data; + window.show_texture_options = show_texture_options; + window.minSize = new Vector2(350, 350); + window.Show(); + } + + GradientData data; + MaterialProperty prop; + + object gradient_editor; + MethodInfo ongui; + MethodInfo gradient_editor_init; + + object preset_libary_editor; + MethodInfo preset_libary_onGUI; + object preset_libary_editor_state; + + private bool inited = false; + + private bool show_texture_options = true; + + private bool gradient_has_been_edited = false; + private Texture privious_preview_texture; + + private static TextureData LoadTextureSettings(MaterialProperty prop, TextureData predefinedTextureSettings, bool force_texture_options) + { + if (force_texture_options && predefinedTextureSettings != null) + return predefinedTextureSettings; + string json_texture_settings = FileHelper.LoadValueFromFile("gradient_texture_options_"+prop.name, PATH.PERSISTENT_DATA); + if (json_texture_settings != null) + return Parser.ParseToObject<TextureData>(json_texture_settings); + else if (predefinedTextureSettings != null) + return predefinedTextureSettings; + else + return new TextureData(); + } + private static TextureData texture_settings_data; + private TextureData textureSettings + { + get + { + return texture_settings_data; + } + } + + public void Awake() + { + Type gradient_editor_type = typeof(UnityEditor.Editor).Assembly.GetType("UnityEditor.GradientEditor"); + gradient_editor = Activator.CreateInstance(gradient_editor_type); + gradient_editor_init = gradient_editor_type.GetMethod("Init"); + + ongui = gradient_editor_type.GetMethod("OnGUI"); + } + + public void OnDestroy() + { + if (gradient_has_been_edited) + { + if (data.preview_texture.GetType() == typeof(Texture2D)) + { + string file_name = GradientFileName(data.gradient, prop.targets[0].name); + Texture saved = TextureHelper.SaveTextureAsPNG((Texture2D)data.preview_texture, PATH.TEXTURES_DIR+"/Gradients/" + file_name, textureSettings); + file_name = Regex.Replace(file_name, @"\.((png)|(jpg))$", ""); + FileHelper.SaveValueToFile(file_name, Parser.ObjectToString(data.gradient), PATH.GRADIENT_INFO_FILE); + prop.textureValue = saved; + } + } + else + { + UpdatePreviewTexture(privious_preview_texture); + } + } + + private string GradientFileName(Gradient gradient, string material_name) + { + string hash = "" + gradient.GetHashCode(); + return GradientFileName(hash, material_name); + } + + private string GradientFileName(string hash, string material_name) + { + Config config = Config.Singleton; + string ret = config.gradient_name; + ret = Regex.Replace(ret, "<hash>", hash); + ret = Regex.Replace(ret, "<material>", material_name); + return ret; + } + + private void InitSomeStuff() + { + Type presetLibraryEditorState_type = typeof(UnityEditor.Editor).Assembly.GetType("UnityEditor.PresetLibraryEditorState"); + preset_libary_editor_state = Activator.CreateInstance(presetLibraryEditorState_type, "Gradient"); + MethodInfo transfer_editor_prefs_state = presetLibraryEditorState_type.GetMethod("TransferEditorPrefsState"); + transfer_editor_prefs_state.Invoke(preset_libary_editor_state, new object[] { true }); + + Type scriptable_save_load_helper_type = typeof(UnityEditor.Editor).Assembly.GetType("UnityEditor.ScriptableObjectSaveLoadHelper`1"); + Type gradient_preset_libary_type = typeof(UnityEditor.Editor).Assembly.GetType("UnityEditor.GradientPresetLibrary"); + Type preset_libary_editor_type = typeof(UnityEditor.Editor).Assembly.GetType("UnityEditor.PresetLibraryEditor`1"); + Type save_load_helper_type = scriptable_save_load_helper_type.MakeGenericType(gradient_preset_libary_type); + Type gradient_preset_libary_editor_type = preset_libary_editor_type.MakeGenericType(gradient_preset_libary_type); + + object saveLoadHelper = Activator.CreateInstance(save_load_helper_type, "gradients", SaveType.Text); + + Action<int, object> preset_libary_editor_callback = PresetClickedCallback; + preset_libary_editor = Activator.CreateInstance(gradient_preset_libary_editor_type, saveLoadHelper, preset_libary_editor_state, preset_libary_editor_callback); + PropertyInfo show_header = gradient_preset_libary_editor_type.GetProperty("showHeader"); + show_header.SetValue(preset_libary_editor, true, null); + PropertyInfo minMaxPreviewHeight = gradient_preset_libary_editor_type.GetProperty("minMaxPreviewHeight"); + minMaxPreviewHeight.SetValue(preset_libary_editor, new Vector2(14f, 14f), null); + + preset_libary_onGUI = gradient_preset_libary_editor_type.GetMethod("OnGUI"); + + SetGradient(data.gradient); + gradient_has_been_edited = false; + + inited = true; + } + + public void PresetClickedCallback(int clickCount, object presetObject) + { + Gradient gradient = presetObject as Gradient; + if (gradient == null) + Debug.LogError("Incorrect object passed " + presetObject); + SetGradient(gradient); + } + + void SetGradient(Gradient gradient) + { + data.gradient = gradient; + gradient_editor_init.Invoke(gradient_editor, new object[] { gradient, 0, true }); + UpdateGradientPreviewTexture(); + } + + void OnGUI() + { + if (!inited) + InitSomeStuff(); + float gradientEditorHeight = Mathf.Min(position.height, 146); + float distBetween = 10f; + float presetLibraryHeight = Mathf.Min(position.height - gradientEditorHeight - distBetween-135,130); + + Rect gradientEditorRect = new Rect(10, 10, position.width - 20, gradientEditorHeight - 20); + Rect gradientLibraryRect = new Rect(0, gradientEditorHeight + distBetween, position.width, presetLibraryHeight); + + EditorGUI.BeginChangeCheck(); + ongui.Invoke(gradient_editor, new object[] { gradientEditorRect }); + if (EditorGUI.EndChangeCheck()) + UpdateGradientPreviewTexture(); + + OverrideGradientTexture(gradientEditorRect); + + preset_libary_onGUI.Invoke(preset_libary_editor, new object[] { gradientLibraryRect, data.gradient }); + + GUILayout.BeginVertical(); + GUILayout.Space(gradientEditorHeight+ presetLibraryHeight+ distBetween); + GUILayout.EndVertical(); + + GUILayout.BeginHorizontal(); + GUILayout.FlexibleSpace(); + if(GUILayout.Button("Discard Changes",GUILayout.ExpandWidth(false))) + DiscardChanges(); + GUILayout.EndHorizontal(); + if(show_texture_options) + TextureSettingsGUI(); + } + + private void DiscardChanges() + { + prop.textureValue = privious_preview_texture; + SetGradient(TextureHelper.GetGradient(privious_preview_texture)); + gradient_has_been_edited = false; + ShaderEditor.Repaint(); + } + + private void TextureSettingsGUI() + { + EditorGUIUtility.labelWidth = 100; + EditorGUIUtility.fieldWidth = 150; + EditorGUILayout.LabelField("Texture options:",EditorStyles.boldLabel); + bool changed = GuiHelper.GUIDataStruct<TextureData>(textureSettings, new string[]{"name"}); + if (changed) + { + FileHelper.SaveValueToFile("gradient_texture_options_" + prop.name, Parser.ObjectToString(textureSettings), PATH.PERSISTENT_DATA); + UpdateGradientPreviewTexture(); + } + } + + private void UpdateGradientPreviewTexture() + { + data.preview_texture = Converter.GradientToTexture(data.gradient, textureSettings.width, textureSettings.height); + textureSettings.ApplyModes(data.preview_texture); + prop.textureValue = data.preview_texture; + gradient_has_been_edited = true; + ShaderEditor.Repaint(); + } + + private void UpdatePreviewTexture(Texture texture) + { + data.preview_texture = texture; + prop.textureValue = texture; + ShaderEditor.Repaint(); + } + + private void OverrideGradientTexture(Rect position) + { + Rect gradient_texture_position = new Rect(position); + + float modeHeight = 24f; + float swatchHeight = 16f; + float editSectionHeight = 26f; + float gradientTextureHeight = gradient_texture_position.height - 2 * swatchHeight - editSectionHeight - modeHeight; + gradient_texture_position.y += modeHeight; + gradient_texture_position.y += swatchHeight; + gradient_texture_position.height = gradientTextureHeight; + + + Rect r2 = new Rect(gradient_texture_position.x + 1, gradient_texture_position.y + 1, gradient_texture_position.width - 2, gradient_texture_position.height - 2); + + Texture2D backgroundTexture = TextureHelper.GetBackgroundTexture(); + Rect texCoordsRect = new Rect(0, 0, r2.width / backgroundTexture.width, r2.height / backgroundTexture.height); + GUI.DrawTextureWithTexCoords(r2, backgroundTexture, texCoordsRect, false); + + TextureWrapMode wrap_mode = data.preview_texture.wrapMode; + data.preview_texture.wrapMode = TextureWrapMode.Clamp; + GUI.DrawTexture(r2, data.preview_texture, ScaleMode.StretchToFill, true); + GUI.DrawTexture(gradient_texture_position, data.preview_texture, ScaleMode.StretchToFill, false, 0, Color.grey, 1, 1); + data.preview_texture.wrapMode = wrap_mode; + } + + } +}
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/GradiantEditor.cs.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/GradiantEditor.cs.meta new file mode 100644 index 00000000..c36b6f71 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/GradiantEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 73c53de23fe449f41b1272569a42147a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Helper.cs b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Helper.cs new file mode 100644 index 00000000..70f95391 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Helper.cs @@ -0,0 +1,1608 @@ +// Material/Shader Inspector for Unity 2017/2018 +// Copyright (C) 2019 Thryrallo + +using System; +using System.Collections; +using System.Collections.Generic; +using System.ComponentModel; +using System.IO; +using System.Linq; +using System.Net; +using System.Net.Security; +using System.Runtime.InteropServices; +using System.Security.Cryptography.X509Certificates; +using System.Text; +using System.Text.RegularExpressions; +using UnityEditor; +using UnityEngine; +using UnityEngine.Networking; + +namespace Thry +{ + static class StringExtensions + { + public static string ReplaceVariables(this string s, params object[] values) + { + int i = 0; + foreach(object o in values) + { + s = s.Replace("{" + (i++) + "}", o.ToString()); + } + return s; + } + } + + public class Helper + { + + private static readonly DateTime UnixEpoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); + + public static long GetCurrentUnixTimestampMillis() + { + return (long)(DateTime.UtcNow - UnixEpoch).TotalMilliseconds; + } + + public static long GetUnityStartUpTimeStamp() + { + return GetCurrentUnixTimestampMillis() - (long)EditorApplication.timeSinceStartup * 1000; + } + + public static bool ClassExists(string classname) + { + return System.Type.GetType(classname) != null; + } + + public static bool NameSpaceExists(string namespace_name) + { + bool namespaceFound = (from assembly in AppDomain.CurrentDomain.GetAssemblies() + from type in assembly.GetTypes() + where type.Namespace == namespace_name + select type).Any(); + return namespaceFound; + } + + public static valuetype GetValueFromDictionary<keytype, valuetype>(Dictionary<keytype, valuetype> dictionary, keytype key) + { + valuetype value = default(valuetype); + if (dictionary.ContainsKey(key)) dictionary.TryGetValue(key, out value); + return value; + } + + public static valuetype GetValueFromDictionary<keytype, valuetype>(Dictionary<keytype, valuetype> dictionary, keytype key, valuetype defaultValue) + { + valuetype value = default(valuetype); + if (dictionary.ContainsKey(key)) dictionary.TryGetValue(key, out value); + else return defaultValue; + return value; + } + + //-------------------Comparetors---------------------- + + public static int compareVersions(string v1, string v2) + { + //fix the string + Match v1_match = Regex.Match(v1, @"(a|b)?\d+((\.|a|b)\d+)*(a|b)?"); + Match v2_match = Regex.Match(v2, @"(a|b)?\d+((\.|a|b)\d+)*(a|b)?"); + if (!v1_match.Success && !v2_match.Success) return 0; + else if (!v1_match.Success) return 1; + else if (!v2_match.Success) return -1; + v1 = v1_match.Value; + v2 = v2_match.Value; + + int index_v1 = 0; + int index_v2 = 0; + string chunk_v1; + string chunk_v2; + while (index_v1 < v1.Length || index_v2 < v2.Length) + { + //get a chunk of the strings + if (index_v1 < v1.Length){ + chunk_v1 = ""; + if (v1[index_v1] == 'a') + chunk_v1 = "-2"; + else if (v1[index_v1] == 'b') + chunk_v1 = "-1"; + else + { + while (index_v1 < v1.Length && v1[index_v1] != 'a' && v1[index_v1] != 'b' && v1[index_v1] != '.') + chunk_v1 += v1[index_v1++]; + if (index_v1 < v1.Length && (v1[index_v1] == 'a' || v1[index_v1] == 'b')) + index_v1--; + } + index_v1++; + }else + chunk_v1 = "0"; + + if (index_v2 < v2.Length) + { + chunk_v2 = ""; + if (v2[index_v2] == 'a') + chunk_v2 = "-2"; + else if (v2[index_v2] == 'b') + chunk_v2 = "-1"; + else + { + while (index_v2 < v2.Length && v2[index_v2] != 'a' && v2[index_v2] != 'b' && v2[index_v2] != '.') + chunk_v2 += v2[index_v2++]; + if (index_v2 < v2.Length && (v2[index_v2] == 'a' || v2[index_v2] == 'b')) + index_v2--; + } + index_v2++; + } + else + chunk_v2 = "0"; + + //compare chunks + int v1P = int.Parse(chunk_v1); + int v2P = int.Parse(chunk_v2); + if (v1P > v2P) return -1; + else if (v1P < v2P) return 1; + } + return 0; + } + + public static bool IsPrimitive(Type t) + { + return t.IsPrimitive || t == typeof(Decimal) || t == typeof(String); + } + + public static void testAltClick(Rect rect, ShaderPart property) + { + if (ShaderEditor.input.HadMouseDownRepaint && ShaderEditor.input.is_alt_down && rect.Contains(ShaderEditor.input.mouse_position)) + { + if (property.options.altClick != null) + property.options.altClick.Perform(); + } + } + + public static string GetStringBetweenBracketsAndAfterId(string input, string id, char[] brackets) + { + string[] parts = Regex.Split(input, id); + if (parts.Length > 1) + { + char[] behind_id = parts[1].ToCharArray(); + int i = 0; + int begin = 0; + int end = behind_id.Length - 1; + int depth = 0; + bool escaped = false; + while (i < behind_id.Length) + { + if (behind_id[i] == brackets[0] && !escaped) + { + if (depth == 0) + begin = i; + depth++; + } + else if (behind_id[i] == brackets[1] && !escaped) + { + depth--; + if (depth == 0) + { + end = i; + break; + } + } + + if (behind_id[i] == '\\') + escaped = !escaped; + else + escaped = false; + i++; + } + return parts[1].Substring(begin, end); + } + return input; + } + } + + public class PersistentData + { + public static string Get(string key) + { + return FileHelper.LoadValueFromFile(key, PATH.PERSISTENT_DATA); + } + + public static void Set(string key, string value) + { + FileHelper.SaveValueToFile(key, value, PATH.PERSISTENT_DATA); + } + + public static T Get<T>(string key, T defaultValue) + { + string s = FileHelper.LoadValueFromFile(key, PATH.PERSISTENT_DATA); + if (string.IsNullOrEmpty(s)) return defaultValue; + T obj = Parser.Deserialize<T>(s); + if (obj == null) return defaultValue; + return obj; + } + + public static void Set(string key, object value) + { + FileHelper.SaveValueToFile(key, Parser.Serialize(value), PATH.PERSISTENT_DATA); + } + } + + public class FileHelper + { + public static string FindFile(string name) + { + return FindFile(name, null); + } + + public static string FindFile(string name, string type) + { + string[] guids; + if (type != null) + guids = AssetDatabase.FindAssets(name + " t:" + type); + else + guids = AssetDatabase.FindAssets(name); + if (guids.Length == 0) + return null; + return AssetDatabase.GUIDToAssetPath(guids[0]); + } + + //-----------------------Value To File Saver---------------------- + + private static Dictionary<string, Dictionary<string,string>> textFileData = new Dictionary<string, Dictionary<string, string>>(); + + public static string LoadValueFromFile(string key, string path) + { + if (!textFileData.ContainsKey(path)) ReadFileIntoTextFileData(path); + if (textFileData[path].ContainsKey(key)) + return textFileData[path][key]; + return null; + } + + public static Dictionary<string,string> LoadDictionaryFromFile(string path) + { + if (!textFileData.ContainsKey(path)) ReadFileIntoTextFileData(path); + return textFileData[path]; + } + + private static void ReadFileIntoTextFileData(string path) + { + string data = ReadFileIntoString(path); + Dictionary<string, string> dictionary = new Dictionary<string, string>(); + MatchCollection matchCollection = Regex.Matches(data, @".*\s*:=.*(?=\r?\n)"); + foreach(Match m in matchCollection) + { + string[] keyvalue = m.Value.Split(new string[] { ":=" }, 2, StringSplitOptions.RemoveEmptyEntries); + if(keyvalue.Length>1) + dictionary[keyvalue[0]] = keyvalue[1]; + } + textFileData[path] = dictionary; + } + + public static bool SaveValueToFile(string key, string value, string path) + { + if (!textFileData.ContainsKey(path)) ReadFileIntoTextFileData(path); + textFileData[path][key] = value; + return SaveDictionaryToFile(path, textFileData[path]); + } + + public static void RemoveValueFromFile(string key, string path) + { + if (!textFileData.ContainsKey(path)) ReadFileIntoTextFileData(path); + if (textFileData[path].ContainsKey(key)) textFileData[path].Remove(key); + } + + public static bool SaveDictionaryToFile(string path, Dictionary<string,string> dictionary) + { + textFileData[path] = dictionary; + string data = ""; + foreach (KeyValuePair<string, string> keyvalue in textFileData[path]) + { + data += keyvalue.Key + ":=" + keyvalue.Value + "\n"; + } + WriteStringToFile(data, path); + return true; + } + + //-----------------------File Interaction--------------------- + + public static string FindFileAndReadIntoString(string fileName) + { + string[] guids = AssetDatabase.FindAssets(fileName); + if (guids.Length > 0) + return ReadFileIntoString(AssetDatabase.GUIDToAssetPath(guids[0])); + else return ""; + } + + public static void FindFileAndWriteString(string fileName, string s) + { + string[] guids = AssetDatabase.FindAssets(fileName); + if (guids.Length > 0) + WriteStringToFile(s, AssetDatabase.GUIDToAssetPath(guids[0])); + } + + public static string ReadFileIntoString(string path) + { + if (!File.Exists(path)) + { + CreateFileWithDirectories(path); + return ""; + } + StreamReader reader = new StreamReader(path); + string ret = reader.ReadToEnd(); + reader.Close(); + return ret; + } + + public static void WriteStringToFile(string s, string path) + { + if (!File.Exists(path)) CreateFileWithDirectories(path); + StreamWriter writer = new StreamWriter(path, false); + writer.Write(s); + writer.Close(); + } + + public static bool writeBytesToFile(byte[] bytes, string path) + { + if (!File.Exists(path)) CreateFileWithDirectories(path); + try + { + using (var fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write)) + { + fs.Write(bytes, 0, bytes.Length); + return true; + } + } + catch (Exception ex) + { + Debug.Log("Exception caught in process: " + ex.ToString()); + return false; + } + } + + public static void CreateFileWithDirectories(string path) + { + string dir_path = Path.GetDirectoryName(path); + if (dir_path != "") + Directory.CreateDirectory(dir_path); + File.Create(path).Close(); + } + } + + public class TrashHandler + { + public static void EmptyThryTrash() + { + if (Directory.Exists(PATH.DELETING_DIR)) + { + DeleteDirectory(PATH.DELETING_DIR); + } + } + + public static void MoveDirectoryToTrash(string path) + { + string name = Path.GetFileName(path); + if (!Directory.Exists(PATH.DELETING_DIR)) + Directory.CreateDirectory(PATH.DELETING_DIR); + int i = 0; + string newpath = PATH.DELETING_DIR + "/" + name + i; + while (Directory.Exists(newpath)) + newpath = PATH.DELETING_DIR + "/" + name + (++i); + Directory.Move(path, newpath); + } + + static void DeleteDirectory(string path) + { + foreach (string f in Directory.GetFiles(path)) + DeleteFile(f); + foreach (string d in Directory.GetDirectories(path)) + DeleteDirectory(d); + if (Directory.GetFiles(path).Length + Directory.GetDirectories(path).Length == 0) + Directory.Delete(path); + } + static void DeleteFile(string path) + { + try + { + File.Delete(path); + } + catch (Exception e) + { + e.GetType(); + } + } + } + + public class TextureHelper + { + public static Gradient GetGradient(Texture texture) + { + if (texture != null) + { + string gradient_data_string = FileHelper.LoadValueFromFile(texture.name, PATH.GRADIENT_INFO_FILE); + if (gradient_data_string != null) + { + Debug.Log(texture.name + " Gradient loaded from file."); + Gradient g = Parser.Deserialize<Gradient>(gradient_data_string); + return g; + } + Debug.Log(texture.name + " Converted into Gradient."); + return Converter.TextureToGradient(GetReadableTexture(texture)); + } + return new Gradient(); + } + + private static Texture2D s_BackgroundTexture; + + public static Texture2D GetBackgroundTexture() + { + if (s_BackgroundTexture == null) + s_BackgroundTexture = CreateCheckerTexture(32, 4, 4, Color.white, new Color(0.7f, 0.7f, 0.7f)); + return s_BackgroundTexture; + } + + public static Texture2D CreateCheckerTexture(int numCols, int numRows, int cellPixelWidth, Color col1, Color col2) + { + int height = numRows * cellPixelWidth; + int width = numCols * cellPixelWidth; + + Texture2D texture = new Texture2D(width, height, TextureFormat.RGBA32, false); + texture.hideFlags = HideFlags.HideAndDontSave; + Color[] pixels = new Color[width * height]; + + for (int i = 0; i < numRows; i++) + for (int j = 0; j < numCols; j++) + for (int ci = 0; ci < cellPixelWidth; ci++) + for (int cj = 0; cj < cellPixelWidth; cj++) + pixels[(i * cellPixelWidth + ci) * width + j * cellPixelWidth + cj] = ((i + j) % 2 == 0) ? col1 : col2; + + texture.SetPixels(pixels); + texture.Apply(); + return texture; + } + + public static Texture SaveTextureAsPNG(Texture2D texture, string path, TextureData settings) + { + if (!path.EndsWith(".png")) + path += ".png"; + byte[] encoding = texture.EncodeToPNG(); + Debug.Log("Texture saved at \"" + path + "\"."); + FileHelper.writeBytesToFile(encoding, path); + + AssetDatabase.ImportAsset(path); + if (settings != null) + settings.ApplyModes(path); + Texture saved = AssetDatabase.LoadAssetAtPath<Texture>(path); + return saved; + } + + public static void MakeTextureReadible(string path) + { + TextureImporter importer = (TextureImporter)TextureImporter.GetAtPath(path); + if (!importer.isReadable) + { + importer.isReadable = true; + importer.SaveAndReimport(); + } + } + + public static Texture2D GetReadableTexture(Texture texture) + { + RenderTexture temp = RenderTexture.GetTemporary(texture.width, texture.height, 0, RenderTextureFormat.Default, RenderTextureReadWrite.Linear); + Graphics.Blit(texture, temp); + RenderTexture previous = RenderTexture.active; + RenderTexture.active = temp; + Texture2D ret = new Texture2D(texture.width, texture.height); + ret.ReadPixels(new Rect(0, 0, temp.width, temp.height), 0, 0); + ret.Apply(); + RenderTexture.active = previous; + RenderTexture.ReleaseTemporary(temp); + return ret; + } + + public static Texture2D Resize(Texture2D texture, int width, int height) + { + Texture2D ret = new Texture2D(width, height, texture.format, texture.mipmapCount > 0); + float scaleX = ((float)texture.width) / width; + float scaleY = ((float)texture.height) / height; + for (int x = 0; x < width; x++) + { + for (int y = 0; y < height; y++) + { + ret.SetPixel(x, y, texture.GetPixel((int)(scaleX * x), (int)(scaleY * y))); + } + } + ret.Apply(); + return ret; + } + } + + public class MaterialHelper + { + public static void UpdateTargetsValue(MaterialProperty p, System.Object value) + { + if (p.type == MaterialProperty.PropType.Texture) + foreach (UnityEngine.Object m in p.targets) + ((Material)m).SetTexture(p.name, (Texture)value); + else if (p.type == MaterialProperty.PropType.Float) + { + foreach (UnityEngine.Object m in p.targets) + if (value.GetType() == typeof(float)) + ((Material)m).SetFloat(p.name, (float)value); + else if (value.GetType() == typeof(int)) + ((Material)m).SetFloat(p.name, (int)value); + } + } + + public static void UpdateTextureValue(MaterialProperty prop, Texture texture) + { + foreach (UnityEngine.Object m in prop.targets) + { + ((Material)m).SetTexture(prop.name, texture); + } + prop.textureValue = texture; + } + + public static void UpdateFloatValue(MaterialProperty prop, float f) + { + foreach (UnityEngine.Object m in prop.targets) + { + ((Material)m).SetFloat(prop.name, f); + } + prop.floatValue = f; + } + + public static void ToggleKeyword(Material material, string keyword, bool turn_on) + { + bool is_on = material.IsKeywordEnabled(keyword); + if (is_on && !turn_on) + material.DisableKeyword(keyword); + else if (!is_on && turn_on) + material.EnableKeyword(keyword); + } + + public static void ToggleKeyword(Material[] materials, string keyword, bool on) + { + foreach (Material m in materials) + ToggleKeyword(m, keyword, on); + } + + public static void ToggleKeyword(MaterialProperty p, string keyword, bool on) + { + foreach (UnityEngine.Object o in p.targets) + ToggleKeyword((Material)o, keyword, on); + } + + /// <summary> + /// Set Material Property value or Renderqueue of current Editor. + /// </summary> + /// <param name="key">Property Name or "render_queue"</param> + /// <param name="value"></param> + public static void SetMaterialValue(string key, string value) + { + Material[] materials = ShaderEditor.active.materials; + MaterialProperty p = ShaderEditor.active.GetMaterialProperty(key); + if (p != null) + { + MaterialHelper.SetMaterialPropertyValue(p, materials, value); + } + else if (key == "render_queue") + { + int q = 0; + if (int.TryParse(value, out q)) + { + foreach (Material m in materials) m.renderQueue = q; + } + }else if (key == "render_type") + { + foreach (Material m in materials) m.SetOverrideTag("RenderType", value); + } + } + + public static void SetMaterialPropertyValue(MaterialProperty p, Material[] materials, string value) + { + if (p.type == MaterialProperty.PropType.Texture) + { + Texture tex = AssetDatabase.LoadAssetAtPath<Texture>(value); + if (tex != null) + foreach (Material m in materials) m.SetTexture(p.name, tex); + } + else if (p.type == MaterialProperty.PropType.Float || p.type == MaterialProperty.PropType.Range) + { + float f_value; + if (float.TryParse(Parser.GlobalizationFloat(value), out f_value)) + { + p.floatValue = f_value; + string[] drawer = ShaderHelper.GetDrawer(p); + if (drawer != null && drawer.Length > 1 && drawer[0] == "Toggle" && drawer[1] != "__") + MaterialHelper.ToggleKeyword(p, drawer[1], f_value == 1); + } + } + else if (p.type == MaterialProperty.PropType.Vector) + { + string[] xyzw = value.Split(",".ToCharArray()); + Vector4 vector = new Vector4(float.Parse(xyzw[0]), float.Parse(xyzw[1]), float.Parse(xyzw[2]), float.Parse(xyzw[3])); + foreach (Material m in materials) m.SetVector(p.name, vector); + } + else if (p.type == MaterialProperty.PropType.Color) + { + Color col = Converter.stringToColor(value); + foreach (Material m in materials) m.SetColor(p.name, col); + } + } + + public static void CopyPropertyValueFromMaterial(MaterialProperty p, Material source) + { + switch (p.type) + { + case MaterialProperty.PropType.Float: + case MaterialProperty.PropType.Range: + float f = source.GetFloat(p.name); + p.floatValue = f; + string[] drawer = ShaderHelper.GetDrawer(p); + if (drawer != null && drawer.Length > 1 && drawer[0] == "Toggle" && drawer[1] != "__") + ToggleKeyword(p, drawer[1], f == 1); + break; + case MaterialProperty.PropType.Color: + Color c = source.GetColor(p.name); + p.colorValue = c; + break; + case MaterialProperty.PropType.Vector: + Vector4 vector = source.GetVector(p.name); + p.vectorValue = vector; + break; + case MaterialProperty.PropType.Texture: + Texture t = source.GetTexture(p.name); + Vector2 offset = source.GetTextureOffset(p.name); + Vector2 scale = source.GetTextureScale(p.name); + p.textureValue = t; + p.textureScaleAndOffset = new Vector4(scale.x, scale.y, offset.x, offset.y); + break; + } + } + + public static void CopyMaterialTagFromMaterial(Material[] targets, Material source, string tag, string defaultValue) + { + string val = source.GetTag(tag, false, defaultValue); + foreach(Material m in targets) + { + m.SetOverrideTag(tag, val); + } + } + + public static void CopyMaterialValueFromProperty(MaterialProperty target, MaterialProperty source) + { + switch (target.type) + { + case MaterialProperty.PropType.Float: + case MaterialProperty.PropType.Range: + target.floatValue = source.floatValue; + string[] drawer = ShaderHelper.GetDrawer(target); + if (drawer != null && drawer.Length > 1 && drawer[0] == "Toggle" && drawer[1] != "__") + ToggleKeyword(target, drawer[1], source.floatValue == 1); + break; + case MaterialProperty.PropType.Color: + target.colorValue = source.colorValue; + break; + case MaterialProperty.PropType.Vector: + target.vectorValue = source.vectorValue; + break; + case MaterialProperty.PropType.Texture: + target.textureValue = source.textureValue; + target.textureScaleAndOffset = source.textureScaleAndOffset; + break; + } + } + + public static void CopyPropertyValueToMaterial(MaterialProperty source, Material target) + { + switch (source.type) + { + case MaterialProperty.PropType.Float: + case MaterialProperty.PropType.Range: + float f = source.floatValue; + target.SetFloat(source.name, f); + string[] drawer = ShaderHelper.GetDrawer(source); + if (drawer != null && drawer.Length > 1 && drawer[0] == "Toggle" && drawer[1] != "__") + ToggleKeyword(target, drawer[1], f == 1); + break; + case MaterialProperty.PropType.Color: + Color c = source.colorValue; + target.SetColor(source.name, c); + break; + case MaterialProperty.PropType.Vector: + Vector4 vector = source.vectorValue; + target.SetVector(source.name, vector); + break; + case MaterialProperty.PropType.Texture: + Texture t = source.textureValue; + Vector4 scaleoffset = source.textureScaleAndOffset; + target.SetTexture(source.name, t); + target.SetTextureOffset(source.name, new Vector2(scaleoffset.z,scaleoffset.w)); + target.SetTextureScale(source.name, new Vector2(scaleoffset.x,scaleoffset.y)); + break; + } + } + } + + public class ColorHelper + { + public static Color Subtract(Color col1, Color col2) + { + return ColorMath(col1, col2, 1, -1); + } + + public static Color ColorMath(Color col1, Color col2, float multiplier1, float multiplier2) + { + return new Color(col1.r * multiplier1 + col2.r * multiplier2, col1.g * multiplier1 + col2.g * multiplier2, col1.b * multiplier1 + col2.b * multiplier2); + } + + public static float ColorDifference(Color col1, Color col2) + { + return Math.Abs(col1.r - col2.r) + Math.Abs(col1.g - col2.g) + Math.Abs(col1.b - col2.b) + Math.Abs(col1.a - col2.a); + } + } + + public class Converter + { + + public static Color stringToColor(string s) + { + s = s.Trim(new char[] { '(', ')' }); + string[] split = s.Split(",".ToCharArray()); + float[] rgba = new float[4] { 1, 1, 1, 1 }; + for (int i = 0; i < split.Length; i++) if (split[i].Replace(" ", "") != "") rgba[i] = float.Parse(split[i]); + return new Color(rgba[0], rgba[1], rgba[2], rgba[3]); + + } + + public static Vector4 stringToVector(string s) + { + s = s.Trim(new char[] { '(', ')' }); + string[] split = s.Split(",".ToCharArray()); + float[] xyzw = new float[4]; + for (int i = 0; i < 4; i++) if (i < split.Length && split[i].Replace(" ", "") != "") xyzw[i] = float.Parse(split[i]); else xyzw[i] = 0; + return new Vector4(xyzw[0], xyzw[1], xyzw[2], xyzw[3]); + } + + public static string MaterialsToString(Material[] materials) + { + string s = ""; + foreach (Material m in materials) + s += "\"" + m.name + "\"" + ","; + s = s.TrimEnd(','); + return s; + } + + public static string ArrayToString(object[] a) + { + string ret = ""; + foreach (object o in a) + ret += o.ToString() + ","; + return ret.TrimEnd(new char[] { ',' }); + } + + public static string ArrayToString(Array a) + { + string ret = ""; + foreach (object o in a) + ret += o.ToString() + ","; + return ret.TrimEnd(new char[] { ',' }); + } + + //--Start--Gradient + public static Gradient TextureToGradient(Texture2D texture) + { + texture = Gradient_Resize(texture); + Color[] values = Gradient_Sample(texture); + //values = Gradient_Smooth(values); + Color[] delta = CalcDelta(values); + delta[0] = delta[1]; + Color[] delta_delta = CalcDelta(delta); + //PrintColorArray(delta_delta); + List<Color[]> changes = DeltaDeltaToChanges(delta_delta, values); + changes = RemoveChangesUnderDistanceThreshold(changes); + SortChanges(changes); + //PrintColorList(changes); + return ConstructGradient(changes, values); + } + + private static Texture2D Gradient_Resize(Texture2D texture) + { + return TextureHelper.Resize(texture, 512, 512); + } + + private static Color[] Gradient_Sample(Texture2D texture) + { + texture.wrapMode = TextureWrapMode.Clamp; + int length = texture.width; + Color[] ar = new Color[length]; + for (int i = 0; i < length; i++) + { + ar[i] = texture.GetPixel(i, i); + } + return ar; + } + + private static Color[] Gradient_Smooth(Color[] values) + { + Color[] ar = new Color[values.Length]; + ar[0] = values[0]; + ar[ar.Length - 1] = values[ar.Length - 1]; + for (int i = 1; i < values.Length - 1; i++) + { + ar[i] = new Color(); + ar[i].r = (values[i - 1].r + values[i].r + values[i + 1].r) / 3; + ar[i].g = (values[i - 1].g + values[i].g + values[i + 1].g) / 3; + ar[i].b = (values[i - 1].b + values[i].b + values[i + 1].b) / 3; + } + return ar; + } + + private static Color[] CalcDelta(Color[] values) + { + Color[] delta = new Color[values.Length]; + delta[0] = new Color(0, 0, 0); + for (int i = 1; i < values.Length; i++) + { + delta[i] = ColorSubtract(values[i - 1], values[i]); + } + return delta; + } + + private static List<Color[]> DeltaDeltaToChanges(Color[] deltadelta, Color[] values) + { + List<Color[]> changes = new List<Color[]>(); + for (int i = 0; i < deltadelta.Length; i++) + { + if (deltadelta[i].r != 0 || deltadelta[i].g != 0 || deltadelta[i].b != 0) + { + deltadelta[i].a = i / 512.0f; + Color[] new_change = new Color[2]; + new_change[0] = deltadelta[i]; + new_change[1] = values[i]; + changes.Add(new_change); + } + } + return changes; + } + + const float GRADIENT_DISTANCE_THRESHOLD = 0.05f; + private static List<Color[]> RemoveChangesUnderDistanceThreshold(List<Color[]> changes) + { + List<Color[]> new_changes = new List<Color[]>(); + new_changes.Add(changes[0]); + for (int i = 1; i < changes.Count; i++) + { + + if (changes[i][0].a - new_changes[new_changes.Count - 1][0].a < GRADIENT_DISTANCE_THRESHOLD) + { + if (ColorValueForDelta(new_changes[new_changes.Count - 1][0]) < ColorValueForDelta(changes[i][0])) + { + new_changes.RemoveAt(new_changes.Count - 1); + new_changes.Add(changes[i]); + } + } + else + { + new_changes.Add(changes[i]); + } + } + return new_changes; + } + + private static void SortChanges(List<Color[]> changes) + { + changes.Sort(delegate (Color[] x, Color[] y) + { + float sizeX = ColorValueForDelta(x[0]); + float sizeY = ColorValueForDelta(y[0]); + if (sizeX < sizeY) return 1; + else if (sizeY < sizeX) return -1; + return 0; + }); + } + + private static Gradient ConstructGradient(List<Color[]> changes, Color[] values) + { + List<GradientAlphaKey> alphas = new List<GradientAlphaKey>(); + List<GradientColorKey> colors = new List<GradientColorKey>(); + for (int i = 0; i < 6 && i < changes.Count; i++) + { + colors.Add(new GradientColorKey(changes[i][1], changes[i][0].a)); + //Debug.Log("key " + changes[i][0].a); + } + colors.Add(new GradientColorKey(values[0], 0)); + colors.Add(new GradientColorKey(values[values.Length - 1], 1)); + alphas.Add(new GradientAlphaKey(1, 0)); + alphas.Add(new GradientAlphaKey(1, 1)); + Gradient gradient = new Gradient(); + gradient.SetKeys(colors.ToArray(), alphas.ToArray()); + return gradient; + } + + private static void PrintColorArray(Color[] ar) + { + foreach (Color c in ar) + Debug.Log(c.ToString()); + } + private static void PrintColorList(List<Color[]> ar) + { + foreach (Color[] x in ar) + Debug.Log(ColorValueForDelta(x[0]) + ":" + x[0].ToString()); + } + + private static float ColorValueForDelta(Color col) + { + return Mathf.Abs(col.r) + Mathf.Abs(col.g) + Mathf.Abs(col.b); + } + + private static Color ColorAdd(Color col1, Color col2) + { + return new Color(col1.r + col2.r, col1.g + col2.g, col1.b + col2.b); + } + private static Color ColorSubtract(Color col1, Color col2) + { + return new Color(col1.r - col2.r, col1.g - col2.g, col1.b - col2.b); + } + + public static Texture2D GradientToTexture(Gradient gradient, int width, int height) + { + Texture2D texture = new Texture2D(width, height); + for (int x = 0; x < width; x++) + { + Color col = gradient.Evaluate((float)x / width); + for (int y = 0; y < height; y++) texture.SetPixel(x, y, col); + } + texture.Apply(); + return texture; + } + + //--End--Gradient + + public static Texture2D CurveToTexture(AnimationCurve curve, TextureData texture_settings) + { + Texture2D texture = new Texture2D(texture_settings.width, texture_settings.height); + for (int i = 0; i < texture_settings.width; i++) + { + Color color = new Color(); + float value = curve.Evaluate((float)i / texture_settings.width); + value = Mathf.Clamp01(value); + if (texture_settings.channel == 'r') + color.r = value; + else if (texture_settings.channel == 'g') + color.g = value; + else if (texture_settings.channel == 'b') + color.b = value; + else if (texture_settings.channel == 'a') + color.a = value; + if (texture_settings.channel != 'a') + color.a = 1; + for (int y = 0; y < texture_settings.height; y++) + texture.SetPixel(i, y, color); + } + texture.Apply(); + texture_settings.ApplyModes(texture); + return texture; + } + + //==============Texture Array================= + + [MenuItem("Assets/Thry/Flipbooks/Images 2 TextureArray",false, 303)] + static void SelectionImagesToTextureArray() + { + string[] paths = Selection.assetGUIDs.Select(g => AssetDatabase.GUIDToAssetPath(g)).ToArray(); + PathsToTexture2DArray(paths); + } + + [MenuItem("Assets/Thry/Flipbooks/Images 2 TextureArray", true)] + static bool SelectionImagesToTextureArrayValidator() + { + if (Selection.assetGUIDs != null && Selection.assetGUIDs.Length > 0) + { + return Selection.assetGUIDs.All(g => Regex.IsMatch(AssetDatabase.GUIDToAssetPath(g), @".*\.(png)|(jpg)")); + } + return false; + } + + public static Texture2DArray PathsToTexture2DArray(string[] paths) + { + if (paths.Length == 0) + return null; + if (paths[0].EndsWith(".gif")) + { + return Converter.GifToTextureArray(paths[0]); + } + else + { +#if SYSTEM_DRAWING + Texture2D[] wew = paths.Where(p=> AssetDatabase.GetMainAssetTypeAtPath(p).IsAssignableFrom(typeof(Texture2D))).Select(p => AssetDatabase.LoadAssetAtPath<Texture2D>(p)).ToArray(); + Array.Sort(wew, (UnityEngine.Object one, UnityEngine.Object two) => one.name.CompareTo(two.name)); + Selection.objects = wew; + Texture2DArray texture2DArray = new Texture2DArray(wew[0].width, wew[0].height, wew.Length, wew[0].format, true); + + string assetPath = AssetDatabase.GetAssetPath(wew[0]); + assetPath = assetPath.Remove(assetPath.LastIndexOf('/')) + "/Texture2DArray.asset"; + + for (int i = 0; i < wew.Length; i++) + { + for (int m = 0; m < wew[i].mipmapCount; m++) + { + Graphics.CopyTexture(wew[i], 0, m, texture2DArray, i, m); + } + } + + texture2DArray.anisoLevel = wew[0].anisoLevel; + texture2DArray.wrapModeU = wew[0].wrapModeU; + texture2DArray.wrapModeV = wew[0].wrapModeV; + texture2DArray.Apply(false, true); + + AssetDatabase.CreateAsset(texture2DArray, assetPath); + AssetDatabase.SaveAssets(); + + Selection.activeObject = texture2DArray; + return texture2DArray; +#endif + } + return null; + } + + [MenuItem("Assets/Thry/Flipbooks/Gif 2 TextureArray",false, 303)] + static void SelectionGifToTextureArray() + { + GifToTextureArray(AssetDatabase.GUIDToAssetPath(Selection.assetGUIDs[0])); + } + + [MenuItem("Assets/Thry/Flipbooks/Gif 2 TextureArray", true)] + static bool SelectionGifToTextureArrayValidator() + { + if (Selection.assetGUIDs != null && Selection.assetGUIDs.Length > 0) + { + return AssetDatabase.GUIDToAssetPath(Selection.assetGUIDs[0]).EndsWith(".gif"); + } + return false; + } + + public static Texture2DArray GifToTextureArray(string path) + { + List<Texture2D> array = GetGifFrames(path); + if (array == null) return null; + if (array.Count == 0) + { + Debug.LogError("Gif is empty or System.Drawing is not working. Try right clicking and reimporting the \"Thry Editor\" Folder!"); + return null; + } + Texture2DArray arrayTexture = Textre2DArrayToAsset(array.ToArray()); + AssetDatabase.CreateAsset(arrayTexture, path.Replace(".gif", ".asset")); + AssetDatabase.SaveAssets(); + return arrayTexture; + } + + public static List<Texture2D> GetGifFrames(string path) + { + List<Texture2D> gifFrames = new List<Texture2D>(); +#if SYSTEM_DRAWING + var gifImage = System.Drawing.Image.FromFile(path); + var dimension = new System.Drawing.Imaging.FrameDimension(gifImage.FrameDimensionsList[0]); + + int width = Mathf.ClosestPowerOfTwo(gifImage.Width - 1); + int height = Mathf.ClosestPowerOfTwo(gifImage.Height - 1); + + bool hasAlpha = false; + + int frameCount = gifImage.GetFrameCount(dimension); + + float totalProgress = frameCount * width; + for (int i = 0; i < frameCount; i++) + { + gifImage.SelectActiveFrame(dimension, i); + var ogframe = new System.Drawing.Bitmap(gifImage.Width, gifImage.Height); + System.Drawing.Graphics.FromImage(ogframe).DrawImage(gifImage, System.Drawing.Point.Empty); + var frame = ResizeBitmap(ogframe, width, height); + + Texture2D frameTexture = new Texture2D(frame.Width, frame.Height); + + float doneProgress = i * width; + for (int x = 0; x < frame.Width; x++) + { + if (x % 20 == 0) + if (EditorUtility.DisplayCancelableProgressBar("From GIF", "Frame " + i + ": " + (int)((float)x / width * 100) + "%", (doneProgress + x + 1) / totalProgress)) + { + EditorUtility.ClearProgressBar(); + return null; + } + + for (int y = 0; y < frame.Height; y++) + { + System.Drawing.Color sourceColor = frame.GetPixel(x, y); + frameTexture.SetPixel(x, frame.Height - 1 - y, new UnityEngine.Color32(sourceColor.R, sourceColor.G, sourceColor.B, sourceColor.A)); + if (sourceColor.A < 255.0f) + { + hasAlpha = true; + } + } + } + + frameTexture.Apply(); + gifFrames.Add(frameTexture); + } + EditorUtility.ClearProgressBar(); + //Debug.Log("has alpha? " + hasAlpha); + for (int i = 0; i < frameCount; i++) + { + EditorUtility.CompressTexture(gifFrames[i], hasAlpha ? TextureFormat.DXT5 : TextureFormat.DXT1, UnityEditor.TextureCompressionQuality.Normal); + gifFrames[i].Apply(true, false); + } +#endif + return gifFrames; + } + +#if SYSTEM_DRAWING + public static System.Drawing.Bitmap ResizeBitmap(System.Drawing.Image image, int width, int height) + { + var destRect = new System.Drawing.Rectangle(0, 0, width, height); + var destImage = new System.Drawing.Bitmap(width, height); + + destImage.SetResolution(image.HorizontalResolution, image.VerticalResolution); + + using (var graphics = System.Drawing.Graphics.FromImage(destImage)) + { + graphics.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceCopy; + graphics.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality; + graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; + graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; + graphics.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality; + + using (var wrapMode = new System.Drawing.Imaging.ImageAttributes()) + { + wrapMode.SetWrapMode(System.Drawing.Drawing2D.WrapMode.TileFlipXY); + graphics.DrawImage(image, destRect, 0, 0, image.Width, image.Height, System.Drawing.GraphicsUnit.Pixel, wrapMode); + } + } + + return destImage; + } +#endif + + private static Texture2DArray Textre2DArrayToAsset(Texture2D[] array) + { + Texture2DArray texture2DArray = new Texture2DArray(array[0].width, array[0].height, array.Length, array[0].format, true); + +#if SYSTEM_DRAWING + for (int i = 0; i < array.Length; i++) + { + for (int m = 0; m < array[i].mipmapCount; m++) + { + UnityEngine.Graphics.CopyTexture(array[i], 0, m, texture2DArray, i, m); + } + } +#endif + + texture2DArray.anisoLevel = array[0].anisoLevel; + texture2DArray.wrapModeU = array[0].wrapModeU; + texture2DArray.wrapModeV = array[0].wrapModeV; + + texture2DArray.Apply(false, true); + + return texture2DArray; + } + } + + public class ShaderHelper + { + + private static Dictionary<Shader, Dictionary<string, string[]>> shader_property_drawers = new Dictionary<Shader, Dictionary<string, string[]>>(); + public static string[] GetDrawer(MaterialProperty property) + { + Shader shader = ((Material)property.targets[0]).shader; + + if (!shader_property_drawers.ContainsKey(shader)) + LoadShaderPropertyDrawers(shader); + + Dictionary<string, string[]> property_drawers = shader_property_drawers[shader]; + if (property_drawers.ContainsKey(property.name)) + return property_drawers[property.name]; + return null; + } + + public static void LoadShaderPropertyDrawers(Shader shader) + { + string path = AssetDatabase.GetAssetPath(shader); + string code = FileHelper.ReadFileIntoString(path); + code = Helper.GetStringBetweenBracketsAndAfterId(code, "Properties", new char[] { '{', '}' }); + MatchCollection matchCollection = Regex.Matches(code, @"\[.*\].*(?=\()"); + Dictionary<string, string[]> property_drawers = new Dictionary<string, string[]>(); + foreach (Match match in matchCollection) + { + string[] drawers_or_flag_code = GetDrawersFlagsCode(match.Value); + string drawer_code = GetNonFlagDrawer(drawers_or_flag_code); + if (drawer_code == null) + continue; + + string property_name = Regex.Match(match.Value, @"(?<=\])[^\[]*$").Value.Trim(); + + List<string> drawer_and_parameters = new List<string>(); + drawer_and_parameters.Add(Regex.Split(drawer_code, @"\(")[0]); + + GetDrawerParameters(drawer_code, drawer_and_parameters); + + property_drawers[property_name] = drawer_and_parameters.ToArray(); + } + shader_property_drawers[shader] = property_drawers; + } + + private static void GetDrawerParameters(string code, List<string> list) + { + MatchCollection matchCollection = Regex.Matches(code, @"(?<=\(|,).*?(?=\)|,)"); + foreach (Match m in matchCollection) + list.Add(m.Value); + } + + private static string GetNonFlagDrawer(string[] codes) + { + foreach (string c in codes) + if (!DrawerIsFlag(c)) + return c; + return null; + } + + private static bool DrawerIsFlag(string code) + { + return (code == "HideInInspector" || code == "NoScaleOffset" || code == "Normal" || code == "HDR" || code == "Gamma" || code == "PerRendererData"); + } + + private static string[] GetDrawersFlagsCode(string line) + { + MatchCollection matchCollection = Regex.Matches(line, @"(?<=\[).*?(?=\])"); + string[] codes = new string[matchCollection.Count]; + int i = 0; + foreach (Match m in matchCollection) + codes[i++] = m.Value; + return codes; + } + //------------Track ShaderEditor shaders------------------- + + public class ShaderEditorShader + { + public string path; + public string name; + public string version; + } + + private static List<ShaderEditorShader> shaders; + private static Dictionary<string, ShaderEditorShader> dictionary; + public static List<ShaderEditorShader> thry_editor_shaders + { + get + { + Init(); + return shaders; + } + } + + private static void Init() + { + if (shaders == null) + LoadShaderEditorShaders(); + } + + private static void Add(ShaderEditorShader s) + { + Init(); + if (!dictionary.ContainsKey(s.name)) + { + dictionary.Add(s.name, s); + shaders.Add(s); + } + } + + private static void RemoveAt(int i) + { + Init(); + if (dictionary.ContainsKey(shaders[i].name)) + { + dictionary.Remove(shaders[i].name); + shaders.RemoveAt(i--); + } + } + + public static string[] GetShaderEditorShaderNames() + { + string[] r = new string[thry_editor_shaders.Count]; + for (int i = 0; i < r.Length; i++) + r[i] = thry_editor_shaders[i].name; + return r; + } + + public static bool IsShaderUsingShaderEditor(Shader shader) + { + Init(); + return dictionary.ContainsKey(shader.name); + } + + + private static void LoadShaderEditorShaders() + { + string data = FileHelper.ReadFileIntoString(PATH.THRY_EDITOR_SHADERS); + if (data != "") + { + shaders = Parser.ParseToObject<List<ShaderEditorShader>>(data); + InitDictionary(); + } + else + { + dictionary = new Dictionary<string, ShaderEditorShader>(); + SearchAllShadersForShaderEditorUsage(); + } + DeleteNull(); + } + + private static void InitDictionary() + { + dictionary = new Dictionary<string, ShaderEditorShader>(); + foreach (ShaderEditorShader s in shaders) + { + if (s != null && s.name != null && dictionary.ContainsKey(s.name) == false) + dictionary.Add(s.name, s); + } + } + + public static void SearchAllShadersForShaderEditorUsage() + { + shaders = new List<ShaderEditorShader>(); + string[] guids = AssetDatabase.FindAssets("t:shader"); + foreach (string g in guids) + { + string path = AssetDatabase.GUIDToAssetPath(g); + TestShaderForShaderEditor(path); + } + Save(); + } + + private static void DeleteNull() + { + bool save = false; + int length = shaders.Count; + for (int i = 0; i < length; i++) + { + if (shaders[i] == null) + { + RemoveAt(i--); + length--; + save = true; + } + } + if (save) + Save(); + } + + private static void Save() + { + FileHelper.WriteStringToFile(Parser.ObjectToString(shaders), PATH.THRY_EDITOR_SHADERS); + } + + private static string GetActiveCustomEditorParagraph(string code) + { + Match match = Regex.Match(code, @"(^|\*\/)((.|\n)(?!(\/\*)))*CustomEditor\s*\""(\w|\d)*\""((.|\n)(?!(\/\*)))*"); + if (match.Success) return match.Value; + return null; + } + + private static bool ParagraphContainsActiveShaderEditorDefinition(string code) + { + Match match = Regex.Match(code, @"\n\s+CustomEditor\s+\""ShaderEditor\"""); + return match.Success; + } + + private static bool ShaderUsesShaderEditor(string code) + { + string activeCustomEditorParagraph = GetActiveCustomEditorParagraph(code); + if (activeCustomEditorParagraph == null) + return false; + return ParagraphContainsActiveShaderEditorDefinition(activeCustomEditorParagraph); + } + + private static bool TestShaderForShaderEditor(string path) + { + string code = FileHelper.ReadFileIntoString(path); + if (ShaderUsesShaderEditor(code)) + { + ShaderEditorShader shader = new ShaderEditorShader(); + shader.path = path; + Match name_match = Regex.Match(code, @"(?<=[Ss]hader)\s*\""[^\""]+(?=\""\s*{)"); + if (name_match.Success) shader.name = name_match.Value.TrimStart(new char[] { ' ', '"' }); + Match master_label_match = Regex.Match(code, @"\[HideInInspector\]\s*shader_master_label\s*\(\s*\""[^\""]*(?=\"")"); + if (master_label_match.Success) shader.version = GetVersionFromMasterLabel(master_label_match.Value); + Add(shader); + return true; + } + return false; + } + + private static string GetVersionFromMasterLabel(string label) + { + Match match = Regex.Match(label, @"(?<=v|V)\d+(\.\d+)*"); + if (!match.Success) + match = Regex.Match(label, @"\d+(\.\d+)+"); + if (match.Success) + return match.Value; + return null; + } + + public static void AssetsImported(string[] paths) + { + bool save = false; + foreach (string path in paths) + { + if (!path.EndsWith(".shader")) + continue; + if (TestShaderForShaderEditor(path)) + save = true; + } + if (save) + Save(); + } + + public static void AssetsDeleted(string[] paths) + { + bool save = false; + foreach (string path in paths) + { + if (!path.EndsWith(".shader")) + continue; + int length = thry_editor_shaders.Count; + for (int i = 0; i < length; i++) + { + if (thry_editor_shaders[i] != null && thry_editor_shaders[i].path == path) + { + RemoveAt(i--); + length--; + save = true; + } + } + } + if (save) + Save(); + } + + public static void AssetsMoved(string[] old_paths, string[] paths) + { + bool save = false; + for (int i = 0; i < paths.Length; i++) + { + if (!paths[i].EndsWith(".shader")) + continue; + foreach (ShaderEditorShader s in thry_editor_shaders) + { + if (s == null) continue; + if (s.path == old_paths[i]) + { + s.path = paths[i]; + save = true; + } + } + } + if (save) + Save(); + } + + } + + public class StringHelper + { + public static string GetBetween(string value, string prefix, string postfix) + { + return GetBetween(value, prefix, postfix, value); + } + + public static string GetBetween(string value, string prefix, string postfix, string fallback) + { + string pattern = @"(?<=" + prefix + ").*?(?=" + postfix + ")"; + Match m = Regex.Match(value, pattern); + if (m.Success) + return m.Value; + return fallback; + } + + //returns data for name:{data} even if data containss brakets + public static string GetBracket(string data, string bracketName) + { + Match m = Regex.Match(data, bracketName + ":"); + if (m.Success) + { + int startIndex = m.Index + bracketName.Length + 2; + int i = startIndex; + int depth = 0; + while (++i < data.Length) + { + if (data[i] == '{') + depth++; + else if (data[i] == '}') + { + if (depth == 0) + break; + depth--; + } + } + return data.Substring(startIndex, i - startIndex); + } + return data; + } + } + + public class VRCInterface + { + private static VRCInterface instance; + public static VRCInterface Get() + { + if (instance == null) instance = new VRCInterface(); + return instance; + } + public static void Update() + { + instance = new VRCInterface(); + } + + public SDK_Information sdk_information; + + public class SDK_Information + { + public VRC_SDK_Type type; + public string installed_version = "0"; + } + + public enum VRC_SDK_Type + { + NONE = 0, + SDK_2 = 1, + SDK_3_Avatar = 2, + SDK_3_World = 3 + } + + private VRCInterface() + { + sdk_information = new SDK_Information(); + sdk_information.type = GetInstalledSDKType(); + InitInstalledSDKVersionAndPaths(); + } + + private void InitInstalledSDKVersionAndPaths() + { + string[] guids = AssetDatabase.FindAssets("version"); + string path = null; + string u_path = null; + foreach (string guid in guids) + { + string p = AssetDatabase.GUIDToAssetPath(guid); + if (p.Contains("VRCSDK/version")) + path = p; + } + if (path == null || !File.Exists(path)) + return; + string persistent = PersistentData.Get("vrc_sdk_version"); + if (persistent != null) + sdk_information.installed_version = persistent; + else + sdk_information.installed_version = Regex.Replace(FileHelper.ReadFileIntoString(path), @"\n?\r", ""); + } + + public VRC_SDK_Type GetInstalledSDKType() + { +#if VRC_SDK_VRCSDK3 && UDON + return VRC_SDK_Type.SDK_3_World; +#elif VRC_SDK_VRCSDK3 + return VRC_SDK_Type.SDK_3_Avatar; +#endif +#if VRC_SDK_VRCSDK2 + return VRC_SDK_Type.SDK_2; +#endif + return VRC_SDK_Type.NONE; + } + + private static bool IsVRCSDKInstalled() + { +#if VRC_SDK_VRCSDK3 + return true; +#endif +#if VRC_SDK_VRCSDK2 + return true; +#endif + return false; + } + } +} diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Helper.cs.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Helper.cs.meta new file mode 100644 index 00000000..7c0c79b5 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Helper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 878844302fe9a8b498f7002ac13ffc7a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/HelperWeb.cs b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/HelperWeb.cs new file mode 100644 index 00000000..58cf06a0 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/HelperWeb.cs @@ -0,0 +1,358 @@ +// Material/Shader Inspector for Unity 2017/2018 +// Copyright (C) 2019 Thryrallo + +using System; +using System.Collections; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Net; +using System.Net.Security; +using System.Security.Cryptography.X509Certificates; +using UnityEditor; +using UnityEngine; +using UnityEngine.Networking; + +namespace Thry +{ + public class WebHelper + { + public static string FixUrl(string url) + { + if (!url.StartsWith("http")) + url = "http://" + url; + url = url.Replace("\\","/"); + if (System.Text.RegularExpressions.Regex.IsMatch(url, @"^https?:\/[^\/].*")) + url = url.Replace(":/", "://"); + return url; + } + + public static string GetFinalRedirect(string url) + { + if (string.IsNullOrEmpty(url)) + return url; + try + { + UnityWebRequest request = new UnityWebRequest(url); + request.method = UnityWebRequest.kHttpVerbHEAD; + DownloadHandlerBuffer response = new DownloadHandlerBuffer(); + request.downloadHandler = response; + request.SendWebRequest(); + bool fetching = true; + while (fetching) + { + if (request.isHttpError || request.isNetworkError) + { + fetching = false; + Debug.Log(request.error); + } + if (request.isDone) + { + fetching = false; + } + } + return request.url; + } + catch (Exception ex) + { + ex.ToString(); + return null; + } + } + + //-------------------Downloaders----------------------------- + + [InitializeOnLoad] + public class MainThreader + { + private struct CallData + { + public Action<string> action; + public object[] arguments; + } + static List<CallData> queue; + + static MainThreader() + { + queue = new List<CallData>(); + EditorApplication.update += Update; + } + + public static void Call(Action<string> action, params object[] args) + { + if (action == null) + return; + CallData data = new CallData(); + data.action = action; + data.arguments = args; + if (args == null || args.Length == 0 || args[0] == null) + data.arguments = new object[] { "" }; + else + data.arguments = args; + queue.Add(data); + } + + public static void Update() + { + if (queue.Count > 0) + { + try + { + queue[0].action.DynamicInvoke(queue[0].arguments); + } + catch { } + queue.RemoveAt(0); + } + } + } + + public static void DownloadFile(string url, string path) + { + DownloadAsFile(url, path); + } + + public static void DownloadFileASync(string url, string path, Action<string> callback) + { + DownloadAsBytesASync(url, delegate (object o, DownloadDataCompletedEventArgs a) + { + if (a.Cancelled || a.Error != null) + MainThreader.Call(callback, null); + else + { + FileHelper.writeBytesToFile(a.Result, path); + MainThreader.Call(callback, path); + } + }); + } + + public static string DownloadString(string url) + { + return DownloadAsString(url); + } + + public static void DownloadStringASync(string url, Action<string> callback) + { + DownloadAsStringASync(url, delegate (object o, DownloadStringCompletedEventArgs e) + { + if (e.Cancelled || e.Error != null) + { + Debug.LogWarning(e.Error); + MainThreader.Call(callback, null); + } + else + MainThreader.Call(callback, e.Result); + }); + } + + private static void SetCertificate() + { + ServicePointManager.ServerCertificateValidationCallback = + delegate (object s, X509Certificate certificate, + X509Chain chain, SslPolicyErrors sslPolicyErrors) + { return true; }; + } + + private static string DownloadAsString(string url) + { + SetCertificate(); + string contents = null; + using (var wc = new System.Net.WebClient()) + contents = wc.DownloadString(url); + return contents; + } + + private static void DownloadAsStringASync(string url, Action<object, DownloadStringCompletedEventArgs> callback) + { + SetCertificate(); + using (var wc = new System.Net.WebClient()) + { + wc.Headers["User-Agent"] = "Mozilla/4.0 (Compatible; Windows NT 5.1; MSIE 6.0)"; + wc.DownloadStringCompleted += new DownloadStringCompletedEventHandler(callback); + wc.DownloadStringAsync(new Uri(url)); + } + } + + private static void DownloadAsFileASync(string url, string path, Action<object, AsyncCompletedEventArgs> callback) + { + SetCertificate(); + using (var wc = new System.Net.WebClient()) + { + wc.DownloadFileCompleted += new AsyncCompletedEventHandler(callback); + wc.DownloadFileAsync(new Uri(url), path); + } + } + + private static void DownloadAsFile(string url, string path) + { + SetCertificate(); + using (var wc = new System.Net.WebClient()) + wc.DownloadFile(url, path); + } + + private static byte[] DownloadAsBytes(string url) + { + SetCertificate(); + byte[] contents = null; + using (var wc = new System.Net.WebClient()) + contents = wc.DownloadData(url); + return contents; + } + + private static void DownloadAsBytesASync(string url, Action<object, DownloadDataCompletedEventArgs> callback) + { + SetCertificate(); + using (var wc = new System.Net.WebClient()) + { + wc.DownloadDataCompleted += new DownloadDataCompletedEventHandler(callback); + url = FixUrl(url); + wc.DownloadDataAsync(new Uri(url)); + } + } + } + + public class WebHelper2 + { + + public static void DownloadStringASync(string url, Action<string> callback) + { + Downloader downloader = new Downloader(); + downloader.url = url; + downloader.callback = callback; + Coroutines.AddRoutine(downloader.DownloadStringCorroutine()); + } + + public static void DownloadFileASync(string url, string path, Action<string> callback) + { + Downloader downloader = new Downloader(); + downloader.url = url; + downloader.path = path; + downloader.callback = callback; + Coroutines.AddRoutine(downloader.DownloadFileCorroutine()); + } + + public class Downloader{ + + public Action<string> callback; + public string path; + public string url; + + public IEnumerator<float> DownloadStringCorroutine() + { + UnityWebRequest request = new UnityWebRequest(url); + request.method = UnityWebRequest.kHttpVerbGET; + DownloadHandlerBuffer response = new DownloadHandlerBuffer(); + request.downloadHandler = response; + request.SendWebRequest(); + bool fetching = true; + while (fetching) + { + yield return 0.3f; + if (request.isHttpError || request.isNetworkError) + { + fetching = false; + Debug.Log(request.error); + } + if (request.isDone) + { + fetching = false; + callback(response.text); + } + } + } + + public IEnumerator<float> DownloadFileCorroutine() + { + UnityWebRequest request = new UnityWebRequest(url); + request.method = UnityWebRequest.kHttpVerbGET; + DownloadHandlerBuffer response = new DownloadHandlerBuffer(); + request.downloadHandler = response; + request.SendWebRequest(); + bool fetching = true; + while (fetching) + { + yield return 0.3f; + if (request.isHttpError || request.isNetworkError) + { + fetching = false; + Debug.Log(request.error); + } + if (request.isDone) + { + fetching = false; + FileHelper.writeBytesToFile(response.data, path); + if(callback!=null) + callback(null); + } + } + } + } + + + + } + + public class Coroutines + { + private static List<TimedCoroutine> active_routines = new List<TimedCoroutine>(); + private static DateTime previousTime; + + public static void AddRoutine(IEnumerator<float> coroutine) + { + active_routines.Add(new TimedCoroutine(coroutine)); + if(active_routines.Count==1) + EditorApplication.update += Update; + } + + private static void Update() + { + float deltaTime = (float)(DateTime.Now.Subtract(previousTime).TotalMilliseconds / 1000.0f); + previousTime = DateTime.Now; + + if (active_routines.Count > 0) + { + for(int i=0;i<active_routines.Count;i++) + { + if(active_routines[i].IsDoneWaiting(deltaTime)){ + if (active_routines[i].Continue()) + active_routines[i].ResetTimeLeft(); + else + active_routines.Remove(active_routines[i]); + } + } + } + else + { + EditorApplication.update -= Update; + } + } + + private class TimedCoroutine + { + private IEnumerator<float> coroutine; + private float wait_time_left; + + public TimedCoroutine(IEnumerator<float> coroutine) + { + this.coroutine = coroutine; + wait_time_left = this.coroutine.Current; + } + + public bool Continue() + { + return coroutine.MoveNext(); + } + + public void ResetTimeLeft() + { + wait_time_left = coroutine.Current; + } + + public bool IsDoneWaiting(float deltaTime) + { + wait_time_left -= deltaTime; + return wait_time_left < 0; + } + + } + } +}
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/HelperWeb.cs.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/HelperWeb.cs.meta new file mode 100644 index 00000000..a3ad8f6e --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/HelperWeb.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 907a3ff8fb013c44f8e504603af2a4a6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Locale.cs b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Locale.cs new file mode 100644 index 00000000..7c57ec6a --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Locale.cs @@ -0,0 +1,160 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; + +namespace Thry +{ + public class Locale + { + const string EDITOR_LOCALE_NAME = "thry_editor_locale"; + + private string[] languages; + public int selected_locale_index = 0; + private Dictionary<string, string[]> dictionary; + + public Locale(string file_name) + { + LoadCSV(file_name); + } + + public Locale(string file_name, string selected_name) + { + LoadCSV(file_name); + SetSelectedLocale(selected_name); + } + + public void SetSelectedLocale(string name) + { + for (int i = 0; i < languages.Length; i++) + if (languages[i].Equals(name)) + selected_locale_index = i; + } + + public string Get(string key) + { + return dictionary[key][selected_locale_index]; + } + + public bool Constains(string key) + { + return dictionary.ContainsKey(key) && string.IsNullOrEmpty(dictionary[key][selected_locale_index]) == false; + } + + public string[] available_locales + { + get + { + return languages; + } + } + + public Dictionary<string,string[]>.KeyCollection GetAllKeys() + { + return dictionary.Keys; + } + + public void LoadCSV(string file_name) + { + List<string> files = UnityHelper.FindAssetOfFilesWithExtension(file_name + ".csv"); + if (files.Count > 0) + ParseCSV(FileHelper.ReadFileIntoString(files[0])); + else + throw new System.Exception("CVS File with name \"" + file_name + "\" could not be found."); + } + + private static Locale p_editor; + public static Locale editor + { + get + { + if (p_editor == null) + p_editor = new Locale(EDITOR_LOCALE_NAME); + return p_editor; + } + } + + private void ParseCSV(string text) + { + List<List<string>> lines = GetCVSFields(text); + InitLanguages(lines); + lines.RemoveAt(0); + InitDictionary(lines); + } + + private void InitLanguages(List<List<string>> lines) + { + languages = new string[lines[0].Count - 1]; + for (int i = 0; i < languages.Length; i++) + languages[i] = lines[0][i + 1]; + } + + private void InitDictionary(List<List<string>> lines) + { + dictionary = new Dictionary<string, string[]>(); + foreach(List<string> line in lines) + { + string key = line[0]; + if (key == "") + continue; + string[] value = new string[languages.Length]; + value[0] = ""; + for(int i = 0; i < value.Length; i++) + { + if (line.Count > i + 1 && line[i + 1] != "") + value[i] = line[i + 1]; + else + value[i] = value[0]; + value[i] = value[i].Replace("\\n", "\n"); + } + dictionary.Add(key, value); + } + } + + private static List<List<string>> GetCVSFields(string text) + { + char[] array = text.ToCharArray(); + List<List<string>> lines = new List<List<string>>(); + List<string> current_line = new List<string>(); + lines.Add(current_line); + string current_value = ""; + bool in_apostrpoh = false; + for (int i = 0; i < array.Length; i++) + { + if (!in_apostrpoh && (array[i] == '\r') && i + 1 < array.Length && (array[i + 1] == '\n')) + i += 1; + if (!in_apostrpoh && (array[i] == '\n')) + { + current_line.Add(current_value); + current_line = new List<string>(); + lines.Add(current_line); + current_value = ""; + } + else if (!in_apostrpoh && array[i] == ',') + { + current_line.Add(current_value); + current_value = ""; + } + else if (!in_apostrpoh && array[i] == '"') + { + in_apostrpoh = true; + } + else if (in_apostrpoh && array[i] == '"' && (i == array.Length - 1 || array[i + 1] != '"')) + { + in_apostrpoh = false; + } + else if (in_apostrpoh && array[i] == '"' && array[i + 1] == '"') + { + current_value += '"'; + i += 1; + } + else + { + current_value += array[i]; + } + } + current_line.Add(current_value); + return lines; + } + } +}
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Locale.cs.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Locale.cs.meta new file mode 100644 index 00000000..2c2a223c --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Locale.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 75c479cb152ec084c918f69a99c3ac18 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/MaterialLinker.cs b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/MaterialLinker.cs new file mode 100644 index 00000000..273da0b5 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/MaterialLinker.cs @@ -0,0 +1,278 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; + +namespace Thry +{ + public class MaterialLinker + { + + private static Dictionary<string, List<Material>> linked_materials; + + private static void Load() + { + if (linked_materials == null) + { + linked_materials = new Dictionary<string, List<Material>>(); + string raw = FileHelper.ReadFileIntoString(PATH.LINKED_MATERIALS_FILE); + string[][] parsed = Parser.ParseToObject<string[][]>(raw); + if(parsed!=null) + foreach (string[] material_cloud in parsed) + { + List<Material> materials = new List<Material>(); + for (int i = 1; i < material_cloud.Length; i++) + { + string path = AssetDatabase.GUIDToAssetPath(material_cloud[i]); + Material m = AssetDatabase.LoadAssetAtPath<Material>(path); + if (m != null) + materials.Add(m); + } + foreach (Material m in materials) + if(linked_materials.ContainsKey(GetKey(m, material_cloud[0])) == false) + linked_materials.Add(GetKey(m, material_cloud[0]), materials); + } + } + } + + private static void Save() + { + Dictionary<string, List<Material>> save_linked_materials = new Dictionary<string, List<Material>>(linked_materials); + + List<string[]> save_structre = new List<string[]>(); + HashSet<string> has_already_been_saved = new HashSet<string>(); + foreach (KeyValuePair<string,List<Material>> link in save_linked_materials) + { + if (has_already_been_saved.Contains(link.Key)) continue; + string[] value = new string[link.Value.Count + 1]; + value[0] = System.Text.RegularExpressions.Regex.Split(link.Key,@"###")[1]; + int i = 1; + foreach (Material m in link.Value) { + string guid = UnityHelper.GetGUID(m); + has_already_been_saved.Add(guid+"###"+value[0]); + value[i++] = guid; + } + save_structre.Add(value); + } + FileHelper.WriteStringToFile(Parser.ObjectToString(save_structre),PATH.LINKED_MATERIALS_FILE); + } + + public static List<Material> GetLinked(MaterialProperty p) + { + return GetLinked((Material)p.targets[0], p); + } + + public static List<Material> GetLinked(Material m, MaterialProperty p) + { + Load(); + string key = GetKey(m,p); + if (linked_materials.ContainsKey(key)) + return linked_materials[key]; + return null; + } + + public static void Link(Material master, Material add_to, MaterialProperty p) + { + Load(); + Debug.Log("link " + master.name + "," + add_to.name); + string key1 = GetKey(master,p); + string key2 = GetKey(add_to,p); + bool containes_key1 = linked_materials.ContainsKey(key1); + bool containes_key2 = linked_materials.ContainsKey(key2); + + if(containes_key1 && containes_key2) + { + Unlink(add_to, p); + Link(master, add_to, p); + return; + } + else if (containes_key1) + AddToListIfMaterialAlreadyLinked(key1, key2, add_to); + else if (containes_key2) + AddToListIfMaterialAlreadyLinked(key2, key1, master); + else + { + List<Material> value = new List<Material>(); + value.Add(master); + value.Add(add_to); + linked_materials[key1] = value; + linked_materials[key2] = value; + } + } + + private static void AddToListIfMaterialAlreadyLinked(string existing_key, string add_key, Material add_material) + { + List<Material> value = linked_materials[existing_key]; + value.Add(add_material); + linked_materials[add_key] = value; + } + + public static void Unlink(Material m, MaterialProperty p) + { + Load(); + string key = GetKey(m,p); + List<Material> value = linked_materials[key]; + value.Remove(m); + linked_materials.Remove(key); + } + + private static void UpdateLinkList(List<Material> new_linked_materials, MaterialProperty p) + { + string key = GetKey(p); + if (linked_materials.ContainsKey(key)) + { + List<Material> old_materials = linked_materials[key]; + foreach (Material m in old_materials) + linked_materials.Remove(GetKey(m, p)); + } + foreach (Material m in new_linked_materials) + linked_materials[GetKey(m, p)] = new_linked_materials; + } + + public static void UnlinkAll(Material m) + { + string guid = UnityHelper.GetGUID(m); + List<string> remove_keys = new List<string>(); + foreach (KeyValuePair<string, List<Material>> link_cloud in linked_materials) + { + if (link_cloud.Key.StartsWith(guid + "###")) + { + link_cloud.Value.Remove(m); + remove_keys.Add(link_cloud.Key); + } + } + foreach (string k in remove_keys) + linked_materials.Remove(k); + RemoveEmptyLinks(); + Save(); + } + + private static void RemoveEmptyLinks() + { + List<string> remove_keys = new List<string>(); + foreach (KeyValuePair<string, List<Material>> link_cloud in linked_materials) + { + if (link_cloud.Value.Count < 2) + { + link_cloud.Value.Clear(); + remove_keys.Add(link_cloud.Key); + } + } + foreach (string k in remove_keys) + linked_materials.Remove(k); + } + + private static string GetKey(Material m, MaterialProperty p) + { + return GetKey(m, p.name); + } + + private static string GetKey(MaterialProperty p) + { + return GetKey((Material)(p.targets[0]), p.name); + } + + private static string GetKey(Material m, string p) + { + return UnityHelper.GetGUID(m) + "###" + p; + } + + private static MaterialLinkerPopupWindow window; + public static void Popup(Rect activeation_rect, List<Material> linked_materials, MaterialProperty p) + { + Vector2 pos = GUIUtility.GUIToScreenPoint(Event.current.mousePosition); + pos.x = Mathf.Min(EditorWindow.focusedWindow.position.x + EditorWindow.focusedWindow.position.width - 250, pos.x); + pos.y = Mathf.Min(EditorWindow.focusedWindow.position.y + EditorWindow.focusedWindow.position.height - 200, pos.y); + + Load(); + if (window != null) + window.Close(); + window = ScriptableObject.CreateInstance<MaterialLinkerPopupWindow>(); + window.position = new Rect(pos.x, pos.y, 250, 200); + window.Init(linked_materials, p); + window.ShowPopup(); + } + + private class MaterialLinkerPopupWindow : EditorWindow + { + private Vector2 scrollPos; + private List<Material> linked_materials; + private MaterialProperty materialProperty; + + public void Init(List<Material> linked_materials, MaterialProperty p) + { + if (linked_materials == null) + linked_materials = new List<Material>(); + this.linked_materials = new List<Material>(linked_materials); + + string self_guid = UnityHelper.GetGUID((Material)p.targets[0]); + for (int i = this.linked_materials.Count - 1; i >= 0; i--) + { + if (UnityHelper.GetGUID(this.linked_materials[i]) == self_guid) + this.linked_materials.RemoveAt(i); + } + this.materialProperty = p; + } + + public new Vector2 minSize = new Vector2(250, 200); + + void OnGUI() + { + GUILayout.Label("Linked Materials", EditorStyles.boldLabel); + float listMaxHeight = this.position.height - 110; + GuiHelper.DrawListField<Material>(linked_materials, listMaxHeight, ref scrollPos); + GUILayout.Box("Drag and Drop new Material", EditorStyles.helpBox, GUILayout.MinHeight(30)); + //Rect drag_rect = GUILayoutUtility.GetLastRect(); + Rect lastRect = GUILayoutUtility.GetLastRect(); + Rect drag_rect = new Rect(0, lastRect.y, Screen.width, Screen.height - lastRect.y - 30); + Event e = Event.current; + if ((e.type == EventType.DragPerform || e.type == EventType.DragUpdated) && drag_rect.Contains(e.mousePosition)) + { + DragAndDrop.visualMode = DragAndDropVisualMode.Copy; + if (e.type == EventType.DragPerform) + { + DragAndDrop.AcceptDrag(); + HanldeDropEvent(); + } + } + if (GUI.Button(new Rect(0,this.position.height-30,this.position.width,30),"Done")) + this.Close(); + } + + public void HanldeDropEvent() + { + foreach (string path in DragAndDrop.paths) + { + if (AssetDatabase.GetMainAssetTypeAtPath(path) == typeof(Material)) + { + linked_materials.Add(AssetDatabase.LoadAssetAtPath<Material>(path)); + } + } + } + + void Awake() + { + + } + + void OnDestroy() + { + //add itself + bool contains_itself = false; + string self_guid = UnityHelper.GetGUID((Material)materialProperty.targets[0]); + for (int i = linked_materials.Count - 1; i >= 0; i--) + { + if (UnityHelper.GetGUID(linked_materials[i]) == self_guid) + contains_itself = true; + if (linked_materials[i] == null) + linked_materials.RemoveAt(i); + } + if (linked_materials.Count>0 && !contains_itself) + linked_materials.Add((Material)materialProperty.targets[0]); + + UpdateLinkList(linked_materials, materialProperty); + Save(); + } + } + } +}
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/MaterialLinker.cs.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/MaterialLinker.cs.meta new file mode 100644 index 00000000..1d1143b9 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/MaterialLinker.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 811f88ca7752d5f458c12b5864202fc9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Mediator.cs b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Mediator.cs new file mode 100644 index 00000000..78f877ca --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Mediator.cs @@ -0,0 +1,25 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace Thry +{ + public class Mediator + { + + private static Material m_copy; + public static Material copy_material + { + set + { + m_copy = value; + } + get + { + return m_copy; + } + } + + public static ShaderPart transfer_group; + } +}
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Mediator.cs.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Mediator.cs.meta new file mode 100644 index 00000000..66139bf8 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Mediator.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 404e4ca46c4f1c045a13674ca45d73d4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/ModuleHandler.cs b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/ModuleHandler.cs new file mode 100644 index 00000000..fa14d4f6 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/ModuleHandler.cs @@ -0,0 +1,364 @@ +// Material/Shader Inspector for Unity 2017/2018 +// Copyright (C) 2019 Thryrallo + +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Text.RegularExpressions; +using UnityEditor; +using UnityEngine; + +namespace Thry +{ + public abstract class ModuleSettings + { + public const string MODULES_CONFIG = "Thry/modules_config"; + + public abstract void Draw(); + } + + public class ModuleHandler + { + private static List<Module> modules; + private static List<Module> third_party_modules; + private static bool modules_are_being_loaded = false; + + private class ModuleCollectionInfo + { + public string id = null; + public string url = null; + public string author = null; + } + + private class ModuleCollection + { + public List<ModuleCollectionInfo> first_party = null; + public List<ModuleCollectionInfo> third_party = null; + } + + public static List<Module> GetModules() + { + if (!modules_are_being_loaded) + LoadModules(); + return modules; + } + + public static List<Module> GetThirdPartyModules() + { + if (!modules_are_being_loaded) + LoadModules(); + return third_party_modules; + } + + private static void LoadModules() + { + modules_are_being_loaded = true; + WebHelper.DownloadStringASync(URL.MODULE_COLLECTION, delegate (string s) { + modules = new List<Module>(); + third_party_modules = new List<Module>(); + ModuleCollection module_collection = Parser.ParseToObject<ModuleCollection>(s); + foreach(ModuleCollectionInfo info in module_collection.first_party) + { + LoadModule(info,modules); + } + foreach (ModuleCollectionInfo info in module_collection.third_party) + { + LoadModule(info, third_party_modules); + } + }); + } + + private static void LoadModule(ModuleCollectionInfo info, List<Module> modules) + { + WebHelper.DownloadStringASync(info.url, delegate (string data) + { + Module new_module = new Module(); + new_module.url = info.url; + new_module.author = info.author; + new_module.id = info.id; + new_module.available_module = Parser.ParseToObject<ModuleInfo>(data); + bool module_installed = LoadModuleLocationData(new_module); + if (module_installed) + InitInstalledModule(new_module); + else if (Helper.ClassExists(new_module.available_module.classname)) + CheckForUnregisteredInstall(new_module); + if (new_module.available_module.requirement != null) + new_module.available_requirement_fullfilled = new_module.available_module.requirement.Test(); + if (new_module.available_requirement_fullfilled && new_module.installed_module != null && Helper.compareVersions(new_module.installed_module.version, new_module.available_module.version) == 1) + new_module.update_available = true; + modules.Add(new_module); + UnityHelper.RepaintEditorWindow(typeof(Settings)); + }); + } + + private static bool LoadModuleLocationData(Module m) + { + string data = FileHelper.LoadValueFromFile(m.id,PATH.MODULES_LOCATION__DATA); + if (data == "" || data == null) + return false; + m.location_data = Parser.ParseToObject<ModuleLocationData>(data); + if (AssetDatabase.GUIDToAssetPath(m.location_data.guid) == "") + { + m.location_data = null; + return false; + } + return true; + } + + private static void SaveModuleLocationData(Module m, string guid) + { + ModuleLocationData locationData = new ModuleLocationData(); + locationData.guid = guid; + locationData.classname = m.installed_module.classname; + locationData.files = m.installed_module.files.ToArray(); + FileHelper.SaveValueToFile(m.id, Parser.ObjectToString(locationData), PATH.MODULES_LOCATION__DATA); + } + + private static void CheckForUnregisteredInstall(Module module) + { + Debug.Log(module.available_module.classname + ":" + Helper.ClassExists(module.available_module.classname)); + if (Helper.ClassExists(module.available_module.classname)) + { + module.path = ResolveFilesToDirectory(module.available_module.files.ToArray()); + if (module.path != null) + { + module.installed_module = Parser.ParseToObject<ModuleInfo>(FileHelper.ReadFileIntoString(FindModuleFilePath(module.path))); + SaveModuleLocationData(module,AssetDatabase.AssetPathToGUID(module.path)); + } + } + } + + //TODO save location data on install + // delete location data on remove + // destingish between public and private modules + + private static void InitInstalledModule(Module m) + { + bool remove = false; + if (Helper.ClassExists(m.location_data.classname)) + { + m.path = GetModuleDirectory(m); + if (m.path != null) + { + m.installed_module = Parser.ParseToObject<ModuleInfo>(FileHelper.ReadFileIntoString(FindModuleFilePath(m.path))); + string calced_guid = AssetDatabase.AssetPathToGUID(m.path); + if (m.location_data.guid != calced_guid) + SaveModuleLocationData(m, calced_guid); + } + else + { + remove = true; + } + } + if (remove) + { + FileHelper.RemoveValueFromFile(m.id, PATH.MODULES_LOCATION__DATA); + m.location_data = null; + } + } + + private static string GetModuleDirectory(Module m) + { + string path = null; + if(m.location_data != null) + { + path = AssetDatabase.GUIDToAssetPath(m.location_data.guid); + if(path == "" || path == null || !Directory.Exists(path)) + { + path = ResolveFilesToDirectory(m.location_data.files); + } + } + if (!Directory.Exists(path)) + path = null; + return path; + } + + private static string ResolveFilesToDirectory(string[] files) + { + Dictionary<string, int> path_refernces = new Dictionary<string, int>(); + foreach (string file in files) + { + string[] refernces = ResolveFilesToDirectoryFindAllReferneces(file); + foreach(string p in refernces) + { + string found_dir = Directory.GetParent(Path.GetDirectoryName(p)).FullName; + if (path_refernces.ContainsKey(found_dir)) + path_refernces[found_dir] = path_refernces[found_dir] + 1; + else + path_refernces[found_dir] = 1; + } + } + int most_refernces = 0; + string path = null; + foreach(KeyValuePair<string,int> pair in path_refernces) + { + if (pair.Value > most_refernces) + { + most_refernces = pair.Value; + path = pair.Key; + } + } + return path; + } + + private static string[] ResolveFilesToDirectoryFindAllReferneces(string file_sub_path) + { + List<string> valid_paths = new List<string>(); + string[] found_paths = UnityHelper.FindAssetOfFilesWithExtension(Path.GetFileName(file_sub_path)).ToArray(); + foreach (string p in found_paths) + { + if (p.EndsWith(file_sub_path)) + valid_paths.Add(p); + } + return valid_paths.ToArray(); + } + + private static string FindModuleFilePath(string directory_path) + { + string module_path = null; + int likelyness = -1; + foreach(string f in Directory.GetFiles(directory_path)){ + string file_name = Path.GetFileName(f); + int l = 0; + if (file_name.Contains("module")) l++; + if (file_name.Contains("thry")) l++; + if (file_name.Contains(".json")) l++; + if (l > likelyness) + { + likelyness = l; + module_path = f; + } + } + return module_path; + } + + public static void InstallRemoveModule(Module module, bool install) + { + if (install && module.installed_module == null) + InstallModule(module); + else if (!install && module.installed_module != null) + RemoveModule(module); + } + + public static void OnCompile() + { + string url = FileHelper.LoadValueFromFile("update_module_url", PATH.AFTER_COMPILE_DATA); + string id = FileHelper.LoadValueFromFile("update_module_id", PATH.AFTER_COMPILE_DATA); + if (url != null && url.Length > 0 && id != null && id.Length > 0) + { + InstallModule(url, id); + FileHelper.SaveValueToFile("update_module_id", "", PATH.AFTER_COMPILE_DATA); + FileHelper.SaveValueToFile("update_module_url", "", PATH.AFTER_COMPILE_DATA); + } + } + + public static void UpdateModule(Module module) + { + module.is_being_installed_or_removed = true; + FileHelper.SaveValueToFile("update_module_url", module.url, PATH.AFTER_COMPILE_DATA); + FileHelper.SaveValueToFile("update_module_id", module.id, PATH.AFTER_COMPILE_DATA); + RemoveModule(module); + } + + public static void InstallModule(string url, string id) + { + WebHelper.DownloadStringASync(url, delegate (string data) + { + Module new_module = new Module(); + new_module.url = url; + new_module.id = id; + new_module.available_module = Parser.ParseToObject<ModuleInfo>(data); + InstallModule(new_module); + }); + } + + public static void InstallModule(Module module) + { + module.is_being_installed_or_removed = true; + string temp_path = InstallModuleGetTempDir(module); + InstallModuleDownloadFiles(module,temp_path); + } + + private static string InstallModuleGetTempDir(Module module) + { + return "temp_module_" + module.id; + } + + private static string GetThryModulesDirectoryPath() + { + string editor_path = ShaderEditor.GetShaderEditorDirectoryPath(); + if (editor_path == null) + editor_path = "Assets"; + return editor_path+ "/thry_modules"; + } + + private static void InstallModuleDownloadFiles(Module module, string temp_path) + { + EditorUtility.DisplayProgressBar(module.available_module.name+ " download progress", "", 0); + string base_url = Path.GetDirectoryName(module.url); + int i = 0; + foreach (string file_path in module.available_module.files) + { + WebHelper.DownloadFileASync(base_url + "/"+ file_path, temp_path + "/" + file_path, delegate (string data) + { + i++; + EditorUtility.DisplayProgressBar("Downloading files for " + module.available_module, "Downloaded " + base_url + file_path, (float)i / module.available_module.files.Count); + if (i == module.available_module.files.Count) + { + EditorUtility.ClearProgressBar(); + InstallModuleFilesDownloaded(module,temp_path); + } + }); + } + } + + private static void InstallModuleFilesDownloaded(Module module, string temp_dir) + { + string modules_path = GetThryModulesDirectoryPath(); + if (!Directory.Exists(modules_path)) + Directory.CreateDirectory(modules_path); + string install_path = modules_path + "/" + module.id; + module.installed_module = module.available_module; + string guid = AssetDatabase.CreateFolder(modules_path, module.id); + SaveModuleLocationData(module,guid); + + FileHelper.WriteStringToFile(Parser.ObjectToString(module.available_module), temp_dir + "/module.json"); + foreach(string d in Directory.GetDirectories(temp_dir)) + { + Directory.Move(d, install_path + "/" + Path.GetFileName(d)); + } + foreach (string f in Directory.GetFiles(temp_dir)) + { + File.Move(f, install_path + "/" + Path.GetFileName(f)); + } + Directory.Delete(temp_dir); + AssetDatabase.Refresh(); + } + + public static void RemoveModule(Module module) + { + module.is_being_installed_or_removed = true; + FileHelper.RemoveValueFromFile(module.id, PATH.MODULES_LOCATION__DATA); + foreach (Action f in pre_module_remove_functions) + f.Invoke(); + TrashHandler.MoveDirectoryToTrash(module.path); + AssetDatabase.Refresh(); + } + + private static List<Action> pre_module_remove_functions = new List<Action>(); + + public static void RegisterPreModuleRemoveFunction(Action function) + { + pre_module_remove_functions.Add(function); + } + + public static void OnEditorRemove() + { + string dir_path = ShaderEditor.GetShaderEditorDirectoryPath() + "/thry_modules"; + if (Directory.Exists(dir_path)) + TrashHandler.MoveDirectoryToTrash(dir_path); + } + } + +}
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/ModuleHandler.cs.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/ModuleHandler.cs.meta new file mode 100644 index 00000000..0303f8b7 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/ModuleHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8349089a9d8124c4bb52b5d414ddca2a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Parser.cs b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Parser.cs new file mode 100644 index 00000000..d6ef74fa --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Parser.cs @@ -0,0 +1,404 @@ +// Material/Shader Inspector for Unity 2017/2018 +// Copyright (C) 2019 Thryrallo + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text.RegularExpressions; +using UnityEditor; +using UnityEngine; + +namespace Thry +{ + public class Parser + { + + public static string Serialize(object o) + { + return Parser.ObjectToString(o); + } + + public static T Deserialize<T>(string s) + { + return ParseToObject<T>(s); + } + + public static string ObjectToString(object obj) + { + if (obj == null) return "null"; + if (Helper.IsPrimitive(obj.GetType())) return SerializePrimitive(obj); + if (obj is IList) return SerializeList(obj); + if (obj.GetType().IsGenericType && obj.GetType().GetGenericTypeDefinition() == typeof(Dictionary<,>)) return SerializeDictionary(obj); + if (obj.GetType().IsArray) return SerializeList(obj); + if (obj.GetType().IsEnum) return obj.ToString(); + if (obj.GetType().IsClass) return SerializeClass(obj); + if (obj.GetType().IsValueType && !obj.GetType().IsEnum) return SerializeClass(obj); + return ""; + } + + public static T ParseToObject<T>(string s) + { + object parsed = ParseJson(s); + object ret = null; + try + { + ret = (T)ParsedToObject(parsed, typeof(T)); + } + catch (Exception e) + { + Debug.LogWarning(e.ToString()); + Debug.LogWarning(s + " cannot be parsed to object of type " + typeof(T).ToString()); + ret = Activator.CreateInstance(typeof(T)); + } + return (T)ret; + } + + //Parser methods + + public static object ParseJson(string input) + { + //input = input.Replace("\\n", "\n"); + return ParseJsonPart(input); + } + + private static object ParseJsonPart(string input) + { + input = input.Trim(); + if (input.StartsWith("{")) + return ParseObject(input); + else if (input.StartsWith("[")) + return ParseArray(input); + else + return ParsePrimitive(input); + } + + private static Dictionary<object, object> ParseObject(string input) + { + input = input.TrimStart(new char[] { '{' }); + int depth = 0; + int variableStart = 0; + bool isString = false; + Dictionary<object, object> variables = new Dictionary<object, object>(); + for (int i = 0; i < input.Length; i++) + { + bool escaped = i != 0 && input[i - 1] == '\\'; + if (input[i] == '\"' && !escaped) + isString = !isString; + if (!isString) + { + if (i == input.Length - 1 || (depth == 0 && input[i] == ',' && !escaped) || (!escaped && depth == 0 && input[i] == '}')) + { + string[] parts = input.Substring(variableStart, i - variableStart).Split(new char[] { ':' }, 2); + if (parts.Length < 2) + break; + string key = "" + ParseJsonPart(parts[0].Trim()); + object value = ParseJsonPart(parts[1]); + variables.Add(key, value); + variableStart = i + 1; + } + else if ((input[i] == '{' || input[i] == '[') && !escaped) + depth++; + else if ((input[i] == '}' || input[i] == ']') && !escaped) + depth--; + } + + } + return variables; + } + + private static List<object> ParseArray(string input) + { + input = input.Trim(new char[] { ' ' }); + int depth = 0; + int variableStart = 1; + List<object> variables = new List<object>(); + for (int i = 1; i < input.Length; i++) + { + if (i == input.Length - 1 || (depth == 0 && input[i] == ',' && (i == 0 || input[i - 1] != '\\'))) + { + variables.Add(ParseJsonPart(input.Substring(variableStart, i - variableStart))); + variableStart = i + 1; + } + else if (input[i] == '{' || input[i] == '[') + depth++; + else if (input[i] == '}' || input[i] == ']') + depth--; + } + return variables; + } + + private static object ParsePrimitive(string input) + { + if (input.StartsWith("\"")) + return input.Trim(new char[] { '"' }); + else if (input.ToLower() == "true") + return true; + else if (input.ToLower() == "false") + return false; + else if (input == "null" || input == "NULL" || input == "Null") + return null; + else + { + string floatInput = input.Replace(",", "."); + if (System.Globalization.CultureInfo.CurrentCulture.NumberFormat.CurrencyDecimalSeparator == ",") + floatInput = input.Replace(".", ","); + float floatValue; + if (float.TryParse(floatInput, out floatValue)) + { + if ((int)floatValue == floatValue) + return (int)floatValue; + return floatValue; + } + } + return input; + } + + //converter methods + + public static string GlobalizationFloat(string s) + { + s = s.Replace(",", "."); + if (System.Globalization.CultureInfo.CurrentCulture.NumberFormat.CurrencyDecimalSeparator == ",") + s = s.Replace(".", ","); + return s; + } + + public static float ParseFloat(string s, float defaultF = 0) + { + s = GlobalizationFloat(s); + float f = defaultF; + float.TryParse(s, out f); + return f; + } + + public static type ConvertParsedToObject<type>(object parsed) + { + return (type)ParsedToObject(parsed, typeof(type)); + } + + private static object ParsedToObject(object parsed,Type objtype) + { + if (parsed == null) return null; + if (Helper.IsPrimitive(objtype)) return ConvertToPrimitive(parsed, objtype); + if (objtype.IsGenericType && objtype.GetInterfaces().Contains(typeof(IList))) return ConvertToList(parsed, objtype); + if (objtype.IsGenericType && objtype.GetGenericTypeDefinition() == typeof(Dictionary<,>)) return ConvertToDictionary(parsed,objtype); + if (objtype.IsArray) return ConvertToArray(parsed, objtype); + if (objtype.IsEnum) return ConvertToEnum(parsed, objtype); + if (objtype.IsClass) return ConvertToObject(parsed, objtype); + if (objtype.IsValueType && !objtype.IsEnum) return ConvertToObject(parsed, objtype); + return null; + } + + private static object ConvertToDictionary(object parsed, Type objtype) + { + var returnObject = (dynamic)Activator.CreateInstance(objtype); + Dictionary<object, object> dict = (Dictionary<object, object>)parsed; + foreach (KeyValuePair<object, object> keyvalue in dict) + { + dynamic key = ParsedToObject(keyvalue.Key, objtype.GetGenericArguments()[0]); + dynamic value = ParsedToObject(keyvalue.Value, objtype.GetGenericArguments()[1]); + returnObject.Add(key , value ); + } + return returnObject; + } + + private static object ConvertToObject(object parsed, Type objtype) + { + object returnObject = Activator.CreateInstance(objtype); + if (parsed.GetType() != typeof(Dictionary<object, object>)) return null; + Dictionary<object, object> dict = (Dictionary<object, object>)parsed; + foreach (FieldInfo field in objtype.GetFields()) + { + if (dict.ContainsKey(field.Name)) + { + field.SetValue(returnObject, ParsedToObject(dict[field.Name], field.FieldType)); + } + } + foreach (PropertyInfo property in objtype.GetProperties()) + { + if (property.CanWrite && property.CanRead && property.GetIndexParameters().Length == 0 && dict.ContainsKey(property.Name)) + { + property.SetValue(returnObject, ParsedToObject(dict[property.Name], property.PropertyType), null); + } + } + return returnObject; + } + + private static object ConvertToList(object parsed, Type objtype) + { + Type list_obj_type = objtype.GetGenericArguments()[0]; + List<object> list_strings = (List<object>)parsed; + IList return_list = (IList)Activator.CreateInstance(objtype); + foreach (object s in list_strings) + return_list.Add(ParsedToObject(s, list_obj_type)); + return return_list; + } + + private static object ConvertToArray(object parsed, Type objtype) + { + if (parsed == null || (parsed is string && (string)parsed == "")) + return null; + Type array_obj_type = objtype.GetElementType(); + List<object> list_strings = (List<object>)parsed; + IList return_list = (IList)Activator.CreateInstance(typeof(List<>).MakeGenericType(array_obj_type)); + foreach (object s in list_strings) + { + object o = ParsedToObject(s, array_obj_type); + if(o!=null) + return_list.Add(o); + } + object return_array = Activator.CreateInstance(objtype, return_list.Count); + return_list.CopyTo(return_array as Array, 0); + return return_array; + } + + private static object ConvertToEnum(object parsed, Type objtype) + { + if (Enum.IsDefined(objtype, (string)parsed)) + return Enum.Parse(objtype, (string)parsed); + Debug.LogWarning("The specified enum for " + objtype.Name + " does not exist. Existing Values are: " + Converter.ArrayToString(Enum.GetValues(objtype))); + return Enum.GetValues(objtype).GetValue(0); + } + + private static object ConvertToPrimitive(object parsed, Type objtype) + { + if (typeof(String) == objtype) + return parsed!=null?parsed.ToString():null; + if (typeof(char) == objtype) + return ((string)parsed)[0]; + return parsed; + } + + //Serilizer + + private static string SerializeDictionary(object obj) + { + string ret = "{"; + foreach (var item in (dynamic)obj) + { + object key = item.Key; + object val = item.Value; + ret += Serialize(key) + ":" + Serialize(val)+","; + } + ret = ret.TrimEnd(new char[] { ',' }); + ret += "}"; + return ret; + } + + private static string SerializeClass(object obj) + { + string ret = "{"; + foreach(FieldInfo field in obj.GetType().GetFields()) + { + if(field.IsPublic) + ret += "\""+field.Name + "\"" + ":" + ObjectToString(field.GetValue(obj)) + ","; + } + foreach (PropertyInfo property in obj.GetType().GetProperties()) + { + if(property.CanWrite && property.CanRead && property.GetIndexParameters().Length==0) + ret += "\""+ property.Name + "\"" + ":" + ObjectToString(property.GetValue(obj,null)) + ","; + } + ret = ret.TrimEnd(new char[] { ',' }); + ret += "}"; + return ret; + } + + private static string SerializeList(object obj) + { + string ret = "["; + foreach (object o in obj as IEnumerable) + { + ret += ObjectToString(o) + ","; + } + ret = ret.TrimEnd(new char[] { ',' }); + ret += "]"; + return ret; + } + + private static string SerializePrimitive(object obj) + { + if (obj.GetType() == typeof(string)) + return "\"" + obj + "\""; + return obj.ToString().Replace(",", "."); ; + } + } + + public class AnimationParser + { + public class Animation + { + public PPtrCurve[] pPtrCurves; + } + + public class PPtrCurve + { + public PPtrType curveType; + public PPtrKeyframe[] keyframes; + } + + public enum PPtrType + { + None,Material + } + + public class PPtrKeyframe + { + public float time; + public string guid; + public int type; + } + + public static Animation Parse(AnimationClip clip) + { + return Parse(AssetDatabase.GetAssetPath(clip)); + } + + public static Animation Parse(string path) + { + string data = FileHelper.ReadFileIntoString(path); + + List<PPtrCurve> pPtrCurves = new List<PPtrCurve>(); + int pptrIndex; + int lastIndex = 0; + while ((pptrIndex = data.IndexOf("m_PPtrCurves", lastIndex)) != -1) + { + lastIndex = pptrIndex + 1; + int pptrEndIndex = data.IndexOf(" m_", pptrIndex); + + int curveIndex; + int lastCurveIndex = pptrIndex; + //find all curves + while((curveIndex = data.IndexOf(" - curve:", lastCurveIndex, pptrEndIndex- lastCurveIndex)) != -1) + { + lastCurveIndex = curveIndex + 1; + int curveEndIndex = data.IndexOf(" script: ", curveIndex); + + PPtrCurve curve = new PPtrCurve(); + List<PPtrKeyframe> keyframes = new List<PPtrKeyframe>(); + + int keyFrameIndex; + int lastKeyFrameIndex = curveIndex; + while((keyFrameIndex = data.IndexOf(" - time:", lastKeyFrameIndex, curveEndIndex - lastKeyFrameIndex)) != -1) + { + lastKeyFrameIndex = keyFrameIndex + 1; + int keyFrameEndIndex = data.IndexOf("}", keyFrameIndex); + + PPtrKeyframe keyframe = new PPtrKeyframe(); + keyframe.time = float.Parse(data.Substring(keyFrameIndex, data.IndexOf("\n", keyFrameIndex, keyFrameEndIndex))); + keyframes.Add(keyframe); + } + + curve.curveType = data.IndexOf(" attribute: m_Materials", lastKeyFrameIndex, curveEndIndex - lastKeyFrameIndex) != -1 ? PPtrType.Material : PPtrType.None; + curve.keyframes = keyframes.ToArray(); + pPtrCurves.Add(curve); + } + } + Animation animation = new Animation(); + animation.pPtrCurves = pPtrCurves.ToArray(); + Debug.Log(Parser.Serialize(animation)); + return animation; + } + } +} diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Parser.cs.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Parser.cs.meta new file mode 100644 index 00000000..4280d5dd --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Parser.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3b95745f9a604df4bbc5a00933f516d0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Settings.cs b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Settings.cs new file mode 100644 index 00000000..7cc06356 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Settings.cs @@ -0,0 +1,457 @@ +// Material/Shader Inspector for Unity 2017/2018 +// Copyright (C) 2019 Thryrallo + +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text.RegularExpressions; +using UnityEditor; +using UnityEngine; + +namespace Thry +{ + public class Settings : EditorWindow + { + //this is dope: this.ShowNotification(new GUIContent(s)); + + // Add menu named "My Window" to the Window menu + [MenuItem("Thry/Settings")] + static void Init() + { + // Get existing open window or if none, make a new one: + Settings window = (Settings)EditorWindow.GetWindow(typeof(Settings)); + window.Show(); + } + + public static void firstTimePopup() + { + Settings window = (Settings)EditorWindow.GetWindow(typeof(Settings)); + window.isFirstPopop = true; + window.Show(); + } + + public static void updatedPopup(int compare) + { + Settings window = (Settings)EditorWindow.GetWindow(typeof(Settings)); + window.updatedVersion = compare; + window.Show(); + } + + public new void Show() + { + base.Show(); + this.titleContent = new GUIContent("Thry Settings"); + } + + public ModuleSettings[] moduleSettings; + + private bool isFirstPopop = false; + private int updatedVersion = 0; + + private bool is_init = false; + + public static bool is_changing_vrc_sdk = false; + + public static ButtonData thry_message = null; + + //------------------Message Calls------------------------- + + public void OnDestroy() + { + if (!EditorPrefs.GetBool("thry_has_counted_user", false)) + { + WebHelper.DownloadStringASync(URL.COUNT_USER, delegate (string s) + { + if (s == "true") + EditorPrefs.SetBool("thry_has_counted_user", true); + }); + } + + string projectPrefix = PlayerSettings.companyName + "." +PlayerSettings.productName; + if (!EditorPrefs.GetBool(projectPrefix+"_thry_has_counted_project", false)) + { + WebHelper.DownloadStringASync(URL.COUNT_PROJECT, delegate (string s) + { + if (s == "true") + EditorPrefs.SetBool(projectPrefix+"_thry_has_counted_project", true); + }); + } + } + + //---------------------Stuff checkers and fixers------------------- + + public void Awake() + { + InitVariables(); + } + + private void InitVariables() + { + is_changing_vrc_sdk = (FileHelper.LoadValueFromFile("delete_vrc_sdk", PATH.AFTER_COMPILE_DATA) == "true") || (FileHelper.LoadValueFromFile("update_vrc_sdk", PATH.AFTER_COMPILE_DATA) == "true"); + + List<Type> subclasses = typeof(ModuleSettings).Assembly.GetTypes().Where(type => type.IsSubclassOf(typeof(ModuleSettings))).ToList<Type>(); + moduleSettings = new ModuleSettings[subclasses.Count]; + int i = 0; + foreach(Type classtype in subclasses) + { + moduleSettings[i++] = (ModuleSettings)Activator.CreateInstance(classtype); + } + + is_init = true; + + if (thry_message == null) + WebHelper.DownloadStringASync(Thry.URL.SETTINGS_MESSAGE_URL, delegate (string s) { thry_message = Parser.ParseToObject<ButtonData>(s); }); + } + + //------------------Helpers---------------------------- + + public static Settings getInstance() + { + Settings instance = (Settings)UnityHelper.FindEditorWindow(typeof(Settings)); + if (instance == null) instance = ScriptableObject.CreateInstance<Settings>(); + return instance; + } + + //------------------Main GUI + void OnGUI() + { + if (!is_init || moduleSettings==null) InitVariables(); + GUILayout.Label("ShaderEditor v" + Config.Singleton.verion); + + GUINotification(); + drawLine(); + GUIMessage(); + LocaleDropdown(); + GUIEditor(); + drawLine(); + foreach(ModuleSettings s in moduleSettings) + { + s.Draw(); + drawLine(); + } + GUIModulesInstalation(); + } + + //--------------------------GUI Helpers----------------------------- + + private static void drawLine() + { + Rect rect = EditorGUILayout.GetControlRect(false, 1); + rect.height = 1; + EditorGUI.DrawRect(rect, new Color(0.5f, 0.5f, 0.5f, 1)); + } + + private void GUINotification() + { + if (isFirstPopop) + GUILayout.Label(" " + Locale.editor.Get("first_install_message"), Styles.greenStyle); + else if (updatedVersion == -1) + GUILayout.Label(" " + Locale.editor.Get("update_message"), Styles.greenStyle); + else if (updatedVersion == 1) + GUILayout.Label(" " + Locale.editor.Get("downgrade_message"), Styles.yellowStyle); + } + + private void GUIMessage() + { + if(thry_message!=null && thry_message.text.Length > 0) + { + GUIStyle style = new GUIStyle(); + style.richText = true; + style.margin = new RectOffset(7, 0, 0, 0); + style.wordWrap = true; + GUILayout.Label(new GUIContent(thry_message.text,thry_message.hover), style); + Rect r = GUILayoutUtility.GetLastRect(); + if (Event.current.type == EventType.MouseDown && r.Contains(Event.current.mousePosition)) + thry_message.action.Perform(); + drawLine(); + } + } + + bool is_editor_expanded = true; + private void GUIEditor() + { + is_editor_expanded = Foldout(Locale.editor.Get("header_editor"), is_editor_expanded); + if (is_editor_expanded) + { + EditorGUI.indentLevel += 2; + Dropdown("default_texture_type"); + Toggle("showRenderQueue"); + Toggle("renameAnimatedProps"); + Toggle("showManualReloadButton"); + GUIGradients(); + EditorGUI.indentLevel -= 2; + } + } + + private static void GUIGradients() + { + GUILayout.BeginHorizontal(GUILayout.ExpandWidth(false)); + Text("gradient_name", false); + string gradient_name = Config.Singleton.gradient_name; + if (gradient_name.Contains("<hash>")) + GUILayout.Label(Locale.editor.Get("gradient_good_naming"), Styles.greenStyle, GUILayout.ExpandWidth(false)); + else if (gradient_name.Contains("<material>")) + if (gradient_name.Contains("<prop>")) + GUILayout.Label(Locale.editor.Get("gradient_good_naming"), Styles.greenStyle, GUILayout.ExpandWidth(false)); + else + GUILayout.Label(Locale.editor.Get("gradient_add_hash_or_prop"), Styles.yellowStyle, GUILayout.ExpandWidth(false)); + else if (gradient_name.Contains("<prop>")) + GUILayout.Label(Locale.editor.Get("gradient_add_material"), Styles.yellowStyle, GUILayout.ExpandWidth(false)); + else + GUILayout.Label(Locale.editor.Get("gradient_add_material_or_prop"), Styles.redStyle, GUILayout.ExpandWidth(false)); + GUILayout.EndHorizontal(); + } + + private class TextPopup : EditorWindow + { + public string text = ""; + private Vector2 scroll; + void OnGUI() + { + EditorGUILayout.SelectableLabel(Locale.editor.Get("my_data_header"), EditorStyles.boldLabel); + Rect last = GUILayoutUtility.GetLastRect(); + + Rect data_rect = new Rect(0, last.height, Screen.width, Screen.height - last.height); + scroll = EditorGUILayout.BeginScrollView(scroll, GUILayout.Width(data_rect.width), GUILayout.Height(data_rect.height)); + GUILayout.TextArea(text); + EditorGUILayout.EndScrollView(); + } + } + + private void GUIModulesInstalation() + { + if (ModuleHandler.GetModules() == null) + return; + if (ModuleHandler.GetModules().Count > 0) + GUILayout.Label(Locale.editor.Get("header_modules"), EditorStyles.boldLabel); + bool disabled = false; + foreach (Module module in ModuleHandler.GetModules()) + if (module.is_being_installed_or_removed) + disabled = true; + EditorGUI.BeginDisabledGroup(disabled); + foreach (Module module in ModuleHandler.GetModules()) + { + ModuleUI(module); + } + GUILayout.Label(Locale.editor.Get("header_thrird_party"), EditorStyles.boldLabel); + foreach (Module module in ModuleHandler.GetThirdPartyModules()) + { + ModuleUI(module); + } + EditorGUI.EndDisabledGroup(); + } + + private void ModuleUI(Module module) + { + string text = " " + module.available_module.name; + if (module.update_available) + text = " " + text; + module.ui_expanded = Foldout(text, module.ui_expanded); + Rect rect = GUILayoutUtility.GetLastRect(); + rect.x += 20; + rect.y += 2; + rect.width = 20; + + bool is_installed = module.installed_module != null; + + EditorGUI.BeginDisabledGroup(!module.available_requirement_fullfilled); + EditorGUI.BeginChangeCheck(); + bool install = GUI.Toggle(rect, is_installed, ""); + if(EditorGUI.EndChangeCheck()){ + ModuleHandler.InstallRemoveModule(module, install); + } + if (module.update_available) + { + rect.x += 20; + rect.width = 47; + GUIStyle style = new GUIStyle(EditorStyles.miniButton); + style.fixedHeight = 17; + if (GUI.Button(rect, "Update",style)) + ModuleHandler.UpdateModule(module); + } + //add update notification + if (module.ui_expanded) + { + EditorGUI.indentLevel += 1; + ModuleUIDetails(module); + EditorGUI.indentLevel -= 1; + } + + EditorGUI.EndDisabledGroup(); + } + + private void ModuleUIDetails(Module module) + { + float prev_label_width = EditorGUIUtility.labelWidth; + EditorGUIUtility.labelWidth = 130; + + EditorGUILayout.HelpBox(module.available_module.description, MessageType.Info); + if (module.installed_module != null) + EditorGUILayout.LabelField("Installed Version: ", module.installed_module.version); + EditorGUILayout.LabelField("Available Version: ", module.available_module.version); + if (module.available_module.requirement != null) + { + if (module.available_requirement_fullfilled) + EditorGUILayout.LabelField(Locale.editor.Get("requirements") + ": ", module.available_module.requirement.ToString(), Styles.greenStyle); + else + EditorGUILayout.LabelField(Locale.editor.Get("requirements") + ": ", module.available_module.requirement.ToString(), Styles.redStyle); + } + EditorGUILayout.LabelField("Url: ", module.url); + if (module.author != null) + EditorGUILayout.LabelField("Author: ", module.author); + + EditorGUIUtility.labelWidth = prev_label_width; + } + + private static void Text(string configField, bool createHorizontal = true) + { + Text(configField, Locale.editor.Get(configField), Locale.editor.Get(configField + "_tooltip"), createHorizontal); + } + + private static void Text(string configField, string[] content, bool createHorizontal=true) + { + Text(configField, content[0], content[1], createHorizontal); + } + + private static void Text(string configField, string text, string tooltip, bool createHorizontal) + { + Config config = Config.Singleton; + System.Reflection.FieldInfo field = typeof(Config).GetField(configField); + if (field != null) + { + string value = (string)field.GetValue(config); + if (createHorizontal) + GUILayout.BeginHorizontal(GUILayout.ExpandWidth(false)); + GUILayout.Space(57); + GUILayout.Label(new GUIContent(text, tooltip), GUILayout.ExpandWidth(false)); + EditorGUI.BeginChangeCheck(); + value = EditorGUILayout.DelayedTextField("", value, GUILayout.ExpandWidth(false)); + if (EditorGUI.EndChangeCheck()) + { + field.SetValue(config, value); + config.save(); + } + if (createHorizontal) + GUILayout.EndHorizontal(); + } + } + + private static void Toggle(string configField, GUIStyle label_style = null) + { + Toggle(configField, Locale.editor.Get(configField), Locale.editor.Get(configField + "_tooltip"), label_style); + } + + private static void Toggle(string configField, string[] content, GUIStyle label_style = null) + { + Toggle(configField, content[0], content[1], label_style); + } + + private static void Toggle(string configField, string label, string hover, GUIStyle label_style = null) + { + Config config = Config.Singleton; + System.Reflection.FieldInfo field = typeof(Config).GetField(configField); + if (field != null) + { + bool value = (bool)field.GetValue(config); + if (Toggle(value, label, hover, label_style) != value) + { + field.SetValue(config, !value); + config.save(); + ShaderEditor.Repaint(); + } + } + } + + private static void Dropdown(string configField) + { + Dropdown(configField, Locale.editor.Get(configField),Locale.editor.Get(configField+"_tooltip")); + } + + private static void Dropdown(string configField, string[] content) + { + Dropdown(configField, content[0], content[1]); + } + + private static void Dropdown(string configField, string label, string hover, GUIStyle label_style = null) + { + Config config = Config.Singleton; + System.Reflection.FieldInfo field = typeof(Config).GetField(configField); + if (field != null) + { + Enum value = (Enum)field.GetValue(config); + EditorGUI.BeginChangeCheck(); + EditorGUILayout.BeginHorizontal(); + GUILayout.Space(57); + GUILayout.Label(new GUIContent(label, hover), GUILayout.ExpandWidth(false)); + value = EditorGUILayout.EnumPopup(value,GUILayout.ExpandWidth(false)); + EditorGUILayout.EndHorizontal(); + if(EditorGUI.EndChangeCheck()) + { + field.SetValue(config, value); + config.save(); + ShaderEditor.Repaint(); + } + } + } + + private static void LocaleDropdown() + { + EditorGUI.BeginChangeCheck(); + EditorGUILayout.BeginHorizontal(); + GUILayout.Label(new GUIContent(Locale.editor.Get("locale"), Locale.editor.Get("locale_tooltip")), GUILayout.ExpandWidth(false)); + Locale.editor.selected_locale_index = EditorGUILayout.Popup(Locale.editor.selected_locale_index, Locale.editor.available_locales, GUILayout.ExpandWidth(false)); + if(Locale.editor.Get("translator").Length>0) + GUILayout.Label(Locale.editor.Get("translation") +": "+Locale.editor.Get("translator"), GUILayout.ExpandWidth(false)); + EditorGUILayout.EndHorizontal(); + if(EditorGUI.EndChangeCheck()) + { + Config.Singleton.locale = Locale.editor.available_locales[Locale.editor.selected_locale_index]; + Config.Singleton.save(); + ShaderEditor.reload(); + ShaderEditor.Repaint(); + } + } + + private static bool Toggle(bool val, string text, GUIStyle label_style = null) + { + return Toggle(val, text, "",label_style); + } + + private static bool Toggle(bool val, string text, string tooltip, GUIStyle label_style=null) + { + GUILayout.BeginHorizontal(); + GUILayout.Space(35); + val = GUILayout.Toggle(val, new GUIContent("", tooltip), GUILayout.ExpandWidth(false)); + if(label_style==null) + GUILayout.Label(new GUIContent(text, tooltip)); + else + GUILayout.Label(new GUIContent(text, tooltip),label_style); + GUILayout.EndHorizontal(); + return val; + } + + private static bool Foldout(string text, bool expanded) + { + return Foldout(new GUIContent(text), expanded); + } + + private static bool Foldout(GUIContent content, bool expanded) + { + var rect = GUILayoutUtility.GetRect(16f + 20f, 22f, Styles.dropDownHeader); + rect = EditorGUI.IndentedRect(rect); + GUI.Box(rect, content, Styles.dropDownHeader); + var toggleRect = new Rect(rect.x + 4f, rect.y + 2f, 13f, 13f); + Event e = Event.current; + if (e.type == EventType.Repaint) + EditorStyles.foldout.Draw(toggleRect, false, false, expanded, false); + if (e.type == EventType.MouseDown && toggleRect.Contains(e.mousePosition) && !e.alt) + { + expanded = !expanded; + e.Use(); + } + return expanded; + } + } +}
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Settings.cs.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Settings.cs.meta new file mode 100644 index 00000000..a3dce8b5 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Settings.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bd711b7c02d5bb54ba06a46dbd46f9d4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/ShaderOptimizer.cs b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/ShaderOptimizer.cs new file mode 100644 index 00000000..702ee8e9 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/ShaderOptimizer.cs @@ -0,0 +1,1698 @@ +//Original Code from https://github.com/DarthShader/Kaj-Unity-Shaders +/**MIT License + +Copyright (c) 2020 DarthShader + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE.**/ + +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEditor; +using System; +using System.IO; +using System.Text.RegularExpressions; +using System.Text; +using System.Globalization; +using System.Linq; +#if VRC_SDK_VRCSDK2 || VRC_SDK_VRCSDK3 +using VRC.SDKBase.Editor.BuildPipeline; +#endif +#if VRC_SDK_VRCSDK3 && !UDON +using static VRC.SDK3.Avatars.Components.VRCAvatarDescriptor; +using VRC.SDK3.Avatars.Components; +using System.Reflection; +#endif +// v9 + +namespace Thry +{ + + public enum LightMode + { + Always=1, + ForwardBase=2, + ForwardAdd=4, + Deferred=8, + ShadowCaster=16, + MotionVectors=32, + PrepassBase=64, + PrepassFinal=128, + Vertex=256, + VertexLMRGBM=512, + VertexLM=1024 + } + + // Static methods to generate new shader files with in-place constants based on a material's properties + // and link that new shader to the material automatically + public class ShaderOptimizer + { + // For some reason, 'if' statements with replaced constant (literal) conditions cause some compilation error + // So until that is figured out, branches will be removed by default + // Set to false if you want to keep UNITY_BRANCH and [branch] + public static bool RemoveUnityBranches = true; + + // LOD Crossfade Dithing doesn't have multi_compile keyword correctly toggled at build time (its always included) so + // this hard-coded material property will uncomment //#pragma multi_compile _ LOD_FADE_CROSSFADE in optimized .shader files + public static readonly string LODCrossFadePropertyName = "_LODCrossfade"; + + // IgnoreProjector and ForceNoShadowCasting don't work as override tags, so material properties by these names + // will determine whether or not //"IgnoreProjector"="True" etc. will be uncommented in optimized .shader files + public static readonly string IgnoreProjectorPropertyName = "_IgnoreProjector"; + public static readonly string ForceNoShadowCastingPropertyName = "_ForceNoShadowCasting"; + + // Material property suffix that controls whether the property of the same name gets baked into the optimized shader + // e.g. if _Color exists and _ColorAnimated = 1, _Color will not be baked in + public static readonly string AnimatedPropertySuffix = "Animated"; + public static readonly string AnimatedTagSuffix = "Animated"; + + // Currently, Material.SetShaderPassEnabled doesn't work on "ShadowCaster" lightmodes, + // and doesn't let "ForwardAdd" lights get turned into vertex lights if "ForwardAdd" is simply disabled + // vs. if the pases didn't exist at all in the shader. + // The Optimizer will take a mask property by this name and attempt to correct these issues + // by hard-removing the shadowcaster and fwdadd passes from the shader being optimized. + public static readonly string DisabledLightModesPropertyName = "_LightModes"; + + // Property that determines whether or not to evaluate KSOInlineSamplerState comments. + // Inline samplers can be used to get a wider variety of wrap/filter combinations at the cost + // of only having 1x anisotropic filtering on all textures + public static readonly string UseInlineSamplerStatesPropertyName = "_InlineSamplerStates"; + private static bool UseInlineSamplerStates = true; + + // Material properties are put into each CGPROGRAM as preprocessor defines when the optimizer is run. + // This is mainly targeted at culling interpolators and lines that rely on those interpolators. + // (The compiler is not smart enough to cull VS output that isn't used anywhere in the PS) + // Additionally, simply enabling the optimizer can define a keyword, whose name is stored here. + // This keyword is added to the beginning of all passes, right after CGPROGRAM + public static readonly string OptimizerEnabledKeyword = "OPTIMIZER_ENABLED"; + + // Mega shaders are expected to have geometry and tessellation shaders enabled by default, + // but with the ability to be disabled by convention property names when the optimizer is run. + // Additionally, they can be removed per-lightmode by the given property name plus + // the lightmode name as a suffix (e.g. group_toggle_GeometryShadowCaster) + // Geometry and Tessellation shaders are REMOVED by default, but if the main gorups + // are enabled certain pass types are assumed to be ENABLED + public static readonly string GeometryShaderEnabledPropertyName = "group_toggle_Geometry"; + public static readonly string TessellationEnabledPropertyName = "group_toggle_Tessellation"; + private static bool UseGeometry = false; + private static bool UseGeometryForwardBase = true; + private static bool UseGeometryForwardAdd = true; + private static bool UseGeometryShadowCaster = true; + private static bool UseGeometryMeta = true; + private static bool UseTessellation = false; + private static bool UseTessellationForwardBase = true; + private static bool UseTessellationForwardAdd = true; + private static bool UseTessellationShadowCaster = true; + private static bool UseTessellationMeta = false; + + // Tessellation can be slightly optimized with a constant max tessellation factor attribute + // on the hull shader. A non-animated property by this name will replace the argument of said + // attribute if it exists. + public static readonly string TessellationMaxFactorPropertyName = "_TessellationFactorMax"; + + private static string CurrentLightmode = ""; + + // In-order list of inline sampler state names that will be replaced by InlineSamplerState() lines + public static readonly string[] InlineSamplerStateNames = new string[] + { + "_linear_repeat", + "_linear_clamp", + "_linear_mirror", + "_linear_mirroronce", + "_point_repeat", + "_point_clamp", + "_point_mirror", + "_point_mirroronce", + "_trilinear_repeat", + "_trilinear_clamp", + "_trilinear_mirror", + "_trilinear_mirroronce" + }; + + // Would be better to dynamically parse the "C:\Program Files\UnityXXXX\Editor\Data\CGIncludes\" folder + // to get version specific includes but eh + public static readonly string[] DefaultUnityShaderIncludes = new string[] + { + "UnityUI.cginc", + "AutoLight.cginc", + "GLSLSupport.glslinc", + "HLSLSupport.cginc", + "Lighting.cginc", + "SpeedTreeBillboardCommon.cginc", + "SpeedTreeCommon.cginc", + "SpeedTreeVertex.cginc", + "SpeedTreeWind.cginc", + "TerrainEngine.cginc", + "TerrainSplatmapCommon.cginc", + "Tessellation.cginc", + "UnityBuiltin2xTreeLibrary.cginc", + "UnityBuiltin3xTreeLibrary.cginc", + "UnityCG.cginc", + "UnityCG.glslinc", + "UnityCustomRenderTexture.cginc", + "UnityDeferredLibrary.cginc", + "UnityDeprecated.cginc", + "UnityGBuffer.cginc", + "UnityGlobalIllumination.cginc", + "UnityImageBasedLighting.cginc", + "UnityInstancing.cginc", + "UnityLightingCommon.cginc", + "UnityMetaPass.cginc", + "UnityPBSLighting.cginc", + "UnityShaderUtilities.cginc", + "UnityShaderVariables.cginc", + "UnityShadowLibrary.cginc", + "UnitySprites.cginc", + "UnityStandardBRDF.cginc", + "UnityStandardConfig.cginc", + "UnityStandardCore.cginc", + "UnityStandardCoreForward.cginc", + "UnityStandardCoreForwardSimple.cginc", + "UnityStandardInput.cginc", + "UnityStandardMeta.cginc", + "UnityStandardParticleInstancing.cginc", + "UnityStandardParticles.cginc", + "UnityStandardParticleShadow.cginc", + "UnityStandardShadow.cginc", + "UnityStandardUtils.cginc" + }; + + public static readonly char[] ValidSeparators = new char[] {' ','\t','\r','\n',';',',','.','(',')','[',']','{','}','>','<','=','!','&','|','^','+','-','*','/','#' }; + + public static readonly string[] ValidPropertyDataTypes = new string[] + { + "float", + "float2", + "float3", + "float4", + "half", + "half2", + "half3", + "half4", + "fixed", + "fixed2", + "fixed3", + "fixed4" + }; + + public static readonly string[] IllegalPropertyRenames = new string[] + { + "_Color", + "_EmissionColor", + "_BumpScale", + "_Cutoff", + "_DetailNormalMapScale", + "_DstBlend", + "_GlossMapScale", + "_Glossiness", + "_GlossyReflections", + "_Metallic", + "_Mode", + "_OcclusionStrength", + "_Parallax", + "_SmoothnessTextureChannel", + "_SpecularHighlights", + "_SrcBlend", + "_UVSec", + "_ZWrite" + }; + + public enum PropertyType + { + Vector, + Float + } + + public class PropertyData + { + public PropertyType type; + public string name; + public Vector4 value; + } + + public class Macro + { + public string name; + public string[] args; + public string contents; + } + + public class ParsedShaderFile + { + public string filePath; + public string[] lines; + } + + public class TextureProperty + { + public string name; + public Texture texture; + public int uv; + public Vector2 scale; + public Vector2 offset; + } + + public class GrabPassReplacement + { + public string originalName; + public string newName; + } + + public static void CopyAnimatedTagToMaterials(Material[] targets, MaterialProperty source) + { + string val = (source.targets[0] as Material).GetTag(source.name + AnimatedTagSuffix, false, ""); + foreach (Material m in targets) + { + m.SetOverrideTag(source.name+ AnimatedTagSuffix, val); + } + } + + public static void CopyAnimatedTagFromMaterial(Material source, MaterialProperty target) + { + string val = source.GetTag(target.name + AnimatedTagSuffix, false, ""); + foreach (Material m in target.targets) + { + m.SetOverrideTag(target.name + AnimatedTagSuffix, val); + } + } + + public static void CopyAnimatedTagFromProperty(MaterialProperty source, MaterialProperty target) + { + string val = (source.targets[0] as Material).GetTag(source.name + AnimatedTagSuffix, false, ""); + foreach (Material m in target.targets) + { + m.SetOverrideTag(target.name + AnimatedTagSuffix, val); + } + } + + public static void SetAnimatedTag(MaterialProperty prop, string value) + { + foreach (Material m in prop.targets) + { + m.SetOverrideTag(prop.name + AnimatedTagSuffix, value); + } + } + + public static string GetAnimatedTag(MaterialProperty prop) + { + return (prop.targets[0] as Material).GetTag(prop.name + AnimatedTagSuffix, false, ""); + } + + public static string GetAnimatedTag(Material m, string prop) + { + return m.GetTag(prop + AnimatedTagSuffix, false, ""); + } + + public static bool Lock(Material material, MaterialProperty[] props, bool applyShaderLater = false) + { + // File filepaths and names + Shader shader = material.shader; + string shaderFilePath = AssetDatabase.GetAssetPath(shader); + string materialFilePath = AssetDatabase.GetAssetPath(material); + string materialFolder = Path.GetDirectoryName(materialFilePath); + string smallguid = material.name; + string newShaderName = "Hidden/" + shader.name + "/" + material.name + "-" + smallguid; + //string newShaderDirectory = materialFolder + "/OptimizedShaders/" + material.name + "-" + smallguid + "/"; + string newShaderDirectory = materialFolder + "/OptimizedShaders/" + smallguid + "/"; + + // suffix for animated properties when renaming is enabled + string animPropertySuffix = new string(material.name.Trim().ToLower().Where(char.IsLetter).ToArray()); + + // Get collection of all properties to replace + // Simultaneously build a string of #defines for each CGPROGRAM + StringBuilder definesSB = new StringBuilder(); + // Append convention OPTIMIZER_ENABLED keyword + definesSB.Append(Environment.NewLine); + definesSB.Append("#define "); + definesSB.Append(OptimizerEnabledKeyword); + definesSB.Append(Environment.NewLine); + // Append all keywords active on the material + foreach (string keyword in material.shaderKeywords) + { + if (keyword == "") continue; // idk why but null keywords exist if _ keyword is used and not removed by the editor at some point + definesSB.Append("#define "); + definesSB.Append(keyword); + definesSB.Append(Environment.NewLine); + } + + Dictionary<string, bool> uncommentKeywords = new Dictionary<string, bool>(); + List<PropertyData> constantProps = new List<PropertyData>(); + List<MaterialProperty> animatedPropsToRename = new List<MaterialProperty>(); + List<MaterialProperty> animatedPropsToDuplicate = new List<MaterialProperty>(); + foreach (MaterialProperty prop in props) + { + if (prop == null) continue; + + if (Regex.IsMatch(prop.name, @".*_commentIfOne_(\d|\w)+") && prop.floatValue == 1) + { + string key = Regex.Match(prop.name, @"_commentIfOne_(\d|\w)+").Value.Replace("_commentIfOne_", ""); + uncommentKeywords.Add(key, false); + } + if (Regex.IsMatch(prop.name, @".*_commentIfZero_(\d|\w)+") && prop.floatValue == 0) + { + string key = Regex.Match(prop.name, @"_commentIfZero_(\d|\w)+").Value.Replace("_commentIfZero_", ""); + uncommentKeywords.Add(key, false); + } + + // Every property gets turned into a preprocessor variable + switch (prop.type) + { + case MaterialProperty.PropType.Float: + case MaterialProperty.PropType.Range: + definesSB.Append("#define PROP"); + definesSB.Append(prop.name.ToUpper()); + definesSB.Append(' '); + definesSB.Append(prop.floatValue.ToString(CultureInfo.InvariantCulture)); + definesSB.Append(Environment.NewLine); + break; + case MaterialProperty.PropType.Texture: + if (prop.textureValue != null) + { + definesSB.Append("#define PROP"); + definesSB.Append(prop.name.ToUpper()); + definesSB.Append(Environment.NewLine); + } + break; + } + + if (prop.name.EndsWith(AnimatedPropertySuffix)) continue; + else if (prop.name == UseInlineSamplerStatesPropertyName) + { + UseInlineSamplerStates = (prop.floatValue == 1); + continue; + } + else if (prop.name.StartsWith(GeometryShaderEnabledPropertyName)) + { + if (prop.name == GeometryShaderEnabledPropertyName) + UseGeometry = (prop.floatValue == 1); + else if (prop.name == GeometryShaderEnabledPropertyName + "ForwardBase") + UseGeometryForwardBase = (prop.floatValue == 1); + else if (prop.name == GeometryShaderEnabledPropertyName + "ForwardAdd") + UseGeometryForwardAdd = (prop.floatValue == 1); + else if (prop.name == GeometryShaderEnabledPropertyName + "ShadowCaster") + UseGeometryShadowCaster = (prop.floatValue == 1); + else if (prop.name == GeometryShaderEnabledPropertyName + "Meta") + UseGeometryMeta = (prop.floatValue == 1); + } + else if (prop.name.StartsWith(TessellationEnabledPropertyName)) + { + if (prop.name == TessellationEnabledPropertyName) + UseTessellation = (prop.floatValue == 1); + else if (prop.name == TessellationEnabledPropertyName + "ForwardBase") + UseTessellationForwardBase = (prop.floatValue == 1); + else if (prop.name == TessellationEnabledPropertyName + "ForwardAdd") + UseTessellationForwardAdd = (prop.floatValue == 1); + else if (prop.name == TessellationEnabledPropertyName + "ShadowCaster") + UseTessellationShadowCaster = (prop.floatValue == 1); + else if (prop.name == TessellationEnabledPropertyName + "Meta") + UseTessellationMeta = (prop.floatValue == 1); + } + + string animateTag = material.GetTag(prop.name + AnimatedTagSuffix, false, ""); + if(string.IsNullOrEmpty(animateTag) == false) + { + // check if we're renaming the property as well + if (animateTag == "2") + { + if (prop.type != MaterialProperty.PropType.Texture && + !prop.name.EndsWith("UV") && !prop.name.EndsWith("Pan")) // this property might be animated, but we're not allowed to rename it. this will break things. + { + // be sure we're not renaming stuff like _MainTex that should always be named the same + if (!Array.Exists(IllegalPropertyRenames, x => x.Equals(prop.name, StringComparison.InvariantCultureIgnoreCase))) + { + animatedPropsToRename.Add(prop); + } + else + { + //stuff like main tex should be duplicated instead of rename to allow for fallback + animatedPropsToDuplicate.Add(prop); + } + } + } + + continue; + } + + PropertyData propData; + switch(prop.type) + { + case MaterialProperty.PropType.Color: + propData = new PropertyData(); + propData.type = PropertyType.Vector; + propData.name = prop.name; + if ((prop.flags & MaterialProperty.PropFlags.HDR) != 0) + { + if ((prop.flags & MaterialProperty.PropFlags.Gamma) != 0) + propData.value = prop.colorValue.linear; + else propData.value = prop.colorValue; + } + else if ((prop.flags & MaterialProperty.PropFlags.Gamma) != 0) + propData.value = prop.colorValue; + else propData.value = prop.colorValue.linear; + constantProps.Add(propData); + break; + case MaterialProperty.PropType.Vector: + propData = new PropertyData(); + propData.type = PropertyType.Vector; + propData.name = prop.name; + propData.value = prop.vectorValue; + constantProps.Add(propData); + break; + case MaterialProperty.PropType.Float: + case MaterialProperty.PropType.Range: + propData = new PropertyData(); + propData.type = PropertyType.Float; + propData.name = prop.name; + propData.value = new Vector4(prop.floatValue, 0, 0, 0); + constantProps.Add(propData); + break; + case MaterialProperty.PropType.Texture: + animateTag = material.GetTag(prop.name + "_ST" + AnimatedTagSuffix, false, "0"); + if (!(animateTag != "" && animateTag == "1")) + { + PropertyData ST = new PropertyData(); + ST.type = PropertyType.Vector; + ST.name = prop.name + "_ST"; + Vector2 offset = material.GetTextureOffset(prop.name); + Vector2 scale = material.GetTextureScale(prop.name); + ST.value = new Vector4(scale.x, scale.y, offset.x, offset.y); + constantProps.Add(ST); + } + animateTag = material.GetTag(prop.name + "_TexelSize" + AnimatedTagSuffix, false, "0"); + if (!(animateTag != null && animateTag == "1")) + { + PropertyData TexelSize = new PropertyData(); + TexelSize.type = PropertyType.Vector; + TexelSize.name = prop.name + "_TexelSize"; + Texture t = prop.textureValue; + if (t != null) + TexelSize.value = new Vector4(1.0f / t.width, 1.0f / t.height, t.width, t.height); + else TexelSize.value = new Vector4(1.0f, 1.0f, 1.0f, 1.0f); + constantProps.Add(TexelSize); + } + break; + } + } + string optimizerDefines = definesSB.ToString(); + + // Get list of lightmode passes to delete + List<string> disabledLightModes = new List<string>(); + var disabledLightModesProperty = Array.Find(props, x => x.name == DisabledLightModesPropertyName); + if (disabledLightModesProperty != null) + { + int lightModesMask = (int)disabledLightModesProperty.floatValue; + if ((lightModesMask & (int)LightMode.ForwardAdd) != 0) + disabledLightModes.Add("ForwardAdd"); + if ((lightModesMask & (int)LightMode.ShadowCaster) != 0) + disabledLightModes.Add("ShadowCaster"); + } + + // Parse shader and cginc files, also gets preprocessor macros + List<ParsedShaderFile> shaderFiles = new List<ParsedShaderFile>(); + List<Macro> macros = new List<Macro>(); + if (!ParseShaderFilesRecursive(shaderFiles, newShaderDirectory, shaderFilePath, macros)) + return false; + + int longestCommonDirectoryPathLength = GetLongestCommonDirectoryLength(shaderFiles.Select(s => s.filePath).ToArray()); + + int commentKeywords = 0; + + List<GrabPassReplacement> grabPassVariables = new List<GrabPassReplacement>(); + // Loop back through and do macros, props, and all other things line by line as to save string ops + // Will still be a massive n2 operation from each line * each property + foreach (ParsedShaderFile psf in shaderFiles) + { + // replace property names when prop is animated + for (int i = 0; i < psf.lines.Length; i++) + { + foreach (var animProp in animatedPropsToRename) + { + // don't have to match if that prop does not even exist in that line + if (psf.lines[i].Contains(animProp.name)) + { + // this is a terrible hack. but it makes sure we're not removing whatever comes after our property name. no idea how to do this better. + // there should be only 1 character after our property name which is either a whitespace, a semicolon or a bracket. + // this will ensure we're not removing it. + // let's say it like this. It just works. + string pattern = animProp.name + @"([^a-zA-Z\d]|$)"; + MatchCollection matches = Regex.Matches(psf.lines[i], pattern, RegexOptions.Multiline); + foreach (Match match in matches) + { + psf.lines[i] = psf.lines[i].Replace(match.Groups[0].Value, animProp.name + "_" + animPropertySuffix + match.Groups[1]); + } + } + } + foreach (var animProp in animatedPropsToDuplicate) + { + if (psf.lines[i].Contains(animProp.name)) + { + //if Line is property definition duplicate it + bool isDefinition = Regex.Match(psf.lines[i], animProp.name+@"\s*\(""[^""]+""\s*,\s*\w+\)\s*=\s").Success; + string og = null; + if (isDefinition) + og = psf.lines[i]; + string pattern = animProp.name + @"([^a-zA-Z\d]|$)"; + MatchCollection matches = Regex.Matches(psf.lines[i], pattern, RegexOptions.Multiline); + foreach (Match match in matches) + { + psf.lines[i] = psf.lines[i].Replace(match.Groups[0].Value, animProp.name + "_" + animPropertySuffix + match.Groups[1]); + } + if (isDefinition) + psf.lines[i] = og + "\r\n" + psf.lines[i]; + } + } + } + + // Shader file specific stuff + if (psf.filePath.EndsWith(".shader")) + { + for (int i=0; i<psf.lines.Length;i++) + { + string trimmedLine = psf.lines[i].TrimStart(); + string trimmedForKeyword = trimmedLine.TrimStart(new char[] { '/' }).TrimEnd(); + if (trimmedLine.StartsWith("Shader")) + { + string originalSgaderName = psf.lines[i].Split('\"')[1]; + psf.lines[i] = psf.lines[i].Replace(originalSgaderName, newShaderName); + } + else if (trimmedLine.StartsWith("//#pragmamulti_compile_LOD_FADE_CROSSFADE")) + { + MaterialProperty crossfadeProp = Array.Find(props, x => x.name == LODCrossFadePropertyName); + if (crossfadeProp != null && crossfadeProp.floatValue == 1) + psf.lines[i] = psf.lines[i].Replace("//#pragma", "#pragma"); + } + else if (trimmedLine.StartsWith("//\"IgnoreProjector\"=\"True\"")) + { + MaterialProperty projProp = Array.Find(props, x => x.name == IgnoreProjectorPropertyName); + if (projProp != null && projProp.floatValue == 1) + psf.lines[i] = psf.lines[i].Replace("//\"IgnoreProjector", "\"IgnoreProjector"); + } + else if (trimmedLine.StartsWith("//\"ForceNoShadowCasting\"=\"True\"")) + { + MaterialProperty forceNoShadowsProp = Array.Find(props, x => x.name == ForceNoShadowCastingPropertyName); + if (forceNoShadowsProp != null && forceNoShadowsProp.floatValue == 1) + psf.lines[i] = psf.lines[i].Replace("//\"ForceNoShadowCasting", "\"ForceNoShadowCasting"); + } + else if (trimmedLine.StartsWith("GrabPass {")) + { + GrabPassReplacement gpr = new GrabPassReplacement(); + string[] splitLine = trimmedLine.Split('\"'); + if (splitLine.Length == 1) + gpr.originalName = "_GrabTexture"; + else + gpr.originalName = splitLine[1]; + gpr.newName = material.GetTag("GrabPass" + grabPassVariables.Count, false, "_GrabTexture"); + psf.lines[i] = "GrabPass { \"" + gpr.newName + "\" }"; + grabPassVariables.Add(gpr); + } + else if (trimmedLine.StartsWith("CGINCLUDE")) + { + for (int j=i+1; j<psf.lines.Length;j++) + if (psf.lines[j].TrimStart().StartsWith("ENDCG")) + { + ReplaceShaderValues(material, psf.lines, i+1, j, props, constantProps, macros, grabPassVariables); + break; + } + } + else if (trimmedLine.StartsWith("CGPROGRAM")) + { + if(commentKeywords == 0) + psf.lines[i] += optimizerDefines; + for (int j=i+1; j<psf.lines.Length;j++) + if (psf.lines[j].TrimStart().StartsWith("ENDCG")) + { + ReplaceShaderValues(material, psf.lines, i+1, j, props, constantProps, macros, grabPassVariables); + break; + } + } + // Lightmode based pass removal, requires strict formatting + else if (trimmedLine.StartsWith("Tags")) + { + string lineFullyTrimmed = trimmedLine.Replace(" ", "").Replace("\t", ""); + // expects lightmode tag to be on the same line like: Tags { "LightMode" = "ForwardAdd" } + if (lineFullyTrimmed.Contains("\"LightMode\"=\"")) + { + string lightModeName = lineFullyTrimmed.Split('\"')[3]; + // Store current lightmode name in a static, useful for per-pass geometry and tessellation removal + CurrentLightmode = lightModeName; + if (disabledLightModes.Contains(lightModeName)) + { + // Loop up from psf.lines[i] until standalone "Pass" line is found, delete it + int j=i-1; + for (;j>=0;j--) + if (psf.lines[j].Replace(" ", "").Replace("\t", "") == "Pass") + break; + // then delete each line until a standalone ENDCG line is found + for (;j<psf.lines.Length;j++) + { + if (psf.lines[j].Replace(" ", "").Replace("\t", "") == "ENDCG") + break; + psf.lines[j] = ""; + } + // then delete each line until a standalone '}' line is found + for (;j<psf.lines.Length;j++) + { + string temp = psf.lines[j]; + psf.lines[j] = ""; + if (temp.Replace(" ", "").Replace("\t", "") == "}") + break; + } + } + } + } + else if(uncommentKeywords.ContainsKey(trimmedForKeyword)) + { + uncommentKeywords[trimmedForKeyword] = !uncommentKeywords[trimmedForKeyword]; + if (uncommentKeywords[trimmedForKeyword]) + commentKeywords++; + else + commentKeywords--; + } + if (commentKeywords > 0) + { + psf.lines[i] = "//" + psf.lines[i]; + } + } + } + else // CGINC file + ReplaceShaderValues(material, psf.lines, 0, psf.lines.Length, props, constantProps, macros, grabPassVariables); + + // Recombine file lines into a single string + int totalLen = psf.lines.Length*2; // extra space for newline chars + foreach (string line in psf.lines) + totalLen += line.Length; + StringBuilder sb = new StringBuilder(totalLen); + // This appendLine function is incompatible with the '\n's that are being added elsewhere + foreach (string line in psf.lines) + sb.AppendLine(line); + string output = sb.ToString(); + + //cull shader file path + string filePath = psf.filePath.Substring(longestCommonDirectoryPathLength,psf.filePath.Length- longestCommonDirectoryPathLength); + // Write output to file + (new FileInfo(newShaderDirectory + filePath)).Directory.Create(); + try + { + StreamWriter sw = new StreamWriter(newShaderDirectory + filePath); + sw.Write(output); + sw.Close(); + } + catch (IOException e) + { + Debug.LogError("[Kaj Shader Optimizer] Processed shader file " + newShaderDirectory + filePath + " could not be written. " + e.ToString()); + return false; + } + } + + AssetDatabase.Refresh(); + + ApplyStruct applyStruct = new ApplyStruct(); + applyStruct.material = material; + applyStruct.shader = shader; + applyStruct.smallguid = smallguid; + applyStruct.newShaderName = newShaderName; + applyStruct.animatedPropsToRename = animatedPropsToRename; + applyStruct.animatedPropsToDuplicate = animatedPropsToDuplicate; + applyStruct.animPropertySuffix = animPropertySuffix; + + if (applyShaderLater) + { + applyStructsLater.Add(material, applyStruct); + return true; + } + return LockApplyShader(applyStruct); + } + + private static Dictionary<Material, ApplyStruct> applyStructsLater = new Dictionary<Material, ApplyStruct>(); + + private struct ApplyStruct + { + public Material material; + public Shader shader; + public string smallguid; + public string newShaderName; + public List<MaterialProperty> animatedPropsToRename; + public List<MaterialProperty> animatedPropsToDuplicate; + public string animPropertySuffix; + } + + private static bool LockApplyShader(Material material) + { + if (applyStructsLater.ContainsKey(material) == false) return false; + ApplyStruct applyStruct = applyStructsLater[material]; + applyStructsLater.Remove(material); + return LockApplyShader(applyStruct); + } + + private static bool LockApplyShader(ApplyStruct applyStruct) + { + Material material = applyStruct.material; + Shader shader = applyStruct.shader; + string smallguid = applyStruct.smallguid; + string newShaderName = applyStruct.newShaderName; + List<MaterialProperty> animatedPropsToRename = applyStruct.animatedPropsToRename; + List<MaterialProperty> animatedPropsToDuplicate = applyStruct.animatedPropsToDuplicate; + string animPropertySuffix = applyStruct.animPropertySuffix; + + // Write original shader to override tag + material.SetOverrideTag("OriginalShader", shader.name); + // Write the new shader folder name in an override tag so it will be deleted + material.SetOverrideTag("OptimizedShaderFolder", smallguid); + + // Remove ALL keywords + foreach (string keyword in material.shaderKeywords) + material.DisableKeyword(keyword); + + // For some reason when shaders are swapped on a material the RenderType override tag gets completely deleted and render queue set back to -1 + // So these are saved as temp values and reassigned after switching shaders + string renderType = material.GetTag("RenderType", false, ""); + int renderQueue = material.renderQueue; + + // Actually switch the shader + Shader newShader = Shader.Find(newShaderName); + if (newShader == null) + { + Debug.LogError("[Kaj Shader Optimizer] Generated shader " + newShaderName + " could not be found"); + return false; + } + material.shader = newShader; + ShaderEditor.reload(); + material.SetOverrideTag("RenderType", renderType); + material.renderQueue = renderQueue; + + foreach (var animProp in animatedPropsToRename) + { + var newName = animProp.name + "_" + animPropertySuffix; + switch (animProp.type) + { + case MaterialProperty.PropType.Color: + material.SetColor(newName, animProp.colorValue); + break; + case MaterialProperty.PropType.Vector: + material.SetVector(newName, animProp.vectorValue); + break; + case MaterialProperty.PropType.Float: + material.SetFloat(newName, animProp.floatValue); + break; + case MaterialProperty.PropType.Range: + material.SetFloat(newName, animProp.floatValue); + break; + default: + throw new ArgumentOutOfRangeException(nameof(material), "This property type should not be renamed and can not be set."); + } + } + + foreach (var animProp in animatedPropsToDuplicate) + { + var newName = animProp.name + "_" + animPropertySuffix; + switch (animProp.type) + { + case MaterialProperty.PropType.Color: + material.SetColor(newName, animProp.colorValue); + break; + case MaterialProperty.PropType.Vector: + material.SetVector(newName, animProp.vectorValue); + break; + case MaterialProperty.PropType.Float: + material.SetFloat(newName, animProp.floatValue); + break; + case MaterialProperty.PropType.Range: + material.SetFloat(newName, animProp.floatValue); + break; + default: + throw new ArgumentOutOfRangeException(nameof(material), "This property type should not be renamed and can not be set."); + } + } + return true; + } + + /** <summary>Find longest common directoy</summary> */ + public static int GetLongestCommonDirectoryLength(string[] s) + { + int k = s[0].Length; + for (int i = 1; i < s.Length; i++) + { + k = Math.Min(k, s[i].Length); + for (int j = 0; j < k; j++) + if ( AreCharsInPathEqual(s[i][j] , s[0][j]) == false) + { + k = j; + break; + } + } + string p = s[0].Substring(0, k); + if (Directory.Exists(p)) return p.Length; + else return Path.GetDirectoryName(p).Length; + } + + private static bool AreCharsInPathEqual(char c1, char c2) + { + return (c1 == c2) || ((c1 == '/' || c1 == '\\') && (c2 == '/' || c2 == '\\')); + } + + // Preprocess each file for macros and includes + // Save each file as string[], parse each macro with //KSOEvaluateMacro + // Only editing done is replacing #include "X" filepaths where necessary + // most of these args could be private static members of the class + private static bool ParseShaderFilesRecursive(List<ParsedShaderFile> filesParsed, string newTopLevelDirectory, string filePath, List<Macro> macros) + { + // Infinite recursion check + if (filesParsed.Exists(x => x.filePath == filePath)) return true; + + ParsedShaderFile psf = new ParsedShaderFile(); + psf.filePath = filePath; + filesParsed.Add(psf); + + // Read file + string fileContents = null; + try + { + StreamReader sr = new StreamReader(filePath); + fileContents = sr.ReadToEnd(); + sr.Close(); + } + catch (FileNotFoundException e) + { + Debug.LogError("[Kaj Shader Optimizer] Shader file " + filePath + " not found. " + e.ToString()); + return false; + } + catch (IOException e) + { + Debug.LogError("[Kaj Shader Optimizer] Error reading shader file. " + e.ToString()); + return false; + } + + // Parse file line by line + List<String> macrosList = new List<string>(); + string[] fileLines = Regex.Split(fileContents, "\r\n|\r|\n"); + for (int i=0; i<fileLines.Length; i++) + { + string lineParsed = fileLines[i].TrimStart(); + // Specifically requires no whitespace between # and include, as it should be + if (lineParsed.StartsWith("#include")) + { + int firstQuotation = lineParsed.IndexOf('\"',0); + int lastQuotation = lineParsed.IndexOf('\"',firstQuotation+1); + string includeFilename = lineParsed.Substring(firstQuotation+1, lastQuotation-firstQuotation-1); + + // Skip default includes + if (Array.Exists(DefaultUnityShaderIncludes, x => x.Equals(includeFilename, StringComparison.InvariantCultureIgnoreCase))) + continue; + + // cginclude filepath is either absolute or relative + if (includeFilename.StartsWith("Assets/")) + { + if (!ParseShaderFilesRecursive(filesParsed, newTopLevelDirectory, includeFilename, macros)) + return false; + // Only absolute filepaths need to be renampped in-file + fileLines[i] = fileLines[i].Replace(includeFilename, newTopLevelDirectory + includeFilename); + } + else + { + string includeFullpath = GetFullPath(includeFilename, Path.GetDirectoryName(filePath)); + if (!ParseShaderFilesRecursive(filesParsed, newTopLevelDirectory, includeFullpath, macros)) + return false; + } + } + // Specifically requires no whitespace between // and KSOEvaluateMacro + else if (lineParsed == "//KSOEvaluateMacro") + { + string macro = ""; + string lineTrimmed = null; + do + { + i++; + lineTrimmed = fileLines[i].TrimEnd(); + if (lineTrimmed.EndsWith("\\")) + macro += lineTrimmed.TrimEnd('\\') + Environment.NewLine; // keep new lines in macro to make output more readable + else macro += lineTrimmed; + } + while (lineTrimmed.EndsWith("\\")); + macrosList.Add(macro); + } + } + + // Prepare the macros list into pattern matchable structs + // Revise this later to not do so many string ops + foreach (string macroString in macrosList) + { + string m = macroString; + Macro macro = new Macro(); + m = m.TrimStart(); + if (m[0] != '#') continue; + m = m.Remove(0, "#".Length).TrimStart(); + if (!m.StartsWith("define")) continue; + m = m.Remove(0, "define".Length).TrimStart(); + int firstParenthesis = m.IndexOf('('); + macro.name = m.Substring(0, firstParenthesis); + m = m.Remove(0, firstParenthesis + "(".Length); + int lastParenthesis = m.IndexOf(')'); + string allArgs = m.Substring(0, lastParenthesis).Replace(" ", "").Replace("\t", ""); + macro.args = allArgs.Split(','); + m = m.Remove(0, lastParenthesis + ")".Length); + macro.contents = m; + macros.Add(macro); + } + + // Save psf lines to list + psf.lines = fileLines; + return true; + } + + // error CS1501: No overload for method 'Path.GetFullPath' takes 2 arguments + // Thanks Unity + // Could be made more efficent with stringbuilder + public static string GetFullPath(string relativePath, string basePath) + { + while (relativePath.StartsWith("./")) + relativePath = relativePath.Remove(0, "./".Length); + while (relativePath.StartsWith("../")) + { + basePath = basePath.Remove(basePath.LastIndexOf(Path.DirectorySeparatorChar), basePath.Length - basePath.LastIndexOf(Path.DirectorySeparatorChar)); + relativePath = relativePath.Remove(0, "../".Length); + } + return basePath + '/' + relativePath; + } + + // Replace properties! The meat of the shader optimization process + // For each constantProp, pattern match and find each instance of the property that isn't a declaration + // most of these args could be private static members of the class + private static void ReplaceShaderValues(Material material, string[] lines, int startLine, int endLine, + MaterialProperty[] props, List<PropertyData> constants, List<Macro> macros, List<GrabPassReplacement> grabPassVariables) + { + List <TextureProperty> uniqueSampledTextures = new List<TextureProperty>(); + + // Outside loop is each line + for (int i=startLine;i<endLine;i++) + { + string lineTrimmed = lines[i].TrimStart(); + if (lineTrimmed.StartsWith("#pragma geometry")) + { + if (!UseGeometry) + lines[i] = "//" + lines[i]; + else + { + switch (CurrentLightmode) + { + case "ForwardBase": + if (!UseGeometryForwardBase) + lines[i] = "//" + lines[i]; + break; + case "ForwardAdd": + if (!UseGeometryForwardAdd) + lines[i] = "//" + lines[i]; + break; + case "ShadowCaster": + if (!UseGeometryShadowCaster) + lines[i] = "//" + lines[i]; + break; + case "Meta": + if (!UseGeometryMeta) + lines[i] = "//" + lines[i]; + break; + } + } + } + else if (lineTrimmed.StartsWith("#pragma hull") || lineTrimmed.StartsWith("#pragma domain")) + { + if (!UseTessellation) + lines[i] = "//" + lines[i]; + else + { + switch (CurrentLightmode) + { + case "ForwardBase": + if (!UseTessellationForwardBase) + lines[i] = "//" + lines[i]; + break; + case "ForwardAdd": + if (!UseTessellationForwardAdd) + lines[i] = "//" + lines[i]; + break; + case "ShadowCaster": + if (!UseTessellationShadowCaster) + lines[i] = "//" + lines[i]; + break; + case "Meta": + if (!UseTessellationMeta) + lines[i] = "//" + lines[i]; + break; + } + } + } + // Remove all shader_feature directives + else if (lineTrimmed.StartsWith("#pragma shader_feature") || lineTrimmed.StartsWith("#pragma shader_feature_local")) + lines[i] = "//" + lines[i]; + // Replace inline smapler states + else if (UseInlineSamplerStates && lineTrimmed.StartsWith("//KSOInlineSamplerState")) + { + string lineParsed = lineTrimmed.Replace(" ", "").Replace("\t", ""); + // Remove all whitespace + int firstParenthesis = lineParsed.IndexOf('('); + int lastParenthesis = lineParsed.IndexOf(')'); + string argsString = lineParsed.Substring(firstParenthesis+1, lastParenthesis - firstParenthesis-1); + string[] args = argsString.Split(','); + MaterialProperty texProp = Array.Find(props, x => x.name == args[1]); + if (texProp != null) + { + Texture t = texProp.textureValue; + int inlineSamplerIndex = 0; + if (t != null) + { + switch (t.filterMode) + { + case FilterMode.Bilinear: + break; + case FilterMode.Point: + inlineSamplerIndex += 1 * 4; + break; + case FilterMode.Trilinear: + inlineSamplerIndex += 2 * 4; + break; + } + switch (t.wrapMode) + { + case TextureWrapMode.Repeat: + break; + case TextureWrapMode.Clamp: + inlineSamplerIndex += 1; + break; + case TextureWrapMode.Mirror: + inlineSamplerIndex += 2; + break; + case TextureWrapMode.MirrorOnce: + inlineSamplerIndex += 3; + break; + } + } + + // Replace the token on the following line + lines[i+1] = lines[i+1].Replace(args[0], InlineSamplerStateNames[inlineSamplerIndex]); + } + } + else if (lineTrimmed.StartsWith("//KSODuplicateTextureCheckStart")) + { + // Since files are not fully parsed and instead loosely processed, each shader function needs to have + // its sampled texture list reset somewhere before KSODuplicateTextureChecks are made. + // As long as textures are sampled in-order inside a single function, this method will work. + uniqueSampledTextures = new List<TextureProperty>(); + } + else if (lineTrimmed.StartsWith("//KSODuplicateTextureCheck")) + { + // Each KSODuplicateTextureCheck line gets evaluated when the shader is optimized + // If the texture given has already been sampled as another texture (i.e. one texture is used in two slots) + // AND has been sampled with the same UV mode - as indicated by a convention UV property, + // AND has been sampled with the exact same Tiling/Offset values + // AND has been logged by KSODuplicateTextureCheck, + // then the variable corresponding to the first instance of that texture being + // sampled will be assigned to the variable corresponding to the given texture. + // The compiler will then skip the duplicate texture sample since its variable is overwritten before being used + + // Parse line for argument texture property name + string lineParsed = lineTrimmed.Replace(" ", "").Replace("\t", ""); + int firstParenthesis = lineParsed.IndexOf('('); + int lastParenthesis = lineParsed.IndexOf(')'); + string argName = lineParsed.Substring(firstParenthesis+1, lastParenthesis-firstParenthesis-1); + // Check if texture property by argument name exists and has a texture assigned + if (Array.Exists(props, x => x.name == argName)) + { + MaterialProperty argProp = Array.Find(props, x => x.name == argName); + if (argProp.textureValue != null) + { + // If no convention UV property exists, sampled UV mode is assumed to be 0 + // Any UV enum or mode indicator can be used for this + int UV = 0; + if (Array.Exists(props, x => x.name == argName + "UV")) + UV = (int)(Array.Find(props, x => x.name == argName + "UV").floatValue); + + Vector2 texScale = material.GetTextureScale(argName); + Vector2 texOffset = material.GetTextureOffset(argName); + + // Check if this texture has already been sampled + if (uniqueSampledTextures.Exists(x => (x.texture == argProp.textureValue) + && (x.uv == UV) + && (x.scale == texScale) + && x.offset == texOffset)) + { + string texName = uniqueSampledTextures.Find(x => (x.texture == argProp.textureValue) && (x.uv == UV)).name; + // convention _var variables requried. i.e. _MainTex_var and _CoverageMap_var + lines[i] = argName + "_var = " + texName + "_var;"; + } + else + { + // Texture/UV/ST combo hasn't been sampled yet, add it to the list + TextureProperty tp = new TextureProperty(); + tp.name = argName; + tp.texture = argProp.textureValue; + tp.uv = UV; + tp.scale = texScale; + tp.offset = texOffset; + uniqueSampledTextures.Add(tp); + } + } + } + } + else if (lineTrimmed.StartsWith("[maxtessfactor(")) + { + MaterialProperty maxTessFactorProperty = Array.Find(props, x => x.name == TessellationMaxFactorPropertyName); + if (maxTessFactorProperty != null) + { + float maxTessellation = maxTessFactorProperty.floatValue; + string animateTag = material.GetTag(TessellationMaxFactorPropertyName + AnimatedTagSuffix, false, "0"); + if (animateTag != "" && animateTag == "1") + maxTessellation = 64.0f; + lines[i] = "[maxtessfactor(" + maxTessellation.ToString(".0######") + ")]"; + } + } + + // then replace macros + foreach (Macro macro in macros) + { + // Expects only one instance of a macro per line! + int macroIndex; + if ((macroIndex = lines[i].IndexOf(macro.name + "(")) != -1) + { + // Macro exists on this line, make sure its not the definition + string lineParsed = lineTrimmed.Replace(" ", "").Replace("\t", ""); + if (lineParsed.StartsWith("#define")) continue; + + // parse args between first '(' and first ')' + int firstParenthesis = macroIndex + macro.name.Length; + int lastParenthesis = lines[i].IndexOf(')', macroIndex + macro.name.Length+1); + string allArgs = lines[i].Substring(firstParenthesis+1, lastParenthesis-firstParenthesis-1); + string[] args = allArgs.Split(','); + + // Replace macro parts + string newContents = macro.contents; + for (int j=0; j<args.Length;j++) + { + args[j] = args[j].Trim(); + int argIndex; + int lastIndex = 0; + while ((argIndex = newContents.IndexOf(macro.args[j], lastIndex)) != -1) + { + lastIndex = argIndex+1; + char charLeft = ' '; + if (argIndex-1 >= 0) + charLeft = newContents[argIndex-1]; + char charRight = ' '; + if (argIndex+macro.args[j].Length < newContents.Length) + charRight = newContents[argIndex+macro.args[j].Length]; + if (Array.Exists(ValidSeparators, x => x == charLeft) && Array.Exists(ValidSeparators, x => x == charRight)) + { + // Replcae the arg! + StringBuilder sbm = new StringBuilder(newContents.Length - macro.args[j].Length + args[j].Length); + sbm.Append(newContents, 0, argIndex); + sbm.Append(args[j]); + sbm.Append(newContents, argIndex + macro.args[j].Length, newContents.Length - argIndex - macro.args[j].Length); + newContents = sbm.ToString(); + } + } + } + newContents = newContents.Replace("##", ""); // Remove token pasting separators + // Replace the line with the evaluated macro + StringBuilder sb = new StringBuilder(lines[i].Length + newContents.Length); + sb.Append(lines[i], 0, macroIndex); + sb.Append(newContents); + sb.Append(lines[i], lastParenthesis+1, lines[i].Length - lastParenthesis-1); + lines[i] = sb.ToString(); + } + } + // then replace properties + foreach (PropertyData constant in constants) + { + int constantIndex; + int lastIndex = 0; + bool declarationFound = false; + while ((constantIndex = lines[i].IndexOf(constant.name, lastIndex)) != -1) + { + lastIndex = constantIndex+1; + char charLeft = ' '; + if (constantIndex-1 >= 0) + charLeft = lines[i][constantIndex-1]; + char charRight = ' '; + if (constantIndex + constant.name.Length < lines[i].Length) + charRight = lines[i][constantIndex + constant.name.Length]; + // Skip invalid matches (probably a subname of another symbol) + if (!(Array.Exists(ValidSeparators, x => x == charLeft) && Array.Exists(ValidSeparators, x => x == charRight))) + continue; + + // Skip basic declarations of unity shader properties i.e. "uniform float4 _Color;" + if (!declarationFound) + { + string precedingText = lines[i].Substring(0, constantIndex-1).TrimEnd(); // whitespace removed string immediately to the left should be float or float4 + string restOftheFile = lines[i].Substring(constantIndex + constant.name.Length).TrimStart(); // whitespace removed character immediately to the right should be ; + if (Array.Exists(ValidPropertyDataTypes, x => precedingText.EndsWith(x)) && restOftheFile.StartsWith(";")) + { + declarationFound = true; + continue; + } + } + + // Replace with constant! + // This could technically be more efficient by being outside the IndexOf loop + StringBuilder sb = new StringBuilder(lines[i].Length * 2); + sb.Append(lines[i], 0, constantIndex); + switch (constant.type) + { + case PropertyType.Float: + sb.Append("float(" + constant.value.x.ToString(CultureInfo.InvariantCulture) + ")"); + break; + case PropertyType.Vector: + sb.Append("float4("+constant.value.x.ToString(CultureInfo.InvariantCulture)+"," + +constant.value.y.ToString(CultureInfo.InvariantCulture)+"," + +constant.value.z.ToString(CultureInfo.InvariantCulture)+"," + +constant.value.w.ToString(CultureInfo.InvariantCulture)+")"); + break; + } + sb.Append(lines[i], constantIndex+constant.name.Length, lines[i].Length-constantIndex-constant.name.Length); + lines[i] = sb.ToString(); + + // Check for Unity branches on previous line here? + } + } + + // Then replace grabpass variable names + foreach (GrabPassReplacement gpr in grabPassVariables) + { + // find indexes of all instances of gpr.originalName that exist on this line + int lastIndex = 0; + int gbIndex; + while ((gbIndex = lines[i].IndexOf(gpr.originalName, lastIndex)) != -1) + { + lastIndex = gbIndex+1; + char charLeft = ' '; + if (gbIndex-1 >= 0) + charLeft = lines[i][gbIndex-1]; + char charRight = ' '; + if (gbIndex + gpr.originalName.Length < lines[i].Length) + charRight = lines[i][gbIndex + gpr.originalName.Length]; + // Skip invalid matches (probably a subname of another symbol) + if (!(Array.Exists(ValidSeparators, x => x == charLeft) && Array.Exists(ValidSeparators, x => x == charRight))) + continue; + + // Replace with new variable name + // This could technically be more efficient by being outside the IndexOf loop + StringBuilder sb = new StringBuilder(lines[i].Length * 2); + sb.Append(lines[i], 0, gbIndex); + sb.Append(gpr.newName); + sb.Append(lines[i], gbIndex+gpr.originalName.Length, lines[i].Length-gbIndex-gpr.originalName.Length); + lines[i] = sb.ToString(); + } + } + + // Then remove Unity branches + if (RemoveUnityBranches) + lines[i] = lines[i].Replace("UNITY_BRANCH", "").Replace("[branch]", ""); + } + } + + public static bool Unlock (Material material) + { + // Revert to original shader + string originalShaderName = material.GetTag("OriginalShader", false, ""); + if (originalShaderName == "") + { + Debug.LogError("[Kaj Shader Optimizer] Original shader not saved to material, could not unlock shader"); + return material.shader.name.StartsWith("Hidden/") == false; + + } + Shader orignalShader = Shader.Find(originalShaderName); + if (orignalShader == null) + { + Debug.LogError("[Kaj Shader Optimizer] Original shader " + originalShaderName + " could not be found"); + return false; + } + + // For some reason when shaders are swapped on a material the RenderType override tag gets completely deleted and render queue set back to -1 + // So these are saved as temp values and reassigned after switching shaders + string renderType = material.GetTag("RenderType", false, ""); + int renderQueue = material.renderQueue; + material.shader = orignalShader; + ShaderEditor.reload(); + material.SetOverrideTag("RenderType", renderType); + material.renderQueue = renderQueue; + + // Delete the variants folder and all files in it, as to not orhpan files and inflate Unity project + string shaderDirectory = material.GetTag("OptimizedShaderFolder", false, ""); + if (shaderDirectory == "") + { + Debug.LogError("[Kaj Shader Optimizer] Optimized shader folder could not be found, not deleting anything"); + return false; + } + string materialFilePath = AssetDatabase.GetAssetPath(material); + string materialFolder = Path.GetDirectoryName(materialFilePath); + string newShaderDirectory = materialFolder + "/OptimizedShaders/" + shaderDirectory; + // Both safe ways of removing the shader make the editor GUI throw an error, so just don't refresh the + // asset database immediately + //AssetDatabase.DeleteAsset(shaderFilePath); + FileUtil.DeleteFileOrDirectory(newShaderDirectory + "/"); + FileUtil.DeleteFileOrDirectory(newShaderDirectory + ".meta"); + //AssetDatabase.Refresh(); + + return true; + } + + #region Upgrade + + [MenuItem("Thry/Editor Tools/Upgraded Animated Properties")] + public static void UpgradeAnimatedPropertiesToTagsOnAllMaterials() + { + IEnumerable<Material> materials = Resources.FindObjectsOfTypeAll<Material>(); + UpgradeAnimatedPropertiesToTags(materials); + Debug.Log("[Thry][Optimizer] Update animated properties of all materials to tags."); + } + + public static void UpgradeAnimatedPropertiesToTags(IEnumerable<Material> iMaterials) + { + IEnumerable<Material> materialsToChange = iMaterials.Where(m => m != null && + string.IsNullOrEmpty(AssetDatabase.GetAssetPath(m)) == false && string.IsNullOrEmpty(AssetDatabase.GetAssetPath(m.shader)) == false + && IsShaderUsingThryOptimizer(m.shader)).Distinct().OrderBy(m => m.shader.name); + + int i = 0; + foreach (Material m in materialsToChange) + { + if(EditorUtility.DisplayCancelableProgressBar("Upgrading Materials", "Upgrading animated tags of " + m.name, (float)i / materialsToChange.Count())) + { + break; + } + + string path = AssetDatabase.GetAssetPath(m); + StreamReader reader = new StreamReader(path); + string line; + while((line = reader.ReadLine()) != null) + { + if (line.Contains(AnimatedPropertySuffix) && line.Length > 6) + { + string[] parts = line.Substring(6, line.Length - 6).Split(':'); + float f; + if (float.TryParse(parts[1], out f)) + { + if( f != 0) + { + string name = parts[0].Substring(0, parts[0].Length - AnimatedPropertySuffix.Length); + m.SetOverrideTag(name + AnimatedTagSuffix, "" + f); + } + } + } + } + reader.Close(); + i++; + } + + EditorUtility.ClearProgressBar(); + } + + static void ClearConsole() + { + var logEntries = System.Type.GetType("UnityEditor.LogEntries, UnityEditor.dll"); + + var clearMethod = logEntries.GetMethod("Clear", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.Public); + + clearMethod.Invoke(null, null); + } + + #endregion + + //---GameObject + Children Locking + + [MenuItem("GameObject/Thry/Materials/Unlock All", false,0)] + static void UnlockAllChildren() + { + SetLockForAllChildren(Selection.gameObjects, 0, true); + } + + [MenuItem("GameObject/Thry/Materials/Lock All", false,0)] + static void LockAllChildren() + { + SetLockForAllChildren(Selection.gameObjects, 1, true); + } + + //---Asset Unlocking + + [MenuItem("Assets/Thry/Materials/Unlock All", false, 303)] + static void UnlockAllMaterials() + { + IEnumerable<Material> mats = Selection.assetGUIDs.Select(g => AssetDatabase.LoadAssetAtPath<Material>(AssetDatabase.GUIDToAssetPath(g))); + SetLockedForAllMaterials(mats, 0, true); + } + + [MenuItem("Assets/Thry/Materials/Unlock All", true)] + static bool UnlockAllMaterialsValidator() + { + return SelectedObjectsAreLockableMaterials(); + } + + //---Asset Locking + + [MenuItem("Assets/Thry/Materials/Lock All", false, 303)] + static void LockAllMaterials() + { + IEnumerable<Material> mats = Selection.assetGUIDs.Select(g => AssetDatabase.LoadAssetAtPath<Material>(AssetDatabase.GUIDToAssetPath(g))); + SetLockedForAllMaterials(mats, 1, true); + } + + [MenuItem("Assets/Thry/Materials/Lock All", true)] + static bool LockAllMaterialsValidator() + { + return SelectedObjectsAreLockableMaterials(); + } + + //----Folder Lock + + [MenuItem("Assets/Thry/Materials/Lock Folder", false, 303)] + static void LockFolder() + { + IEnumerable<string> folderPaths = Selection.objects.Select(o => AssetDatabase.GetAssetPath(o)).Where(p => Directory.Exists(p)); + List<Material> materials = new List<Material>(); + foreach (string f in folderPaths) FindMaterialsRecursive(f, materials); + SetLockedForAllMaterials(materials, 1, true); + } + + [MenuItem("Assets/Thry/Materials/Lock Folder", true)] + static bool LockFolderValidator() + { + return Selection.objects.Select(o => AssetDatabase.GetAssetPath(o)).Where(p => Directory.Exists(p)).Count() == Selection.objects.Length; + } + + //-----Folder Unlock + + [MenuItem("Assets/Thry/Materials/Unlock Folder", false, 303)] + static void UnLockFolder() + { + IEnumerable<string> folderPaths = Selection.objects.Select(o => AssetDatabase.GetAssetPath(o)).Where(p => Directory.Exists(p)); + List<Material> materials = new List<Material>(); + foreach (string f in folderPaths) FindMaterialsRecursive(f, materials); + SetLockedForAllMaterials(materials, 0, true); + } + + [MenuItem("Assets/Thry/Materials/Unlock Folder", true)] + static bool UnLockFolderValidator() + { + return Selection.objects.Select(o => AssetDatabase.GetAssetPath(o)).Where(p => Directory.Exists(p)).Count() == Selection.objects.Length; + } + + private static void FindMaterialsRecursive(string folderPath, List<Material> materials) + { + foreach(string f in Directory.GetFiles(folderPath)) + { + if(AssetDatabase.GetMainAssetTypeAtPath(f) == typeof(Material)) + { + materials.Add(AssetDatabase.LoadAssetAtPath<Material>(f)); + } + } + foreach(string f in Directory.GetDirectories(folderPath)){ + FindMaterialsRecursive(f, materials); + } + } + + //----Folder Unlock + + static bool SelectedObjectsAreLockableMaterials() + { + if (Selection.assetGUIDs != null && Selection.assetGUIDs.Length > 0) + { + return Selection.assetGUIDs.All(g => + { + if (AssetDatabase.GetMainAssetTypeAtPath(AssetDatabase.GUIDToAssetPath(g)) != typeof(Material)) + return false; + Material m = AssetDatabase.LoadAssetAtPath<Material>(AssetDatabase.GUIDToAssetPath(g)); + return IsShaderUsingThryOptimizer(m.shader); + }); + } + return false; + } + + //----VRChat Callback to force Locking on upload + +#if VRC_SDK_VRCSDK2 || VRC_SDK_VRCSDK3 + public class LockMaterialsOnUpload : IVRCSDKPreprocessAvatarCallback + { + public int callbackOrder => 100; + + public bool OnPreprocessAvatar(GameObject avatarGameObject) + { + List<Material> materials = avatarGameObject.GetComponentsInChildren<Renderer>(true).SelectMany(r => r.sharedMaterials).ToList(); +#if VRC_SDK_VRCSDK3 && !UDON + VRCAvatarDescriptor descriptor = avatarGameObject.GetComponent<VRCAvatarDescriptor>(); + if(descriptor != null) + { + IEnumerable<AnimationClip> clips = descriptor.baseAnimationLayers.Select(l => l.animatorController).Where(a => a != null).SelectMany(a => a.animationClips).Distinct(); + foreach (AnimationClip clip in clips) + { + IEnumerable<Material> clipMaterials = AnimationUtility.GetObjectReferenceCurveBindings(clip).Where(b => b.isPPtrCurve && b.type == typeof(SkinnedMeshRenderer) && b.propertyName.StartsWith("m_Materials")) + .SelectMany(b => AnimationUtility.GetObjectReferenceCurve(clip, b)).Select(r => r.value as Material); + materials.AddRange(clipMaterials); + } + } + +#endif + SetLockedForAllMaterials(materials, 1, showProgressbar: true, showDialog: PersistentData.Get<bool>("ShowLockInDialog", true), allowCancel: false); + //returning true all the time, because build process cant be stopped it seems + return true; + } + } +#endif + + public static bool SetLockForAllChildren(GameObject[] objects, int lockState, bool showProgressbar = false, bool showDialog = false, bool allowCancel = true) + { + IEnumerable<Material> materials = objects.Select(o => o.GetComponentsInChildren<Renderer>(true)).SelectMany(rA => rA.SelectMany(r => r.sharedMaterials)); + return SetLockedForAllMaterials(materials, lockState, showProgressbar, showDialog); + } + + public static bool SetLockedForAllMaterials(IEnumerable<Material> materials, int lockState, bool showProgressbar = false, bool showDialog = false, bool allowCancel = true) + { + //first the shaders are created. compiling is suppressed with start asset editing + + AssetDatabase.StartAssetEditing(); + + IEnumerable<Material> materialsToChangeLock = materials.Where(m => m != null && + string.IsNullOrEmpty(AssetDatabase.GetAssetPath(m)) == false && string.IsNullOrEmpty(AssetDatabase.GetAssetPath(m.shader)) == false + && IsShaderUsingThryOptimizer(m.shader) && m.GetFloat(GetOptimizerPropertyName(m.shader)) != lockState).Distinct(); + + float i = 0; + float length = materialsToChangeLock.Count(); + + if(showDialog && length > 0) + { + if(EditorUtility.DisplayDialog("Locking Materials", Locale.editor.Get("auto_lock_dialog").ReplaceVariables(length), "More information","OK")) + { + Application.OpenURL("https://www.youtube.com/watch?v=asWeDJb5LAo"); + } + PersistentData.Set("ShowLockInDialog", false); + } + foreach (Material m in materialsToChangeLock) + { + //dont give it a progress bar if it is called by lockin police, else it breaks everything. why ? cause unity ... + if (showProgressbar) + { + if (allowCancel) + { + if (EditorUtility.DisplayCancelableProgressBar((lockState == 1) ? "Locking Materials" : "Unlocking Materials", m.name, i / length)) break; + } + else + { + EditorUtility.DisplayProgressBar((lockState == 1) ? "Locking Materials" : "Unlocking Materials", m.name, i / length); + } + } + try + { + if (lockState == 1) + { + ShaderOptimizer.Lock(m, MaterialEditor.GetMaterialProperties(new UnityEngine.Object[] { m }), applyShaderLater: true); + } + else if (lockState == 0) + { + //if unlock success set floats. not done for locking cause the sucess is checked later when applying the shaders + if (ShaderOptimizer.Unlock(m)) + { + m.SetFloat(GetOptimizerPropertyName(m.shader), lockState); + } + } + } + catch (Exception e) + { + Debug.LogError("Could not un-/lock material " + m.name); + Debug.LogError(e); + } + i++; + } + EditorUtility.ClearProgressBar(); + AssetDatabase.StopAssetEditing(); + //unity now compiles all the shaders + + //now all new shaders are applied. this has to happen after unity compiled the shaders + if (lockState == 1) + { + //Apply new shaders + foreach (Material m in materialsToChangeLock) + { + bool success = ShaderOptimizer.LockApplyShader(m); + if (success) + { + m.SetFloat(GetOptimizerPropertyName(m.shader), lockState); + } + } + } + return true; + } + + public static string GetOptimizerPropertyName(Shader shader) + { + if (shaderUsingThryOptimizerDictionary.ContainsKey(shader)) + { + return shaderUsingThryOptimizerDictionary[shader]; + } + else + { + IsShaderUsingThryOptimizer(shader); + return shaderUsingThryOptimizerDictionary[shader]; + } + } + + private static Dictionary<Shader, string> shaderUsingThryOptimizerDictionary = new Dictionary<Shader, string>(); + public static bool IsShaderUsingThryOptimizer(Shader shader) + { + string propertyName; + if (shaderUsingThryOptimizerDictionary.ContainsKey(shader)) + { + propertyName = shaderUsingThryOptimizerDictionary[shader]; + return propertyName != null; + } + + //check shader code for drawer that's not commented out + string code = FileHelper.ReadFileIntoString(AssetDatabase.GetAssetPath(shader)); + Match m = Regex.Match(code, @"\n[^(\/)]*\[ThryShaderOptimizerLockButton\].*\n"); + if (m.Success) + { + //get property name + m = Regex.Match(m.Value, @"(?<=\[ThryShaderOptimizerLockButton\])\s*(\w|\d)+"); + if (m.Success) + { + propertyName = m.Value.Trim(); + shaderUsingThryOptimizerDictionary[shader] = propertyName; + return true; + } + } + propertyName = null; + shaderUsingThryOptimizerDictionary[shader] = propertyName; + return false; + } + } +}
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/ShaderOptimizer.cs.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/ShaderOptimizer.cs.meta new file mode 100644 index 00000000..21f57306 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/ShaderOptimizer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 01a32216cdf0b0e44af9eb3d82fff780 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Styles.cs b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Styles.cs new file mode 100644 index 00000000..8250a629 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Styles.cs @@ -0,0 +1,145 @@ +// Material/Shader Inspector for Unity 2017/2018 +// Copyright (C) 2019 Thryrallo + +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; + +namespace Thry +{ + public class Styles + { + public static GUIStyle masterLabel { get; private set; } = new GUIStyle(GUI.skin.label) { richText = true, alignment = TextAnchor.MiddleCenter }; + public static GUIStyle dropDownHeader { get; private set; } = new GUIStyle(new GUIStyle("ShurikenModuleTitle")) + { + font = new GUIStyle(EditorStyles.label).font, + border = new RectOffset(15, 7, 4, 4), + fixedHeight = 22, + contentOffset = new Vector2(20f, -2f) + }; + + public static Color backgroundColor { get; private set; } = (EditorGUIUtility.isProSkin) ? new Color(0.4f, 0.4f, 0.4f) : new Color(0.8f, 0.8f, 0.8f); + public static Color backgroundColorTransparent { get; private set; } = (EditorGUIUtility.isProSkin) ? new Color(0.4f, 0.4f, 0.4f, 0.3f) : new Color(0.8f, 0.8f, 0.8f, 0.3f); + public static Color forgroundColor { get; private set; } = (EditorGUIUtility.isProSkin) ? new Color(0.8f, 0.8f, 0.8f) : Color.black; + + public static GUIStyle dropDownHeaderLabel { get; private set; } = new GUIStyle(EditorStyles.boldLabel) { alignment= TextAnchor.MiddleCenter }; + public static GUIStyle dropDownHeaderButton { get; private set; } = new GUIStyle(EditorStyles.toolbarButton); + public static GUIStyle bigTextureStyle { get; private set; } = new GUIStyle() { fontSize= 48 }; + public static GUIStyle vectorPropertyStyle { get; private set; } = new GUIStyle() { padding = new RectOffset(0, 0, 2, 2) }; + public static GUIStyle greenStyle { get; private set; } = new GUIStyle() { normal = new GUIStyleState() { textColor = new Color(0, 0.5f, 0) } }; + public static GUIStyle yellowStyle { get; private set; } = new GUIStyle() { normal = new GUIStyleState() { textColor = new Color(1, 0.79f, 0) } }; + public static GUIStyle redStyle { get; private set; } = new GUIStyle() { normal = new GUIStyleState() { textColor = Color.red } }; + public static GUIStyle made_by_style { get; private set; } = new GUIStyle() { fontSize = 10 }; + public static GUIStyle notification_style { get; private set; } = new GUIStyle(GUI.skin.box) { fontSize = 12, wordWrap = true, normal = new GUIStyleState() { textColor = Color.red } }; + + public static GUIStyle none { get; private set; } = new GUIStyle(); + + public static GUIStyle style_toolbar { get; private set; } = new GUIStyle(Styles.dropDownHeader) { }; + public static GUIStyle style_toolbar_toggle_active { get; private set; } = new GUIStyle(Styles.dropDownHeader) { normal = new GUIStyleState() { + background = MultiplyTextureWithColor(Styles.dropDownHeader.normal.background, new Color(1, 1, 1, 1)), + textColor = Color.white}, contentOffset = new Vector2(0, -2), alignment = TextAnchor.MiddleCenter}; + public static GUIStyle style_toolbar_toggle_unactive { get; private set; } = new GUIStyle(Styles.dropDownHeader) { alignment = TextAnchor.MiddleCenter, contentOffset = new Vector2(0, -2) }; + public static GUIStyle style_toolbar_toggle(bool active) + { + //hack fix. for some people bg texture seems to dissapear, i cant figure out why, so ill just check here and set it if it's gone + if (active) + { + if (style_toolbar_toggle_active.normal.background == null) + { + style_toolbar_toggle_active = new GUIStyle(Styles.dropDownHeader) + { + contentOffset = new Vector2(0, -2), + alignment = TextAnchor.MiddleCenter, + normal = new GUIStyleState() + { + textColor = Color.white, + background = MultiplyTextureWithColor(Styles.dropDownHeader.normal.background, new Color(1, 1, 1, 1)) + } + }; + } + return style_toolbar_toggle_active; + } + return style_toolbar_toggle_unactive; + } + + public static Texture2D rounded_texture { get; private set; } = LoadTextureByNameAndEditorType(RESOURCE_NAME.WHITE_RECT, RESOURCE_NAME.DARK_RECT); + public static Texture2D settings_icon { get; private set; } = LoadTextureByFileName(RESOURCE_NAME.SETTINGS_ICON_TEXTURE); + public static Texture2D dropdown_settings_icon { get; private set; } = LoadTextureByFileName(RESOURCE_NAME.DROPDOWN_SETTINGS_TEXTURE); + public static Texture2D active_link_icon { get; private set; } = LoadTextureByFileName(RESOURCE_NAME.ACTICE_LINK_ICON); + public static Texture2D inactive_link_icon { get; private set; } = LoadTextureByFileName(RESOURCE_NAME.INACTICE_LINK_ICON); + public static Texture2D visibility_icon { get; private set; } = LoadTextureByFileName(RESOURCE_NAME.VISIVILITY_ICON); + public static Texture2D search_icon { get; private set; } = LoadTextureByFileName(RESOURCE_NAME.SEARCH_ICON); + public static Texture2D presets_icon { get; private set; } = LoadTextureByFileName(RESOURCE_NAME.PRESETS_ICON); + public static Texture2D t_arrow { get; private set; } = LoadTextureByFileName(RESOURCE_NAME.TEXTURE_ARROW); + public static Texture2D texture_animated { get; private set; } = LoadTextureByFileName(RESOURCE_NAME.TEXTURE_ANIMTED); + private static Texture2D t_texture_animated_renamed; + public static Texture2D texture_animated_renamed { + get { + if(t_texture_animated_renamed == null) + t_texture_animated_renamed = OverrideTextureWithColor(LoadTextureByFileName(RESOURCE_NAME.TEXTURE_ANIMTED), Color.red); + return t_texture_animated_renamed; + } + } + + + private static Texture2D LoadTextureByNameAndEditorType(string normalName, string proName) + { + if (EditorGUIUtility.isProSkin) + return LoadTextureByFileName(proName); + return LoadTextureByFileName(normalName); + } + + private static Texture2D LoadTextureByFileName(string search_name) + { + Texture2D tex; + string[] guids = AssetDatabase.FindAssets(search_name + " t:texture"); + if (guids.Length == 0) + tex = Texture2D.whiteTexture; + else + tex = AssetDatabase.LoadAssetAtPath<Texture2D>(AssetDatabase.GUIDToAssetPath(guids[0])); + return tex; + } + + private static Texture2D CreateColorTexture(Color color) + { + Texture2D tex = new Texture2D(1, 1); + tex.SetPixel(0, 0, color); + tex.Apply(); + return tex; + } + + private static Texture2D MultiplyTextureWithColor(Texture2D ogtex, Color color) + { + Texture2D tex = TextureHelper.GetReadableTexture(ogtex); + for(int x = 0; x < tex.width; x++) + { + for (int y = 0; y < tex.height; y++) + { + Color oColor = tex.GetPixel(x, y); + tex.SetPixel(x, y, oColor * color); + } + } + tex.Apply(); + return tex; + } + + private static Texture2D OverrideTextureWithColor(Texture2D ogtex, Color color) + { + Texture2D tex = TextureHelper.GetReadableTexture(ogtex); + for (int x = 0; x < tex.width; x++) + { + for (int y = 0; y < tex.height; y++) + { + Color oColor = tex.GetPixel(x, y); + if (oColor.a == 0f) + continue; + tex.SetPixel(x, y, color); + } + } + tex.Apply(); + return tex; + } + } +}
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Styles.cs.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Styles.cs.meta new file mode 100644 index 00000000..2e0f5e87 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Styles.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0b3a6712cb451dc4fa105ca3acd64957 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/ThryAssemblyDefinition.asmdef b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/ThryAssemblyDefinition.asmdef new file mode 100644 index 00000000..d7e6e1f4 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/ThryAssemblyDefinition.asmdef @@ -0,0 +1,14 @@ +{ + "name": "ThryAssemblyDefinition", + "references": [], + "optionalUnityReferences": [], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [] +}
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/ThryAssemblyDefinition.asmdef.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/ThryAssemblyDefinition.asmdef.meta new file mode 100644 index 00000000..f0646d57 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/ThryAssemblyDefinition.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1efbd8ef56fbc0146a62083b5af6074c +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/ThryEditor.cs b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/ThryEditor.cs new file mode 100644 index 00000000..21c59657 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/ThryEditor.cs @@ -0,0 +1,800 @@ +// Material/Shader Inspector for Unity 2017/2018 +// Copyright (C) 2019 Thryrallo + +using System.Collections.Generic; +using System.IO; +using System.Text.RegularExpressions; +using UnityEditor; +using UnityEngine; +using Thry; +using System; +using System.Reflection; +using System.Linq; +using System.Threading; + +namespace Thry +{ + public class ShaderEditor : ShaderGUI + { + public const string EXTRA_OPTIONS_PREFIX = "--"; + public const float MATERIAL_NOT_RESET = 69.12f; + + public const string PROPERTY_NAME_MASTER_LABEL = "shader_master_label"; + public const string PROPERTY_NAME_PRESETS_FILE = "shader_presets"; + public const string PROPERTY_NAME_LABEL_FILE = "shader_properties_label_file"; + public const string PROPERTY_NAME_LOCALE = "shader_properties_locale"; + public const string PROPERTY_NAME_ON_SWAP_TO_ACTIONS = "shader_on_swap_to"; + + // Stores the different shader properties + private ShaderHeader mainHeader; + + // UI Instance Variables + private int customRenderQueueFieldInput = -1; + + public bool show_search_bar; + private string header_search_term = ""; + private bool show_eyeIcon_tutorial = false; + + // shader specified values + private ShaderHeaderProperty shaderHeader = null; + private List<FooterButton> footers; + + // sates + private static bool reloadNextDraw = false; + private bool firstOnGUICall = true; + private bool wasUsed = false; + + public static InputEvent input = new InputEvent(); + // Contains Editor Data + public static ShaderEditor active; + + //EditorData + public MaterialEditor editor; + public MaterialProperty[] properties; + public ShaderEditor gui; + public Material[] materials; + public Shader shader; + public Shader defaultShader; + public ShaderPart currentProperty; + public Dictionary<string, ShaderProperty> propertyDictionary; + public List<ShaderPart> shaderParts; + public List<ShaderProperty> textureArrayProperties; + public bool firstCall; + public bool show_HeaderHider; + public bool use_ShaderOptimizer; + public bool isLockedMaterial; + public string animPropertySuffix; + + //other + ShaderProperty ShaderOptimizerProperty { get; set; } + + private DefineableAction[] on_swap_to_actions = null; + private bool swapped_to_shader = false; + + //-------------Init functions-------------------- + + private Dictionary<string, string> LoadDisplayNamesFromFile() + { + //load display names from file if it exists + MaterialProperty label_file_property = null; + foreach (MaterialProperty m in properties) + if (m.name == PROPERTY_NAME_LABEL_FILE) + { + label_file_property = m; + break; + } + Dictionary<string, string> labels = new Dictionary<string, string>(); + if (label_file_property != null) + { + string[] guids = AssetDatabase.FindAssets(label_file_property.displayName); + if (guids.Length == 0) + { + Debug.LogWarning("Label File could not be found"); + return labels; + } + string path = AssetDatabase.GUIDToAssetPath(guids[0]); + string[] data = Regex.Split(Thry.FileHelper.ReadFileIntoString(path), @"\r?\n"); + foreach (string d in data) + { + string[] set = Regex.Split(d, ":="); + if (set.Length > 1) labels[set[0]] = set[1]; + } + } + return labels; + } + + private PropertyOptions ExtractExtraOptionsFromDisplayName(ref string displayName) + { + if (displayName.Contains(EXTRA_OPTIONS_PREFIX)) + { + string[] parts = displayName.Split(new string[] { EXTRA_OPTIONS_PREFIX }, 2, System.StringSplitOptions.None); + displayName = parts[0]; + PropertyOptions options = Parser.ParseToObject<PropertyOptions>(parts[1]); + if (options != null) + { + if (options.condition_showS != null) + { + options.condition_show = DefineableCondition.Parse(options.condition_showS); + } + if (options.on_value != null) + { + options.on_value_actions = PropertyValueAction.ParseToArray(options.on_value); + } + return options; + } + } + return new PropertyOptions(); + } + + private enum ThryPropertyType + { + none, property, master_label, footer, header, headerWithEnd, legacy_header, legacy_header_end, legacy_header_start, group_start, group_end, instancing, dsgi, lightmap_flags, locale, on_swap_to, space, shader_optimizer + } + + private ThryPropertyType GetPropertyType(MaterialProperty p, PropertyOptions options) + { + string name = p.name; + MaterialProperty.PropFlags flags = p.flags; + + if (DrawingData.lastPropertyDrawerType == DrawerType.Header) + return (DrawingData.lastPropertyDrawer as ThryHeaderDrawer).GetEndProperty() != null ? ThryPropertyType.headerWithEnd : ThryPropertyType.header; + + if (name == PROPERTY_NAME_MASTER_LABEL) + return ThryPropertyType.master_label; + if (name == PROPERTY_NAME_ON_SWAP_TO_ACTIONS) + return ThryPropertyType.on_swap_to; + if (name == "_ShaderOptimizerEnabled") + return ThryPropertyType.shader_optimizer; + + if (flags == MaterialProperty.PropFlags.HideInInspector) + { + if (name.StartsWith("m_start")) + return ThryPropertyType.legacy_header_start; + if (name.StartsWith("m_end")) + return ThryPropertyType.legacy_header_end; + if (name.StartsWith("m_")) + return ThryPropertyType.legacy_header; + if (name.StartsWith("g_start")) + return ThryPropertyType.group_start; + if (name.StartsWith("g_end")) + return ThryPropertyType.group_end; + if (name.StartsWith("footer_")) + return ThryPropertyType.footer; + string noWhiteSpaces = name.Replace(" ", ""); + if (noWhiteSpaces == "Instancing") + return ThryPropertyType.instancing; + if (noWhiteSpaces == "DSGI") + return ThryPropertyType.dsgi; + if (noWhiteSpaces == "LightmapFlags") + return ThryPropertyType.lightmap_flags; + if (noWhiteSpaces == PROPERTY_NAME_LOCALE) + return ThryPropertyType.locale; + if (Regex.Match(name.ToLower(), @"^space\d*$").Success) + return ThryPropertyType.space; + } + else if(flags.HasFlag(MaterialProperty.PropFlags.HideInInspector) == false) + { + if (!options.hide_in_inspector) + return ThryPropertyType.property; + } + return ThryPropertyType.none; + } + + public Locale locale; + + private void LoadLocales() + { + MaterialProperty locales_property = null; + locale = null; + foreach (MaterialProperty m in properties) + if (m.name == PROPERTY_NAME_LOCALE) + { + locales_property = m; + break; + } + if (locales_property != null) + { + string displayName = locales_property.displayName; + PropertyOptions options = ExtractExtraOptionsFromDisplayName(ref displayName); + locale = new Locale(options.file_name); + locale.selected_locale_index = (int)locales_property.floatValue; + } + } + + //finds all properties and headers and stores them in correct order + private void CollectAllProperties() + { + //load display names from file if it exists + MaterialProperty[] props = properties; + Dictionary<string, string> labels = LoadDisplayNamesFromFile(); + LoadLocales(); + + propertyDictionary = new Dictionary<string, ShaderProperty>(); + shaderParts = new List<ShaderPart>(); + mainHeader = new ShaderHeader(this); //init top object that all Shader Objects are childs of + Stack<ShaderGroup> headerStack = new Stack<ShaderGroup>(); //header stack. used to keep track if editorData header to parent new objects to + headerStack.Push(mainHeader); //add top object as top object to stack + headerStack.Push(mainHeader); //add top object a second time, because it get's popped with first actual header item + footers = new List<FooterButton>(); //init footer list + int headerCount = 0; + + for (int i = 0; i < props.Length; i++) + { + DrawingData.ResetLastDrawerData(); + editor.GetPropertyHeight(props[i]); + + string displayName = props[i].displayName; + + //Load from label file + if (labels.ContainsKey(props[i].name)) displayName = labels[props[i].name]; + + //Check for locale + if (locale != null) + { + if (displayName.Contains("locale::")) + { + Match m = Regex.Match(displayName, @"locale::(\d\w)+d"); + if (m.Success) + { + string key = m.Value.Substring(8, m.Value.Length - 8); + if (locale.Constains(key)) + { + displayName = displayName.Replace("locale::" + locale.Get(key), ""); + } + } + } + } + displayName = displayName.Replace("''", "\""); + + //extract json data from display name + PropertyOptions options = ExtractExtraOptionsFromDisplayName(ref displayName); + + int offset = options.offset + headerCount; + + ThryPropertyType type = GetPropertyType(props[i], options); + switch (type) + { + case ThryPropertyType.header: + headerStack.Pop(); + break; + case ThryPropertyType.legacy_header: + headerStack.Pop(); + break; + case ThryPropertyType.headerWithEnd: + case ThryPropertyType.legacy_header_start: + offset = options.offset + ++headerCount; + break; + case ThryPropertyType.legacy_header_end: + headerStack.Pop(); + headerCount--; + break; + case ThryPropertyType.on_swap_to: + on_swap_to_actions = options.actions; + break; + } + ShaderProperty NewProperty = null; + ShaderPart newPart = null; + switch (type) + { + case ThryPropertyType.master_label: + shaderHeader = new ShaderHeaderProperty(this, props[i], displayName, 0, options, false); + break; + case ThryPropertyType.footer: + footers.Add(new FooterButton(Parser.ParseToObject<ButtonData>(displayName))); + break; + case ThryPropertyType.header: + case ThryPropertyType.headerWithEnd: + case ThryPropertyType.legacy_header: + case ThryPropertyType.legacy_header_start: + if (options.is_hideable) show_HeaderHider = true; + ShaderHeader newHeader = new ShaderHeader(this, props[i], editor, displayName, offset, options); + headerStack.Peek().addPart(newHeader); + headerStack.Push(newHeader); + HeaderHider.InitHidden(newHeader); + newPart = newHeader; + break; + case ThryPropertyType.group_start: + ShaderGroup new_group = new ShaderGroup(this, options); + headerStack.Peek().addPart(new_group); + headerStack.Push(new_group); + newPart = new_group; + break; + case ThryPropertyType.group_end: + headerStack.Pop(); + break; + case ThryPropertyType.none: + case ThryPropertyType.property: + + bool forceOneLine = props[i].type == MaterialProperty.PropType.Vector && !DrawingData.lastPropertyUsedCustomDrawer; + if (props[i].type == MaterialProperty.PropType.Texture) + NewProperty = new TextureProperty(this, props[i], displayName, offset, options, props[i].flags.HasFlag(MaterialProperty.PropFlags.NoScaleOffset) == false, !DrawingData.lastPropertyUsedCustomDrawer); + else + NewProperty = new ShaderProperty(this, props[i], displayName, offset, options, forceOneLine); + break; + case ThryPropertyType.lightmap_flags: + NewProperty = new GIProperty(this, props[i], displayName, offset, options, false); + break; + case ThryPropertyType.dsgi: + NewProperty = new DSGIProperty(this, props[i], displayName, offset, options, false); + break; + case ThryPropertyType.instancing: + NewProperty = new InstancingProperty(this, props[i], displayName, offset, options, false); + break; + case ThryPropertyType.locale: + NewProperty = new LocaleProperty(this, props[i], displayName, offset, options, false); + break; + case ThryPropertyType.shader_optimizer: + use_ShaderOptimizer = true; + NewProperty = new ShaderProperty(this, props[i], displayName, offset, options, false); + break; + } + if (NewProperty != null) + { + newPart = NewProperty; + if (propertyDictionary.ContainsKey(props[i].name)) + continue; + propertyDictionary.Add(props[i].name, NewProperty); + //Debug.Log(NewProperty.materialProperty.name + ":" + headerStack.Count); + if (type != ThryPropertyType.none && type != ThryPropertyType.shader_optimizer) + headerStack.Peek().addPart(NewProperty); + } + //if new header is at end property + if (headerStack.Peek() is ShaderHeader && (headerStack.Peek() as ShaderHeader).GetEndProperty() == props[i].name) + { + headerStack.Pop(); + headerCount--; + } + if (newPart != null) + { + shaderParts.Add(newPart); + + DrawingData.lastInitiatedPart = newPart; + editor.GetPropertyHeight(props[i]); + DrawingData.lastInitiatedPart = null; + } + } + } + + private MaterialProperty FindProperty(string name) + { + return System.Array.Find(properties, + element => element.name == name); + } + + + // Not in use cause getPropertyHandlerMethod is really expensive + private void HandleKeyworDrawers() + { + foreach (MaterialProperty p in properties) + { + HandleKeyworDrawers(p); + } + } + + // Not in use cause getPropertyHandlerMethod is really expensive + private void HandleKeyworDrawers(MaterialProperty p) + { + Type materialPropertyDrawerType = typeof(UnityEditor.Editor).Assembly.GetType("UnityEditor.MaterialPropertyHandler"); + MethodInfo getPropertyHandlerMethod = materialPropertyDrawerType.GetMethod("GetShaderPropertyHandler", BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static | BindingFlags.FlattenHierarchy); + PropertyInfo drawerProperty = materialPropertyDrawerType.GetProperty("propertyDrawer"); + + Type materialToggleDrawerType = typeof(UnityEditor.Editor).Assembly.GetType("UnityEditor.MaterialToggleDrawer"); + FieldInfo keyWordField = materialToggleDrawerType.GetField("keyword", BindingFlags.Instance | BindingFlags.NonPublic); + //Handle keywords + object propertyHandler = getPropertyHandlerMethod.Invoke(null, new object[] { shader, p.name }); + //if has custom drawer + if (propertyHandler != null) + { + object propertyDrawer = drawerProperty.GetValue(propertyHandler, null); + //if custom drawer exists + if (propertyDrawer != null) + { + // if is keyword drawer make sure all materials have the keyworkd enabled / disabled depending on their value + if (propertyDrawer.GetType().ToString() == "UnityEditor.MaterialToggleDrawer") + { + object keyword = keyWordField.GetValue(propertyDrawer); + if (keyword != null) + { + foreach (Material m in materials) + { + if (m.GetFloat(p.name) == 1) + m.EnableKeyword((string)keyword); + else + m.DisableKeyword((string)keyword); + } + } + } + } + } + } + + //-------------Draw Functions---------------- + + public void InitlizeThryUI() + { + Config config = Config.Singleton; + + show_eyeIcon_tutorial = !EditorPrefs.GetBool("thry_openeEyeIcon", false); + active = this; + + //get material targets + materials = editor.targets.Select(o => o as Material).ToArray(); + + shader = materials[0].shader; + string defaultShaderName = materials[0].shader.name.Split(new string[] { "-queue" }, System.StringSplitOptions.None)[0].Replace(".differentQueues/", ""); + defaultShader = Shader.Find(defaultShaderName); + + animPropertySuffix = new string(materials[0].name.Trim().ToLower().Where(char.IsLetter).ToArray()); + + //collect shader properties + CollectAllProperties(); + + if (ShaderOptimizer.IsShaderUsingThryOptimizer(shader)) + { + ShaderOptimizerProperty = propertyDictionary[ShaderOptimizer.GetOptimizerPropertyName(shader)]; + if(ShaderOptimizerProperty != null) ShaderOptimizerProperty.exempt_from_locked_disabling = true; + } + + AddResetProperty(); + + firstOnGUICall = false; + } + + private Dictionary<string, MaterialProperty> materialPropertyDictionary; + public MaterialProperty GetMaterialProperty(string name) + { + if (materialPropertyDictionary == null) + { + materialPropertyDictionary = new Dictionary<string, MaterialProperty>(); + foreach (MaterialProperty p in properties) + if (materialPropertyDictionary.ContainsKey(p.name) == false) materialPropertyDictionary.Add(p.name, p); + } + if (materialPropertyDictionary.ContainsKey(name)) + return materialPropertyDictionary[name]; + return null; + } + + private void AddResetProperty() + { + if (materials[0].HasProperty("shader_is_using_thry_editor") == false) + { + EditorChanger.AddThryProperty(materials[0].shader); + } + materials[0].SetFloat("shader_is_using_thry_editor", 69); + } + + public override void OnClosed(Material material) + { + base.OnClosed(material); + firstOnGUICall = true; + } + + public override void AssignNewShaderToMaterial(Material material, Shader oldShader, Shader newShader) + { + base.AssignNewShaderToMaterial(material, oldShader, newShader); + reloadNextDraw = true; + swapped_to_shader = true; + } + + private void UpdateEvents() + { + Event e = Event.current; + input.MouseClick = e.type == EventType.MouseDown; + input.MouseLeftClick = e.type == EventType.MouseDown && e.button == 0; + if (input.MouseClick) input.HadMouseDown = true; + if (input.HadMouseDown && e.type == EventType.Repaint) input.HadMouseDownRepaint = true; + input.is_alt_down = e.alt; + input.mouse_position = e.mousePosition; + input.is_drop_event = e.type == EventType.DragPerform; + input.is_drag_drop_event = input.is_drop_event || e.type == EventType.DragUpdated; + } + + void InitEditorData(MaterialEditor materialEditor) + { + editor = materialEditor; + gui = this; + textureArrayProperties = new List<ShaderProperty>(); + firstCall = true; + } + + public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] props) + { + //Init + bool reloadUI = firstOnGUICall || (reloadNextDraw && Event.current.type == EventType.Layout) || (materialEditor.target as Material).shader != shader; + if (reloadUI) + { + InitEditorData(materialEditor); + properties = props; + InitlizeThryUI(); + } + + //Update Data + properties = props; + shader = materials[0].shader; + UpdateEvents(); + + active = this; + + GUIManualReloadButton(); + + GUITopBar(); + GUISearchBar(); + GUIComplexity(); + + ShaderOptimizerProperty?.Draw(); + + //PROPERTIES + foreach (ShaderPart part in mainHeader.parts) + { + part.Draw(); + } + + //Render Queue selection + if (Config.Singleton.showRenderQueue) materialEditor.RenderQueueField(); + + BetterTooltips.DrawActive(); + + GUIFooters(); + + HandleEvents(); + } + + private void GUIManualReloadButton() + { + if (Config.Singleton.showManualReloadButton) + { + if(GUILayout.Button("Manual Reload")) + { + this.Reload(); + } + } + } + + private void GUITopBar() + { + //if header is texture, draw it first so other ui elements can be positions below + if (shaderHeader != null && shaderHeader.options.texture != null) shaderHeader.Draw(); + Rect mainHeaderRect = EditorGUILayout.BeginHorizontal(); + //draw editor settings button + if (GUILayout.Button(new GUIContent("", Styles.settings_icon), EditorStyles.largeLabel, GUILayout.MaxHeight(20), GUILayout.MaxWidth(20))) + { + Thry.Settings window = Thry.Settings.getInstance(); + window.Show(); + window.Focus(); + } + EditorGUIUtility.AddCursorRect(GUILayoutUtility.GetLastRect(), MouseCursor.Link); + if (GUILayout.Button(Styles.search_icon, EditorStyles.largeLabel, GUILayout.MaxHeight(20))) + show_search_bar = !show_search_bar; + + //draw master label text after ui elements, so it can be positioned between + if (shaderHeader != null) shaderHeader.Draw(new CRect(mainHeaderRect)); + + //GUILayout.Label("Thryrallo",GUILayout.ExpandWidth(true)); + GUILayout.Label("@UI by Thryrallo", Styles.made_by_style, GUILayout.Height(25), GUILayout.MaxWidth(100)); + EditorGUILayout.EndHorizontal(); + } + + private void GUISearchBar() + { + if (show_search_bar) + { + EditorGUI.BeginChangeCheck(); + header_search_term = EditorGUILayout.TextField(header_search_term); + if (EditorGUI.EndChangeCheck()) + { + UpdateSearch(mainHeader); + } + } + } + + private void GUIComplexity() + { + //Visibility menu + if (show_HeaderHider) + { + HeaderHider.HeaderHiderGUI(active); + } + } + + private void GUIFooters() + { + try + { + FooterButton.DrawList(footers); + } + catch (Exception ex) + { + Debug.LogWarning(ex); + } + if (GUILayout.Button("@UI Made by Thryrallo", Styles.made_by_style)) + Application.OpenURL("https://www.twitter.com/thryrallo"); + EditorGUIUtility.AddCursorRect(GUILayoutUtility.GetLastRect(), MouseCursor.Link); + } + + private void HandleEvents() + { + Event e = Event.current; + //if reloaded, set reload to false + if (reloadNextDraw && Event.current.type == EventType.Layout) reloadNextDraw = false; + + //if was undo, reload + bool isUndo = (e.type == EventType.ExecuteCommand || e.type == EventType.ValidateCommand) && e.commandName == "UndoRedoPerformed"; + if (isUndo) reloadNextDraw = true; + + + //on swap + if (on_swap_to_actions != null && swapped_to_shader) + { + foreach (DefineableAction a in on_swap_to_actions) + a.Perform(); + on_swap_to_actions = null; + swapped_to_shader = false; + } + + //test if material has been reset + if (wasUsed && e.type == EventType.Repaint) + { + if (materials[0].HasProperty("shader_is_using_thry_editor") && materials[0].GetFloat("shader_is_using_thry_editor") != 69) + { + reloadNextDraw = true; + HandleReset(); + wasUsed = true; + } + } + + if (e.type == EventType.Used) wasUsed = true; + if (input.HadMouseDownRepaint) input.HadMouseDown = false; + input.HadMouseDownRepaint = false; + firstCall = false; + materialPropertyDictionary = null; + } + + //iterate the same way drawing would iterate + //if display part, display all parents parts + private void UpdateSearch(ShaderPart part) + { + part.has_searchedFor = part.content.text.ToLower().Contains(header_search_term); + if (part is ShaderGroup) + { + foreach (ShaderPart p in (part as ShaderGroup).parts) + { + UpdateSearch(p); + part.has_searchedFor |= p.has_searchedFor; + } + } + } + + private void HandleReset() + { + MaterialLinker.UnlinkAll(materials[0]); + } + + public static void reload() + { + reloadNextDraw = true; + } + + public static void loadValuesFromMaterial() + { + if (active.editor != null) + { + try + { + Material m = ((Material)active.editor.target); + foreach (MaterialProperty property in active.properties) + { + switch (property.type) + { + case MaterialProperty.PropType.Float: + case MaterialProperty.PropType.Range: + property.floatValue = m.GetFloat(property.name); + break; + case MaterialProperty.PropType.Texture: + property.textureValue = m.GetTexture(property.name); + break; + case MaterialProperty.PropType.Color: + property.colorValue = m.GetColor(property.name); + break; + case MaterialProperty.PropType.Vector: + property.vectorValue = m.GetVector(property.name); + break; + } + + } + } + catch (System.Exception e) + { + Debug.Log(e.ToString()); + } + } + } + + public static void propertiesChanged() + { + if (active.editor != null) + { + try + { + active.editor.PropertiesChanged(); + } + catch (System.Exception e) + { + Debug.Log(e.ToString()); + } + } + } + + public static void addUndo(string label) + { + if (active.editor != null) + { + try + { + active.editor.RegisterPropertyChangeUndo(label); + } + catch (System.Exception e) + { + Debug.Log(e.ToString()); + } + } + } + + public void ForceRedraw() + { + if (materials.Length > 0) + { + EditorUtility.SetDirty(materials[0]); + } + } + + public static void Repaint() + { + if (ShaderEditor.active != null) + { + active.ForceRedraw(); + } + } + + public void Reload() + { + this.firstOnGUICall = true; + this.swapped_to_shader = true; + this.ForceRedraw(); + } + + public static void ReloadActive() + { + if (ShaderEditor.active != null) + { + active.Reload(); + } + } + + private static string edtior_directory_path; + public static string GetShaderEditorDirectoryPath() + { + if (edtior_directory_path == null) + { + string[] guids = AssetDatabase.FindAssets("ShaderEditor"); + foreach (string g in guids) + { + string p = AssetDatabase.GUIDToAssetPath(g); + if (p.EndsWith("/ShaderEditor.cs")) + { + edtior_directory_path = Directory.GetParent(Path.GetDirectoryName(p)).FullName; + break; + } + } + } + return edtior_directory_path; + } + + + + [MenuItem("Thry/Twitter")] + static void Init() + { + Application.OpenURL("https://www.twitter.com/thryrallo"); + } + } +} diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/ThryEditor.cs.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/ThryEditor.cs.meta new file mode 100644 index 00000000..2379167a --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/ThryEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d0ba26704202cee44b1927fe3b60da4e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/ThryFileBuilder.cs b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/ThryFileBuilder.cs new file mode 100644 index 00000000..2eb27fd2 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/ThryFileBuilder.cs @@ -0,0 +1,87 @@ +using System.Collections; +using System.Collections.Generic; +using System.IO; +using UnityEditor; +using UnityEngine; + +namespace Thry { + public class ThryFileCreator { + + [MenuItem("Thry/Editor Tools/Create Label Boiler", false)] + public static void CreateLabel() + { + string[] names = GetProperties(); + string data = ""; + foreach (string n in names) + { + data += n + ":=" + n + "--{tooltip:}"; + data += "\n"; + } + Save(data, "_label"); + } + [MenuItem("Thry/Editor Tools/Create Label Boiler", true)] + static bool CreateLabelVaildate() + { + return ValidateSelection(); + } + + [MenuItem("Thry/Editor Tools/Create Label Boiler + Locale Boiler", false)] + public static void CreateLabelLocale() + { + string[] names = GetProperties(); + string label_data = ""; + string locale_data = ",English\n"; + foreach (string n in names) + { + label_data += n + ":=locale::" + n + "_text--{tooltip:locale::"+n+"_tooltip}"; + label_data += "\n"; + locale_data += n + "_text," + n; + locale_data += "\n"; + locale_data += n + "_tooltip,"; + locale_data += "\n"; + } + Save(label_data, "_label"); + Save(locale_data, "_locale"); + } + [MenuItem("Thry/Editor Tools/Create Label Boiler + Locale Boiler", true)] + static bool CreateLabelLocaleValidate() + { + return ValidateSelection(); + } + + private static bool ValidateSelection() + { + if (Selection.activeObject == null) + return false; + string path = AssetDatabase.GetAssetPath(Selection.activeObject).ToLower(); + return path.EndsWith(".shader"); + } + + private static string[] GetProperties() + { + Shader shader = (Shader)Selection.activeObject; + int count = ShaderUtil.GetPropertyCount(shader); + List<string> menus = new List<string>(); + List<string> props = new List<string>(); + for (int i = 0; i < count; i++) + { + string n = ShaderUtil.GetPropertyName(shader, i); + if (n.StartsWith("m_") || n.StartsWith("g_")) + menus.Add(n); + else + props.Add(n); + } + menus.AddRange(props); + return menus.ToArray(); + } + + private static void Save(string data, string add_string) + { + string path = AssetDatabase.GetAssetPath(Selection.activeObject); + path = Path.GetDirectoryName(path)+ "/"+ Path.GetFileNameWithoutExtension(path) + add_string; + Debug.Log(path); + FileHelper.WriteStringToFile(data, path); + AssetDatabase.Refresh(); + } + } +}
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/ThryFileBuilder.cs.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/ThryFileBuilder.cs.meta new file mode 100644 index 00000000..5dbf66ac --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/ThryFileBuilder.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e2d2cf739465a3b49aad32cfd86f0f83 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Unity.cs b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Unity.cs new file mode 100644 index 00000000..20c6e0a5 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Unity.cs @@ -0,0 +1,286 @@ +// Material/Shader Inspector for Unity 2017/2018 +// Copyright (C) 2019 Thryrallo + +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Text.RegularExpressions; +using UnityEditor; +using UnityEngine; + +namespace Thry +{ + public class UnityHelper + { + /// <summary> + /// return null if not found + /// </summary> + /// <param name="filename"></param> + /// <returns></returns> + public static string FindPathOfAssetWithExtension(string filename) + { + string[] guids = AssetDatabase.FindAssets(Path.GetFileNameWithoutExtension(filename)); + foreach (string s in guids) + { + string path = AssetDatabase.GUIDToAssetPath(s); + if (path.EndsWith(filename)) + return path; + } + return null; + } + + public static List<string> FindAssetOfFilesWithExtension(string filename) + { + List<string> ret = new List<string>(); + string[] guids = AssetDatabase.FindAssets(Path.GetFileNameWithoutExtension(filename)); + foreach (string s in guids) + { + string path = AssetDatabase.GUIDToAssetPath(s); + if (path.EndsWith(filename)) + ret.Add(path); + } + return ret; + } + + public static void SetDefineSymbol(string symbol, bool active) + { + SetDefineSymbol(symbol, active, true); + } + + public static void SetDefineSymbol(string symbol, bool active, bool refresh_if_changed) + { + try + { + string symbols = PlayerSettings.GetScriptingDefineSymbolsForGroup( + BuildTargetGroup.Standalone); + if (!symbols.Contains(symbol) && active) + { + PlayerSettings.SetScriptingDefineSymbolsForGroup( + BuildTargetGroup.Standalone, symbols + ";" + symbol); + if(refresh_if_changed) + AssetDatabase.Refresh(); + } + else if (symbols.Contains(symbol) && !active) + { + PlayerSettings.SetScriptingDefineSymbolsForGroup( + BuildTargetGroup.Standalone, Regex.Replace(symbols, @";?" + @symbol, "")); + if(refresh_if_changed) + AssetDatabase.Refresh(); + } + } + catch (Exception e) + { + e.ToString(); + } + } + + public static void RemoveDefineSymbols() + { + UnityHelper.SetDefineSymbol(DEFINE_SYMBOLS.IMAGING_EXISTS, false); + } + + public static void RepaintInspector(System.Type t) + { + Editor[] ed = (Editor[])Resources.FindObjectsOfTypeAll<Editor>(); + for (int i = 0; i < ed.Length; i++) + { + if (ed[i].GetType() == t) + { + ed[i].Repaint(); + return; + } + } + } + + public static void RepaintEditorWindow(Type t) + { + EditorWindow window = FindEditorWindow(t); + if (window != null) window.Repaint(); + } + + public static EditorWindow FindEditorWindow(System.Type t) + { + EditorWindow[] ed = (EditorWindow[])Resources.FindObjectsOfTypeAll<EditorWindow>(); + for (int i = 0; i < ed.Length; i++) + { + if (ed[i].GetType() == t) + { + return ed[i]; + } + } + return null; + } + + public static string GetGUID(UnityEngine.Object o) + { + return AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(o)); + } + + public static int CalculateLengthOfText(string message, Font font= null) + { + if (font == null) + font = GUI.skin.font; + float totalLength = 0; + + CharacterInfo characterInfo = new CharacterInfo(); + + char[] arr = message.ToCharArray(); + + foreach (char c in arr) + { + font.GetCharacterInfo(c, out characterInfo, font.fontSize); + totalLength += characterInfo.advance; + } + + return (int)totalLength; + } + } + + public class UnityFixer + { + public const string RSP_DRAWING_DLL_CODE = "\n-r:System.Drawing.dll"; + public const string RSP_DRAWING_DLL_DEFINE_CODE = "\n-define:SYSTEM_DRAWING"; + public const string RSP_DRAWING_DLL_REGEX = @"-r:\s*System\.Drawing\.dll"; + public const string RSP_DRAWING_DLL_DEFINE_REGEX = @"-define:\s*SYSTEM_DRAWING"; + + public static void OnAssetDeleteCheckDrawingDLL(string[] deleted_assets) + { + foreach (string path in deleted_assets) + { + if (path == PATH.RSP_NEEDED_PATH + GetRSPFilename() + ".rsp" || path.EndsWith("/System.Drawing.dll")) + UnityHelper.SetDefineSymbol(DEFINE_SYMBOLS.IMAGING_EXISTS, false, true); + } + } + + public static void CheckAPICompatibility() + { + ApiCompatibilityLevel level = PlayerSettings.GetApiCompatibilityLevel(BuildTargetGroup.Standalone); + if (level == ApiCompatibilityLevel.NET_2_0_Subset) + PlayerSettings.SetApiCompatibilityLevel(BuildTargetGroup.Standalone, ApiCompatibilityLevel.NET_2_0); + } + + private static string GetRSPFilename() + { + if (Helper.compareVersions("2018", Application.unityVersion) == 1) + return "csc"; + return "mcs"; + } + + public static void CheckDrawingDll() + { + string filename = GetRSPFilename(); + string path = PATH.RSP_NEEDED_PATH + filename + ".rsp"; + bool refresh = true; + bool containsDLL = DoesRSPContainDrawingDLL(path); + bool containsDefine = DoesRSPContainDrawingDLLDefine(path); + if (!containsDefine && !containsDLL) + { + AddDrawingDLLToRSP(path); + AddDrawingDLLDefineToRSP(path); + } + else if (!containsDLL) + AddDrawingDLLToRSP(path); + else if (!containsDefine) + AddDrawingDLLDefineToRSP(path); + else + refresh = false; + if (refresh) + AssetDatabase.ImportAsset(path); + } + + + + private static bool DoesRSPContainDrawingDLL(string rsp_path) + { + if (!File.Exists(rsp_path)) return false; + string rsp_data = FileHelper.ReadFileIntoString(rsp_path); + return (Regex.Match(rsp_data, RSP_DRAWING_DLL_REGEX).Success); + } + + private static bool DoesRSPContainDrawingDLLDefine(string rsp_path) + { + if (!File.Exists(rsp_path)) return false; + string rsp_data = FileHelper.ReadFileIntoString(rsp_path); + return (Regex.Match(rsp_data, RSP_DRAWING_DLL_DEFINE_REGEX).Success); + } + + private static void AddDrawingDLLToRSP(string rsp_path) + { + string rsp_data = FileHelper.ReadFileIntoString(rsp_path); + rsp_data += RSP_DRAWING_DLL_CODE; + FileHelper.WriteStringToFile(rsp_data, rsp_path); + } + + private static void AddDrawingDLLDefineToRSP(string rsp_path) + { + string rsp_data = FileHelper.ReadFileIntoString(rsp_path); + rsp_data += RSP_DRAWING_DLL_DEFINE_CODE; + FileHelper.WriteStringToFile(rsp_data, rsp_path); + } + } + + [InitializeOnLoad] + public class OnCompileHandler + { + static OnCompileHandler() + { + //Init Editor Variables with paths + ShaderEditor.GetShaderEditorDirectoryPath(); + + Config.OnCompile(); + ModuleHandler.OnCompile(); + TrashHandler.EmptyThryTrash(); + + UnityFixer.CheckAPICompatibility(); //check that Net_2.0 is ApiLevel + UnityFixer.CheckDrawingDll(); //check that drawing.dll is imported + } + } + + public class AssetChangeHandler : AssetPostprocessor + { + static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) + { + if (importedAssets.Length > 0) + AssetsImported(importedAssets); + if (deletedAssets.Length > 0) + AssetsDeleted(deletedAssets); + if (movedAssets.Length > 0) + AssetsMoved(movedAssets, movedFromAssetPaths); + } + + private static void AssetsImported(string[] assets) + { + ShaderHelper.AssetsImported(assets); + } + + private static void AssetsMoved(string[] movedAssets, string[] movedFromAssetPaths) + { + ShaderHelper.AssetsMoved(movedFromAssetPaths, movedAssets); + } + + private static void AssetsDeleted(string[] assets) + { + ShaderHelper.AssetsDeleted(assets); + UnityFixer.OnAssetDeleteCheckDrawingDLL(assets); + if (CheckForEditorRemove(assets)) + { + Debug.Log("ShaderEditor is being deleted."); + Config.Singleton.verion = "0"; + Config.Singleton.save(); + ModuleHandler.OnEditorRemove(); + } + } + + private static bool CheckForEditorRemove(string[] assets) + { + string test_for = ShaderEditor.GetShaderEditorDirectoryPath() + "/Editor/ShaderEditor.cs"; + foreach (string p in assets) + { + if (p == test_for) + return true; + } + return false; + } + } +}
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Unity.cs.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Unity.cs.meta new file mode 100644 index 00000000..571571d1 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Unity.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fcf19c9e085d3b442a2974d5c193c268 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Examples.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Examples.meta new file mode 100644 index 00000000..5046ab30 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Examples.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d8d86a6307e038842b84cf3cc1cc093a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Examples/Example1.shader b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Examples/Example1.shader new file mode 100644 index 00000000..0ea4b748 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Examples/Example1.shader @@ -0,0 +1,440 @@ +Shader "Thry/Example 1" +{ + Properties + { + [HideInInspector] shader_is_using_thry_editor("", Float)=0 + [HideInInspector] shader_master_label("<color=#ff0000ff>Example 1</color>", Float) = 0 + [HideInInspector] shader_presets("ThryPresetsExample", Float) = 0 + [HideInInspector] shader_properties_label_file("ThryLabelExample", Float) = 0 + + [HideInInspector] footer_website("", Float) = 0 + [HideInInspector] footer_github("", Float) = 0 + + + shader_properties_locale("locale::locale--{file_name:thry_locale_example}", Float) = 0 + [Enum(Cutout,0,Transparent,1)]variant_selector("Variant--{on_value_actions:[{value:0,actions:[{type:SET_PROPERTY,data:_ZWrite=1},{type:SET_SHADER,data:Thry/Example 1}]},{value:1,actions:[{type:SET_PROPERTY,data:_ZWrite=0},{type:SET_SHADER,data:Thry/Example 2}]}]}",Float) = 0 + + [ThryWideEnum(Opaque, 0, Cutout, 1, Fade, 2, Transparent, 3, Additive, 4, Soft Additive, 5, Multiplicative, 6, 2x Multiplicative, 7, Multiplicative Grab Pass, 8)]_Mode("Rendering Preset--{on_value:'' + 0,render_queue = 2000,render_type = Opaque,_BlendOp = 0,_BlendOpAlpha = 0,_Cutoff = 0,_SrcBlend = 1,_DstBlend = 0,_AlphaToMask = 0,_ZWrite = 1,_ZTest = 4,_AlphaPremultiply = 0; + 1,render_queue = 2460,render_type = TransparentCutout,_BlendOp = 0,_BlendOpAlpha = 0,_Cutoff = 0.5,_SrcBlend = 1,_DstBlend = 0,_AlphaToMask = 1,_ZWrite = 1,_ZTest = 4,_AlphaPremultiply = 0 + '' }", Int) = 0 + + [HideInInspector] m_mainOptions("Main", Float) = 0 + _Color("Color & Alpha", Color) = (1, 1, 1, 1) + [Helpbox]_HelpboxForSomething("Alpha is controlled in the color", Float) = 1 + _Saturation("Saturation", Range(-1, 1)) = 0 + _MainVertexColoring("Use Vertex Color", Range(0,1)) = 0 + _MainEmissionStrength("Basic Emission", Range(0, 20)) = 0 + [Curve]_MainTex("Texture", 2D) = "white" { } + [PanningTexture][Normal]_BumpMap("Normal Map", 2D) = "bump" { } + [Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3)] _BumpMapUV("Normal UV#", Int) = 0 + [HideInInspector][Vector2]_MainNormalPan("Panning", Vector) = (0, 0, 0, 0) + _BumpScale("Normal Intensity", Range(0, 10)) = 1 + _AlphaMask("Alpha Mask", 2D) = "white" { } + [Vector2]_GlobalPanSpeed("Global Pan Speed", Vector) = (0, 0, 0, 0) + + [HideInInspector] m_start_Alpha("Alpha Options--{altClick:{type:URL,data:https://thryrallo.de}}", Float) = 0 + _Clip("Alpha Cuttoff", Range(0, 1.001)) = 0.5 + [Toggle(_)]_ForceOpaque("Force Opaque", Float) = 0 + [Toggle(_)]_MainAlphaToCoverage("Alpha To Coverage", Float) = 1 + _MainMipScale("Mip Level Alpha Scale", Range(0, 1)) = 0.25 + [HideInInspector] m_end_Alpha("Alpha Options", Float) = 0 + + [HideInInspector] m_start_DetailOptions("Details", Float) = 0 + _DetailMask("Detail Mask (R:Texture, G:Normal)", 2D) = "white" { } + [PanningTexture]_DetailTex("Detail Texture", 2D) = "gray" { } + [HideInInspector][Vector2]_DetailTexturePan("Panning", Vector) = (0, 0, 0, 0) + [Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3)] _DetailTexUV("Detail Tex UV#", Int) = 0 + _DetailTexIntensity("Detail Tex Intensity", Range(0, 10)) = 1 + _DetailBrightness("Detail Brightness:", Range(0, 2)) = 1 + _DetailTint("Detail Tint", Color) = (1, 1, 1) + [Normal]_DetailNormalMap("Detail Normal", 2D) = "bump" { } + [Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3)] _DetailNormalUV("Detail Normal UV#", Int) = 0 + _DetailNormalMapScale("Detail Normal Intensity", Range(0, 10)) = 1 + [HideInInspector][Vector2]_MainDetailNormalPan("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector] m_end_DetailOptions("Details", Float) = 0 + + [HideInInspector] m_lightingOptions("Lighting Options", Float) = 0 + [HideInInspector] m_start_Lighting("Light and Shadow", Float) = 0 + [Toggle(_NORMALMAP)]_EnableLighting("Enable Lighting", Float) = 1 + [HideInInspector] g_start_l("", Int) = 0 + [Enum(Natural, 0, Controlled, 1, Standardish, 2)] _LightingType("Lighting Type", Int) = 1 + [Gradient]_ToonRamp("Lighting Ramp", 2D) = "white" { } + _LightingShadowMask("Shadow Mask (R)", 2D) = "white" { } + _ShadowStrength("Shadow Strength", Range(0, 1)) = .2 + _ShadowOffset("Shadow Offset", Range(-1, 1)) = 0 + _AOMap("AO Map", 2D) = "white" { } + [Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3)] _LightingAOUV("AO Map UV#", Int) = 0 + _AOStrength("AO Strength", Range(0, 1)) = 1 + _LightingMinLightBrightness("Min Brightness", Range(0,1)) = 0 + [HideInInspector] m_start_lightingStandard("Standardish Settings", Float) = 0 + _LightingStandardSmoothness("Smoothness", Range(0, 1)) = 0 + [HideInInspector] m_end_lightingStandard("Standardish Settings", Float) = 0 + [HideInInspector] m_start_lightingAdvanced("Advanced", Float) = 0 + _LightingIndirectContribution("Indirect Contribution", Range(0, 1)) = .25 + _AdditiveSoftness("Additive Softness", Range(0, 0.5)) = 0.005 + _AdditiveOffset("Additive Offset", Range(-0.5, 0.5)) = 0 + _LightingAdditiveIntensity("Additive Intensity", Range(0,1)) = 1 + _AttenuationMultiplier("Attenuation", Range(0, 1)) = 0 + [HideInInspector] m_end_lightingAdvanced("Advanced", Float) = 0 + [HideInInspector] m_start_lightingBeta("Beta", Float) = 0 + [Toggle(_)]_LightingStandardControlsToon("Standard Lighting Controls Toon Ramp", Float) = 0 + [HideInInspector] m_end_lightingBeta("Beta", Float) = 0 + [HideInInspector] g_end_l("", Int) = 0 + [HideInInspector] m_end_Lighting("Light and Shadow", Float) = 0 + + [HideInInspector] m_start_subsurface("Subsurface Scattering", Float) = 0 + [Toggle(_TERRAIN_NORMAL_MAP)]_EnableSSS("Enable Subsurface Scattering", Float) = 0 + _SSSColor("Subsurface Color", Color) = (1, 1, 1, 1) + _SSSThicknessMap("Thickness Map", 2D) = "black" { } + _SSSThicknessMod("Thickness mod", Range(-1, 1)) = 0 + _SSSSCale("Light Strength", Range(0, 1)) = 0 + _SSSPower("Light Spread", Range(1, 100)) = 1 + _SSSDistortion("Light Distortion", Range(0, 1)) = 0 + [HideInInspector] m_end_subsurface("Subsurface Scattering", Float) = 0 + + [HideInInspector] m_start_rimLightOptions("Rim Lighting", Float) = 0 + [Toggle(_GLOSSYREFLECTIONS_OFF)]_EnableRimLighting("Enable Rim Lighting", Float) = 0 + [Toggle(_)]_RimLightingInvert("Invert Rim Lighting", Float) = 0 + _RimLightColor("Rim Color", Color) = (1, 1, 1, 1) + _RimWidth("Rim Width", Range(0, 1)) = 0.8 + _RimSharpness("Rim Sharpness", Range(0, 1)) = .25 + _RimStrength("Rim Emission", Range(0, 20)) = 0 + _RimBrighten("Rim Color Brighten", Range(0, 3)) = 0 + _RimLightColorBias("Rim Color Bias", Range(0, 1)) = 0 + [PanningTexture]_RimTex("Rim Texture", 2D) = "white" { } + _RimMask("Rim Mask", 2D) = "white" { } + [HideInInspector][Vector2]_RimTexPanSpeed("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector] m_start_reflectionRim("Environmental Rim", Float) = 0 + [Toggle(_)]_EnableEnvironmentalRim("Enable Environmental Rim", Float) = 0 + _RimEnviroMask("Mask", 2D) = "white" { } + _RimEnviroBlur("Blur", Range(0, 1)) = 0.7 + _RimEnviroWidth("Rim Width", Range(0, 1)) = 0.45 + _RimEnviroSharpness("Rim Sharpness", Range(0, 1)) = 0 + _RimEnviroMinBrightness("Min Brightness Threshold", Range(0, 2)) = 0 + [HideInInspector] m_end_reflectionRim("Environmental Rim", Float) = 0 + [HideInInspector] m_start_rimWidthNoise("Width Noise", Float) = 0 + [PanningTexture]_RimWidthNoiseTexture("Rim Width Noise", 2D) = "black" { } + _RimWidthNoiseStrength("Intensity", Range(0, 1)) = 0.1 + [HideInInspector][Vector2]_RimWidthNoisePan("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector] m_end_rimWidthNoise("Width Noise", Float) = 0 + [HideInInspector] m_start_ShadowMix("Shadow Mix", Float) = 0 + _ShadowMix("Shadow Mix In", Range(0, 1)) = 0 + _ShadowMixThreshold("Shadow Mix Threshold", Range(0, 1)) = .5 + _ShadowMixWidthMod("Shadow Mix Width Mod", Range(0, 10)) = .5 + [HideInInspector] m_end_ShadowMix("Shadow Mix", Float) = 0 + [HideInInspector] m_end_rimLightOptions("Rim Lighting", Float) = 0 + + [HideInInspector] m_start_bakedLighting("Baked Lighting", Float) = 0 + _GIEmissionMultiplier("GI Emission Multiplier", Float) = 1 + [HideInInspector] DSGI("DSGI", Float) = 0 //add this property for double sided illumination settings to be shown + [HideInInspector] LightmapFlags("Lightmap Flags", Float) = 0 //add this property for lightmap flags settings to be shown + [HideInInspector] m_end_bakedLighting("Baked Lighting", Float) = 0 + + [HideInInspector] m_reflectionOptions("Reflections", Float) = 0 + [HideInInspector] m_start_Metallic("Metallics", Float) = 0 + [Toggle(_METALLICGLOSSMAP)]_EnableMetallic("Enable Metallics", Float) = 0 + _CubeMap("Baked CubeMap", Cube) = "" { } + [Toggle(_)]_SampleWorld("Force Baked Cubemap", Range(0, 1)) = 0 + _MetalReflectionTint("Reflection Tint", Color) = (1, 1, 1) + _MetallicMask("Metallic Mask", 2D) = "white" { } + _Metallic("Metallic", Range(0, 1)) = 0 + _SmoothnessMask("Smoothness Map", 2D) = "white" { } + [Toggle(_)]_InvertSmoothness("Invert Smoothness Map", Range(0, 1)) = 0 + _Smoothness("Smoothness", Range(0, 1)) = 0 + [HideInInspector] m_end_Metallic("Metallics", Float) = 0 + + [HideInInspector] m_start_clearCoat("Clear Coat", Float) = 0 + [Toggle(_COLORCOLOR_ON)]_EnableClearCoat("Enable Clear Coat", Float) = 0 + [Enum(Vertex, 0, Pixel, 1)] _ClearCoatNormalToUse("What Normal?", Int) = 0 + _ClearCoatCubeMap("Baked CubeMap", Cube) = "" { } + [Toggle(_)]_ClearCoatSampleWorld("Force Baked Cubemap", Range(0, 1)) = 0 + _ClearCoatTint("Reflection Tint", Color) = (1, 1, 1) + _ClearCoatMask("Mask", 2D) = "white" { } + _ClearCoat("Clear Coat", Range(0, 1)) = 1 + _ClearCoatSmoothnessMask("Smoothness Map", 2D) = "white" { } + [Toggle(_)]_ClearCoatInvertSmoothness("Invert Smoothness Map", Range(0, 1)) = 0 + _ClearCoatSmoothness("Smoothness", Range(0, 1)) = 0 + [Toggle(_)]_ClearCoatForceLighting("Force Lighting", Float) = 0 + [HideInInspector] m_end_clearCoat("Clear Coat", Float) = 0 + + [HideInInspector] m_start_matcap("Matcap / Sphere Textures", Float) = 0 + [Toggle(_COLORADDSUBDIFF_ON)]_MatcapEnable("Enable Matcap", Float) = 0 + _MatcapColor("Color", Color) = (1, 1, 1, 1) + [TextureNoSO]_Matcap("Matcap", 2D) = "white" { } + _MatcapBorder("Border", Range(0, .5)) = 0.43 + _MatcapMask("Mask", 2D) = "white" { } + _MatcapIntensity("Intensity", Range(0, 5)) = 1 + _MatcapLightMask("Hide in Shadow", Range(0, 1)) = 0 + _MatcapReplace("Replace With Matcap", Range(0, 1)) = 1 + _MatcapMultiply("Multiply Matcap", Range(0, 1)) = 0 + _MatcapAdd("Add Matcap", Range(0, 1)) = 0 + [Enum(Vertex, 0, Pixel, 1)] _MatcapNormal("Normal to use", Int) = 1 + [HideInInspector] m_end_matcap("Matcap", Float) = 0 + [HideInInspector] m_start_Matcap2("Matcap 2", Float) = 0 + [Toggle(_)]_Matcap2Enable("Enable Matcap 2", Float) = 0 + _Matcap2Color("Color", Color) = (1, 1, 1, 1) + [TextureNoSO]_Matcap2("Matcap", 2D) = "white" { } + _Matcap2Border("Border", Range(0, .5)) = 0.43 + _Matcap2Mask("Mask", 2D) = "white" { } + _Matcap2Intensity("Intensity", Range(0, 5)) = 1 + _Matcap2LightMask("Hide in Shadow", Range(0, 1)) = 0 + _Matcap2Replace("Replace With Matcap", Range(0, 1)) = 0 + _Matcap2Multiply("Multiply Matcap", Range(0, 1)) = 0 + _Matcap2Add("Add Matcap", Range(0, 1)) = 0 + [Enum(Vertex, 0, Pixel, 1)] _Matcap2Normal("Normal to use", Int) = 1 + [HideInInspector] m_end_Matcap2("Matcap 2", Float) = 0 + + [HideInInspector] m_start_specular("Specular Reflections", Float) = 0 + [Toggle(_SPECGLOSSMAP)]_EnableSpecular("Enable Specular", Float) = 0 + [Enum(Realistic, 1, Toon, 2, Anisotropic, 3)] _SpecularType("Specular Type", Int) = 1 + _SpecularMinLightBrightness("Min Light Brightness", Range(0, 1)) = 0 + _SpecularTint("Specular Tint", Color) = (.2, .2, .2, 1) + _SpecularMixAlbedoIntoTint("Mix Material Color Into Tint", Range(0, 1)) = 0 + _SpecularSmoothness("Smoothness", Range(-2, 1)) = .75 + _SpecularMap("Specular Map", 2D) = "white" { } + [Toggle(_)]_SpecularInvertSmoothness("Invert Smoothness", Float) = 0 + _SpecularMask("Specular Mask", 2D) = "white" { } + [Enum(Alpha, 0, Grayscale, 1)] _SmoothnessFrom("Smoothness From", Int) = 1 + [HideInInspector] m_start_SpecularToon("Toon", Float) = 0 + [MultiSlider]_SpecularToonInnerOuter("Inner/Outer Edge", Vector) = (0.25, 0.3, 0, 1) + [HideInInspector] m_end_SpecularToon("Toon", Float) = 0 + [HideInInspector] m_start_Anisotropic("Anisotropic", Float) = 0 + [Enum(Tangent, 0, Bitangent, 1)] _SpecWhatTangent("(Bi)Tangent?", Int) = 0 + _AnisoSpec1Alpha("Spec1 Alpha", Range(0, 1)) = 1 + _AnisoSpec2Alpha("Spec2 Alpha", Range(0, 1)) = 1 + //_Spec1Offset ("Spec1 Offset", Float) = 0 + //_Spec1JitterStrength ("Spec1 Jitter Strength", Float) = 1.0 + _Spec2Smoothness("Spec2 Smoothness", Range(0, 1)) = 0 + //_Spec2Offset ("Spec2 Offset", Float) = 0 + //_Spec2JitterStrength ("Spec2 Jitter Strength", Float) = 1.0 + [Toggle(_)]_AnisoUseTangentMap("Use Directional Map?", Float) = 0 + _AnisoTangentMap("Anisotropic Directional Map", 2D) = "bump" { } + //_ShiftTexture ("Shift Texture", 2D) = "black" { } + [HideInInspector] m_end_Anisotropic("Anisotropic", Float) = 0 + [HideInInspector] m_end_specular("Specular Reflections", Float) = 0 + + [HideInInspector] m_Special_Effects("Special Effects", Float) = 0 + [HideInInspector] m_start_emissionOptions("Emission / Glow", Float) = 0 + [Toggle(_EMISSION)]_EnableEmission("Enable Emission", Float) = 0 + [Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3)] _EmissionUV("Emission UV#", Int) = 0 + [HDR]_EmissionColor("Emission Color", Color) = (1, 1, 1, 1) + [PanningTexture]_EmissionMap("Emission Map", 2D) = "white" { } + [PanningTexture]_EmissionMask("Emission Mask", 2D) = "white" { } + [HideInInspector][Vector2]_EmissionMapPan("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Vector2]_EmissionMaskPan("Panning", Vector) = (0, 0, 0, 0) + _EmissionStrength("Emission Strength", Range(0, 20)) = 0 + // Inward out emission + [HideInInspector] m_start_CenterOutEmission("Center Out Emission", Float) = 0 + [Toggle(_)]_EmissionCenterOutEnabled("Enable Center Out", Float) = 0 + _EmissionCenterOutSpeed("Flow Speed", Float) = 5 + [HideInInspector] m_end_CenterOutEmission("inward out emission", Float) = 0 + //Glow in the dark Emission + [HideInInspector] m_start_glowInDarkEmissionOptions("Glow In The Dark Emission (Requires Lighting Enabled)", Float) = 0 + [Toggle(_)]_EnableGITDEmission("Enable Glow In The Dark", Float) = 0 + [Enum(World, 0, Mesh, 1)] _GITDEWorldOrMesh("Lighting Type", Int) = 0 + _GITDEMinEmissionMultiplier("Min Emission Multiplier", Range(0, 1)) = 1 + _GITDEMaxEmissionMultiplier("Max Emission Multiplier", Range(0, 1)) = 0 + _GITDEMinLight("Min Lighting", Range(0, 1)) = 0 + _GITDEMaxLight("Max Lighting", Range(0, 1)) = 1 + [HideInInspector] m_end_glowInDarkEmissionOptions("Glow In The Dark Emission (Requires Lighting Enabled)", Float) = 0 + + [HideInInspector] m_start_blinkingEmissionOptions("Blinking Emission", Float) = 0 + _EmissiveBlink_Min("Emissive Blink Min", Float) = 1 + _EmissiveBlink_Max("Emissive Blink Max", Float) = 1 + _EmissiveBlink_Velocity("Emissive Blink Velocity", Float) = 4 + [HideInInspector] m_end_blinkingEmissionOptions("Blinking Emission", Float) = 0 + + [HideInInspector] m_start_scrollingEmissionOptions("Scrolling Emission", Float) = 0 + [Toggle(_)] _ScrollingEmission("Enable Scrolling Emission", Float) = 0 + _EmissiveScroll_Direction("Emissive Scroll Direction", Vector) = (0, -10, 0, 0) + _EmissiveScroll_Width("Emissive Scroll Width", Float) = 10 + _EmissiveScroll_Velocity("Emissive Scroll Velocity", Float) = 10 + _EmissiveScroll_Interval("Emissive Scroll Interval", Float) = 20 + [HideInInspector] m_end_scrollingEmissionOptions("Scrolling Emission", Float) = 0 + [HideInInspector] m_end_emissionOptions("Emission / Glow", Float) = 0 + + [HideInInspector] m_start_flipBook("Flipbook", Float) = 0 + [Toggle(_FLIPBOOK_BLENDING)]_EnableFlipbook("Enable Flipbook", Float) = 0 + [Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3)] _FlipbookUV("Flipbook UV#", Int) = 0 + [TextureArray]_FlipbookTexArray("Texture Array--{reference_property:_FlipbookTotalFrames}", 2DArray) = "" { } + _FlipbookColor("Color & alpha", Color) = (1, 1, 1, 1) + _FlipbookTotalFrames("Total Frames", Int) = 1 + _FlipbookFPS("FPS", Float) = 30.0 + _FlipbookScaleOffset("Scale | Offset", Vector) = (1, 1, 0, 0) + [Toggle(_)]_FlipbookTiled("Tiled?", Float) = 0 + _FlipbookEmissionStrength("Emission Strength", Range(0, 20)) = 0 + _FlipbookRotation("Rotation", Range(0, 360)) = 0 + _FlipbookReplace("Replace", Range(0, 1)) = 1 + _FlipbookMultiply("Multiply", Range(0, 1)) = 0 + _FlipbookAdd("Add", Range(0, 1)) = 0 + [HideInInspector] m_start_manualFlipbookControl("Manual Control", Float) = 0 + _FlipbookCurrentFrame("Current Frame", Float) = -1 + [HideInInspector] m_end_manualFlipbookControl("Manual Control", Float) = 0 + [HideInInspector] m_end_flipBook("Flipbook", Float) = 0 + + [HideInInspector] m_start_dissolve("Dissolve", Float) = 0 + [Toggle(_ALPHABLEND_ON)]_EnableDissolve("Enable Dissolve", Float) = 0 + [Enum(Basic, 1, Point2Point, 2)] _DissolveType("Dissolve Type", Int) = 1 + _DissolveEdgeWidth("Edge Width", Range(0, .5)) = 0.025 + _DissolveEdgeHardness("Edge Hardness", Range(0, 1)) = 0.5 + _DissolveEdgeColor("Edge Color", Color) = (1, 1, 1, 1) + [Gradient]_DissolveEdgeGradient("Edge Gradient", 2D) = "white" { } + _DissolveEdgeEmission("Edge Emission", Range(0, 20)) = 0 + _DissolveTextureColor("Dissolve to Color", Color) = (1, 1, 1, 1) + [PanningTexture]_DissolveToTexture("Dissolve to Texture", 2D) = "white" { } + _DissolveToEmissionStrength("Dissolve to Emission Strength", Range(0, 20)) = 0 + [HideInInspector][Vector2]_DissolveToPanning("Panning", Vector) = (0, 0, 0, 0) + [PanningTexture]_DissolveNoiseTexture("Dissolve Noise", 2D) = "white" { } + [Toggle(_)]_DissolveInvertNoise("Invert Noise", Float) = 0 + [PanningTexture]_DissolveDetailNoise("Dissolve Detail Noise", 2D) = "black" { } + [Toggle(_)]_DissolveInvertDetailNoise("Invert Detail Noise", Float) = 0 + _DissolveDetailStrength("Dissolve Detail Strength", Range(0, 1)) = 0.1 + [HideInInspector][Vector2]_DissolveNoisePan("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Vector2]_DissolveDetailPan("Panning", Vector) = (0, 0, 0, 0) + _DissolveAlpha("Dissolve Alpha", Range(0, 1)) = 0 + _DissolveMask("Dissolve Mask", 2D) = "white" { } + [Toggle(_)]_ContinuousDissolve("Continuous Dissolve Speed", Float) = 0 + [HideInInspector] m_start_pointToPoint("point to point", Float) = 0 + [Enum(Local, 0, World, 1)] _DissolveP2PWorldLocal("World/Local", Int) = 0 + _DissolveP2PEdgeLength("Edge Length", Float) = 0.1 + [Vector3]_DissolveStartPoint("Start Point", Vector) = (0, -1, 0, 0) + [Vector3]_DissolveEndPoint("End Point", Vector) = (0, 1, 0, 0) + [HideInInspector] m_end_pointToPoint("Point To Point", Float) = 0 + [HideInInspector] m_end_dissolve("Dissolve", Float) = 0 + + [HideInInspector] m_start_panosphereOptions("Panosphere / Cubemaps", Float) = 0 + [Toggle(_DETAIL_MULX2)]_PanoToggle("Enable Panosphere", Float) = 0 + _PanosphereColor("Color", Color) = (1, 1, 1, 1) + _PanosphereTexture("Texture", 2D) = "white" { } + _PanoMapTexture("Mask", 2D) = "white" { } + _PanoEmission("Emission Strength", Range(0, 10)) = 0 + _PanoBlend("Alpha", Range(0, 1)) = 0 + [Vector3]_PanospherePan("Pan Speed", Vector) = (0, 0, 0, 0) + [Toggle(_)]_PanoCubeMapToggle("Use Cubemap", Float) = 0 + [TextureNoSO]_PanoCubeMap("CubeMap", Cube) = "" { } + [HideInInspector] m_end_panosphereOptions("Panosphere / Cubemaps", Float) = 0 + + [HideInInspector] m_start_mirrorOptions("Mirror", Float) = 0 + [Toggle(_REQUIRE_UV2)]_EnableMirrorOptions("Enable Mirror Options", Float) = 0 + [Enum(ShowInBoth, 0, ShowOnlyInMirror, 1, DontShowInMirror, 2)] _Mirror("Show in mirror", Int) = 0 + [Toggle(_)]_EnableMirrorTexture("Enable Mirror Texture", Float) = 0 + _MirrorTexture("Mirror Tex", 2D) = "white" { } + [HideInInspector] m_end_mirrorOptions("Mirror", Float) = 0 + + [HideInInspector] m_start_distanceFade("Distance Fade", Float) = 0 + _MainMinAlpha("Minimum Alpha", Range(0, 1)) = 0 + _MainFadeTexture("Fade Map", 2D) = "white" { } + [Vector2]_MainDistanceFade("Distance Fade X to Y", Vector) = (0, 0, 0, 0) + [HideInInspector] m_end_distanceFade("Distance Fade", Float) = 0 + + [HideInInspector] m_start_angularFade("Angular Fade", Float) = 0 + [Toggle(_SUNDISK_NONE)]_EnableRandom("Enable Angular Fade", Float) = 0 + [Enum(Camera Face Model, 0, Model Face Camera, 1, Face Each Other, 2)] _AngleType("Angle Type", Int) = 0 + [Enum(Model, 0, Vertex, 1)] _AngleCompareTo("Model or Vert Positon", Int) = 0 + [Vector3]_AngleForwardDirection("Forward Direction", Vector) = (0, 0, 1, 0) + _CameraAngleMin("Camera Angle Min", Range(0, 180)) = 45 + _CameraAngleMax("Camera Angle Max", Range(0, 180)) = 90 + _ModelAngleMin("Model Angle Min", Range(0, 180)) = 45 + _ModelAngleMax("Model Angle Max", Range(0, 180)) = 90 + _AngleMinAlpha("Min Alpha", Range(0, 1)) = 0 + [HideInInspector] m_end_angularFade("Angular Fade", Float) = 0 + // End Special Effects + + [HideInInspector] m_parallaxMap("Parallax", Float) = 0 + [Toggle(_PARALLAXMAP)]_ParallaxMap("Enable Parallax FX", Float) = 0 + [Toggle(_)]_ParallaxHeightMapEnabled("Enable Parallax Height", Float) = 0 + [Toggle(_)]_ParallaxInternalMapEnabled("Enable Parallax Internal", Float) = 0 + [HideInInspector] m_start_parallaxHeightmap("Heightmap", Float) = 0 + _ParallaxHeightMap("Height Map", 2D) = "black" { } + _ParallaxStrength("Parallax Strength", Range(0, 1)) = 0 + [HideInInspector] m_end_parallaxHeightmap("Heightmap", Float) = 0 + [HideInInspector] m_start_parallaxInternal("Internal", Float) = 0 + [Enum(Basic, 0, HeightMap, 1)] _ParallaxInternalHeightmapMode("Parallax Mode", Int) = 0 + [Toggle(_)]_ParallaxInternalHeightFromAlpha("HeightFromAlpha", Float) = 0 + _ParallaxInternalMap("Internal Map", 2D) = "black" { } + _ParallaxInternalIterations("Parallax Internal Iterations", Range(1, 50)) = 1 + _ParallaxInternalMinDepth("Min Depth", Float) = 0 + _ParallaxInternalMaxDepth("Max Depth", Float) = 1 + _ParallaxInternalMinFade("Min Depth Brightness", Range(0, 5)) = 0 + _ParallaxInternalMaxFade("Max Depth Brightness", Range(0, 5)) = 1 + _ParallaxInternalMinColor("Min Depth Color", Color) = (1, 1, 1, 1) + _ParallaxInternalMaxColor("Max Depth Color", Color) = (1, 1, 1, 1) + [Vector2]_ParallaxInternalPanSpeed("Pan Speed", Vector) = (0, 0, 0, 0) + [Vector2]_ParallaxInternalPanDepthSpeed("Per Level Speed Multiplier", Vector) = (0, 0, 0, 0) + [HideInInspector] m_end_parallaxInternal("Internal", Float) = 0 + [HideInInspector] m_start_parallaxAdvanced("Advanced", Float) = 0 + _ParallaxBias("Parallax Bias (0.42)", Float) = 0.42 + [HideInInspector] m_end_parallaxAdvanced("Advanced", Float) = 0 + + [HideInInspector] m_renderingOptions("Rendering Options", Float) = 0 + [Enum(UnityEngine.Rendering.CullMode)] _Cull("Cull", Float) = 2 + [Enum(UnityEngine.Rendering.CompareFunction)] _ZTest("ZTest", Float) = 4 + [Enum(UnityEngine.Rendering.BlendMode)] _SourceBlend("Source Blend", Float) = 5 + [Enum(UnityEngine.Rendering.BlendMode)] _DestinationBlend("Destination Blend", Float) = 10 + [Enum(Off, 0, On, 1)] _ZWrite("ZWrite", Int) = 1 + _ZBias("ZBias", Float) = 0.0 + [Toggle(_)]_IgnoreFog("Ignore Fog", Float) = 0 + //[HideInInspector] Instancing ("Instancing", Float) = 0 //add this property for instancing variants settings to be shown + + [HideInInspector] m_start_StencilPassOptions("Stencil", Float) = 0 + [IntRange] _StencilRef("Stencil Reference Value", Range(0, 255)) = 0 + //[IntRange] _StencilReadMaskRef ("Stencil ReadMask Value", Range(0, 255)) = 0 + //[IntRange] _StencilWriteMaskRef ("Stencil WriteMask Value", Range(0, 255)) = 0 + [Enum(UnityEngine.Rendering.StencilOp)] _StencilPassOp("Stencil Pass Op", Float) = 0 + [Enum(UnityEngine.Rendering.StencilOp)] _StencilFailOp("Stencil Fail Op", Float) = 0 + [Enum(UnityEngine.Rendering.StencilOp)] _StencilZFailOp("Stencil ZFail Op", Float) = 0 + [Enum(UnityEngine.Rendering.CompareFunction)] _StencilCompareFunction("Stencil Compare Function", Float) = 8 + [HideInInspector] m_end_StencilPassOptions("Stencil", Float) = 0 + + [HideInInspector] m_start_debugOptions("Debug", Float) = 0 + [Toggle(_COLOROVERLAY_ON)]_DebugDisplayDebug("Display Debug Info", Float) = 0 + [Enum(Off, 0, Vertex Normal, 1, Pixel Normal, 2, Tangent, 3, Binormal, 4)] _DebugMeshData("Mesh Data", Int) = 0 + [Enum(Off, 0, Attenuation, 1, Direct Lighting, 2, Indirect Lighting, 3, light Map, 4, Ramped Light Map, 5, Final Lighting, 6)] _DebugLightingData("Lighting Data", Int) = 0 + [Enum(Off, 0, finalSpecular, 1, tangentDirectionMap, 2, shiftTexture, 3)] _DebugSpecularData("Specular Data", Int) = 0 + [Enum(Off, 0, View Dir, 1, Tangent View Dir, 2, Forward Dir, 3, WorldPos, 4, View Dot Normal, 5)] _DebugCameraData("Camera Data", Int) = 0 + [HideInInspector] m_end_debugOptions("Debug", Float) = 0 + } + + CustomEditor "Thry.ShaderEditor" + SubShader{ + Tags { "RenderType" = "Opaque" } + LOD 200 + + CGPROGRAM + // Physically based Standard lighting model, and enable shadows on all light types + #pragma surface surf Standard fullforwardshadows + + // Use shader model 3.0 target, to get nicer looking lighting + #pragma target 3.0 + + sampler2D _MainTex; + + struct Input { + float2 uv_MainTex; + }; + + half _Glossiness; + half _Metallic; + fixed4 _Color; + + // Add instancing support for this shader. You need to check 'Enable Instancing' on materials that use the shader. + // See https://docs.unity3d.com/Manual/GPUInstancing.html for more information about instancing. + // #pragma instancing_options assumeuniformscaling + UNITY_INSTANCING_BUFFER_START(Props) + // put more per-instance properties here + UNITY_INSTANCING_BUFFER_END(Props) + + void surf(Input IN, inout SurfaceOutputStandard o) { + // Albedo comes from a texture tinted by color + fixed4 c = tex2D(_MainTex, IN.uv_MainTex) * _Color; + o.Albedo = c.rgb; + // Metallic and smoothness come from slider variables + o.Metallic = _Metallic; + o.Smoothness = _Glossiness; + o.Alpha = c.a; + } + ENDCG + } + FallBack "Diffuse" +} diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Examples/Example1.shader.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Examples/Example1.shader.meta new file mode 100644 index 00000000..3bfcf026 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Examples/Example1.shader.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8a38f752c293b5548b674637c2a6f99a +ShaderImporter: + externalObjects: {} + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Examples/Example2.shader b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Examples/Example2.shader new file mode 100644 index 00000000..6cdcb28f --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Examples/Example2.shader @@ -0,0 +1,435 @@ +Shader "Thry/Example 2" +{ + Properties + { + [HideInInspector] shader_is_using_thry_editor("", Float)=0 + [HideInInspector] shader_master_label("<color=#ff0000ff>Example 2</color>", Float) = 0 + [HideInInspector] shader_presets("ThryPresetsExample", Float) = 0 + [HideInInspector] shader_properties_label_file("ThryLabelExample", Float) = 0 + + [HideInInspector] footer_website("", Float) = 0 + [HideInInspector] footer_github("", Float) = 0 + + + shader_properties_locale("locale::locale--{file_name:thry_locale_example}", Float) = 0 + [Enum(Cutout,0,Transparent,1)]variant_selector("Variant--{on_value_actions:[{value:0,actions:[{type:SET_PROPERTY,data:_ZWrite=1},{type:SET_SHADER,data:Thry/Example 1}]},{value:1,actions:[{type:SET_PROPERTY,data:_ZWrite=0},{type:SET_SHADER,data:Thry/Example 2}]}]}",Float) = 0 + + [HideInInspector] m_mainOptions("Main", Float) = 0 + _Color("Color & Alpha", Color) = (1, 1, 1, 1) + [Helpbox]_HelpboxForSomething("Alpha is controlled in the color", Float) = 1 + _Saturation("Saturation", Range(-1, 1)) = 0 + _MainVertexColoring("Use Vertex Color", Range(0,1)) = 0 + _MainEmissionStrength("Basic Emission", Range(0, 20)) = 0 + [Curve]_MainTex("Texture", 2D) = "white" { } + [PanningTexture][Normal]_BumpMap("Normal Map", 2D) = "bump" { } + [Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3)] _BumpMapUV("Normal UV#", Int) = 0 + [HideInInspector][Vector2]_MainNormalPan("Panning", Vector) = (0, 0, 0, 0) + _BumpScale("Normal Intensity", Range(0, 10)) = 1 + _AlphaMask("Alpha Mask", 2D) = "white" { } + [Vector2]_GlobalPanSpeed("Global Pan Speed", Vector) = (0, 0, 0, 0) + + [HideInInspector] m_start_Alpha("Alpha Options--{altClick:{type:URL,data:https://thryrallo.de}}", Float) = 0 + _Clip("Alpha Cuttoff", Range(0, 1.001)) = 0.5 + [Toggle(_)]_ForceOpaque("Force Opaque", Float) = 0 + [Toggle(_)]_MainAlphaToCoverage("Alpha To Coverage", Float) = 1 + _MainMipScale("Mip Level Alpha Scale", Range(0, 1)) = 0.25 + [HideInInspector] m_end_Alpha("Alpha Options", Float) = 0 + + [HideInInspector] m_start_DetailOptions("Details", Float) = 0 + _DetailMask("Detail Mask (R:Texture, G:Normal)", 2D) = "white" { } + [PanningTexture]_DetailTex("Detail Texture", 2D) = "gray" { } + [HideInInspector][Vector2]_DetailTexturePan("Panning", Vector) = (0, 0, 0, 0) + [Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3)] _DetailTexUV("Detail Tex UV#", Int) = 0 + _DetailTexIntensity("Detail Tex Intensity", Range(0, 10)) = 1 + _DetailBrightness("Detail Brightness:", Range(0, 2)) = 1 + _DetailTint("Detail Tint", Color) = (1, 1, 1) + [Normal]_DetailNormalMap("Detail Normal", 2D) = "bump" { } + [Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3)] _DetailNormalUV("Detail Normal UV#", Int) = 0 + _DetailNormalMapScale("Detail Normal Intensity", Range(0, 10)) = 1 + [HideInInspector][Vector2]_MainDetailNormalPan("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector] m_end_DetailOptions("Details", Float) = 0 + + [HideInInspector] m_lightingOptions("Lighting Options", Float) = 0 + [HideInInspector] m_start_Lighting("Light and Shadow", Float) = 0 + [Toggle(_NORMALMAP)]_EnableLighting("Enable Lighting", Float) = 1 + [HideInInspector] g_start_l("", Int) = 0 + [Enum(Natural, 0, Controlled, 1, Standardish, 2)] _LightingType("Lighting Type", Int) = 1 + [Gradient]_ToonRamp("Lighting Ramp", 2D) = "white" { } + _LightingShadowMask("Shadow Mask (R)", 2D) = "white" { } + _ShadowStrength("Shadow Strength", Range(0, 1)) = .2 + _ShadowOffset("Shadow Offset", Range(-1, 1)) = 0 + _AOMap("AO Map", 2D) = "white" { } + [Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3)] _LightingAOUV("AO Map UV#", Int) = 0 + _AOStrength("AO Strength", Range(0, 1)) = 1 + _LightingMinLightBrightness("Min Brightness", Range(0,1)) = 0 + [HideInInspector] m_start_lightingStandard("Standardish Settings", Float) = 0 + _LightingStandardSmoothness("Smoothness", Range(0, 1)) = 0 + [HideInInspector] m_end_lightingStandard("Standardish Settings", Float) = 0 + [HideInInspector] m_start_lightingAdvanced("Advanced", Float) = 0 + _LightingIndirectContribution("Indirect Contribution", Range(0, 1)) = .25 + _AdditiveSoftness("Additive Softness", Range(0, 0.5)) = 0.005 + _AdditiveOffset("Additive Offset", Range(-0.5, 0.5)) = 0 + _LightingAdditiveIntensity("Additive Intensity", Range(0,1)) = 1 + _AttenuationMultiplier("Attenuation", Range(0, 1)) = 0 + [HideInInspector] m_end_lightingAdvanced("Advanced", Float) = 0 + [HideInInspector] m_start_lightingBeta("Beta", Float) = 0 + [Toggle(_)]_LightingStandardControlsToon("Standard Lighting Controls Toon Ramp", Float) = 0 + [HideInInspector] m_end_lightingBeta("Beta", Float) = 0 + [HideInInspector] g_end_l("", Int) = 0 + [HideInInspector] m_end_Lighting("Light and Shadow", Float) = 0 + + [HideInInspector] m_start_subsurface("Subsurface Scattering", Float) = 0 + [Toggle(_TERRAIN_NORMAL_MAP)]_EnableSSS("Enable Subsurface Scattering", Float) = 0 + _SSSColor("Subsurface Color", Color) = (1, 1, 1, 1) + _SSSThicknessMap("Thickness Map", 2D) = "black" { } + _SSSThicknessMod("Thickness mod", Range(-1, 1)) = 0 + _SSSSCale("Light Strength", Range(0, 1)) = 0 + _SSSPower("Light Spread", Range(1, 100)) = 1 + _SSSDistortion("Light Distortion", Range(0, 1)) = 0 + [HideInInspector] m_end_subsurface("Subsurface Scattering", Float) = 0 + + [HideInInspector] m_start_rimLightOptions("Rim Lighting", Float) = 0 + [Toggle(_GLOSSYREFLECTIONS_OFF)]_EnableRimLighting("Enable Rim Lighting", Float) = 0 + [Toggle(_)]_RimLightingInvert("Invert Rim Lighting", Float) = 0 + _RimLightColor("Rim Color", Color) = (1, 1, 1, 1) + _RimWidth("Rim Width", Range(0, 1)) = 0.8 + _RimSharpness("Rim Sharpness", Range(0, 1)) = .25 + _RimStrength("Rim Emission", Range(0, 20)) = 0 + _RimBrighten("Rim Color Brighten", Range(0, 3)) = 0 + _RimLightColorBias("Rim Color Bias", Range(0, 1)) = 0 + [PanningTexture]_RimTex("Rim Texture", 2D) = "white" { } + _RimMask("Rim Mask", 2D) = "white" { } + [HideInInspector][Vector2]_RimTexPanSpeed("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector] m_start_reflectionRim("Environmental Rim", Float) = 0 + [Toggle(_)]_EnableEnvironmentalRim("Enable Environmental Rim", Float) = 0 + _RimEnviroMask("Mask", 2D) = "white" { } + _RimEnviroBlur("Blur", Range(0, 1)) = 0.7 + _RimEnviroWidth("Rim Width", Range(0, 1)) = 0.45 + _RimEnviroSharpness("Rim Sharpness", Range(0, 1)) = 0 + _RimEnviroMinBrightness("Min Brightness Threshold", Range(0, 2)) = 0 + [HideInInspector] m_end_reflectionRim("Environmental Rim", Float) = 0 + [HideInInspector] m_start_rimWidthNoise("Width Noise", Float) = 0 + [PanningTexture]_RimWidthNoiseTexture("Rim Width Noise", 2D) = "black" { } + _RimWidthNoiseStrength("Intensity", Range(0, 1)) = 0.1 + [HideInInspector][Vector2]_RimWidthNoisePan("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector] m_end_rimWidthNoise("Width Noise", Float) = 0 + [HideInInspector] m_start_ShadowMix("Shadow Mix", Float) = 0 + _ShadowMix("Shadow Mix In", Range(0, 1)) = 0 + _ShadowMixThreshold("Shadow Mix Threshold", Range(0, 1)) = .5 + _ShadowMixWidthMod("Shadow Mix Width Mod", Range(0, 10)) = .5 + [HideInInspector] m_end_ShadowMix("Shadow Mix", Float) = 0 + [HideInInspector] m_end_rimLightOptions("Rim Lighting", Float) = 0 + + [HideInInspector] m_start_bakedLighting("Baked Lighting", Float) = 0 + _GIEmissionMultiplier("GI Emission Multiplier", Float) = 1 + [HideInInspector] DSGI("DSGI", Float) = 0 //add this property for double sided illumination settings to be shown + [HideInInspector] LightmapFlags("Lightmap Flags", Float) = 0 //add this property for lightmap flags settings to be shown + [HideInInspector] m_end_bakedLighting("Baked Lighting", Float) = 0 + + [HideInInspector] m_reflectionOptions("Reflections", Float) = 0 + [HideInInspector] m_start_Metallic("Metallics", Float) = 0 + [Toggle(_METALLICGLOSSMAP)]_EnableMetallic("Enable Metallics", Float) = 0 + _CubeMap("Baked CubeMap", Cube) = "" { } + [Toggle(_)]_SampleWorld("Force Baked Cubemap", Range(0, 1)) = 0 + _MetalReflectionTint("Reflection Tint", Color) = (1, 1, 1) + _MetallicMask("Metallic Mask", 2D) = "white" { } + _Metallic("Metallic", Range(0, 1)) = 0 + _SmoothnessMask("Smoothness Map", 2D) = "white" { } + [Toggle(_)]_InvertSmoothness("Invert Smoothness Map", Range(0, 1)) = 0 + _Smoothness("Smoothness", Range(0, 1)) = 0 + [HideInInspector] m_end_Metallic("Metallics", Float) = 0 + + [HideInInspector] m_start_clearCoat("Clear Coat", Float) = 0 + [Toggle(_COLORCOLOR_ON)]_EnableClearCoat("Enable Clear Coat", Float) = 0 + [Enum(Vertex, 0, Pixel, 1)] _ClearCoatNormalToUse("What Normal?", Int) = 0 + _ClearCoatCubeMap("Baked CubeMap", Cube) = "" { } + [Toggle(_)]_ClearCoatSampleWorld("Force Baked Cubemap", Range(0, 1)) = 0 + _ClearCoatTint("Reflection Tint", Color) = (1, 1, 1) + _ClearCoatMask("Mask", 2D) = "white" { } + _ClearCoat("Clear Coat", Range(0, 1)) = 1 + _ClearCoatSmoothnessMask("Smoothness Map", 2D) = "white" { } + [Toggle(_)]_ClearCoatInvertSmoothness("Invert Smoothness Map", Range(0, 1)) = 0 + _ClearCoatSmoothness("Smoothness", Range(0, 1)) = 0 + [Toggle(_)]_ClearCoatForceLighting("Force Lighting", Float) = 0 + [HideInInspector] m_end_clearCoat("Clear Coat", Float) = 0 + + [HideInInspector] m_start_matcap("Matcap / Sphere Textures", Float) = 0 + [Toggle(_COLORADDSUBDIFF_ON)]_MatcapEnable("Enable Matcap", Float) = 0 + _MatcapColor("Color", Color) = (1, 1, 1, 1) + [TextureNoSO]_Matcap("Matcap", 2D) = "white" { } + _MatcapBorder("Border", Range(0, .5)) = 0.43 + _MatcapMask("Mask", 2D) = "white" { } + _MatcapIntensity("Intensity", Range(0, 5)) = 1 + _MatcapLightMask("Hide in Shadow", Range(0, 1)) = 0 + _MatcapReplace("Replace With Matcap", Range(0, 1)) = 1 + _MatcapMultiply("Multiply Matcap", Range(0, 1)) = 0 + _MatcapAdd("Add Matcap", Range(0, 1)) = 0 + [Enum(Vertex, 0, Pixel, 1)] _MatcapNormal("Normal to use", Int) = 1 + [HideInInspector] m_end_matcap("Matcap", Float) = 0 + [HideInInspector] m_start_Matcap2("Matcap 2", Float) = 0 + [Toggle(_)]_Matcap2Enable("Enable Matcap 2", Float) = 0 + _Matcap2Color("Color", Color) = (1, 1, 1, 1) + [TextureNoSO]_Matcap2("Matcap", 2D) = "white" { } + _Matcap2Border("Border", Range(0, .5)) = 0.43 + _Matcap2Mask("Mask", 2D) = "white" { } + _Matcap2Intensity("Intensity", Range(0, 5)) = 1 + _Matcap2LightMask("Hide in Shadow", Range(0, 1)) = 0 + _Matcap2Replace("Replace With Matcap", Range(0, 1)) = 0 + _Matcap2Multiply("Multiply Matcap", Range(0, 1)) = 0 + _Matcap2Add("Add Matcap", Range(0, 1)) = 0 + [Enum(Vertex, 0, Pixel, 1)] _Matcap2Normal("Normal to use", Int) = 1 + [HideInInspector] m_end_Matcap2("Matcap 2", Float) = 0 + + [HideInInspector] m_start_specular("Specular Reflections", Float) = 0 + [Toggle(_SPECGLOSSMAP)]_EnableSpecular("Enable Specular", Float) = 0 + [Enum(Realistic, 1, Toon, 2, Anisotropic, 3)] _SpecularType("Specular Type", Int) = 1 + _SpecularMinLightBrightness("Min Light Brightness", Range(0, 1)) = 0 + _SpecularTint("Specular Tint", Color) = (.2, .2, .2, 1) + _SpecularMixAlbedoIntoTint("Mix Material Color Into Tint", Range(0, 1)) = 0 + _SpecularSmoothness("Smoothness", Range(-2, 1)) = .75 + _SpecularMap("Specular Map", 2D) = "white" { } + [Toggle(_)]_SpecularInvertSmoothness("Invert Smoothness", Float) = 0 + _SpecularMask("Specular Mask", 2D) = "white" { } + [Enum(Alpha, 0, Grayscale, 1)] _SmoothnessFrom("Smoothness From", Int) = 1 + [HideInInspector] m_start_SpecularToon("Toon", Float) = 0 + [MultiSlider]_SpecularToonInnerOuter("Inner/Outer Edge", Vector) = (0.25, 0.3, 0, 1) + [HideInInspector] m_end_SpecularToon("Toon", Float) = 0 + [HideInInspector] m_start_Anisotropic("Anisotropic", Float) = 0 + [Enum(Tangent, 0, Bitangent, 1)] _SpecWhatTangent("(Bi)Tangent?", Int) = 0 + _AnisoSpec1Alpha("Spec1 Alpha", Range(0, 1)) = 1 + _AnisoSpec2Alpha("Spec2 Alpha", Range(0, 1)) = 1 + //_Spec1Offset ("Spec1 Offset", Float) = 0 + //_Spec1JitterStrength ("Spec1 Jitter Strength", Float) = 1.0 + _Spec2Smoothness("Spec2 Smoothness", Range(0, 1)) = 0 + //_Spec2Offset ("Spec2 Offset", Float) = 0 + //_Spec2JitterStrength ("Spec2 Jitter Strength", Float) = 1.0 + [Toggle(_)]_AnisoUseTangentMap("Use Directional Map?", Float) = 0 + _AnisoTangentMap("Anisotropic Directional Map", 2D) = "bump" { } + //_ShiftTexture ("Shift Texture", 2D) = "black" { } + [HideInInspector] m_end_Anisotropic("Anisotropic", Float) = 0 + [HideInInspector] m_end_specular("Specular Reflections", Float) = 0 + + [HideInInspector] m_Special_Effects("Special Effects", Float) = 0 + [HideInInspector] m_start_emissionOptions("Emission / Glow", Float) = 0 + [Toggle(_EMISSION)]_EnableEmission("Enable Emission", Float) = 0 + [Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3)] _EmissionUV("Emission UV#", Int) = 0 + [HDR]_EmissionColor("Emission Color", Color) = (1, 1, 1, 1) + [PanningTexture]_EmissionMap("Emission Map", 2D) = "white" { } + [PanningTexture]_EmissionMask("Emission Mask", 2D) = "white" { } + [HideInInspector][Vector2]_EmissionMapPan("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Vector2]_EmissionMaskPan("Panning", Vector) = (0, 0, 0, 0) + _EmissionStrength("Emission Strength", Range(0, 20)) = 0 + // Inward out emission + [HideInInspector] m_start_CenterOutEmission("Center Out Emission", Float) = 0 + [Toggle(_)]_EmissionCenterOutEnabled("Enable Center Out", Float) = 0 + _EmissionCenterOutSpeed("Flow Speed", Float) = 5 + [HideInInspector] m_end_CenterOutEmission("inward out emission", Float) = 0 + //Glow in the dark Emission + [HideInInspector] m_start_glowInDarkEmissionOptions("Glow In The Dark Emission (Requires Lighting Enabled)", Float) = 0 + [Toggle(_)]_EnableGITDEmission("Enable Glow In The Dark", Float) = 0 + [Enum(World, 0, Mesh, 1)] _GITDEWorldOrMesh("Lighting Type", Int) = 0 + _GITDEMinEmissionMultiplier("Min Emission Multiplier", Range(0, 1)) = 1 + _GITDEMaxEmissionMultiplier("Max Emission Multiplier", Range(0, 1)) = 0 + _GITDEMinLight("Min Lighting", Range(0, 1)) = 0 + _GITDEMaxLight("Max Lighting", Range(0, 1)) = 1 + [HideInInspector] m_end_glowInDarkEmissionOptions("Glow In The Dark Emission (Requires Lighting Enabled)", Float) = 0 + + [HideInInspector] m_start_blinkingEmissionOptions("Blinking Emission", Float) = 0 + _EmissiveBlink_Min("Emissive Blink Min", Float) = 1 + _EmissiveBlink_Max("Emissive Blink Max", Float) = 1 + _EmissiveBlink_Velocity("Emissive Blink Velocity", Float) = 4 + [HideInInspector] m_end_blinkingEmissionOptions("Blinking Emission", Float) = 0 + + [HideInInspector] m_start_scrollingEmissionOptions("Scrolling Emission", Float) = 0 + [Toggle(_)] _ScrollingEmission("Enable Scrolling Emission", Float) = 0 + _EmissiveScroll_Direction("Emissive Scroll Direction", Vector) = (0, -10, 0, 0) + _EmissiveScroll_Width("Emissive Scroll Width", Float) = 10 + _EmissiveScroll_Velocity("Emissive Scroll Velocity", Float) = 10 + _EmissiveScroll_Interval("Emissive Scroll Interval", Float) = 20 + [HideInInspector] m_end_scrollingEmissionOptions("Scrolling Emission", Float) = 0 + [HideInInspector] m_end_emissionOptions("Emission / Glow", Float) = 0 + + [HideInInspector] m_start_flipBook("Flipbook", Float) = 0 + [Toggle(_FLIPBOOK_BLENDING)]_EnableFlipbook("Enable Flipbook", Float) = 0 + [Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3)] _FlipbookUV("Flipbook UV#", Int) = 0 + [TextureArray]_FlipbookTexArray("Texture Array--{reference_property:_FlipbookTotalFrames}", 2DArray) = "" { } + _FlipbookColor("Color & alpha", Color) = (1, 1, 1, 1) + _FlipbookTotalFrames("Total Frames", Int) = 1 + _FlipbookFPS("FPS", Float) = 30.0 + _FlipbookScaleOffset("Scale | Offset", Vector) = (1, 1, 0, 0) + [Toggle(_)]_FlipbookTiled("Tiled?", Float) = 0 + _FlipbookEmissionStrength("Emission Strength", Range(0, 20)) = 0 + _FlipbookRotation("Rotation", Range(0, 360)) = 0 + _FlipbookReplace("Replace", Range(0, 1)) = 1 + _FlipbookMultiply("Multiply", Range(0, 1)) = 0 + _FlipbookAdd("Add", Range(0, 1)) = 0 + [HideInInspector] m_start_manualFlipbookControl("Manual Control", Float) = 0 + _FlipbookCurrentFrame("Current Frame", Float) = -1 + [HideInInspector] m_end_manualFlipbookControl("Manual Control", Float) = 0 + [HideInInspector] m_end_flipBook("Flipbook", Float) = 0 + + [HideInInspector] m_start_dissolve("Dissolve", Float) = 0 + [Toggle(_ALPHABLEND_ON)]_EnableDissolve("Enable Dissolve", Float) = 0 + [Enum(Basic, 1, Point2Point, 2)] _DissolveType("Dissolve Type", Int) = 1 + _DissolveEdgeWidth("Edge Width", Range(0, .5)) = 0.025 + _DissolveEdgeHardness("Edge Hardness", Range(0, 1)) = 0.5 + _DissolveEdgeColor("Edge Color", Color) = (1, 1, 1, 1) + [Gradient]_DissolveEdgeGradient("Edge Gradient", 2D) = "white" { } + _DissolveEdgeEmission("Edge Emission", Range(0, 20)) = 0 + _DissolveTextureColor("Dissolve to Color", Color) = (1, 1, 1, 1) + [PanningTexture]_DissolveToTexture("Dissolve to Texture", 2D) = "white" { } + _DissolveToEmissionStrength("Dissolve to Emission Strength", Range(0, 20)) = 0 + [HideInInspector][Vector2]_DissolveToPanning("Panning", Vector) = (0, 0, 0, 0) + [PanningTexture]_DissolveNoiseTexture("Dissolve Noise", 2D) = "white" { } + [Toggle(_)]_DissolveInvertNoise("Invert Noise", Float) = 0 + [PanningTexture]_DissolveDetailNoise("Dissolve Detail Noise", 2D) = "black" { } + [Toggle(_)]_DissolveInvertDetailNoise("Invert Detail Noise", Float) = 0 + _DissolveDetailStrength("Dissolve Detail Strength", Range(0, 1)) = 0.1 + [HideInInspector][Vector2]_DissolveNoisePan("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Vector2]_DissolveDetailPan("Panning", Vector) = (0, 0, 0, 0) + _DissolveAlpha("Dissolve Alpha", Range(0, 1)) = 0 + _DissolveMask("Dissolve Mask", 2D) = "white" { } + [Toggle(_)]_ContinuousDissolve("Continuous Dissolve Speed", Float) = 0 + [HideInInspector] m_start_pointToPoint("point to point", Float) = 0 + [Enum(Local, 0, World, 1)] _DissolveP2PWorldLocal("World/Local", Int) = 0 + _DissolveP2PEdgeLength("Edge Length", Float) = 0.1 + [Vector3]_DissolveStartPoint("Start Point", Vector) = (0, -1, 0, 0) + [Vector3]_DissolveEndPoint("End Point", Vector) = (0, 1, 0, 0) + [HideInInspector] m_end_pointToPoint("Point To Point", Float) = 0 + [HideInInspector] m_end_dissolve("Dissolve", Float) = 0 + + [HideInInspector] m_start_panosphereOptions("Panosphere / Cubemaps", Float) = 0 + [Toggle(_DETAIL_MULX2)]_PanoToggle("Enable Panosphere", Float) = 0 + _PanosphereColor("Color", Color) = (1, 1, 1, 1) + _PanosphereTexture("Texture", 2D) = "white" { } + _PanoMapTexture("Mask", 2D) = "white" { } + _PanoEmission("Emission Strength", Range(0, 10)) = 0 + _PanoBlend("Alpha", Range(0, 1)) = 0 + [Vector3]_PanospherePan("Pan Speed", Vector) = (0, 0, 0, 0) + [Toggle(_)]_PanoCubeMapToggle("Use Cubemap", Float) = 0 + [TextureNoSO]_PanoCubeMap("CubeMap", Cube) = "" { } + [HideInInspector] m_end_panosphereOptions("Panosphere / Cubemaps", Float) = 0 + + [HideInInspector] m_start_mirrorOptions("Mirror", Float) = 0 + [Toggle(_REQUIRE_UV2)]_EnableMirrorOptions("Enable Mirror Options", Float) = 0 + [Enum(ShowInBoth, 0, ShowOnlyInMirror, 1, DontShowInMirror, 2)] _Mirror("Show in mirror", Int) = 0 + [Toggle(_)]_EnableMirrorTexture("Enable Mirror Texture", Float) = 0 + _MirrorTexture("Mirror Tex", 2D) = "white" { } + [HideInInspector] m_end_mirrorOptions("Mirror", Float) = 0 + + [HideInInspector] m_start_distanceFade("Distance Fade", Float) = 0 + _MainMinAlpha("Minimum Alpha", Range(0, 1)) = 0 + _MainFadeTexture("Fade Map", 2D) = "white" { } + [Vector2]_MainDistanceFade("Distance Fade X to Y", Vector) = (0, 0, 0, 0) + [HideInInspector] m_end_distanceFade("Distance Fade", Float) = 0 + + [HideInInspector] m_start_angularFade("Angular Fade", Float) = 0 + [Toggle(_SUNDISK_NONE)]_EnableRandom("Enable Angular Fade", Float) = 0 + [Enum(Camera Face Model, 0, Model Face Camera, 1, Face Each Other, 2)] _AngleType("Angle Type", Int) = 0 + [Enum(Model, 0, Vertex, 1)] _AngleCompareTo("Model or Vert Positon", Int) = 0 + [Vector3]_AngleForwardDirection("Forward Direction", Vector) = (0, 0, 1, 0) + _CameraAngleMin("Camera Angle Min", Range(0, 180)) = 45 + _CameraAngleMax("Camera Angle Max", Range(0, 180)) = 90 + _ModelAngleMin("Model Angle Min", Range(0, 180)) = 45 + _ModelAngleMax("Model Angle Max", Range(0, 180)) = 90 + _AngleMinAlpha("Min Alpha", Range(0, 1)) = 0 + [HideInInspector] m_end_angularFade("Angular Fade", Float) = 0 + // End Special Effects + + [HideInInspector] m_parallaxMap("Parallax", Float) = 0 + [Toggle(_PARALLAXMAP)]_ParallaxMap("Enable Parallax FX", Float) = 0 + [Toggle(_)]_ParallaxHeightMapEnabled("Enable Parallax Height", Float) = 0 + [Toggle(_)]_ParallaxInternalMapEnabled("Enable Parallax Internal", Float) = 0 + [HideInInspector] m_start_parallaxHeightmap("Heightmap", Float) = 0 + _ParallaxHeightMap("Height Map", 2D) = "black" { } + _ParallaxStrength("Parallax Strength", Range(0, 1)) = 0 + [HideInInspector] m_end_parallaxHeightmap("Heightmap", Float) = 0 + [HideInInspector] m_start_parallaxInternal("Internal", Float) = 0 + [Enum(Basic, 0, HeightMap, 1)] _ParallaxInternalHeightmapMode("Parallax Mode", Int) = 0 + [Toggle(_)]_ParallaxInternalHeightFromAlpha("HeightFromAlpha", Float) = 0 + _ParallaxInternalMap("Internal Map", 2D) = "black" { } + _ParallaxInternalIterations("Parallax Internal Iterations", Range(1, 50)) = 1 + _ParallaxInternalMinDepth("Min Depth", Float) = 0 + _ParallaxInternalMaxDepth("Max Depth", Float) = 1 + _ParallaxInternalMinFade("Min Depth Brightness", Range(0, 5)) = 0 + _ParallaxInternalMaxFade("Max Depth Brightness", Range(0, 5)) = 1 + _ParallaxInternalMinColor("Min Depth Color", Color) = (1, 1, 1, 1) + _ParallaxInternalMaxColor("Max Depth Color", Color) = (1, 1, 1, 1) + [Vector2]_ParallaxInternalPanSpeed("Pan Speed", Vector) = (0, 0, 0, 0) + [Vector2]_ParallaxInternalPanDepthSpeed("Per Level Speed Multiplier", Vector) = (0, 0, 0, 0) + [HideInInspector] m_end_parallaxInternal("Internal", Float) = 0 + [HideInInspector] m_start_parallaxAdvanced("Advanced", Float) = 0 + _ParallaxBias("Parallax Bias (0.42)", Float) = 0.42 + [HideInInspector] m_end_parallaxAdvanced("Advanced", Float) = 0 + + [HideInInspector] m_renderingOptions("Rendering Options", Float) = 0 + [Enum(UnityEngine.Rendering.CullMode)] _Cull("Cull", Float) = 2 + [Enum(UnityEngine.Rendering.CompareFunction)] _ZTest("ZTest", Float) = 4 + [Enum(UnityEngine.Rendering.BlendMode)] _SourceBlend("Source Blend", Float) = 5 + [Enum(UnityEngine.Rendering.BlendMode)] _DestinationBlend("Destination Blend", Float) = 10 + [Enum(Off, 0, On, 1)] _ZWrite("ZWrite", Int) = 1 + _ZBias("ZBias", Float) = 0.0 + [Toggle(_)]_IgnoreFog("Ignore Fog", Float) = 0 + //[HideInInspector] Instancing ("Instancing", Float) = 0 //add this property for instancing variants settings to be shown + + [HideInInspector] m_start_StencilPassOptions("Stencil", Float) = 0 + [IntRange] _StencilRef("Stencil Reference Value", Range(0, 255)) = 0 + //[IntRange] _StencilReadMaskRef ("Stencil ReadMask Value", Range(0, 255)) = 0 + //[IntRange] _StencilWriteMaskRef ("Stencil WriteMask Value", Range(0, 255)) = 0 + [Enum(UnityEngine.Rendering.StencilOp)] _StencilPassOp("Stencil Pass Op", Float) = 0 + [Enum(UnityEngine.Rendering.StencilOp)] _StencilFailOp("Stencil Fail Op", Float) = 0 + [Enum(UnityEngine.Rendering.StencilOp)] _StencilZFailOp("Stencil ZFail Op", Float) = 0 + [Enum(UnityEngine.Rendering.CompareFunction)] _StencilCompareFunction("Stencil Compare Function", Float) = 8 + [HideInInspector] m_end_StencilPassOptions("Stencil", Float) = 0 + + [HideInInspector] m_start_debugOptions("Debug", Float) = 0 + [Toggle(_COLOROVERLAY_ON)]_DebugDisplayDebug("Display Debug Info", Float) = 0 + [Enum(Off, 0, Vertex Normal, 1, Pixel Normal, 2, Tangent, 3, Binormal, 4)] _DebugMeshData("Mesh Data", Int) = 0 + [Enum(Off, 0, Attenuation, 1, Direct Lighting, 2, Indirect Lighting, 3, light Map, 4, Ramped Light Map, 5, Final Lighting, 6)] _DebugLightingData("Lighting Data", Int) = 0 + [Enum(Off, 0, finalSpecular, 1, tangentDirectionMap, 2, shiftTexture, 3)] _DebugSpecularData("Specular Data", Int) = 0 + [Enum(Off, 0, View Dir, 1, Tangent View Dir, 2, Forward Dir, 3, WorldPos, 4, View Dot Normal, 5)] _DebugCameraData("Camera Data", Int) = 0 + [HideInInspector] m_end_debugOptions("Debug", Float) = 0 + } + + CustomEditor "Thry.ShaderEditor" + SubShader{ + Tags { "RenderType" = "Transparent" "Queue"="Transparent" } + LOD 200 + + CGPROGRAM + // Physically based Standard lighting model, and enable shadows on all light types + #pragma surface surf Standard fullforwardshadows + + // Use shader model 3.0 target, to get nicer looking lighting + #pragma target 3.0 + + sampler2D _MainTex; + + struct Input { + float2 uv_MainTex; + }; + + half _Glossiness; + half _Metallic; + fixed4 _Color; + + // Add instancing support for this shader. You need to check 'Enable Instancing' on materials that use the shader. + // See https://docs.unity3d.com/Manual/GPUInstancing.html for more information about instancing. + // #pragma instancing_options assumeuniformscaling + UNITY_INSTANCING_BUFFER_START(Props) + // put more per-instance properties here + UNITY_INSTANCING_BUFFER_END(Props) + + void surf(Input IN, inout SurfaceOutputStandard o) { + // Albedo comes from a texture tinted by color + fixed4 c = tex2D(_MainTex, IN.uv_MainTex) * _Color; + o.Albedo = c.rgb; + // Metallic and smoothness come from slider variables + o.Metallic = _Metallic; + o.Smoothness = _Glossiness; + o.Alpha = c.a; + } + ENDCG + } + FallBack "Diffuse" +} diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Examples/Example2.shader.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Examples/Example2.shader.meta new file mode 100644 index 00000000..148b50ff --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Examples/Example2.shader.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0b436e0db169bde429124bf491f28cef +ShaderImporter: + externalObjects: {} + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Examples/ThryLabelExample.txt b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Examples/ThryLabelExample.txt new file mode 100644 index 00000000..5793b632 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Examples/ThryLabelExample.txt @@ -0,0 +1,6 @@ +m_start_Lighting:=Light and Shadow--{reference_property:_EnableLighting,button_right:{text:Tutorial,action:{type:URL,data:https://youtu.be/2B-EJutVjs8},hover:YouTube}} +_EnableLighting:=Enable Lighting--{hide_in_inspector:true} +g_start_l:=--{condition_enable:{type:PROPERTY_BOOL,data:_EnableLighting}} + +footer_website:={texture:{name:thry_settings_icon,height:32},action:{type:URL,data:https://www.ShaderEditor.thryrallo.de},hover:Website} +footer_github:={text:Github,action:{type:URL,data:https://github.com/thryrallo/ShaderEditor}} diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Examples/ThryLabelExample.txt.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Examples/ThryLabelExample.txt.meta new file mode 100644 index 00000000..b4b77ff4 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Examples/ThryLabelExample.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: dfe226dc787c45b4780d5cc939390f76 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Examples/ThryPresetsExample.txt b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Examples/ThryPresetsExample.txt new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Examples/ThryPresetsExample.txt diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Examples/ThryPresetsExample.txt.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Examples/ThryPresetsExample.txt.meta new file mode 100644 index 00000000..c77c8039 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Examples/ThryPresetsExample.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: cf52f15671610fa4a80b4ee95174e3cc +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Examples/thry_locale_example.csv b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Examples/thry_locale_example.csv new file mode 100644 index 00000000..77c5cb25 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Examples/thry_locale_example.csv @@ -0,0 +1,3 @@ +,English,German +MainTex,Main Texture,Haupt Texture +locale,Language,Sprache
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Examples/thry_locale_example.csv.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Examples/thry_locale_example.csv.meta new file mode 100644 index 00000000..4ac82940 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Examples/thry_locale_example.csv.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 901c2a6413418de44ab1678f66fa3826 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/LICENSE.md b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/LICENSE.md new file mode 100644 index 00000000..e72bfdda --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/LICENSE.md @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <https://www.gnu.org/licenses/>. + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + <program> Copyright (C) <year> <name of author> + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +<https://www.gnu.org/licenses/>. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +<https://www.gnu.org/licenses/why-not-lgpl.html>.
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/LICENSE.md.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/LICENSE.md.meta new file mode 100644 index 00000000..b5a2eee5 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/LICENSE.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: eae8b588a2e3ab84e834f00087295749 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources.meta new file mode 100644 index 00000000..bb48709e --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 728d3b48899dd344b87cae0291102c6d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_animated_icon.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_animated_icon.png Binary files differnew file mode 100644 index 00000000..b5faae2f --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_animated_icon.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_animated_icon.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_animated_icon.png.meta new file mode 100644 index 00000000..d23c9c01 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_animated_icon.png.meta @@ -0,0 +1,110 @@ +fileFormatVersion: 2 +guid: 5d5070d92080a424695a221a1bfe96a0 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_arrow.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_arrow.png Binary files differnew file mode 100644 index 00000000..461db081 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_arrow.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_arrow.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_arrow.png.meta new file mode 100644 index 00000000..d1e74f53 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_arrow.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: db7186aa7d058ea48884c28a5543afd4 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_dark_rect.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_dark_rect.png Binary files differnew file mode 100644 index 00000000..28b314b7 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_dark_rect.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_dark_rect.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_dark_rect.png.meta new file mode 100644 index 00000000..e6d7153a --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_dark_rect.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: cc6bb2a1394d82948a6c734598b1efa0 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_link_icon_active.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_link_icon_active.png Binary files differnew file mode 100644 index 00000000..40c79714 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_link_icon_active.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_link_icon_active.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_link_icon_active.png.meta new file mode 100644 index 00000000..ce2f0494 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_link_icon_active.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 9623e09f716407743aa3eed4d4c1122a +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_link_icon_inactive.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_link_icon_inactive.png Binary files differnew file mode 100644 index 00000000..3da4783a --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_link_icon_inactive.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_link_icon_inactive.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_link_icon_inactive.png.meta new file mode 100644 index 00000000..f8a5c8bc --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_link_icon_inactive.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 8ff5341a1d25fba4b952596fc0899701 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_magnifying_glass_icon.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_magnifying_glass_icon.png Binary files differnew file mode 100644 index 00000000..d24f0328 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_magnifying_glass_icon.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_magnifying_glass_icon.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_magnifying_glass_icon.png.meta new file mode 100644 index 00000000..b81e4413 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_magnifying_glass_icon.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 22364bdf4781da6458a421602e204912 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_presets_icon.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_presets_icon.png Binary files differnew file mode 100644 index 00000000..e43d7357 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_presets_icon.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_presets_icon.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_presets_icon.png.meta new file mode 100644 index 00000000..127e7f18 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_presets_icon.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: bfe72896029084143b99b3ae9f31f683 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_settings_dropdown.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_settings_dropdown.png Binary files differnew file mode 100644 index 00000000..8a51c385 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_settings_dropdown.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_settings_dropdown.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_settings_dropdown.png.meta new file mode 100644 index 00000000..45025187 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_settings_dropdown.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: ac423ab0eabbdd445a050b2057d909fe +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_settings_icon.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_settings_icon.png Binary files differnew file mode 100644 index 00000000..572ceead --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_settings_icon.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_settings_icon.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_settings_icon.png.meta new file mode 100644 index 00000000..2429d971 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_settings_icon.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: ca6ab0375b0d6884e860c28f87c8fbf2 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_visiblity_icon.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_visiblity_icon.png Binary files differnew file mode 100644 index 00000000..bb836e26 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_visiblity_icon.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_visiblity_icon.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_visiblity_icon.png.meta new file mode 100644 index 00000000..ba6b9877 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_visiblity_icon.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: d8b879c5a5cb2cb4d9f3d0436f4c1111 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_white_rect.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_white_rect.png Binary files differnew file mode 100644 index 00000000..95323f1f --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_white_rect.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_white_rect.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_white_rect.png.meta new file mode 100644 index 00000000..8535e2fc --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/Resources/thry_white_rect.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 2329f8696fd09a743a5baf2a5f4986af +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/docs.html b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/docs.html new file mode 100644 index 00000000..38ec893d --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/docs.html @@ -0,0 +1,639 @@ +<html> +<head> + <title>Thry Editor Documentation</title> + <style> + body { + font-family: Verdana; + } + + table, th, td { + border: 1px solid black; + border-collapse: collapse; + } + + th, tr, td { + padding: 7px; + } + + h2 { + text-decoration: underline; + } + div { + border: 1px solid black; + border-collapse: collapse; + padding: 7px; + } + .noborder{ + border: 0px solid black; + } + </style> + <head> + <body> + <h2>Editor Properties</h2> + <table> + <tr> + <th>Name</th> + <th>Effect</th> + <th>Required</th> + <th>Example</th> + </tr> + <tr> + <td>shader_master_label</td> + <td>Display name customizes the gui header</td> + <td>No</td> + <td>[HideInInspector] shader_master_label ("<color =#ff0000ff>❤</color> <color =#000000ff>Poiyomi Toon Shader V4.0</color> <color =#ff0000ff>❤</color>", Float) = 0</td> + </tr> + <tr> + <td>shader_properties_label_file</td> + <td>If specified the editor tries to load property's display names out of this file</td> + <td>No</td> + <td>[HideInInspector] shader_properties_label_file ("poiToonLabels", Float) = 0</td> + </tr> + <tr> + <td>shader_properties_locale</td> + <td>Is used to specify a locale file and locale selector. Specify "locale::<string>" anywhere to load a string from the locale file.</td> + <td>No</td> + <td>[HideInInspector] shader_properties_locale ("locale::locale--{file_name:locale_file_name}", Float) = 0</td> + </tr> + <tr> + <td>shader_on_swap_to</td> + <td>Is used to specify actions to be executed when the material is switched to this shader.</td> + <td>No</td> + <td>[HideInInspector] shader_on_swap_to ("--{actions:[{type:SET_PROPERTY,data:_ZWrite=1},{type:SET_PROPERTY,data:_CullBack=0}]}", Float) = 0</td> + </tr> + <tr> + <td>footer_<string></td> + <td>Adds a footer button to the bottom of the ui. Multiple footers can be added to one shader. The displayname has to be a ButtonData object</td> + <td>No</td> + <td> + [HideInInspector] footer_github ("{text:Github,action:{type:URL,data:https://github.com/thryrallo/thryeditor}}", Float) = 0<br /> + [HideInInspector] footer_discord ("{texture:{name:discord-icon,height:40},action:{type:URL,data:https://discord.gg}}", Float) = 0 + </td> + </tr> + <tr class="noborder"><td class="noborder"></td></tr> + <tr> + <td>DSGI</td> + <td>add this property for double sided illumination settings to be shown</td> + <td>No</td> + <td>[HideInInspector] DSGI ("", Float) = 0</td> + </tr> + <tr> + <td>Instancing</td> + <td>add this property for instancing variants settings to be shown</td> + <td>No</td> + <td>[HideInInspector] Instancing ("", Float) = 0</td> + </tr> + <tr> + <td>LightmapFlags</td> + <td>add this property for lightmap flags settings to be shown</td> + <td>No</td> + <td>[HideInInspector] LightmapFlags ("", Float) = 0</td> + </tr> + <tr class="noborder"><td class="noborder"></td></tr> + <tr> + <td>m_<string></td> + <td>starts a dropdown menu. all properties underneath, till the next menu is specified, are in this menu</td> + <td>No</td> + <td>[HideInInspector] m_mainOptions ("Main", Float) = 0</td> + </tr> + <tr> + <td>m_start_<string></td> + <td>starts a dropdown menu. all properties underneath, till this menu's end is specified, are in this menu. use if you want to layer menus.</td> + <td>No</td> + <td>[HideInInspector] m_start_Alpha ("Alpha Options", Float) = 0</td> + </tr> + <tr> + <td>m_end_<string></td> + <td>ends a dropdown menu that has been started with m_start_<string></td> + <td>No</td> + <td>[HideInInspector] m_end_Alpha ("", Float) = 0</td> + </tr> + <tr> + <td>g_start_<string></td> + <td>starts a group. properties are grouped together. not visible to the user. can be used to hide multiple properties with one condition specification.</td> + <td>No</td> + <td>[HideInInspector] g_start_blending ("--{condition_show:{type:PROPERTY_BOOL,data:_DisplayBlending}}", Float) = 0</td> + </tr> + <tr> + <td>g_end_<string></td> + <td>ends a group that has been started with g_start_<string></td> + <td>No</td> + <td>[HideInInspector] g_start_blending ("", Float) = 0</td> + </tr> + </table> + <h3>Suggestions:</h3> + <table> + <tr> + <th>Name</th> + <th>Description</th> + <th>Example</th> + </tr> + <tr> + <td>Variant Selector</td> + <td>Use a commbination of Enum and on_value_actions to create a varian selector</td> + <td> + [Enum(Cutout,0,Transparent,1)]variant_selector("Variant--{on_value_actions:[{value:0,actions:[{type:SET_PROPERTY,data:_ZWrite=1},{type:SET_SHADER,data:Thry/Example 1}]},{value:1,actions:[{type:SET_PROPERTY,data:_ZWrite=0},{type:SET_SHADER,data:Thry/Example 2}]}]}",Float) = 0 + </td> + </tr> + </table> + <h2>Drawers</h2> + <table> + <tr> + <th>Drawer Name</th> + <th>Effect</th> + <th>Extra Property Options</th> + <th>Example</th> + </tr> + <tr> + <td>[SmallTexture]</td> + <td>Creates a texture field that will always be small</td> + <td></td> + <td>[SmallTexture]_MainTex("Main Texture",2D)= "white" { }</td> + </tr> + <tr> + <td>[BigTexture]</td> + <td>Creates a texture field that will always be big</td> + <td></td> + <td>[BigTexture]_MainTex("Main Texture",2D)= "white" { }</td> + </tr> + <tr> + <td>[StylizedBigTexture]</td> + <td>Creates a texture field that will always be big but stylized differently</td> + <td></td> + <td>[StylizedBigTexture]_MainTex("Main Texture",2D)= "white" { }</td> + </tr> + <tr> + <td>[Gradient]</td> + <td> + Creates a texture field with a gradient field next to it. + <br /> Gradient is automatically converted to texture. + </td> + <td></td> + <td>[Gradient]_ColorRamp("Color Ramp",2D)= "white" { }</td> + </tr> + <tr> + <td>[MultiSlider]</td> + <td> + Creates a slider for a range. + <br />Is used with a vector property. + <br />x and y are the slider values. z is slider minimum. w is slider maximum. + </td> + <td></td> + <td>[MultiSlider]_Slider("Multi Slider",Vector)= (0.1,0.9,0,1)</td> + </tr> + <tr> + <td>[TextureArray]</td> + <td>Creates field that accepts Texture Arrays</td> + <td></td> + <td>[TextureArray]_FlipbookTexArray ("Texture Array", 2DArray) = "" {}</td> + </tr> + <tr> + <td>[Vector2]</td> + <td>Creates a Vector 2 field</td> + <td></td> + <td>[Vector2]_Vector("Vector with 2 values",Vector)= (0,0,0,0)</td> + </tr> + <tr> + <td>[Vector3]</td> + <td>Creates Vector 3 field</td> + <td></td> + <td>[Vector3]_Vector("Vector with 3 values",Vector)= (0,0,0,0)</td> + </tr> + <tr> + <td>[Curve]</td> + <td>Creates a curve field</td> + <td></td> + <td>[Curve]_ColorCurve("Curve",2D)= "white" { }</td> + </tr> + <tr> + <td>[Helpbox]</td> + <td>Creates an info box</td> + <td></td> + <td>[Helpbox]_MainHelpbox("This is the text inside the info box",Float)= 0</td> + </tr> + </table> + + <h2>Supported Default Unity Flags</h2> + <table> + <tr> + <th>Name</th> + <th>Effect</th> + </tr> + <tr> + <td>[NoScaleOffset]</td> + <td></td> + </tr> + <tr> + <td>[Normal]</td> + <td></td> + </tr> + <tr> + <td>[Space]</td> + <td></td> + </tr> + <tr> + <td>[Space(Int)]</td> + <td></td> + </tr> + <tr> + <td>[Toggle()]</td> + <td></td> + </tr> + </table> + + <h2>Property Options</h2> + <b> + None of the poperty options are required.<br /> + Options are defined in the display name of a property inside curly brackets and after "--":<br /> + In practice: + </b><br /> _Tex("Texture--{Put all your options in here}",2D) = "white" { }<br /> + _Tex("Texture--{offet:2,hover:read this on hover,altClick{type:URL,data:http://thryrallo.de}}",2D) = "white" { }<br /> + <font color="red"> + Use json syntax instead to future proof your properties!<br /> + You can use '' instead of " inside property display names + </font><br /> + Example:<br /> + {''text'':''Youtube'',''action'':{''type'':''URL'',''data'':''https://www.youtube.com/''} + <table> + <tr> + <th>Name</th> + <th>Value Type</th> + <th>Effect</th> + <th>Drawer Specific</th> + <th>Example</th> + </tr> + <tr> + <td>offset</td> + <td>int</td> + <td>adds an extra x-offset to the property</td> + <td>No</td> + <td>_Tex("Texture--{offset:1}",2D) = "white" { }</td> + </tr> + <tr> + <td>tooltip</td> + <td>string</td> + <td>text that is shown when hovering above property</td> + <td>No</td> + <td>_Tex("Texture--{tooltip:use this texture for albedo}",2D) = "white" { }</td> + </tr> + <tr> + <td>altClick</td> + <td>Action</td> + <td>performs an action when holding alt down and clicking on property</td> + <td>No</td> + <td>_Tex("Texture--{altClick:{type:URL,data:http://thryrallo.de}}",2D) = "white" { }</td> + </tr> + <tr> + <td>condition_show</td> + <td>Condition</td> + <td>let's you define a condition that has to be true for this property to be shown in the ui</td> + <td>No</td> + <td>_Tex("Texture--{condition_show:{type:PROPERTY_BOOL,data:_ForceOpaque==1}}",2D) = "white" { }</td> + </tr> + <tr> + <td>condition_enable</td> + <td>Condition</td> + <td>let's you define a condition that has to be true for this property to be enabled</td> + <td>No</td> + <td>_Tex("Texture--{condition_enable:{type:PROPERTY_BOOL,data:_ForceOpaque==1}}",2D) = "white" { }</td> + </tr> + <tr> + <td>on_value_actions</td> + <td>PropertyValueAction[]</td> + <td>let's you define a actions that happen if this property is set to a specfiic value.</td> + <td>No</td> + <td> + [Enum(Cutout,0,Transparent,1)]variant_selector("Variant--{on_value_actions:[{value:0,actions:[{type:SET_PROPERTY,data:_ZWrite=1},{type:SET_SHADER,data:Thry/Example 1}]},{value:1,actions:[{type:SET_PROPERTY,data:_ZWrite=0},{type:SET_SHADER,data:Thry/Example 2}]}]}",Float) = 0 + </td> + </tr> + <tr> + <td>button_right</td> + <td>Button</td> + <td>let's you define a button that is shown on the side of a dropdown header</td> + <td>Yes, only headers</td> + <td>_Tex("Texture--{button_right:{text:Test Button,action:{type:URL,data:https://github.com/Thryrallo/thryeditor},hover:hover text,condition_show:{type:PROPERTY_BOOL,data:_ShowButtonOnMenus}}}",2D) = "white" { }</td> + </tr> + <tr> + <td>texture</td> + <td>TextureData</td> + <td>Defines the texture settings for created textures.</td> + <td>[Gradient],[Curve]</td> + <td>[Gradient]_ColorRamp ("Gradient --{texture:{width:256,height:16,filterMode:Point,wrapMode:Clamp}}", 2D) = "white" { }<br />[Curve]_MainTex ("Texture --{image:{width:256,height:16,channel:b}}", 2D) = "white" { }</td> + </tr> + <tr> + <td>force_texture_options</td> + <td>bool</td> + <td>Default: false. Set this to true to hide the texture options and force your defined texture settings.</td> + <td>[Gradient]</td> + <td>[Gradient]_ColorRamp ("Gradient --{texture:{width:256,height:16,filterMode:Point,wrapMode:Clamp},force_texture_options:true}", 2D) = "white" { }</td> + </tr> + <tr> + <td>hide_in_inspector</td> + <td>bool</td> + <td>Default: false. Set this to true to hide the property in ThryEditor, but not the unity default inspector. Usefull if you already display the options in a texture dropdown or Foldout Header.</td> + <td>No</td> + <td>_Toogle ("Gradient Lighting--{texture:{hide_in_inspector:true}}", Int) = 0</td> + </tr> + <tr> + <td>reference_properties</td> + <td>string[]</td> + <td>Default: null. specified properties will be drawn in texture foldout menu</td> + <td>Texture</td> + <td>_Texture("Panning Texture --{reference_properties:[_PanSpeed,_PanUV]}", 2D) = "white" { }</td> + </tr> + <tr> + <td>reference_property</td> + <td>string</td> + <td>Specifies a property by it's name. </br> + If defined on a menu header, it will create a toggle linked with the referenced property. </br> + If defined on a TextureArray it will fill this float property with the texture array depth (frame count) after creating an array from a gif or multiple images.</br> + If defined on a texture property it will draw this property next to the texture property (for example for a color field)</td> + <td>[TextureArray],Texture,MenuHeader</td> + <td>Light and Shadow--{reference_property:_EnableLighting}<br />[TextureArray]_Texture("Animated Texture --{reference_property:_FrameCount}", 2DArray) = { }</td> + </tr> + <tr> + <td>is_hideable</td> + <td>bool</td> + <td>If set to true, property will be able to be hidden using the little eye icon in the top right of the inspector.</td> + <td>MenuHeaders</td> + <td>[HideInInspector] m_vertex("Vertex Options--{button_right:{text:Tutorial,action:{type:URL,data:https://www.youtube.com/watch?v=FO-bxI5znI0},hover:YouTube},is_hideable:true}", Float) = 0</td> + </tr> + <tr> + <td>is_hidden_default</td> + <td>bool</td> + <td>If set to true and property is hideable, the property will be hidden by default.</td> + <td>MenuHeaders</td> + <td>[HideInInspector] m_vertex("Vertex Options--{button_right:{text:Tutorial,action:{type:URL,data:https://www.youtube.com/watch?v=FO-bxI5znI0},hover:YouTube},is_hideable:true,is_hidden_default:true}", Float) = 0</td> + </tr> + </table> + + <h2>Data Structures</h2> + <div> + <h3>Button</h3> + Variables: + <table> + <tr> + <th>Name</th> + <th>Value Type</th> + <th>required</th> + <th>default</th> + </tr> + <tr> + <td>text</td> + <td>string</td> + <td>text or texture</td> + <td></td> + </tr> + <tr> + <td>texture</td> + <td>TextureData</td> + <td>text or texture</td> + <td></td> + </tr> + <tr> + <td>hover</td> + <td>string</td> + <td>no</td> + <td></td> + </tr> + <tr> + <td>action</td> + <td>Action</td> + <td>kinda</td> + <td></td> + </tr> + <tr> + <td>condition_show</td> + <td>Condition</td> + <td>no</td> + <td></td> + </tr> + </table> + </div> + <div> + <h3>PropertyValueAction</h3> + Variables: + <table> + <tr> + <th>Name</th> + <th>Value Type</th> + <th>required</th> + </tr> + <tr> + <td>value</td> + <td>string</td> + <td>Yes</td> + </tr> + <tr> + <td>actions</td> + <td>Action[]</td> + <td>Yes</td> + </tr> + </table> + <h3>Action</h3> + Variables: + <table> + <tr> + <th>Name</th> + <th>Value Type</th> + <th>required</th> + </tr> + <tr> + <td>type</td> + <td>ActionType</td> + <td>Yes</td> + </tr> + <tr> + <td>data</td> + <td>string</td> + <td>Yes</td> + </tr> + </table> + <h3>Enum: ActionType</h3> + States: + <table> + <tr> + <th>Value</th> + <th>Effect</th> + <td>Example</td> + </tr> + <tr> + <td>URL</td> + <td>Opens the url in browser</td> + <td>{type:URL,data:https://github.com/Thryrallo/thryeditor}</td> + </tr> + <tr> + <td>SET_PROPERTY</td> + <td>Sets the value of a specified property.</td> + <td>{type:SET_PROPERTY,data:_ZWrite=1}</td> + </tr> + <tr> + <td>SET_SHADER</td> + <td>Changes the shader of the material.</td> + <td>{type:SET_SHADER,data:Thry/Example 1}</td> + </tr> + </table> + </div> + <div> + <h3>TextureData</h3> + Variables: + <table> + <tr> + <th>Name</th> + <th>Value Type</th> + <th>required</th> + <th>default</th> + <th>Explanation</th> + </tr> + <tr> + <td>name</td> + <td>string</td> + <td>no</td> + <td></td> + <td>File name of image</td> + </tr> + <tr> + <td>width</td> + <td>int</td> + <td>no</td> + <td>128</td> + <td></td> + </tr> + <tr> + <td>height</td> + <td>int</td> + <td>no</td> + <td>128</td> + <td></td> + </tr> + <tr> + <td>channel</td> + <td>char</td> + <td>no</td> + <td>r</td> + </tr> + <tr> + <td>ansioLevel</td> + <td>int</td> + <td>no</td> + <td>1</td> + <td></td> + </tr> + <tr> + <td>filterMode</td> + <td>Enum(FilterMode)</td> + <td>no</td> + <td>Bilinear</td> + <td>EnumValues: Bilinear,Point,Trilinear</td> + </tr> + <tr> + <td>wrapMode</td> + <td>Enum(TextureWrapMode)</td> + <td>no</td> + <td>Repeat</td> + <td>EnumValues: Clamp,Mirror,MirrorOnce,Repeat</td> + </tr> + </table> + </div> + <div> + <h3>Condition</h3> + Variables: + <table> + <tr> + <th>Name</th> + <th>Value Type</th> + <th>required</th> + <th>default</th> + </tr> + <tr> + <td>type</td> + <td>ConditionType</td> + <td>Yes</td> + <td>None</td> + </tr> + <tr> + <td>data</td> + <td>string</td> + <td>If type!=AND && type!=OR yes</td> + <td></td> + </tr> + <tr> + <td>condition1</td> + <td>Condition</td> + <td>if type==AND || type==OR yes</td> + <td>null</td> + </tr> + <tr> + <td>condition2</td> + <td>Condition</td> + <td>if type==AND || type==OR yes</td> + <td>null</td> + </tr> + </table> + Data will have different meanings depending on type<br /> + <br /> + <b>Data</b><br /> + Useable Comparators: ==,!=,>,< + <table> + <tr> + <th>type</th> + <th>data value</th> + <th>example</th> + </tr> + <tr> + <td>PROPERTY_BOOL</td> + <td><PropertyName>(<Comparator><value>)?</td> + <td>{type:PROPERTY_BOOL,data:_ForceOpaque}<br />or {type:PROPERTY_BOOL,data:_ForceOpaque==0}</td> + </tr> + <tr> + <td>EDITOR_VERSION</td> + <td><Comparator><value></td> + <td>{type:EDITOR_VERSION,data:>0.17} #checks if installed editor version > 0.17</td> + </tr> + <tr> + <td>VRC_SDK_VERSION</td> + <td><Comparator><value></td> + <td>{type:VRC_SDK_VERSION,data:>0.17} #checks if installed vrc sdk version > 0.17</td> + </tr> + <tr> + <td>TEXTURE_SET</td> + <td><PropertyName></td> + <td>{type:TEXTURE_SET,data:_ToonRamp} #checks if texture _ToonRamp is set</td> + </tr> + <tr> + <td>DROPDOWN</td> + <td><PropertyName><Comparator><value></td> + <td>{type:DROPDOWN,data:_LightingType==2} #checks if property _LightingType has enum 2 selected</td> + </tr> + </table> + <h3>Enum: ConditionType</h3> + States: + <table> + <tr> + <th>Value</th> + <th>Effect</th> + </tr> + <tr> + <td>AND</td> + <td>Combines two conditions with &&</td> + </tr> + <tr> + <td>OR</td> + <td>Combines two conditions with ||</td> + </tr> + <tr> + <td>PROPERTY_BOOL</td> + <td>checks agains the float value of a property</td> + </tr> + <tr> + <td>EDITOR_VERSION</td> + <td>checks agains the version number of ThryEditor</td> + </tr> + <tr> + <td>VRC_SDK_VERSION</td> + <td>checks agains the version number of the VRC SDK</td> + </tr> + </table> + </div> + </body> +</html> diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/docs.html.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/docs.html.meta new file mode 100644 index 00000000..5428cb04 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/docs.html.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 11eeab9ab5997bf419f83bfb9ffa1ba7 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/thry_editor_locale.csv b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/thry_editor_locale.csv new file mode 100644 index 00000000..994073d9 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/thry_editor_locale.csv @@ -0,0 +1,77 @@ +,English,German,Japanese,Spanish,Pirate,UwU,Binary,Chinese +translator,,Thryrallo,Ponponsan,Spanish Hub,,,,INYO +translation,Translation,Übersetzung,翻訳,Traducción,,,,翻译 +,,,,,,,, +locale,Language,Sprache,言語,Language,Language,Wanguage,01001100 01100001 01101110 01100111 01110101 01100001 01100111 01100101,语言 +locale_tooltip,Select Language for ThryEditor,Wähle die Sprache für ThryEditor,ThryEditorの言語を選択してください,Select Language for ThryEditor,Select Language for ThryEditor,Sewect wanguage fow thwyeditow,01010011 01100101 01101100 01100101 01100011 01110100 00100000 01001100 01100001 01101110 01100111 01110101 01100001 01100111 01100101 00100000 01100110 01101111 01110010 00100000 01010100 01101000 01110010 01111001 01000101 01100100 01101001 01110100 01101111 01110010,选择Thry编辑器窗口的语言 +,,,,,,,, +first_install_message,Hello. You just installed a shader using the Thry Shader Editor for it's UI. This is the editor's settings window. It offers you some customizability. You can close this window and open it back up over your menu if you want to change something.,Thry Shader Editor wurde installiert. Dies ist das Fenster für die Editor Einstellungen.,正常にThry Shader Editorはインストールされました。こちらがエディター設定画面になります。,Se ha actualizado exitosamente Thry Shader Editor. Esta es la ventana de configuración del editor.,Thry shader editor successfully installed. This here be the editor settings window.,Thwy shadew editow successfuwwy instawwed. Thiws iws the editow settings window.,01010100 01101000 01110010 01111001 00100000 01010011 01101000 01100001 01100100 01100101 01110010 00100000 01000101 01100100 01101001 01110100 01101111 01110010 00100000 01110011 01110101 01100011 01100011 01100101 01110011 01110011 01100110 01110101 01101100 01101100 01111001 00100000 01101001 01101110 01110011 01110100 01100001 01101100 01101100 01100101 01100100 00101110 00100000 01010100 01101000 01101001 01110011 00100000 01101001 01110011 00100000 01110100 01101000 01100101 00100000 01100101 01100100 01101001 01110100 01101111 01110010 00100000 01110011 01100101 01110100 01110100 01101001 01101110 01100111 01110011 00100000 01110111 01101001 01101110 01100100 01101111 01110111 00101110,你好。你剛剛完成安装了一个使用Thry Shader编辑器UI的着色器。這是編輯器的設置窗口。它為您提供了一些自定义能力。如果您要更改某些內容,可以關閉此窗口並在菜單上重新打開此窗口。 +update_message,Thry editor has been updated,Thry editor wurde aktualisiert,Thry editorは新しいバージョンに更新されました,Thry editor ha sido actualizado.,Thry editor has been updated,Thwy editow has bewn updated,01010100 01101000 01110010 01111001 00100000 01100101 01100100 01101001 01110100 01101111 01110010 00100000 01101000 01100001 01110011 00100000 01100010 01100101 01100101 01101110 00100000 01110101 01110000 01100100 01100001 01110100 01100101 01100100,Thry编辑器已更新完成 +downgrade_message,Warning: The Version of Thry Editor has declined,Warning: Die Version von Thry Editor hat sich verringert,注意!: Thry Editorが下位のバージョンに変更されました,Advertencia: la versión de Thry Editor ha esta desactualizada.,Warning: the version o' thry editor 'as declined,Wawning: the vewsion of thwy editow has decwined,01010111 01100001 01110010 01101110 01101001 01101110 01100111 00111010 00100000 01010100 01101000 01100101 00100000 01010110 01100101 01110010 01110011 01101001 01101111 01101110 00100000 01101111 01100110 00100000 01010100 01101000 01110010 01111001 00100000 01000101 01100100 01101001 01110100 01101111 01110010 00100000 01101000 01100001 01110011 00100000 01100100 01100101 01100011 01101100 01101001 01101110 01100101 01100100,警告:Thry编辑器的版本已下降 +,,,,,,,, +header_editor,Editor,Editor,エディター,Editor,,Editor,01000101 01100100 01101001 01110100 01101111 01110010,编辑器 +header_extras,Extras,Extras,その他,Extras,,Extras,01000101 01111000 01110100 01110010 01100001 01110011,额外选项 +header_user_data_collection,User Data Collection,Benutzer Daten Kollektion,ユーザーデータ収集,Coleccion de datos de usuario,,User Data Collection,01010101 01110011 01100101 01110010 00100000 01000100 01100001 01110100 01100001 00100000 01000011 01101111 01101100 01101100 01100101 01100011 01110100 01101001 01101111 01101110,用户资料收集 +header_modules,Install add-on Modules,Installiere add-on Module,追加モジュール,Modulos extra,Install add-on Modules,Install add-on Modules,01000101 01111000 01110100 01110010 01100001 00100000 01001101 01101111 01100100 01110101 01101100 01100101 01110011,安装额外功能模组 +header_thrird_party,Third Party Tools,,,,,,,第三方工具 +,,,,,,,, +newest,newest,neuste,最新,el más nuevo,,newest,01101110 01100101 01110111 01100101 01110011 01110100,最新 +version,version,version,バージョン,version,,vewsion,01110110 01100101 01110010 01110011 01101001 01101111 01101110,版本 +user,user,Benutzer,ユーザー,Usuario,,usew,01110101 01110011 01100101 01110010,用户 +your_data,Your Data,Ihre Daten,あなたのデータ,Tus datos,,Youw data,01011001 01101111 01110101 01110010 00100000 01000100 01100001 01110100 01100001,用户资料 +requirements,Requirements,Voraussetzungen,必要バージョン,Requisitos,,Wequiwements,01010010 01100101 01110001 01110101 01101001 01110010 01100101 01101101 01100101 01101110 01110100 01110011,要求 +add,Add,Hinzufügen,追加,Añadir,,Add,01000001 01100100 01100100,添加 +delete,Delete,Löschen,削除,Borrar,,Dewete,01000100 01100101 01101100 01100101 01110100 01100101,删除 +save,Save,Speichern,保存,Guardar,,Save,01010011 01100001 01110110 01100101,保存 +,,,,,,,, +default_texture_type,Default Texture Display,Texturen Darstellung,デフォルト表示テクスチャー,Visualización de textura predeterminada,Default Texture Display,Defauwt textuwe dispway,01000100 01100101 01100110 01100001 01110101 01101100 01110100 00100000 01010100 01100101 01111000 01110100 01110101 01110010 01100101 00100000 01000100 01101001 01110011 01110000 01101100 01100001 01111001,默认贴图显示 +default_texture_type_tooltip,Select how your textures should be displayed if the property doesn't force the type,Wähle wie deine Texture Menüs dargestellt werden.,プロパティーに指定されなかった場合にどうテクスチャーが表示されるか指定してください,Seleccione cómo se deben mostrar sus texturas si la propiedad no fuerza el tipo,Select 'ow yer textures should be displayed if the property doesn't force the type,Sewect how youw textuwes shouwd be dispwayed if the pwopewty doesn't fowce the type,01010011 01100101 01101100 01100101 01100011 01110100 00100000 01101000 01101111 01110111 00100000 01111001 01101111 01110101 01110010 00100000 01110100 01100101 01111000 01110100 01110101 01110010 01100101 01110011 00100000 01110011 01101000 01101111 01110101 01101100 01100100 00100000 01100010 01100101 00100000 01100100 01101001 01110011 01110000 01101100 01100001 01111001 01100101 01100100 00100000 01101001 01100110 00100000 01110100 01101000 01100101 00100000 01110000 01110010 01101111 01110000 01100101 01110010 01110100 01111001 00100000 01100100 01101111 01100101 01110011 01101110 00100111 01110100 00100000 01100110 01101111 01110010 01100011 01100101 00100000 01110100 01101000 01100101 00100000 01110100 01111001 01110000 01100101,选择当属性未强制指定类型时的帖图显示类型 +showRenderQueue,Show Render Queue,Zeige Render Queue,Render Queue(描画順)の表示,Mostrar Render Queue,Show Render Queue,Show wendew queue,01010011 01101000 01101111 01110111 00100000 01010010 01100101 01101110 01100100 01100101 01110010 00100000 01010001 01110101 01100101 01110101 01100101,显示渲染队列(Render Queue) +showRenderQueue_tooltip,enable a render queue selector,"erlaubt dem render queue wähler auch mit vrchat zu funktionieren, indem er kopien des orginal shaders mit der neuen render queue erzeugt.",Render Queue(描画順)セレクターの有効化,Habilitar un selector de render queue.,enable a render queue selector,enabwe a wendew queue sewectow,01100101 01101110 01100001 01100010 01101100 01100101 00100000 01100001 00100000 01110010 01100101 01101110 01100100 01100101 01110010 00100000 01110001 01110101 01100101 01110101 01100101 00100000 01110011 01100101 01101100 01100101 01100011 01110100 01101111 01110010,启用渲染队列选择器 +renameAnimatedProps,Rename animated material properties,Benenne animierte Materialeigenschaften um,,,,,,重命名被动画驱动的材质球属性名称 +renameAnimatedProps_tooltip,Ability to automatically rename properties when locking in so you can animate 1 property on 1 mesh without affecting other materials,Die Möglichkeit Eigenschaften umzubenennen wenn die Shader Datei gelocked wird, damit man 1 Eigenschaft animieren kann ohne dass die anderen Materials beeinflusst werden,,,,,,启用在锁定着色器时自动重命名材质球属性名称的功能,因此在一个网格上以动画改变一个材质球的属性时,将只会改变目标材质球的属性,不再影响同一网格上的所有材质球 +renderQueueShaders,Render Queue Shaders,Render Queue Shaders,Render Queue(描画順)シェーダー,Render Queue Shaders,Render Queue Shaders,Wendew queue shadews,01010010 01100101 01101110 01100100 01100101 01110010 00100000 01010001 01110101 01100101 01110101 01100101 00100000 01010011 01101000 01100001 01100100 01100101 01110010 01110011,渲染队列着色器(Render Queue Shader) +renderQueueShaders_tooltip,Have the render queue selector work with vrchat by creating seperate shaders for the different queues,Der render queue,描画順ごとに個別のシェーダーを作りVRChatでもRender Queueセレクターがうまく作動するようにします,Hacer que el selector de render queue funcione con vrchat creando shaders separados para los diferentes valores,ave the render queue selector work with vrchat by creatin' seperate shaders fer the different queues,Have the wendew queue sewectow wowk with vwchat by cweating sepewate shadews fow the diffewent queues,01001000 01100001 01110110 01100101 00100000 01110100 01101000 01100101 00100000 01110010 01100101 01101110 01100100 01100101 01110010 00100000 01110001 01110101 01100101 01110101 01100101 00100000 01110011 01100101 01101100 01100101 01100011 01110100 01101111 01110010 00100000 01110111 01101111 01110010 01101011 00100000 01110111 01101001 01110100 01101000 00100000 01110110 01110010 01100011 01101000 01100001 01110100 00100000 01100010 01111001 00100000 01100011 01110010 01100101 01100001 01110100 01101001 01101110 01100111 00100000 01110011 01100101 01110000 01100101 01110010 01100001 01110100 01100101 00100000 01110011 01101000 01100001 01100100 01100101 01110010 01110011 00100000 01100110 01101111 01110010 00100000 01110100 01101000 01100101 00100000 01100100 01101001 01100110 01100110 01100101 01110010 01100101 01101110 01110100 00100000 01110001 01110101 01100101 01110101 01100101 01110011,渲染队列着色器透过生成不同渲染队列的独立着色器,作用于VRChat +showManualReloadButton,Show Manual Reload Button,,,,,,, +showManualReloadButton_tooltip,Show button to force the ui to reload,,,,,,, +gradient_name,Gradient Save File Names,Gradient Datei Namen,グラデーションの保存名,Nombres de archivo de guardado de gradiente,Gradient Save File Names,Gwadient save fiwe names,01000111 01110010 01100001 01100100 01101001 01100101 01101110 01110100 00100000 01010011 01100001 01110110 01100101 00100000 01000110 01101001 01101100 01100101 00100000 01001110 01100001 01101101 01100101 01110011,渐层梯度贴图保存名称命名 +gradient_name_tooltip,"configures the way gradient texture files are named. use <material>, <hash> and <prop> to identify the texture","Definiert wie gradient Datein benannt werden. benutze <material>, <hash> und <prop> um die texture zu indentifizieren",シェーダーインポート時にポップアップを表示する,"Configura la forma en que se nombran los archivos de textura de gradiente. use <material>, <hash> y <prop> para identificar la textura","configures the way gradient texture files are named. use <material>, <hash> and <prop> to identify the texture","configuwes the way gwadient textuwe fiwes awe named. use <material>, <hash> awnd <prop> tuwu identify the textuwe",01100011 01101111 01101110 01100110 01101001 01100111 01110101 01110010 01100101 01110011 00100000 01110100 01101000 01100101 00100000 01110111 01100001 01111001 00100000 01100111 01110010 01100001 01100100 01101001 01100101 01101110 01110100 00100000 01110100 01100101 01111000 01110100 01110101 01110010 01100101 00100000 01100110 01101001 01101100 01100101 01110011 00100000 01100001 01110010 01100101 00100000 01101110 01100001 01101101 01100101 01100100 00101110 00100000 01110101 01110011 01100101 00100000 00111100 01101101 01100001 01110100 01100101 01110010 01101001 01100001 01101100 00111110 00101100 00100000 00111100 01101000 01100001 01110011 01101000 00111110 00100000 01100001 01101110 01100100 00100000 00111100 01110000 01110010 01101111 01110000 00111110 00100000 01110100 01101111 00100000 01101001 01100100 01100101 01101110 01110100 01101001 01100110 01111001 00100000 01110100 01101000 01100101 00100000 01110100 01100101 01111000 01110100 01110101 01110010 01100101,设置渐层梯度贴图的命名规则。使用 <material>, <hash> 和 <prop> 来定义贴图 +restore_materials,Restore Materials,,,,,,,恢复材质球 +restore_materials_tooltip,Restores broken materials, if the used shader is reinstalled,,,,,,,在使用中的着色器重新安装后, 修复损坏的材质球 +,,,,,,,, +gradient_add_hash_or_prop,Consider adding <hash> or <prop>.,Consider adding <hash> or <prop>.,名前に<hash>または<prop>を追加することを推奨します。,Considere agregar <hash> o <prop>.,Consider adding <hash> or <prop>.,Considew adding <hash> ow <prop>.,01000011 01101111 01101110 01110011 01101001 01100100 01100101 01110010 00100000 01100001 01100100 01100100 01101001 01101110 01100111 00100000 00111100 01101000 01100001 01110011 01101000 00111110 00100000 01101111 01110010 00100000 00111100 01110000 01110010 01101111 01110000 00111110 00101110,推荐添加 <hash> 或 <prop> +gradient_add_material,Consider adding <material>.,Consider adding <material>.,名前に<material>を追加することを推奨します。,Considere agregar <material>.,Consider adding <material>.,Considew adding <material>.,01000011 01101111 01101110 01110011 01101001 01100100 01100101 01110010 00100000 01100001 01100100 01100100 01101001 01101110 01100111 00100000 00111100 01101101 01100001 01110100 01100101 01110010 01101001 01100001 01101100 00111110 00101110,推荐添加 <material> +gradient_add_material_or_prop,Add <material> <hash> or <prop> to destingish between gradients.,Füge <material> <hash> oder <prop> hinzu um zwischen gradients unterscheiden zu können.,名前に<material>、<hash>または<prop>を追加して識別可能にしてください。,Agregue <material> <hash> o <prop> para distinguir entre gradientes.,Add <material> <hash> or <prop> to destingish between gradients.,Add <material> <hash> ow <prop> tuwu destingish between gwadients.,01000001 01100100 01100100 00100000 00111100 01101101 01100001 01110100 01100101 01110010 01101001 01100001 01101100 00111110 00100000 00111100 01101000 01100001 01110011 01101000 00111110 00100000 01101111 01110010 00100000 00111100 01110000 01110010 01101111 01110000 00111110 00100000 01110100 01101111 00100000 01100100 01100101 01110011 01110100 01101001 01101110 01100111 01101001 01110011 01101000 00100000 01100010 01100101 01110100 01110111 01100101 01100101 01101110 00100000 01100111 01110010 01100001 01100100 01101001 01100101 01101110 01110100 01110011 00101110,添加 <material> <hash> 或 <prop> 以识别不同的渐层梯度贴图 +gradient_good_naming,Good naming.,Gute Benennung.,正常な名前です、いいセンスだ。,Buen nombre.,Good naming.,Good naming.,01000111 01101111 01101111 01100100 00100000 01101110 01100001 01101101 01101001 01101110 01100111 00101110,良好的名称 +,,,,,,,, +share_user_data,Share Anonomyous Data for usage statistics,Teile anonyme Daten für Benutzer Statistiken,使用統計データを匿名で共有する,Comparta datos anónimos para estadísticas de uso,Share anonomyous data fer usage statistics,Shawe anonomyous data fow usage statistics,01010011 01101000 01100001 01110010 01100101 00100000 01000001 01101110 01101111 01101110 01101111 01101101 01111001 01101111 01110101 01110011 00100000 01000100 01100001 01110100 01100001 00100000 01100110 01101111 01110010 00100000 01110101 01110011 01100001 01100111 01100101 00100000 01110011 01110100 01100001 01110100 01101001 01110011 01110100 01101001 01100011 01110011,分享用户匿名资料以进行使用情况数据统计 +share_user_data_tooltip,,,,,,,, +share_installed_unity_version,Share my installed Unity Version,Teile Unity Version,インストールされているUnityのバージョンを共有する,Compartir mi versión de Unity instalada,Share me installed unity version,Shawe my instawwed unity vewsion,01010011 01101000 01100001 01110010 01100101 00100000 01101101 01111001 00100000 01101001 01101110 01110011 01110100 01100001 01101100 01101100 01100101 01100100 00100000 01010101 01101110 01101001 01110100 01111001 00100000 01010110 01100101 01110010 01110011 01101001 01101111 01101110,分享用户安装的Unity版本 +share_installed_unity_version_tooltip,,,,,,,, +share_installed_editor_version,Share my installed Thry Editor Version,Teile Thry Editor Version,インストールされているThry Editorのバージョンを共有する,Compartir mi versión instalada de Thry Editor,Share me installed thry editor version,Shawe my instawwed thwy editow vewsion,01010011 01101000 01100001 01110010 01100101 00100000 01101101 01111001 00100000 01101001 01101110 01110011 01110100 01100001 01101100 01101100 01100101 01100100 00100000 01010100 01101000 01110010 01111001 00100000 01000101 01100100 01101001 01110100 01101111 01110010 00100000 01010110 01100101 01110010 01110011 01101001 01101111 01101110,分享用户安装的Thry编辑器版本 +share_installed_editor_version_tooltip,,,,,,,, +share_used_shaders,Share the names of installed shaders using thry editor,"Teile die namen der Shader ,die Thry Editor benutzen",Thry Editorによりインストールされているシェーダーの名前を共有する,Comparta los nombres de los sombreadores instalados utilizando el editor thry,Share the names o' installed shaders usin' thry editor,Shawe the names of instawwed shadews using thwy editow,01010011 01101000 01100001 01110010 01100101 00100000 01110100 01101000 01100101 00100000 01101110 01100001 01101101 01100101 01110011 00100000 01101111 01100110 00100000 01101001 01101110 01110011 01110100 01100001 01101100 01101100 01100101 01100100 00100000 01110011 01101000 01100001 01100100 01100101 01110010 01110011 00100000 01110101 01110011 01101001 01101110 01100111 00100000 01110100 01101000 01110010 01111001 00100000 01100101 01100100 01101001 01110100 01101111 01110010,分享用户使用Thry编辑器的着色器的名称 +share_used_shaders_tooltip,,,,,,,, +,,,,,,,, +share_data_info_message,"The data is identified by a hash of your macaddress. This is to make sure we don't log any user twice, while still keeping all data anonymous.",Die Daten werden indentifiziert durch Ihre gehashte macaddresse. Dies wird ausschließlich gemacht um das doppelte speicher von Daten zu berhindern.,情報はMACアドレスのハッシュにより識別されます。これにより全ユーザーデータの匿名性を維持したまま同じユーザーを2回登録することを防ぎます。,"Los datos se identifican con un hash de su macaddress. Esto es para asegurarnos de que no registremos a ning�n usuario dos veces, mientras mantenemos todos los datos an�nimos.","The data be identified by a 'ash o' yer macaddress. This here be to make sure we don't log any user twice, while still keeping all data anonymous.","The data iws identified by a hash of youw macaddwess. Thiws iws tuwu make suwe we down't wog any usew twice, whiwe stiww keeping aww data anonymous.",01010100 01101000 01100101 00100000 01100100 01100001 01110100 01100001 00100000 01101001 01110011 00100000 01101001 01100100 01100101 01101110 01110100 01101001 01100110 01101001 01100101 01100100 00100000 01100010 01111001 00100000 01100001 00100000 01101000 01100001 01110011 01101000 00100000 01101111 01100110 00100000 01111001 01101111 01110101 01110010 00100000 01101101 01100001 01100011 01100001 01100100 01100100 01110010 01100101 01110011 01110011 00101110 00100000 01010100 01101000 01101001 01110011 00100000 01101001 01110011 00100000 01110100 01101111 00100000 01101101 01100001 01101011 01100101 00100000 01110011 01110101 01110010 01100101 00100000 01110111 01100101 00100000 01100100 01101111 01101110 00100111 01110100 00100000 01101100 01101111 01100111 00100000 01100001 01101110 01111001 00100000 01110101 01110011 01100101 01110010 00100000 01110100 01110111 01101001 01100011 01100101 00101100 00100000 01110111 01101000 01101001 01101100 01100101 00100000 01110011 01110100 01101001 01101100 01101100 00100000 01101011 01100101 01100101 01110000 01101001 01101110 01100111 00100000 01100001 01101100 01101100 00100000 01100100 01100001 01110100 01100001 00100000 01100001 01101110 01101111 01101110 01111001 01101101 01101111 01110101 01110011,数据由您的硬件mac地址的哈希定义, 这是为了确保我们不会重复记录任何用户, 同时仍使所有数据保持匿名 +,,,,,,,, +button_get_my_data,Show all data collected about me,Zeige all Daten die von mir gespeichert wurden.,収集された自分のユーザー情報をすべて表示する,Mostrar todos los datos recopilados sobre mi,Show all data collected about me,Show aww data cowwected abouwt me,01010011 01101000 01101111 01110111 00100000 01100001 01101100 01101100 00100000 01100100 01100001 01110100 01100001 00100000 01100011 01101111 01101100 01101100 01100101 01100011 01110100 01100101 01100100 00100000 01100001 01100010 01101111 01110101 01110100 00100000 01101101 01100101,显示所有从当前用户搜集的资料 +,,,,,,,, +my_data_header,This is all data collected on your hashed mac address:,Dies sind alle Daten die auf Ihrere gehashte MacAdresse gespeichert wurden:,こちらがあなたのハッシュ化されたMACアドレスから収集された全情報です:,Estos son todos los datos recopilados en su dirección mac:,This is all data collected on your hashed mac address:,Thiws iws aww data cowwected own youw hashed mac addwess:,01010100 01101000 01101001 01110011 00100000 01101001 01110011 00100000 01100001 01101100 01101100 00100000 01100100 01100001 01110100 01100001 00100000 01100011 01101111 01101100 01101100 01100101 01100011 01110100 01100101 01100100 00100000 01101111 01101110 00100000 01111001 01101111 01110101 01110010 00100000 01101000 01100001 01110011 01101000 01100101 01100100 00100000 01101101 01100001 01100011 00100000 01100001 01100100 01100100 01110010 01100101 01110011 01110011 00111010 00100000,这是在您的MAC位址哈希上收集的所有数据 +,,,,,,,, +button_install_vrc_sdk,Install VRC SDK,Installiere VRC SDK,VRC SDKをインストールする,Instalar VRC SDK,,Instaww VRC SDK,01001001 01101110 01110011 01110100 01100001 01101100 01101100 00100000 01010110 01010010 01000011 00100000 01010011 01000100 01001011,安装VRC SDK +button_remove_vrc_sdk,Remove VRC SDK,Entferne VRC SDK,VRC SDKを削除する,Eliminar VRC SDK,,Wemove VRC SDK,01010010 01100101 01101101 01101111 01110110 01100101 00100000 01010110 01010010 01000011 00100000 01010011 01000100 01001011,移除VRC SDK +button_update_vrc_sdk,Update VRC SDK,Aktualisiere VRC SDK,VRC SDKをアップデートする,Actualizar VRC SDK,,Update VRC SDK,01010101 01110000 01100100 01100001 01110100 01100101 00100000 01010110 01010010 01000011 00100000 01010011 01000100 01001011,更新VRC SDK +,,,,,,,, +message_presets_file_missing,Presets File Missing,Voreinstellungs Datei fehlt,プリセットファイルが見つかりません,archivo de Presets faltante.,,,01010000 01110010 01100101 01110011 01100101 01110100 01110011 00100000 01000110 01101001 01101100 01100101 00100000 01001101 01101001 01110011 01110011 01101001 01101110 01100111,预设文件丢失 +presets,Presets,Voreinstellungen,プリセット,Presets,,,01010000 01110010 01100101 01110011 01100101 01110100 01110011,预设 +manage_presets,- Manage Presets -,- Verwalte Voreinstellungen -,- プリセット管理 -,- Administrar Presets -,,,00101101 00100000 01001101 01100001 01101110 01100001 01100111 01100101 00100000 01010000 01110010 01100101 01110011 01100101 01110100 01110011 00100000 00101101,- 预设管理 - +add_preset,Add Preset,Neue Voreinstellung,プリセットの追加,añadir Preset,,,01000001 01100100 01100100 00100000 01010000 01110010 01100101 01110011 01100101 01110100,添加预设 +apply_preset,Apply preset,Wende Voreinstellung an,プリセットの適用,Aplicar preset,,,01000001 01110000 01110000 01101100 01111001 00100000 01110000 01110010 01100101 01110011 01100101 01110100,应用预设 +new_preset,+ New +,+ Neu +,+ 追加 +,+ Nuevo +,,,00101011 00100000 01001110 01100101 01110111 00100000 00101011,+ 添加 + +new_preset2,<New Preset>,<Neue Voreinstellung>,<新規プリセット>,<Nuevo Preset>,,,00111100 01001110 01100101 01110111 00100000 01010000 01110010 01100101 01110011 01100101 01110100 00111110,<新预设> +new_preset_name,Preset Name,Voreinstellungs Name,プリセット名,Nombre del preset,,,01010000 01110010 01100101 01110011 01100101 01110100 00100000 01001110 01100001 01101101 01100101,预设名称 +new_preset_name2,Preset Name,Voreinstellungs Name,プリセット名,Nombre del preset,,,01010000 01110010 01100101 01110011 01100101 01110100 00100000 01001110 01100001 01101101 01100101,预设名称 +preset_saved,Preset saved,Voreinstellung gespeichert,プリセットが保存されました,Preset guardado,,,01010000 01110010 01100101 01110011 01100101 01110100 00100000 01110011 01100001 01110110 01100101 01100100,保存预设 +,,,,,,,, +auto_lock_dialog,"{0} material(s) have not been locked and will now be locked automatically. Locking in can dramatically improve runtime performance.\n\nDuring this time unity will remain unresponsive, please be patient.",,,,,,,
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/thry_editor_locale.csv.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/thry_editor_locale.csv.meta new file mode 100644 index 00000000..2f8880dc --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/ThryEditor/thry_editor_locale.csv.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 30877c6905d94034c8c91a9aba08fc01 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools.meta new file mode 100644 index 00000000..41410bb5 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 86107b9763a5ab3408a9884961b4191b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools/Editor.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools/Editor.meta new file mode 100644 index 00000000..9ff74d2b --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 748053328138b574fb97df5308de5e24 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools/Editor/BakeToVertexColorsEditor.cs b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools/Editor/BakeToVertexColorsEditor.cs new file mode 100644 index 00000000..cea014c1 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools/Editor/BakeToVertexColorsEditor.cs @@ -0,0 +1,360 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using UnityEditor; +using UnityEngine; + + +namespace Poi +{ + public class BakeToVertexColorsEditor : EditorWindow + { + //Window + static readonly Vector2 MIN_WINDOW_SIZE = new Vector2(316, 210); + + // Version + Version version = new Version(1, 2); + string SubTitle + { + get + { + if(string.IsNullOrWhiteSpace(_subTitle)) + _subTitle = "by Pumkin - v" + version.ToString(); + return _subTitle; + } + } + + + //Strings + const string log_prefix = "<color=blue>Poi:</color> "; //color is hex or name + + const string bakedSuffix_normals = "baked_normals"; + const string bakedSuffix_position = "baked_position"; + + const string bakesFolderName = "Baked"; + const string defaultUnityAssetBakesFolder = "Default Unity Resources"; + + const string hint_bakeAverageNormals = "Use this if you want seamless outlines"; + const string hint_bakeVertexPositions = "Use this if you want scrolling emission"; + + const string button_bakeAverageNormals = "Bake Averaged Normals"; + const string button_bakeVertexPositions = "Bake Vertex Positions"; + + const string warning_noMeshesDetected = + "No meshes detected in selection. Make sure your object has a Skinned Mesh Renderer or a Mesh Renderer with a valid Mesh assigned"; + + //Properties + static GameObject Selection + { + get => _selection; + set => _selection = value; + } + + [MenuItem("Poi/Tools/Vertex Color Baker", priority = 11)] + public static void ShowWindow() + { + //Show existing window instance. If one doesn't exist, make one. + EditorWindow editorWindow = GetWindow(typeof(BakeToVertexColorsEditor)); + editorWindow.autoRepaintOnSceneChange = true; + editorWindow.minSize = MIN_WINDOW_SIZE; + + editorWindow.Show(); + editorWindow.titleContent = new GUIContent("Bake Colors"); + } + + void OnGUI() + { + EditorGUILayout.LabelField("Poi Vertex Color Baker", PoiStyles.TitleLabel); + EditorGUILayout.LabelField(SubTitle); + + PoiHelpers.DrawLine(); + + EditorGUI.BeginChangeCheck(); + GameObject obj = EditorGUILayout.ObjectField("Avatar", Selection, typeof(GameObject), true) as GameObject; + if(EditorGUI.EndChangeCheck()) + Selection = obj; + + PoiHelpers.DrawLine(); + + EditorGUI.BeginDisabledGroup(!Selection); + { + EditorGUILayout.HelpBox(hint_bakeAverageNormals, MessageType.Info); + if(GUILayout.Button(button_bakeAverageNormals)) + { + var meshes = GetAllMeshInfos(Selection); + if(meshes == null || meshes.Length == 0) + Debug.LogWarning(log_prefix + warning_noMeshesDetected); + else + BakeAveragedNormalsToColors(meshes); + } + + PoiHelpers.DrawLine(true, false); + EditorGUILayout.HelpBox(hint_bakeVertexPositions, MessageType.Info); + if(GUILayout.Button(button_bakeVertexPositions)) + { + var meshes = GetAllMeshInfos(Selection); + if(meshes == null || meshes.Length == 0) + Debug.LogWarning(log_prefix + warning_noMeshesDetected); + else + BakePositionsToColors(meshes); + } + } + EditorGUI.EndDisabledGroup(); + } + + /// <summary> + /// Saves a mesh in the same folder as the original asset + /// </summary> + /// <param name="mesh"></param> + /// <param name="newName">The new name of the mesh</param> + /// <returns>Returns the newly created mesh asset</returns> + static Mesh SaveMeshAsset(Mesh mesh, string newName) + { + string assetPath = AssetDatabase.GetAssetPath(mesh); + + if(string.IsNullOrWhiteSpace(assetPath)) + { + Debug.LogWarning(log_prefix + "Invalid asset path for " + mesh.name); + return null; + } + + //Figure out folder name + string bakesDir = $"{Path.GetDirectoryName(assetPath)}"; + + //Handle default assets + if(bakesDir.StartsWith("Library")) + bakesDir = $"Assets\\{defaultUnityAssetBakesFolder}"; + + if(!bakesDir.EndsWith(bakesFolderName)) + bakesDir += $"\\{bakesFolderName}"; + + if(!assetPath.Contains('.')) + assetPath += '\\'; + + PoiHelpers.EnsurePathExistsInAssets(bakesDir); + + //Generate path + string pathNoExt = Path.Combine(bakesDir, newName); + string newPath = AssetDatabase.GenerateUniqueAssetPath($"{pathNoExt}.mesh"); + + //Save mesh, load it back, assign to renderer + Mesh newMesh = Instantiate(mesh); + AssetDatabase.CreateAsset(newMesh, newPath); + + newMesh = AssetDatabase.LoadAssetAtPath<Mesh>(newPath); + + if(newMesh == null) + { + Debug.Log(log_prefix + "Failed to load saved mesh"); + return null; + } + + EditorGUIUtility.PingObject(newMesh); + return newMesh; + } + + /// <summary> + /// Sets the sharedMesh of a Skinned Mesh Renderer or Mesh Filter attached to a Mesh Renderer + /// </summary> + /// <param name="render"></param> + /// <param name="mesh"></param> + /// <returns></returns> + static bool SetRendererSharedMesh(Renderer render, Mesh mesh) + { + if(render is SkinnedMeshRenderer smr) + smr.sharedMesh = mesh; + else if(render is MeshRenderer mr) + { + var filter = mr.gameObject.GetComponent<MeshFilter>(); + filter.sharedMesh = mesh; + } + else + return false; + return true; + } + + static MeshInfo[] GetAllMeshInfos(GameObject obj) + { + return GetAllMeshInfos(obj?.GetComponentsInChildren<Renderer>(true)); + } + + static MeshInfo[] GetAllMeshInfos(params Renderer[] renderers) + { + var infos = renderers?.Select(ren => + { + MeshInfo info = new MeshInfo(); + if(ren is SkinnedMeshRenderer smr) + { + Mesh bakedMesh = new Mesh(); + Transform tr = smr.gameObject.transform; + Quaternion origRot = tr.localRotation; + Vector3 origScale = tr.localScale; + + tr.localRotation = Quaternion.identity; + tr.localScale = Vector3.one; + + smr.BakeMesh(bakedMesh); + + tr.localRotation = origRot; + tr.localScale = origScale; + + info.sharedMesh = smr.sharedMesh; + info.bakedVertices = bakedMesh?.vertices; + info.bakedNormals = bakedMesh?.normals; + info.ownerRenderer = smr; + if(!info.sharedMesh) + Debug.LogWarning(log_prefix + $"Skinned Mesh Renderer at <b>{info.ownerRenderer.gameObject.name}</b> doesn't have a valid mesh"); + } + else if(ren is MeshRenderer mr) + { + info.sharedMesh = mr.GetComponent<MeshFilter>()?.sharedMesh; + info.bakedVertices = info.sharedMesh?.vertices; + info.bakedNormals = info.sharedMesh?.normals; + info.ownerRenderer = mr; + if(!info.sharedMesh) + Debug.LogWarning(log_prefix + $"Mesh renderer at <b>{info.ownerRenderer.gameObject.name}</b> doesn't have a mesh filter with a valid mesh"); + } + return info; + }).ToArray(); + + return infos; + } + + static void BakePositionsToColors(MeshInfo[] meshInfos) + { + var queue = new Dictionary<MeshInfo, Mesh>(); + try + { + AssetDatabase.StartAssetEditing(); + foreach(var meshInfo in meshInfos) + { + if(!meshInfo.sharedMesh) + continue; + + Vector3[] verts = meshInfo.bakedVertices; //accessing mesh.vertices on every iteration is very slow + Color[] colors = new Color[verts.Length]; + for(int i = 0; i < verts.Length; i++) + colors[i] = new Color(verts[i].x, verts[i].y, verts[i].z); + meshInfo.sharedMesh.colors = colors; + + //Create new mesh asset and add it to queue + string name = PoiHelpers.AddSuffix(meshInfo.ownerRenderer.gameObject.name, bakedSuffix_position); + Mesh newMesh = SaveMeshAsset(meshInfo.sharedMesh, name); + if(newMesh) + queue.Add(meshInfo, newMesh); + } + } + catch(Exception ex) + { + Debug.LogException(ex); + } + finally + { + AssetDatabase.StopAssetEditing(); + } + + //After all meshes are imported assign the meshes + foreach(var kv in queue) + { + SetRendererSharedMesh(kv.Key.ownerRenderer, kv.Value); + } + } + + static void BakeAveragedNormalsToColors(params MeshInfo[] infos) + { + var queue = new Dictionary<MeshInfo, Mesh>(); + try + { + AssetDatabase.StartAssetEditing(); + foreach(var meshInfo in infos) + { + if(!meshInfo.sharedMesh) + continue; + + Vector3[] verts = meshInfo.bakedVertices; + Vector3[] normals = meshInfo.bakedNormals; + VertexInfo[] vertInfo = new VertexInfo[verts.Length]; + for(int i = 0; i < verts.Length; i++) + { + vertInfo[i] = new VertexInfo() + { + vertex = verts[i], + originalIndex = i, + normal = normals[i] + }; + } + var groups = vertInfo.GroupBy(x => x.vertex); + VertexInfo[] processedVertInfo = new VertexInfo[vertInfo.Length]; + int index = 0; + foreach(IGrouping<Vector3, VertexInfo> group in groups) + { + Vector3 avgNormal = Vector3.zero; + foreach(VertexInfo item in group) + avgNormal += item.normal; + + avgNormal /= group.Count(); + foreach(VertexInfo item in group) + { + processedVertInfo[index] = new VertexInfo() + { + vertex = item.vertex, + originalIndex = item.originalIndex, + normal = item.normal, + averagedNormal = avgNormal + }; + index++; + } + } + Color[] colors = new Color[verts.Length]; + for(int i = 0; i < processedVertInfo.Length; i++) + { + VertexInfo info = processedVertInfo[i]; + + int origIndex = info.originalIndex; + Vector3 normal = info.averagedNormal; + Color normColor = new Color(normal.x, normal.y, normal.z, 1); + colors[origIndex] = normColor; + } + meshInfo.sharedMesh.colors = colors; + + string name = PoiHelpers.AddSuffix(meshInfo.ownerRenderer.gameObject.name, bakedSuffix_normals); + Mesh newMesh = SaveMeshAsset(meshInfo.sharedMesh, name); + if(newMesh) + queue.Add(meshInfo, newMesh); + } + } + catch(Exception ex) + { + Debug.LogException(ex); + } + finally + { + AssetDatabase.StopAssetEditing(); + } + + //Assign all new meshes to their renderers + foreach(var kv in queue) + SetRendererSharedMesh(kv.Key.ownerRenderer, kv.Value); + } + + struct MeshInfo + { + public Renderer ownerRenderer; + public Mesh sharedMesh; + public Vector3[] bakedVertices; + public Vector3[] bakedNormals; + } + + struct VertexInfo + { + public Vector3 vertex; + public int originalIndex; + public Vector3 normal; + public Vector3 averagedNormal; + } + + static GameObject _selection; + private string _subTitle; + } +}
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools/Editor/BakeToVertexColorsEditor.cs.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools/Editor/BakeToVertexColorsEditor.cs.meta new file mode 100644 index 00000000..d603b15a --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools/Editor/BakeToVertexColorsEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3f398d68f8c01b54485d2a04a13c958b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools/Editor/PoiData.cs b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools/Editor/PoiData.cs new file mode 100644 index 00000000..6c81040c --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools/Editor/PoiData.cs @@ -0,0 +1,50 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using UnityEditor; +using UnityEngine; + +namespace Poi +{ + internal static class PoiPaths + { + public const string defaultResourcesPath = "Library/unity default resources/"; + } + + internal static class PoiStyles + { + public static GUIStyle BigButton + { + get + { + if(_bigButton == null) + _bigButton= new GUIStyle("button") + { + fixedHeight = 18 * EditorGUIUtility.pixelsPerPoint + }; + return _bigButton; + } + } + + public static GUIStyle TitleLabel + { + get + { + if(_titleLabel == null) + _titleLabel = new GUIStyle(EditorStyles.label) + { + fontSize = 15, + stretchHeight = true, + clipping = TextClipping.Overflow + }; + + return _titleLabel; + } + } + + static GUIStyle _bigButton; + static GUIStyle _titleLabel; + } +} diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools/Editor/PoiData.cs.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools/Editor/PoiData.cs.meta new file mode 100644 index 00000000..2fae90dc --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools/Editor/PoiData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8f58036675b906e4797a5c394781b2a0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools/Editor/PoiHelpers.cs b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools/Editor/PoiHelpers.cs new file mode 100644 index 00000000..787abb8b --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools/Editor/PoiHelpers.cs @@ -0,0 +1,394 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using UnityEditor; +using UnityEngine; + +namespace Poi +{ + static class PoiHelpers + { + static readonly string suffixSeparator = "_"; + + /// <summary> + /// Changes a path in Assets to an absolute windows path + /// </summary> + /// <param name="localPath"></param> + /// <returns></returns> + public static string LocalAssetsPathToAbsolutePath(string localPath) + { + localPath = NormalizePathSlashes(localPath); + const string assets = "Assets/"; + if(localPath.StartsWith(assets)) + { + localPath = localPath.Remove(0, assets.Length); + localPath = $"{Application.dataPath}/{localPath}"; + } + return localPath; + } + + /// <summary> + /// Replaces all forward slashes \ with back slashes / + /// </summary> + /// <param name="path"></param> + /// <returns></returns> + public static string NormalizePathSlashes(string path) + { + if(!string.IsNullOrEmpty(path)) + path = path.Replace('\\', '/'); + return path; + } + + /// <summary> + /// Ensures directory exists inside the assets folder + /// </summary> + /// <param name="assetPath"></param> + public static void EnsurePathExistsInAssets(string assetPath) + { + Directory.CreateDirectory(LocalAssetsPathToAbsolutePath(assetPath)); + } + + /// <summary> + /// Adds a suffix to the end of the string then returns it + /// </summary> + /// <param name="str"></param> + /// <param name="suffixes"></param> + /// <returns></returns> + public static string AddSuffix(string str, params string[] suffixes) + { + bool ignoreSeparatorOnce = string.IsNullOrWhiteSpace(str); + StringBuilder sb = new StringBuilder(str); + foreach(var suff in suffixes) + { + if(ignoreSeparatorOnce) + { + sb.Append(suff); + ignoreSeparatorOnce = false; + continue; + } + sb.Append(suffixSeparator + suff); + } + return sb.ToString(); + } + + /// <summary> + /// Removes suffix from the end of string then returns it + /// </summary> + /// <param name="str"></param> + /// <param name="suffixes">Each to be removed in order</param> + /// <returns></returns> + public static string RemoveSuffix(string str, string[] suffixes) + { + var suffixList = suffixes.ToList(); + suffixList.Remove(str); + + while(suffixList.Any(str.EndsWith)) + foreach(string sfx in suffixList) + { + string s = suffixSeparator + sfx; + if(!str.EndsWith(sfx)) + continue; + + int idx = str.LastIndexOf(s, StringComparison.Ordinal); + if(idx != -1) + str = str.Remove(idx, s.Length); + } + return str; + } + + /// <summary> + /// Draws a GUI ilne + /// </summary> + /// <param name="spaceBefore"></param> + /// <param name="spaceAfter"></param> + internal static void DrawLine(bool spaceBefore = true, bool spaceAfter = true) + { + float spaceHeight = 3f; + if(spaceBefore) + GUILayout.Space(spaceHeight); + + Rect rect = EditorGUILayout.GetControlRect(false, 1); + rect.height = 1; + EditorGUI.DrawRect(rect, new Color(0.5f, 0.5f, 0.5f, 1)); + + if(spaceAfter) + GUILayout.Space(spaceHeight); + } + + /// <summary> + /// Destroys an object with DestroyImmediate in object mode and Destroy in play mode + /// </summary> + /// <param name="obj"></param> + internal static void DestroyAppropriate(UnityEngine.Object obj) + { + if(EditorApplication.isPlaying) + UnityEngine.Object.Destroy(obj); + else + UnityEngine.Object.DestroyImmediate(obj); + } + + /// <summary> + /// Changes path from full windows path to a local path in the Assets folder + /// </summary> + /// <param name="path"></param> + /// <returns>Path starting with Assets</returns> + internal static string AbsolutePathToLocalAssetsPath(string path) + { + if(path.StartsWith(Application.dataPath)) + path = "Assets" + path.Substring(Application.dataPath.Length); + return path; + } + + /// <summary> + /// Selects and highlights the asset in your unity Project tab + /// </summary> + /// <param name="path"></param> + internal static void PingAssetAtPath(string path) + { + var inst = AssetDatabase.LoadAssetAtPath<UnityEngine.Object>(path).GetInstanceID(); + EditorGUIUtility.PingObject(inst); + } + + internal static Vector2Int DrawResolutionPicker(Vector2Int size, ref bool linked, ref bool autoDetect, int[] presets = null, string[] presetNames = null) + { + EditorGUI.BeginDisabledGroup(autoDetect); + EditorGUILayout.BeginHorizontal(); + { + EditorGUILayout.PrefixLabel("Size"); + + EditorGUI.BeginChangeCheck(); + size.x = EditorGUILayout.IntField(size.x); + if(linked && EditorGUI.EndChangeCheck()) + size.y = size.x; + + EditorGUILayout.LabelField("x", GUILayout.MaxWidth(12)); + + EditorGUI.BeginChangeCheck(); + size.y = EditorGUILayout.IntField(size.y); + if(linked && EditorGUI.EndChangeCheck()) + size.x = size.y; + + if(presets != null && presetNames != null) + { + EditorGUI.BeginChangeCheck(); + int selectedPresetIndex = EditorGUILayout.Popup(GUIContent.none, -1, presetNames, GUILayout.MaxWidth(16)); + if(EditorGUI.EndChangeCheck() && selectedPresetIndex != -1) + size = new Vector2Int(presets[selectedPresetIndex], presets[selectedPresetIndex]); + } + + linked = GUILayout.Toggle(linked, "L", EditorStyles.miniButton, GUILayout.MaxWidth(16)); + } + EditorGUILayout.EndHorizontal(); + + EditorGUI.EndDisabledGroup(); + + autoDetect = EditorGUILayout.Toggle("Auto detect", autoDetect); + + return size; + } + + /// <summary> + /// Gets the combined maximum width and height of the passed in textures + /// </summary> + /// <param name="textures"></param> + /// <returns></returns> + internal static Vector2Int GetMaxSizeFromTextures(params Texture2D[] textures) + { + var sizes = textures.Where(tex => tex).Select(tex => new Vector2Int(tex.width, tex.height)).ToArray(); + if(sizes.Length == 0) + return default; + + int maxW = sizes.Max(wh => wh.x); + int maxH = sizes.Max(wh => wh.y); + return new Vector2Int(maxW, maxH); + } + + internal static Texture2D PackTextures(Vector2Int resolution, Texture2D red, Texture2D green, Texture2D blue, Texture2D alpha, bool invertRed, bool invertGreen, bool invertBlue, bool invertAlpha) + { + // Setup Material + var mat = new Material(PoiExtensions.PackerShader); + + mat.SetTexture("_Red", red); + mat.SetTexture("_Green", green); + mat.SetTexture("_Blue", blue); + mat.SetTexture("_Alpha", alpha); + + mat.SetInt("_Invert_Red", Convert.ToInt32(invertRed)); + mat.SetInt("_Invert_Green", Convert.ToInt32(invertGreen)); + mat.SetInt("_Invert_Blue", Convert.ToInt32(invertBlue)); + mat.SetInt("_Invert_Alpha", Convert.ToInt32(invertAlpha)); + + // Create texture and render to it + var tex = new Texture2D(resolution.x, resolution.y); + tex.BakeMaterialToTexture(mat); + + // Cleanup + DestroyAppropriate(mat); + + return tex; + } + + internal static Dictionary<string, Texture2D> UnpackTextureToChannels(Texture2D packedTexture, bool invert, Vector2Int resolution) + { + var channels = new Dictionary<string, Texture2D> + { + {PoiExtensions.PoiTextureChannel.Red.ToString().ToLower(), + new Texture2D(resolution.x, resolution.y, TextureFormat.RGB24, true)}, + {PoiExtensions.PoiTextureChannel.Green.ToString().ToLower(), + new Texture2D(resolution.x, resolution.y, TextureFormat.RGB24, true)}, + {PoiExtensions.PoiTextureChannel.Blue.ToString().ToLower(), + new Texture2D(resolution.x, resolution.y, TextureFormat.RGB24, true)}, + {PoiExtensions.PoiTextureChannel.Alpha.ToString().ToLower(), + new Texture2D(resolution.x, resolution.y, TextureFormat.RGB24, true)} + }; + + var mat = new Material(PoiExtensions.UnpackerShader); + mat.SetTexture("_MainTex", packedTexture); + mat.SetInt("_Invert", Convert.ToInt32(invert)); + + for(int i = 0; i < 4; i++) + { + mat.SetFloat("_Mode", i); + channels.ElementAt(i).Value.BakeMaterialToTexture(mat); + } + + return channels; + } + + internal static void DrawWithLabelWidth(float width, Action action) + { + if(action == null) + return; + float old = EditorGUIUtility.labelWidth; + action.Invoke(); + EditorGUIUtility.labelWidth = old; + } + + internal static PoiExtensions.PoiTextureChannel DrawChannelSelector(PoiExtensions.PoiTextureChannel currentSelection, params string[] labels) + { + if(labels == null) + return PoiExtensions.PoiTextureChannel.RGBA; + return (PoiExtensions.PoiTextureChannel)GUILayout.SelectionGrid((int)currentSelection, labels, labels.Length); + } + } + + internal static class PoiExtensions + { + public enum PoiTextureChannel { RGBA, Red, Green, Blue, Alpha } + public static Shader PackerShader + { + get + { + return Shader.Find("Hidden/Poi/TexturePacker"); + } + } + public static Shader UnpackerShader + { + get + { + return Shader.Find("Hidden/Poi/TextureUnpacker"); + } + } + + internal static Texture2D GetChannelAsTexture(this Texture2D tex, PoiTextureChannel chan, bool invert = false, Vector2Int sizeOverride = default) + { + if(chan == PoiTextureChannel.RGBA) + return tex; + + if(sizeOverride == default) + sizeOverride = new Vector2Int(tex.width, tex.height); + + Material mat = new Material(UnpackerShader); + mat.SetFloat("_Mode", (int)chan - 1); + mat.SetInt("_Invert", Convert.ToInt32(invert)); + mat.SetTexture("_MainTex", tex); + + var newTex = new Texture2D(sizeOverride.x, sizeOverride.y, TextureFormat.RGB24, true); + newTex.name = chan.ToString(); + newTex.BakeMaterialToTexture(mat); + newTex.Apply(false, false); + + return newTex; + } + + /// <summary> + /// Extension method that bakes a material to <paramref name="tex"/> + /// </summary> + /// <param name="tex">Texture to bake <paramref name="materialToBake"/> to</param> + /// <param name="materialToBake">Material to bake to <paramref name="tex"/></param> + internal static void BakeMaterialToTexture(this Texture2D tex, Material materialToBake) + { + var res = new Vector2Int(tex.width, tex.height); + + RenderTexture renderTexture = RenderTexture.GetTemporary(res.x, res.y); + Graphics.Blit(null, renderTexture, materialToBake); + + //transfer image from rendertexture to texture + RenderTexture.active = renderTexture; + tex.ReadPixels(new Rect(Vector2.zero, res), 0, 0); + tex.Apply(false, false); + + //clean up variables + RenderTexture.active = null; + RenderTexture.ReleaseTemporary(renderTexture); + } + + internal static void SaveTextureAsset(this Texture2D tex, string assetPath, bool overwrite) + { + var bytes = tex.EncodeToPNG(); + + + // Ensure directory exists then convert path to local asset path + if(!assetPath.StartsWith("Assets", StringComparison.OrdinalIgnoreCase)) + { + Directory.CreateDirectory(Path.GetDirectoryName(assetPath)); + assetPath = PoiHelpers.AbsolutePathToLocalAssetsPath(assetPath); + } + else + { + string absolutePath = PoiHelpers.LocalAssetsPathToAbsolutePath(assetPath); + Directory.CreateDirectory(Path.GetDirectoryName(absolutePath)); + } + + if(AssetDatabase.LoadAssetAtPath<UnityEngine.Object>(assetPath) && !overwrite) + assetPath = AssetDatabase.GenerateUniqueAssetPath(assetPath); + + File.WriteAllBytes(assetPath, bytes); + AssetDatabase.Refresh(); + } + + internal static Texture2D GetReadableTextureCopy(this Texture2D tex) + { + byte[] pix = tex.GetRawTextureData(); + Texture2D finalTex = new Texture2D(tex.width, tex.height, tex.format, false); + finalTex.LoadRawTextureData(pix); + finalTex.Apply(); + return finalTex; + } + + /// <summary> + /// Rounds vector to closest power of two. Optionally, if above ceiling, square root down by one power of two + /// </summary> + /// <param name="vec"></param> + /// <param name="ceiling">Power of two ceiling. Will be rounded to power of two if not power of two already</param> + /// <returns></returns> + internal static Vector2Int ClosestPowerOfTwo(this Vector2Int vec, int? ceiling = null) + { + int x = Mathf.ClosestPowerOfTwo(vec.x); + int y = Mathf.ClosestPowerOfTwo(vec.y); + + if(ceiling != null) + { + int ceil = Mathf.ClosestPowerOfTwo((int) ceiling); + + x = Mathf.Clamp(x, x, ceil); + y = Mathf.Clamp(y, y, ceil); + } + + return new Vector2Int(x, y); + } + } +}
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools/Editor/PoiHelpers.cs.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools/Editor/PoiHelpers.cs.meta new file mode 100644 index 00000000..5326296d --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools/Editor/PoiHelpers.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 32406f186e960c04ab7448ec0b4ca0e0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools/Editor/TextureChannelPackerEditor.cs b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools/Editor/TextureChannelPackerEditor.cs new file mode 100644 index 00000000..dbc9517c --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools/Editor/TextureChannelPackerEditor.cs @@ -0,0 +1,373 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using UnityEditor; +using UnityEngine; +using TextureChannel = Poi.PoiExtensions.PoiTextureChannel; + +namespace Poi +{ + public class TextureChannelPackerEditor : EditorWindow + { + const string LOG_PREFIX = "<color=blue>Poi:</color> "; //color is hex or name + static readonly Vector2 MIN_WINDOW_SIZE = new Vector2(350, 500); + const int AUTO_SELECT_CEILING = 2048; + + const string INVERT_LABEL = "Invert"; + const string PACKED_TEXTURE_LABEL = "Texture"; + const string RED_TEXTURE_LABEL = "Red"; + const string GREEN_TEXTURE_LABEL = "Green"; + const string BLUE_TEXTURE_LABEL = "Blue"; + const string ALPHA_TEXTURE_LABEL = "Alpha"; + + float InvertToggleWidth + { + get + { + if(_invertLabelWidth == default) + _invertLabelWidth = EditorStyles.toggle.CalcSize(new GUIContent(INVERT_LABEL)).x; + return _invertLabelWidth; + } + } + + // Default values + string savePath = "Assets/_ChannelPacker"; + string packedName = "packed"; + string unpackedName = "unpacked"; + + // Version + Version version = new Version(1, 2); + string SubTitle + { + get + { + if(string.IsNullOrWhiteSpace(_subTitle)) + _subTitle = "by Pumkin - v" + version.ToString(); + return _subTitle; + } + } + + static EditorWindow Window + { + get + { + if(!_window) + _window = GetWindow<TextureChannelPackerEditor>(); + return _window; + } + } + + // Texture stuff + static int[] SizePresets { get; } = { 128, 256, 512, 1024, 2048, 4096 }; + string[] SizePresetNames + { + get + { + if(_sizeNames == null) + _sizeNames = SizePresets.Select(i => i + " x " + i).ToArray(); + return _sizeNames; + } + } + + Vector2Int PackSize { get; set; } = new Vector2Int(1024, 1024); + Vector2Int UnpackSize { get; set; } = new Vector2Int(1024, 1024); + + bool packSizeIsLinked = true; + bool unpackSizeIsLinked = true; + + bool packSizeAutoSelect = true; + bool unpackSizeAutoSelect = true; + + bool showChannelPicker = false; + + TextureChannel redTexChan, blueTexChan, greenTexChan, alphaTexChan, unpackChan; + + Texture2D packRed, packGreen, packBlue, packAlpha, unpackSource; + + bool redInvert, greenInvert, blueInvert, alphaInvert, unpackInvert; + + string[] ChannelLabels { get; } = { "All", "Red", "Green", "Blue", "Alpha" }; + + bool PackerShadersExist + { + get + { + bool everythingIsAlwaysFine = true; + + if(!PoiExtensions.UnpackerShader) + { + Debug.LogWarning(LOG_PREFIX + "Unpacker shader is missing or invalid. Can't unpack textures."); + everythingIsAlwaysFine = false; + } + + if(!PoiExtensions.PackerShader) + { + Debug.LogWarning(LOG_PREFIX + "Packer shader is missing or invalid. Can't pack textures."); + everythingIsAlwaysFine = false; + } + + return everythingIsAlwaysFine; + } + } + + // UI + enum Tab { Pack, Unpack } + int selectedTab = 0; + string[] TabNames + { + get + { + if(_tabNames == null) + _tabNames = Enum.GetNames(typeof(Tab)); + return _tabNames; + } + } + + + [MenuItem("Poi/Tools/Texture Packer", priority = 0)] + public static void ShowWindow() + { + //Show existing window instance. If one doesn't exist, make one. + Window.autoRepaintOnSceneChange = true; + Window.minSize = MIN_WINDOW_SIZE; + + Window.Show(); + Window.titleContent = new GUIContent("Texture Packer"); + } + + #region Drawing GUI + + void OnGUI() + { + EditorGUILayout.LabelField("Poi Texture Packer", PoiStyles.TitleLabel); + EditorGUILayout.LabelField(SubTitle); + + PoiHelpers.DrawLine(); + + selectedTab = GUILayout.Toolbar(selectedTab, TabNames); + + if(selectedTab == (int)Tab.Pack) + DrawPackUI(); + else + DrawUnpackUI(); + } + + void DrawPackUI() + { + _scroll = EditorGUILayout.BeginScrollView(_scroll); + { + EditorGUI.BeginChangeCheck(); + { + DrawTextureSelector(RED_TEXTURE_LABEL, ref packRed, ref redTexChan, ref redInvert); + DrawTextureSelector(GREEN_TEXTURE_LABEL, ref packGreen, ref greenTexChan, ref greenInvert); + DrawTextureSelector(BLUE_TEXTURE_LABEL, ref packBlue, ref blueTexChan, ref blueInvert); + DrawTextureSelector(ALPHA_TEXTURE_LABEL, ref packAlpha, ref alphaTexChan, ref alphaInvert); + } + if(EditorGUI.EndChangeCheck() && packSizeAutoSelect) + { + // Get biggest texture size from selections and make a selection in our sizes list + var tempSize = PoiHelpers.GetMaxSizeFromTextures(packRed, packGreen, packBlue, packAlpha); + if(tempSize != default) + PackSize = tempSize.ClosestPowerOfTwo(AUTO_SELECT_CEILING); + } + } + EditorGUILayout.EndScrollView(); + + DrawShowChannelPicker(ref showChannelPicker); + + bool disabled = new bool[] { packRed, packGreen, packBlue, packAlpha }.Count(b => b) < 2; + EditorGUI.BeginDisabledGroup(disabled); + { + PackSize = DrawTextureSizeSettings(PackSize, ref packedName, ref packSizeIsLinked, ref packSizeAutoSelect); + + if(GUILayout.Button("Pack", PoiStyles.BigButton)) + DoPack(); + + EditorGUILayout.Space(); + } + EditorGUI.EndDisabledGroup(); + } + + private void DrawShowChannelPicker(ref bool pickerValue) + { + EditorGUILayout.BeginHorizontal(EditorStyles.helpBox); + pickerValue = EditorGUILayout.ToggleLeft("Pick source channel", pickerValue); + EditorGUILayout.EndHorizontal(); + } + + void DrawUnpackUI() + { + _scroll = EditorGUILayout.BeginScrollView(_scroll); + { + EditorGUI.BeginChangeCheck(); + { + DrawTextureSelector(PACKED_TEXTURE_LABEL, ref unpackSource, ref unpackChan, ref unpackInvert); + } + if(EditorGUI.EndChangeCheck() && unpackSizeAutoSelect) + { + // Get biggest texture size from selections and make a selection in our sizes list + var tempSize = PoiHelpers.GetMaxSizeFromTextures(unpackSource); + if(tempSize != default) + UnpackSize = tempSize.ClosestPowerOfTwo(AUTO_SELECT_CEILING); + } + + DrawShowChannelPicker(ref showChannelPicker); + } + EditorGUILayout.EndScrollView(); + + EditorGUI.BeginDisabledGroup(!unpackSource); + { + UnpackSize = DrawTextureSizeSettings(UnpackSize, ref unpackedName, ref unpackSizeIsLinked, ref unpackSizeAutoSelect); + + if(GUILayout.Button("Unpack", PoiStyles.BigButton)) + DoUnpack(unpackChan); + } + EditorGUI.EndDisabledGroup(); + + EditorGUILayout.Space(); + } + + #endregion + + #region Packing and Unpacking + + void DoPack() + { + if(!PackerShadersExist) + return; + + Texture2D red = packRed; + Texture2D green = packGreen; + Texture2D blue = packBlue; + Texture2D alpha = packAlpha; + + if(showChannelPicker) + { + red = packRed.GetChannelAsTexture(redTexChan, unpackInvert); + green = packGreen.GetChannelAsTexture(greenTexChan, unpackInvert); + blue = packBlue.GetChannelAsTexture(blueTexChan, unpackInvert); + alpha = packAlpha.GetChannelAsTexture(alphaTexChan, unpackInvert); + } + + Texture2D packResult = PoiHelpers.PackTextures(PackSize, red, green, blue, alpha, redInvert, greenInvert, blueInvert, alphaInvert); + if(packResult) + { + string path = $"{savePath}/Packed/{packedName}.png"; + packResult.SaveTextureAsset(path, true); + Debug.Log(LOG_PREFIX + "Finished packing texture at " + path); + PoiHelpers.PingAssetAtPath(path); + } + + } + + void DoUnpack(TextureChannel singleChannel = TextureChannel.RGBA) + { + if(!PackerShadersExist) + return; + + var channelTextures = new Dictionary<string, Texture2D>(); + if(singleChannel == TextureChannel.RGBA) + channelTextures = PoiHelpers.UnpackTextureToChannels(unpackSource, unpackInvert, UnpackSize); + else + channelTextures[singleChannel.ToString().ToLower()] = unpackSource.GetChannelAsTexture(singleChannel, unpackInvert, UnpackSize); + + + string pingPath = null; + pingPath = SaveTextures(channelTextures, pingPath); + + Debug.Log(LOG_PREFIX + "Finished unpacking texture at " + pingPath); + PoiHelpers.PingAssetAtPath(pingPath); + } + + #endregion + + #region Helpers + + string SaveTextures(Dictionary<string, Texture2D> output, string pingPath) + { + try + { + AssetDatabase.StartAssetEditing(); + foreach(var kv in output) + { + if(string.IsNullOrWhiteSpace(pingPath)) + pingPath = $"{savePath}/Unpacked/{unpackedName}_{kv.Key}.png"; + kv.Value?.SaveTextureAsset($"{savePath}/Unpacked/{unpackedName}_{kv.Key}.png", true); + } + } + catch { } + finally + { + AssetDatabase.StopAssetEditing(); + } + + return pingPath; + } + + void DrawTextureSelector(string label, ref Texture2D tex) + { + EditorGUILayout.BeginVertical(EditorStyles.helpBox); + { + tex = EditorGUILayout.ObjectField(label, tex, typeof(Texture2D), true, GUILayout.ExpandHeight(true)) as Texture2D; + } + EditorGUILayout.EndHorizontal(); + } + + void DrawTextureSelector(string label, ref Texture2D tex, ref TextureChannel selectedChannel, ref bool invert) + { + EditorGUILayout.BeginVertical(EditorStyles.helpBox); + { + EditorGUILayout.BeginHorizontal(); + { + EditorGUILayout.BeginVertical(); + { + var labelContent = new GUIContent(label); + var size = EditorStyles.boldLabel.CalcSize(labelContent); + + EditorGUILayout.LabelField(labelContent, EditorStyles.boldLabel, GUILayout.MaxWidth(size.x)); + + GUILayout.Space(15 * EditorGUIUtility.pixelsPerPoint); + + GUILayout.FlexibleSpace(); + + invert = EditorGUILayout.ToggleLeft(INVERT_LABEL, invert, GUILayout.MaxWidth(InvertToggleWidth)); + } + EditorGUILayout.EndVertical(); + + tex = EditorGUILayout.ObjectField(GUIContent.none, tex, typeof(Texture2D), true, GUILayout.ExpandHeight(true)) as Texture2D; + } + EditorGUILayout.EndHorizontal(); + + if(showChannelPicker) + { + EditorGUI.BeginDisabledGroup(!tex); + selectedChannel = PoiHelpers.DrawChannelSelector(selectedChannel, ChannelLabels); + EditorGUI.EndDisabledGroup(); + } + } + EditorGUILayout.EndVertical(); + } + + Vector2Int DrawTextureSizeSettings(Vector2Int size, ref string fileName, ref bool sizeIsLinked, ref bool sizeAutoSelect) + { + EditorGUILayout.BeginVertical(EditorStyles.helpBox); + { + fileName = EditorGUILayout.TextField("File name", fileName); + EditorGUILayout.Space(); + size = PoiHelpers.DrawResolutionPicker(size, ref sizeIsLinked, ref sizeAutoSelect, SizePresets, SizePresetNames); + } + EditorGUILayout.EndVertical(); + return size; + } + + #endregion + + string[] _tabNames; + string[] _sizeNames; + static EditorWindow _window; + string _subTitle; + Vector2 _scroll; + float _invertLabelWidth; + } +}
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools/Editor/TextureChannelPackerEditor.cs.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools/Editor/TextureChannelPackerEditor.cs.meta new file mode 100644 index 00000000..49e700e9 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools/Editor/TextureChannelPackerEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1e29ffa815f2cd648839d9b094a4631f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools/Resources.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools/Resources.meta new file mode 100644 index 00000000..604e4ea7 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 362826441ef464c458314d76942a2c67 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools/Resources/PoiTexturePacker.shader b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools/Resources/PoiTexturePacker.shader new file mode 100644 index 00000000..2f366a9e --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools/Resources/PoiTexturePacker.shader @@ -0,0 +1,169 @@ +// Made with Amplify Shader Editor +// Available at the Unity Asset Store - http://u3d.as/y3X +Shader "Hidden/Poi/TexturePacker" +{ + Properties + { + _Invert_Red("Invert_Red", Float) = 0 + _Invert_Green("Invert_Green", Float) = 0 + _Invert_Blue("Invert_Blue", Float) = 0 + _Invert_Alpha("Invert_Alpha", Float) = 0 + _Red("Red", 2D) = "white" {} + _Green("Green", 2D) = "white" {} + _Blue("Blue", 2D) = "white" {} + _Alpha("Alpha", 2D) = "white" {} + [HideInInspector] _texcoord( "", 2D ) = "white" {} + } + + SubShader + { + Tags { "RenderType"="Opaque" } + LOD 100 + CGINCLUDE + #pragma target 3.0 + ENDCG + Blend Off + Cull Back + ColorMask RGBA + ZWrite On + ZTest LEqual + Offset 0 , 0 + + + + Pass + { + Name "Unlit" + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma multi_compile_instancing + #include "UnityCG.cginc" + + + struct appdata + { + float4 vertex : POSITION; + UNITY_VERTEX_INPUT_INSTANCE_ID + float4 ase_texcoord : TEXCOORD0; + }; + + struct v2f + { + float4 vertex : SV_POSITION; + float4 ase_texcoord : TEXCOORD0; + UNITY_VERTEX_OUTPUT_STEREO + UNITY_VERTEX_INPUT_INSTANCE_ID + }; + + uniform sampler2D _Red; + uniform float4 _Red_ST; + uniform float _Invert_Red; + uniform sampler2D _Green; + uniform float4 _Green_ST; + uniform float _Invert_Green; + uniform sampler2D _Blue; + uniform float4 _Blue_ST; + uniform float _Invert_Blue; + uniform sampler2D _Alpha; + uniform float4 _Alpha_ST; + uniform float _Invert_Alpha; + + v2f vert ( appdata v ) + { + v2f o; + UNITY_SETUP_INSTANCE_ID(v); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + UNITY_TRANSFER_INSTANCE_ID(v, o); + + o.ase_texcoord.xy = v.ase_texcoord.xy; + + //setting value to unused interpolator channels and avoid initialization warnings + o.ase_texcoord.zw = 0; + + v.vertex.xyz += float3(0,0,0) ; + o.vertex = UnityObjectToClipPos(v.vertex); + return o; + } + + fixed4 frag (v2f i ) : SV_Target + { + UNITY_SETUP_INSTANCE_ID(i); + fixed4 finalColor; + float2 uv_Red = i.ase_texcoord.xy * _Red_ST.xy + _Red_ST.zw; + float4 tex2DNode28 = tex2D( _Red, uv_Red ); + float4 temp_cast_0 = (_Invert_Red).xxxx; + float4 lerpResult27 = lerp( tex2DNode28 , ( temp_cast_0 - tex2DNode28 ) , _Invert_Red); + float2 uv_Green = i.ase_texcoord.xy * _Green_ST.xy + _Green_ST.zw; + float4 tex2DNode12 = tex2D( _Green, uv_Green ); + float4 temp_cast_2 = (_Invert_Green).xxxx; + float4 lerpResult20 = lerp( tex2DNode12 , ( temp_cast_2 - tex2DNode12 ) , _Invert_Green); + float2 uv_Blue = i.ase_texcoord.xy * _Blue_ST.xy + _Blue_ST.zw; + float4 tex2DNode14 = tex2D( _Blue, uv_Blue ); + float4 temp_cast_4 = (_Invert_Blue).xxxx; + float4 lerpResult21 = lerp( tex2DNode14 , ( temp_cast_4 - tex2DNode14 ) , _Invert_Blue); + float2 uv_Alpha = i.ase_texcoord.xy * _Alpha_ST.xy + _Alpha_ST.zw; + float4 tex2DNode13 = tex2D( _Alpha, uv_Alpha ); + float4 temp_cast_6 = (_Invert_Alpha).xxxx; + float4 lerpResult19 = lerp( tex2DNode13 , ( temp_cast_6 - tex2DNode13 ) , _Invert_Alpha); + float4 appendResult30 = (float4(lerpResult27.r , lerpResult20.r , lerpResult21.r , lerpResult19.r)); + + + finalColor = appendResult30; + return finalColor; + } + ENDCG + } + } + CustomEditor "ASEMaterialInspector" + + +} +/*ASEBEGIN +Version=15902 +0;0;1368;850;1368.399;595.2781;1;True;False +Node;AmplifyShaderEditor.SamplerNode;14;-1193.289,314.7757;Float;True;Property;_Blue;Blue;6;0;Create;True;0;0;False;0;None;None;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;6;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 +Node;AmplifyShaderEditor.RangedFloatNode;25;-815.7044,759.9294;Float;False;Property;_Invert_Alpha;Invert_Alpha;3;0;Create;True;0;0;False;0;0;0;0;0;0;1;FLOAT;0 +Node;AmplifyShaderEditor.RangedFloatNode;15;-819.5868,472.4816;Float;False;Property;_Invert_Blue;Invert_Blue;2;0;Create;True;0;0;False;0;0;0;0;0;0;1;FLOAT;0 +Node;AmplifyShaderEditor.RangedFloatNode;31;-803.4256,177.2413;Float;False;Property;_Invert_Green;Invert_Green;1;0;Create;True;0;0;False;0;0;0;0;0;0;1;FLOAT;0 +Node;AmplifyShaderEditor.RangedFloatNode;29;-795.8423,-109.6157;Float;False;Property;_Invert_Red;Invert_Red;0;0;Create;True;0;0;False;0;0;0;0;0;0;1;FLOAT;0 +Node;AmplifyShaderEditor.SamplerNode;28;-1189.017,-285.634;Float;True;Property;_Red;Red;4;0;Create;True;0;0;False;0;None;None;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;6;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 +Node;AmplifyShaderEditor.SamplerNode;12;-1199.358,5.317238;Float;True;Property;_Green;Green;5;0;Create;True;0;0;False;0;None;None;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;6;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 +Node;AmplifyShaderEditor.SamplerNode;13;-1182.523,665.4475;Float;True;Property;_Alpha;Alpha;7;0;Create;True;0;0;False;0;None;None;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;6;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 +Node;AmplifyShaderEditor.SimpleSubtractOpNode;16;-610.2974,-218.5994;Float;False;2;0;FLOAT;0;False;1;COLOR;0,0,0,0;False;1;COLOR;0 +Node;AmplifyShaderEditor.SimpleSubtractOpNode;26;-570.7031,710.9296;Float;False;2;0;FLOAT;0;False;1;COLOR;0,0,0,0;False;1;COLOR;0 +Node;AmplifyShaderEditor.SimpleSubtractOpNode;17;-612.9231,67.14128;Float;False;2;0;FLOAT;0;False;1;COLOR;0,0,0,0;False;1;COLOR;0 +Node;AmplifyShaderEditor.SimpleSubtractOpNode;18;-589.0041,392.5837;Float;False;2;0;FLOAT;0;False;1;COLOR;0,0,0,0;False;1;COLOR;0 +Node;AmplifyShaderEditor.LerpOp;19;-279.5903,619.9736;Float;False;3;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;2;FLOAT;0;False;1;COLOR;0 +Node;AmplifyShaderEditor.LerpOp;27;-318.2486,-275.2707;Float;False;3;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;2;FLOAT;0;False;1;COLOR;0 +Node;AmplifyShaderEditor.LerpOp;20;-299.71,16.80488;Float;False;3;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;2;FLOAT;0;False;1;COLOR;0 +Node;AmplifyShaderEditor.LerpOp;21;-296.069,300.6409;Float;False;3;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;2;FLOAT;0;False;1;COLOR;0 +Node;AmplifyShaderEditor.DynamicAppendNode;30;98.28339,102.1202;Float;False;FLOAT4;4;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT4;0 +Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;0;369.802,98.57185;Float;False;True;2;Float;ASEMaterialInspector;0;1;Hidden/Poi/TexturePacker;0770190933193b94aaa3065e307002fa;0;0;Unlit;2;True;0;1;False;-1;0;False;-1;0;1;False;-1;0;False;-1;True;0;False;-1;0;False;-1;True;0;False;-1;True;True;True;True;True;0;False;-1;True;False;255;False;-1;255;False;-1;255;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;True;1;False;-1;True;3;False;-1;True;True;0;False;-1;0;False;-1;True;1;RenderType=Opaque=RenderType;True;2;0;False;False;False;False;False;False;False;False;False;False;0;;0;0;Standard;0;2;0;FLOAT4;0,0,0,0;False;1;FLOAT3;0,0,0;False;0 +WireConnection;16;0;29;0 +WireConnection;16;1;28;0 +WireConnection;26;0;25;0 +WireConnection;26;1;13;0 +WireConnection;17;0;31;0 +WireConnection;17;1;12;0 +WireConnection;18;0;15;0 +WireConnection;18;1;14;0 +WireConnection;19;0;13;0 +WireConnection;19;1;26;0 +WireConnection;19;2;25;0 +WireConnection;27;0;28;0 +WireConnection;27;1;16;0 +WireConnection;27;2;29;0 +WireConnection;20;0;12;0 +WireConnection;20;1;17;0 +WireConnection;20;2;31;0 +WireConnection;21;0;14;0 +WireConnection;21;1;18;0 +WireConnection;21;2;15;0 +WireConnection;30;0;27;0 +WireConnection;30;1;20;0 +WireConnection;30;2;21;0 +WireConnection;30;3;19;0 +WireConnection;0;0;30;0 +ASEEND*/ +//CHKSM=2C30DB01285F07958B9316BD81CB0A64AD7E3B0E
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools/Resources/PoiTexturePacker.shader.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools/Resources/PoiTexturePacker.shader.meta new file mode 100644 index 00000000..1658d888 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools/Resources/PoiTexturePacker.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 71129bd3774e04d48827a25fc98d45a7 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools/Resources/PoiTextureUnpacker.shader b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools/Resources/PoiTextureUnpacker.shader new file mode 100644 index 00000000..736465be --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools/Resources/PoiTextureUnpacker.shader @@ -0,0 +1,156 @@ +// Made with Amplify Shader Editor +// Available at the Unity Asset Store - http://u3d.as/y3X +Shader "Hidden/Poi/TextureUnpacker" +{ + Properties + { + _MainTex("MainTex", 2D) = "white" {} + _Mode("Mode", Range( 0 , 3)) = 3 + _Invert("Invert", Float) = 0 + [HideInInspector] _texcoord( "", 2D ) = "white" {} + } + + SubShader + { + Tags { "RenderType"="Opaque" } + LOD 100 + CGINCLUDE + #pragma target 3.0 + ENDCG + Blend Off + Cull Back + ColorMask RGBA + ZWrite On + ZTest LEqual + Offset 0 , 0 + + + + Pass + { + Name "Unlit" + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma multi_compile_instancing + #include "UnityCG.cginc" + + + struct appdata + { + float4 vertex : POSITION; + UNITY_VERTEX_INPUT_INSTANCE_ID + float4 ase_texcoord : TEXCOORD0; + }; + + struct v2f + { + float4 vertex : SV_POSITION; + float4 ase_texcoord : TEXCOORD0; + UNITY_VERTEX_OUTPUT_STEREO + UNITY_VERTEX_INPUT_INSTANCE_ID + }; + + uniform float _Mode; + uniform sampler2D _MainTex; + uniform float4 _MainTex_ST; + uniform float _Invert; + + v2f vert ( appdata v ) + { + v2f o; + UNITY_SETUP_INSTANCE_ID(v); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + UNITY_TRANSFER_INSTANCE_ID(v, o); + + o.ase_texcoord.xy = v.ase_texcoord.xy; + + //setting value to unused interpolator channels and avoid initialization warnings + o.ase_texcoord.zw = 0; + + v.vertex.xyz += float3(0,0,0) ; + o.vertex = UnityObjectToClipPos(v.vertex); + return o; + } + + fixed4 frag (v2f i ) : SV_Target + { + UNITY_SETUP_INSTANCE_ID(i); + fixed4 finalColor; + float2 uv_MainTex = i.ase_texcoord.xy * _MainTex_ST.xy + _MainTex_ST.zw; + float4 tex2DNode32 = tex2D( _MainTex, uv_MainTex ); + float ifLocalVar34 = 0; + if( _Mode == 0.0 ) + ifLocalVar34 = tex2DNode32.r; + float ifLocalVar35 = 0; + if( _Mode == 1.0 ) + ifLocalVar35 = tex2DNode32.g; + float ifLocalVar36 = 0; + if( _Mode == 2.0 ) + ifLocalVar36 = tex2DNode32.b; + float ifLocalVar37 = 0; + if( _Mode == 3.0 ) + ifLocalVar37 = tex2DNode32.a; + float4 ifLocalVar42 = 0; + if( _Mode < 0.0 ) + ifLocalVar42 = tex2DNode32; + float4 ifLocalVar43 = 0; + if( _Mode > 3.0 ) + ifLocalVar43 = tex2DNode32; + float4 temp_output_40_0 = ( ifLocalVar34 + ifLocalVar35 + ifLocalVar36 + ifLocalVar37 + ifLocalVar42 + ifLocalVar43 ); + float4 temp_cast_0 = (_Invert).xxxx; + float4 lerpResult46 = lerp( temp_output_40_0 , ( temp_cast_0 - temp_output_40_0 ) , _Invert); + + + finalColor = lerpResult46; + return finalColor; + } + ENDCG + } + } + CustomEditor "ASEMaterialInspector" + + +} +/*ASEBEGIN +Version=15902 +0;0;1368;850;930.0129;673.0209;1.753676;True;False +Node;AmplifyShaderEditor.SamplerNode;32;-446.011,1.547681;Float;True;Property;_MainTex;MainTex;0;0;Create;True;0;0;False;0;None;None;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;6;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 +Node;AmplifyShaderEditor.RangedFloatNode;33;-414.2798,-86.22936;Float;False;Property;_Mode;Mode;1;0;Create;True;0;0;False;0;3;0;0;3;0;1;FLOAT;0 +Node;AmplifyShaderEditor.ConditionalIfNode;35;17.04439,123.3313;Float;False;False;5;0;FLOAT;0;False;1;FLOAT;1;False;2;FLOAT;0;False;3;FLOAT;0;False;4;FLOAT;0;False;1;FLOAT;0 +Node;AmplifyShaderEditor.ConditionalIfNode;36;17.16646,287.5046;Float;False;False;5;0;FLOAT;0;False;1;FLOAT;2;False;2;FLOAT;0;False;3;FLOAT;0;False;4;FLOAT;0;False;1;FLOAT;0 +Node;AmplifyShaderEditor.ConditionalIfNode;37;15.75801,456.534;Float;False;False;5;0;FLOAT;0;False;1;FLOAT;3;False;2;FLOAT;0;False;3;FLOAT;0;False;4;FLOAT;0;False;1;FLOAT;0 +Node;AmplifyShaderEditor.ConditionalIfNode;34;17.15299,-44.90865;Float;False;False;5;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;4;FLOAT;0;False;1;FLOAT;0 +Node;AmplifyShaderEditor.ConditionalIfNode;42;19.07808,-276.4948;Float;False;False;5;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;4;COLOR;0,0,0,0;False;1;COLOR;0 +Node;AmplifyShaderEditor.ConditionalIfNode;43;19.07608,697.2275;Float;False;False;5;0;FLOAT;0;False;1;FLOAT;3;False;2;COLOR;0,0,0,0;False;3;FLOAT;0;False;4;COLOR;0,0,0,0;False;1;COLOR;0 +Node;AmplifyShaderEditor.SimpleAddOpNode;40;370.6085,1.924235;Float;True;6;6;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;4;COLOR;0,0,0,0;False;5;COLOR;0,0,0,0;False;1;COLOR;0 +Node;AmplifyShaderEditor.RangedFloatNode;44;440.5474,232.555;Float;False;Property;_Invert;Invert;2;0;Create;True;0;0;False;0;0;0;0;0;0;1;FLOAT;0 +Node;AmplifyShaderEditor.SimpleSubtractOpNode;45;609.8499,63.25506;Float;False;2;0;FLOAT;0;False;1;COLOR;0,0,0,0;False;1;COLOR;0 +Node;AmplifyShaderEditor.LerpOp;46;780.463,-0.6814048;Float;False;3;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;2;FLOAT;0;False;1;COLOR;0 +Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;0;975.2405,-1.718735;Float;False;True;2;Float;ASEMaterialInspector;0;1;Hidden/Poi/TextureUnpacker;0770190933193b94aaa3065e307002fa;0;0;Unlit;2;True;0;1;False;-1;0;False;-1;0;1;False;-1;0;False;-1;True;0;False;-1;0;False;-1;True;0;False;-1;True;True;True;True;True;0;False;-1;True;False;255;False;-1;255;False;-1;255;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;True;1;False;-1;True;3;False;-1;True;True;0;False;-1;0;False;-1;True;1;RenderType=Opaque=RenderType;True;2;0;False;False;False;False;False;False;False;False;False;False;0;;0;0;Standard;0;2;0;FLOAT4;0,0,0,0;False;1;FLOAT3;0,0,0;False;0 +WireConnection;35;0;33;0 +WireConnection;35;3;32;2 +WireConnection;36;0;33;0 +WireConnection;36;3;32;3 +WireConnection;37;0;33;0 +WireConnection;37;3;32;4 +WireConnection;34;0;33;0 +WireConnection;34;3;32;1 +WireConnection;42;0;33;0 +WireConnection;42;4;32;0 +WireConnection;43;0;33;0 +WireConnection;43;2;32;0 +WireConnection;40;0;34;0 +WireConnection;40;1;35;0 +WireConnection;40;2;36;0 +WireConnection;40;3;37;0 +WireConnection;40;4;42;0 +WireConnection;40;5;43;0 +WireConnection;45;0;44;0 +WireConnection;45;1;40;0 +WireConnection;46;0;40;0 +WireConnection;46;1;45;0 +WireConnection;46;2;44;0 +WireConnection;0;0;46;0 +ASEEND*/ +//CHKSM=FB476DC839C9D986CDFBE64BF68940FC3E2666AE
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools/Resources/PoiTextureUnpacker.shader.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools/Resources/PoiTextureUnpacker.shader.meta new file mode 100644 index 00000000..d7c2c86d --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Scripts/poi-tools/Resources/PoiTextureUnpacker.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 245e67c21ccaa9a43ad7e84d1c7bb5fc +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders.meta new file mode 100644 index 00000000..8f961311 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b3c5b5f9182fdc74ab4dbddc58f0c1fe +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Extras.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Extras.meta new file mode 100644 index 00000000..d8d5cf68 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Extras.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cb514bdc28c681942916ac4a6f8aa683 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Extras/InvisStencil.shader b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Extras/InvisStencil.shader new file mode 100644 index 00000000..b47468ab --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Extras/InvisStencil.shader @@ -0,0 +1,72 @@ +Shader ".poiyomi/Extras/StencilInvis" +{ + properties + { + [HideInInspector] m_StencilPassOptions ("Stencil", Float) = 0 + [IntRange] _StencilRef ("Stencil Reference Value", Range(0, 255)) = 0 + //[IntRange] _StencilReadMaskRef ("Stencil ReadMask Value", Range(0, 255)) = 0 + //[IntRange] _StencilWriteMaskRef ("Stencil WriteMask Value", Range(0, 255)) = 0 + [Enum(UnityEngine.Rendering.StencilOp)] _StencilPassOp ("Stencil Pass Op", Float) = 0 + [Enum(UnityEngine.Rendering.StencilOp)] _StencilFailOp ("Stencil Fail Op", Float) = 0 + [Enum(UnityEngine.Rendering.StencilOp)] _StencilZFailOp ("Stencil ZFail Op", Float) = 0 + [Enum(UnityEngine.Rendering.CompareFunction)] _StencilCompareFunction ("Stencil Compare Function", Float) = 8 + + [HideInInspector] m_renderingOptions ("Rendering Options", Float) = 0 + [Enum(UnityEngine.Rendering.CullMode)] _Cull ("Cull", Float) = 2 + [Enum(UnityEngine.Rendering.CompareFunction)] _ZTest ("ZTest", Float) = 4 + [Enum(UnityEngine.Rendering.BlendMode)] _SourceBlend ("Source Blend", Float) = 5 + [Enum(UnityEngine.Rendering.BlendMode)] _DestinationBlend ("Destination Blend", Float) = 10 + [Enum(Off, 0, On, 1)] _ZWrite ("ZWrite", Int) = 1 + } + CustomEditor "ThryEditor" + SubShader + { + + Tags { "RenderType" = "Opaque" "Queue" = "Geometry" } + ColorMask 0 + ZWrite [_ZWrite] + Cull [_Cull] + ZTest [_ZTest] + Offset [_ZBias], [_ZBias] + Stencil + { + Ref [_StencilRef] + Comp [_StencilCompareFunction] + Pass [_StencilPassOp] + Fail [_StencilFailOp] + ZFail [_StencilZFailOp] + } + + CGINCLUDE + struct appdata + { + float4 vertex: POSITION; + }; + struct v2f + { + float4 pos: SV_POSITION; + }; + v2f vert(appdata v) + { + v2f o; + o.pos = UnityObjectToClipPos(v.vertex); + return o; + } + half4 frag(v2f i): COLOR + { + return half4(1, 1, 0, 1); + } + ENDCG + + Pass + { + + CGPROGRAM + + #pragma vertex vert + #pragma fragment frag + ENDCG + + } + } +}
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Extras/InvisStencil.shader.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Extras/InvisStencil.shader.meta new file mode 100644 index 00000000..ac593884 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Extras/InvisStencil.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: a49dd2fba12886c499261512c6eaaa80 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Extras/MasterScanner.shader b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Extras/MasterScanner.shader new file mode 100644 index 00000000..82a1ea79 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Extras/MasterScanner.shader @@ -0,0 +1,62 @@ +Shader ".poiyomi/Extras/MasterScanner" +{ + properties + { + [HideInInspector] m_StencilPassOptions ("Stencil", Float) = 0 + [IntRange] _StencilRef ("Stencil Reference Value", Range(0, 255)) = 0 + //[IntRange] _StencilReadMaskRef ("Stencil ReadMask Value", Range(0, 255)) = 0 + //[IntRange] _StencilWriteMaskRef ("Stencil WriteMask Value", Range(0, 255)) = 0 + [Enum(UnityEngine.Rendering.StencilOp)] _StencilPassOp ("Stencil Pass Op", Float) = 0 + [Enum(UnityEngine.Rendering.StencilOp)] _StencilFailOp ("Stencil Fail Op", Float) = 0 + [Enum(UnityEngine.Rendering.StencilOp)] _StencilZFailOp ("Stencil ZFail Op", Float) = 0 + [Enum(UnityEngine.Rendering.CompareFunction)] _StencilCompareFunction ("Stencil Compare Function", Float) = 8 + } + CustomEditor "ThryEditor" + SubShader + { + + Tags { "Queue" = "background" } + ColorMask 0 + ZWrite Off + Cull Off + ZTest Always + Stencil + { + Ref 901 + Comp Always + Pass Replace + } + + CGINCLUDE + struct appdata + { + float4 vertex: POSITION; + }; + struct v2f + { + float4 pos: SV_POSITION; + }; + v2f vert(appdata v) + { + v2f o; + o.pos = UnityObjectToClipPos(v.vertex); + return o; + } + half4 frag(v2f i): COLOR + { + return half4(1, 1, 0, 1); + } + ENDCG + + Pass + { + + CGPROGRAM + + #pragma vertex vert + #pragma fragment frag + ENDCG + + } + } +}
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Extras/MasterScanner.shader.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Extras/MasterScanner.shader.meta new file mode 100644 index 00000000..72b33770 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Extras/MasterScanner.shader.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: add1d40d10695a24b9e91e172ccb9525 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/PoiLabels.txt b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/PoiLabels.txt new file mode 100644 index 00000000..61838a27 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/PoiLabels.txt @@ -0,0 +1,298 @@ +--{reference_property:REFERENCEA,button_right:{text:Tutorial,action:{type:URL,data:URLSTRING},hover:YouTube}} +THINGASD:=NAMESD--{hide_in_inspector:true} + +reference_property:REFERENCEA, + +--{reference_property:REFERENCEA} +:=--{reference_property:REFERENCEA} + +--{button_right:{text:Tutorial,action:{type:URL,data:URLSTRING},hover:YouTube}} + +--{hide_in_inspector:true} + +// Main +m_mainOptions:=Main--{button_right:{text:Tutorial,action:{type:URL,data:https://www.youtube.com/watch?v=5yxREJE8DPA&list=PL4_Gy3VRJSmbXfQSldzUiChgABQsoBlLw},hover:YouTube},is_visible_simple:true} +_MainTex:=Main Texture--{reference_properties:[_MainTexPan, _MainTextureUV]} +_BumpMap:=Normal Map--{reference_properties:[_BumpMapPan, _BumpMapUV]} +_AlphaMask:=Alpha Map--{reference_properties:[_AlphaMaskPan, _AlphaMaskUV]} +_VertexManipulationHeightMask:=Height Map--{reference_properties:[_VertexManipulationHeightPan, _VertexManipulationHeightUV]} +_BackFaceTexture:= Texture--{reference_properties:[_BackFacePanning, _BackFaceTextureUV]} + +// RGB Mask +m_start_RGBMask:=RGB Mask--{button_right:{text:Tutorial,action:{type:URL,data:https://www.youtube.com/watch?v=VVJ9Ac1_fXk&list=PL4_Gy3VRJSmbXfQSldzUiChgABQsoBlLw},hover:YouTube},reference_property:_RGBMaskEnabled,is_hideable:true} +_RGBMask:=RGB Mask--{reference_properties:[_RGBMaskPanning, _RGBMaskUV]} +_RedTexure:=R Texture--{reference_properties:[_RGBRedPanning, _RGBRed_UV]} +_GreenTexture:=G Texture--{reference_properties:[_RGBGreenPanning, _RGBGreen_UV]} +_BlueTexture:=B Texture--{reference_properties:[_RGBBluePanning, _RGBBlue_UV]} + +// Hue Shift +m_start_MainHueShift:=Hue Shift--{button_right:{text:Tutorial,action:{type:URL,data:https://www.youtube.com/watch?v=Asj7u0Wd5T4&list=PL4_Gy3VRJSmbXfQSldzUiChgABQsoBlLw},hover:YouTube},reference_property:_MainHueShiftToggle,is_hideable:true} +_MainHueShiftMask:=Mask--{reference_properties:[_MainHueShiftMaskPan, _MainHueShiftMaskUV]} + +// Decal +m_start_DecalSection:=Decal--{button_right:{text:Tutorial,action:{type:URL,data:https://www.youtube.com/watch?v=xHoQVN_F7JE&list=PL4_Gy3VRJSmbXfQSldzUiChgABQsoBlLw},hover:YouTube},reference_property:_DecalEnabled,is_hideable:true} +_DecalTexture:=Decal--{reference_properties:[_DecalTexturePan, _DecalTextureUV]} +_DecalMask:=Mask--{reference_properties:[_DecalMaskPan, _DecalMaskUV]} + +// Details +m_start_DetailOptions:=Details--{button_right:{text:Tutorial,action:{type:URL,data:https://www.youtube.com/watch?v=9oIcQln9of4&list=PL4_Gy3VRJSmbXfQSldzUiChgABQsoBlLw},hover:YouTube},is_hideable:true} +_DetailMask:=Detail Mask--{reference_properties:[_DetailMaskPan, _DetailMaskUV]} +_DetailTex:=Detail Texture--{reference_properties:[_DetailTexPan, _DetailTexUV]} +_DetailNormalMap:=Detail Normal--{reference_properties:[_DetailNormalMapPan, _DetailNormalMapUV]} + +// Vertex Manipulation +m_start_vertexManipulation:=Vertex Options--{button_right:{text:Tutorial,action:{type:URL,data:https://www.youtube.com/watch?v=x728WN50JeA&list=PL4_Gy3VRJSmbXfQSldzUiChgABQsoBlLw},hover:YouTube},is_hideable:true} +// Alpha Options +m_start_Alpha:=Alpha Options--{button_right:{text:Tutorial,action:{type:URL,data:https://www.youtube.com/watch?v=kP4KFOd6P6o&list=PL4_Gy3VRJSmbXfQSldzUiChgABQsoBlLw},hover:YouTube},is_hideable:true} + +// Backface +m_start_backFace:=Back Face--{reference_property:_BackFaceEnabled,button_right:{text:Tutorial,action:{type:URL,data:https://www.youtube.com/watch?v=uZnNpiCvsDg&list=PL4_Gy3VRJSmbXfQSldzUiChgABQsoBlLw},hover:YouTube},is_hideable:true} +_BackFaceEnabled:=Back Face--{hide_in_inspector:true} +_BackFaceTexture:=Backface Texture--{reference_properties:[_BackFacePanning, _BackFaceTextureUV]} + +// Lighting +m_lightingOptions:=Lighting & Reflections--{is_hideable:true,is_visible_simple:true} +m_start_Lighting:=Light & Shadow--{reference_property:_EnableLighting,button_right:{text:Tutorial,action:{type:URL,data:https://www.youtube.com/watch?v=TxVmCYkH8CM&list=PL4_Gy3VRJSmbXfQSldzUiChgABQsoBlLw&index=11&t=0s},hover:YouTube},is_hideable:true,is_visible_simple:true} +_EnableLighting:=Light & Shadow--{hide_in_inspector:true} +_LightingAOTex:=AO Map--{reference_properties:[_LightingAOTexPan, _LightingAOTexUV]} + +// Subsurface Scattering +m_start_subsurface:=Subsurface Scattering--{reference_property:_EnableSSS,button_right:{text:Tutorial,action:{type:URL,data:https://www.youtube.com/watch?v=WZ1fmFMVk0U&list=PL4_Gy3VRJSmbXfQSldzUiChgABQsoBlLw},hover:YouTube},is_hideable:true} +_EnableSSS:=Subsurface Scattering--{hide_in_inspector:true} +_SSSThicknessMap:=Thickness Map--{reference_properties:[_SSSThicknessMapPan, _SSSThicknessMapUV]} + +_ToonRamp1:=Lighting Ramp 2--{texture:{width:512,height:4,filterMode:Bilinear,wrapMode:Clamp},force_texture_options:true} +_ToonRamp2:=Lighting Ramp 3--{texture:{width:512,height:4,filterMode:Bilinear,wrapMode:Clamp},force_texture_options:true} +_ToonRamp3:=Lighting Ramp 4--{texture:{width:512,height:4,filterMode:Bilinear,wrapMode:Clamp},force_texture_options:true} + +m_start_lightingStandard:=Standardish Settings + +m_start_lightingAdvanced:=Additive Lighting (Point & Spot Light)--{button_right:{text:Tutorial,action:{type:URL,data:https://www.youtube.com/watch?v=at3p5yRRVU0&list=PL4_Gy3VRJSmbXfQSldzUiChgABQsoBlLw&index=12},hover:YouTube}} + +// Rim Lighting +m_start_rimLightOptions:=Rim Lighting--{reference_property:_EnableRimLighting,button_right:{text:Tutorial,action:{type:URL,data:https://www.youtube.com/watch?v=RE2eWlpdTm8&list=PL4_Gy3VRJSmbXfQSldzUiChgABQsoBlLw},hover:YouTube},is_hideable:true} +_EnableRimLighting:=Rim Lighting--{hide_in_inspector:true} +_RimTex:=Rim Texture--{reference_properties:[_RimTexPan]} +_RimTex:=Rim Texture--{reference_properties:[_RimTexPan, _RimTexUV]} +_RimMask:=Rim Mask--{reference_properties:[_RimMaskPan, _RimMaskUV]} +_RimWidthNoiseTexture:=Width Noise--{reference_properties:[_RimWidthNoiseTexturePan, _RimWidthNoiseTextureUV]} + +// Environmental Rim Lighting +m_start_reflectionRim:=Environmental Rim Lighting--{button_right:{text:Tutorial,action:{type:URL,data:https://www.youtube.com/watch?v=R1LTIjzk-WM&list=PL4_Gy3VRJSmbXfQSldzUiChgABQsoBlLw},hover:YouTube},reference_property:_EnableEnvironmentalRim,is_hideable:true} +_EnableEnvironmentalRim:=Environmental Rim Lighting--{hide_in_inspector:true} +_RimEnviroMask:=Mask--{reference_properties:[_RimEnviroMaskPan, _RimEnviroMaskUV]} + +m_start_bakedLighting:=Baked Lighting--{is_hideable:true} + +// Reflections +m_reflectionOptions:=Reflections--{is_hideable:true,is_visible_simple:true} +// Metal +m_start_Metallic:=Metallics--{reference_property:_EnableMetallic,button_right:{text:Tutorial,action:{type:URL,data:https://www.youtube.com/watch?v=uSoj9eEFhPY&list=PL4_Gy3VRJSmbXfQSldzUiChgABQsoBlLw},hover:YouTube},is_hideable:true,is_visible_simple:true} +_EnableMetallic:=Metallics--{hide_in_inspector:true} +_MetallicMask:=Metallic Map--{reference_properties:[_MetallicMaskPan, _MetallicMaskUV]} +_MetallicTintMap:=RGB Tint A Mask--{reference_properties:[_MetallicTintMapPan, _MetallicTintMapUV]} +_SmoothnessMask:=Smoothness Map--{reference_properties:[_SmoothnessMaskPan, _SmoothnessMaskUV]} + +// Clear Coat +m_start_clearCoat:=Clear Coat--{reference_property:_EnableClearCoat,button_right:{text:Tutorial,action:{type:URL,data:https://www.youtube.com/watch?v=HtbLCfgzFlg&list=PL4_Gy3VRJSmbXfQSldzUiChgABQsoBlLw},hover:YouTube},is_hideable:true} +_EnableClearCoat:=Clear Coat--{hide_in_inspector:true} +_ClearCoatMask:=Mask--{reference_properties:[_ClearCoatMaskPan, _ClearCoatMaskUV]} +_ClearCoatSmoothnessMap:=Smoothness Map--{reference_properties:[_ClearCoatSmoothnessMapPan, _ClearCoatSmoothnessMapUV]} + +// Matcap +m_start_matcap:=Matcap--{reference_property:_MatcapEnable,button_right:{text:Tutorial,action:{type:URL,data:https://youtu.be/DFo87kuO1OI},hover:YouTube},is_hideable:true,is_visible_simple:true} +_MatcapEnable:=Matcap--{hide_in_inspector:true} +_MatcapMask:=Mask--{reference_properties:[_MatcapMaskPan, _MatcapMaskUV]} +m_start_Matcap2:=Matcap 2--{reference_property:_Matcap2Enable,button_right:{text:Tutorial,action:{type:URL,data:https://youtu.be/DFo87kuO1OI},hover:YouTube},is_hideable:true} +_Matcap2Enable:=Matcap 2--{hide_in_inspector:true} +_Matcap2Mask:=Mask--{reference_properties:[_Matcap2MaskPan, _Matcap2MaskUV]} + +// Specular +m_start_specular:=Specular Reflections--{reference_property:_EnableSpecular,button_right:{text:Tutorial,action:{type:URL,data:https://youtu.be/YFFe8IrXVnc},hover:YouTube},is_hideable:true,is_visible_simple:true} +_EnableSpecular:=Specular Reflections--{hide_in_inspector:true} +_SpecularMap:=Spec Map--{reference_properties:[_SpecularMapPan, _SpecularMapUV]} +_SpecularMask:=Spec Mask--{reference_properties:[_SpecularMaskPan, _SpecularMaskUV]} + +// Specular 2 +m_start_specular1:=Specular Reflections 2--{reference_property:_EnableSpecular1,button_right:{text:Tutorial,action:{type:URL,data:https://youtu.be/YFFe8IrXVnc},hover:YouTube},is_hideable:true} +_EnableSpecular1:=Specular Reflections 2--{hide_in_inspector:true} +_SpecularMap1:=Spec Map--{reference_properties:[_SpecularMap1Pan, _SpecularMap1UV]} +_SpecularMask1:=Spec Mask--{reference_properties:[_SpecularMask1Pan, _SpecularMask1UV]} +m_start_SpecularToon1:=Toon Specular +m_start_Anisotropic1:=Anisotropic + +m_outlineOptions:=Outlines--{is_hideable:true} + +m_start_outlineAdvanced:=Advanced--{is_hideable:true,is_visible_simple:true} + +// Special Effects +m_Special_Effects:=Special Effects--{is_hideable:true,is_visible_simple:true} + +// Emission +m_emissionOptions:= Emission--{reference_property:_EnableEmission,button_right:{text:Tutorial,action:{type:URL,data:https://youtu.be/iqk23gtwkz0},hover:YouTube},is_hideable:true} +m_start_emissionOptions:=Emission--{reference_property:_EnableEmission,button_right:{text:Tutorial,action:{type:URL,data:https://youtu.be/iqk23gtwkz0},hover:YouTube},is_hideable:true,is_visible_simple:true} +_EnableEmission:=Emission--{hide_in_inspector:true} +_EmissionMap:=Emission Map--{texture:{width:1224,height:4,filterMode:Bilinear,wrapMode:Repeat},reference_properties:[_EmissionMapPan, _EmissionMapUV], force_texture_options:true} +_EmissionMask:=Emission Mask--{reference_properties:[_EmissionMaskPan, _EmissionMaskUV]} +_EmissionMap1:=Emission Map--{texture:{width:1224,height:4,filterMode:Bilinear,wrapMode:Repeat},reference_properties:[_EmissionMap1Pan, _EmissionMap1UV], force_texture_options:true} +_EmissionMask1:=Emission Mask--{reference_properties:[_EmissionMask1Pan, _EmissionMask1UV]} +m_start_CenterOutEmission:=Center Out Emission +m_start_glowInDarkEmissionOptions:=Glow In The Dark Emission (Requires Lighting Enabled) +m_start_blinkingEmissionOptions:=Blinking Emission +m_start_scrollingEmissionOptions:=Scrolling Emission + +m_start_emission1Options:=Emission 2(Requires Emission 1 Enabled)--{reference_property:_EnableEmission1,is_hideable:true} +_EnableEmission1:=Emission 2(Requires Emission 1 Enabled)--{hide_in_inspector:true} +m_start_CenterOutEmission1:=Center Out Emission +m_start_glowInDarkEmissionOptions1:=Glow In The Dark Emission (Requires Lighting Enabled) +m_start_blinkingEmissionOptions1:=Blinking Emission +m_start_scrollingEmissionOptions1:=Scrolling Emission + +// Flipbook +m_start_flipBook:=Flipbook--{reference_property:_EnableFlipbook,button_right:{reference_property:_EnableFlipbook,text:Tutorial,action:{type:URL,data:https://youtu.be/NrA18CITEVs},hover:YouTube},is_hideable:true} +_EnableFlipbook:=Flipbook--{hide_in_inspector:true} +m_start_manualFlipbookControl:=Manual Frame Control +_FlipbookTexArray:=Texture Array--{reference_properties:[_FlipbookTexArrayPan, _FlipbookTexArrayUV]} +_FlipbookMask:=Mask--{reference_properties:[_FlipbookMaskPan, _FlipbookMaskUV]} + +// Dissolve +m_start_dissolve:=Dissolve--{reference_property:_EnableDissolve,button_right:{reference_property:_EnableDissolve,text:Tutorial,action:{type:URL,data:https://youtu.be/abTejmV4yGU},hover:YouTube},is_hideable:true} +_EnableDissolve:=Dissolve--{hide_in_inspector:true} +m_start_pointToPoint:=Point to Point +_DissolveToTexture:=Dissolved Texture--{reference_properties:[_DissolveToTexturePan, _DissolveToTextureUV]} +_DissolveNoiseTexture:=Dissolve Noise--{reference_properties:[_DissolveNoiseTexturePan, _DissolveNoiseTextureUV, _DissolveInvertNoise]} +_DissolveDetailNoise:=Dissolve Detail Noise--{reference_properties:[_DissolveDetailNoisePan, _DissolveDetailNoiseUV, _DissolveInvertDetailNoise]} +_DissolveMask:=Mask--{reference_properties:[_DissolveMaskPan, _DissolveMaskUV, _DissolveMaskInvert]} + +// Panosphere +m_start_panosphereOptions:=Panosphere--{reference_property:_PanoToggle,button_right:{text:Tutorial,action:{type:URL,data:https://youtu.be/wyCY6qE0_Vg},hover:YouTube},is_hideable:true} +_PanoToggle:=Panosphere--{hide_in_inspector:true} +_PanoMask:=Mask--{reference_properties:[_PanoMaskPan, _PanoMaskUV]} + +// Glitter +m_start_glitter:=Glitter--{reference_property:_GlitterEnable,is_hideable:true} +_GlitterEnable:=Glitter--{hide_in_inspector:true} +_GlitterColorMap:=Color Map--{reference_properties:[_GlitterColorMapPan, _GlitterColorMapUV]} +_GlitterMask:=Mask--{reference_properties:[_GlitterMaskPan, _GlitterMaskUV]} + +// MSDF +m_start_Text:=Text Overlay--{reference_property:_TextEnabled,is_hideable:true} +_TextEnabled:=Text Overlay--{hide_in_inspector:true} +m_start_TextFPS:=FPS--{reference_property:_TextFPSEnabled} +_TextFPSEnabled:=FPS --{hide_in_inspector:true} +m_start_TextPosition:=Position--{reference_property:_TextPositionEnabled} +_TextPositionEnabled:=Position--{hide_in_inspector:true} +m_start_TextInstanceTime:=Instance Time--{reference_property:_TextTimeEnabled} +_TextTimeEnabled:=Instance Time--{hide_in_inspector:true} + +// Mirror Options +m_start_mirrorOptions:=Mirror (VRChat)--{reference_property:_EnableMirrorOptions,button_right:{text:Tutorial,action:{type:URL,data:https://youtu.be/ptnVKyuijO4},hover:YouTube},is_hideable:true} +_EnableMirrorOptions:=Mirror (VRChat)--{hide_in_inspector:true} +_MirrorTexture:=Mirror Texture--{reference_properties:[_MirrorTexturePan, _MirrorTextureUV]} + +// Distance Fade +m_start_distanceFade:=Distance Fade--{is_hideable:true} + +// Angular Fade +m_start_angularFade:=Angular Fade--{reference_property:_EnableRandom,is_hideable:true} +_EnableRandom:=Angular Fade--{hide_in_inspector:true} +// Optimization +m_optimization:=Optimization + +m_ParallaxMap:=Parallax--{reference_property:_ParallaxMap,is_hideable:true} +_ParallaxMap:=Parallax--{hide_in_inspector:true} + +_ParallaxHeightMap:=Height Map--{reference_properties:[_ParallaxHeightMapPan]} + +m_start_parallaxHeightmap:=Heightmap--{reference_property:_ParallaxHeightMapEnabled} +_ParallaxHeightMapEnabled:=Heightmap--{hide_in_inspector:true} + +m_start_parallaxInternal:=Internal Parallax--{reference_property:_ParallaxInternalMapEnabled} +_ParallaxInternalMapEnabled:=Internal Parallax--{hide_in_inspector:true} + +_ParallaxHeightMapMask:=Mask--{reference_properties:[_ParallaxHeightMapMaskPan, _ParallaxHeightMapMaskUV]} +_ParallaxInternalMapMask:=Mask--{reference_properties:[_ParallaxInternalMapMaskPan, _ParallaxInternalMapMaskUV]} + +m_start_parallaxAdvanced:=Advanced + + +m_start_distortionFlow:=UV Distortion--{reference_property:_EnableDistortion,button_right:{text:Tutorial,action:{type:URL,data:https://www.youtube.com/watch?v=J17a3glPMYI&t=1s},hover:YouTube},is_hideable:true} +_EnableDistortion:=UV Distortion--{hide_in_inspector:true} + +// Patreon +m_Patreon:=Patreon--{is_hideable:true} + +// Video Settings +m_start_Video:=Video--{reference_property:_EnableVideo,is_hideable:true} +_EnableVideo:=Video--{hide_in_inspector:true} +m_start_VideoSettings:=Video Texture Settings +m_start_VideoDebug:=Video Debug +m_start_CRT:=CRT Options +m_start_Gameboy:=Gradient Options + +// Touch +m_start_TouchOptions:=Touch FX--(Requires DepthGet Prefab,is_hideable:true) + +// Bulge +m_start_Bulge:=Bulge--{reference_property:_EnableBulge,is_hideable:true} +_EnableBulge:=Bulge --{hide_in_inspector:true} + +// Touch Glow +m_start_TouchGlow:=Touch Color--{reference_property:_EnableTouchGlow, is_hideable:true} +_EnableTouchGlow:=Touch Color --{hide_in_inspector:true} + +// Hologram +m_start_Hologram:=Hologram Alpha--{reference_property:_EnableHolo, is_hideable:true} +_EnableHolo:=Hologram Alpha--{hide_in_inspector:true} + +m_start_FresnelAlpha:=Fresnel Alpha +_HoloAlphaMap:=Alpha Maptexture--{width:1024,height:4,filterMode:Bilinear,wrapMode:Repeat},force_texture_options:true} + +// m_start_GrabPass +m_start_GrabPass:=Grab Pass--{is_hideable:true} + +// Refraction +m_start_Refraction:=Refraction--{reference_property:_RefractionEnabled, is_hideable:true} +_RefractionEnabled:=Refraction--{hide_in_inspector:true} + +// Blur +m_start_Blur:=Blur--{reference_property:_EnableBlur, is_hideable:true} +_EnableBlur:=Blur --{hide_in_inspector:true} + +// Vertex Glitching +m_start_VertexGlitch:=Vertex Glitching--{reference_property:_EnableVertexGlitch, is_hideable:true} +_EnableVertexGlitch:=Enable Glitching--{hide_in_inspector:true} + +// Iridescence +m_start_Iridescence:=Iridescence--{reference_property:_EnableIridescence, is_hideable:true} +_EnableIridescence:=Iridescence--{hide_in_inspector:true} + +// scifi spawn in +m_start_ScifiSpawnIn:=Sci Fi--{reference_property:_EnableScifiSpawnIn, is_hideable:true} +_EnableScifiSpawnIn:=Sci Fi --{hide_in_inspector:true} + +// Black Light +m_start_BlackLight:=Black Light Mask--{reference_property:_BlackLightMaskEnabled, is_hideable:true} + +// Voronoi +m_start_Voronoi:=Voronoi--{reference_property:_EnableVoronoi, is_hideable:true} +_EnableVoronoi:=Voronoi--{hide_in_inspector:true} +m_start_voronoiRandom:=Random Cell Color--{reference_property:_VoronoiEnableRandomCellColor} +_VoronoiEnableRandomCellColor:=Random Cell Color--{hide_in_inspector:true} +_VoronoiMask:=Mask--{reference_properties:[_VoronoiMaskPan, _VoronoiMaskUV]} +_VoronoiNoise:=Edge Noise--{reference_properties:[_VoronoiNoisePan, _VoronoiNoiseUV]} + +m_renderingOptions:=Rendering Options--{button_right:{text:Tutorial,action:{type:URL,data:https://youtu.be/P5KlE9rk9pg},hover:YouTube}, is_hideable:true,is_visible_simple:true} +m_start_StencilPassOptions:=Stencil--{button_right:{text:Tutorial,action:{type:URL,data:https://youtu.be/uniOEpw88jk},hover:YouTube}, is_hideable:true} +m_start_OutlineStencil:=Outline Stencil--{is_hideable:true} + +m_start_debugOptions:=Debug--{reference_property:_DebugEnabled,is_hideable:true} + +m_animationToggles:=Animation Support Toggles--{is_hideable:true} + +// Footer +footer_youtube:={texture:{name:icon-youtube,height:32},action:{type:URL,data:https://www.youtube.com/poiyomi},hover:YOUTUBE} +footer_twitter:={texture:{name:icon-twitter,height:32},action:{type:URL,data:https://twitter.com/poiyomi},hover:TWITTER} +footer_patreon:={texture:{name:icon-patreon,height:32},action:{type:URL,data:https://www.patreon.com/poiyomi},hover:PATREON} +footer_discord:={texture:{name:icon-discord,height:32},action:{type:URL,data:https://discord.gg/Ays52PY},hover:DISCORD} +footer_github:={texture:{name:icon-github,height:32},action:{type:URL,data:https://github.com/poiyomi/PoiyomiToonShader},hover:GITHUB}
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/PoiLabels.txt.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/PoiLabels.txt.meta new file mode 100644 index 00000000..ed4cafc8 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/PoiLabels.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0a61a58ee74a4074e96d62e63f4e3354 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro.meta new file mode 100644 index 00000000..35f87d86 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3babf9055711f064b9986fcf64bf1164 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes.meta new file mode 100644 index 00000000..4908ac7d --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7ef672f9cf9e2ff4e816febc559a75de +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_FunctionsArtistic.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_FunctionsArtistic.cginc new file mode 100644 index 00000000..8d98417c --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_FunctionsArtistic.cginc @@ -0,0 +1,369 @@ +#ifndef POI_FUNCTIONS_ARTISTIC + #define POI_FUNCTIONS_ARTISTIC + + // Based on unity shader graph code + + // * Adjustments * // + + /* + * Channel Mixer + * + * Controls the amount each of the channels of input In contribute to each of the channels of output Out. The slider + * parameters on the node control the contribution of each of the input channels. The toggle button parameters control + * which of the output channels is currently being edited. Slider controls for editing the contribution of each input + * channnel range between -2 and 2. + */ + void poiChannelMixer(float3 In, float3 _ChannelMixer_Red, float3 _ChannelMixer_Green, float3 _ChannelMixer_Blue, out float3 Out) + { + Out = float3(dot(In, _ChannelMixer_Red), dot(In, _ChannelMixer_Green), dot(In, _ChannelMixer_Blue)); + } + + /* + * Contrast + * + * Adjusts the contrast of input In by the amount of input Contrast. A Contrast value of 1 will return the input + * unaltered. A Contrast value of 0 will return the midpoint of the input + */ + void poiContrast(float3 In, float Contrast, out float3 Out) + { + float midpoint = pow(0.5, 2.2); + Out = (In - midpoint) * Contrast + midpoint; + } + + + /* + * Invert Colors + * + * Inverts the colors of input In on a per channel basis. This Node assumes all input values are in the range 0 - 1. + */ + void poiInvertColors(float4 In, float4 InvertColors, out float4 Out) + { + Out = abs(InvertColors - In); + } + + /* + * Replace Color + * + * Replaces values in input In equal to input From to the value of input To. Input Range can be used to define a + * wider range of values around input From to replace. Input Fuzziness can be used to soften the edges around the + * selection similar to anti-aliasing. + */ + void poiReplaceColor(float3 In, float3 From, float3 To, float Range, float Fuzziness, out float3 Out) + { + float Distance = distance(From, In); + Out = lerp(To, In, saturate((Distance - Range) / max(Fuzziness, 0.00001))); + } + + /* + * Saturation + * + * Adjusts the saturation of input In by the amount of input Saturation. A Saturation value of 1 will return the input + * unaltered. A Saturation value of 0 will return the input completely desaturated. + */ + void poiSaturation(float3 In, float Saturation, out float3 Out) + { + float luma = dot(In, float3(0.2126729, 0.7151522, 0.0721750)); + Out = luma.xxx + Saturation.xxx * (In - luma.xxx); + } + + /* + * Dither Node + * + * Dither is an intentional form of noise used to randomize quantization error. It is used to prevent large-scale + * patterns such as color banding in images. The Dither node applies dithering in screen-space to ensure a uniform + * distribution of the pattern. This can be adjusted by connecting another node to input Screen Position. + * + * This Node is commonly used as an input to Alpha Clip Threshold on a Master Node to give the appearance of + * transparency to an opaque object. This is useful for creating objects that appear to be transparent but have + * the advantages of rendering as opaque, such as writing depth and/or being rendered in deferred. + */ + void poiDither(float4 In, float4 ScreenPosition, out float4 Out) + { + float2 uv = ScreenPosition.xy * _ScreenParams.xy; + float DITHER_THRESHOLDS[16] = { + 1.0 / 17.0, 9.0 / 17.0, 3.0 / 17.0, 11.0 / 17.0, + 13.0 / 17.0, 5.0 / 17.0, 15.0 / 17.0, 7.0 / 17.0, + 4.0 / 17.0, 12.0 / 17.0, 2.0 / 17.0, 10.0 / 17.0, + 16.0 / 17.0, 8.0 / 17.0, 14.0 / 17.0, 6.0 / 17.0 + }; + uint index = (uint(uv.x) % 4) * 4 + uint(uv.y) % 4; + Out = In - DITHER_THRESHOLDS[index]; + } + + /* + * Color Mask + * + * Creates a mask from values in input In equal to input Mask Color. Input Range can be used to define a wider + * range of values around input Mask Color to create the mask. Colors within this range will return 1, + * otherwise the node will return 0. Input Fuzziness can be used to soften the edges around the selection + * similar to anti-aliasing. + */ + void poiColorMask(float3 In, float3 MaskColor, float Range, float Fuzziness, out float4 Out) + { + float Distance = distance(MaskColor, In); + Out = saturate(1 - (Distance - Range) / max(Fuzziness, 0.00001)); + } + + float3 hueShift(float3 color, float Offset) + { + float4 K = float4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0); + float4 P = lerp(float4(color.bg, K.wz), float4(color.gb, K.xy), step(color.b, color.g)); + float4 Q = lerp(float4(P.xyw, color.r), float4(color.r, P.yzx), step(P.x, color.r)); + float D = Q.x - min(Q.w, Q.y); + float E = 0.0000000001; + float3 hsv = float3(abs(Q.z + (Q.w - Q.y) / (6.0 * D + E)), D / (Q.x + E), Q.x); + + float hue = hsv.x + Offset; + hsv.x = frac(hue); + + float4 K2 = float4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0); + float3 P2 = abs(frac(hsv.xxx + K2.xyz) * 6.0 - K2.www); + return hsv.z * lerp(K2.xxx, saturate(P2 - K2.xxx), hsv.y); + } + + static const float Epsilon = 1e-10; + // The weights of RGB contributions to luminance. + // Should sum to unity. + static const float3 HCYwts = float3(0.299, 0.587, 0.114); + static const float HCLgamma = 3; + static const float HCLy0 = 100; + static const float HCLmaxL = 0.530454533953517; // == exp(HCLgamma / HCLy0) - 0.5 + static const float3 wref = float3(1.0, 1.0, 1.0); + #define TAU 6.28318531 + + float3 HUEtoRGB(in float H) + { + float R = abs(H * 6 - 3) - 1; + float G = 2 - abs(H * 6 - 2); + float B = 2 - abs(H * 6 - 4); + return saturate(float3(R, G, B)); + } + + float3 RGBtoHCV(in float3 RGB) + { + // Based on work by Sam Hocevar and Emil Persson + float4 P = (RGB.g < RGB.b) ? float4(RGB.bg, -1.0, 2.0 / 3.0): float4(RGB.gb, 0.0, -1.0 / 3.0); + float4 Q = (RGB.r < P.x) ? float4(P.xyw, RGB.r): float4(RGB.r, P.yzx); + float C = Q.x - min(Q.w, Q.y); + float H = abs((Q.w - Q.y) / (6 * C + Epsilon) + Q.z); + return float3(H, C, Q.x); + } + + float3 HSVtoRGB(in float3 HSV) + { + float3 RGB = HUEtoRGB(HSV.x); + return((RGB - 1) * HSV.y + 1) * HSV.z; + } + + float3 RGBtoHSV(in float3 RGB) + { + float3 HCV = RGBtoHCV(RGB); + float S = HCV.y / (HCV.z + Epsilon); + return float3(HCV.x, S, HCV.z); + } + + float3 HSLtoRGB(in float3 HSL) + { + float3 RGB = HUEtoRGB(HSL.x); + float C = (1 - abs(2 * HSL.z - 1)) * HSL.y; + return(RGB - 0.5) * C + HSL.z; + } + + float3 RGBtoHSL(in float3 RGB) + { + float3 HCV = RGBtoHCV(RGB); + float L = HCV.z - HCV.y * 0.5; + float S = HCV.y / (1 - abs(L * 2 - 1) + Epsilon); + return float3(HCV.x, S, L); + } + + float3 HCYtoRGB(in float3 HCY) + { + + + float3 RGB = HUEtoRGB(HCY.x); + float Z = dot(RGB, HCYwts); + if (HCY.z < Z) + { + HCY.y *= HCY.z / Z; + } + else if(Z < 1) + { + HCY.y *= (1 - HCY.z) / (1 - Z); + } + return(RGB - Z) * HCY.y + HCY.z; + } + + float3 RGBtoHCY(in float3 RGB) + { + // Corrected by David Schaeffer + float3 HCV = RGBtoHCV(RGB); + float Y = dot(RGB, HCYwts); + float Z = dot(HUEtoRGB(HCV.x), HCYwts); + if (Y < Z) + { + HCV.y *= Z / (Epsilon + Y); + } + else + { + HCV.y *= (1 - Z) / (Epsilon + 1 - Y); + } + return float3(HCV.x, HCV.y, Y); + } + + float3 HCLtoRGB(in float3 HCL) + { + float3 RGB = 0; + if(HCL.z != 0) + { + float H = HCL.x; + float C = HCL.y; + float L = HCL.z * HCLmaxL; + float Q = exp((1 - C / (2 * L)) * (HCLgamma / HCLy0)); + float U = (2 * L - C) / (2 * Q - 1); + float V = C / Q; + float A = (H + min(frac(2 * H) / 4, frac(-2 * H) / 8)) * pi * 2; + float T; + H *= 6; + if(H <= 0.999) + { + T = tan(A); + RGB.r = 1; + RGB.g = T / (1 + T); + } + else if(H <= 1.001) + { + RGB.r = 1; + RGB.g = 1; + } + else if(H <= 2) + { + T = tan(A); + RGB.r = (1 + T) / T; + RGB.g = 1; + } + else if(H <= 3) + { + T = tan(A); + RGB.g = 1; + RGB.b = 1 + T; + } + else if(H <= 3.999) + { + T = tan(A); + RGB.g = 1 / (1 + T); + RGB.b = 1; + } + else if(H <= 4.001) + { + RGB.g = 0; + RGB.b = 1; + } + else if(H <= 5) + { + T = tan(A); + RGB.r = -1 / T; + RGB.b = 1; + } + else + { + T = tan(A); + RGB.r = 1; + RGB.b = -T; + } + RGB = RGB * V + U; + } + return RGB; + } + + float3 RGBtoHCL(in float3 RGB) + { + float3 HCL; + float H = 0; + float U = min(RGB.r, min(RGB.g, RGB.b)); + float V = max(RGB.r, max(RGB.g, RGB.b)); + float Q = HCLgamma / HCLy0; + HCL.y = V - U; + if(HCL.y != 0) + { + H = atan2(RGB.g - RGB.b, RGB.r - RGB.g) / pi; + Q *= U / V; + } + Q = exp(Q); + HCL.x = frac(H / 2 - min(frac(H), frac(-H)) / 6); + HCL.y *= Q; + HCL.z = lerp(-U, V, Q) / (HCLmaxL * 2); + return HCL; + } + + //HSL MODIFT + float3 ModifyViaHSL(float3 color, float3 HSLMod) + { + float3 colorHSL = RGBtoHSL(color); + colorHSL.r = frac(colorHSL.r + HSLMod.r); + colorHSL.g = saturate(colorHSL.g + HSLMod.g); + colorHSL.b = saturate(colorHSL.b + HSLMod.b); + return HSLtoRGB(colorHSL); + } + + float3 poiSaturation(float3 In, float Saturation) + { + float luma = dot(In, float3(0.2126729, 0.7151522, 0.0721750)); + return luma.xxx + Saturation.xxx * (In - luma.xxx); + } + // LCH + float xyzF(float t) + { + return lerp(pow(t, 1. / 3.), 7.787037 * t + 0.139731, step(t, 0.00885645)); + } + float xyzR(float t) + { + return lerp(t * t * t, 0.1284185 * (t - 0.139731), step(t, 0.20689655)); + } + float3 rgb2lch(in float3 c) + { + c = mul(float3x3(0.4124, 0.3576, 0.1805, + 0.2126, 0.7152, 0.0722, + 0.0193, 0.1192, 0.9505), c); + c.x = xyzF(c.x / wref.x); + c.y = xyzF(c.y / wref.y); + c.z = xyzF(c.z / wref.z); + float3 lab = float3(max(0., 116.0 * c.y - 16.0), 500.0 * (c.x - c.y), 200.0 * (c.y - c.z)); + return float3(lab.x, length(float2(lab.y, lab.z)), atan2(lab.z, lab.y)); + } + + float3 lch2rgb(in float3 c) + { + c = float3(c.x, cos(c.z) * c.y, sin(c.z) * c.y); + + float lg = 1. / 116. * (c.x + 16.); + float3 xyz = float3(wref.x * xyzR(lg + 0.002 * c.y), + wref.y * xyzR(lg), + wref.z * xyzR(lg - 0.005 * c.z)); + + float3 rgb = mul(float3x3(3.2406, -1.5372, -0.4986, + - 0.9689, 1.8758, 0.0415, + 0.0557, -0.2040, 1.0570), xyz); + + return rgb; + } + + //cheaply lerp around a circle + float lerpAng(in float a, in float b, in float x) + { + float ang = fmod(fmod((a - b), TAU) + pi * 3., TAU) - pi; + return ang * x + b; + } + + //Linear interpolation between two colors in Lch space + float3 lerpLch(in float3 a, in float3 b, in float x) + { + float hue = lerpAng(a.z, b.z, x); + return float3(lerp(b.xy, a.xy, x), hue); + } + + float3 poiExpensiveColorBlend(float3 col1, float3 col2, float alpha) + { + return lch2rgb(lerpLch(rgb2lch(col1), rgb2lch(col2), alpha)); + } +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_FunctionsArtistic.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_FunctionsArtistic.cginc.meta new file mode 100644 index 00000000..cfdb6a63 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_FunctionsArtistic.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 2e376fd109ce87a41b889d93e88c6639 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiAlphaToCoverage.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiAlphaToCoverage.cginc new file mode 100644 index 00000000..3abae393 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiAlphaToCoverage.cginc @@ -0,0 +1,32 @@ +#ifndef POI_ALPHA_TO_COVERAGE + #define POI_ALPHA_TO_COVERAGE + + half _MainMipScale; + float _MainAlphaToCoverage; + + float CalcMipLevel(float2 texture_coord) + { + float2 dx = ddx(texture_coord); + float2 dy = ddy(texture_coord); + float delta_max_sqr = max(dot(dx, dx), dot(dy, dy)); + + return 0.5 * log2(delta_max_sqr); + } + + void ApplyAlphaToCoverage(inout float4 finalColor) + { + // Force Model Opacity to 1 if desired + UNITY_BRANCH + if (_Mode == 1) + { + UNITY_BRANCH + if(_MainAlphaToCoverage) + { + // rescale alpha by mip level + finalColor.a *= 1 + max(0, CalcMipLevel(poiMesh.uv[0] * _MainTex_TexelSize.zw)) * _MainMipScale; + // rescale alpha by partial derivative + finalColor.a = (finalColor.a - _Cutoff) / max(fwidth(finalColor.a), 0.0001) + _Cutoff; + } + } + } +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiAlphaToCoverage.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiAlphaToCoverage.cginc.meta new file mode 100644 index 00000000..d513e5dd --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiAlphaToCoverage.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 89ff22574b0f92e49a4b10267d737637 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiAudioLink.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiAudioLink.cginc new file mode 100644 index 00000000..7252fdb6 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiAudioLink.cginc @@ -0,0 +1,114 @@ +#ifndef POI_AUDIOLINK +#define POI_AUDIOLINK + +UNITY_DECLARE_TEX2D(_AudioTexture); +float4 _AudioTexture_ST; +fixed _AudioLinkDelay; +fixed _AudioLinkAveraging; +fixed _AudioLinkAverageRange; + +// Debug +fixed _EnableAudioLinkDebug; +fixed _AudioLinkDebugTreble; +fixed _AudioLinkDebugHighMid; +fixed _AudioLinkDebugLowMid; +fixed _AudioLinkDebugBass; +fixed _AudioLinkDebugAnimate; + +void AudioTextureExists() +{ + half testw = 0; + half testh = 0; + _AudioTexture.GetDimensions(testw, testh); + poiMods.audioLinkTextureExists = testw >= 32; + + switch(testw) + { + case 32: // V1 + poiMods.audioLinkVersion = 1; + break; + case 128: // V2 + poiMods.audioLinkVersion = 2; + break; + default: + poiMods.audioLinkVersion = 1; + break; + } +} + +float getBandAtTime(float band, fixed time) +{ + return UNITY_SAMPLE_TEX2D(_AudioTexture, float2(time, band * .25 + .125)).r; +} + +void initAudioBands() +{ + AudioTextureExists(); + + float versionUvMultiplier = 1; + + if (poiMods.audioLinkVersion == 2) + { + versionUvMultiplier = 0.0625; + } + + if (poiMods.audioLinkTextureExists) + { + poiMods.audioLink.x = UNITY_SAMPLE_TEX2D(_AudioTexture, float2(_AudioLinkDelay, .125 * versionUvMultiplier)); + poiMods.audioLink.y = UNITY_SAMPLE_TEX2D(_AudioTexture, float2(_AudioLinkDelay, .375 * versionUvMultiplier)); + poiMods.audioLink.z = UNITY_SAMPLE_TEX2D(_AudioTexture, float2(_AudioLinkDelay, .625 * versionUvMultiplier)); + poiMods.audioLink.w = UNITY_SAMPLE_TEX2D(_AudioTexture, float2(_AudioLinkDelay, .875 * versionUvMultiplier)); + + UNITY_BRANCH + if (_AudioLinkAveraging) + { + float uv = saturate(_AudioLinkDelay + _AudioLinkAverageRange * .25); + poiMods.audioLink.x += UNITY_SAMPLE_TEX2D(_AudioTexture, float2(uv, .125 * versionUvMultiplier)); + poiMods.audioLink.y += UNITY_SAMPLE_TEX2D(_AudioTexture, float2(uv, .375 * versionUvMultiplier)); + poiMods.audioLink.z += UNITY_SAMPLE_TEX2D(_AudioTexture, float2(uv, .625 * versionUvMultiplier)); + poiMods.audioLink.w += UNITY_SAMPLE_TEX2D(_AudioTexture, float2(uv, .875 * versionUvMultiplier)); + + uv = saturate(_AudioLinkDelay + _AudioLinkAverageRange * .5); + poiMods.audioLink.x += UNITY_SAMPLE_TEX2D(_AudioTexture, float2(uv, .125 * versionUvMultiplier)); + poiMods.audioLink.y += UNITY_SAMPLE_TEX2D(_AudioTexture, float2(uv, .375 * versionUvMultiplier)); + poiMods.audioLink.z += UNITY_SAMPLE_TEX2D(_AudioTexture, float2(uv, .625 * versionUvMultiplier)); + poiMods.audioLink.w += UNITY_SAMPLE_TEX2D(_AudioTexture, float2(uv, .875 * versionUvMultiplier)); + + uv = saturate(_AudioLinkDelay + _AudioLinkAverageRange * .75); + poiMods.audioLink.x += UNITY_SAMPLE_TEX2D(_AudioTexture, float2(uv, .125 * versionUvMultiplier)); + poiMods.audioLink.y += UNITY_SAMPLE_TEX2D(_AudioTexture, float2(uv, .375 * versionUvMultiplier)); + poiMods.audioLink.z += UNITY_SAMPLE_TEX2D(_AudioTexture, float2(uv, .625 * versionUvMultiplier)); + poiMods.audioLink.w += UNITY_SAMPLE_TEX2D(_AudioTexture, float2(uv, .875 * versionUvMultiplier)); + + uv = saturate(_AudioLinkDelay + _AudioLinkAverageRange); + poiMods.audioLink.x += UNITY_SAMPLE_TEX2D(_AudioTexture, float2(uv, .125 * versionUvMultiplier)); + poiMods.audioLink.y += UNITY_SAMPLE_TEX2D(_AudioTexture, float2(uv, .375 * versionUvMultiplier)); + poiMods.audioLink.z += UNITY_SAMPLE_TEX2D(_AudioTexture, float2(uv, .625 * versionUvMultiplier)); + poiMods.audioLink.w += UNITY_SAMPLE_TEX2D(_AudioTexture, float2(uv, .875 * versionUvMultiplier)); + + poiMods.audioLink /= 5; + } + } + + #ifndef OPTIMIZER_ENABLED + UNITY_BRANCH + if (_EnableAudioLinkDebug) + { + poiMods.audioLink.x = _AudioLinkDebugBass; + poiMods.audioLink.y = _AudioLinkDebugLowMid; + poiMods.audioLink.z = _AudioLinkDebugHighMid; + poiMods.audioLink.w = _AudioLinkDebugTreble; + + if (_AudioLinkDebugAnimate) + { + poiMods.audioLink.x *= (sin(_Time.w * 3.1) + 1) * .5; + poiMods.audioLink.y *= (sin(_Time.w * 3.2) + 1) * .5; + poiMods.audioLink.z *= (sin(_Time.w * 3.3) + 1) * .5; + poiMods.audioLink.w *= (sin(_Time.w * 3) + 1) * .5; + } + poiMods.audioLinkTextureExists = 1; + } + #endif +} + +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiAudioLink.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiAudioLink.cginc.meta new file mode 100644 index 00000000..426cf89c --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiAudioLink.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: b4f547d93a614ad4d86c09ba02a0ba8d +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiBRDF.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiBRDF.cginc new file mode 100644 index 00000000..7bb082e5 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiBRDF.cginc @@ -0,0 +1,253 @@ +#ifndef POI_BRDF + #define POI_BRDF + + /* + * MIT License + * + * Copyright (c) 2020 Xiexe + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + + #if defined(PROP_BRDFMETALLICGLOSSMAP) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_BRDFMetallicGlossMap); + #endif + #if defined(PROP_BRDFSPECULARMAP) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_BRDFSpecularMap); + #endif + #if defined(PROP_BRDFMETALLICMAP) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_BRDFMetallicMap); + #endif + + samplerCUBE _BRDFFallback; + + float _BRDFMetallic; + float _BRDFGlossiness; + float _BRDFReflectance; + float _BRDFAnisotropy; + float _BRDFReflectionsEnabled; + float _BRDFSpecularEnabled; + float _BRDFInvertGlossiness; + float _BRDFForceFallback; + + bool DoesReflectionProbeExist() + { + float4 envSample = UNITY_SAMPLE_TEXCUBE_LOD(unity_SpecCube0, poiCam.reflectionDir, UNITY_SPECCUBE_LOD_STEPS); + bool probeExists = !(unity_SpecCube0_HDR.a == 0 && envSample.a == 0); + return probeExists && !_BRDFForceFallback; + } + + float getGeometricSpecularAA(float3 normal) + { + float3 vNormalWsDdx = ddx(normal.xyz); + float3 vNormalWsDdy = ddy(normal.xyz); + float flGeometricRoughnessFactor = pow(saturate(max(dot(vNormalWsDdx.xyz, vNormalWsDdx.xyz), dot(vNormalWsDdy.xyz, vNormalWsDdy.xyz))), 0.333); + return max(0, flGeometricRoughnessFactor); + } + + float3 getAnisotropicReflectionVector(float3 viewDir, float3 bitangent, float3 tangent, float3 normal, float roughness, float anisotropy) + { + float3 anisotropicDirection = anisotropy >= 0.0 ? bitangent: tangent; + float3 anisotropicTangent = cross(anisotropicDirection, viewDir); + float3 anisotropicNormal = cross(anisotropicTangent, anisotropicDirection); + float bendFactor = abs(anisotropy) * saturate(5.0 * roughness); + float3 bentNormal = normalize(lerp(normal, anisotropicNormal, bendFactor)); + return reflect(-viewDir, bentNormal); + } + + float3 F_Schlick(float u, float3 f0) + { + return f0 + (1.0 - f0) * pow(1.0 - u, 5.0); + } + + float3 F_Schlick(const float3 f0, float f90, float VoH) + { + // Schlick 1994, "An Inexpensive BRDF Model for Physically-Based Rendering" + float pow5 = 1.0 - VoH; + pow5 = pow5 * pow5 * pow5 * pow5 * pow5; + return f0 + (f90 - f0) * pow5; + } + + float D_GGX(float NoH, float roughness) + { + float a2 = roughness * roughness; + float f = (NoH * a2 - NoH) * NoH + 1.0; + return a2 / (UNITY_PI * f * f); + } + + float V_SmithGGXCorrelated(float NoV, float NoL, float a) + { + float a2 = a * a; + float GGXL = NoV * sqrt((-NoL * a2 + NoL) * NoL + a2); + float GGXV = NoL * sqrt((-NoV * a2 + NoV) * NoV + a2); + return 0.5 / (GGXV + GGXL); + } + + float D_GGX_Anisotropic(float NoH, const float3 h, const float3 t, const float3 b, float at, float ab) + { + float ToH = dot(t, h); + float BoH = dot(b, h); + float a2 = at * ab; + float3 v = float3(ab * ToH, at * BoH, a2 * NoH); + float v2 = dot(v, v); + float w2 = a2 / v2; + return a2 * w2 * w2 * (1.0 / UNITY_PI); + } + + float3 getBoxProjection(float3 direction, float3 position, float4 cubemapPosition, float3 boxMin, float3 boxMax) + { + // #if defined(UNITY_SPECCUBE_BOX_PROJECTION) // For some reason this doesn't work? + if (cubemapPosition.w > 0) + { + float3 factors = ((direction > 0 ? boxMax: boxMin) - position) / direction; + float scalar = min(min(factors.x, factors.y), factors.z); + direction = direction * scalar + (position - cubemapPosition.xyz); + } + // #endif + return direction; + } + + float3 getDirectSpecular(float roughness, float ndh, float vdn, float ndl, float ldh, float3 f0, float3 halfVector, float3 tangent, float3 bitangent, float anisotropy) + { + #if !defined(LIGHTMAP_ON) + float rough = max(roughness * roughness, 0.0045); + float Dn = D_GGX(ndh, rough); + float3 F = F_Schlick(ldh, f0); + float V = V_SmithGGXCorrelated(vdn, ndl, rough); + float3 directSpecularNonAniso = max(0, (Dn * V) * F); + + anisotropy *= saturate(5.0 * roughness); + float at = max(rough * (1.0 + anisotropy), 0.001); + float ab = max(rough * (1.0 - anisotropy), 0.001); + float D = D_GGX_Anisotropic(ndh, halfVector, tangent, bitangent, at, ab); + float3 directSpecularAniso = max(0, (D * V) * F); + + return lerp(directSpecularNonAniso, directSpecularAniso, saturate(abs(_BRDFAnisotropy * 100))) * 3; // * 100 to prevent blending, blend because otherwise tangents are fucked on lightmapped object + #else + return 0; + #endif + } + + float3 getIndirectSpecular(float metallic, float roughness, float3 reflDir, float3 worldPos, float3 lightmap, float3 normal) + { + float3 spec = float3(0, 0, 0); + #if defined(UNITY_PASS_FORWARDBASE) + float3 indirectSpecular; + Unity_GlossyEnvironmentData envData; + envData.roughness = roughness; + envData.reflUVW = getBoxProjection( + reflDir, worldPos, + unity_SpecCube0_ProbePosition, + unity_SpecCube0_BoxMin.xyz, unity_SpecCube0_BoxMax.xyz + ); + float3 probe0 = Unity_GlossyEnvironment(UNITY_PASS_TEXCUBE(unity_SpecCube0), unity_SpecCube0_HDR, envData); + float interpolator = unity_SpecCube0_BoxMin.w; + UNITY_BRANCH + if (interpolator < 0.99999) + { + envData.reflUVW = getBoxProjection( + reflDir, worldPos, + unity_SpecCube1_ProbePosition, + unity_SpecCube1_BoxMin.xyz, unity_SpecCube1_BoxMax.xyz + ); + float3 probe1 = Unity_GlossyEnvironment(UNITY_PASS_TEXCUBE_SAMPLER(unity_SpecCube1, unity_SpecCube0), unity_SpecCube0_HDR, envData); + indirectSpecular = lerp(probe1, probe0, interpolator); + } + else + { + indirectSpecular = probe0; + } + + if(!DoesReflectionProbeExist()) + { + indirectSpecular = texCUBElod(_BRDFFallback, float4(envData.reflUVW, roughness * UNITY_SPECCUBE_LOD_STEPS)).rgb * poiLight.finalLighting; + } + + float horizon = min(1 + dot(reflDir, normal), 1); + indirectSpecular *= horizon * horizon; + + spec = indirectSpecular; + #if defined(LIGHTMAP_ON) + float specMultiplier = max(0, lerp(1, pow(length(lightmap), _SpecLMOcclusionAdjust), _SpecularLMOcclusion)); + spec *= specMultiplier; + #endif + #endif + return spec; + } + + void poiBRDF(inout float4 finalColor, const float4 finalColorBeforeLighting) + { + float4 ret = float4(1, 0, 0, 1); + #if defined(PROP_BRDFMETALLICGLOSSMAP) || !defined(OPTIMIZER_ENABLED) + float4 metallicGlossMap = POI2D_SAMPLER_PAN(_BRDFMetallicGlossMap, _MainTex, poiMesh.uv[_BRDFMetallicGlossMapUV], _BRDFMetallicGlossMapPan); + #else + float4 metallicGlossMap = 1; + #endif + #if defined(PROP_BRDFSPECULARMAP) || !defined(OPTIMIZER_ENABLED) + float4 spcularTintMask = POI2D_SAMPLER_PAN(_BRDFSpecularMap, _MainTex, poiMesh.uv[_BRDFSpecularMapUV], _BRDFSpecularMapPan); + #else + float4 spcularTintMask = 1; + #endif + #if defined(PROP_BRDFMETALLICMAP) || !defined(OPTIMIZER_ENABLED) + float4 metallicTintMask = POI2D_SAMPLER_PAN(_BRDFMetallicMap, _MainTex, poiMesh.uv[_BRDFMetallicMapUV], _BRDFMetallicMapPan); + #else + float4 metallicTintMask = 1; + #endif + UNITY_BRANCH + if(_BRDFInvertGlossiness == 1) + { + metallicGlossMap.a = 1 - metallicGlossMap.a; + } + + float metallic = metallicGlossMap.r * _BRDFMetallic; + float reflectance = metallicGlossMap.g * _BRDFReflectance; + float roughness = max(1 - (_BRDFGlossiness * metallicGlossMap.a), getGeometricSpecularAA(poiMesh.normals[1])); + finalColor.rgb *= lerp(1, 1 - metallic, _BRDFReflectionsEnabled); + + float3 reflViewDir = getAnisotropicReflectionVector(poiCam.viewDir, poiMesh.binormal, poiMesh.tangent.xyz, poiMesh.normals[1], roughness, _BRDFAnisotropy); + float3 reflLightDir = reflect(poiLight.direction, poiMesh.normals[1]); + + #if defined(FORWARD_BASE_PASS) || defined(POI_META_PASS) + float attenuation = poiMax(poiLight.rampedLightMap); + #endif + #ifdef FORWARD_ADD_PASS + float attenuation = saturate(poiLight.nDotL); + #endif + + + float3 f0 = 0.16 * reflectance * reflectance * (1.0 - metallic) + finalColorBeforeLighting.rgb * metallic; + float3 fresnel = lerp(F_Schlick(poiLight.nDotV, f0), f0, metallic); //Kill fresnel on metallics, it looks bad. + float3 directSpecular = getDirectSpecular(roughness, saturate(poiLight.nDotH), max(poiLight.nDotV, 0.000001), attenuation, saturate(poiLight.lDotH), f0, poiLight.halfDir, poiMesh.tangent.xyz, poiMesh.binormal, _BRDFAnisotropy) * poiLight.attenuation * attenuation * poiLight.color; + directSpecular = min(directSpecular, poiLight.color); + + float3 vDirectSpecular = 0; + #ifdef VERTEXLIGHT_ON + for (int index = 0; index < 4; index ++) + { + float3 v0directSpecular = getDirectSpecular(roughness, saturate(poiLight.vDotNH[index]), max(poiLight.nDotV, 0.000001), attenuation, saturate(poiLight.lDotH), f0, poiLight.vHalfDir[index], poiMesh.tangent, poiMesh.binormal, _BRDFAnisotropy) * poiLight.attenuation * poiLight.vAttenuationDotNL[index] * poiLight.vColor[index]; + vDirectSpecular += min(v0directSpecular, poiLight.vColor[index]); + } + #endif + + float3 indirectSpecular = getIndirectSpecular(metallic, roughness, reflViewDir, poiMesh.worldPos, /*directDiffuse*/ finalColor.rgb, poiMesh.normals[1]) * lerp(fresnel, f0, roughness); + float3 specular = indirectSpecular * _BRDFReflectionsEnabled * metallicTintMask.a * metallicTintMask.rgb * poiLight.occlusion + (directSpecular + vDirectSpecular) * _BRDFSpecularEnabled * spcularTintMask.a * spcularTintMask.rgb; + finalColor.rgb += specular; + } + +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiBRDF.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiBRDF.cginc.meta new file mode 100644 index 00000000..709d8c6c --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiBRDF.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 0543f339ffab97d418a5577bd4cd049c +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiBackFace.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiBackFace.cginc new file mode 100644 index 00000000..af919efc --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiBackFace.cginc @@ -0,0 +1,37 @@ +#ifndef POI_BACKFACE + #define POI_BACKFACE + + float _BackFaceEnabled; + float _BackFaceTextureUV; + float _BackFaceDetailIntensity; + float _BackFaceEmissionStrength; + float2 _BackFacePanning; + float _BackFaceHueShift; + float4 _BackFaceColor; + + #if defined(PROP_BACKFACETEXTURE) || !defined(OPTIMIZER_ENABLED) + UNITY_DECLARE_TEX2D_NOSAMPLER(_BackFaceTexture); float4 _BackFaceTexture_ST; + #endif + + float3 BackFaceColor; + void applyBackFaceTexture(inout float backFaceDetailIntensity, inout float mixedHueShift, inout float4 albedo, inout float3 backFaceEmission) + { + backFaceEmission = 0; + BackFaceColor = 0; + UNITY_BRANCH + if (_BackFaceEnabled) + { + if(!poiMesh.isFrontFace) + { + #if defined(PROP_BACKFACETEXTURE) || !defined(OPTIMIZER_ENABLED) + albedo = POI2D_SAMPLER_PAN(_BackFaceTexture, _MainTex, poiMesh.uv[_BackFaceTextureUV], _BackFacePanning) * _BackFaceColor; + #endif + backFaceDetailIntensity = _BackFaceDetailIntensity; + BackFaceColor = albedo.rgb; + mixedHueShift = _BackFaceHueShift; + backFaceEmission = BackFaceColor * _BackFaceEmissionStrength; + } + } + } + +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiBackFace.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiBackFace.cginc.meta new file mode 100644 index 00000000..7e580bcc --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiBackFace.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 9ee086be5141bcb458615f8ad9f54d79 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiBlackLight.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiBlackLight.cginc new file mode 100644 index 00000000..0ae60087 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiBlackLight.cginc @@ -0,0 +1,56 @@ +#ifndef POI_BLACKLIGHT + #define POI_BLACKLIGHT + + float4 _BlackLightMaskStart; + float4 _BlackLightMaskEnd; + float4 _BlackLightMaskKeys; + float _BlackLightMaskDebug; + float _BlackLightMaskDissolve; + float _BlackLightAdjustDissolve; + float _BlackLightMaskMetallic; + float _BlackLightMaskClearCoat; + float _BlackLightMaskMatcap; + float _BlackLightMaskMatcap2; + float _BlackLightMaskEmission; + float _BlackLightMaskEmission2; + float _BlackLightMaskFlipbook; + float _BlackLightMaskPanosphere; + float _BlackLightMaskIridescence; + float _BlackLightMove; + + half _BlackLightMaskGlitter; + + half4 blackLightMask; + + void createBlackLightMask() + { + blackLightMask = 0; + #ifdef VERTEXLIGHT_ON + + for (int lightIndex = 0; lightIndex < 4; lightIndex ++) + { + float3 lightPos = float3(unity_4LightPosX0[lightIndex], unity_4LightPosY0[lightIndex], unity_4LightPosZ0[lightIndex]); + if (!distance(unity_LightColor[lightIndex].rgb, float3(0, 0, 0))) + { + for (int maskIndex = 0; maskIndex < 4; maskIndex ++) + { + float4 comparison = _BlackLightMaskKeys; + if(unity_LightColor[lightIndex].a == comparison[maskIndex]) + { + blackLightMask[maskIndex] = max(blackLightMask[maskIndex], smoothstep(_BlackLightMaskEnd[maskIndex], _BlackLightMaskStart[maskIndex], distance(poiMesh.worldPos, lightPos))); + } + } + } + } + #endif + } +#endif + +/* +#ifdef POI_BLACKLIGHT + if (_BlackLightMaskDissolve != 4) + { + blackLightMask[mask]; + } +#endif +*/
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiBlackLight.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiBlackLight.cginc.meta new file mode 100644 index 00000000..bd162897 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiBlackLight.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 49ee29e0fa0a33c48a51991dc965e8eb +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiBlending.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiBlending.cginc new file mode 100644 index 00000000..1016ae12 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiBlending.cginc @@ -0,0 +1,385 @@ +#ifndef POI_BLENDING + #define POI_BLENDING + + /* + 0: Zero float4(0.0, 0.0, 0.0, 0.0), + 1: One float4(1.0, 1.0, 1.0, 1.0), + 2: DstColor destinationColor, + 3: SrcColor sourceColor, + 4: OneMinusDstColor float4(1.0, 1.0, 1.0, 1.0) - destinationColor, + 5: SrcAlpha sourceColor.aaaa, + 6: OneMinusSrcColor float4(1.0, 1.0, 1.0, 1.0) - sourceColor, + 7: DstAlpha destinationColor.aaaa, + 8: OneMinusDstAlpha float4(1.0, 1.0, 1.0, 1.0) - destinationColor., + 9: SrcAlphaSaturate saturate(sourceColor.aaaa), + 10: OneMinusSrcAlpha float4(1.0, 1.0, 1.0, 1.0) - sourceColor.aaaa, + */ + + float4 poiBlend(const float sourceFactor, const float4 sourceColor, const float destinationFactor, const float4 destinationColor, const float4 blendFactor) + { + float4 sA = 1 - blendFactor; + const float4 blendData[11] = { + float4(0.0, 0.0, 0.0, 0.0), + float4(1.0, 1.0, 1.0, 1.0), + destinationColor, + sourceColor, + float4(1.0, 1.0, 1.0, 1.0) - destinationColor, + sA, + float4(1.0, 1.0, 1.0, 1.0) - sourceColor, + sA, + float4(1.0, 1.0, 1.0, 1.0) - sA, + saturate(sourceColor.aaaa), + 1 - sA, + }; + + return lerp(blendData[sourceFactor] * sourceColor + blendData[destinationFactor] * destinationColor, sourceColor, sA); + } + + // Average + float3 blendAverage(float3 base, float3 blend) + { + return(base + blend) / 2.0; + } + + // Color burn + float blendColorBurn(float base, float blend) + { + return(blend == 0.0)?blend: max((1.0 - ((1.0 - base) / blend)), 0.0); + } + + float3 blendColorBurn(float3 base, float3 blend) + { + return float3(blendColorBurn(base.r, blend.r), blendColorBurn(base.g, blend.g), blendColorBurn(base.b, blend.b)); + } + + // Color Dodge + float blendColorDodge(float base, float blend) + { + return(blend == 1.0)?blend: min(base / (1.0 - blend), 1.0); + } + + float3 blendColorDodge(float3 base, float3 blend) + { + return float3(blendColorDodge(base.r, blend.r), blendColorDodge(base.g, blend.g), blendColorDodge(base.b, blend.b)); + } + + // Darken + float blendDarken(float base, float blend) + { + return min(blend, base); + } + + float3 blendDarken(float3 base, float3 blend) + { + return float3(blendDarken(base.r, blend.r), blendDarken(base.g, blend.g), blendDarken(base.b, blend.b)); + } + + // Exclusion + float3 blendExclusion(float3 base, float3 blend) + { + return base + blend - 2.0 * base * blend; + } + + // Reflect + float blendReflect(float base, float blend) + { + return(blend == 1.0)?blend: min(base * base / (1.0 - blend), 1.0); + } + + float3 blendReflect(float3 base, float3 blend) + { + return float3(blendReflect(base.r, blend.r), blendReflect(base.g, blend.g), blendReflect(base.b, blend.b)); + } + + // Glow + float3 blendGlow(float3 base, float3 blend) + { + return blendReflect(blend, base); + } + + // Overlay + float blendOverlay(float base, float blend) + { + return base < 0.5?(2.0 * base * blend): (1.0 - 2.0 * (1.0 - base) * (1.0 - blend)); + } + + float3 blendOverlay(float3 base, float3 blend) + { + return float3(blendOverlay(base.r, blend.r), blendOverlay(base.g, blend.g), blendOverlay(base.b, blend.b)); + } + + // Hard Light + float3 blendHardLight(float3 base, float3 blend) + { + return blendOverlay(blend, base); + } + + // Vivid light + float blendVividLight(float base, float blend) + { + return(blend < 0.5)?blendColorBurn(base, (2.0 * blend)): blendColorDodge(base, (2.0 * (blend - 0.5))); + } + + float3 blendVividLight(float3 base, float3 blend) + { + return float3(blendVividLight(base.r, blend.r), blendVividLight(base.g, blend.g), blendVividLight(base.b, blend.b)); + } + + // Hard mix + float blendHardMix(float base, float blend) + { + return(blendVividLight(base, blend) < 0.5)?0.0: 1.0; + } + + float3 blendHardMix(float3 base, float3 blend) + { + return float3(blendHardMix(base.r, blend.r), blendHardMix(base.g, blend.g), blendHardMix(base.b, blend.b)); + } + + // Lighten + float blendLighten(float base, float blend) + { + return max(blend, base); + } + + float3 blendLighten(float3 base, float3 blend) + { + return float3(blendLighten(base.r, blend.r), blendLighten(base.g, blend.g), blendLighten(base.b, blend.b)); + } + + // Linear Burn + float blendLinearBurn(float base, float blend) + { + // Note : Same implementation as BlendSubtractf + return max(base + blend - 1.0, 0.0); + } + + float3 blendLinearBurn(float3 base, float3 blend) + { + // Note : Same implementation as BlendSubtract + return max(base + blend - float3(1.0, 1.0, 1.0), float3(0.0, 0.0, 0.0)); + } + + // Linear Dodge + float blendLinearDodge(float base, float blend) + { + // Note : Same implementation as BlendAddf + return min(base + blend, 1.0); + } + + float3 blendLinearDodge(float3 base, float3 blend) + { + // Note : Same implementation as BlendAdd + return min(base + blend, float3(1.0, 1.0, 1.0)); + } + + // Linear light + float blendLinearLight(float base, float blend) + { + return blend < 0.5?blendLinearBurn(base, (2.0 * blend)): blendLinearDodge(base, (2.0 * (blend - 0.5))); + } + + float3 blendLinearLight(float3 base, float3 blend) + { + return float3(blendLinearLight(base.r, blend.r), blendLinearLight(base.g, blend.g), blendLinearLight(base.b, blend.b)); + } + + // Multiply + float3 blendMultiply(float3 base, float3 blend) + { + return base * blend; + } + + // Negation + float3 blendNegation(float3 base, float3 blend) + { + return float3(1.0, 1.0, 1.0) - abs(float3(1.0, 1.0, 1.0) - base - blend); + } + + // Normal + float3 blendNormal(float3 base, float3 blend) + { + return blend; + } + + // Phoenix + float3 blendPhoenix(float3 base, float3 blend) + { + return min(base, blend) - max(base, blend) + float3(1.0, 1.0, 1.0); + } + + // Pin light + float blendPinLight(float base, float blend) + { + return(blend < 0.5)?blendDarken(base, (2.0 * blend)): blendLighten(base, (2.0 * (blend - 0.5))); + } + + float3 blendPinLight(float3 base, float3 blend) + { + return float3(blendPinLight(base.r, blend.r), blendPinLight(base.g, blend.g), blendPinLight(base.b, blend.b)); + } + + // Screen + float blendScreen(float base, float blend) + { + return 1.0 - ((1.0 - base) * (1.0 - blend)); + } + + float3 blendScreen(float3 base, float3 blend) + { + return float3(blendScreen(base.r, blend.r), blendScreen(base.g, blend.g), blendScreen(base.b, blend.b)); + } + + // Soft Light + float blendSoftLight(float base, float blend) + { + return(blend < 0.5)?(2.0 * base * blend + base * base * (1.0 - 2.0 * blend)): (sqrt(base) * (2.0 * blend - 1.0) + 2.0 * base * (1.0 - blend)); + } + + float3 blendSoftLight(float3 base, float3 blend) + { + return float3(blendSoftLight(base.r, blend.r), blendSoftLight(base.g, blend.g), blendSoftLight(base.b, blend.b)); + } + + // Subtract + float blendSubtract(float base, float blend) + { + return max(base - blend, 0.0); + } + + float3 blendSubtract(float3 base, float3 blend) + { + return max(base - blend, 0.0); + } + + // Difference + float blendDifference(float base, float blend) + { + return abs(base - blend); + } + + float3 blendDifference(float3 base, float3 blend) + { + return abs(base - blend); + } + + // Divide + float blendDivide(float base, float blend) + { + return base / max(blend, 0.0001); + } + + float3 blendDivide(float3 base, float3 blend) + { + return base / max(blend, 0.0001); + } + + float3 customBlend(float3 base, float3 blend, float blendType) + { + float3 ret = 0; + switch(blendType) + { + case 0: + { + ret = blendNormal(base, blend); + break; + } + case 1: + { + ret = blendDarken(base, blend); + break; + } + case 2: + { + ret = blendMultiply(base, blend); + break; + } + case 3: + { + ret = blendColorBurn(base, blend); + break; + } + case 4: + { + ret = blendLinearBurn(base, blend); + break; + } + case 5: + { + ret = blendLighten(base, blend); + break; + } + case 6: + { + ret = blendScreen(base, blend); + break; + } + case 7: + { + ret = blendColorDodge(base, blend); + break; + } + case 8: + { + ret = blendLinearDodge(base, blend); + break; + } + case 9: + { + ret = blendOverlay(base, blend); + break; + } + case 10: + { + ret = blendSoftLight(base, blend); + break; + } + case 11: + { + ret = blendHardLight(base, blend); + break; + } + case 12: + { + ret = blendVividLight(base, blend); + break; + } + case 13: + { + ret = blendLinearLight(base, blend); + break; + } + case 14: + { + ret = blendPinLight(base, blend); + break; + } + case 15: + { + ret = blendHardMix(base, blend); + break; + } + case 16: + { + ret = blendDifference(base, blend); + break; + } + case 17: + { + ret = blendExclusion(base, blend); + break; + } + case 18: + { + ret = blendSubtract(base, blend); + break; + } + case 19: + { + ret = blendDivide(base, blend); + break; + } + } + return ret; + } +#endif diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiBlending.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiBlending.cginc.meta new file mode 100644 index 00000000..ab596bdf --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiBlending.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 9f7b9815516b9bd45afc0657803fde91 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiBulge.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiBulge.cginc new file mode 100644 index 00000000..09e44d6f --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiBulge.cginc @@ -0,0 +1,41 @@ +#ifndef POI_BULGE + #define POI_BULGE + + float _BuldgeFadeLength; + float _BuldgeHeight; + + #if defined(PROP_BULGEMASK) || !defined(OPTIMIZER_ENABLED) + sampler2D _BulgeMask; + #endif + + void bulgyWolgy(inout v2f o) + { + float depth = DecodeFloatRG(tex2Dlod(_CameraDepthTexture, float4(o.grabPos.xy / o.grabPos.w, 0, 0))); + #if defined(PROP_BULGEMASK) || !defined(OPTIMIZER_ENABLED) + float bulgeMask = tex2Dlod(_BulgeMask, float4(o.uv0.xy, 0, 0)); + #else + float bulgeMask = 1.0; + #endif + + depth = Linear01Depth(depth); + + float intersect = 0; + if (depth != 1) + { + float diff = distance(depth, Linear01Depth(o.pos.z / o.pos.w)); + if(diff > 0) + { + intersect = 1 - smoothstep(0, _ProjectionParams.w * _BuldgeFadeLength, diff); + } + } + float4 offset = intersect * _BuldgeHeight * float4(o.normal, 0); + + offset = IsInMirror() ? 0: offset; + offset *= bulgeMask; + + o.worldPos = mul(unity_ObjectToWorld, o.localPos) + offset; + o.localPos = mul(unity_WorldToObject, o.worldPos); + o.pos = UnityObjectToClipPos(o.localPos); + } + +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiBulge.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiBulge.cginc.meta new file mode 100644 index 00000000..bf1b19f9 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiBulge.cginc.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c49023d4328abbe4dbce068a8f1ded2d +ShaderImporter: + externalObjects: {} + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiClearCoat.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiClearCoat.cginc new file mode 100644 index 00000000..215ca740 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiClearCoat.cginc @@ -0,0 +1,327 @@ +#ifndef POI_CLEARCOAT + #define POI_CLEARCOAT + + float _Clearcoat; + float _ClearcoatGlossiness; + float _ClearcoatAnisotropy; + float _ClearcoatForceFallback; + float _ClearcoatEnableReflections; + float _ClearcoatEnableSpecular; + float _ClearcoatInvertSmoothness; + #if defined(PROP_CLEARCOATMAP) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_ClearcoatMap); + #endif + + samplerCUBE _ClearcoatFallback; + /* + samplerCUBE _ClearCoatCubeMap; + float _ClearCoatSampleWorld; + float _ClearcoatInvertSmoothness; + float _Clearcoat; + float3 _ClearCoatTint; + float _ClearCoatNormalToUse; + float _ClearCoatForceLighting; + float lighty_clear_boy_uwu_var; + + #if defined(PROP_CLEARCOATSMOOTHNESSMAP) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_ClearCoatSmoothnessMap); + #endif + + float3 CalculateClearCoatEnvironmentalReflections() + { + float3 reflectionColor; + + #if defined(PROP_CLEARCOATSMOOTHNESSMAP) || !defined(OPTIMIZER_ENABLED) + float smoothnessMap = (POI2D_SAMPLER_PAN(_ClearCoatSmoothnessMap, _MainTex, poiMesh.uv[_ClearCoatSmoothnessMapUV], _ClearCoatSmoothnessMapPan)); + #else + float smoothnessMap = 1.0; + #endif + + if (_ClearcoatInvertSmoothness == 1) + { + smoothnessMap = 1 - smoothnessMap; + } + smoothnessMap *= _ClearCoatSmoothness; + float roughness = 1 - smoothnessMap; + + lighty_clear_boy_uwu_var = 0; + + float3 reflectedDir = _ClearCoatNormalToUse == 0 ? poiCam.vertexReflectionDir: poiCam.reflectionDir; + + float4 envSample = UNITY_SAMPLE_TEXCUBE_LOD(unity_SpecCube0, reflectedDir, roughness * UNITY_SPECCUBE_LOD_STEPS); + bool no_probe = unity_SpecCube0_HDR.a == 0 && envSample.a == 0; + + UNITY_BRANCH + if(_ClearCoatSampleWorld == 0 && no_probe == 0) + { + + Unity_GlossyEnvironmentData envData; + envData.roughness = roughness; + envData.reflUVW = BoxProjection( + reflectedDir, poiMesh.worldPos.xyz, + unity_SpecCube0_ProbePosition, + unity_SpecCube0_BoxMin, unity_SpecCube0_BoxMax + ); + float3 probe0 = Unity_GlossyEnvironment( + UNITY_PASS_TEXCUBE(unity_SpecCube0), unity_SpecCube0_HDR, envData + ); + envData.reflUVW = BoxProjection( + reflectedDir, poiMesh.worldPos.xyz, + unity_SpecCube1_ProbePosition, + unity_SpecCube1_BoxMin, unity_SpecCube1_BoxMax + ); + + float interpolator = unity_SpecCube0_BoxMin.w; + UNITY_BRANCH + if(interpolator < 0.99999) + { + float3 probe1 = Unity_GlossyEnvironment( + UNITY_PASS_TEXCUBE_SAMPLER(unity_SpecCube1, unity_SpecCube0), + unity_SpecCube0_HDR, envData + ); + reflectionColor = lerp(probe1, probe0, interpolator); + } + else + { + reflectionColor = probe0; + } + } + else + { + lighty_clear_boy_uwu_var = 1; + reflectionColor = texCUBElod(_ClearCoatCubeMap, float4(reflectedDir, roughness * UNITY_SPECCUBE_LOD_STEPS)); + } + + if(_ClearCoatForceLighting) + { + lighty_clear_boy_uwu_var = 1; + } + + return reflectionColor * _ClearCoatTint; + } + + void calculateAndApplyClearCoat(inout float4 finalColor) + { + #if defined(PROP_CLEARCOATMASK) || !defined(OPTIMIZER_ENABLED) + half clearCoatMap = POI2D_SAMPLER_PAN(_ClearcoatMap, _MainTex, poiMesh.uv[_ClearCoatMaskUV], _ClearCoatMaskPan); + #else + half clearCoatMap = 1; + #endif + + #ifdef POI_BLACKLIGHT + if(_BlackLightMaskClearCoat != 4) + { + clearCoatMap *= blackLightMask[_BlackLightMaskClearCoat]; + } + #endif + + half3 reflectionColor = CalculateClearCoatEnvironmentalReflections(); + + float NormalDotView = abs(dot(_Clearcoat, _ClearCoatNormalToUse == 0 ? poiLight.N0DotV: poiLight.nDotV).r); + #ifdef POI_LIGHTING + finalColor.rgb = lerp(finalColor.rgb, reflectionColor * lerp(1, poiLight.finalLighting, lighty_clear_boy_uwu_var), clearCoatMap * _Clearcoat * clamp(FresnelTerm(_Clearcoat, NormalDotView), 0, 1)); + //finalColor.rgb += reflectionColor; + //finalColor.rgb = finalColor.rgb * (1- (reflectionColor.r + reflectionColor.g + reflectionColor.b)/3) + reflectionColor * clearCoatMap * lerp(1, poiLight.finalLighting, lighty_clear_boy_uwu_var); + #else + finalColor.rgb = lerp(finalColor.rgb, reflectionColor, clearCoatMap * _Clearcoat * clamp(FresnelTerm(_Clearcoat, NormalDotView), 0, 1)); + #endif + } + */ + + bool clearcoatDoesReflectionProbeExist() + { + float4 envSample = UNITY_SAMPLE_TEXCUBE_LOD(unity_SpecCube0, poiCam.reflectionDir, UNITY_SPECCUBE_LOD_STEPS); + bool probeExists = !(unity_SpecCube0_HDR.a == 0 && envSample.a == 0); + return probeExists && !_ClearcoatForceFallback; + } + + float3 clearcoatF_Schlick(float u, float3 f0) + { + return f0 + (1.0 - f0) * pow(1.0 - u, 5.0); + } + + float4 getClearcoatSmoothness(float4 clearcoatMap) + { + float roughness = 1 - (_ClearcoatGlossiness * clearcoatMap.a); + roughness = clamp(roughness, 0.0045, 1.0); + roughness = roughness * roughness; + + float reflectivity = _Clearcoat * clearcoatMap.r; + return float4(reflectivity, 0, 0, roughness); + } + + float getGeometricClearCoatSpecularAA(float3 normal) + { + float3 vNormalWsDdx = ddx(normal.xyz); + float3 vNormalWsDdy = ddy(normal.xyz); + float flGeometricRoughnessFactor = pow(saturate(max(dot(vNormalWsDdx.xyz, vNormalWsDdx.xyz), dot(vNormalWsDdy.xyz, vNormalWsDdy.xyz))), 0.333); + return max(0, flGeometricRoughnessFactor); + } + + float3 getClearcoatAnisotropicReflectionVector(float3 viewDir, float3 bitangent, float3 tangent, float3 normal, float roughness, float anisotropy) + { + //_Anisotropy = lerp(-0.2, 0.2, sin(_Time.y / 20)); //This is pretty fun + float3 anisotropicDirection = anisotropy >= 0.0 ? bitangent: tangent; + float3 anisotropicTangent = cross(anisotropicDirection, viewDir); + float3 anisotropicNormal = cross(anisotropicTangent, anisotropicDirection); + float bendFactor = abs(anisotropy) * saturate(5.0 * roughness); + float3 bentNormal = normalize(lerp(normal, anisotropicNormal, bendFactor)); + return reflect(-viewDir, bentNormal); + } + + float D_GGXClearcoat(float NoH, float roughness) + { + float a2 = roughness * roughness; + float f = (NoH * a2 - NoH) * NoH + 1.0; + return a2 / (UNITY_PI * f * f); + } + + float D_GGXClearcoat_Anisotropic(float NoH, const float3 h, const float3 t, const float3 b, float at, float ab) + { + float ToH = dot(t, h); + float BoH = dot(b, h); + float a2 = at * ab; + float3 v = float3(ab * ToH, at * BoH, a2 * NoH); + float v2 = dot(v, v); + float w2 = a2 / v2; + return a2 * w2 * w2 * (1.0 / UNITY_PI); + } + + float V_SmithGGXClearcoatCorrelated(float NoV, float NoL, float a) + { + float a2 = a * a; + float GGXL = NoV * sqrt((-NoL * a2 + NoL) * NoL + a2); + float GGXV = NoL * sqrt((-NoV * a2 + NoV) * NoV + a2); + return 0.5 / (GGXV + GGXL); + } + + float3 getClearcoatDirectSpecular(float roughness, float ndh, float vdn, float ndl, float ldh, float3 f0, float3 halfVector, float3 tangent, float3 bitangent, float anisotropy) + { + #if !defined(LIGHTMAP_ON) + float rough = max(roughness * roughness, 0.0045); + float Dn = D_GGXClearcoat(ndh, rough); + float3 F = clearcoatF_Schlick(ldh, f0); + float V = V_SmithGGXClearcoatCorrelated(vdn, ndl, rough); + float3 directSpecularNonAniso = max(0, (Dn * V) * F); + + anisotropy *= saturate(5.0 * roughness); + float at = max(rough * (1.0 + anisotropy), 0.001); + float ab = max(rough * (1.0 - anisotropy), 0.001); + float D = D_GGXClearcoat_Anisotropic(ndh, halfVector, tangent, bitangent, at, ab); + float3 directSpecularAniso = max(0, (D * V) * F); + + return lerp(directSpecularNonAniso, directSpecularAniso, saturate(abs(_ClearcoatAnisotropy * 100))) * 3; // * 100 to prevent blending, blend because otherwise tangents are fucked on lightmapped object + #else + return 0; + #endif + } + + float3 getClearCoatBoxProjection(float3 direction, float3 position, float4 cubemapPosition, float3 boxMin, float3 boxMax) + { + // #if defined(UNITY_SPECCUBE_BOX_PROJECTION) // For some reason this doesn't work? + if (cubemapPosition.w > 0) + { + float3 factors = ((direction > 0 ? boxMax: boxMin) - position) / direction; + float scalar = min(min(factors.x, factors.y), factors.z); + direction = direction * scalar + (position - cubemapPosition.xyz); + } + // #endif + return direction; + } + + float3 getClearcoatIndirectSpecular(float metallic, float roughness, float3 reflDir, float3 worldPos, float3 lightmap, float3 normal) + { + float3 spec = float3(0, 0, 0); + #if defined(UNITY_PASS_FORWARDBASE) + float3 indirectSpecular; + Unity_GlossyEnvironmentData envData; + envData.roughness = roughness; + envData.reflUVW = getClearCoatBoxProjection( + reflDir, worldPos, + unity_SpecCube0_ProbePosition, + unity_SpecCube0_BoxMin.xyz, unity_SpecCube0_BoxMax.xyz + ); + float3 probe0 = Unity_GlossyEnvironment(UNITY_PASS_TEXCUBE(unity_SpecCube0), unity_SpecCube0_HDR, envData); + float interpolator = unity_SpecCube0_BoxMin.w; + UNITY_BRANCH + if (interpolator < 0.99999) + { + envData.reflUVW = getClearCoatBoxProjection( + reflDir, worldPos, + unity_SpecCube1_ProbePosition, + unity_SpecCube1_BoxMin.xyz, unity_SpecCube1_BoxMax.xyz + ); + float3 probe1 = Unity_GlossyEnvironment(UNITY_PASS_TEXCUBE_SAMPLER(unity_SpecCube1, unity_SpecCube0), unity_SpecCube0_HDR, envData); + indirectSpecular = lerp(probe1, probe0, interpolator); + } + else + { + indirectSpecular = probe0; + } + + if(!clearcoatDoesReflectionProbeExist()) + { + indirectSpecular = texCUBElod(_ClearcoatFallback, float4(envData.reflUVW, roughness * UNITY_SPECCUBE_LOD_STEPS)).rgb * poiLight.finalLighting; + } + + float horizon = min(1 + dot(reflDir, normal), 1); + indirectSpecular *= horizon * horizon; + + spec = indirectSpecular; + #if defined(LIGHTMAP_ON) + float specMultiplier = max(0, lerp(1, pow(length(lightmap), _SpecLMOcclusionAdjust), _SpecularLMOcclusion)); + spec *= specMultiplier; + #endif + #endif + return spec; + } + + void calculateAndApplyClearCoat(inout float4 finalColor) + { + #if defined(PROP_CLEARCOATMAP) || !defined(OPTIMIZER_ENABLED) + float4 clearCoatMap = POI2D_SAMPLER_PAN(_ClearcoatMap, _MainTex, poiMesh.uv[_ClearcoatMapUV], _ClearcoatMapPan); + #else + float4 clearCoatMap = 1; + #endif + + float4 clearcoatReflectivitySmoothness = getClearcoatSmoothness(clearCoatMap); + float clearcoatReflectivity = clearcoatReflectivitySmoothness.r; + float clearcoatRoughness = clearcoatReflectivitySmoothness.a; + UNITY_BRANCH + if(_ClearcoatInvertSmoothness) + { + clearcoatRoughness = 1 - clearcoatRoughness; + } + float3 creflViewDir = getClearcoatAnisotropicReflectionVector(poiCam.viewDir, poiMesh.binormal, poiMesh.tangent.xyz, poiMesh.normals[0], clearcoatRoughness, _ClearcoatAnisotropy); + float cndl = saturate(dot(poiLight.direction, poiMesh.normals[0])); + float cvdn = abs(dot(poiCam.viewDir, poiMesh.normals[0])); + float cndh = saturate(dot(poiMesh.normals[0], poiLight.halfDir)); + + float3 clearcoatf0 = 0.16 * clearcoatReflectivity * clearcoatReflectivity; + float3 clearcoatFresnel = clearcoatF_Schlick(cvdn, clearcoatf0); + + #if defined(FORWARD_BASE_PASS) || defined(POI_META_PASS) + float attenuation = poiLight.rampedLightMap; + #endif + #ifdef FORWARD_ADD_PASS + float attenuation = saturate(poiLight.nDotL); + #endif + + float3 vDirectSpecular = 0; + #ifdef VERTEXLIGHT_ON + for (int index = 0; index < 4; index ++) + { + float vcndh = saturate(dot(poiMesh.normals[0], poiLight.vHalfDir[index])); + float vcndl = saturate(dot(poiLight.vDirection[index], poiMesh.normals[0])); + float3 v0directSpecular = getClearcoatDirectSpecular(clearcoatRoughness, vcndh, cvdn, vcndl, saturate(poiLight.vDotLH[index]), clearcoatf0, poiLight.halfDir, poiMesh.tangent, poiMesh.binormal, _ClearcoatAnisotropy) * poiLight.vAttenuation * vcndl * poiLight.vColor[index]; + vDirectSpecular += v0directSpecular; + } + #endif + + float3 clearcoatDirectSpecular = getClearcoatDirectSpecular(clearcoatRoughness, cndh, cvdn, attenuation, saturate(poiLight.lDotH), clearcoatf0, poiLight.halfDir, poiMesh.tangent, poiMesh.binormal, _ClearcoatAnisotropy) * poiLight.attenuation * attenuation * poiLight.color; + float3 clearcoatIndirectSpecular = getClearcoatIndirectSpecular(0, clearcoatRoughness, creflViewDir, poiMesh.worldPos, finalColor, poiMesh.normals[0]); + float3 clearcoat = ((clearcoatDirectSpecular + vDirectSpecular) * clearCoatMap.g * _ClearcoatEnableSpecular + clearcoatIndirectSpecular * clearCoatMap.b * _ClearcoatEnableReflections) * clearcoatReflectivity * clearcoatFresnel; + finalColor.rgb += clearcoat; + } + +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiClearCoat.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiClearCoat.cginc.meta new file mode 100644 index 00000000..895de4d7 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiClearCoat.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 05e2de0df0c3a8147a1f7989db8ebd19 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiData.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiData.cginc new file mode 100644 index 00000000..0aea5f61 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiData.cginc @@ -0,0 +1,268 @@ +#ifndef POI_DATA +#define POI_DATA + +float _ParallaxBias; +float _LightingAdditiveLimitIntensity; +float _LightingAdditiveMaxIntensity; +POI_TEXTURE_NOSAMPLER(_BumpMap); +#ifdef FINALPASS + #if defined(PROP_DETAILMASK) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_DetailMask); + #endif + #if defined(PROP_DETAILNORMALMAP) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_DetailNormalMap); + #endif + float _DetailNormalMapScale; +#endif +float _BumpScale; + +void calculateAttenuation(v2f i) +{ + #ifdef FORWARD_ADD_PASS + #if defined(POINT) || defined(SPOT) + POI_LIGHT_ATTENUATION(attenuation, shadow, i, i.worldPos.xyz) + poiLight.additiveShadow = shadow; + #else + UNITY_LIGHT_ATTENUATION(attenuation, i, i.worldPos.xyz) + poiLight.additiveShadow == 0; + #endif + #else + UNITY_LIGHT_ATTENUATION(attenuation, i, i.worldPos.xyz) + // fix for rare bug where light atten is 0 when there is no directional light in the scene + #ifdef FORWARD_BASE_PASS + if (all(_LightColor0.rgb == 0.0)) + { + attenuation = 1.0; + } + #endif + #endif + poiLight.attenuation = attenuation; +} + +void calculateVertexLightingData(in v2f i) +{ + #ifdef VERTEXLIGHT_ON + float4 toLightX = unity_4LightPosX0 - i.worldPos.x; + float4 toLightY = unity_4LightPosY0 - i.worldPos.y; + float4 toLightZ = unity_4LightPosZ0 - i.worldPos.z; + float4 lengthSq = 0; + lengthSq += toLightX * toLightX; + lengthSq += toLightY * toLightY; + lengthSq += toLightZ * toLightZ; + + float4 lightAttenSq = unity_4LightAtten0; + float4 atten = 1.0 / (1.0 + lengthSq * lightAttenSq); + float4 vLightWeight = saturate(1 - (lengthSq * lightAttenSq / 25)); + poiLight.vAttenuation = min(atten, vLightWeight * vLightWeight); + + poiLight.vDotNL = 0; + poiLight.vDotNL += toLightX * poiMesh.normals[1].x; + poiLight.vDotNL += toLightY * poiMesh.normals[1].y; + poiLight.vDotNL += toLightZ * poiMesh.normals[1].z; + + float4 corr = rsqrt(lengthSq); + poiLight.vDotNL = max(0, poiLight.vDotNL * corr); + poiLight.vAttenuationDotNL = poiLight.vAttenuation * poiLight.vDotNL; + + for (int index = 0; index < 4; index++) + { + poiLight.vPosition[index] = float3(unity_4LightPosX0[index], unity_4LightPosY0[index], unity_4LightPosZ0[index]); + + float3 vertexToLightSource = poiLight.vPosition[index] - poiMesh.worldPos; + poiLight.vDirection[index] = normalize(vertexToLightSource); + //poiLight.vAttenuationDotNL[index] = 1.0 / (1.0 + unity_4LightAtten0[index] * poiLight.vDotNL[index]); + poiLight.vColor[index] = unity_LightColor[index].rgb; + UNITY_BRANCH + if (_LightingAdditiveLimitIntensity == 1) + { + float intensity = max(0.001, (0.299 * poiLight.vColor[index].r + 0.587 * poiLight.vColor[index].g + 0.114 * poiLight.vColor[index].b)); + poiLight.vColor[index] = min(poiLight.vColor[index], poiLight.vColor[index] / (intensity / _LightingAdditiveMaxIntensity)); + } + poiLight.vHalfDir[index] = Unity_SafeNormalize(poiLight.vDirection[index] + poiCam.viewDir); + poiLight.vDotNL[index] = dot(poiMesh.normals[1], -poiLight.vDirection[index]); + poiLight.vCorrectedDotNL[index] = .5 * (poiLight.vDotNL[index] + 1); + poiLight.vDotLH[index] = saturate(dot(poiLight.vDirection[index], poiLight.vHalfDir[index])); + + poiLight.vDotNH[index] = saturate(dot(poiMesh.normals[1], poiLight.vHalfDir[index])); + } + #endif +} + +void calculateLightingData(in v2f i) +{ + poiLight.occlusion = 1; + #ifdef FORWARD_BASE_PASS + //poiLight.color = saturate(_LightColor0.rgb) + saturate(ShadeSH9(normalize(unity_SHAr + unity_SHAg + unity_SHAb))); + float3 magic = max(ShadeSH9(normalize(unity_SHAr + unity_SHAg + unity_SHAb)), 0); + float3 normalLight = _LightColor0.rgb; + poiLight.color = magic + normalLight; + #else + #ifdef FORWARD_ADD_PASS + poiLight.color = _LightColor0.rgb; + + UNITY_BRANCH + if (_LightingAdditiveLimitIntensity == 1) + { + float additiveLightIntensity = max(0.001, (0.299 * poiLight.color.r + 0.587 * poiLight.color.g + 0.114 * poiLight.color.b)); + poiLight.color = min(poiLight.color, poiLight.color / (additiveLightIntensity / _LightingAdditiveMaxIntensity)); + } + #endif + #endif + + #ifdef FORWARD_BASE_PASS + poiLight.direction = normalize(_WorldSpaceLightPos0.xyz + unity_SHAr.xyz + unity_SHAg.xyz + unity_SHAb.xyz); + #else + #if defined(POINT) || defined(SPOT) + poiLight.direction = normalize(_WorldSpaceLightPos0.xyz - i.worldPos.xyz); + #else + poiLight.direction = _WorldSpaceLightPos0.xyz; + #endif + #endif + + poiLight.halfDir = normalize(poiLight.direction + poiCam.viewDir); + + #ifdef POI_VAR_DOTNH + poiLight.dotNH = saturate(dot(poiMesh.normals[1], poiLight.halfDir)); + #endif + + #ifdef POI_VAR_DOTLH + poiLight.dotLH = saturate(dot(poiLight.direction, poiLight.halfDir)); + #endif + + poiLight.nDotV = dot(poiMesh.normals[1], poiCam.viewDir); + poiLight.N0DotV = dot(poiMesh.normals[0], poiCam.viewDir); + poiLight.nDotL = dot(poiMesh.normals[1], poiLight.direction); + poiLight.nDotH = dot(poiMesh.normals[1], poiLight.halfDir); + poiLight.lDotv = dot(poiLight.direction, poiCam.viewDir); + poiLight.lDotH = dot(poiLight.direction, poiLight.halfDir); +} + +float3 CreateBinormal(float3 normal, float3 tangent, float binormalSign) +{ + return cross(normal, tangent.xyz) * (binormalSign * unity_WorldTransformParams.w); +} + +void InitializeMeshData(inout v2f i, uint facing) +{ + poiMesh.isFrontFace = facing; + poiMesh.normals[0] = normalize(i.normal); + poiMesh.binormal = CreateBinormal(i.normal, i.tangent.xyz, i.tangent.w); + poiMesh.tangent = i.tangent; + + #ifndef OUTLINE + if (!poiMesh.isFrontFace) + { + poiMesh.normals[0] *= -1; + poiMesh.tangent *= -1; + poiMesh.binormal *= -1; + } + #endif + + poiMesh.worldPos = i.worldPos.xyz; + poiMesh.localPos = i.localPos.xyz; + poiMesh.barycentricCoordinates = i.barycentricCoordinates; + poiMesh.uv[0] = i.uv0.xy; + poiMesh.uv[1] = i.uv0.zw; + poiMesh.uv[2] = i.uv1.xy; + poiMesh.uv[3] = i.uv1.zw; + + #ifdef POI_UV_DISTORTION + poiMesh.uv[4] = calculateDistortionUV(i.uv0.xy); + #else + poiMesh.uv[4] = poiMesh.uv[0]; + #endif + + poiMesh.vertexColor = i.vertexColor; + #if defined(LIGHTMAP_ON) || defined(DYNAMICLIGHTMAP_ON) + poiMesh.lightmapUV = i.lightmapUV; + #endif + poiMesh.modelPos = i.modelPos; + + #ifdef FUR + poiMesh.furAlpha = i.furAlpha; + #endif +} + +void initPoiMods() +{ + poiMods.audioLink = float4(0, 0, 0, 0); + poiMods.globalMasks = float4(0, 0, 0, 0); + #ifdef POI_AUDIOLINK + initAudioBands(); + #endif +} + +void initializeCamera(v2f i) +{ + poiCam.viewDir = normalize(_WorldSpaceCameraPos - i.worldPos.xyz); + poiCam.forwardDir = getCameraForward(); + poiCam.worldPos = _WorldSpaceCameraPos; + poiCam.distanceToModel = distance(poiMesh.modelPos, poiCam.worldPos); + poiCam.distanceToVert = distance(poiMesh.worldPos, poiCam.worldPos); + poiCam.grabPos = i.grabPos; + poiCam.screenUV = calcScreenUVs(i.grabPos); + poiCam.clipPos = i.pos; + #if defined(GRAIN) + poiCam.worldDirection = i.worldDirection; + #endif + + poiCam.tangentViewDir = normalize(i.tangentViewDir); + poiCam.decalTangentViewDir = poiCam.tangentViewDir; + poiCam.tangentViewDir.xy /= (poiCam.tangentViewDir.z + _ParallaxBias); +} + +void calculateTangentData() +{ + poiTData.tangentTransform = float3x3(poiMesh.tangent.xyz, poiMesh.binormal, poiMesh.normals[0]); + poiTData.tangentToWorld = transpose(float3x3(poiMesh.tangent.xyz, poiMesh.binormal, poiMesh.normals[0])); +} + +void CalculateReflectionData() +{ + #if defined(_METALLICGLOSSMAP) || defined(_COLORCOLOR_ON) + poiCam.reflectionDir = reflect(-poiCam.viewDir, poiMesh.normals[1]); + poiCam.vertexReflectionDir = reflect(-poiCam.viewDir, poiMesh.normals[0]); + #endif +} + +void calculateNormals(inout half3 detailMask) +{ + half3 mainNormal = UnpackScaleNormal(POI2D_SAMPLER_PAN(_BumpMap, _MainTex, poiMesh.uv[_BumpMapUV], _BumpMapPan), _BumpScale); + + #ifdef FINALPASS + #if defined(PROP_DETAILMASK) || !defined(OPTIMIZER_ENABLED) + detailMask = POI2D_SAMPLER_PAN(_DetailMask, _MainTex, poiMesh.uv[_DetailMaskUV], _DetailMaskPan).rgb; + #else + detailMask = 1; + #endif + UNITY_BRANCH + if (_DetailNormalMapScale > 0) + { + #if defined(PROP_DETAILNORMALMAP) || !defined(OPTIMIZER_ENABLED) + half3 detailNormal = UnpackScaleNormal(POI2D_SAMPLER_PAN(_DetailNormalMap, _MainTex, poiMesh.uv[_DetailNormalMapUV], _DetailNormalMapPan), _DetailNormalMapScale * detailMask.g); + poiMesh.tangentSpaceNormal = BlendNormals(mainNormal, detailNormal); + #else + poiMesh.tangentSpaceNormal = mainNormal; + #endif + } + else + { + poiMesh.tangentSpaceNormal = mainNormal; + } + #else + poiMesh.tangentSpaceNormal = mainNormal; + #endif + + #ifdef POI_RGBMASK + calculateRGBNormals(poiMesh.tangentSpaceNormal); + #endif + + poiMesh.normals[1] = normalize( + poiMesh.tangentSpaceNormal.x * poiMesh.tangent.xyz + + poiMesh.tangentSpaceNormal.y * poiMesh.binormal + + poiMesh.tangentSpaceNormal.z * poiMesh.normals[0] + ); + + poiCam.viewDotNormal = abs(dot(poiCam.viewDir, poiMesh.normals[1])); +} +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiData.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiData.cginc.meta new file mode 100644 index 00000000..3d82995e --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiData.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 221d9e3fa8c8639449704bdb192dbc4f +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiDebug.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiDebug.cginc new file mode 100644 index 00000000..961b5fb7 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiDebug.cginc @@ -0,0 +1,107 @@ +#ifndef POI_DEBUG + #define POI_DEBUG + + float _DebugEnabled; + float _DebugMeshData; + float _DebugLightingData; + float _DebugCameraData; + + void displayDebugInfo(inout float4 finalColor) + { + UNITY_BRANCH + if (_DebugEnabled != 0) + { + //Mesh Data + if (_DebugMeshData == 1) + { + finalColor.rgb = poiMesh.normals[0]; + return; + } + else if(_DebugMeshData == 2) + { + finalColor.rgb = poiMesh.normals[1]; + return; + } + else if(_DebugMeshData == 3) + { + finalColor.rgb = poiMesh.tangent; + return; + } + else if(_DebugMeshData == 4) + { + finalColor.rgb = poiMesh.binormal; + return; + } + else if(_DebugMeshData == 5) + { + finalColor.rgb = poiMesh.localPos; + return; + } + + #ifdef POI_LIGHTING + if(_DebugLightingData == 1) + { + finalColor.rgb = poiLight.attenuation; + return; + } + else if(_DebugLightingData == 2) + { + finalColor.rgb = poiLight.directLighting; + return; + } + else if(_DebugLightingData == 3) + { + finalColor.rgb = poiLight.indirectLighting; + return; + } + else if(_DebugLightingData == 4) + { + finalColor.rgb = poiLight.lightMap; + return; + } + else if(_DebugLightingData == 5) + { + finalColor.rgb = poiLight.rampedLightMap; + return; + } + else if(_DebugLightingData == 6) + { + finalColor.rgb = poiLight.finalLighting; + return; + } + else if(_DebugLightingData == 7) + { + finalColor.rgb = poiLight.nDotL; + return; + } + #endif + + if(_DebugCameraData == 1) + { + finalColor.rgb = poiCam.viewDir; + return; + } + else if(_DebugCameraData == 2) + { + finalColor.rgb = poiCam.tangentViewDir; + return; + } + else if(_DebugCameraData == 3) + { + finalColor.rgb = poiCam.forwardDir; + return; + } + else if(_DebugCameraData == 4) + { + finalColor.rgb = poiCam.worldPos; + return; + } + else if(_DebugCameraData == 5) + { + finalColor.rgb = poiCam.viewDotNormal; + return; + } + } + } + +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiDebug.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiDebug.cginc.meta new file mode 100644 index 00000000..40d0b923 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiDebug.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 1cc16395659ad2b4b886b2caaeb83829 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiDecal.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiDecal.cginc new file mode 100644 index 00000000..1c068fac --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiDecal.cginc @@ -0,0 +1,268 @@ +#ifndef POI_DECAL +#define POI_DECAL + + +#if defined(PROP_DECALMASK) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_DecalMask); +#endif + +#if defined(PROP_DECALTEXTURE) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_DecalTexture); +#else + float2 _DecalTextureUV; +#endif +float4 _DecalColor; +fixed _DecalTiled; +float _DecalBlendType; +half _DecalRotation; +half2 _DecalScale; +half2 _DecalPosition; +half _DecalRotationSpeed; +float _DecalEmissionStrength; +float _DecalBlendAlpha; +float _DecalHueShiftEnabled; +float _DecalHueShift; +float _DecalHueShiftSpeed; + +// Audio Link +half _AudioLinkDecal0ScaleBand; +float4 _AudioLinkDecal0Scale; +half _AudioLinkDecal0AlphaBand; +float2 _AudioLinkDecal0Alpha; +half _AudioLinkDecal0EmissionBand; +float2 _AudioLinkDecal0Emission; + +half _AudioLinkDecal1ScaleBand; +float4 _AudioLinkDecal1Scale; +half _AudioLinkDecal1AlphaBand; +float2 _AudioLinkDecal1Alpha; +half _AudioLinkDecal1EmissionBand; +float2 _AudioLinkDecal1Emission; + +half _AudioLinkDecal2ScaleBand; +float4 _AudioLinkDecal2Scale; +half _AudioLinkDecal2AlphaBand; +float2 _AudioLinkDecal2Alpha; +half _AudioLinkDecal2EmissionBand; +float2 _AudioLinkDecal2Emission; + +half _AudioLinkDecal3ScaleBand; +float4 _AudioLinkDecal3Scale; +half _AudioLinkDecal3AlphaBand; +float2 _AudioLinkDecal3Alpha; +half _AudioLinkDecal3EmissionBand; +float2 _AudioLinkDecal3Emission; + +#ifdef GEOM_TYPE_BRANCH_DETAIL + #if defined(PROP_DECALTEXTURE1) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_DecalTexture1); + #else + float2 _DecalTexture1UV; + #endif + float4 _DecalColor1; + fixed _DecalTiled1; + float _DecalBlendType1; + half _DecalRotation1; + half2 _DecalScale1; + half2 _DecalPosition1; + half _DecalRotationSpeed1; + float _DecalEmissionStrength1; + float _DecalBlendAlpha1; + float _DecalHueShiftEnabled1; + float _DecalHueShift1; + float _DecalHueShiftSpeed1; +#endif + +#ifdef GEOM_TYPE_FROND + #if defined(PROP_DECALTEXTURE2) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_DecalTexture2); + #else + float2 _DecalTexture2UV; + #endif + float4 _DecalColor2; + fixed _DecalTiled2; + float _DecalBlendType2; + half _DecalRotation2; + half2 _DecalScale2; + half2 _DecalPosition2; + half _DecalRotationSpeed2; + float _DecalEmissionStrength2; + float _DecalBlendAlpha2; + float _DecalHueShiftEnabled2; + float _DecalHueShift2; + float _DecalHueShiftSpeed2; +#endif + +#ifdef DEPTH_OF_FIELD_COC_VIEW + #if defined(PROP_DECALTEXTURE3) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_DecalTexture3); + #else + float2 _DecalTexture3UV; + #endif + float4 _DecalColor3; + fixed _DecalTiled3; + float _DecalBlendType3; + half _DecalRotation3; + half2 _DecalScale3; + half2 _DecalPosition3; + half _DecalRotationSpeed3; + float _DecalEmissionStrength3; + float _DecalBlendAlpha3; + float _DecalHueShiftEnabled3; + float _DecalHueShift3; + float _DecalHueShiftSpeed3; +#endif + +// Parallax +float _Decal0Depth; +float _Decal1Depth; +float _Decal2Depth; +float _Decal3Depth; + +float2 calcParallax(float height) +{ + return((height * - 1) + 1) * (poiCam.decalTangentViewDir.xy / poiCam.decalTangentViewDir.z); +} + + +float2 decalUV(float uvNumber, float2 position, half rotation, half rotationSpeed, half2 scale, float depth) +{ + float2 uv = poiMesh.uv[uvNumber] + calcParallax(depth + 1); + float2 decalCenter = position; + float theta = radians(rotation + _Time.z * rotationSpeed); + float cs = cos(theta); + float sn = sin(theta); + uv = float2((uv.x - decalCenter.x) * cs - (uv.y - decalCenter.y) * sn + decalCenter.x, (uv.x - decalCenter.x) * sn + (uv.y - decalCenter.y) * cs + decalCenter.y); + uv = remap(uv, float2(0, 0) - scale / 2 + position, scale / 2 + position, float2(0, 0), float2(1, 1)); + return uv; +} + +inline float3 decalHueShift(float enabled, float3 color, float shift, float shiftSpeed) +{ + UNITY_BRANCH + if (enabled) + { + color = hueShift(color, shift + _Time.x * shiftSpeed); + } + return color; +} + +inline float applyTilingClipping(float enabled, float2 uv) +{ + float ret = 1; + UNITY_BRANCH + if (!enabled) + { + if (uv.x > 1 || uv.y > 1 || uv.x < 0 || uv.y < 0) + { + ret = 0; + } + } + return ret; +} + +void applyDecals(inout float4 albedo, inout float3 decalEmission) +{ + + #if defined(PROP_DECALMASK) || !defined(OPTIMIZER_ENABLED) + float4 decalMask = POI2D_SAMPLER_PAN(_DecalMask, _MainTex, poiMesh.uv[_DecalMaskUV], _DecalMaskPan); + #else + float4 decalMask = 1; + #endif + + float4 decalColor = 1; + float2 uv = 0; + + // Decal 0 + float2 decalScale = float2(1, 1); + decalScale = _DecalScale; + #if defined(PROP_DECALTEXTURE) || !defined(OPTIMIZER_ENABLED) + #ifdef POI_AUDIOLINK + UNITY_BRANCH + if (poiMods.audioLinkTextureExists) + { + decalScale += lerp(_AudioLinkDecal0Scale.xy, _AudioLinkDecal0Scale.zw, poiMods.audioLink[_AudioLinkDecal0ScaleBand]); + } + #endif + uv = decalUV(_DecalTextureUV, _DecalPosition, _DecalRotation, _DecalRotationSpeed, decalScale, _Decal0Depth); + decalColor = POI2D_SAMPLER_PAN(_DecalTexture, _MainTex, uv, _DecalTexturePan) * _DecalColor; + #else + uv = decalUV(_DecalTextureUV, _DecalPosition, _DecalRotation, _DecalRotationSpeed, decalScale, _Decal0Depth); + decalColor = _DecalColor; + #endif + decalColor.rgb = decalHueShift(_DecalHueShiftEnabled, decalColor.rgb, _DecalHueShift, _DecalHueShiftSpeed); + decalColor.a *= applyTilingClipping(_DecalTiled, uv) * decalMask.r; + albedo.rgb = lerp(albedo.rgb, customBlend(albedo.rgb, decalColor.rgb, _DecalBlendType), decalColor.a * saturate(_DecalBlendAlpha + lerp(_AudioLinkDecal0Alpha.x, _AudioLinkDecal0Alpha.y, poiMods.audioLink[_AudioLinkDecal0AlphaBand]))); + + decalEmission += decalColor.rgb * decalColor.a * max(_DecalEmissionStrength + lerp(_AudioLinkDecal0Emission.x, _AudioLinkDecal0Emission.y, poiMods.audioLink[_AudioLinkDecal0EmissionBand]), 0); + #ifdef GEOM_TYPE_BRANCH_DETAIL + // Decal 1 + decalScale = _DecalScale1; + #if defined(PROP_DECALTEXTURE1) || !defined(OPTIMIZER_ENABLED) + #ifdef POI_AUDIOLINK + UNITY_BRANCH + if (poiMods.audioLinkTextureExists) + { + decalScale += lerp(_AudioLinkDecal1Scale.xy, _AudioLinkDecal1Scale.zw, poiMods.audioLink[_AudioLinkDecal1ScaleBand]); + } + #endif + uv = decalUV(_DecalTexture1UV, _DecalPosition1, _DecalRotation1, _DecalRotationSpeed1, decalScale, _Decal1Depth); + decalColor = POI2D_SAMPLER_PAN(_DecalTexture1, _MainTex, uv, _DecalTexture1Pan) * _DecalColor1; + #else + uv = decalUV(_DecalTexture1UV, _DecalPosition1, _DecalRotation1, _DecalRotationSpeed1, decalScale, _Decal1Depth); + decalColor = _DecalColor1; + #endif + decalColor.rgb = decalHueShift(_DecalHueShiftEnabled1, decalColor.rgb, _DecalHueShift1, _DecalHueShiftSpeed1); + decalColor.a *= applyTilingClipping(_DecalTiled1, uv) * decalMask.g; + albedo.rgb = lerp(albedo.rgb, customBlend(albedo.rgb, decalColor.rgb, _DecalBlendType1), decalColor.a * saturate(_DecalBlendAlpha1 + lerp(_AudioLinkDecal1Alpha.x, _AudioLinkDecal1Alpha.y, poiMods.audioLink[_AudioLinkDecal1AlphaBand]))); + decalEmission += decalColor.rgb * decalColor.a * max(_DecalEmissionStrength1 + lerp(_AudioLinkDecal1Emission.x, _AudioLinkDecal1Emission.y, poiMods.audioLink[_AudioLinkDecal1EmissionBand]), 0); + #endif + #ifdef GEOM_TYPE_FROND + // Decal 2 + decalScale = _DecalScale2; + #if defined(PROP_DECALTEXTURE2) || !defined(OPTIMIZER_ENABLED) + #ifdef POI_AUDIOLINK + UNITY_BRANCH + if (poiMods.audioLinkTextureExists) + { + decalScale += lerp(_AudioLinkDecal2Scale.xy, _AudioLinkDecal2Scale.zw, poiMods.audioLink[_AudioLinkDecal2ScaleBand]); + } + #endif + uv = decalUV(_DecalTexture2UV, _DecalPosition2, _DecalRotation2, _DecalRotationSpeed2, decalScale, _Decal2Depth); + decalColor = POI2D_SAMPLER_PAN(_DecalTexture2, _MainTex, uv, _DecalTexture2Pan) * _DecalColor2; + #else + uv = decalUV(_DecalTexture2UV, _DecalPosition2, _DecalRotation2, _DecalRotationSpeed2, decalScale, _Decal2Depth); + decalColor = _DecalColor2; + #endif + decalColor.rgb = decalHueShift(_DecalHueShiftEnabled2, decalColor.rgb, _DecalHueShift2, _DecalHueShiftSpeed2); + decalColor.a *= applyTilingClipping(_DecalTiled2, uv) * decalMask.b; + albedo.rgb = lerp(albedo.rgb, customBlend(albedo.rgb, decalColor.rgb, _DecalBlendType2), decalColor.a * saturate(_DecalBlendAlpha2 + lerp(_AudioLinkDecal2Alpha.x, _AudioLinkDecal2Alpha.y, poiMods.audioLink[_AudioLinkDecal2AlphaBand]))); + decalEmission += decalColor.rgb * decalColor.a * max(_DecalEmissionStrength2 + lerp(_AudioLinkDecal2Emission.x, _AudioLinkDecal2Emission.y, poiMods.audioLink[_AudioLinkDecal2EmissionBand]), 0); + #endif + #ifdef DEPTH_OF_FIELD_COC_VIEW + // Decal 3 + decalScale = _DecalScale3; + #if defined(PROP_DECALTEXTURE3) || !defined(OPTIMIZER_ENABLED) + #ifdef POI_AUDIOLINK + UNITY_BRANCH + if (poiMods.audioLinkTextureExists) + { + decalScale += lerp(_AudioLinkDecal3Scale.xy, _AudioLinkDecal3Scale.zw, poiMods.audioLink[_AudioLinkDecal3ScaleBand]); + } + #endif + uv = decalUV(_DecalTexture3UV, _DecalPosition3, _DecalRotation3, _DecalRotationSpeed3, decalScale, _Decal3Depth); + decalColor = POI2D_SAMPLER_PAN(_DecalTexture3, _MainTex, uv, _DecalTexture3Pan) * _DecalColor3; + #else + uv = decalUV(_DecalTexture3UV, _DecalPosition3, _DecalRotation3, _DecalRotationSpeed3, decalScale, _Decal3Depth); + decalColor = _DecalColor3; + #endif + decalColor.rgb = decalHueShift(_DecalHueShiftEnabled3, decalColor.rgb, _DecalHueShift3, _DecalHueShiftSpeed3); + decalColor.a *= applyTilingClipping(_DecalTiled3, uv) * decalMask.a; + albedo.rgb = lerp(albedo.rgb, customBlend(albedo.rgb, decalColor.rgb, _DecalBlendType3), decalColor.a * saturate(_DecalBlendAlpha3 + lerp(_AudioLinkDecal3Alpha.x, _AudioLinkDecal3Alpha.y, poiMods.audioLink[_AudioLinkDecal3AlphaBand]))); + decalEmission += decalColor.rgb * decalColor.a * max(_DecalEmissionStrength3 + lerp(_AudioLinkDecal3Emission.x, _AudioLinkDecal3Emission.y, poiMods.audioLink[_AudioLinkDecal3EmissionBand]), 0); + #endif + + albedo = saturate(albedo); +} + +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiDecal.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiDecal.cginc.meta new file mode 100644 index 00000000..f49f4460 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiDecal.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 664de60cb14b4194ba278cf1f8d8cec5 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiDefines.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiDefines.cginc new file mode 100644 index 00000000..4a6cb840 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiDefines.cginc @@ -0,0 +1,22 @@ +#ifndef POI_DEFINES + #define POI_DEFINES + + #define DielectricSpec float4(0.04, 0.04, 0.04, 1.0 - 0.04) + #define pi float(3.14159265359) + + #ifdef _SPECGLOSSMAP // Specular + #ifndef POI_VAR_DOTNH + #define POI_VAR_DOTNH + #endif + #ifndef POI_VAR_DOTLH + #define POI_VAR_DOTLH + #endif + #endif + + #ifdef VIGNETTE_MASKED // Lighting + #ifndef POI_VAR_DOTNL + #define POI_VAR_DOTNL + #endif + #endif + +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiDefines.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiDefines.cginc.meta new file mode 100644 index 00000000..7d163c12 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiDefines.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 7c4268f3614d17d49ba4a6865bd104de +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiDepthColor.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiDepthColor.cginc new file mode 100644 index 00000000..6e1f834d --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiDepthColor.cginc @@ -0,0 +1,129 @@ +#ifndef POI_DEPTH_COLOR + #define POI_DEPTH_COLOR + + float4 _DepthGlowColor; + float _DepthGlowEmission; + float _FadeLength; + float _DepthAlphaMin; + float _DepthAlphaMax; + float _DepthGradientTextureUV; + float _DepthGradientBlend; + + #if defined(PROP_DEPTHGRADIENT) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_DepthGradient); + #endif + #if defined(PROP_DEPTHMASK) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_DepthMask); + #endif + + /* + void applyDepthColor(inout float4 finalColor, inout float3 depthTouchEmission, inout float3 finalEmission, float4 worldDirection, float4 clipPos) + { + float3 touchEmission = 0; + if (!IsInMirror()) + { + float fadeLength = _FadeLength; + fadeLength *= 0.01; + float depth = DecodeFloatRG(tex2Dproj(_CameraDepthTexture, worldDirection)); + depth = Linear01Depth(depth); + if(depth != 1) + { + float diff = distance(depth, Linear01Depth(clipPos.z)); + float intersect = 0; + if(diff > 0) + { + intersect = clamp(1 - smoothstep(0, _ProjectionParams.w * fadeLength, diff), 0, 1); + } + half4 depthGradient = UNITY_SAMPLE_TEX2D_SAMPLER(_DepthGradient, _MainTex, intersect); + half3 depthMask = UNITY_SAMPLE_TEX2D_SAMPLER(_DepthMask, _MainTex, poiMesh.uv[0]); + half3 depthColor = depthGradient.rgb * _DepthGlowColor.rgb; + finalColor.rgb = lerp(finalColor.rgb, depthColor, intersect * depthMask); + finalColor.a *= lerp(_DepthAlphaMax, _DepthAlphaMin, intersect); + touchEmission = depthColor * _DepthGlowEmission * intersect * depthMask; + } + } + depthTouchEmission = touchEmission; + } + */ + + inline float CorrectedLinearEyeDepth(float z, float B) + { + return 1.0 / (z / PM._34 + B); + } + + void applyDepthColor(inout float4 finalColor, inout float3 depthTouchEmission, inout float3 finalEmission, in float4 worldDirection) + { + float3 touchEmission = 0; + float fadeLength = _FadeLength; + fadeLength *= 0.01; + + float perspectiveDivide = 1.0f / poiCam.clipPos.w; + float4 direction = worldDirection * perspectiveDivide; + float2 screenPos = poiCam.grabPos.xy * perspectiveDivide; + float z = SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, screenPos); + + #if UNITY_REVERSED_Z + if (z == 0) + #else + if(z == 1) + #endif + return; + + float depth = CorrectedLinearEyeDepth(z, direction.w); + float3 worldpos = direction * depth + _WorldSpaceCameraPos.xyz; + /* + finalColor.rgb = frac(worldpos); + return; + */ + + float diff = distance(worldpos, poiMesh.worldPos); + float intersect = 0; + intersect = clamp(1 - smoothstep(0, fadeLength, diff), 0, 1); + #if defined(PROP_DEPTHMASK) || !defined(OPTIMIZER_ENABLED) + half3 depthMask = POI2D_SAMPLER_PAN(_DepthMask, _MainTex, poiMesh.uv[_DepthMaskUV], _DepthMaskPan); + #else + half3 depthMask = 1; + #endif + + half4 depthGradient = 0; + half3 depthColor = 0; + + UNITY_BRANCH + if (_DepthGradientTextureUV == 0) + { + #if defined(PROP_DEPTHGRADIENT) || !defined(OPTIMIZER_ENABLED) + depthGradient = POI2D_SAMPLER_PAN(_DepthGradient, _MainTex, float2(intersect, intersect), _DepthGradientPan); + #else + depthGradient = 1; + #endif + depthColor = depthGradient.rgb * _DepthGlowColor.rgb; + } + else + { + #if defined(PROP_DEPTHGRADIENT) || !defined(OPTIMIZER_ENABLED) + depthGradient = POI2D_SAMPLER_PAN(_DepthGradient, _MainTex, poiMesh.uv[_DepthGradientUV], _DepthGradientPan); + #else + depthGradient = 1; + #endif + depthColor = depthGradient.rgb * _DepthGlowColor.rgb * intersect; + } + + UNITY_BRANCH + if(_DepthGradientBlend == 0) // rpelace + { + finalColor.rgb = lerp(finalColor.rgb, depthColor, intersect * depthMask); + } + else if (_DepthGradientBlend == 1) // add + { + finalColor.rgb += depthColor * intersect * depthMask; + } + else if (_DepthGradientBlend == 2) // multiply + { + finalColor.rgb *= lerp(1, depthColor, intersect * depthMask); + } + finalColor.a *= lerp(_DepthAlphaMax, _DepthAlphaMin, intersect * depthMask); + touchEmission = depthColor * _DepthGlowEmission * intersect * depthMask; + + depthTouchEmission = touchEmission; + } +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiDepthColor.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiDepthColor.cginc.meta new file mode 100644 index 00000000..72f55fc6 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiDepthColor.cginc.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 051133829be575149906a0cbe6572012 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiDissolve.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiDissolve.cginc new file mode 100644 index 00000000..b05b31db --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiDissolve.cginc @@ -0,0 +1,237 @@ +#ifndef POI_DISSOLVE +#define POI_DISSOLVE + +float _DissolveType; +float _DissolveEdgeWidth; +float4 _DissolveEdgeColor; +sampler2D _DissolveEdgeGradient; float4 _DissolveEdgeGradient_ST; +float _DissolveEdgeEmission; +float4 _DissolveTextureColor; + +#if defined(PROP_DISSOLVETOTEXTURE) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_DissolveToTexture); +#endif + +#if defined(PROP_DISSOLVENOISETEXTURE) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_DissolveNoiseTexture); +#endif + +#if defined(PROP_DISSOLVEDETAILNOISE) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_DissolveDetailNoise); +#endif + +#if defined(PROP_DISSOLVEMASK) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_DissolveMask); +#endif + +float _DissolveMaskInvert; +float _DissolveAlpha; +float _ContinuousDissolve; +float _DissolveDetailStrength; +float _DissolveEdgeHardness; +float _DissolveInvertNoise; +float _DissolveInvertDetailNoise; +float _DissolveToEmissionStrength; + +// Point to Point +float _DissolveP2PWorldLocal; +float _DissolveP2PEdgeLength; +float4 _DissolveStartPoint; +float4 _DissolveEndPoint; + +// World Dissolve +float _DissolveWorldShape; +float4 _DissolveShapePosition; +float4 _DissolveShapeRotation; +float _DissolveShapeScale; +float _DissolveInvertShape; +float _DissolveShapeEdgeLength; + +float _DissolveAlpha0; +float _DissolveAlpha1; +float _DissolveAlpha2; +float _DissolveAlpha3; +float _DissolveAlpha4; +float _DissolveAlpha5; +float _DissolveAlpha6; +float _DissolveAlpha7; +float _DissolveAlpha8; +float _DissolveAlpha9; +// Masking +float _DissolveEmissionSide; +float _DissolveEmission1Side; +float _DissolveUseVertexColors; + +// Audio Link +#ifdef POI_AUDIOLINK + fixed _EnableDissolveAudioLink; + half _AudioLinkDissolveAlphaBand; + float2 _AudioLinkDissolveAlpha; + half _AudioLinkDissolveDetailBand; + float2 _AudioLinkDissolveDetail; +#endif + +float4 edgeColor; +float edgeAlpha; +float dissolveAlpha; +float4 dissolveToTexture; + +float _DissolveHueShiftEnabled; +float _DissolveHueShiftSpeed; +float _DissolveHueShift; +float _DissolveEdgeHueShiftEnabled; +float _DissolveEdgeHueShiftSpeed; +float _DissolveEdgeHueShift; +void calculateDissolve(inout float4 albedo, inout float3 dissolveEmission) +{ + #if defined(PROP_DISSOLVEMASK) || !defined(OPTIMIZER_ENABLED) + float dissolveMask = POI2D_SAMPLER_PAN(_DissolveMask, _MainTex, poiMesh.uv[_DissolveMaskUV], _DissolveMaskPan).r; + #else + float dissolveMask = 1; + #endif + UNITY_BRANCH + if (_DissolveUseVertexColors) + { + // Vertex Color Imprecision hype + dissolveMask = ceil(poiMesh.vertexColor.g * 100000) / 100000; + } + + #if defined(PROP_DISSOLVETOTEXTURE) || !defined(OPTIMIZER_ENABLED) + dissolveToTexture = POI2D_SAMPLER_PAN(_DissolveToTexture, _MainTex, poiMesh.uv[_DissolveToTextureUV], _DissolveToTexturePan) * _DissolveTextureColor; + #else + dissolveToTexture = _DissolveTextureColor; + #endif + + #if defined(PROP_DISSOLVENOISETEXTURE) || !defined(OPTIMIZER_ENABLED) + float dissolveNoiseTexture = POI2D_SAMPLER_PAN(_DissolveNoiseTexture, _MainTex, poiMesh.uv[_DissolveNoiseTextureUV], _DissolveNoiseTexturePan).r; + #else + float dissolveNoiseTexture = 1; + #endif + + float da = _DissolveAlpha + + _DissolveAlpha0 + + _DissolveAlpha1 + + _DissolveAlpha2 + + _DissolveAlpha3 + + _DissolveAlpha4 + + _DissolveAlpha5 + + _DissolveAlpha6 + + _DissolveAlpha7 + + _DissolveAlpha8 + + _DissolveAlpha9; + float dds = _DissolveDetailStrength; + + #ifdef POI_AUDIOLINK + UNITY_BRANCH + if (_EnableDissolveAudioLink && poiMods.audioLinkTextureExists) + { + da += lerp(_AudioLinkDissolveAlpha.x, _AudioLinkDissolveAlpha.y, poiMods.audioLink[_AudioLinkDissolveAlphaBand]); + dds += lerp(_AudioLinkDissolveDetail.x, _AudioLinkDissolveDetail.y, poiMods.audioLink[_AudioLinkDissolveDetailBand]); + } + #endif + + da = saturate(da); + dds = saturate(dds); + + #ifdef POI_BLACKLIGHT + if (_BlackLightMaskDissolve != 4) + { + dissolveMask *= blackLightMask[_BlackLightMaskDissolve]; + } + #endif + + if (_DissolveMaskInvert) + { + dissolveMask = 1 - dissolveMask; + } + #if defined(PROP_DISSOLVEDETAILNOISE) || !defined(OPTIMIZER_ENABLED) + float dissolveDetailNoise = POI2D_SAMPLER_PAN(_DissolveDetailNoise, _MainTex, poiMesh.uv[_DissolveDetailNoiseUV], _DissolveDetailNoisePan); + #else + float dissolveDetailNoise = 0; + #endif + if (_DissolveInvertNoise) + { + dissolveNoiseTexture = 1 - dissolveNoiseTexture; + } + if (_DissolveInvertDetailNoise) + { + dissolveDetailNoise = 1 - dissolveDetailNoise; + } + if (_ContinuousDissolve != 0) + { + da = sin(_Time.y * _ContinuousDissolve) * .5 + .5; + } + da *= dissolveMask; + dissolveAlpha = da; + edgeAlpha = 0; + + UNITY_BRANCH + if (_DissolveType == 1) // Basic + + { + da = remap(da, 0, 1, -_DissolveEdgeWidth, 1); + dissolveAlpha = da; + //Adjust detail strength to avoid artifacts + dds *= smoothstep(1, .99, da); + float noise = saturate(dissolveNoiseTexture - dissolveDetailNoise * dds); + + noise = saturate(noise + 0.001); + //noise = remap(noise, 0, 1, _DissolveEdgeWidth, 1 - _DissolveEdgeWidth); + dissolveAlpha = dissolveAlpha >= noise; + edgeAlpha = remapClamped(noise, da + _DissolveEdgeWidth, da, 0, 1) * (1 - dissolveAlpha); + } + else if (_DissolveType == 2) // Point to Point + + { + float3 direction; + float3 currentPos; + float distanceTo = 0; + direction = normalize(_DissolveEndPoint - _DissolveStartPoint); + currentPos = lerp(_DissolveStartPoint, _DissolveEndPoint, dissolveAlpha); + + UNITY_BRANCH + if (_DissolveP2PWorldLocal != 1) + { + float3 pos = _DissolveP2PWorldLocal == 0 ? poiMesh.localPos.rgb: poiMesh.vertexColor.rgb; + distanceTo = dot(pos - currentPos, direction) - dissolveDetailNoise * dds; + edgeAlpha = smoothstep(_DissolveP2PEdgeLength, 0, distanceTo); + dissolveAlpha = step(distanceTo, 0); + edgeAlpha *= 1 - dissolveAlpha; + } + else + { + distanceTo = dot(poiMesh.worldPos - currentPos, direction) - dissolveDetailNoise * dds; + edgeAlpha = smoothstep(_DissolveP2PEdgeLength, 0, distanceTo); + dissolveAlpha = step(distanceTo, 0); + edgeAlpha *= 1 - dissolveAlpha; + } + } + + #ifndef POI_SHADOW + UNITY_BRANCH + if (_DissolveHueShiftEnabled) + { + dissolveToTexture.rgb = hueShift(dissolveToTexture.rgb, _DissolveHueShift + _Time.x * _DissolveHueShiftSpeed); + } + #endif + albedo = lerp(albedo, dissolveToTexture, dissolveAlpha); + + UNITY_BRANCH + if (_DissolveEdgeWidth) + { + edgeColor = tex2D(_DissolveEdgeGradient, TRANSFORM_TEX(float2(edgeAlpha, edgeAlpha), _DissolveEdgeGradient)) * _DissolveEdgeColor; + #ifndef POI_SHADOW + UNITY_BRANCH + if (_DissolveEdgeHueShiftEnabled) + { + edgeColor.rgb = hueShift(edgeColor.rgb, _DissolveEdgeHueShift + _Time.x * _DissolveEdgeHueShiftSpeed); + } + #endif + albedo.rgb = lerp(albedo.rgb, edgeColor.rgb, smoothstep(0, 1 - _DissolveEdgeHardness * .99999999999, edgeAlpha)); + } + + dissolveEmission = lerp(0, dissolveToTexture * _DissolveToEmissionStrength, dissolveAlpha) + lerp(0, edgeColor.rgb * _DissolveEdgeEmission, smoothstep(0, 1 - _DissolveEdgeHardness * .99999999999, edgeAlpha)); +} + + +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiDissolve.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiDissolve.cginc.meta new file mode 100644 index 00000000..a4fbdf2d --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiDissolve.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: e737055de48f98a4587f09a286ede08f +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiDithering.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiDithering.cginc new file mode 100644 index 00000000..1540b5eb --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiDithering.cginc @@ -0,0 +1,34 @@ +#ifndef POI_DITHERING + #define POI_DITHERING + fixed _DitheringEnabled; + fixed _DitherGradient; + + half calcDither(half2 grabPos) + { + half dither = Dither8x8Bayer(fmod(grabPos.x, 8), fmod(grabPos.y, 8)); + return dither; + } + + #ifndef POI_SHADOW + void applyDithering(inout float4 finalColor) + { + UNITY_BRANCH + if (_DitheringEnabled) + { + half dither = calcDither(poiCam.screenUV.xy); + finalColor.a = finalColor.a - (dither * (1 - finalColor.a) * _DitherGradient); + } + } + #else + void applyShadowDithering(inout float alpha, float2 screenUV) + { + UNITY_BRANCH + if(_DitheringEnabled) + { + half dither = calcDither(screenUV); + alpha = alpha - (dither * (1 - alpha) * _DitherGradient); + } + } + #endif + +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiDithering.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiDithering.cginc.meta new file mode 100644 index 00000000..da58503e --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiDithering.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 07d19319226672d40891a9cf8095bb1d +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiEmission.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiEmission.cginc new file mode 100644 index 00000000..e66db67c --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiEmission.cginc @@ -0,0 +1,336 @@ +#ifndef POI_EMISSION +#define POI_EMISSION + +float4 _EmissionColor; +#if defined(PROP_EMISSIONMAP) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_EmissionMap); +#endif +#if defined(PROP_EMISSIONMASK) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_EmissionMask); +#endif +#if defined(PROP_EMISSIONSCROLLINGCURVE) || !defined(OPTIMIZER_ENABLED) + UNITY_DECLARE_TEX2D_NOSAMPLER(_EmissionScrollingCurve); float4 _EmissionScrollingCurve_ST; +#endif +float _EmissionBaseColorAsMap; +float _EmissionStrength; +float _EnableEmission; +float _EmissionHueShift; +float4 _EmissiveScroll_Direction; +float _EmissiveScroll_Width; +float _EmissiveScroll_Velocity; +float _EmissiveScroll_Interval; +float _EmissionBlinkingEnabled; +float _EmissiveBlink_Min; +float _EmissiveBlink_Max; +float _EmissiveBlink_Velocity; +float _ScrollingEmission; +float _EnableGITDEmission; +float _GITDEMinEmissionMultiplier; +float _GITDEMaxEmissionMultiplier; +float _GITDEMinLight; +float _GITDEMaxLight; +float _GITDEWorldOrMesh; +float _EmissionCenterOutEnabled; +float _EmissionCenterOutSpeed; +float _EmissionHueShiftEnabled; +float _EmissionBlinkingOffset; +float _EmissionScrollingOffset; +float _EmissionHueShiftSpeed; +float _EmissionHueShiftSpeed1; + +float4 _EmissionColor1; +#ifdef EFFECT_HUE_VARIATION + #if defined(PROP_EMISSIONMAP1) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_EmissionMap1); + #endif + #if defined(PROP_EMISSIONMASK1) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_EmissionMask1); + #endif + #if defined(PROP_EMISSIONSCROLLINGCURVE1) || !defined(OPTIMIZER_ENABLED) + UNITY_DECLARE_TEX2D_NOSAMPLER(_EmissionScrollingCurve1); float4 _EmissionScrollingCurve1_ST; + #endif +#endif +float _EmissionBaseColorAsMap1; +float _EmissionStrength1; +float _EnableEmission1; +float _EmissionHueShift1; +float4 _EmissiveScroll_Direction1; +float _EmissiveScroll_Width1; +float _EmissiveScroll_Velocity1; +float _EmissiveScroll_Interval1; +float _EmissionBlinkingEnabled1; +float _EmissiveBlink_Min1; +float _EmissiveBlink_Max1; +float _EmissiveBlink_Velocity1; +float _ScrollingEmission1; +float _EnableGITDEmission1; +float _GITDEMinEmissionMultiplier1; +float _GITDEMaxEmissionMultiplier1; +float _GITDEMinLight1; +float _GITDEMaxLight1; +float _GITDEWorldOrMesh1; +float _EmissionCenterOutEnabled1; +float _EmissionCenterOutSpeed1; +float _EmissionHueShiftEnabled1; +float _EmissionBlinkingOffset1; +float _EmissionScrollingOffset1; + +float _EmissionReplace; + +float _EmissionScrollingVertexColor; +float _EmissionScrollingVertexColor1; + +float _EmissionScrollingUseCurve; +float _EmissionScrollingUseCurve1; + +#ifdef POI_AUDIOLINK + half _EnableEmissionStrengthAudioLink; + half _AudioLinkEmissionStrengthBand; + half _EnableEmissionCenterOutAudioLink; + half _AudioLinkEmissionCenterOutBand; + float2 _AudioLinkAddEmission; + half _AudioLinkAddEmissionBand; + float2 _EmissionCenterOutAddAudioLink; + half _AudioLinkEmissionCenterOutAddBand; + + half _EnableEmission1StrengthAudioLink; + half _AudioLinkEmission1StrengthBand; + half _EnableEmission1CenterOutAudioLink; + half _AudioLinkEmission1CenterOutBand; + float2 _AudioLinkAddEmission1; + half _AudioLinkAddEmission1Band; + float2 _EmissionCenterOutAddAudioLink1; + half _AudioLinkEmission1CenterOutAddBand; +#endif + +float calculateGlowInTheDark(in float minLight, in float maxLight, in float minEmissionMultiplier, in float maxEmissionMultiplier, in float enabled) +{ + float glowInTheDarkMultiplier = 1; + UNITY_BRANCH + if (enabled) + { + #ifdef POI_LIGHTING + float3 lightValue = _GITDEWorldOrMesh ? poiLight.finalLighting.rgb: poiLight.directLighting.rgb; + float gitdeAlpha = (clamp(poiMax(lightValue), minLight, maxLight) - minLight) / (maxLight - minLight); + glowInTheDarkMultiplier = lerp(minEmissionMultiplier, maxEmissionMultiplier, gitdeAlpha); + #endif + } + return glowInTheDarkMultiplier; +} + +float calculateScrollingEmission(in float3 direction, in float velocity, in float interval, in float scrollWidth, float offset, float3 position) +{ + float phase = 0; + phase = dot(position, direction); + phase -= (_Time.y + offset) * velocity; + phase /= interval; + phase -= floor(phase); + phase = saturate(phase); + return(pow(phase, scrollWidth) + pow(1 - phase, scrollWidth * 4)) * 0.5; +} + +float calculateBlinkingEmission(in float blinkMin, in float blinkMax, in float blinkVelocity, float offset) +{ + float amplitude = (blinkMax - blinkMin) * 0.5f; + float base = blinkMin + amplitude; + return sin((_Time.y + offset) * blinkVelocity) * amplitude + base; +} + +float3 calculateEmissionNew(in float3 baseColor, inout float4 finalColor) +{ + // First Emission + float3 emission0 = 0; + float emissionStrength0 = _EmissionStrength; + float3 emissionColor0 = 0; + + #ifdef POI_AUDIOLINK + UNITY_BRANCH + if (poiMods.audioLinkTextureExists) + { + UNITY_BRANCH + if (_EnableEmissionStrengthAudioLink) + { + emissionStrength0 *= poiMods.audioLink[_AudioLinkEmissionStrengthBand]; + } + UNITY_BRANCH + if (_EnableEmissionCenterOutAudioLink) + { + emissionStrength0 *= getBandAtTime(_AudioLinkEmissionCenterOutBand, saturate(1 - poiLight.nDotV)); + } + emissionStrength0 += lerp(_EmissionCenterOutAddAudioLink.x, _EmissionCenterOutAddAudioLink.y, getBandAtTime(_AudioLinkEmissionCenterOutBand, saturate(1 - poiLight.nDotV))); + emissionStrength0 += lerp(_AudioLinkAddEmission.x, _AudioLinkAddEmission.y, poiMods.audioLink[_AudioLinkAddEmissionBand]); + emissionStrength0 = max(emissionStrength0, 0); + } + #endif + + float glowInTheDarkMultiplier0 = calculateGlowInTheDark(_GITDEMinLight, _GITDEMaxLight, _GITDEMinEmissionMultiplier, _GITDEMaxEmissionMultiplier, _EnableGITDEmission); + + #if defined(PROP_EMISSIONMAP) || !defined(OPTIMIZER_ENABLED) + UNITY_BRANCH + if (!_EmissionCenterOutEnabled) + { + emissionColor0 = POI2D_SAMPLER_PAN(_EmissionMap, _MainTex, poiMesh.uv[_EmissionMapUV], _EmissionMapPan).rgb * lerp(1, baseColor, _EmissionBaseColorAsMap).rgb * _EmissionColor.rgb; + } + else + { + emissionColor0 = UNITY_SAMPLE_TEX2D_SAMPLER(_EmissionMap, _MainTex, ((.5 + poiLight.nDotV * .5) * _EmissionMap_ST.xy) + _Time.x * _EmissionCenterOutSpeed).rgb * lerp(1, baseColor, _EmissionBaseColorAsMap).rgb * _EmissionColor.rgb; + } + #else + emissionColor0 = lerp(1, baseColor, _EmissionBaseColorAsMap).rgb * _EmissionColor.rgb; + #endif + + UNITY_BRANCH + if (_ScrollingEmission) + { + float3 pos = poiMesh.localPos; + UNITY_BRANCH + if (_EmissionScrollingVertexColor) + { + pos = poiMesh.vertexColor.rgb; + } + + UNITY_BRANCH + if (_EmissionScrollingUseCurve) + { + #if defined(PROP_EMISSIONSCROLLINGCURVE) || !defined(OPTIMIZER_ENABLED) + emissionStrength0 *= UNITY_SAMPLE_TEX2D_SAMPLER(_EmissionScrollingCurve, _MainTex, TRANSFORM_TEX(poiMesh.uv[_EmissionMapUV], _EmissionScrollingCurve) + (dot(pos, _EmissiveScroll_Direction.xyz) * _EmissiveScroll_Interval) + _Time.x * _EmissiveScroll_Velocity).r; + #endif + } + else + { + emissionStrength0 *= calculateScrollingEmission(_EmissiveScroll_Direction.xyz, _EmissiveScroll_Velocity, _EmissiveScroll_Interval, _EmissiveScroll_Width, _EmissionScrollingOffset, pos); + } + } + + UNITY_BRANCH + if (_EmissionBlinkingEnabled) + { + emissionStrength0 *= calculateBlinkingEmission(_EmissiveBlink_Min, _EmissiveBlink_Max, _EmissiveBlink_Velocity, _EmissionBlinkingOffset); + } + + emissionColor0 = hueShift(emissionColor0, frac(_EmissionHueShift + _EmissionHueShiftSpeed * _Time.x) * _EmissionHueShiftEnabled); + + #if defined(PROP_EMISSIONMASK) || !defined(OPTIMIZER_ENABLED) + float emissionMask0 = UNITY_SAMPLE_TEX2D_SAMPLER(_EmissionMask, _MainTex, TRANSFORM_TEX(poiMesh.uv[_EmissionMaskUV], _EmissionMask) + _Time.x * _EmissionMaskPan).r; + #else + float emissionMask0 = 1; + #endif + + #ifdef POI_BLACKLIGHT + if (_BlackLightMaskEmission != 4) + { + emissionMask0 *= blackLightMask[_BlackLightMaskEmission]; + } + #endif + + emissionStrength0 *= glowInTheDarkMultiplier0 * emissionMask0; + emission0 = emissionStrength0 * emissionColor0; + + #ifdef POI_DISSOLVE + UNITY_BRANCH + if (_DissolveEmissionSide != 2) + { + emission0 *= lerp(1 - dissolveAlpha, dissolveAlpha, _DissolveEmissionSide); + } + #endif + + // Second Emission + float3 emission1 = 0; + float emissionStrength1 = 0; + float3 emissionColor1 = 0; + + #ifdef EFFECT_HUE_VARIATION + emissionStrength1 = _EmissionStrength1; + + #ifdef POI_AUDIOLINK + UNITY_BRANCH + if (poiMods.audioLinkTextureExists) + { + UNITY_BRANCH + if (_EnableEmission1StrengthAudioLink) + { + emissionStrength1 *= poiMods.audioLink[_AudioLinkEmission1StrengthBand]; + } + UNITY_BRANCH + if (_EnableEmission1CenterOutAudioLink) + { + emissionStrength1 *= getBandAtTime(_AudioLinkEmission1CenterOutBand, saturate(1 - poiLight.nDotV)); + } + emissionStrength1 += lerp(_EmissionCenterOutAddAudioLink1.x, _EmissionCenterOutAddAudioLink1.y, getBandAtTime(_AudioLinkEmission1CenterOutBand, saturate(1 - poiLight.nDotV))); + emissionStrength1 += lerp(_AudioLinkAddEmission1.x, _AudioLinkAddEmission1.y, poiMods.audioLink[_AudioLinkAddEmission1Band]); + emissionStrength1 = max(emissionStrength1, 0); + } + #endif + + float glowInTheDarkMultiplier1 = calculateGlowInTheDark(_GITDEMinLight1, _GITDEMaxLight1, _GITDEMinEmissionMultiplier1, _GITDEMaxEmissionMultiplier1, _EnableGITDEmission1); + #if defined(PROP_EMISSIONMAP1) || !defined(OPTIMIZER_ENABLED) + + UNITY_BRANCH + if (!_EmissionCenterOutEnabled1) + { + emissionColor1 = POI2D_SAMPLER_PAN(_EmissionMap1, _MainTex, poiMesh.uv[_EmissionMap1UV], _EmissionMap1Pan) * lerp(1, baseColor, _EmissionBaseColorAsMap1).rgb * _EmissionColor1.rgb; + } + else + { + emissionColor1 = UNITY_SAMPLE_TEX2D_SAMPLER(_EmissionMap1, _MainTex, ((.5 + poiLight.nDotV * .5) * _EmissionMap1_ST.xy) + _Time.x * _EmissionCenterOutSpeed1).rgb * lerp(1, baseColor, _EmissionBaseColorAsMap1).rgb * _EmissionColor1.rgb; + } + #else + emissionColor1 = lerp(1, baseColor, _EmissionBaseColorAsMap1).rgb * _EmissionColor1.rgb;; + #endif + UNITY_BRANCH + if (_ScrollingEmission1) + { + float3 pos1 = poiMesh.localPos; + UNITY_BRANCH + if (_EmissionScrollingVertexColor1) + { + pos1 = poiMesh.vertexColor.rgb; + } + + UNITY_BRANCH + if (_EmissionScrollingUseCurve1) + { + #if defined(PROP_EMISSIONSCROLLINGCURVE1) || !defined(OPTIMIZER_ENABLED) + emissionStrength1 *= UNITY_SAMPLE_TEX2D_SAMPLER(_EmissionScrollingCurve1, _MainTex, TRANSFORM_TEX(poiMesh.uv[_EmissionMap1UV], _EmissionScrollingCurve1) + (dot(pos1, _EmissiveScroll_Direction1) * _EmissiveScroll_Interval1) + _Time.x * _EmissiveScroll_Velocity1); + #endif + } + else + { + emissionStrength1 *= calculateScrollingEmission(_EmissiveScroll_Direction1, _EmissiveScroll_Velocity1, _EmissiveScroll_Interval1, _EmissiveScroll_Width1, _EmissionScrollingOffset1, pos1); + } + } + UNITY_BRANCH + if (_EmissionBlinkingEnabled1) + { + emissionStrength1 *= calculateBlinkingEmission(_EmissiveBlink_Min1, _EmissiveBlink_Max1, _EmissiveBlink_Velocity1, _EmissionBlinkingOffset1); + } + + emissionColor1 = hueShift(emissionColor1, frac(_EmissionHueShift1 + _EmissionHueShiftSpeed1 * _Time.x) * _EmissionHueShiftEnabled1); + #if defined(PROP_EMISSIONMASK1) || !defined(OPTIMIZER_ENABLED) + float emissionMask1 = UNITY_SAMPLE_TEX2D_SAMPLER(_EmissionMask1, _MainTex, TRANSFORM_TEX(poiMesh.uv[_EmissionMask1UV], _EmissionMask1) + _Time.x * _EmissionMask1Pan); + #else + float emissionMask1 = 1; + #endif + + #ifdef POI_BLACKLIGHT + if (_BlackLightMaskEmission2 != 4) + { + emissionMask1 *= blackLightMask[_BlackLightMaskEmission2]; + } + #endif + emissionStrength1 *= glowInTheDarkMultiplier1 * emissionMask1; + emission1 = emissionStrength1 * emissionColor1; + + #ifdef POI_DISSOLVE + if (_DissolveEmission1Side != 2) + { + emission1 *= lerp(1 - dissolveAlpha, dissolveAlpha, _DissolveEmission1Side); + } + #endif + #endif + finalColor.rgb = lerp(finalColor.rgb, saturate(emissionColor0 + emissionColor1), saturate(emissionStrength0 + emissionStrength1) * _EmissionReplace * poiMax(emission0 + emission1)); + + return emission0 + emission1; +} + +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiEmission.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiEmission.cginc.meta new file mode 100644 index 00000000..db647b30 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiEmission.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: fb39e9f722d93614d8bb1b9b708f60e6 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiEnvironmentalRimLighting.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiEnvironmentalRimLighting.cginc new file mode 100644 index 00000000..92ed124a --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiEnvironmentalRimLighting.cginc @@ -0,0 +1,48 @@ +#ifndef POI_ENVIRONMENTAL_RIM + #define POI_ENVIRONMENTAL_RIM + + //enviro rim + float _EnableEnvironmentalRim; + float _RimEnviroBlur; + float _RimEnviroMinBrightness; + float _RimEnviroWidth; + float _RimEnviroSharpness; + float _RimEnviroIntensity; + #if defined(PROP_RIMENVIROMASK) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_RimEnviroMask); + #endif + + float3 calculateEnvironmentalRimLighting(in float4 albedo) + { + float enviroRimAlpha = saturate(1 - smoothstep(min(_RimEnviroSharpness, _RimEnviroWidth), _RimEnviroWidth, poiCam.viewDotNormal)); + _RimEnviroBlur *= 1.7 - 0.7 * _RimEnviroBlur; + + float3 enviroRimColor = 0; + float interpolator = unity_SpecCube0_BoxMin.w; + UNITY_BRANCH + if (interpolator < 0.99999) + { + //Probe 1 + float4 reflectionData0 = UNITY_SAMPLE_TEXCUBE_LOD(unity_SpecCube0, poiMesh.normals[1], _RimEnviroBlur * UNITY_SPECCUBE_LOD_STEPS); + float3 reflectionColor0 = DecodeHDR(reflectionData0, unity_SpecCube0_HDR); + + //Probe 2 + float4 reflectionData1 = UNITY_SAMPLE_TEXCUBE_SAMPLER_LOD(unity_SpecCube1, unity_SpecCube0, poiMesh.normals[1], _RimEnviroBlur * UNITY_SPECCUBE_LOD_STEPS); + float3 reflectionColor1 = DecodeHDR(reflectionData1, unity_SpecCube1_HDR); + + enviroRimColor = lerp(reflectionColor1, reflectionColor0, interpolator); + } + else + { + float4 reflectionData = UNITY_SAMPLE_TEXCUBE_LOD(unity_SpecCube0, poiMesh.normals[1], _RimEnviroBlur * UNITY_SPECCUBE_LOD_STEPS); + enviroRimColor = DecodeHDR(reflectionData, unity_SpecCube0_HDR); + } + #if defined(PROP_RIMENVIROMASK) || !defined(OPTIMIZER_ENABLED) + half enviroMask = poiMax(POI2D_SAMPLER_PAN(_RimEnviroMask, _MainTex, poiMesh.uv[_RimEnviroMaskUV], _RimEnviroMaskPan).rgb); + #else + half enviroMask = 1; + #endif + return lerp(0, max(0, (enviroRimColor - _RimEnviroMinBrightness) * albedo.rgb), enviroRimAlpha).rgb * enviroMask * _RimEnviroIntensity; + } + +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiEnvironmentalRimLighting.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiEnvironmentalRimLighting.cginc.meta new file mode 100644 index 00000000..2fab05f3 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiEnvironmentalRimLighting.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: a1c11292ccd8b1d41887e0f69e6695dd +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiFlipbook.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiFlipbook.cginc new file mode 100644 index 00000000..b376d4ce --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiFlipbook.cginc @@ -0,0 +1,194 @@ +#ifndef POI_FLIPBOOK + #define POI_FLIPBOOK + + #if defined(PROP_FLIPBOOKTEXARRAY) || !defined(OPTIMIZER_ENABLED) + UNITY_DECLARE_TEX2DARRAY(_FlipbookTexArray); float4 _FlipbookTexArray_ST; + #endif + #if defined(PROP_FLIPBOOKMASK) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_FlipbookMask); + #endif + + float4 _FlipbookColor; + float _FlipbookFPS; + float _FlipbookTotalFrames; + float4 _FlipbookScaleOffset; + float _FlipbookTiled; + float _FlipbookCurrentFrame; + float _FlipbookEmissionStrength; + float _FlipbookRotation; + float _EnableFlipbook; + float _FlipbookTexArrayUV; + float _FlipbookAlphaControlsFinalAlpha; + float _FlipbookRotationSpeed; + float _FlipbookIntensityControlsAlpha; + float _FlipbookColorReplaces; + float2 _FlipbookTexArrayPan; + + // blending + float _FlipbookReplace; + float _FlipbookMultiply; + float _FlipbookAdd; + + // anim + float _FlipbookMovementType; + float4 _FlipbookStartEndOffset; + float _FlipbookMovementSpeed; + + // Crossfade + float _FlipbookCrossfadeEnabled; + float2 _FlipbookCrossfadeRange; + + float _FlipbookHueShiftEnabled; + float _FlipbookHueShiftSpeed; + float _FlipbookHueShift; + // Global + float4 flipBookPixel; + float4 flipBookPixelMultiply; + float flipBookMask; + + #ifndef POI_SHADOW + + void applyFlipbook(inout float4 finalColor, inout float3 flipbookEmission) + { + #if defined(PROP_FLIPBOOKMASK) || !defined(OPTIMIZER_ENABLED) + flipBookMask = POI2D_SAMPLER_PAN(_FlipbookMask, _MainTex, poiMesh.uv[_FlipbookMaskUV], _FlipbookMaskPan).r; + #else + flipBookMask = 1; + #endif + float4 flipbookScaleOffset = _FlipbookScaleOffset; + flipbookScaleOffset.xy = 1 - flipbookScaleOffset.xy; + float2 uv = frac(poiMesh.uv[_FlipbookTexArrayUV]); + float theta = radians(_FlipbookRotation + _Time.z * _FlipbookRotationSpeed); + float cs = cos(theta); + float sn = sin(theta); + float2 spriteCenter = flipbookScaleOffset.zw + .5; + // 2d rotation + uv = float2((uv.x - spriteCenter.x) * cs - (uv.y - spriteCenter.y) * sn + spriteCenter.x, (uv.x - spriteCenter.x) * sn + (uv.y - spriteCenter.y) * cs + spriteCenter.y); + + float2 newUV = remap(uv, float2(0, 0) + flipbookScaleOffset.xy / 2 + flipbookScaleOffset.zw, float2(1, 1) - flipbookScaleOffset.xy / 2 + flipbookScaleOffset.zw, float2(0, 0), float2(1, 1)); + + UNITY_BRANCH + if (_FlipbookTiled == 0) + { + if(max(newUV.x, newUV.y) > 1 || min(newUV.x, newUV.y) < 0) + { + flipBookPixel = 0; + return; + } + } + #if defined(PROP_FLIPBOOKTEXARRAY) || !defined(OPTIMIZER_ENABLED) + float currentFrame = fmod(_FlipbookCurrentFrame, _FlipbookTotalFrames); + if(_FlipbookCurrentFrame < 0) + { + currentFrame = (_Time.y / (1 / _FlipbookFPS)) % _FlipbookTotalFrames; + } + flipBookPixel = UNITY_SAMPLE_TEX2DARRAY(_FlipbookTexArray, float3(TRANSFORM_TEX(newUV, _FlipbookTexArray) + _Time.x * _FlipbookTexArrayPan, floor(currentFrame))); + UNITY_BRANCH + if(_FlipbookCrossfadeEnabled) + { + float4 flipbookNextPixel = UNITY_SAMPLE_TEX2DARRAY(_FlipbookTexArray, float3(TRANSFORM_TEX(newUV, _FlipbookTexArray) + _Time.x * _FlipbookTexArrayPan, floor((currentFrame + 1) % _FlipbookTotalFrames))); + flipBookPixel = lerp(flipBookPixel, flipbookNextPixel, smoothstep(_FlipbookCrossfadeRange.x, _FlipbookCrossfadeRange.y, frac(currentFrame))); + } + #else + flipBookPixel = 1; + #endif + + UNITY_BRANCH + if(_FlipbookIntensityControlsAlpha) + { + flipBookPixel.a = poiMax(flipBookPixel.rgb); + } + UNITY_BRANCH + if(_FlipbookColorReplaces) + { + flipBookPixel.rgb = _FlipbookColor.rgb; + } + else + { + flipBookPixel.rgb *= _FlipbookColor.rgb; + } + + #ifdef POI_BLACKLIGHT + UNITY_BRANCH + if(_BlackLightMaskFlipbook != 4) + { + flipBookMask *= blackLightMask[_BlackLightMaskFlipbook]; + } + #endif + + UNITY_BRANCH + if(_FlipbookHueShiftEnabled) + { + flipBookPixel.rgb = hueShift(flipBookPixel.rgb, _FlipbookHueShift + _Time.x * _FlipbookHueShiftSpeed); + } + + finalColor.rgb = lerp(finalColor.rgb, flipBookPixel.rgb, flipBookPixel.a * _FlipbookColor.a * _FlipbookReplace * flipBookMask); + finalColor.rgb = finalColor + flipBookPixel.rgb * _FlipbookAdd * flipBookMask; + finalColor.rgb = finalColor * lerp(1, flipBookPixel.rgb, flipBookPixel.a * _FlipbookColor.a * flipBookMask * _FlipbookMultiply); + + UNITY_BRANCH + if(_FlipbookAlphaControlsFinalAlpha) + { + finalColor.a = lerp(finalColor.a, flipBookPixel.a * _FlipbookColor.a, flipBookMask); + } + flipbookEmission = lerp(0, flipBookPixel.rgb * _FlipbookEmissionStrength, flipBookPixel.a * _FlipbookColor.a * flipBookMask); + } + + #else + + float applyFlipbookAlphaToShadow(float2 uv) + { + UNITY_BRANCH + if(_FlipbookAlphaControlsFinalAlpha) + { + float flipbookShadowAlpha = 0; + + float4 flipbookScaleOffset = _FlipbookScaleOffset; + flipbookScaleOffset.xy = 1 - flipbookScaleOffset.xy; + float theta = radians(_FlipbookRotation); + + float cs = cos(theta); + float sn = sin(theta); + float2 spriteCenter = flipbookScaleOffset.zw + .5; + uv = float2((uv.x - spriteCenter.x) * cs - (uv.y - spriteCenter.y) * sn + spriteCenter.x, (uv.x - spriteCenter.x) * sn + (uv.y - spriteCenter.y) * cs + spriteCenter.y); + + float2 newUV = remap(uv, float2(0, 0) + flipbookScaleOffset.xy / 2 + flipbookScaleOffset.zw, float2(1, 1) - flipbookScaleOffset.xy / 2 + flipbookScaleOffset.zw, float2(0, 0), float2(1, 1)); + + #if defined(PROP_FLIPBOOKTEXARRAY) || !defined(OPTIMIZER_ENABLED) + float currentFrame = fmod(_FlipbookCurrentFrame, _FlipbookTotalFrames); + if(_FlipbookCurrentFrame < 0) + { + currentFrame = (_Time.y / (1 / _FlipbookFPS)) % _FlipbookTotalFrames; + } + + half4 flipbookColor = UNITY_SAMPLE_TEX2DARRAY(_FlipbookTexArray, float3(TRANSFORM_TEX(newUV, _FlipbookTexArray) + _Time.x * _FlipbookTexArrayPan, floor(currentFrame))); + UNITY_BRANCH + if(_FlipbookCrossfadeEnabled) + { + float4 flipbookNextPixel = UNITY_SAMPLE_TEX2DARRAY(_FlipbookTexArray, float3(TRANSFORM_TEX(newUV, _FlipbookTexArray) + _Time.x * _FlipbookTexArrayPan, floor((currentFrame + 1) % _FlipbookTotalFrames))); + flipbookColor = lerp(flipbookColor, flipbookNextPixel, smoothstep(_FlipbookCrossfadeRange.x, _FlipbookCrossfadeRange.y, frac(currentFrame))); + } + #else + half4 flipbookColor = 1; + #endif + + if(_FlipbookIntensityControlsAlpha) + { + flipbookColor.a = poiMax(flipbookColor.rgb); + } + + UNITY_BRANCH + if(_FlipbookTiled == 0) + { + if(max(newUV.x, newUV.y) > 1 || min(newUV.x, newUV.y) < 0) + { + flipbookColor.a = 0; + } + } + return flipbookColor.a * _FlipbookColor.a; + } + return 1; + } + + #endif +#endif diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiFlipbook.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiFlipbook.cginc.meta new file mode 100644 index 00000000..c3c259f1 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiFlipbook.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 87a9dab4f8128cd41bf38bac18075b14 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiFrag.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiFrag.cginc new file mode 100644 index 00000000..37421ab6 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiFrag.cginc @@ -0,0 +1,393 @@ +#ifndef POIFRAG +#define POIFRAG + +float _MainEmissionStrength; +float _IgnoreFog; +half _GIEmissionMultiplier; +float _IridescenceTime; +float _AlphaToMask; +float _ForceOpaque; +float _commentIfZero_EnableGrabpass; +float _AlphaPremultiply; +float2 _MainTexPan; +float _MainTextureUV; +float _commentIfZero_LightingAdditiveEnable; + +float4 frag(v2f i, uint facing: SV_IsFrontFace): SV_Target +{ + #ifdef FORWARD_ADD_PASS + #if !defined(POI_LIGHTING) + return 0; + #endif + #if defined(_SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A) && defined(DIRECTIONAL) + return 0; + #endif + #endif + #ifdef FORWARD_ADD_PASS + UNITY_BRANCH + if (_commentIfZero_LightingAdditiveEnable == 0) + { + return 0; + } + #endif + UNITY_SETUP_INSTANCE_ID(i); + // Color + float4 albedo = 1; + float4 finalColor = 1; + + // Lighting + float bakedCubemap = 0; // Whether or not metallic should run before or after lighting multiplication + float3 finalSpecular0 = 0; + float3 finalSpecular1 = 0; + float3 finalSSS = 0; + fixed lightingAlpha = 1; + float3 finalEnvironmentalRim = 0; + + // Emissions + float3 finalEmission = 0; + float3 finalLighting = 1; + float3 emissionLighting = 1; + float3 IridescenceEmission = 0; + float3 spawnInEmission = 0; + float3 voronoiEmission = 0; + float3 matcapEmission = 0; + float3 depthTouchEmission = 0; + float3 decalEmission = 0; + float3 glitterEmission = 0; + float3 panosphereEmission = 0; + float3 backFaceEmission = 0; + float3 dissolveEmission = 0; + float3 rimLightEmission = 0; + float3 flipbookEmission = 0; + float3 textOverlayEmission = 0; + float3 videoEmission = 0; + /********************************************************************** + Initialize the base data that's needed everywhere else in the shader + **********************************************************************/ + calculateAttenuation(i); + initPoiMods(); + InitializeMeshData(i, facing); + initializeCamera(i); + calculateTangentData(); + + + #ifdef POI_BLACKLIGHT + createBlackLightMask(); + UNITY_BRANCH + if (_BlackLightMaskDebug) + { + return float4(blackLightMask.rgb, 1); + } + #endif + + // This has to happen in the initializbecause it alters UV data globally + #ifdef POI_PARALLAX + calculateandApplyParallax(); + #endif + + // Basically every texture relies on the maintex sampler to function and that's why this is here. + float4 mainTexture = UNITY_SAMPLE_TEX2D(_MainTex, TRANSFORM_TEX(poiMesh.uv[_MainTextureUV], _MainTex) + _Time.x * _MainTexPan); + half3 detailMask = 1; + calculateNormals(detailMask); + calculateVertexLightingData(i); + /********************************************************************** + Calculate Light Maps + **********************************************************************/ + #ifdef POI_DATA + calculateLightingData(i); + #endif + #ifdef POI_LIGHTING + calculateBasePassLightMaps(); + #endif + + /********************************************************************** + Calculate Color Data + **********************************************************************/ + + initTextureData(albedo, mainTexture, backFaceEmission, dissolveEmission, detailMask); + + #ifdef POI_DECAL + applyDecals(albedo, decalEmission); + #endif + + + #ifdef POI_IRIDESCENCE + UNITY_BRANCH + if (_IridescenceTime == 0) + { + applyIridescence(albedo, IridescenceEmission); + } + #endif + + #ifdef POI_VORONOI + applyVoronoi(albedo, voronoiEmission); + #endif + + #ifdef POI_MSDF + ApplyTextOverlayColor(albedo, textOverlayEmission); + #endif + + #ifdef POI_ENVIRONMENTAL_RIM + finalEnvironmentalRim = calculateEnvironmentalRimLighting(albedo); + #endif + + #if defined(POI_METAL) || defined(POI_CLEARCOAT) + CalculateReflectionData(); + #endif + + #ifdef POI_DATA + distanceFade(albedo); + #endif + + #ifdef POI_RANDOM + albedo.a *= i.angleAlpha; + #endif + + #ifdef MATCAP + applyMatcap(albedo, matcapEmission); + #endif + + #ifdef PANOSPHERE + applyPanosphereColor(albedo, panosphereEmission); + #endif + + #ifdef POI_FLIPBOOK + applyFlipbook(albedo, flipbookEmission); + #endif + + #ifdef POI_GLITTER + applyGlitter(albedo, glitterEmission); + #endif + + #ifdef POI_RIM + applyRimLighting(albedo, rimLightEmission); + #endif + + #ifdef POI_DEPTH_COLOR + applyDepthColor(albedo, depthTouchEmission, finalEmission, i.worldDirection); + #endif + + #ifdef POI_IRIDESCENCE + UNITY_BRANCH + if (_IridescenceTime == 1) + { + applyIridescence(albedo, IridescenceEmission); + } + #endif + + #ifdef POI_VIDEO + applyScreenEffect(albedo, videoEmission); + #endif + + applySpawnIn(albedo, spawnInEmission, poiMesh.uv[0], poiMesh.localPos); + + /********************************************************************** + Handle a few alpha options + **********************************************************************/ + UNITY_BRANCH + if (_Mode == 1) + { + UNITY_BRANCH + if (_AlphaToMask == 0) + { + applyDithering(albedo); + } + } + + albedo.a = max(_ForceOpaque, albedo.a); + + UNITY_BRANCH + if (_Mode == 0) + { + albedo.a = 1; + } + + UNITY_BRANCH + if (_Mode >= 1) + { + clip(albedo.a - _Cutoff); + } + + UNITY_BRANCH + if (_AlphaPremultiply) + { + albedo.rgb *= saturate(albedo.a + 0.0000000001); + } + + /********************************************************************** + Lighting Time :) + **********************************************************************/ + + #ifdef POI_LIGHTING + finalLighting = calculateFinalLighting(albedo.rgb, finalColor); + + #ifdef SUBSURFACE + finalSSS = calculateSubsurfaceScattering(); + //finalSSS = calculateSubsurfaceScattering(albedo); + #endif + #endif + + float4 finalColorBeforeLighting = albedo; + finalColor = finalColorBeforeLighting; + + #ifdef POI_SPECULAR + finalSpecular0 = calculateSpecular(finalColorBeforeLighting); + #endif + #ifdef POI_PARALLAX + calculateAndApplyInternalParallax(finalColor); + #endif + + #ifdef POI_ALPHA_TO_COVERAGE + ApplyAlphaToCoverage(finalColor); + #endif + + UNITY_BRANCH + if (_Mode == 1) + { + UNITY_BRANCH + if (_AlphaToMask == 1) + { + applyDithering(finalColor); + } + } + + + #ifdef POI_METAL + calculateMetallicness(); + bool probeExists = shouldMetalHappenBeforeLighting(); + UNITY_BRANCH + if (!probeExists) + { + ApplyMetallicsFake(finalColor, albedo); + } + #endif + + + #ifdef POI_LIGHTING + emissionLighting = finalLighting; + #if defined(FORWARD_ADD_PASS) && defined(POI_METAL) + finalLighting *= 1 - metalicMap; + #endif + applyLighting(finalColor, finalLighting); + #endif + + #ifdef POI_BRDF + poiBRDF(finalColor, finalColorBeforeLighting); + #endif + + #ifdef POI_METAL + UNITY_BRANCH + if (probeExists) + { + ApplyMetallics(finalColor, albedo); + } + #endif + + finalColor.rgb += finalSpecular0 + finalEnvironmentalRim + finalSSS; + + #ifdef FORWARD_BASE_PASS + #ifdef POI_CLEARCOAT + calculateAndApplyClearCoat(finalColor); + #endif + #endif + + finalColor.a = saturate(finalColor.a); + + /********************************************************************** + Add Up all the emission values :D + **********************************************************************/ + //#if defined(FORWARD_BASE_PASS) || defined(POI_META_PASS) + finalEmission += finalColorBeforeLighting.rgb * _MainEmissionStrength * albedo.a; + finalEmission += wireframeEmission; + finalEmission += IridescenceEmission; + finalEmission += spawnInEmission; + finalEmission += voronoiEmission; + finalEmission += matcapEmission; + finalEmission += depthTouchEmission; + finalEmission += decalEmission; + finalEmission += glitterEmission; + finalEmission += panosphereEmission; + finalEmission += backFaceEmission; + finalEmission += rimLightEmission; + finalEmission += flipbookEmission; + finalEmission += videoEmission; + finalEmission += textOverlayEmission; + finalEmission += dissolveEmission; + #ifdef POI_EMISSION + finalEmission += calculateEmissionNew(finalColorBeforeLighting.rgb, finalColor); + #endif + //#endif + // Compensate for HDR lights + #if defined(FORWARD_ADD_PASS) + finalEmission *= emissionLighting; // TODO: add in vertex lights + #else + finalEmission *= max(1, emissionLighting); + #endif + + /********************************************************************** + Meta Pass Hype :D + **********************************************************************/ + #ifdef POI_META_PASS + UnityMetaInput meta; + UNITY_INITIALIZE_OUTPUT(UnityMetaInput, meta); + meta.Emission = finalEmission * _GIEmissionMultiplier; + meta.Albedo = saturate(finalColor.rgb); + #ifdef POI_SPECULAR + meta.SpecularColor = poiLight.color.rgb * _SpecularTint.rgb * lerp(1, albedo.rgb, _SpecularMetallic) * _SpecularTint.a; + #else + meta.SpecularColor = poiLight.color.rgb * albedo.rgb; + #endif + return UnityMetaFragment(meta); + #endif + + /********************************************************************** + Apply Emission to finalColor + **********************************************************************/ + finalColor.rgb += finalEmission; + + /********************************************************************** + Grabpass features + **********************************************************************/ + + UNITY_BRANCH + if (_commentIfZero_EnableGrabpass) + { + applyGrabEffects(finalColor); + } + + /********************************************************************** + Unity Fog + **********************************************************************/ + #ifdef FORWARD_BASE_PASS + UNITY_BRANCH + if (_IgnoreFog == 0) + { + UNITY_APPLY_FOG(i.fogCoord, finalColor); + } + #endif + + #ifdef FORWARD_ADD_PASS + if (_Mode > 0) + { + finalColor.rgb *= finalColor.a; + } + #endif + + UNITY_BRANCH + if (_Mode == 0) + { + finalColor.a = 1; + } + + #ifdef FORWARD_ADD_PASS + //finalColor.rgb = smoothstep(_LightingAdditiveGradientStart, _LightingAdditiveGradientEnd, 1 - (.5 * poiLight.nDotL + .5)); + #endif + + #ifdef POI_DEBUG + displayDebugInfo(finalColor); + #endif + + //finalColor.rgb = frac(finalColor.rgb); + return finalColor; +} +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiFrag.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiFrag.cginc.meta new file mode 100644 index 00000000..1469bed5 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiFrag.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 60cd78e9ddf39f8488c9f5574a8a5a7b +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiGlitter.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiGlitter.cginc new file mode 100644 index 00000000..fead7309 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiGlitter.cginc @@ -0,0 +1,274 @@ +#ifndef POI_GLITTER + #define POI_GLITTER + + half3 _GlitterColor; + float2 _GlitterPan; + half _GlitterSpeed; + half _GlitterBrightness; + float _GlitterFrequency; + float _GlitterJitter; + half _GlitterSize; + half _GlitterContrast; + half _GlitterAngleRange; + half _GlitterMinBrightness; + half _GlitterBias; + float _GlitterRandomColors; + float2 _GlitterMinMaxSaturation; + float2 _GlitterMinMaxBrightness; + fixed _GlitterUseSurfaceColor; + float _GlitterBlendType; + float _GlitterMode; + float _GlitterShape; + float _GlitterCenterSize; + float _glitterFrequencyLinearEmissive; + float _GlitterJaggyFix; + float _GlitterRandomRotation; + float _GlitterTextureRotation; + float4 _GlitterMinMaxSize; + float _GlitterRandomSize; + float2 _GlitterUVPanning; + + float _GlitterHueShiftEnabled; + float _GlitterHueShiftSpeed; + float _GlitterHueShift; + float _GlitterHideInShadow; + + #if defined(PROP_GLITTERMASK) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_GlitterMask); + #endif + #if defined(PROP_GLITTERCOLORMAP) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_GlitterColorMap); + #endif + #if defined(PROP_GLITTERTEXTURE) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_GlitterTexture); + #endif + + float3 randomFloat3(float2 Seed, float maximum) + { + return(.5 + float3( + frac(sin(dot(Seed.xy, float2(12.9898, 78.233))) * 43758.5453), + frac(sin(dot(Seed.yx, float2(12.9898, 78.233))) * 43758.5453), + frac(sin(dot(float2(Seed), float2(12.9898, 78.233))) * 43758.5453) + ) * .5) * (maximum); + } + + float3 randomFloat3Range(float2 Seed, float Range) + { + return(float3( + frac(sin(dot(Seed.xy, float2(12.9898, 78.233))) * 43758.5453), + frac(sin(dot(Seed.yx, float2(12.9898, 78.233))) * 43758.5453), + frac(sin(dot(float2(Seed.x * Seed.y, Seed.y + Seed.x), float2(12.9898, 78.233))) * 43758.5453) + ) * 2 - 1) * Range; + } + + float3 randomFloat3WiggleRange(float2 Seed, float Range) + { + float3 rando = (float3( + frac(sin(dot(Seed.xy, float2(12.9898, 78.233))) * 43758.5453), + frac(sin(dot(Seed.yx, float2(12.9898, 78.233))) * 43758.5453), + frac(sin(dot(float2(Seed.x * Seed.y, Seed.y + Seed.x), float2(12.9898, 78.233))) * 43758.5453) + ) * 2 - 1); + float speed = 1 + _GlitterSpeed; + return float3(sin((_Time.x + rando.x * pi) * speed), sin((_Time.x + rando.y * pi) * speed), sin((_Time.x + rando.z * pi) * speed)) * Range; + } + + void Unity_RandomRange_float(float2 Seed, float Min, float Max, out float Out) + { + float randomno = frac(sin(dot(Seed, float2(12.9898, 78.233))) * 43758.5453); + Out = lerp(Min, Max, randomno); + } + + float3 RandomColorFromPoint(float2 rando) + { + fixed hue = random2(rando.x + rando.y).x; + fixed saturation = lerp(_GlitterMinMaxSaturation.x, _GlitterMinMaxSaturation.y, rando.x); + fixed value = lerp(_GlitterMinMaxBrightness.x, _GlitterMinMaxBrightness.y, rando.y); + float3 hsv = float3(hue, saturation, value); + return HSVtoRGB(hsv); + } + + void applyGlitter(inout float4 albedo, inout float3 glitterEmission) + { + + + // Scale + float2 st = frac(poiMesh.uv[0] + _GlitterUVPanning.xy * _Time.x) * _GlitterFrequency; + + // Tile the space + float2 i_st = floor(st); + float2 f_st = frac(st); + + float m_dist = 10.; // minimun distance + float2 m_point = 0; // minimum point + float2 randoPoint = 0; + float2 dank; + for (int j = -1; j <= 1; j ++) + { + for (int i = -1; i <= 1; i ++) + { + float2 neighbor = float2(i, j); + float2 pos = random2(i_st + neighbor); + float2 rando = pos; + pos = 0.5 + 0.5 * sin(_GlitterJitter * 6.2831 * pos); + float2 diff = neighbor + pos - f_st; + float dist = length(diff); + + if (dist < m_dist) + { + dank = diff; + m_dist = dist; + m_point = pos; + randoPoint = rando; + } + } + } + + float randomFromPoint = random(randoPoint); + + float size = _GlitterSize; + UNITY_BRANCH + if(_GlitterRandomSize) + { + size = remapClamped(randomFromPoint, 0, 1, _GlitterMinMaxSize.x, _GlitterMinMaxSize.y); + } + + + // Assign a color using the closest point position + //color += dot(m_point, float2(.3, .6)); + + // Add distance field to closest point center + // color.g = m_dist; + + // Show isolines + //color -= abs(sin(40.0 * m_dist)) * 0.07; + + // Draw cell center + half glitterAlpha = 1; + switch(_GlitterShape) + { + case 0: //circle + glitterAlpha = (1. - step(size, m_dist)); + break; + case 1: //sqaure + float jaggyFix = pow(poiCam.distanceToVert, 2) * _GlitterJaggyFix; + + UNITY_BRANCH + if (_GlitterRandomRotation == 1 || _GlitterTextureRotation != 0) + { + float2 center = float2(0, 0); + float randomBoy = 0; + UNITY_BRANCH + if(_GlitterRandomRotation) + { + randomBoy = random(randoPoint); + } + float theta = radians((randomBoy + _Time.x * _GlitterTextureRotation) * 360); + float cs = cos(theta); + float sn = sin(theta); + dank = float2((dank.x - center.x) * cs - (dank.y - center.y) * sn + center.x, (dank.x - center.x) * sn + (dank.y - center.y) * cs + center.y); + glitterAlpha = (1. - smoothstep(size - .1 * jaggyFix, size, abs(dank.x))) * (1. - smoothstep(size - .1 * jaggyFix, size, abs(dank.y))); + } + else + { + glitterAlpha = (1. - smoothstep(size - .1 * jaggyFix, size, abs(dank.x))) * (1. - smoothstep(size - .1 * jaggyFix, size, abs(dank.y))); + } + break; + } + + float3 finalGlitter = 0; + + switch(_GlitterMode) + { + case 0: + float3 randomRotation = 0; + UNITY_BRANCH + if(_GlitterSpeed > 0) + { + randomRotation = randomFloat3WiggleRange(randoPoint, _GlitterAngleRange); + } + else + { + randomRotation = randomFloat3Range(randoPoint, _GlitterAngleRange); + } + float3 norm = poiMesh.normals[0]; + + float3 glitterReflectionDirection = normalize(mul(poiRotationMatrixFromAngles(randomRotation), norm)); + finalGlitter = lerp(0, _GlitterMinBrightness * glitterAlpha, glitterAlpha) + max(pow(saturate(dot(lerp(glitterReflectionDirection, poiCam.viewDir, _GlitterBias), poiCam.viewDir)), _GlitterContrast), 0); + finalGlitter *= glitterAlpha; + break; + case 1: + float offset = random(randoPoint); + float brightness = sin((_Time.x + offset) * _GlitterSpeed) * _glitterFrequencyLinearEmissive - (_glitterFrequencyLinearEmissive - 1); + finalGlitter = max(_GlitterMinBrightness * glitterAlpha, brightness * glitterAlpha * smoothstep(0, 1, 1 - m_dist * _GlitterCenterSize * 10)); + break; + } + + + half3 glitterColor = _GlitterColor; + glitterColor *= lerp(1, albedo, _GlitterUseSurfaceColor); + #if defined(PROP_GLITTERCOLORMAP) || !defined(OPTIMIZER_ENABLED) + glitterColor *= POI2D_SAMPLER_PAN(_GlitterColorMap, _MainTex, poiMesh.uv[_GlitterColorMapUV], _GlitterColorMapPan).rgb; + #endif + float2 uv = remapClamped(dank, -size, size, 0, 1); + UNITY_BRANCH + if(_GlitterRandomRotation == 1 || _GlitterTextureRotation != 0 && !_GlitterShape) + { + float2 fakeUVCenter = float2(.5, .5); + float randomBoy = 0; + UNITY_BRANCH + if(_GlitterRandomRotation) + { + randomBoy = random(randoPoint); + } + float theta = radians((randomBoy + _Time.x * _GlitterTextureRotation) * 360); + float cs = cos(theta); + float sn = sin(theta); + uv = float2((uv.x - fakeUVCenter.x) * cs - (uv.y - fakeUVCenter.y) * sn + fakeUVCenter.x, (uv.x - fakeUVCenter.x) * sn + (uv.y - fakeUVCenter.y) * cs + fakeUVCenter.y); + } + + #if defined(PROP_GLITTERTEXTURE) || !defined(OPTIMIZER_ENABLED) + float4 glitterTexture = POI2D_SAMPLER_PAN(_GlitterTexture, _MainTex, uv, _GlitterTexturePan); + #else + float4 glitterTexture = 1; + #endif + //float4 glitterTexture = _GlitterTexture.SampleGrad(sampler_MainTex, frac(uv), ddx(uv), ddy(uv)); + glitterColor *= glitterTexture.rgb; + #if defined(PROP_GLITTERMASK) || !defined(OPTIMIZER_ENABLED) + float glitterMask = POI2D_SAMPLER_PAN(_GlitterMask, _MainTex, poiMesh.uv[_GlitterMaskUV], _GlitterMaskPan); + #else + float glitterMask = 1; + #endif + + glitterMask *= lerp(1, poiLight.rampedLightMap, _GlitterHideInShadow); + + #ifdef POI_BLACKLIGHT + if (_BlackLightMaskGlitter != 4) + { + glitterMask *= blackLightMask[_BlackLightMaskGlitter]; + } + #endif + + if(_GlitterRandomColors) + { + glitterColor *= RandomColorFromPoint(random2(randoPoint.x + randoPoint.y)); + } + + UNITY_BRANCH + if(_GlitterHueShiftEnabled) + { + glitterColor.rgb = hueShift(glitterColor.rgb, _GlitterHueShift + _Time.x * _GlitterHueShiftSpeed); + } + + UNITY_BRANCH + if(_GlitterBlendType == 1) + { + albedo.rgb = lerp(albedo.rgb, finalGlitter * glitterColor * _GlitterBrightness, finalGlitter * glitterTexture.a * glitterMask); + glitterEmission = finalGlitter * glitterColor * max(0, (_GlitterBrightness - 1) * glitterTexture.a) * glitterMask; + } + else + { + glitterEmission = finalGlitter * glitterColor * _GlitterBrightness * glitterTexture.a * glitterMask; + } + } + +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiGlitter.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiGlitter.cginc.meta new file mode 100644 index 00000000..3138813f --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiGlitter.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 951e19b6f0892c246b81926ee196e733 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiGrab.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiGrab.cginc new file mode 100644 index 00000000..d8a3d424 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiGrab.cginc @@ -0,0 +1,125 @@ +#ifndef POI_GRAB + #define POI_GRAB + + float _RefractionIndex; + float _RefractionOpacity; + float _RefractionChromaticAberattion; + float _RefractionEnabled; + float _GrabSrcBlend; + float _GrabDstBlend; + float _GrabPassUseAlpha; + float _GrabPassBlendFactor; + float _GrabBlurDistance; + float _GrabBlurQuality; + float _GrabBlurDirections; + POI_TEXTURE_NOSAMPLER(_GrabPassBlendMap); + + float4 blur(float2 uv) + { + float two_pi = 6.28318530718; + + float2 radius = _GrabBlurDistance / _ScreenParams.xy * 100; // Arbitrary constant to match old blur + float quality = floor(_GrabBlurQuality); + float directions = floor(_GrabBlurDirections); + + // Pixel colour + float4 color = tex2D(_PoiGrab, uv); + + float deltaAngle = two_pi / directions; + float deltaQuality = 1.0 / quality; + for (int i = 0; i < directions; i ++) + { + for (int j = 0; j < quality; j ++) + { + float angle = deltaAngle * i + j; + float offset = deltaQuality * (j + 1); + color += tex2D(_PoiGrab, uv + float2(cos(angle), sin(angle)) * radius * offset); + } + } + + // Output to screen + color /= quality * directions + 1; + return color; + } + + inline float4 Refraction(float indexOfRefraction, float chromaticAberration, float2 projectedGrabPos) + { + float4 refractionColor; + float3 worldViewDir = normalize(UnityWorldSpaceViewDir(poiMesh.worldPos)); + float3 refractionOffset = ((((indexOfRefraction - 1.0) * mul(UNITY_MATRIX_V, float4(poiMesh.normals[1], 0.0)).xyz) * (1.0 / (poiCam.grabPos.z + 1.0))) * (1.0 - dot(poiMesh.normals[1], worldViewDir))); + float2 cameraRefraction = float2(refractionOffset.x, - (refractionOffset.y * _ProjectionParams.x)); + + UNITY_BRANCH + if (_RefractionChromaticAberattion > 0) + { + float4 redAlpha = tex2D(_PoiGrab, (projectedGrabPos + cameraRefraction)); + float green = tex2D(_PoiGrab, (projectedGrabPos + (cameraRefraction * (1.0 - chromaticAberration)))).g; + float blue = tex2D(_PoiGrab, (projectedGrabPos + (cameraRefraction * (1.0 + chromaticAberration)))).b; + refractionColor = float4(redAlpha.r, green, blue, redAlpha.a); + } + else + { + float2 refractedGrab = projectedGrabPos + cameraRefraction; + + #ifdef CHROMATIC_ABERRATION_LOW + refractionColor = blur(refractedGrab); + #else + refractionColor = tex2D(_PoiGrab, (refractedGrab)); + #endif + } + return refractionColor; + } + + void calculateRefraction(float2 projectedGrabPos, inout float4 finalColor) + { + float3 refraction = 1; + UNITY_BRANCH + if(_RefractionEnabled == 1) + { + refraction = Refraction(_RefractionIndex, _RefractionChromaticAberattion, projectedGrabPos).rgb; + } + else + { + #ifdef CHROMATIC_ABERRATION_LOW + refraction = blur(projectedGrabPos); + #else + refraction = tex2Dproj(_PoiGrab, poiCam.grabPos).rgb; + #endif + } + + float blendFactor = _GrabPassBlendFactor * POI2D_SAMPLER_PAN(_GrabPassBlendMap, _MainTex, poiMesh.uv[_GrabPassBlendMapUV], _GrabPassBlendMapPan).r; + UNITY_BRANCH + if(_GrabPassUseAlpha) + { + finalColor = poiBlend(_GrabSrcBlend, finalColor, _GrabDstBlend, float4(refraction, 1), blendFactor * (1 - finalColor.a)); + finalColor.a = 1; + } + else + { + finalColor = poiBlend(_GrabSrcBlend, finalColor, _GrabDstBlend, float4(refraction, 1), blendFactor); + } + } + + float2 calculateGrabPosition() + { + float4 grabPos = poiCam.grabPos; + #if UNITY_UV_STARTS_AT_TOP + float scale = -1.0; + #else + float scale = 1.0; + #endif + float halfPosW = grabPos.w * 0.5; + grabPos.y = (grabPos.y - halfPosW) * _ProjectionParams.x * scale + halfPosW; + #if SHADER_API_D3D9 || SHADER_API_D3D11 + grabPos.w += 0.00000000001; + #endif + return(grabPos / grabPos.w).xy; + } + + void applyGrabEffects(inout float4 finalColor) + { + float2 projectedGrabPos = calculateGrabPosition(); + calculateRefraction(projectedGrabPos, finalColor); + } + +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiGrab.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiGrab.cginc.meta new file mode 100644 index 00000000..d01d8517 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiGrab.cginc.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 31b4450700d5cc244853b4488e455231 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiHelpers.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiHelpers.cginc new file mode 100644 index 00000000..32bf369b --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiHelpers.cginc @@ -0,0 +1,336 @@ +#ifndef POI_HELPER + #define POI_HELPER + + #ifndef pi + #define pi float(3.14159265359) + #endif + + float linearSin(float x) + { + return pow(min(cos(pi * x / 2.0), 1.0 - abs(x)), 1.0); + } + + float random(float2 p) + { + return frac(sin(dot(p, float2(12.9898, 78.2383))) * 43758.5453123); + } + + float2 random2(float2 p) + { + return frac(sin(float2(dot(p, float2(127.1, 311.7)), dot(p, float2(269.5, 183.3)))) * 43758.5453); + } + + float3 random3(float3 p) + { + return frac(sin(float3(dot(p, float3(127.1, 311.7, 248.6)), dot(p, float3(269.5, 183.3, 423.3)), dot(p, float3(248.3, 315.9, 184.2)))) * 43758.5453); + } + + float3 mod(float3 x, float y) + { + return x - y * floor(x / y); + } + float2 mod(float2 x, float y) + { + return x - y * floor(x / y); + } + + //1/7 + #define K 0.142857142857 + //3/7 + #define Ko 0.428571428571 + + // Permutation polynomial: (34x^2 + x) mod 289 + float3 Permutation(float3 x) + { + return mod((34.0 * x + 1.0) * x, 289.0); + } + + bool IsInMirror() + { + return unity_CameraProjection[2][0] != 0.f || unity_CameraProjection[2][1] != 0.f; + } + + float3 BoxProjection(float3 direction, float3 position, float4 cubemapPosition, float3 boxMin, float3 boxMax) + { + #if UNITY_SPECCUBE_BOX_PROJECTION + UNITY_BRANCH + if (cubemapPosition.w > 0) + { + float3 factors = ((direction > 0 ? boxMax: boxMin) - position) / direction; + float scalar = min(min(factors.x, factors.y), factors.z); + direction = direction * scalar + (position - cubemapPosition.xyz); + } + #endif + return direction; + } + + // Camera + float3 getCameraPosition() + { + #ifdef USING_STEREO_MATRICES + return lerp(unity_StereoWorldSpaceCameraPos[0], unity_StereoWorldSpaceCameraPos[1], 0.5); + #endif + return _WorldSpaceCameraPos; + } + + float3 getCameraForward() + { + #if UNITY_SINGLE_PASS_STEREO + float3 p1 = mul(unity_StereoCameraToWorld[0], float4(0, 0, 1, 1)); + float3 p2 = mul(unity_StereoCameraToWorld[0], float4(0, 0, 0, 1)); + #else + float3 p1 = mul(unity_CameraToWorld, float4(0, 0, 1, 1)).xyz; + float3 p2 = mul(unity_CameraToWorld, float4(0, 0, 0, 1)).xyz; + #endif + return normalize(p2 - p1); + } + + float3 grayscale_vector_node() + { + return float3(0, 0.3823529, 0.01845836); + } + + float3 grayscale_for_light() + { + return float3(0.298912, 0.586611, 0.114478); + } + + //Math Operators + + float remap(float x, float minOld, float maxOld, float minNew, float maxNew) + { + return minNew + (x - minOld) * (maxNew - minNew) / (maxOld - minOld); + } + + float2 remap(float2 x, float2 minOld, float2 maxOld, float2 minNew, float2 maxNew) + { + return minNew + (x - minOld) * (maxNew - minNew) / (maxOld - minOld); + } + + float3 remap(float3 x, float3 minOld, float3 maxOld, float3 minNew, float3 maxNew) + { + return minNew + (x - minOld) * (maxNew - minNew) / (maxOld - minOld); + } + + float4 remap(float4 x, float4 minOld, float4 maxOld, float4 minNew, float4 maxNew) + { + return minNew + (x - minOld) * (maxNew - minNew) / (maxOld - minOld); + } + + float remapClamped(float x, float minOld, float maxOld, float minNew, float maxNew) + { + return clamp(minNew + (x - minOld) * (maxNew - minNew) / (maxOld - minOld), minNew, maxNew); + } + + float2 remapClamped(float2 x, float2 minOld, float2 maxOld, float2 minNew, float2 maxNew) + { + return clamp(minNew + (x - minOld) * (maxNew - minNew) / (maxOld - minOld), minNew, maxNew); + } + + float3 remapClamped(float3 x, float3 minOld, float3 maxOld, float3 minNew, float3 maxNew) + { + return clamp(minNew + (x - minOld) * (maxNew - minNew) / (maxOld - minOld), minNew, maxNew); + } + + float4 remapClamped(float4 x, float4 minOld, float4 maxOld, float4 minNew, float4 maxNew) + { + return clamp(minNew + (x - minOld) * (maxNew - minNew) / (maxOld - minOld), minNew, maxNew); + } + + float poiMax(float2 i) + { + return max(i.x, i.y); + } + + float poiMax(float3 i) + { + return max(max(i.x, i.y), i.z); + } + + float poiMax(float4 i) + { + return max(max(max(i.x, i.y), i.z), i.w); + } + + float4x4 poiAngleAxisRotationMatrix(float angle, float3 axis) + { + axis = normalize(axis); + float s = sin(angle); + float c = cos(angle); + float oc = 1.0 - c; + + return float4x4(oc * axis.x * axis.x + c, oc * axis.x * axis.y - axis.z * s, oc * axis.z * axis.x + axis.y * s, 0.0, + oc * axis.x * axis.y + axis.z * s, oc * axis.y * axis.y + c, oc * axis.y * axis.z - axis.x * s, 0.0, + oc * axis.z * axis.x - axis.y * s, oc * axis.y * axis.z + axis.x * s, oc * axis.z * axis.z + c, 0.0, + 0.0, 0.0, 0.0, 1.0); + } + + float4x4 poiRotationMatrixFromAngles(float x, float y, float z) + { + float angleX = radians(x); + float c = cos(angleX); + float s = sin(angleX); + float4x4 rotateXMatrix = float4x4(1, 0, 0, 0, + 0, c, -s, 0, + 0, s, c, 0, + 0, 0, 0, 1); + + float angleY = radians(y); + c = cos(angleY); + s = sin(angleY); + float4x4 rotateYMatrix = float4x4(c, 0, s, 0, + 0, 1, 0, 0, + - s, 0, c, 0, + 0, 0, 0, 1); + + float angleZ = radians(z); + c = cos(angleZ); + s = sin(angleZ); + float4x4 rotateZMatrix = float4x4(c, -s, 0, 0, + s, c, 0, 0, + 0, 0, 1, 0, + 0, 0, 0, 1); + + return mul(mul(rotateXMatrix, rotateYMatrix), rotateZMatrix); + } + + float4x4 poiRotationMatrixFromAngles(float3 angles) + { + float angleX = radians(angles.x); + float c = cos(angleX); + float s = sin(angleX); + float4x4 rotateXMatrix = float4x4(1, 0, 0, 0, + 0, c, -s, 0, + 0, s, c, 0, + 0, 0, 0, 1); + + float angleY = radians(angles.y); + c = cos(angleY); + s = sin(angleY); + float4x4 rotateYMatrix = float4x4(c, 0, s, 0, + 0, 1, 0, 0, + - s, 0, c, 0, + 0, 0, 0, 1); + + float angleZ = radians(angles.z); + c = cos(angleZ); + s = sin(angleZ); + float4x4 rotateZMatrix = float4x4(c, -s, 0, 0, + s, c, 0, 0, + 0, 0, 1, 0, + 0, 0, 0, 1); + + return mul(mul(rotateXMatrix, rotateYMatrix), rotateZMatrix); + } + +#endif + +half2 calcScreenUVs(half4 grabPos) +{ + half2 uv = grabPos.xy / (grabPos.w + 0.0000000001); + #if UNITY_SINGLE_PASS_STEREO + uv.xy *= half2(_ScreenParams.x * 2, _ScreenParams.y); + #else + uv.xy *= _ScreenParams.xy; + #endif + + return uv; +} + +float inverseLerp(float A, float B, float T) +{ + return(T - A) / (B - A); +} + +float inverseLerp2(float2 a, float2 b, float2 value) +{ + float2 AB = b - a; + float2 AV = value - a; + return dot(AV, AB) / dot(AB, AB); +} + +float inverseLerp3(float3 a, float3 b, float3 value) +{ + float3 AB = b - a; + float3 AV = value - a; + return dot(AV, AB) / dot(AB, AB); +} + +float inverseLerp4(float4 a, float4 b, float4 value) +{ + float4 AB = b - a; + float4 AV = value - a; + return dot(AV, AB) / dot(AB, AB); +} + +// Dithering +inline half Dither8x8Bayer(int x, int y) +{ + const half dither[ 64 ] = { + 1, 49, 13, 61, 4, 52, 16, 64, + 33, 17, 45, 29, 36, 20, 48, 32, + 9, 57, 5, 53, 12, 60, 8, 56, + 41, 25, 37, 21, 44, 28, 40, 24, + 3, 51, 15, 63, 2, 50, 14, 62, + 35, 19, 47, 31, 34, 18, 46, 30, + 11, 59, 7, 55, 10, 58, 6, 54, + 43, 27, 39, 23, 42, 26, 38, 22 + }; + int r = y * 8 + x; + return dither[r] / 64; +} + +// UV Manipulation +float2 TransformUV(half2 offset, half rotation, half2 scale, float2 uv) +{ + float theta = radians(rotation); + scale = 1 - scale; + float cs = cos(theta); + float sn = sin(theta); + float2 centerPoint = offset + .5; + uv = float2((uv.x - centerPoint.x) * cs - (uv.y - centerPoint.y) * sn + centerPoint.x, (uv.x - centerPoint.x) * sn + (uv.y - centerPoint.y) * cs + centerPoint.y); + + return remap(uv, float2(0, 0) + offset + (scale * .5), float2(1, 1) + offset - (scale * .5), float2(0, 0), float2(1, 1)); +} + +bool isVR() +{ + // USING_STEREO_MATRICES + #if UNITY_SINGLE_PASS_STEREO + return true; + #else + return false; + #endif +} + +bool isVRHandCamera() +{ + return !isVR() && abs(UNITY_MATRIX_V[0].y) > 0.0000005; +} + +bool isDesktop() +{ + return !isVRHandCamera(); +} + +bool isVRHandCameraPreview() +{ + return isVRHandCamera() && _ScreenParams.y == 720; +} + +bool isVRHandCameraPicture() +{ + return isVRHandCamera() && _ScreenParams.y == 1080; +} + +bool isPanorama() +{ + // Crude method + // FOV=90=camproj=[1][1] + return unity_CameraProjection[1][1] == 1 && _ScreenParams.x == 1075 && _ScreenParams.y == 1025; +} + +float calculateluminance(float3 color) +{ + return color.r * 0.299 + color.g * 0.587 + color.b * 0.114; +}
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiHelpers.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiHelpers.cginc.meta new file mode 100644 index 00000000..233c26f9 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiHelpers.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: fb03052ea8dc42740b104275ae961ae0 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiHologram.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiHologram.cginc new file mode 100644 index 00000000..7439f689 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiHologram.cginc @@ -0,0 +1,43 @@ +#ifndef POI_HOLOGRAM + #define POI_HOLOGRAM + + #if defined(PROP_HOLOALPHAMAP) || !defined(OPTIMIZER_ENABLED) + UNITY_DECLARE_TEX2D_NOSAMPLER(_HoloAlphaMap); float4 _HoloAlphaMap_ST; + #endif + float _HoloCoordinateSpace; // 0 World, 1 Local, 2 UV + float3 _HoloDirection; + float _HoloScrollSpeed; + float _HoloLineDensity; + + fixed _HoloFresnelAlpha; + fixed _HoloRimSharpness; + fixed _HoloRimWidth; + void ApplyHoloAlpha(inout float4 color) + { + float uv = 0; + UNITY_BRANCH + if (_HoloCoordinateSpace == 0) + { + uv = dot(normalize(_HoloDirection), poiMesh.worldPos * _HoloLineDensity) + _Time.x * _HoloScrollSpeed; + } + UNITY_BRANCH + if(_HoloCoordinateSpace == 1) + { + uv = dot(normalize(_HoloDirection), poiMesh.localPos * _HoloLineDensity) + _Time.x * _HoloScrollSpeed; + } + UNITY_BRANCH + if(_HoloCoordinateSpace == 2) + { + uv = dot(_HoloDirection, poiMesh.uv[0] * _HoloLineDensity) + _Time.x * _HoloScrollSpeed; + } + float holoRim = saturate(1 - smoothstep(min(_HoloRimSharpness, _HoloRimWidth), _HoloRimWidth, poiCam.viewDotNormal)); + holoRim = abs(lerp(1, holoRim, _HoloFresnelAlpha)); + #if defined(PROP_HOLOALPHAMAP) || !defined(OPTIMIZER_ENABLED) + fixed holoAlpha = UNITY_SAMPLE_TEX2D_SAMPLER(_HoloAlphaMap, _MainTex, uv).r; + #else + fixed holoAlpha = 1; + #endif + color.a *= holoAlpha * holoRim; + } + +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiHologram.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiHologram.cginc.meta new file mode 100644 index 00000000..f342f3b6 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiHologram.cginc.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ea5f0a88cd7909642be3bb003cd6c291 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiIridescence.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiIridescence.cginc new file mode 100644 index 00000000..ef5697f5 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiIridescence.cginc @@ -0,0 +1,77 @@ +#ifndef POI_IRIDESCENCE + #define POI_IRIDESCENCE + #if defined(PROP_IRIDESCENCERAMP) || !defined(OPTIMIZER_ENABLED) + UNITY_DECLARE_TEX2D_NOSAMPLER(_IridescenceRamp); float4 _IridescenceRamp_ST; + #endif + #if defined(PROP_IRIDESCENCEMASK) || !defined(OPTIMIZER_ENABLED) + UNITY_DECLARE_TEX2D_NOSAMPLER(_IridescenceMask); float4 _IridescenceMask_ST; + #endif + #if defined(PROP_IRIDESCENCENORMALMAP) || !defined(OPTIMIZER_ENABLED) + UNITY_DECLARE_TEX2D_NOSAMPLER(_IridescenceNormalMap); float4 _IridescenceNormalMap_ST; + #endif + float _IridescenceNormalUV; + float _IridescenceMaskUV; + float _IridescenceNormalSelection; + float _IridescenceNormalIntensity; + float _IridescenceNormalToggle; + float _IridescenceIntensity; + fixed _IridescenceAddBlend; + fixed _IridescenceReplaceBlend; + fixed _IridescenceMultiplyBlend; + float _IridescenceEmissionStrength; + + //global + #if defined(PROP_IRIDESCENCENORMALMAP) || !defined(OPTIMIZER_ENABLED) + float3 calculateNormal(float3 baseNormal) + { + + float3 normal = UnpackScaleNormal(UNITY_SAMPLE_TEX2D_SAMPLER(_IridescenceNormalMap, _MainTex, TRANSFORM_TEX(poiMesh.uv[_IridescenceNormalUV], _IridescenceNormalMap)), _IridescenceNormalIntensity); + return normalize( + normal.x * poiMesh.tangent + + normal.y * poiMesh.binormal + + normal.z * baseNormal + ); + } + #endif + void applyIridescence(inout float4 albedo, inout float3 IridescenceEmission) + { + float3 normal = poiMesh.normals[_IridescenceNormalSelection]; + + #if defined(PROP_IRIDESCENCENORMALMAP) || !defined(OPTIMIZER_ENABLED) + // Use custom normal map + UNITY_BRANCH + if (_IridescenceNormalToggle) + { + normal = calculateNormal(normal); + } + #endif + + float ndotv = dot(normal, poiCam.viewDir); + + #if defined(PROP_IRIDESCENCERAMP) || !defined(OPTIMIZER_ENABLED) + float4 iridescenceColor = UNITY_SAMPLE_TEX2D_SAMPLER(_IridescenceRamp, _MainTex, 1 - abs(ndotv)); + #else + float4 iridescenceColor = 1; + #endif + + #if defined(PROP_IRIDESCENCEMASK) || !defined(OPTIMIZER_ENABLED) + float4 iridescenceMask = UNITY_SAMPLE_TEX2D_SAMPLER(_IridescenceMask, _MainTex, TRANSFORM_TEX(poiMesh.uv[_IridescenceMaskUV], _IridescenceMask)); + #else + float4 iridescenceMask = 1; + #endif + #ifdef POI_BLACKLIGHT + if(_BlackLightMaskIridescence != 4) + { + iridescenceMask *= blackLightMask[_BlackLightMaskIridescence]; + } + #endif + + + albedo.rgb = lerp(albedo.rgb, saturate(iridescenceColor.rgb * _IridescenceIntensity), iridescenceColor.a * _IridescenceReplaceBlend * iridescenceMask); + albedo.rgb += saturate(iridescenceColor.rgb * _IridescenceIntensity * iridescenceColor.a * _IridescenceAddBlend * iridescenceMask); + albedo.rgb *= saturate(lerp(1, iridescenceColor.rgb * _IridescenceIntensity, iridescenceColor.a * _IridescenceMultiplyBlend * iridescenceMask)); + + IridescenceEmission = saturate(iridescenceColor.rgb * _IridescenceIntensity) * iridescenceColor.a * iridescenceMask * _IridescenceEmissionStrength; + } + +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiIridescence.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiIridescence.cginc.meta new file mode 100644 index 00000000..db93f998 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiIridescence.cginc.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 72605619fbb558a40926b8b605114f53 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiLighting.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiLighting.cginc new file mode 100644 index 00000000..4e026b88 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiLighting.cginc @@ -0,0 +1,973 @@ + +#ifndef POI_LIGHTING +#define POI_LIGHTING + +float _LightingRampType; +float _LightingIgnoreAmbientColor; +float _UseShadowTexture; +float _LightingEnableAO; +float _LightingDetailShadowsEnabled; + +float _LightingOnlyUnityShadows; +float _LightingMode; +float _ForceLightDirection; +float _ShadowStrength; +float _OutlineShadowStrength; +float _ShadowOffset; +float3 _LightDirection; +float _ForceShadowStrength; +float _CastedShadowSmoothing; +float _AttenuationMultiplier; +float _EnableLighting; +float _LightingControlledUseLightColor; +fixed _LightingStandardSmoothness; +fixed _LightingStandardControlsToon; +fixed _LightingMinLightBrightness; +float _LightingUseShadowRamp; +float _LightingMinShadowBrightnessRatio; +fixed _LightingMonochromatic; + +fixed _LightingGradientStart; +fixed _LightingGradientEnd; +float3 _LightingShadowColor; +float _AOStrength; +fixed _LightingDetailStrength; +fixed _LightingAdditiveDetailStrength; +fixed _LightingNoIndirectMultiplier; +fixed _LightingNoIndirectThreshold; +float _LightingUncapped; + +float _LightingDirectColorMode; +float _LightingIndirectColorMode; +float _LightingAdditiveType; +fixed _LightingAdditiveGradientStart; +fixed _LightingAdditiveGradientEnd; +fixed _LightingAdditivePassthrough; +float _LightingDirectAdjustment; +float _LightingIndirect; +// HSL JUNK +float _LightingEnableHSL; +float _LightingShadowHue; +float _LightingShadowSaturation; +float _LightingShadowLightness; +float _LightingHSLIntensity; +// UTS Style Shade Mapping +float4 _1st_ShadeColor; +float _Use_BaseAs1st; +float4 _2nd_ShadeColor; +float _Use_1stAs2nd; +float _BaseColor_Step; +float _BaseShade_Feather; +float _ShadeColor_Step; +float _1st2nd_Shades_Feather; +float _Use_1stShadeMapAlpha_As_ShadowMask; +float _1stShadeMapMask_Inverse; +float _Tweak_1stShadingGradeMapLevel; +float _Use_2ndShadeMapAlpha_As_ShadowMask; +float _2ndShadeMapMask_Inverse; +float _Tweak_2ndShadingGradeMapLevel; +// Skin +float _SkinScatteringProperties; +float _SssWeight; +float _SssMaskCutoff ; +float _SssBias; +float _SssScale; +float _SssBumpBlur; +float4 _SssTransmissionAbsorption; +float4 _SssColorBleedAoWeights; +/* +UNITY_DECLARE_TEX2D_NOSAMPLER(_ToonRamp3); +half _LightingShadowStrength3; +half _ShadowOffset3; +*/ + +half4 shadowStrength; +sampler2D _SkinLUT; +UNITY_DECLARE_TEX2D(_ToonRamp); +POI_TEXTURE_NOSAMPLER(_1st_ShadeMap); +POI_TEXTURE_NOSAMPLER(_2nd_ShadeMap); +POI_TEXTURE_NOSAMPLER(_LightingDetailShadows); +POI_TEXTURE_NOSAMPLER(_LightingAOTex); +POI_TEXTURE_NOSAMPLER(_LightingShadowMask); + +float3 directLighting; +float3 indirectLighting; +/* +* DJLs code starts here +*/ +float _LightingWrappedWrap; +float _LightingWrappedNormalization; + +// Green’s model with adjustable energy +// http://blog.stevemcauley.com/2011/12/03/energy-conserving-wrapped-diffuse/ +// Modified for adjustable conservation ratio and over-wrap to directionless +float RTWrapFunc(in float dt, in float w, in float norm) +{ + float cw = saturate(w); + + float o = (dt + cw) / ((1.0 + cw) * (1.0 + cw * norm)); + float flt = 1.0 - 0.85 * norm; + if (w > 1.0) + { + o = lerp(o, flt, w - 1.0); + } + return o; +} +float3 GreenWrapSH(float fA) // Greens unoptimized and non-normalized + +{ + float fAs = saturate(fA); + float4 t = float4(fA + 1, fAs - 1, fA - 2, fAs + 1); // DJL edit: allow wrapping to L0-only at w=2 + return float3(t.x, -t.z * t.x / 3, 0.25 * t.y * t.y * t.w); +} +float3 GreenWrapSHOpt(float fW) // optimised and normalized https://blog.selfshadow.com/2012/01/07/righting-wrap-part-2/ + +{ + const float4 t0 = float4(0.0, 1.0 / 4.0, -1.0 / 3.0, -1.0 / 2.0); + const float4 t1 = float4(1.0, 2.0 / 3.0, 1.0 / 4.0, 0.0); + float3 fWs = float3(fW, fW, saturate(fW)); // DJL edit: allow wrapping to L0-only at w=2 + + float3 r; + r.xyz = t0.xxy * fWs + t0.xzw; + r.xyz = r.xyz * fWs + t1.xyz; + return r; +} +float3 ShadeSH9_wrapped(float3 normal, float wrap) +{ + float3 x0, x1, x2; + float3 conv = lerp(GreenWrapSH(wrap), GreenWrapSHOpt(wrap), _LightingWrappedNormalization); // Should try optimizing this... + conv *= float3(1, 1.5, 4); // Undo pre-applied cosine convolution by using the inverse + + // Constant (L0) + x0 = float3(unity_SHAr.w, unity_SHAg.w, unity_SHAb.w); + // Remove pre-applied constant part from L(2,0) to apply correct convolution + float3 L2_0 = float3(unity_SHBr.z, unity_SHBg.z, unity_SHBb.z) / - 3.0; + x0 -= L2_0; + + // Linear (L1) polynomial terms + x1.r = dot(unity_SHAr.xyz, normal); + x1.g = dot(unity_SHAg.xyz, normal); + x1.b = dot(unity_SHAb.xyz, normal); + + // 4 of the quadratic (L2) polynomials + float4 vB = normal.xyzz * normal.yzzx; + x2.r = dot(unity_SHBr, vB); + x2.g = dot(unity_SHBg, vB); + x2.b = dot(unity_SHBb, vB); + + // Final (5th) quadratic (L2) polynomial + float vC = normal.x * normal.x - normal.y * normal.y; + x2 += unity_SHC.rgb * vC; + // Move back the constant part of L(2,0) + x2 += L2_0; + + return x0 * conv.x + x1 * conv.y + x2 * conv.z; +} + +/* +* MIT License +* +* Copyright (c) 2018 s-ilent +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in all +* copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +*/ + +/* +* Silent's code starts here +*/ + +float shEvaluateDiffuseL1Geomerics_local(float L0, float3 L1, float3 n) +{ + // average energy + float R0 = max(0, L0); + + // avg direction of incoming light + float3 R1 = 0.5f * L1; + + // directional brightness + float lenR1 = length(R1); + + // linear angle between normal and direction 0-1 + //float q = 0.5f * (1.0f + dot(R1 / lenR1, n)); + //float q = dot(R1 / lenR1, n) * 0.5 + 0.5; + float q = dot(normalize(R1), n) * 0.5 + 0.5; + q = saturate(q); // Thanks to ScruffyRuffles for the bug identity. + + // power for q + // lerps from 1 (linear) to 3 (cubic) based on directionality + float p = 1.0f + 2.0f * lenR1 / R0; + + // dynamic range constant + // should vary between 4 (highly directional) and 0 (ambient) + float a = (1.0f - lenR1 / R0) / (1.0f + lenR1 / R0); + + return R0 * (a + (1.0f - a) * (p + 1.0f) * pow(q, p)); +} + +half3 BetterSH9(half4 normal) +{ + float3 indirect; + float3 L0 = float3(unity_SHAr.w, unity_SHAg.w, unity_SHAb.w) + float3(unity_SHBr.z, unity_SHBg.z, unity_SHBb.z) / 3.0; + indirect.r = shEvaluateDiffuseL1Geomerics_local(L0.r, unity_SHAr.xyz, normal.xyz); + indirect.g = shEvaluateDiffuseL1Geomerics_local(L0.g, unity_SHAg.xyz, normal.xyz); + indirect.b = shEvaluateDiffuseL1Geomerics_local(L0.b, unity_SHAb.xyz, normal.xyz); + indirect = max(0, indirect); + indirect += SHEvalLinearL2(normal); + return indirect; +} + +float3 BetterSH9(float3 normal) +{ + return BetterSH9(float4(normal, 1)); +} + +/* +* Standard stuff starts here +*/ +UnityLight CreateLight(float3 normal, fixed detailShadowMap) +{ + UnityLight light; + light.dir = poiLight.direction; + light.color = saturate(_LightColor0.rgb * lerp(1, poiLight.attenuation, _AttenuationMultiplier) * detailShadowMap); + light.ndotl = DotClamped(normal, poiLight.direction); + return light; +} + +float FadeShadows(float attenuation) +{ + #if HANDLE_SHADOWS_BLENDING_IN_GI || ADDITIONAL_MASKED_DIRECTIONAL_SHADOWS + // UNITY_LIGHT_ATTENUATION doesn't fade shadows for us. + + #if ADDITIONAL_MASKED_DIRECTIONAL_SHADOWS + attenuation = lerp(1, poiLight.attenuation, _AttenuationMultiplier); + #endif + + float viewZ = dot(_WorldSpaceCameraPos - poiMesh.worldPos, UNITY_MATRIX_V[2].xyz); + float shadowFadeDistance = UnityComputeShadowFadeDistance(poiMesh.worldPos, viewZ); + float shadowFade = UnityComputeShadowFade(shadowFadeDistance); + float bakedAttenuation = UnitySampleBakedOcclusion(poiMesh.lightmapUV.xy, poiMesh.worldPos); + attenuation = UnityMixRealtimeAndBakedShadows( + attenuation, bakedAttenuation, shadowFade + ); + #endif + + return attenuation; +} + +void ApplySubtractiveLighting(inout UnityIndirect indirectLight) +{ + #if SUBTRACTIVE_LIGHTING + poiLight.attenuation = FadeShadows(lerp(1, poiLight.attenuation, _AttenuationMultiplier)); + + float ndotl = saturate(dot(i.normal, _WorldSpaceLightPos0.xyz)); + float3 shadowedLightEstimate = ndotl * (1 - poiLight.attenuation) * _LightColor0.rgb; + float3 subtractedLight = indirectLight.diffuse - shadowedLightEstimate; + subtractedLight = max(subtractedLight, unity_ShadowColor.rgb); + subtractedLight = lerp(subtractedLight, indirectLight.diffuse, _LightShadowData.x); + indirectLight.diffuse = min(subtractedLight, indirectLight.diffuse); + #endif +} + +float3 weightedBlend(float3 layer1, float3 layer2, float2 weights) +{ + return(weights.x * layer1 + weights.y * layer2) / (weights.x + weights.y); +} + +UnityIndirect CreateIndirectLight(float3 normal) +{ + UnityIndirect indirectLight; + indirectLight.diffuse = 0; + indirectLight.specular = 0; + + #if defined(FORWARD_BASE_PASS) + #if defined(LIGHTMAP_ON) + indirectLight.diffuse = DecodeLightmap(UNITY_SAMPLE_TEX2D(unity_Lightmap, poiMesh.lightmapUV.xy)); + + #if defined(DIRLIGHTMAP_COMBINED) + float4 lightmapDirection = UNITY_SAMPLE_TEX2D_SAMPLER( + unity_LightmapInd, unity_Lightmap, poiMesh.lightmapUV.xy + ); + indirectLight.diffuse = DecodeDirectionalLightmap( + indirectLight.diffuse, lightmapDirection, normal + ); + #endif + ApplySubtractiveLighting(indirectLight); + #endif + + #if defined(DYNAMICLIGHTMAP_ON) + float3 dynamicLightDiffuse = DecodeRealtimeLightmap( + UNITY_SAMPLE_TEX2D(unity_DynamicLightmap, poiMesh.lightmapUV.zw) + ); + + #if defined(DIRLIGHTMAP_COMBINED) + float4 dynamicLightmapDirection = UNITY_SAMPLE_TEX2D_SAMPLER( + unity_DynamicDirectionality, unity_DynamicLightmap, + poiMesh.lightmapUV.zw + ); + indirectLight.diffuse += DecodeDirectionalLightmap( + dynamicLightDiffuse, dynamicLightmapDirection, normal + ); + #else + indirectLight.diffuse += dynamicLightDiffuse; + #endif + #endif + + #if !defined(LIGHTMAP_ON) && !defined(DYNAMICLIGHTMAP_ON) + #if UNITY_LIGHT_PROBE_PROXY_VOLUME + if (unity_ProbeVolumeParams.x == 1) + { + indirectLight.diffuse = SHEvalLinearL0L1_SampleProbeVolume( + float4(normal, 1), poiMesh.worldPos + ); + indirectLight.diffuse = max(0, indirectLight.diffuse); + #if defined(UNITY_COLORSPACE_GAMMA) + indirectLight.diffuse = LinearToGammaSpace(indirectLight.diffuse); + #endif + } + else + { + indirectLight.diffuse += max(0, ShadeSH9(float4(normal, 1))); + } + #else + indirectLight.diffuse += max(0, ShadeSH9(float4(normal, 1))); + #endif + #endif + + float3 reflectionDir = reflect(-poiCam.viewDir, normal); + Unity_GlossyEnvironmentData envData; + envData.roughness = 1 - _LightingStandardSmoothness; + envData.reflUVW = BoxProjection( + reflectionDir, poiMesh.worldPos.xyz, + unity_SpecCube0_ProbePosition, + unity_SpecCube0_BoxMin.xyz, unity_SpecCube0_BoxMax.xyz + ); + float3 probe0 = Unity_GlossyEnvironment( + UNITY_PASS_TEXCUBE(unity_SpecCube0), unity_SpecCube0_HDR, envData + ); + envData.reflUVW = BoxProjection( + reflectionDir, poiMesh.worldPos.xyz, + unity_SpecCube1_ProbePosition, + unity_SpecCube1_BoxMin.xyz, unity_SpecCube1_BoxMax.xyz + ); + #if UNITY_SPECCUBE_BLENDING + float interpolator = unity_SpecCube0_BoxMin.w; + UNITY_BRANCH + if (interpolator < 0.99999) + { + float3 probe1 = Unity_GlossyEnvironment( + UNITY_PASS_TEXCUBE_SAMPLER(unity_SpecCube1, unity_SpecCube0), + unity_SpecCube0_HDR, envData + ); + indirectLight.specular = lerp(probe1, probe0, interpolator); + } + else + { + indirectLight.specular = probe0; + } + #else + indirectLight.specular = probe0; + #endif + float occlusion = 1; + UNITY_BRANCH + if (_LightingEnableAO) + { + occlusion = lerp(1, POI2D_SAMPLER_PAN(_LightingAOTex, _MainTex, poiMesh.uv[_LightingAOTexUV], _LightingAOTexPan).r, _AOStrength); + } + + indirectLight.diffuse *= occlusion; + indirectLight.diffuse = max(indirectLight.diffuse, _LightingMinLightBrightness); + indirectLight.specular *= occlusion; + #endif + + return indirectLight; +} + +/* +* Poiyomi's cool as heck code starts here :smug: +*/ + +half PoiDiffuse(half NdotV, half NdotL, half LdotH) +{ + half fd90 = 0.5 + 2 * LdotH * LdotH * SmoothnessToPerceptualRoughness(.5); + // Two schlick fresnel term + half lightScatter = (1 + (fd90 - 1) * Pow5(1 - NdotL)); + half viewScatter = (1 + (fd90 - 1) * Pow5(1 - NdotV)); + + return lightScatter * viewScatter; +} + +float3 ShadeSH9Indirect() +{ + return ShadeSH9(half4(0.0, -1.0, 0.0, 1.0)); +} + +float3 ShadeSH9Direct() +{ + return ShadeSH9(half4(0.0, 1.0, 0.0, 1.0)); +} + +float3 ShadeSH9Normal(float3 normalDirection) +{ + return ShadeSH9(half4(normalDirection, 1.0)); +} + +half3 GetSHLength() +{ + half3 x, x1; + x.r = length(unity_SHAr); + x.g = length(unity_SHAg); + x.b = length(unity_SHAb); + x1.r = length(unity_SHBr); + x1.g = length(unity_SHBg); + x1.b = length(unity_SHBb); + return x + x1; +} +half3 GetSHDirectionL1() +{ + //float3 grayscale = float3(.3, .59, .11); + float3 grayscale = float3(.33333, .33333, .33333); + half3 r = Unity_SafeNormalize(half3(unity_SHAr.x, unity_SHAr.y, unity_SHAr.z)); + half3 g = Unity_SafeNormalize(half3(unity_SHAg.x, unity_SHAg.y, unity_SHAg.z)); + half3 b = Unity_SafeNormalize(half3(unity_SHAb.x, unity_SHAb.y, unity_SHAb.z)); + return Unity_SafeNormalize(grayscale.r * r + grayscale.g * g + grayscale.b * b); +} +float3 GetSHDirectionL1_() +{ + // For efficiency, we only get the direction from L1. + // Because getting it from L2 would be too hard! + return Unity_SafeNormalize((unity_SHAr.xyz + unity_SHAg.xyz + unity_SHAb.xyz)); +} +// Returns the value from SH in the lighting direction with the +// brightest intensity. +half3 GetSHMaxL1() +{ + float3 maxDirection = GetSHDirectionL1(); + return ShadeSH9_wrapped(maxDirection, 0); +} + + +float3 calculateRealisticLighting(float4 colorToLight, fixed detailShadowMap) +{ + return UNITY_BRDF_PBS(1, 0, 0, _LightingStandardSmoothness, poiMesh.normals[1], poiCam.viewDir, CreateLight(poiMesh.normals[1], detailShadowMap), CreateIndirectLight(poiMesh.normals[1])).xyz; +} + +void calculateBasePassLightMaps() +{ + #if defined(FORWARD_BASE_PASS) || defined(POI_META_PASS) + float AOMap = 1; + float AOStrength = 0; + float3 lightColor = poiLight.color; + /* + * Generate Basic Light Maps + */ + + bool lightExists = false; + if (all(_LightColor0.rgb >= 0.002)) + { + lightExists = true; + } + #ifndef OUTLINE + UNITY_BRANCH + if (_LightingEnableAO) + { + AOMap = POI2D_SAMPLER_PAN(_LightingAOTex, _MainTex, poiMesh.uv[_LightingAOTexUV], _LightingAOTexPan).r; + AOStrength = _AOStrength; + poiLight.occlusion = lerp(1, AOMap, AOStrength); + } + #ifdef FORWARD_BASE_PASS + //poiLight.color = saturate(_LightColor0.rgb) + saturate(ShadeSH9(normalize(unity_SHAr + unity_SHAg + unity_SHAb))); + if (lightExists) + { + lightColor = _LightColor0.rgb + BetterSH9(float4(0, 0, 0, 1)); + } + else + { + lightColor = max(BetterSH9(normalize(unity_SHAr + unity_SHAg + unity_SHAb)), 0); + } + + //lightColor = magic * magiratio + normalLight * normaRatio; + //lightColor = magic + normalLight; + #endif + #endif + + float3 grayscale_vector = float3(.33333, .33333, .33333); + float3 ShadeSH9Plus = GetSHLength(); + float3 ShadeSH9Minus = float3(unity_SHAr.w, unity_SHAg.w, unity_SHAb.w) + float3(unity_SHBr.z, unity_SHBg.z, unity_SHBb.z) / 3.0; + + shadowStrength = 1; + #ifndef OUTLINE + shadowStrength = POI2D_SAMPLER_PAN(_LightingShadowMask, _MainTex, poiMesh.uv[_LightingShadowMaskUV], _LightingShadowMaskPan) * _ShadowStrength; + #else + shadowStrength = _OutlineShadowStrength; + #endif + + float bw_lightColor = dot(lightColor, grayscale_vector); + float bw_directLighting = (((poiLight.nDotL * 0.5 + 0.5) * bw_lightColor * lerp(1, poiLight.attenuation, _AttenuationMultiplier)) + dot(ShadeSH9Normal(poiMesh.normals[1]), grayscale_vector)); + float bw_bottomIndirectLighting = dot(ShadeSH9Minus, grayscale_vector); + float bw_topIndirectLighting = dot(ShadeSH9Plus, grayscale_vector); + float lightDifference = ((bw_topIndirectLighting + bw_lightColor) - bw_bottomIndirectLighting); + + fixed detailShadow = 1; + UNITY_BRANCH + if (_LightingDetailShadowsEnabled) + { + detailShadow = lerp(1, POI2D_SAMPLER_PAN(_LightingDetailShadows, _MainTex, poiMesh.uv[_LightingDetailShadowsUV], _LightingDetailShadowsPan), _LightingDetailStrength).r; + } + UNITY_BRANCH + if (_LightingOnlyUnityShadows) + { + poiLight.lightMap = poiLight.attenuation; + } + else + { + poiLight.lightMap = smoothstep(0, lightDifference, bw_directLighting - bw_bottomIndirectLighting); + } + poiLight.lightMap *= detailShadow; + + /* + * Decide on light colors + */ + + indirectLighting = 0; + directLighting = 0; + + + + UNITY_BRANCH + if (_LightingIndirectColorMode == 1) + { + indirectLighting = BetterSH9(float4(poiMesh.normals[1], 1)); + } + else + { + indirectLighting = ShadeSH9Minus; + } + + poiLight.directLighting = lightColor; + poiLight.indirectLighting = indirectLighting; + + UNITY_BRANCH + if (_LightingDirectColorMode == 0) + { + float3 magic = max(BetterSH9(normalize(unity_SHAr + unity_SHAg + unity_SHAb)), 0); + float3 normalLight = _LightColor0.rgb + BetterSH9(float4(0, 0, 0, 1)); + + float magiLumi = calculateluminance(magic); + float normaLumi = calculateluminance(normalLight); + float maginormalumi = magiLumi + normaLumi; + + float magiratio = magiLumi / maginormalumi; + float normaRatio = normaLumi / maginormalumi; + + float target = calculateluminance(magic * magiratio + normalLight * normaRatio); + float3 properLightColor = magic * AOMap + normalLight; + float properLuminance = calculateluminance(magic + normalLight); + directLighting = properLightColor * max(0.0001, (target / properLuminance)); + } + else + { + if (lightExists) + { + directLighting = _LightColor0.rgb + BetterSH9(float4(0, 0, 0, 1)) * AOMap; + } + else + { + directLighting = max(BetterSH9(normalize(unity_SHAr + unity_SHAg + unity_SHAb)), 0); + } + } + + UNITY_BRANCH + if (!_LightingUncapped) + { + float directluminance = calculateluminance(directLighting); + float indirectluminance = calculateluminance(indirectLighting); + directLighting = min(directLighting, directLighting / max(0.0001, (directluminance / 1))); + indirectLighting = min(indirectLighting, indirectLighting / max(0.0001, (indirectluminance / 1))); + } + + directLighting = lerp(directLighting, dot(directLighting, float3(0.299, 0.587, 0.114)), _LightingMonochromatic); + indirectLighting = lerp(indirectLighting, dot(indirectLighting, float3(0.299, 0.587, 0.114)), _LightingMonochromatic); + + if (max(max(indirectLighting.x, indirectLighting.y), indirectLighting.z) <= _LightingNoIndirectThreshold && max(max(directLighting.x, directLighting.y), directLighting.z) >= 0) + { + indirectLighting = directLighting * _LightingNoIndirectMultiplier; + } + + UNITY_BRANCH + if (_LightingMinShadowBrightnessRatio) + { + float directluminance = clamp(directLighting.r * 0.299 + directLighting.g * 0.587 + directLighting.b * 0.114, 0, 1); + if (directluminance > 0) + { + indirectLighting = max(0.001, indirectLighting); + } + float indirectluminance = clamp(indirectLighting.r * 0.299 + indirectLighting.g * 0.587 + indirectLighting.b * 0.114, 0, 1); + float targetluminance = directluminance * _LightingMinShadowBrightnessRatio; + if (indirectluminance < targetluminance) + { + indirectLighting = indirectLighting / max(0.0001, indirectluminance / targetluminance); + } + } + + poiLight.rampedLightMap = 1 - smoothstep(0, .5, 1 - poiLight.lightMap); + poiLight.finalLighting = directLighting; + + /* + * Create Gradiant Maps + */ + switch(_LightingRampType) + { + case 0: // Ramp Texture + + { + poiLight.rampedLightMap = lerp(1, UNITY_SAMPLE_TEX2D(_ToonRamp, poiLight.lightMap + _ShadowOffset).rgb, shadowStrength.r); + UNITY_BRANCH + if (_LightingIgnoreAmbientColor) + { + poiLight.finalLighting = lerp(poiLight.rampedLightMap * directLighting * lerp(1, AOMap, AOStrength), directLighting, poiLight.rampedLightMap); + } + else + { + poiLight.finalLighting = lerp(indirectLighting * lerp(1, AOMap, AOStrength), directLighting, poiLight.rampedLightMap); + } + } + break; + case 1: // Math Gradient + + { + poiLight.rampedLightMap = saturate(1 - smoothstep(_LightingGradientStart - .000001, _LightingGradientEnd, 1 - poiLight.lightMap)); + float3 shadowColor = _LightingShadowColor; + UNITY_BRANCH + if (_UseShadowTexture) + { + shadowColor = 1; + } + UNITY_BRANCH + if (_LightingIgnoreAmbientColor) + { + poiLight.finalLighting = lerp((directLighting * shadowColor * lerp(1, AOMap, AOStrength)), (directLighting), saturate(poiLight.rampedLightMap + 1 - _ShadowStrength)); + } + else + { + poiLight.finalLighting = lerp((indirectLighting * shadowColor * lerp(1, AOMap, AOStrength)), (directLighting), saturate(poiLight.rampedLightMap + 1 - _ShadowStrength)); + } + } + break; + case 2: + { + poiLight.rampedLightMap = saturate(1 - smoothstep(0, .5, 1 - poiLight.lightMap)); + poiLight.finalLighting = directLighting; + } + break; + } + + // DJL stuff + if (_LightingMode == 2) // Wrapped + + { + float wrap = _LightingWrappedWrap; + + float3 directcolor = (_LightColor0.rgb) * saturate(RTWrapFunc(poiLight.nDotL, wrap, _LightingWrappedNormalization)); + float directatten = lerp(1, poiLight.attenuation, _AttenuationMultiplier); + + uint normalsindex = _LightingIndirectColorMode > 0 ? 1: 0; + // if (_LightingIndirectColorMode == 1) + // { + // surfnormals = poiMesh.normals[1]; + // } + // else + // { + // surfnormals = poiMesh.normals[0]; + // } + float3 envlight = ShadeSH9_wrapped(poiMesh.normals[normalsindex], wrap); + envlight *= lerp(1, AOMap, AOStrength); + + poiLight.directLighting = directcolor * detailShadow * directatten; + poiLight.indirectLighting = envlight; + + float3 ShadeSH9Plus_2 = GetSHMaxL1(); + float bw_topDirectLighting_2 = dot(_LightColor0.rgb, grayscale_vector); + float bw_directLighting = dot(poiLight.directLighting, grayscale_vector); + float bw_indirectLighting = dot(poiLight.indirectLighting, grayscale_vector); + float bw_topIndirectLighting = dot(ShadeSH9Plus_2, grayscale_vector); + + //poiLight.lightMap = saturate(dot(poiLight.indirectLighting + poiLight.directLighting, grayscale_vector)); + poiLight.lightMap = smoothstep(0, bw_topIndirectLighting + bw_topDirectLighting_2, bw_indirectLighting + bw_directLighting); + + poiLight.rampedLightMap = 1; + UNITY_BRANCH + if (_LightingRampType == 0) // Ramp Texture + + { + poiLight.rampedLightMap = lerp(1, UNITY_SAMPLE_TEX2D(_ToonRamp, poiLight.lightMap + _ShadowOffset).rgb, shadowStrength.r); + } + else if (_LightingRampType == 1) // Math Gradient + + { + poiLight.rampedLightMap = lerp(_LightingShadowColor * lerp(poiLight.indirectLighting, 1, _LightingIgnoreAmbientColor), float3(1, 1, 1), saturate(1 - smoothstep(_LightingGradientStart - .000001, _LightingGradientEnd, 1 - poiLight.lightMap))); + poiLight.rampedLightMap = lerp(float3(1, 1, 1), poiLight.rampedLightMap, shadowStrength.r); + } + + poiLight.finalLighting = (poiLight.indirectLighting + poiLight.directLighting) * saturate(poiLight.rampedLightMap + 1 - _ShadowStrength); + } + + if (!_LightingUncapped) + { + poiLight.finalLighting = saturate(poiLight.finalLighting); + } + //poiLight.finalLighting *= .8; + #endif + } + + /* + void applyShadowTexture(inout float4 albedo) + { + UNITY_BRANCH + if (_UseShadowTexture && _LightingRampType == 1) + { + albedo.rgb = lerp(albedo.rgb, POI2D_SAMPLER_PAN(_LightingShadowTexture, _MainTex, poiMesh.uv[_LightingShadowTextureUV], _LightingShadowTexturePan) * _LightingShadowColor, (1 - poiLight.rampedLightMap) * shadowStrength); + } + } + */ + + float3 calculateNonImportantLighting(float attenuation, float attenuationDotNL, float3 albedo, float3 lightColor, half dotNL, half correctedDotNL) + { + fixed detailShadow = 1; + UNITY_BRANCH + if (_LightingDetailShadowsEnabled) + { + detailShadow = lerp(1, POI2D_SAMPLER_PAN(_LightingDetailShadows, _MainTex, poiMesh.uv[_LightingDetailShadowsUV], _LightingDetailShadowsPan), _LightingAdditiveDetailStrength).r; + } + UNITY_BRANCH + if (_LightingAdditiveType == 0) + { + return lightColor * attenuationDotNL * detailShadow; // Realistic + + } + else if (_LightingAdditiveType == 1) // Toon + + { + return lerp(lightColor * attenuation, lightColor * _LightingAdditivePassthrough * attenuation, smoothstep(_LightingAdditiveGradientStart, _LightingAdditiveGradientEnd, dotNL)) * detailShadow; + } + else //if(_LightingAdditiveType == 2) // Wrapped + + { + float uv = saturate(RTWrapFunc(-dotNL, _LightingWrappedWrap, _LightingWrappedNormalization)) * detailShadow; + + poiLight.rampedLightMap = 1; + if (_LightingRampType == 1) // Math Gradient + poiLight.rampedLightMap = lerp(_LightingShadowColor, float3(1, 1, 1), saturate(1 - smoothstep(_LightingGradientStart - .000001, _LightingGradientEnd, 1 - uv))); + // TODO: ramp texture or full shade/tint map for atlasing + + return lightColor * poiLight.rampedLightMap * saturate(attenuation * uv); + } + } + + void applyShadeMaps(inout float4 albedo) + { + UNITY_BRANCH + if (_LightingRampType == 2) + { + float3 baseColor = albedo.rgb; + + float MainColorFeatherStep = _BaseColor_Step - _BaseShade_Feather; + float firstColorFeatherStep = _ShadeColor_Step - _1st2nd_Shades_Feather; + + #if defined(PROP_1ST_SHADEMAP) || !defined(OPTIMIZER_ENABLED) + float4 firstShadeMap = POI2D_SAMPLER_PAN(_1st_ShadeMap, _MainTex, poiMesh.uv[_1st_ShadeMapUV], _1st_ShadeMapPan); + #else + float4 firstShadeMap = float4(1, 1, 1, 1); + #endif + firstShadeMap = lerp(firstShadeMap, albedo, _Use_BaseAs1st); + firstShadeMap.rgb *= _1st_ShadeColor.rgb; //* lighColor + + #if defined(PROP_2ND_SHADEMAP) || !defined(OPTIMIZER_ENABLED) + float4 secondShadeMap = POI2D_SAMPLER_PAN(_2nd_ShadeMap, _MainTex, poiMesh.uv[_2nd_ShadeMapUV], _2nd_ShadeMapPan); + #else + float4 secondShadeMap = float4(1, 1, 1, 1); + #endif + secondShadeMap = lerp(secondShadeMap, firstShadeMap, _Use_1stAs2nd); + secondShadeMap.rgb *= _2nd_ShadeColor.rgb; //* LightColor; + + + float shadowMask = 1; + shadowMask *= _Use_1stShadeMapAlpha_As_ShadowMask ?(_1stShadeMapMask_Inverse ?(1.0 - firstShadeMap.a): firstShadeMap.a): 1; + shadowMask *= _Use_2ndShadeMapAlpha_As_ShadowMask ?(_2ndShadeMapMask_Inverse ?(1.0 - secondShadeMap.a): secondShadeMap.a): 1; + + float mainShadowMask = saturate(1 - ((poiLight.lightMap) - MainColorFeatherStep) / (_BaseColor_Step - MainColorFeatherStep) * (shadowMask)); + float firstSecondShadowMask = saturate(1 - ((poiLight.lightMap) - firstColorFeatherStep) / (_ShadeColor_Step - firstColorFeatherStep) * (shadowMask)); + + #if defined(PROP_LIGHTINGSHADOWMASK) || !defined(OPTIMIZER_ENABLED) + float removeShadow = POI2D_SAMPLER_PAN(_LightingShadowMask, _MainTex, poiMesh.uv[_LightingShadowMaskUV], _LightingShadowMaskPan).r; + #else + float removeShadow = 1; + #endif + mainShadowMask *= removeShadow; + firstSecondShadowMask *= removeShadow; + + albedo.rgb = lerp(albedo.rgb, lerp(firstShadeMap.rgb, secondShadeMap.rgb, firstSecondShadowMask), mainShadowMask); + } + } + + float3 calculateFinalLighting(inout float3 albedo, float4 finalColor) + { + float3 finalLighting = 1; + // Additive Lighting + #ifdef FORWARD_ADD_PASS + fixed detailShadow = 1; + UNITY_BRANCH + if (_LightingDetailShadowsEnabled) + { + detailShadow = lerp(1, POI2D_SAMPLER_PAN(_LightingDetailShadows, _MainTex, poiMesh.uv[_LightingDetailShadowsUV], _LightingDetailShadowsPan), _LightingAdditiveDetailStrength).r; + } + UNITY_BRANCH + if (_LightingAdditiveType == 0) // Realistic + + { + finalLighting = poiLight.color * poiLight.attenuation * max(0, poiLight.nDotL) * detailShadow; + } + else if (_LightingAdditiveType == 1) // Toon + + { + #if defined(POINT) || defined(SPOT) + finalLighting = lerp(poiLight.color * max(poiLight.additiveShadow, _LightingAdditivePassthrough), poiLight.color * _LightingAdditivePassthrough, smoothstep(_LightingAdditiveGradientStart, _LightingAdditiveGradientEnd, 1 - (.5 * poiLight.nDotL + .5))) * poiLight.attenuation * detailShadow; + #else + finalLighting = lerp(poiLight.color * max(poiLight.attenuation, _LightingAdditivePassthrough), poiLight.color * _LightingAdditivePassthrough, smoothstep(_LightingAdditiveGradientStart, _LightingAdditiveGradientEnd, 1 - (.5 * poiLight.nDotL + .5))) * detailShadow; + #endif + } + else //if(_LightingAdditiveType == 2) // Wrapped + + { + float uv = saturate(RTWrapFunc(poiLight.nDotL, _LightingWrappedWrap, _LightingWrappedNormalization)) * detailShadow; + + poiLight.rampedLightMap = 1; + UNITY_BRANCH + if (_LightingRampType == 1) // Math Gradient + poiLight.rampedLightMap = lerp(_LightingShadowColor, float3(1, 1, 1), saturate(1 - smoothstep(_LightingGradientStart - .000001, _LightingGradientEnd, 1 - uv))); + // TODO: ramp texture or full shade/tint map for atlasing + //poiLight.rampedLightMap = lerp(1, UNITY_SAMPLE_TEX2D(_ToonRamp, float2(uv + _ShadowOffset, 1)), shadowStrength.r); + + float shadowatten = max(poiLight.additiveShadow, _LightingAdditivePassthrough); + return poiLight.color * poiLight.rampedLightMap * saturate(poiLight.attenuation * uv * shadowatten); + } + #endif + + // Base and Meta Lighting + #if defined(FORWARD_BASE_PASS) || defined(POI_META_PASS) + #ifdef VERTEXLIGHT_ON + poiLight.vFinalLighting = 0; + + for (int index = 0; index < 4; index++) + { + poiLight.vFinalLighting += calculateNonImportantLighting(poiLight.vAttenuation[index], poiLight.vAttenuationDotNL[index], albedo, poiLight.vColor[index], poiLight.vDotNL[index], poiLight.vCorrectedDotNL[index]); + } + #endif + + switch(_LightingMode) + { + case 0: // Toon Lighting + case 2: // or wrapped + + { + // HSL Shading + UNITY_BRANCH + if (_LightingEnableHSL) + { + float3 HSLMod = float3(_LightingShadowHue * 2 - 1, _LightingShadowSaturation * 2 - 1, _LightingShadowLightness * 2 - 1) * (1 - poiLight.rampedLightMap); + albedo = lerp(albedo.rgb, ModifyViaHSL(albedo.rgb, HSLMod), _LightingHSLIntensity); + } + + // Normal Shading + UNITY_BRANCH + if (_LightingMinLightBrightness > 0) + { + poiLight.finalLighting = max(0.001, poiLight.finalLighting); + float finalluminance = calculateluminance(poiLight.finalLighting); + finalLighting = max(poiLight.finalLighting, poiLight.finalLighting / max(0.0001, (finalluminance / _LightingMinLightBrightness))); + } + else + { + finalLighting = poiLight.finalLighting; + } + } + break; + case 1: // realistic + + { + fixed detailShadow = 1; + UNITY_BRANCH + if (_LightingDetailShadowsEnabled) + { + detailShadow = lerp(1, POI2D_SAMPLER_PAN(_LightingDetailShadows, _MainTex, poiMesh.uv[_LightingDetailShadowsUV], _LightingDetailShadowsPan), _LightingDetailStrength).r; + } + + float3 realisticLighting = calculateRealisticLighting(finalColor, detailShadow).rgb; + finalLighting = lerp(realisticLighting, dot(realisticLighting, float3(0.299, 0.587, 0.114)), _LightingMonochromatic); + } + break; + case 3: // Skin + + { + float subsurfaceShadowWeight = 0.0h; + float3 ambientNormalWorld = poiMesh.normals[1];//aTangentToWorld(s, s.blurredNormalTangent); + + // Scattering mask. + float subsurface = 1; + float skinScatteringMask = _SssWeight * saturate(1.0h / _SssMaskCutoff * subsurface); + float skinScattering = saturate(subsurface * _SssScale * 2 + _SssBias); + + // Skin subsurface depth absorption tint. + // cf http://www.crytek.com/download/2014_03_25_CRYENGINE_GDC_Schultz.pdf pg 35 + half3 absorption = exp((1.0h - subsurface) * _SssTransmissionAbsorption.rgb); + + // Albedo scale for absorption assumes ~0.5 luminance for Caucasian skin. + absorption *= saturate(finalColor.rgb * unity_ColorSpaceDouble.rgb); + + // Blurred normals for indirect diffuse and direct scattering. + ambientNormalWorld = normalize(lerp(poiMesh.normals[1], ambientNormalWorld, _SssBumpBlur)); + + float ndlBlur = dot(poiMesh.normals[1], poiLight.direction) * 0.5h + 0.5h; + float lumi = dot(poiLight.color, half3(0.2126h, 0.7152h, 0.0722h)); + float4 sssLookupUv = float4(ndlBlur, skinScattering * lumi, 0.0f, 0.0f); + half3 sss = poiLight.lightMap * poiLight.attenuation * tex2Dlod(_SkinLUT, sssLookupUv).rgb; + finalLighting = min(lerp(indirectLighting * _LightingShadowColor, _LightingShadowColor, _LightingIgnoreAmbientColor) + (sss * directLighting), directLighting); + } + break; + case 4: + { + finalLighting = directLighting; + } + break; + } + #endif + return finalLighting; + } + + + void applyLighting(inout float4 finalColor, float3 finalLighting) + { + #ifdef VERTEXLIGHT_ON + finalColor.rgb *= finalLighting + poiLight.vFinalLighting; + #else + //finalColor.rgb = blendSoftLight(finalColor.rgb, finalLighting); + //finalColor.rgb *= saturate(poiLight.directLighting); + finalColor.rgb *= finalLighting; + #endif + } + #endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiLighting.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiLighting.cginc.meta new file mode 100644 index 00000000..7c935bd7 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiLighting.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: be833b6d97385124b8b1cbbcf36275b6 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiMSDF.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiMSDF.cginc new file mode 100644 index 00000000..6339aab5 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiMSDF.cginc @@ -0,0 +1,243 @@ +#ifndef POI_MSDF + #define POI_MSDF + + sampler2D _TextGlyphs; + float4 _TextGlyphs_ST; + float4 _TextGlyphs_TexelSize; + float _TextFPSUV; + float _TextTimeUV; + float _TextPositionUV; + float _TextPixelRange; + + float _TextFPSEnabled; + float _TextPositionEnabled; + float _TextTimeEnabled; + + + float4 _TextFPSColor; + half _TextFPSEmissionStrength; + fixed4 _TextFPSPadding; + half2 _TextFPSOffset; + half2 _TextFPSScale; + half _TextFPSRotation; + + fixed _TextPositionVertical; + float4 _TextPositionColor; + half _TextPositionEmissionStrength; + fixed4 _TextPositionPadding; + half2 _TextPositionOffset; + half2 _TextPositionScale; + half _TextPositionRotation; + + float4 _TextTimeColor; + half _TextTimeEmissionStrength; + fixed4 _TextTimePadding; + half2 _TextTimeOffset; + half2 _TextTimeScale; + half _TextTimeRotation; + + #define glyphWidth 0.0625 + + #define ASCII_LEFT_PARENTHESIS 40 + #define ASCII_RIGHT_PARENTHESIS 41 + #define ASCII_POSITIVE 43 + #define ASCII_PERIOD 46 + #define ASCII_NEGATIVE 45 + #define ASCII_COMMA 44 + #define ASCII_E 69 + #define ASCII_F 70 + #define ASCII_I 73 + #define ASCII_M 77 + #define ASCII_O 79 + #define ASCII_P 80 + #define ASCII_S 83 + #define ASCII_T 54 + #define ASCII_SEMICOLON 58 + + float3 globalTextEmission; + + half2 getAsciiCoordinate(float index) + { + return half2((index - 1) / 16, 1 - ((floor(index / 16 - glyphWidth)) / 16)); + } + + float median(float r, float g, float b) + { + return max(min(r, g), min(max(r, g), b)); + } + + void ApplyPositionText(inout float4 albedo, float2 uv) + { + float3 cameraPos = clamp(getCameraPosition(), -999, 999); + float3 absCameraPos = abs(cameraPos); + float totalCharacters = 20; + float positionArray[20]; + positionArray[0] = cameraPos.x >= 0 ? ASCII_NEGATIVE: ASCII_POSITIVE; + positionArray[1] = floor((absCameraPos.x * .01) % 10) + 48; + positionArray[2] = floor((absCameraPos.x * .1) % 10) + 48; + positionArray[3] = floor(absCameraPos.x % 10) + 48; + positionArray[4] = ASCII_PERIOD; + positionArray[5] = floor((absCameraPos.x * 10) % 10) + 48; + positionArray[6] = ASCII_COMMA; + positionArray[7] = cameraPos.y >= 0 ? ASCII_NEGATIVE: ASCII_POSITIVE; + positionArray[8] = floor((absCameraPos.y * .01) % 10) + 48; + positionArray[9] = floor((absCameraPos.y * .1) % 10) + 48; + positionArray[10] = floor(absCameraPos.y % 10) + 48; + positionArray[11] = ASCII_PERIOD; + positionArray[12] = floor((absCameraPos.y * 10) % 10) + 48; + positionArray[13] = ASCII_COMMA; + positionArray[14] = cameraPos.z >= 0 ? ASCII_NEGATIVE: ASCII_POSITIVE; + positionArray[15] = floor((absCameraPos.z * .01) % 10) + 48; + positionArray[16] = floor((absCameraPos.z * .1) % 10) + 48; + positionArray[17] = floor(absCameraPos.z % 10) + 48; + positionArray[18] = ASCII_PERIOD; + positionArray[19] = floor((absCameraPos.z * 10) % 10) + 48; + + uv = TransformUV(_TextPositionOffset, _TextPositionRotation, _TextPositionScale, uv); + + if (uv.x > 1 || uv.x < 0 || uv.y > 1 || uv.y < 0) + { + return; + } + + float currentCharacter = floor(uv.x * totalCharacters); + half2 glyphPos = getAsciiCoordinate(positionArray[currentCharacter]); + + float2 startUV = float2(1 / totalCharacters * currentCharacter, 0); + float2 endUV = float2(1 / totalCharacters * (currentCharacter + 1), 1); + + fixed4 textPositionPadding = _TextPositionPadding; + textPositionPadding *= 1 / totalCharacters; + uv = remapClamped(uv, startUV, endUV, float2(glyphPos.x + textPositionPadding.x, glyphPos.y - glyphWidth + textPositionPadding.y), float2(glyphPos.x + glyphWidth - textPositionPadding.z, glyphPos.y - textPositionPadding.w)); + + if (uv.x > glyphPos.x + glyphWidth - textPositionPadding.z - .001 || uv.x < glyphPos.x + textPositionPadding.x + .001 || uv.y > glyphPos.y - textPositionPadding.w - .001 || uv.y < glyphPos.y - glyphWidth + textPositionPadding.y + .001) + { + return; + } + + float3 samp = tex2D(_TextGlyphs, TRANSFORM_TEX(uv, _TextGlyphs)).rgb; + float2 msdfUnit = _TextPixelRange / _TextGlyphs_TexelSize.zw; + float sigDist = median(samp.r, samp.g, samp.b) - 0.5; + sigDist *= max(dot(msdfUnit, 0.5 / fwidth(uv)), 1); + float opacity = clamp(sigDist + 0.5, 0, 1); + albedo.rgb = lerp(albedo.rgb, _TextPositionColor.rgb, opacity * _TextPositionColor.a); + globalTextEmission += _TextPositionColor.rgb * opacity * _TextPositionEmissionStrength; + } + + void ApplyTimeText(inout float4 albedo, float2 uv) + { + float instanceTime = _Time.y; + float hours = instanceTime / 3600; + float minutes = (instanceTime / 60) % 60; + float seconds = instanceTime % 60; + float totalCharacters = 8; + float timeArray[8]; + timeArray[0] = floor((hours * .1) % 10) + 48; + timeArray[1] = floor(hours % 10) + 48; + timeArray[2] = ASCII_SEMICOLON; + timeArray[3] = floor((minutes * .1) % 10) + 48; + timeArray[4] = floor(minutes % 10) + 48; + timeArray[5] = ASCII_SEMICOLON; + timeArray[6] = floor((seconds * .1) % 10) + 48; + timeArray[7] = floor(seconds % 10) + 48; + + uv = TransformUV(_TextTimeOffset, _TextTimeRotation, _TextTimeScale, uv); + + if(uv.x > 1 || uv.x < 0 || uv.y > 1 || uv.y < 0) + { + return; + } + + float currentCharacter = floor(uv.x * totalCharacters); + half2 glyphPos = getAsciiCoordinate(timeArray[currentCharacter]); + // 0.1428571 = 1/7 = 1 / totalCharacters + float startUV = 1 / totalCharacters * currentCharacter; + float endUV = 1 / totalCharacters * (currentCharacter + 1); + fixed4 textTimePadding = _TextTimePadding; + textTimePadding *= 1 / totalCharacters; + uv = remapClamped(uv, float2(startUV, 0), float2(endUV, 1), float2(glyphPos.x + textTimePadding.x, glyphPos.y - glyphWidth + textTimePadding.y), float2(glyphPos.x + glyphWidth - textTimePadding.z, glyphPos.y - textTimePadding.w)); + + if (uv.x > glyphPos.x + glyphWidth - textTimePadding.z - .001 || uv.x < glyphPos.x + textTimePadding.x + .001 || uv.y > glyphPos.y - textTimePadding.w - .001 || uv.y < glyphPos.y - glyphWidth + textTimePadding.y + .001) + { + return; + } + + float3 samp = tex2D(_TextGlyphs, TRANSFORM_TEX(uv, _TextGlyphs)).rgb; + float2 msdfUnit = _TextPixelRange / _TextGlyphs_TexelSize.zw; + float sigDist = median(samp.r, samp.g, samp.b) - 0.5; + sigDist *= max(dot(msdfUnit, 0.5 / fwidth(uv)), 1); + float opacity = clamp(sigDist + 0.5, 0, 1); + albedo.rgb = lerp(albedo.rgb, _TextTimeColor.rgb, opacity * _TextTimeColor.a); + globalTextEmission += _TextTimeColor.rgb * opacity * _TextTimeEmissionStrength; + } + + void ApplyFPSText(inout float4 albedo, float2 uv) + { + float smoothDeltaTime = clamp(unity_DeltaTime.w, 0, 999); + float totalCharacters = 7; + float fpsArray[7]; + fpsArray[0] = ASCII_F; + fpsArray[1] = ASCII_P; + fpsArray[2] = ASCII_S; + fpsArray[3] = ASCII_SEMICOLON; + fpsArray[4] = floor((smoothDeltaTime * .01) % 10) + 48; + fpsArray[5] = floor((smoothDeltaTime * .1) % 10) + 48; + fpsArray[6] = floor(smoothDeltaTime % 10) + 48; + + uv = TransformUV(_TextFPSOffset, _TextFPSRotation, _TextFPSScale, uv); + + if(uv.x > 1 || uv.x < 0 || uv.y > 1 || uv.y < 0) + { + return; + } + + float currentCharacter = floor(uv.x * totalCharacters); + half2 glyphPos = getAsciiCoordinate(fpsArray[currentCharacter]); + // 0.1428571 = 1/7 = 1 / totalCharacters + float startUV = 1 / totalCharacters * currentCharacter; + float endUV = 1 / totalCharacters * (currentCharacter + 1); + + fixed4 textFPSPadding = _TextFPSPadding; + textFPSPadding *= 1 / totalCharacters; + uv = remapClamped(uv, float2(startUV, 0), float2(endUV, 1), float2(glyphPos.x + textFPSPadding.x, glyphPos.y - glyphWidth + textFPSPadding.y), float2(glyphPos.x + glyphWidth - textFPSPadding.z, glyphPos.y - textFPSPadding.w)); + + if (uv.x > glyphPos.x + glyphWidth - textFPSPadding.z - .001 || uv.x < glyphPos.x + textFPSPadding.x + .001 || uv.y > glyphPos.y - textFPSPadding.w - .001 || uv.y < glyphPos.y - glyphWidth + textFPSPadding.y + .001) + { + return; + } + + float3 samp = tex2D(_TextGlyphs, TRANSFORM_TEX(uv, _TextGlyphs)).rgb; + float2 msdfUnit = _TextPixelRange / _TextGlyphs_TexelSize.zw; + float sigDist = median(samp.r, samp.g, samp.b) - 0.5; + sigDist *= max(dot(msdfUnit, 0.5 / fwidth(uv)), 1); + float opacity = clamp(sigDist + 0.5, 0, 1); + albedo.rgb = lerp(albedo.rgb, _TextFPSColor.rgb, opacity * _TextFPSColor.a); + globalTextEmission += _TextFPSColor.rgb * opacity * _TextFPSEmissionStrength; + } + + void ApplyTextOverlayColor(inout float4 albedo, inout float3 textOverlayEmission) + { + globalTextEmission = 0; + half positionalOpacity = 0; + #ifdef EFFECT_BUMP + UNITY_BRANCH + if(_TextFPSEnabled) + { + ApplyFPSText(albedo, poiMesh.uv[_TextFPSUV]); + } + UNITY_BRANCH + if(_TextPositionEnabled) + { + ApplyPositionText(albedo, poiMesh.uv[_TextPositionUV]); + } + UNITY_BRANCH + if(_TextTimeEnabled) + { + ApplyTimeText(albedo, poiMesh.uv[_TextTimeUV]); + } + + textOverlayEmission = globalTextEmission; + #endif + } + +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiMSDF.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiMSDF.cginc.meta new file mode 100644 index 00000000..7f40f268 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiMSDF.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 39347a84f5d044c4d917618f2cad9661 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiMacros.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiMacros.cginc new file mode 100644 index 00000000..60897dea --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiMacros.cginc @@ -0,0 +1,40 @@ +#ifndef POI_MACROS + #define POI_MACROS + + #define POI_TEXTURE_NOSAMPLER(tex) Texture2D tex; float4 tex##_ST; float2 tex##Pan; uint tex##UV + #define POI_TEXTURE(tex) UNITY_DECLARE_TEX2D(tex##); float4 tex##_ST; float2 tex##Pan; uint tex##UV + #define POI_NORMAL_NOSAMPLER(tex) Texture2D tex; float4 tex##_ST; float2 tex##Pan; uint tex##UV; float tex##Scale + + #define POI2D_SAMPLER_PAN(tex, texSampler, uv, pan) (UNITY_SAMPLE_TEX2D_SAMPLER(tex, texSampler, TRANSFORM_TEX(uv, tex) + _Time.x * pan)) + #define POI2D_SAMPLER(tex, texSampler, uv) (UNITY_SAMPLE_TEX2D_SAMPLER(tex, texSampler, TRANSFORM_TEX(uv, tex))) + #define POI2D_PAN(tex, uv, pan) (tex2D(tex, TRANSFORM_TEX(uv, tex) + _Time.x * pan)) + #define POI2D(tex, uv) (tex2D(tex, TRANSFORM_TEX(uv, tex))) + #define POI_SAMPLE_TEX2D(tex, uv) (UNITY_SAMPLE_TEX2D(tex, TRANSFORM_TEX(uv, tex))) + #define POI_SAMPLE_TEX2D_PAN(tex, uv, pan) (UNITY_SAMPLE_TEX2D(tex, TRANSFORM_TEX(uv, tex) + _Time.x * pan)) + + #ifdef POINT + # define POI_LIGHT_ATTENUATION(destName, shadow, input, worldPos) \ + unityShadowCoord3 lightCoord = mul(unity_WorldToLight, unityShadowCoord4(worldPos, 1)).xyz; \ + fixed shadow = UNITY_SHADOW_ATTENUATION(input, worldPos); \ + fixed destName = tex2D(_LightTexture0, dot(lightCoord, lightCoord).rr).r; + #endif + + #ifdef SPOT + #if !defined(UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS) + #define DECLARE_LIGHT_COORD(input, worldPos) unityShadowCoord4 lightCoord = mul(unity_WorldToLight, unityShadowCoord4(worldPos, 1)) + #else + #define DECLARE_LIGHT_COORD(input, worldPos) unityShadowCoord4 lightCoord = input._LightCoord + #endif + # define POI_LIGHT_ATTENUATION(destName, shadow, input, worldPos) \ + DECLARE_LIGHT_COORD(input, worldPos); \ + fixed shadow = UNITY_SHADOW_ATTENUATION(input, worldPos); \ + fixed destName = (lightCoord.z > 0) * UnitySpotCookie(lightCoord) * UnitySpotAttenuate(lightCoord.xyz); + #endif + + #if defined(UNITY_COMPILER_HLSL) + #define PoiInitStruct(type,name) name = (type)0; + #else + #define PoiInitStruct(type,name) + #endif + +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiMacros.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiMacros.cginc.meta new file mode 100644 index 00000000..a9486762 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiMacros.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 6e064571b72c98948b7726439d667d07 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiMainTex.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiMainTex.cginc new file mode 100644 index 00000000..a6709b37 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiMainTex.cginc @@ -0,0 +1,180 @@ +#ifndef POI_MAINTEXTURE +#define POI_MAINTEXTURE + + +#if defined(PROP_CLIPPINGMASK) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_ClippingMask); +#endif +#if defined(PROP_MAINFADETEXTURE) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_MainFadeTexture); +#endif + +float _Inverse_Clipping; +float4 _Color; +float _MainVertexColoring; +float _MainUseVertexColorAlpha; +float _Saturation; +float2 _MainDistanceFade; +half _MainMinAlpha; +float _MainHueShift; +#ifdef COLOR_GRADING_HDR + #if defined(PROP_MAINCOLORADJUSTTEXTURE) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_MainColorAdjustTexture); + #endif + float _MainHueShiftToggle; + float _MainHueShiftSpeed; + float _MainHueShiftReplace; + float _MainSaturationShift; + float _MainBrightness; +#endif + +#ifdef FINALPASS + #if defined(PROP_DETAILTEX) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_DetailTex); + #endif + half _DetailTexIntensity; + half3 _DetailTint; + float _DetailBrightness; +#endif +//globals +float alphaMask; +half3 diffColor; + +#include "CGI_PoiBackFace.cginc" + +float3 wireframeEmission; + +inline FragmentCommonData SpecularSetup(float4 i_tex, inout float4 albedo) +{ + half4 specGloss = 0; + half3 specColor = specGloss.rgb; + half smoothness = specGloss.a; + + half oneMinusReflectivity; + diffColor = EnergyConservationBetweenDiffuseAndSpecular(albedo.rgb, specColor, /*out*/ oneMinusReflectivity); + + FragmentCommonData o = (FragmentCommonData)0; + o.diffColor = diffColor; + o.specColor = specColor; + o.oneMinusReflectivity = oneMinusReflectivity; + o.smoothness = smoothness; + return o; +} + +inline FragmentCommonData FragmentSetup(float4 i_tex, half3 i_viewDirForParallax, float3 i_posWorld, inout float4 albedo) +{ + i_tex = i_tex; + + FragmentCommonData o = SpecularSetup(i_tex, albedo); + o.normalWorld = float3(0, 0, 0); + o.eyeVec = poiCam.viewDir; + o.posWorld = i_posWorld; + + // NOTE: shader relies on pre-multiply alpha-blend (_SrcBlend = One, _DstBlend = OneMinusSrcAlpha) + o.diffColor = PreMultiplyAlpha(o.diffColor, 1, o.oneMinusReflectivity, /*out*/ o.alpha); + return o; +} + +void initTextureData(inout float4 albedo, inout float4 mainTexture, inout float3 backFaceEmission, inout float3 dissolveEmission, in half3 detailMask) +{ + dissolveEmission = 0; + + #if (defined(FORWARD_BASE_PASS) || defined(FORWARD_ADD_PASS)) + #ifdef POI_MIRROR + applyMirrorTexture(mainTexture); + #endif + #endif + #if defined(PROP_CLIPPINGMASK) || !defined(OPTIMIZER_ENABLED) + alphaMask = POI2D_SAMPLER_PAN(_ClippingMask, _MainTex, poiMesh.uv[_ClippingMaskUV], _ClippingMaskPan).r; + #else + alphaMask = 1; + #endif + UNITY_BRANCH + if (_Inverse_Clipping) + { + alphaMask = 1 - alphaMask; + } + mainTexture.a *= alphaMask; + + #ifndef POI_SHADOW + albedo = float4(mainTexture.rgb * max(_Color.rgb, float3(0.000000001, 0.000000001, 0.000000001)) * lerp(1, GammaToLinearSpace(poiMesh.vertexColor.rgb), _MainVertexColoring), mainTexture.a * max(_Color.a, 0.0000001)); + + #if defined(POI_LIGHTING) && defined(FORWARD_BASE_PASS) + applyShadeMaps(albedo); + #endif + + albedo *= lerp(1, poiMesh.vertexColor.a, _MainUseVertexColorAlpha); + #ifdef POI_RGBMASK + albedo.rgb = calculateRGBMask(albedo.rgb); + #endif + + albedo.a = saturate(_AlphaMod + albedo.a); + + wireframeEmission = 0; + #ifdef POI_WIREFRAME + applyWireframe(wireframeEmission, albedo); + #endif + float backFaceDetailIntensity = 1; + + float mixedHueShift = _MainHueShift; + applyBackFaceTexture(backFaceDetailIntensity, mixedHueShift, albedo, backFaceEmission); + + #ifdef POI_FUR + calculateFur(); + #endif + + #ifdef COLOR_GRADING_HDR + #if defined(PROP_MAINCOLORADJUSTTEXTURE) || !defined(OPTIMIZER_ENABLED) + float4 hueShiftAlpha = POI2D_SAMPLER_PAN(_MainColorAdjustTexture, _MainTex, poiMesh.uv[_MainColorAdjustTextureUV], _MainColorAdjustTexturePan); + #else + float4 hueShiftAlpha = 1; + #endif + + if (_MainHueShiftReplace) + { + albedo.rgb = lerp(albedo.rgb, hueShift(albedo.rgb, mixedHueShift + _MainHueShiftSpeed * _Time.x), hueShiftAlpha.r); + } + else + { + albedo.rgb = hueShift(albedo.rgb, frac((mixedHueShift - (1 - hueShiftAlpha.r) + _MainHueShiftSpeed * _Time.x))); + } + + albedo.rgb = lerp(albedo.rgb, dot(albedo.rgb, float3(0.3, 0.59, 0.11)), -_Saturation * hueShiftAlpha.b); + albedo.rgb = saturate(albedo.rgb + _MainBrightness * hueShiftAlpha.g); + #endif + #ifdef FINALPASS + #if defined(PROP_DETAILTEX) || !defined(OPTIMIZER_ENABLED) + half3 detailTexture = POI2D_SAMPLER_PAN(_DetailTex, _MainTex, poiMesh.uv[_DetailTexUV], _DetailTexPan).rgb * _DetailTint.rgb; + #else + half3 detailTexture = 0.21763764082 * _DetailTint.rgb; + #endif + albedo.rgb *= LerpWhiteTo(detailTexture * _DetailBrightness * unity_ColorSpaceDouble.rgb, detailMask.r * _DetailTexIntensity * backFaceDetailIntensity); + #endif + albedo.rgb = saturate(albedo.rgb); + + #ifdef POI_HOLOGRAM + ApplyHoloAlpha(albedo); + #endif + + s = FragmentSetup(float4(poiMesh.uv[0], 1, 1), poiCam.viewDir, poiMesh.worldPos, albedo); + #endif + + #ifdef DISTORT + calculateDissolve(albedo, dissolveEmission); + #endif +} + +void distanceFade(inout float4 albedo) +{ + #if defined(PROP_MAINFADETEXTURE) || !defined(OPTIMIZER_ENABLED) + half fadeMap = POI2D_SAMPLER_PAN(_MainFadeTexture, _MainTex, poiMesh.uv[_MainFadeTextureUV], _MainFadeTexturePan).r; + #else + half fadeMap = 1; + #endif + if (fadeMap) + { + half fadeValue = max(smoothstep(_MainDistanceFade.x, _MainDistanceFade.y, poiCam.distanceToVert), _MainMinAlpha); + albedo.a *= fadeValue; + } +} +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiMainTex.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiMainTex.cginc.meta new file mode 100644 index 00000000..7684dca0 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiMainTex.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 543c4fafdae39c64ebbb99654c35c4b6 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiMatcap.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiMatcap.cginc new file mode 100644 index 00000000..5d7d0f73 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiMatcap.cginc @@ -0,0 +1,160 @@ +#ifndef MATCAP + #define MATCAP + + #if defined(PROP_MATCAP) || !defined(OPTIMIZER_ENABLED) + UNITY_DECLARE_TEX2D_NOSAMPLER(_Matcap); float4 _Matcap_ST; + #endif + #if defined(PROP_MATCAPMASK) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_MatcapMask); + #endif + float _MatcapMaskInvert; + float _MatcapBorder; + float4 _MatcapColor; + float _MatcapIntensity; + float _MatcapReplace; + float _MatcapMultiply; + float _MatcapAdd; + float _MatcapEnable; + float _MatcapLightMask; + float _MatcapEmissionStrength; + float _MatcapNormal; + float _MatcapHueShiftEnabled; + float _MatcapHueShiftSpeed; + float _MatcapHueShift; + + #ifdef COLOR_GRADING_HDR_3D + #if defined(PROP_MATCAP2) || !defined(OPTIMIZER_ENABLED) + UNITY_DECLARE_TEX2D_NOSAMPLER(_Matcap2);float4 _Matcap2_ST; + #endif + #if defined(PROP_MATCAP2MASK) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_Matcap2Mask); + #endif + float _Matcap2MaskInvert; + float _Matcap2Border; + float4 _Matcap2Color; + float _Matcap2Intensity; + float _Matcap2Replace; + float _Matcap2Multiply; + float _Matcap2Add; + float _Matcap2Enable; + float _Matcap2LightMask; + float _Matcap2EmissionStrength; + float _Matcap2Normal; + float _Matcap2HueShiftEnabled; + float _Matcap2HueShiftSpeed; + float _Matcap2HueShift; + #endif + + void blendMatcap(inout float4 finalColor, float add, float multiply, float replace, float4 matcapColor, float matcapMask, inout float3 matcapEmission, float emissionStrength + #ifdef POI_LIGHTING + , float matcapLightMask + #endif + #ifdef POI_BLACKLIGHT + , uint blackLightMaskIndex + #endif + ) + { + #ifdef POI_LIGHTING + if (matcapLightMask) + { + matcapMask *= lerp(1, poiLight.rampedLightMap, matcapLightMask); + } + #endif + #ifdef POI_BLACKLIGHT + if(blackLightMaskIndex != 4) + { + matcapMask *= blackLightMask[blackLightMaskIndex]; + } + #endif + + finalColor.rgb = lerp(finalColor.rgb, matcapColor.rgb, replace * matcapMask * matcapColor.a * .999999); + finalColor.rgb *= lerp(1, matcapColor.rgb, multiply * matcapMask * matcapColor.a); + finalColor.rgb += matcapColor.rgb * add * matcapMask * matcapColor.a; + matcapEmission += matcapColor.rgb * emissionStrength * matcapMask * matcapColor.a; + } + + void applyMatcap(inout float4 finalColor, inout float3 matcapEmission) + { + float4 matcap = 0; + float matcapMask = 0; + float4 matcap2 = 0; + float matcap2Mask = 0; + + // Both matcaps use the same coordinates + half3 worldViewUp = normalize(half3(0, 1, 0) - poiCam.viewDir * dot(poiCam.viewDir, half3(0, 1, 0))); + half3 worldViewRight = normalize(cross(poiCam.viewDir, worldViewUp)); + + // Matcap 1 + half2 matcapUV = half2(dot(worldViewRight, poiMesh.normals[_MatcapNormal]), dot(worldViewUp, poiMesh.normals[_MatcapNormal])) * _MatcapBorder + 0.5; + + #if defined(PROP_MATCAP) || !defined(OPTIMIZER_ENABLED) + matcap = UNITY_SAMPLE_TEX2D_SAMPLER(_Matcap, _MainTex, TRANSFORM_TEX(matcapUV, _Matcap)) * _MatcapColor; + #else + matcap = _MatcapColor; + #endif + + matcap.rgb *= _MatcapIntensity; + #if defined(PROP_MATCAPMASK) || !defined(OPTIMIZER_ENABLED) + matcapMask = POI2D_SAMPLER_PAN(_MatcapMask, _MainTex, poiMesh.uv[_MatcapMaskUV], _MatcapMaskPan); + #else + matcapMask = 1; + #endif + + if (_MatcapMaskInvert) + { + matcapMask = 1 - matcapMask; + } + + UNITY_BRANCH + if(_MatcapHueShiftEnabled) + { + matcap.rgb = hueShift(matcap.rgb, _MatcapHueShift + _Time.x * _MatcapHueShiftSpeed); + } + + blendMatcap(finalColor, _MatcapAdd, _MatcapMultiply, _MatcapReplace, matcap, matcapMask, matcapEmission, _MatcapEmissionStrength + #ifdef POI_LIGHTING + , _MatcapLightMask + #endif + #ifdef POI_BLACKLIGHT + , _BlackLightMaskMatcap + #endif + ); + + + // Matcap 2 + #ifdef COLOR_GRADING_HDR_3D + half2 matcapUV2 = half2(dot(worldViewRight, poiMesh.normals[_Matcap2Normal]), dot(worldViewUp, poiMesh.normals[_Matcap2Normal])) * _Matcap2Border + 0.5; + #if defined(PROP_MATCAP2) || !defined(OPTIMIZER_ENABLED) + matcap2 = UNITY_SAMPLE_TEX2D_SAMPLER(_Matcap2, _MainTex, TRANSFORM_TEX(matcapUV2, _Matcap2)) * _Matcap2Color; + #else + matcap2 = _Matcap2Color; + #endif + matcap2.rgb *= _Matcap2Intensity; + #if defined(PROP_MATCAP2MASK) || !defined(OPTIMIZER_ENABLED) + matcap2Mask = POI2D_SAMPLER_PAN(_Matcap2Mask, _MainTex, poiMesh.uv[_Matcap2MaskUV], _Matcap2MaskPan); + #else + matcap2Mask = 1; + #endif + if (_Matcap2MaskInvert) + { + matcap2Mask = 1 - matcap2Mask; + } + + UNITY_BRANCH + if(_Matcap2HueShiftEnabled) + { + matcap2.rgb = hueShift(matcap2.rgb, _Matcap2HueShift + _Time.x * _Matcap2HueShiftSpeed); + } + + blendMatcap(finalColor, _Matcap2Add, _Matcap2Multiply, _Matcap2Replace, matcap2, matcap2Mask, matcapEmission, _Matcap2EmissionStrength + #ifdef POI_LIGHTING + , _Matcap2LightMask + #endif + #ifdef POI_BLACKLIGHT + , _BlackLightMaskMatcap2 + #endif + ); + #endif + } + +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiMatcap.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiMatcap.cginc.meta new file mode 100644 index 00000000..34077054 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiMatcap.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: ea56da5c525e5e441bf82593f3151cac +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiMath.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiMath.cginc new file mode 100644 index 00000000..e81ff2d5 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiMath.cginc @@ -0,0 +1,100 @@ +/* +MIT License + +Copyright (c) 2019 wraikny + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +VertexTransformShader is dependent on: +*/ + +#ifndef POI_MATH +#define POI_MATH + +#ifndef pi + #define pi float(3.14159265359) +#endif + +float4 quaternion_conjugate(float4 v) +{ + return float4( + v.x, -v.yzw + ); +} + +float4 quaternion_mul(float4 v1, float4 v2) +{ + float4 result1 = (v1.x * v2 + v1 * v2.x); + + float4 result2 = float4( + - dot(v1.yzw, v2.yzw), + cross(v1.yzw, v2.yzw) + ); + + return float4(result1 + result2); +} + +// angle : radians +float4 get_quaternion_from_angle(float3 axis, float angle) +{ + return float4( + cos(angle / 2.0), + normalize(axis) * sin(angle / 2.0) + ); +} + +float4 quaternion_from_vector(float3 inVec) +{ + return float4(0.0, inVec); +} + +float degree_to_radius(float degree) +{ + return( + degree / 180.0 * pi + ); +} + +float3 rotate_with_quaternion(float3 inVec, float3 rotation) +{ + float4 qx = get_quaternion_from_angle(float3(1, 0, 0), degree_to_radius(rotation.x)); + float4 qy = get_quaternion_from_angle(float3(0, 1, 0), degree_to_radius(rotation.y)); + float4 qz = get_quaternion_from_angle(float3(0, 0, 1), degree_to_radius(rotation.z)); + + #define MUL3(A, B, C) quaternion_mul(quaternion_mul((A), (B)), (C)) + float4 quaternion = normalize(MUL3(qx, qy, qz)); + float4 conjugate = quaternion_conjugate(quaternion); + + float4 inVecQ = quaternion_from_vector(inVec); + + float3 rotated = ( + MUL3(quaternion, inVecQ, conjugate) + ).yzw; + + return rotated; +} + +float4 transform(float4 input, float4 pos, float4 rotation, float4 scale) +{ + input.rgb *= (scale.xyz * scale.w); + input = float4(rotate_with_quaternion(input.xyz, rotation.xyz/* * rotation.w*/) + (pos.xyz/* * pos.w*/), input.w); + return input; +} + +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiMath.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiMath.cginc.meta new file mode 100644 index 00000000..e5c6ac94 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiMath.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 382dd34f82ef0a742b5bb3e691f224f6 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiMetal.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiMetal.cginc new file mode 100644 index 00000000..ed6b64ed --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiMetal.cginc @@ -0,0 +1,130 @@ +#ifndef POI_METAL + #define POI_METAL + + samplerCUBE _CubeMap; + float _SampleWorld; + POI_TEXTURE_NOSAMPLER(_MetallicMask); + POI_TEXTURE_NOSAMPLER(_SmoothnessMask); + float _Metallic; + float _InvertSmoothness; + float _Smoothness; + float _EnableMetallic; + float3 _MetalReflectionTint; + POI_TEXTURE_NOSAMPLER(_MetallicTintMap); + + float3 finalreflections; + float metalicMap; + float3 reflection; + float roughness; + float lighty_boy_uwu_var; + + bool shouldMetalHappenBeforeLighting() + { + float4 envSample = UNITY_SAMPLE_TEXCUBE_LOD(unity_SpecCube0, poiCam.reflectionDir, roughness * UNITY_SPECCUBE_LOD_STEPS); + bool probeExists = !(unity_SpecCube0_HDR.a == 0 && envSample.a == 0); + return probeExists && !_SampleWorld; + } + + float3 fresnelRelflection(in float4 albedo) + { + half3 dotNV = 1 - abs(poiLight.nDotV); + half f = dotNV * dotNV * dotNV * dotNV; + //f *= i_sold.fresnel; + return lerp(lerp(DielectricSpec.rgb, albedo.rgb, metalicMap), saturate(1 - roughness + metalicMap), f); + } + + void calculateMetallicness() + { + metalicMap = POI2D_SAMPLER_PAN(_MetallicMask, _MainTex, poiMesh.uv[_MetallicMaskUV], _MetallicMaskPan) * _Metallic; + } + + void ApplyMetallics(inout float4 finalColor, in float4 albedo) + { + #ifdef FORWARD_BASE_PASS + float smoothnessMap = (POI2D_SAMPLER_PAN(_SmoothnessMask, _MainTex, poiMesh.uv[_SmoothnessMaskUV], _SmoothnessMaskPan)); + + #ifdef POI_BLACKLIGHT + if (_BlackLightMaskMetallic != 4) + { + metalicMap *= blackLightMask[_BlackLightMaskMetallic]; + smoothnessMap *= blackLightMask[_BlackLightMaskMetallic]; + } + #endif + + if(_InvertSmoothness == 1) + { + smoothnessMap = 1 - smoothnessMap; + } + smoothnessMap *= _Smoothness; + roughness = 1 - smoothnessMap; + + + Unity_GlossyEnvironmentData envData; + envData.roughness = roughness; + envData.reflUVW = BoxProjection( + poiCam.reflectionDir, poiMesh.worldPos.xyz, + unity_SpecCube0_ProbePosition, + unity_SpecCube0_BoxMin, unity_SpecCube0_BoxMax + ); + float3 probe0 = Unity_GlossyEnvironment( + UNITY_PASS_TEXCUBE(unity_SpecCube0), unity_SpecCube0_HDR, envData + ); + envData.reflUVW = BoxProjection( + poiCam.reflectionDir, poiMesh.worldPos.xyz, + unity_SpecCube1_ProbePosition, + unity_SpecCube1_BoxMin, unity_SpecCube1_BoxMax + ); + + float interpolator = unity_SpecCube0_BoxMin.w; + UNITY_BRANCH + if(interpolator < 0.99999) + { + float3 probe1 = Unity_GlossyEnvironment( + UNITY_PASS_TEXCUBE_SAMPLER(unity_SpecCube1, unity_SpecCube0), + unity_SpecCube0_HDR, envData + ); + reflection = lerp(probe1, probe0, interpolator); + } + else + { + reflection = probe0; + } + + float reflecty_lighty_boy_uwu_var_2 = 1.0 / (roughness * roughness + 1.0); + + half4 tintMap = POI2D_SAMPLER_PAN(_MetallicTintMap, _MainTex, poiMesh.uv[_MetallicTintMapUV], _MetallicTintMapPan); + finalColor.rgb *= (1 - metalicMap * tintMap.a); + finalColor.rgb += reflecty_lighty_boy_uwu_var_2 * reflection.rgb * fresnelRelflection(albedo) * _MetalReflectionTint * tintMap.rgb * tintMap.a; + #endif + } + + void ApplyMetallicsFake(inout float4 finalColor, in float4 albedo) + { + #ifdef FORWARD_BASE_PASS + metalicMap = POI2D_SAMPLER_PAN(_MetallicMask, _MainTex, poiMesh.uv[_MetallicMaskUV], _MetallicMaskPan) * _Metallic; + float smoothnessMap = (POI2D_SAMPLER_PAN(_SmoothnessMask, _MainTex, poiMesh.uv[_SmoothnessMaskUV], _SmoothnessMaskPan)); + + #ifdef POI_BLACKLIGHT + if(_BlackLightMaskMetallic != 4) + { + metalicMap *= blackLightMask[_BlackLightMaskMetallic]; + smoothnessMap *= blackLightMask[_BlackLightMaskMetallic]; + } + #endif + + if(_InvertSmoothness == 1) + { + smoothnessMap = 1 - smoothnessMap; + } + smoothnessMap *= _Smoothness; + roughness = 1 - smoothnessMap; + + reflection = texCUBElod(_CubeMap, float4(poiCam.reflectionDir, roughness * UNITY_SPECCUBE_LOD_STEPS)); + + float reflecty_lighty_boy_uwu_var_2 = 1.0 / (roughness * roughness + 1.0); + half4 tintMap = POI2D_SAMPLER_PAN(_MetallicTintMap, _MainTex, poiMesh.uv[_MetallicTintMapUV], _MetallicTintMapPan); + finalColor.rgb *= (1 - metalicMap * tintMap.a); + finalColor.rgb += reflecty_lighty_boy_uwu_var_2 * reflection.rgb * fresnelRelflection(albedo) * _MetalReflectionTint * tintMap.rgb * tintMap.a; + #endif + } +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiMetal.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiMetal.cginc.meta new file mode 100644 index 00000000..22f650ab --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiMetal.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: ef435eef1f3062442a396ae471e4c023 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiMirror.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiMirror.cginc new file mode 100644 index 00000000..b2edec92 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiMirror.cginc @@ -0,0 +1,81 @@ +#ifndef POI_MIRROR + #define POI_MIRROR + + float _Mirror; + float _EnableMirrorTexture; + #if defined(PROP_MIRRORTEXTURE) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_MirrorTexture); + #endif + + + void applyMirrorRenderVert(inout float4 vertex) + { + UNITY_BRANCH + if (_Mirror != 0) + { + bool inMirror = IsInMirror(); + if(_Mirror == 1 && inMirror) + { + return; + } + if(_Mirror == 1 && !inMirror) + { + vertex = -1; + return; + } + if(_Mirror == 2 && inMirror) + { + vertex = -1; + return; + } + if(_Mirror == 2 && !inMirror) + { + return; + } + } + } + + void applyMirrorRenderFrag() + { + UNITY_BRANCH + if(_Mirror != 0) + { + bool inMirror = IsInMirror(); + if(_Mirror == 1 && inMirror) + { + return; + } + if(_Mirror == 1 && !inMirror) + { + clip(-1); + return; + } + if(_Mirror == 2 && inMirror) + { + clip(-1); + return; + } + if(_Mirror == 2 && !inMirror) + { + return; + } + } + } + + #if(defined(FORWARD_BASE_PASS) || defined(FORWARD_ADD_PASS)) + void applyMirrorTexture(inout float4 mainTexture) + { + UNITY_BRANCH + if(_EnableMirrorTexture) + { + if(IsInMirror()) + { + #if defined(PROP_MIRRORTEXTURE) || !defined(OPTIMIZER_ENABLED) + mainTexture = POI2D_SAMPLER_PAN(_MirrorTexture, _MainTex, poiMesh.uv[_MirrorTextureUV], _MirrorTexturePan); + #endif + } + } + } + #endif + +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiMirror.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiMirror.cginc.meta new file mode 100644 index 00000000..790d2641 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiMirror.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 6a90225807e1d2943a87f41b64493968 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiOutlineFrag.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiOutlineFrag.cginc new file mode 100644 index 00000000..7009c001 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiOutlineFrag.cginc @@ -0,0 +1,107 @@ +float _OutlineRimLightBlend; +float _OutlineLit; +float _OutlineTintMix; +float2 _MainTexPan; +float _MainTextureUV; + +float4 frag(v2f i, uint facing: SV_IsFrontFace): COLOR +{ + float4 finalColor = 1; + UNITY_BRANCH + if (_commentIfZero_EnableOutlinePass) + { + UNITY_SETUP_INSTANCE_ID(i); + + float3 finalEmission = 0; + float4 albedo = 1; + + poiMesh.uv[0] = i.uv0.xy; + poiMesh.uv[1] = i.uv0.zw; + poiMesh.uv[2] = i.uv1.xy; + poiMesh.uv[3] = i.uv1.zw; + + calculateAttenuation(i); + InitializeMeshData(i, facing); + initializeCamera(i); + calculateTangentData(); + + float4 mainTexture = UNITY_SAMPLE_TEX2D(_MainTex, TRANSFORM_TEX(poiMesh.uv[_MainTextureUV], _MainTex) + _Time.x * _MainTexPan); + half3 detailMask = 1; + calculateNormals(detailMask); + + #ifdef POI_DATA + calculateLightingData(i); + #endif + #ifdef POI_LIGHTING + calculateBasePassLightMaps(); + #endif + + float3 uselessData0; + float3 uselessData1; + initTextureData(albedo, mainTexture, uselessData0, uselessData1, detailMask); + + + fixed4 col = mainTexture; + float alphaMultiplier = smoothstep(_OutlineFadeDistance.x, _OutlineFadeDistance.y, distance(getCameraPosition(), i.worldPos)); + float OutlineMask = tex2D(_OutlineMask, TRANSFORM_TEX(poiMesh.uv[_OutlineMaskUV], _OutlineMask) + _Time.x * _OutlineMaskPan).r; + clip(OutlineMask * _LineWidth - 0.001); + + col = col * 0.00000000001 + tex2D(_OutlineTexture, TRANSFORM_TEX(poiMesh.uv[_OutlineTextureUV], _OutlineTexture) + _Time.x * _OutlineTexturePan ); + col.a *= albedo.a; + col.a *= alphaMultiplier; + + #ifdef POI_RANDOM + col.a *= i.angleAlpha; + #endif + + poiCam.screenUV = calcScreenUVs(i.grabPos); + col.a *= _LineColor.a; + + UNITY_BRANCH + if(_Mode == 1) + { + applyDithering(col); + } + + clip(col.a - _Cutoff); + + #ifdef POI_MIRROR + applyMirrorRenderFrag(); + #endif + + UNITY_BRANCH + if(_OutlineMode == 1) + { + #ifdef POI_MIRROR + applyMirrorTexture(mainTexture); + #endif + col.rgb = mainTexture.rgb; + } + else if(_OutlineMode == 2) + { + col.rgb = lerp(col.rgb, poiLight.color, _OutlineRimLightBlend); + } + col.rgb *= _LineColor.rgb; + + if(_OutlineMode == 1) + { + col.rgb = lerp(col.rgb, mainTexture.rgb, _OutlineTintMix); + } + + finalColor = col; + + #ifdef POI_LIGHTING + UNITY_BRANCH + if(_OutlineLit) + { + finalColor.rgb *= calculateFinalLighting(finalColor.rgb, finalColor); + } + #endif + finalColor.rgb += (col.rgb * _OutlineEmission); + } + else + { + clip(-1); + } + return finalColor; +}
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiOutlineFrag.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiOutlineFrag.cginc.meta new file mode 100644 index 00000000..c0544bc2 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiOutlineFrag.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 7db374de8ad35a74e8b931bcef6e3ba8 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiOutlineVert.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiOutlineVert.cginc new file mode 100644 index 00000000..2fdaa7ea --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiOutlineVert.cginc @@ -0,0 +1,115 @@ +#ifndef OutlineVert + #define OutlineVert + + #include "CGI_PoiV2F.cginc" + + float _OutlineMode; + float4 _OutlinePersonaDirection; + float4 _OutlineDropShadowOffset; + float _OutlineUseVertexColors; + float _OutlineFixedSize; + float _commentIfZero_EnableOutlinePass; + float _OutlinesMaxDistance; + + sampler2D _OutlineMask; float4 _OutlineMask_ST; float2 _OutlineMaskPan; float _OutlineMaskUV; + v2f vert(appdata v) + { + + UNITY_SETUP_INSTANCE_ID(v); + v2f o; + UNITY_INITIALIZE_OUTPUT(v2f, o); + UNITY_TRANSFER_INSTANCE_ID(v, o); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + + #ifdef RALIV_PENETRATION + applyRalivDynamicOrifaceSystem(v); + #endif + + o.uv0.xy = v.uv0.xy; + o.uv0.zw = v.uv1.xy; + o.uv1.xy = v.uv2.xy; + o.uv1.zw = v.uv3.xy; + + float2 uvArray[4]; + uvArray[0] = o.uv0.xy; + uvArray[1] = o.uv0.zw; + uvArray[2] = o.uv1.xy; + uvArray[3] = o.uv1.zw; + + #ifdef POI_MIRROR + applyMirrorRenderVert(v.vertex); + #endif + + o.uv0.xy = v.uv0 + _OutlineGlobalPan.xy * _Time.y; + float outlineMask = 1; + + outlineMask = poiMax(tex2Dlod(_OutlineMask, float4(TRANSFORM_TEX(uvArray[_OutlineMaskUV], _OutlineMask) + _Time.x * _OutlineMaskPan, 0, 0)).rgb); + UNITY_BRANCH + if (_OutlineUseVertexColors == 2) + { + outlineMask *= v.color.r; + } + + UNITY_BRANCH + if(_OutlineUseVertexColors != 1) + { + o.normal = UnityObjectToWorldNormal(v.normal); + } + else + { + o.normal = UnityObjectToWorldNormal(v.color); + } + + float4 localPos = v.vertex; + + #ifdef RALIV_PENETRATION + applyRalivDynamicPenetrationSystem(localPos.rgb, o.normal.rgb, v); + #endif + + half offsetMultiplier = 1; + half distanceOffset = 1; + UNITY_BRANCH + if(_OutlineFixedSize) + { + distanceOffset *= min(distance(_WorldSpaceCameraPos, mul(unity_ObjectToWorld, localPos).xyz), _OutlinesMaxDistance); + } + + float3 offset = o.normal * (_LineWidth * _commentIfZero_EnableOutlinePass / 100) * outlineMask * distanceOffset; + + UNITY_BRANCH + if(_OutlineMode == 2) + { + float3 lightDirection = poiLight.direction = normalize(_WorldSpaceLightPos0 + unity_SHAr.xyz + unity_SHAg.xyz + unity_SHAb.xyz); + offsetMultiplier = saturate(dot(lightDirection, o.normal)); + offset *= offsetMultiplier; + offset *= distanceOffset; + } + else if(_OutlineMode == 3) + { + half3 viewNormal = mul((float3x3)UNITY_MATRIX_V, o.normal); + offsetMultiplier = saturate(dot(viewNormal.xy, normalize(_OutlinePersonaDirection.xy))); + + offset *= offsetMultiplier; + offset *= distanceOffset; + } + else if(_OutlineMode == 4) + { + offset = mul((float3x3)transpose(UNITY_MATRIX_V), _OutlineDropShadowOffset); + offset *= distanceOffset; + } + + o.worldPos = mul(unity_ObjectToWorld, localPos) + float4(offset, 0); + o.modelPos = mul(unity_ObjectToWorld, float4(0, 0, 0, 1)); + o.pos = UnityWorldToClipPos(o.worldPos); + o.grabPos = ComputeGrabScreenPos(o.pos); + o.angleAlpha = 1; + #ifdef POI_RANDOM + o.angleAlpha = ApplyAngleBasedRendering(o.modelPos, o.worldPos); + #endif + + UNITY_TRANSFER_SHADOW(o, o.uv0); + UNITY_TRANSFER_FOG(o, o.pos); + return o; + } + +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiOutlineVert.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiOutlineVert.cginc.meta new file mode 100644 index 00000000..9de9fef6 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiOutlineVert.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 3ffaf29d05947a14fa6c536ce06612d5 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiPanosphere.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiPanosphere.cginc new file mode 100644 index 00000000..7986c320 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiPanosphere.cginc @@ -0,0 +1,80 @@ +#ifndef PANOSPHERE + #define PANOSPHERE + + float _PanoEmission; + float _PanoBlend; + float4 _PanosphereColor; + float3 _PanospherePan; + float _PanoToggle; + float _PanoCubeMapToggle; + float _PanoInfiniteStereoToggle; + + float3 panoColor; + float panoMask; + + #if defined(PROP_PANOSPHERETEXTURE) || !defined(OPTIMIZER_ENABLED) + sampler2D _PanosphereTexture; float4 _PanosphereTexture_ST; + #endif + #if defined(PROP_PANOCUBEMAP) || !defined(OPTIMIZER_ENABLED) + samplerCUBE _PanoCubeMap; half4 _PanoCubeMap_HDR; + #endif + #if defined(PROP_PANOMASK) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_PanoMask); + #endif + + float2 projectIt(float3 coords) + { + float3 normalizedCoords = normalize(coords); + float latitude = acos(normalizedCoords.y); + float longitude = atan2(normalizedCoords.z, normalizedCoords.x); + float2 sphereCoords = float2(longitude + _Time.y * _PanospherePan.x, latitude + _Time.y * _PanospherePan.y) * float2(1.0 / UNITY_PI, 1.0 / UNITY_PI); + sphereCoords = float2(1.0, 1.0) - sphereCoords; + return(sphereCoords + float4(0, 1 - unity_StereoEyeIndex, 1, 1.0).xy) * float4(0, 1 - unity_StereoEyeIndex, 1, 1.0).zw; + } + + void applyPanosphereColor(inout float4 albedo, inout float3 panosphereEmission) + { + #if defined(PROP_PANOMASK) || !defined(OPTIMIZER_ENABLED) + panoMask = POI2D_SAMPLER_PAN(_PanoMask, _MainTex, poiMesh.uv[_PanoMaskUV], _PanoMaskPan); + #else + panoMask = 1; + #endif + #ifdef POI_BLACKLIGHT + if (_BlackLightMaskPanosphere != 4) + { + panoMask *= blackLightMask[_BlackLightMaskPanosphere]; + } + #endif + + UNITY_BRANCH + if(_PanoCubeMapToggle) + { + #if defined(PROP_PANOCUBEMAP) || !defined(OPTIMIZER_ENABLED) + float3 cubeUV = mul(poiRotationMatrixFromAngles(_PanospherePan.xyz * _Time.y), float4(-poiCam.viewDir, 1)); + half4 cubemap = texCUBE(_PanoCubeMap, cubeUV); + panoColor = DecodeHDR(cubemap, _PanoCubeMap_HDR) * _PanosphereColor.rgb; + #else + panoColor = _PanosphereColor.rgb; + #endif + } + else + { + float2 uv = projectIt(normalize(lerp(getCameraPosition().xyz, poiCam.worldPos.xyz, _PanoInfiniteStereoToggle) - poiMesh.worldPos.xyz) * - 1); + + float2 ddxuv = ddx(uv); + float2 ddyuv = ddy(uv); + if(any(fwidth(uv) > .5)) + { + ddxuv = ddyuv = 0.001; + } + #if defined(PROP_PANOSPHERETEXTURE) || !defined(OPTIMIZER_ENABLED) + panoColor = tex2D(_PanosphereTexture, TRANSFORM_TEX(uv, _PanosphereTexture), ddxuv, ddyuv).rgb * _PanosphereColor.rgb; + #else + panoColor = _PanosphereColor.rgb; + #endif + } + panosphereEmission = panoColor * _PanoBlend * panoMask * _PanoEmission; + albedo.rgb = lerp(albedo.rgb, panoColor, _PanoBlend * .9999999 * panoMask); + } + +#endif diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiPanosphere.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiPanosphere.cginc.meta new file mode 100644 index 00000000..aaebe97b --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiPanosphere.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 1181a36e0475df340b0a8d40fc95f05b +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiParallax.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiParallax.cginc new file mode 100644 index 00000000..db2f9da4 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiParallax.cginc @@ -0,0 +1,166 @@ +#ifndef POI_PARALLAX + #define POI_PARALLAX + + #if defined(PROP_PARALLAXHEIGHTMAP) || !defined(OPTIMIZER_ENABLED) + UNITY_DECLARE_TEX2D_NOSAMPLER(_ParallaxHeightMap); float4 _ParallaxHeightMap_ST; + #endif + #if defined(PROP_PARALLAXHEIGHTMAPMASK) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_ParallaxHeightMapMask); + #endif + float2 _ParallaxHeightMapPan; + float _ParallaxStrength; + float _ParallaxHeightMapEnabled; + float _ParallaxUV; + + //Internal + float _ParallaxInternalMapEnabled; + #if defined(PROP_PARALLAXINTERNALMAP) || !defined(OPTIMIZER_ENABLED) + UNITY_DECLARE_TEX2D_NOSAMPLER(_ParallaxInternalMap); float4 _ParallaxInternalMap_ST; + #endif + #if defined(PROP_PARALLAXINTERNALMAPMASK) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_ParallaxInternalMapMask); + #endif + float _ParallaxInternalIterations; + float _ParallaxInternalMinDepth; + float _ParallaxInternalMaxDepth; + float _ParallaxInternalMinFade; + float _ParallaxInternalMaxFade; + float4 _ParallaxInternalMinColor; + float4 _ParallaxInternalMaxColor; + float4 _ParallaxInternalPanSpeed; + float4 _ParallaxInternalPanDepthSpeed; + float _ParallaxInternalHeightmapMode; + float _ParallaxInternalHeightFromAlpha; + + float GetParallaxHeight(float2 uv) + { + #if defined(PROP_PARALLAXHEIGHTMAP) || !defined(OPTIMIZER_ENABLED) + return clamp(UNITY_SAMPLE_TEX2D_SAMPLER(_ParallaxHeightMap, _MainTex, TRANSFORM_TEX(uv, _ParallaxHeightMap) + _Time.x * _ParallaxHeightMapPan).g, 0, .99999); + #else + return 0; + #endif + } + /* + float2 ParallaxOffset(float2 viewDir) + { + float height = GetParallaxHeight(); + height -= 0.5; + height *= _ParallaxStrength; + return viewDir * height; + } + */ + float2 ParallaxRaymarching(float2 viewDir) + { + float2 uvOffset = 0; + float stepSize = 0.1; + float2 uvDelta = viewDir * (stepSize * _ParallaxStrength); + + float stepHeight = 1; + float surfaceHeight = GetParallaxHeight(poiMesh.uv[_ParallaxUV]); + + + float2 prevUVOffset = uvOffset; + float prevStepHeight = stepHeight; + float prevSurfaceHeight = surfaceHeight; + + for (int i = 1; i < 10 && stepHeight > surfaceHeight; i ++) + { + prevUVOffset = uvOffset; + prevStepHeight = stepHeight; + prevSurfaceHeight = surfaceHeight; + + uvOffset -= uvDelta; + stepHeight -= stepSize; + surfaceHeight = GetParallaxHeight(poiMesh.uv[_ParallaxUV] + uvOffset); + } + + float prevDifference = prevStepHeight - prevSurfaceHeight; + float difference = surfaceHeight - stepHeight; + float t = prevDifference / (prevDifference + difference); + uvOffset = prevUVOffset -uvDelta * t; + #if defined(PROP_PARALLAXHEIGHTMAPMASK) || !defined(OPTIMIZER_ENABLED) + return uvOffset *= POI2D_SAMPLER_PAN(_ParallaxHeightMapMask, _MainTex, poiMesh.uv[_ParallaxHeightMapMaskUV], _ParallaxHeightMapMaskPan).r; + #else + return uvOffset; + #endif + } + + void calculateandApplyParallax() + { + UNITY_BRANCH + if (_ParallaxHeightMapEnabled) + { + float2 parallaxOffset = ParallaxRaymarching(poiCam.tangentViewDir.xy); + UNITY_BRANCH + if(_ParallaxUV == 0) + { + poiMesh.uv[0] += parallaxOffset; + } + UNITY_BRANCH + if(_ParallaxUV == 1) + { + poiMesh.uv[1] += parallaxOffset; + } + UNITY_BRANCH + if(_ParallaxUV == 2) + { + poiMesh.uv[2] += parallaxOffset; + } + UNITY_BRANCH + if(_ParallaxUV == 3) + { + poiMesh.uv[3] += parallaxOffset; + } + } + } + + void calculateAndApplyInternalParallax(inout float4 finalColor) + { + #if defined(_PARALLAXMAP) + UNITY_BRANCH + if(_ParallaxInternalMapEnabled) + { + float3 parallax = 0; + + for (int j = _ParallaxInternalIterations; j > 0; j --) + { + float ratio = (float)j / _ParallaxInternalIterations; + float2 parallaxOffset = _Time.y * (_ParallaxInternalPanSpeed + (1 - ratio) * _ParallaxInternalPanDepthSpeed); + float fade = lerp(_ParallaxInternalMinFade, _ParallaxInternalMaxFade, ratio); + #if defined(PROP_PARALLAXINTERNALMAP) || !defined(OPTIMIZER_ENABLED) + float4 parallaxColor = UNITY_SAMPLE_TEX2D_SAMPLER(_ParallaxInternalMap, _MainTex, TRANSFORM_TEX(poiMesh.uv[0], _ParallaxInternalMap) + lerp(_ParallaxInternalMinDepth, _ParallaxInternalMaxDepth, ratio) * - poiCam.tangentViewDir.xy + parallaxOffset); + #else + float4 parallaxColor = 0; + #endif + float3 parallaxTint = lerp(_ParallaxInternalMinColor, _ParallaxInternalMaxColor, ratio); + float parallaxHeight; + if(_ParallaxInternalHeightFromAlpha) + { + parallaxTint *= parallaxColor.rgb; + parallaxHeight = parallaxColor.a; + } + else + { + parallaxHeight = parallaxColor.r; + } + //float parallaxColor *= lerp(_ParallaxInternalMinColor, _ParallaxInternalMaxColor, 1 - ratio); + UNITY_BRANCH + if (_ParallaxInternalHeightmapMode == 1) + { + parallax = lerp(parallax, parallaxTint * fade, parallaxHeight >= 1 - ratio); + } + else + { + parallax += parallaxTint * parallaxHeight * fade; + } + } + //parallax /= _ParallaxInternalIterations; + #if defined(PROP_PARALLAXINTERNALMAPMASK) || !defined(OPTIMIZER_ENABLED) + finalColor.rgb += parallax * POI2D_SAMPLER_PAN(_ParallaxInternalMapMask, _MainTex, poiMesh.uv[_ParallaxInternalMapMaskUV], _ParallaxInternalMapMaskPan).r; + #else + finalColor.rgb += parallax; + #endif + } + #endif + } +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiParallax.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiParallax.cginc.meta new file mode 100644 index 00000000..dfdd10cc --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiParallax.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 3737980e09be8994e929a4a8aca17fd4 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiPass.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiPass.cginc new file mode 100644 index 00000000..23db0159 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiPass.cginc @@ -0,0 +1,248 @@ +/* +USED--------------------------------------------- +"_PARALLAXMAP" +"_REQUIRE_UV2" +"_SUNDISK_NONE" +"_DETAIL_MULX2" +"_GLOSSYREFLECTIONS_OFF" +"_METALLICGLOSSMAP" +"_COLORADDSUBDIFF_ON" +"_SPECGLOSSMAP" +"_TERRAIN_NORMAL_MAP" +"_SUNDISK_SIMPLE" +"_EMISSION" +"_COLORCOLOR_ON" +"_COLOROVERLAY_ON" +"_ALPHAMODULATE_ON" +"_SUNDISK_HIGH_QUALITY" +"_MAPPING_6_FRAMES_LAYOUT" +"_NORMALMAP +"EFFECT_BUMP" +"BLOOM" +"BLOOM_LOW" +"GRAIN" +"DEPTH_OF_FIELD" +"USER_LUT" +"CHROMATIC_ABERRATION_LOW" +"BLOOM_LENS_DIRT" +"_FADING_ON" +"CHROMATIC_ABERRATION" +"DISTORT" +"GEOM_TYPE_BRANCH" +"_SPECULARHIGHLIGHTS_OFF" +"_SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A" +"EFFECT_HUE_VARIATION" +"GEOM_TYPE_LEAF" +"GEOM_TYPE_MESH" +"FINALPASS" +"AUTO_EXPOSURE +"VIGNETTE" +"VIGNETTE_MASKED" +"COLOR_GRADING_HDR" +"COLOR_GRADING_HDR_3D" +"DITHERING" +"VIGNETTE_CLASSIC" +"GEOM_TYPE_BRANCH_DETAIL" +"GEOM_TYPE_FROND" +"DEPTH_OF_FIELD_COC_VIEW" +"COLOR_GRADING_LOG_VIEW" + +UNUSED------------------------------------------- +"_ALPHABLEND_ON" +"_ALPHAPREMULTIPLY_ON" +"_ALPHATEST_ON" +"PIXELSNAP_ON" +"TONEMAPPING_FILMIC" +"TONEMAPPING_NEUTRAL" +"TONEMAPPING_ACES" +"TONEMAPPING_CUSTOM" +"COLOR_GRADING" + +DO NOT USE ----------------------------------------- +"BILLBOARD_FACE_CAMERA_POS" +SOFTPARTICLES_ON +*/ + + +#ifndef POI_PASS +#define POI_PASS + +#include "UnityCG.cginc" +#include "Lighting.cginc" +#include "UnityPBSLighting.cginc" +#include "AutoLight.cginc" +#include "UnityShaderVariables.cginc" + +#ifdef POI_META_PASS + #include "UnityMetaPass.cginc" +#endif + +//#pragma warning (default : 3206) // implicit truncation + +#include "CGI_PoiMacros.cginc" +#include "CGI_PoiDefines.cginc" +#include "CGI_FunctionsArtistic.cginc" + +#include "CGI_Poicludes.cginc" +#include "CGI_PoiHelpers.cginc" +#include "CGI_PoiBlending.cginc" + +#ifdef _SUNDISK_NONE + #include "CGI_PoiRandom.cginc" +#endif + +#ifdef _REQUIRE_UV2 + #include "CGI_PoiMirror.cginc" +#endif + +#include "CGI_PoiPenetration.cginc" +#include "CGI_PoiVertexManipulations.cginc" + +#include "CGI_PoiSpawnInVert.cginc" + +#include "CGI_PoiV2F.cginc" + +#ifdef BLOOM_LOW + #include "CGI_PoiBulge.cginc" +#endif + +#include "CGI_PoiVert.cginc" + +#ifdef TESSELATION + #include "CGI_PoiTessellation.cginc" +#endif + +#include "CGI_PoiDithering.cginc" + +#ifdef _PARALLAXMAP + #include "CGI_PoiParallax.cginc" +#endif + +#ifdef USER_LUT + #include "CGI_PoiUVDistortion.cginc" +#endif + +#ifdef VIGNETTE + #include "CGI_PoiRGBMask.cginc" +#endif + +#ifdef COLOR_GRADING_LOG_VIEW + #include "CGI_PoiAudioLink.cginc" +#endif + +#include "CGI_PoiData.cginc" + +#ifdef _SPECULARHIGHLIGHTS_OFF + #include "CGI_PoiBlackLight.cginc" +#endif + +#include "CGI_PoiSpawnInFrag.cginc" + +#ifdef WIREFRAME + #include "CGI_PoiWireframe.cginc" +#endif + +#ifdef DISTORT + #include "CGI_PoiDissolve.cginc" +#endif + +#ifdef DEPTH_OF_FIELD + #include "CGI_PoiHologram.cginc" +#endif + +#ifdef BLOOM_LENS_DIRT + #include "CGI_PoiIridescence.cginc" +#endif + + +#ifdef FUR + //#include "CGI_PoiFur.cginc" + //#include "CGI_PoiGeomFur.cginc" +#endif + +#ifdef VIGNETTE_MASKED + #include "CGI_PoiLighting.cginc" +#endif + +#include "CGI_PoiMainTex.cginc" + +#ifdef GEOM_TYPE_BRANCH + #include "CGI_PoiDecal.cginc" +#endif + +#ifdef CHROMATIC_ABERRATION + #include "CGI_PoiVoronoi.cginc" +#endif + +#ifdef _DETAIL_MULX2 + #include "CGI_PoiPanosphere.cginc" +#endif + +#ifdef EFFECT_BUMP + #include "CGI_PoiMSDF.cginc" +#endif + +#ifdef GRAIN + #include "CGI_PoiDepthColor.cginc" +#endif + + +#ifdef _SUNDISK_HIGH_QUALITY + #include "CGI_PoiFlipbook.cginc" +#endif + +#ifdef _GLOSSYREFLECTIONS_OFF + #include "CGI_PoiRimLighting.cginc" +#endif + +#ifdef _MAPPING_6_FRAMES_LAYOUT + #include "CGI_PoiEnvironmentalRimLighting.cginc" +#endif + +#ifdef VIGNETTE_CLASSIC + #include "CGI_PoiBRDF.cginc" +#endif + +#ifdef _METALLICGLOSSMAP + #include "CGI_PoiMetal.cginc" +#endif + +#ifdef _COLORADDSUBDIFF_ON + #include "CGI_PoiMatcap.cginc" +#endif + +#ifdef _SPECGLOSSMAP + #include "CGI_PoiSpecular.cginc" +#endif + +#ifdef BLOOM + #include "CGI_PoiVideo.cginc" +#endif + +#ifdef _TERRAIN_NORMAL_MAP + #include "CGI_PoiSubsurfaceScattering.cginc" +#endif + +#include "CGI_PoiBlending.cginc" +#include "CGI_PoiGrab.cginc" + +#ifdef _SUNDISK_SIMPLE + #include "CGI_PoiGlitter.cginc" +#endif + +#ifdef _EMISSION + #include "CGI_PoiEmission.cginc" +#endif + +#ifdef _COLORCOLOR_ON + #include "CGI_PoiClearCoat.cginc" +#endif + +#include "CGI_PoiAlphaToCoverage.cginc" + +#ifdef _COLOROVERLAY_ON + #include "CGI_PoiDebug.cginc" +#endif +#include "CGI_PoiFrag.cginc" + +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiPass.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiPass.cginc.meta new file mode 100644 index 00000000..e829717d --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiPass.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: fa1dff6cd1c9b9f4891de1a7c880523d +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiPassOutline.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiPassOutline.cginc new file mode 100644 index 00000000..7f2ffa9c --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiPassOutline.cginc @@ -0,0 +1,30 @@ +#ifndef POI_PASS_OUTLINE + #define POI_PASS_OUTLINE + + #include "UnityCG.cginc" + #include "Lighting.cginc" + #include "UnityPBSLighting.cginc" + #include "AutoLight.cginc" + #include "CGI_PoiMacros.cginc" + #include "CGI_PoiDefines.cginc" + #include "CGI_FunctionsArtistic.cginc" + #include "CGI_Poicludes.cginc" + #include "CGI_PoiHelpers.cginc" + #include "CGI_PoiBlending.cginc" + #include "CGI_PoiPenetration.cginc" + #include "CGI_PoiOutlineVert.cginc" + #ifdef TESSELATION + #include "CGI_PoiTessellation.cginc" + #endif + #ifdef _REQUIRE_UV2 + #include "CGI_PoiMirror.cginc" + #endif + #ifdef DISTORT + #include "CGI_PoiDissolve.cginc" + #endif + #include "CGI_PoiLighting.cginc" + #include "CGI_PoiMainTex.cginc" + #include "CGI_PoiData.cginc" + #include "CGI_PoiDithering.cginc" + #include "CGI_PoiOutlineFrag.cginc" +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiPassOutline.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiPassOutline.cginc.meta new file mode 100644 index 00000000..b3bd3e2a --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiPassOutline.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 0fe97530a72193b4faea2c5e3dd997a6 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiPassShadow.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiPassShadow.cginc new file mode 100644 index 00000000..9e5c4fea --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiPassShadow.cginc @@ -0,0 +1,46 @@ +#ifndef POI_PASS_SHADOW + #define POI_PASS_SHADOW + + #pragma multi_compile_shadowcaster + #include "UnityCG.cginc" + #include "UnityShaderVariables.cginc" + #include "UnityCG.cginc" + #include "Lighting.cginc" + #include "UnityPBSLighting.cginc" + #include "AutoLight.cginc" + + #include "CGI_PoiMacros.cginc" + #include "CGI_PoiDefines.cginc" + + #include "CGI_Poicludes.cginc" + #include "CGI_PoiShadowIncludes.cginc" + #include "CGI_PoiHelpers.cginc" + #include "CGI_PoiMirror.cginc" + #include "CGI_PoiSpawnInFrag.cginc" + + #include "CGI_PoiV2F.cginc" + #include "CGI_PoiData.cginc" + + #ifdef WIREFRAME + #include "CGI_PoiWireframe.cginc" + #endif + + #ifdef _SUNDISK_HIGH_QUALITY + #include "CGI_PoiFlipbook.cginc" + #endif + + #ifdef _SUNDISK_NONE + #include "CGI_PoiRandom.cginc" + #endif + #include "CGI_PoiDithering.cginc" + #ifdef DISTORT + #include "CGI_PoiDissolve.cginc" + #endif + #include "CGI_PoiPenetration.cginc" + #include "CGI_PoiVertexManipulations.cginc" + + #include "CGI_PoiSpawnInVert.cginc" + #include "CGI_PoiShadowVert.cginc" + #include "CGI_PoiShadowFrag.cginc" + +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiPassShadow.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiPassShadow.cginc.meta new file mode 100644 index 00000000..239a4e9a --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiPassShadow.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 94f93700d2c2f3946ba884cd83881c8e +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiPenetration.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiPenetration.cginc new file mode 100644 index 00000000..c6c702db --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiPenetration.cginc @@ -0,0 +1,226 @@ +#ifndef RALIV_PENETRATION + #define RALIV_PENETRATION + + float _PenetratorEnabled; + float _squeeze; + float _SqueezeDist; + float _BulgeOffset; + float _BulgePower; + float _Length; + float _EntranceStiffness; + float _Curvature; + float _ReCurvature; + float _WriggleSpeed; + float _Wriggle; + float _OrificeChannel; + float __dirty; + + float _OrifaceEnabled; + sampler2D _OrificeData; + float _EntryOpenDuration; + float _Shape1Depth; + float _Shape1Duration; + float _Shape2Depth; + float _Shape2Duration; + float _Shape3Depth; + float _Shape3Duration; + float _BlendshapePower; + float _BlendshapeBadScaleFix; + + void GetBestLights(inout int orificeType, inout float3 orificePositionTracker, inout float3 orificeNormalTracker, inout float3 penetratorPositionTracker, inout float3 penetratorNormalTracker, inout float penetratorLength ) { + float holeID = 1; + float ringID = 2; + float normalID = 5; + float penetratorID = 9; + float3 tempPositionTracker; + float3 tempNormalTracker; + float key; + float4x4 invMV = UNITY_MATRIX_I_V; + #ifdef USING_STEREO_MATRICES + invMV = unity_StereoMatrixInvV[0]; + #endif + invMV = mul(unity_WorldToObject, invMV); + for (int i=0;i<8;i++) { + if (unity_LightPosition[i].w == 1) { + if (length(unity_LightColor[i].rgb) == 0) { + if (unity_LightAtten[i].x == -1) { + // BACKWARD COPMPATABILITY FOR POINT LIGHTS + key = fmod(sqrt(unity_LightAtten[i].w),0.1)*100; + if (abs(key-ringID)<0.5 || abs(key-holeID)<0.5) { + tempPositionTracker = mul(invMV, unity_LightPosition[i]).xyz; + if (dot(orificePositionTracker,orificePositionTracker)>dot(tempPositionTracker,tempPositionTracker)) { + orificePositionTracker = tempPositionTracker; + orificeType=0; + if (abs(key-ringID)<0.5) orificeType=1; + } + } + if (abs(key-normalID)<0.5) { + tempNormalTracker = orificeNormalTracker; + orificeNormalTracker = mul(invMV, unity_LightPosition[i]).xyz; + if (dot(orificeNormalTracker,orificeNormalTracker)>dot(tempNormalTracker,tempNormalTracker)) { + orificeNormalTracker = tempNormalTracker; + } + } + } else { + // SPOTLIGHTS + key = 2 * degrees(acos(unity_LightAtten[i].x)); + if (key>90.5) { + tempPositionTracker = mul(invMV, unity_LightPosition[i]).xyz; + if (dot(orificePositionTracker,orificePositionTracker)>dot(tempPositionTracker,tempPositionTracker)) { + tempNormalTracker = tempPositionTracker + mul((float3x3)invMV, unity_SpotDirection[i]).xyz * -0.01; + orificePositionTracker = tempPositionTracker; + orificeNormalTracker = tempNormalTracker; + orificeType=0; + if (key>91.5) orificeType=1; + } + } else { + tempPositionTracker = mul(invMV, unity_LightPosition[i]).xyz; + if (dot(penetratorPositionTracker,penetratorPositionTracker)>dot(tempPositionTracker,tempPositionTracker)) { + tempNormalTracker = tempPositionTracker + mul((float3x3)invMV, unity_SpotDirection[i]).xyz * -0.01; + penetratorPositionTracker = tempPositionTracker; + penetratorNormalTracker = tempNormalTracker; + penetratorLength=sqrt(unity_LightAtten[i].w); + } + } + } + } + } + } + } + + void PenetratorReshape(inout float3 vertex, inout float3 normal) { + float orificeType = 0; + float3 orificePositionTracker = float3(0,0,100); + float3 orificeNormalTracker = float3(0,0,99); + float3 penetratorPositionTracker = float3(0,0,1); + float3 penetratorNormalTracker = float3(0,0,1); + float pl=0; + GetBestLights(orificeType, orificePositionTracker, orificeNormalTracker, penetratorPositionTracker, penetratorNormalTracker, pl); + float3 orificeNormal = normalize( lerp( ( orificePositionTracker - orificeNormalTracker ) , orificePositionTracker , max( _EntranceStiffness , 0.01 )) ); + orificePositionTracker.xy = smoothstep(-_Length*0.5, _Length*0.2, orificePositionTracker.z) * orificePositionTracker.xy; + orificeNormal.xy = smoothstep(-_Length*0.5, -_Length*0.2, orificePositionTracker.z) * orificeNormal.xy; + orificePositionTracker.z=(abs(orificePositionTracker.z+(_Length*0.2))-(_Length*0.2))*(1+step(orificePositionTracker.z,0)*2); + orificePositionTracker.z=smoothstep(-_Length*0.2, _Length*0.2, orificePositionTracker.z) * orificePositionTracker.z; + float distanceToOrifice = length( orificePositionTracker ); + float3 PhysicsNormal = normalize(penetratorNormalTracker.xyz); + float enterFactor = smoothstep( _Length , _Length+0.05 , distanceToOrifice); + float wriggleTimeY = _Time.y * _WriggleSpeed; + float curvatureMod = ( _Length * ( ( cos( wriggleTimeY ) * _Wriggle ) + _Curvature ) ); + float wriggleTimeX = _Time.y * ( _WriggleSpeed * 0.79 ); + float3 finalOrificeNormal = normalize( lerp( orificeNormal , ( PhysicsNormal + ( ( float3(0,1,0) * ( curvatureMod + ( _Length * ( _ReCurvature + ( ( sin( wriggleTimeY ) * 0.3 ) * _Wriggle ) ) * 2.0 ) ) ) + ( float3(0.5,0,0) * ( cos( wriggleTimeX ) * _Wriggle ) ) ) ) , enterFactor) ); + float3 finalOrificePosition = lerp( orificePositionTracker , ( ( normalize(penetratorNormalTracker) * _Length ) + ( float3(0,0.2,0) * ( sin( ( wriggleTimeY + UNITY_PI ) ) * _Wriggle ) * _Length ) + ( float3(0.2,0,0) * _Length * ( sin( ( wriggleTimeX + UNITY_PI ) ) * _Wriggle ) ) ) , enterFactor); + float finalOrificeDistance = length( finalOrificePosition ); + float3 bezierBasePosition = float3(0,0,0); + float bezierDistanceThird = ( finalOrificeDistance / 3.0 ); + float3 curvatureOffset = lerp( float3( 0,0,0 ) , ( float3(0,1,0) * ( curvatureMod * -0.2 ) ) , saturate( ( distanceToOrifice / _Length ) )); + float3 bezierBaseNormal = ( ( bezierDistanceThird * float3(0,0,1) ) + curvatureOffset ); + float3 bezierOrificeNormal = ( finalOrificePosition - ( bezierDistanceThird * finalOrificeNormal ) ); + float3 bezierOrificePosition = finalOrificePosition; + float vertexBaseTipPosition = ( vertex.z / finalOrificeDistance ); + + float3 sphereifyDistance = ( vertex.xyz - float3(0,0, distanceToOrifice) ); + float3 sphereifyNormal = normalize( sphereifyDistance ); + float sphereifyFactor = smoothstep( 0.01 , -0.01 , distanceToOrifice - vertex.z); + sphereifyFactor *= 1-orificeType; + vertex.xyz = lerp( vertex.xyz , ( float3(0,0, distanceToOrifice) + ( min( length( sphereifyDistance ) , _squeeze ) * sphereifyNormal ) ) , sphereifyFactor); + + float squeezeFactor = smoothstep( 0.0 , _SqueezeDist , vertex.z - distanceToOrifice); + squeezeFactor = max( squeezeFactor , smoothstep( 0.0 , _SqueezeDist , distanceToOrifice - vertex.z)); + squeezeFactor = 1- (1-squeezeFactor) * smoothstep(0,0.01,vertex.z); + vertex.xy = lerp( ( normalize(vertex.xy) * min( length( vertex.xy ) , _squeeze ) ) , vertex.xy , squeezeFactor); + float bulgeFactor = 1-smoothstep( 0.0 , _BulgeOffset , abs( ( finalOrificeDistance - vertex.z ) )); + bulgeFactor *= smoothstep(0, _BulgeOffset/2, abs( ( finalOrificeDistance - vertex.z ) )); + bulgeFactor *= smoothstep(0 , _Length*0.1 , _Length - finalOrificeDistance); + bulgeFactor *= (1-orificeType) * step(0, finalOrificeDistance - vertex.z); + float bulgeFactorBaseClip = smoothstep( 0.0 , 0.05 , vertex.z); + vertex.xy *= lerp( 1.0 , ( 1.0 + _BulgePower ) , ( bulgeFactor * 100.0 * bulgeFactorBaseClip )); + + float t = saturate(vertexBaseTipPosition); + float oneMinusT = 1 - t; + float3 bezierPoint = oneMinusT * oneMinusT * oneMinusT * bezierBasePosition + 3 * oneMinusT * oneMinusT * t * bezierBaseNormal + 3 * oneMinusT * t * t * bezierOrificeNormal + t * t * t * bezierOrificePosition; + float3 straightLine = (float3(0.0 , 0.0 , vertex.z)); + float baseFactor = smoothstep( 0.05 , -0.05 , vertex.z); + bezierPoint = lerp( bezierPoint , straightLine , baseFactor); + bezierPoint = lerp( ( ( finalOrificeNormal * ( vertex.z - finalOrificeDistance ) ) + finalOrificePosition ) , bezierPoint , step( vertexBaseTipPosition , 1.0 )); + float3 bezierDerivitive = 3 * oneMinusT * oneMinusT * (bezierBaseNormal - bezierBasePosition) + 6 * oneMinusT * t * (bezierOrificeNormal - bezierBaseNormal) + 3 * t * t * (bezierOrificePosition - bezierOrificeNormal); + bezierDerivitive = normalize( lerp( bezierDerivitive , float3(0,0,1) , baseFactor) ); + float bezierUpness = dot( bezierDerivitive , float3( 0,1,0 ) ); + float3 bezierUp = lerp( float3(0,1,0) , float3( 0,0,-1 ) , saturate( bezierUpness )); + float bezierDownness = dot( bezierDerivitive , float3( 0,-1,0 ) ); + bezierUp = normalize( lerp( bezierUp , float3( 0,0,1 ) , saturate( bezierDownness )) ); + float3 bezierSpaceX = normalize( cross( bezierDerivitive , bezierUp ) ); + float3 bezierSpaceY = normalize( cross( bezierDerivitive , -bezierSpaceX ) ); + float3 bezierSpaceVertexOffset = ( ( vertex.y * bezierSpaceY ) + ( vertex.x * -bezierSpaceX ) ); + float3 bezierSpaceVertexOffsetNormal = normalize( bezierSpaceVertexOffset ); + float distanceFromTip = ( finalOrificeDistance - vertex.z ); + + float3 bezierSpaceVertexOffsetFinal = lerp( bezierSpaceVertexOffset , bezierSpaceVertexOffset , enterFactor); + float3 bezierConstructedVertex = ( bezierPoint + bezierSpaceVertexOffsetFinal ); + + normal = normalize( ( ( -bezierSpaceX * normal.x ) + ( bezierSpaceY * normal.y ) + ( bezierDerivitive * normal.z ) ) ); + vertex.xyz = bezierConstructedVertex; + } + + #ifdef POI_SHADOW + void applyRalivDynamicPenetrationSystem(inout float3 VertexPosition, inout float3 VertexNormal, inout VertexInputShadow v) + #else + void applyRalivDynamicPenetrationSystem(inout float3 VertexPosition, inout float3 VertexNormal, inout appdata v) + #endif + { + UNITY_BRANCH + if(_PenetratorEnabled) PenetratorReshape(VertexPosition, VertexNormal); + } + + float3 getBlendOffset(float blendSampleIndex, float activationDepth, float activationSmooth, int vertexID, float penetrationDepth, float3 normal, float3 tangent, float3 binormal) { + float blendTextureSize = 1024; + float2 blendSampleUV = (float2(( ( fmod( (float)vertexID , blendTextureSize ) + 0.5 ) / (blendTextureSize) ) , ( ( ( floor( ( vertexID / (blendTextureSize) ) ) + 0.5 ) / (blendTextureSize) ) + blendSampleIndex/8 ))); + float3 sampledBlend = tex2Dlod( _OrificeData, float4( blendSampleUV, 0, 0.0) ).rgb; + float blendActivation = smoothstep( ( activationDepth ) , ( activationDepth + activationSmooth ) , penetrationDepth); + blendActivation = -cos(blendActivation*3.1416)*0.5+0.5; + float3 blendOffset = ( ( sampledBlend - float3(1,1,1)) * (blendActivation) * _BlendshapePower * _BlendshapeBadScaleFix ); + return ( ( blendOffset.x * normal ) + ( blendOffset.y * tangent ) + ( blendOffset.z * binormal ) ); + } + + void OrificeReshape(inout float4 vertex, inout float3 normal, float3 tangent, int vertexId) { + float penetratorLength = 0.1; + float penetratorDistance; + float3 orificePositionTracker = float3(0,0,-100); + float3 orificeNormalTracker = float3(0,0,-99); + float3 penetratorPositionTracker = float3(0,0,100); + float3 penetratorNormalTracker = float3(0,0,100); + float orificeType=0; + + GetBestLights(orificeType, orificePositionTracker, orificeNormalTracker, penetratorPositionTracker, penetratorNormalTracker, penetratorLength); + penetratorDistance = distance(orificePositionTracker, penetratorPositionTracker ); + float penetrationDepth = max(0, penetratorLength - penetratorDistance); + + float3 binormal = normalize(cross( normal , tangent )); + + vertex.xyz += getBlendOffset(0, 0, _EntryOpenDuration, vertexId, penetrationDepth, normal, tangent, binormal); + vertex.xyz += getBlendOffset(2, _Shape1Depth, _Shape1Duration, vertexId, penetrationDepth, normal, tangent, binormal); + vertex.xyz += getBlendOffset(4, _Shape2Depth, _Shape2Duration, vertexId, penetrationDepth, normal, tangent, binormal); + vertex.xyz += getBlendOffset(6, _Shape3Depth, _Shape3Duration, vertexId, penetrationDepth, normal, tangent, binormal); + vertex.w = 1; + vertex.x+=0.1; + + normal += getBlendOffset(1, 0, _EntryOpenDuration, vertexId, penetrationDepth, normal, tangent, binormal); + normal += getBlendOffset(3, _Shape1Depth, _Shape1Duration, vertexId, penetrationDepth, normal, tangent, binormal); + normal += getBlendOffset(5, _Shape2Depth, _Shape2Duration, vertexId, penetrationDepth, normal, tangent, binormal); + normal += getBlendOffset(7, _Shape3Depth, _Shape3Duration, vertexId, penetrationDepth, normal, tangent, binormal); + normal = normalize(normal); + } + + #ifdef POI_SHADOW + void applyRalivDynamicOrifaceSystem(inout VertexInputShadow v) + #else + void applyRalivDynamicOrifaceSystem(inout appdata v) + #endif + { + UNITY_BRANCH + if (_OrifaceEnabled) + { + OrificeReshape(v.vertex, v.normal, v.tangent.xyz, v.vertexId); + } + } + +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiPenetration.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiPenetration.cginc.meta new file mode 100644 index 00000000..d25df48e --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiPenetration.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 4c432851cf0d1dd44b21e0713429604a +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiRGBMask.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiRGBMask.cginc new file mode 100644 index 00000000..137e1d03 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiRGBMask.cginc @@ -0,0 +1,168 @@ +#ifndef POI_RGBMASK + #define POI_RGBMASK + #if defined(PROP_RGBMASK) || !defined(OPTIMIZER_ENABLED) + UNITY_DECLARE_TEX2D_NOSAMPLER(_RGBMask); float4 _RGBMask_ST; + #endif + #if defined(PROP_REDTEXURE) || !defined(OPTIMIZER_ENABLED) + UNITY_DECLARE_TEX2D_NOSAMPLER(_RedTexure); float4 _RedTexure_ST; + #endif + #if defined(PROP_GREENTEXTURE) || !defined(OPTIMIZER_ENABLED) + UNITY_DECLARE_TEX2D_NOSAMPLER(_GreenTexture); float4 _GreenTexture_ST; + #endif + #if defined(PROP_BLUETEXTURE) || !defined(OPTIMIZER_ENABLED) + UNITY_DECLARE_TEX2D_NOSAMPLER(_BlueTexture); float4 _BlueTexture_ST; + #endif + + #ifdef GEOM_TYPE_MESH + #if defined(PROP_RGBNORMALR) || !defined(OPTIMIZER_ENABLED) + #endif + #if defined(PROP_RGBNORMALG) || !defined(OPTIMIZER_ENABLED) + #endif + #if defined(PROP_RGBNORMALB) || !defined(OPTIMIZER_ENABLED) + #endif + POI_NORMAL_NOSAMPLER(_RgbNormalR); + POI_NORMAL_NOSAMPLER(_RgbNormalG); + POI_NORMAL_NOSAMPLER(_RgbNormalB); + float _RgbNormalsEnabled; + #endif + + float4 _RedColor; + float4 _GreenColor; + float4 _BlueColor; + + float2 _RGBMaskPanning; + float2 _RGBRedPanning; + float2 _RGBGreenPanning; + float2 _RGBBluePanning; + + float _RGBBlendMultiplicative; + + float _RGBMaskUV; + float _RGBRed_UV; + float _RGBGreen_UV; + float _RGBBlue_UV; + float _RGBUseVertexColors; + float _RGBNormalBlend; + + static float3 rgbMask; + + void calculateRGBNormals(inout half3 mainTangentSpaceNormal) + { + #ifdef GEOM_TYPE_MESH + #ifndef RGB_MASK_TEXTURE + #define RGB_MASK_TEXTURE + UNITY_BRANCH + if (_RGBUseVertexColors) + { + rgbMask = poiMesh.vertexColor.rgb; + } + else + { + #if defined(PROP_RGBMASK) || !defined(OPTIMIZER_ENABLED) + rgbMask = POI2D_SAMPLER_PAN(_RGBMask, _MainTex, poiMesh.uv[_RGBMaskUV], _RGBMaskPanning).rgb; + #else + rgbMask = 1; + #endif + } + #endif + + UNITY_BRANCH + if(_RgbNormalsEnabled) + { + UNITY_BRANCH + if(_RGBNormalBlend == 0) + { + UNITY_BRANCH + if(_RgbNormalRScale > 0) + { + half3 normalToBlendWith = UnpackScaleNormal(POI2D_SAMPLER_PAN(_RgbNormalR, _MainTex, poiMesh.uv[_RgbNormalRUV], _RgbNormalRPan), _RgbNormalRScale); + mainTangentSpaceNormal = lerp(mainTangentSpaceNormal, normalToBlendWith, rgbMask.r); + } + + UNITY_BRANCH + if(_RgbNormalGScale > 0) + { + half3 normalToBlendWith = UnpackScaleNormal(POI2D_SAMPLER_PAN(_RgbNormalG, _MainTex, poiMesh.uv[_RgbNormalGUV], _RgbNormalGPan), _RgbNormalGScale); + mainTangentSpaceNormal = lerp(mainTangentSpaceNormal, normalToBlendWith, rgbMask.g); + } + + UNITY_BRANCH + if(_RgbNormalBScale > 0) + { + half3 normalToBlendWith = UnpackScaleNormal(POI2D_SAMPLER_PAN(_RgbNormalB, _MainTex, poiMesh.uv[_RgbNormalBUV], _RgbNormalBPan), _RgbNormalBScale); + mainTangentSpaceNormal = lerp(mainTangentSpaceNormal, normalToBlendWith, rgbMask.b); + } + + return; + } + else + { + half3 newNormal = UnpackScaleNormal(POI2D_SAMPLER_PAN(_RgbNormalR, _MainTex, poiMesh.uv[_RgbNormalRUV], _RgbNormalRPan), _RgbNormalRScale * rgbMask.r); + half3 normalToBlendWith = UnpackScaleNormal(POI2D_SAMPLER_PAN(_RgbNormalG, _MainTex, poiMesh.uv[_RgbNormalGUV], _RgbNormalGPan), _RgbNormalGScale * rgbMask.g); + newNormal = BlendNormals(newNormal, normalToBlendWith); + normalToBlendWith = UnpackScaleNormal(POI2D_SAMPLER_PAN(_RgbNormalB, _MainTex, poiMesh.uv[_RgbNormalBUV], _RgbNormalBPan), _RgbNormalBScale * rgbMask.b); + newNormal = BlendNormals(newNormal, normalToBlendWith); + mainTangentSpaceNormal = BlendNormals(newNormal, mainTangentSpaceNormal); + return; + } + } + #endif + } + + float3 calculateRGBMask(float3 baseColor) + { + //If RGB normals are in use this data will already exist + #ifndef RGB_MASK_TEXTURE + #define RGB_MASK_TEXTURE + + UNITY_BRANCH + if (_RGBUseVertexColors) + { + rgbMask = poiMesh.vertexColor.rgb; + } + else + { + #if defined(PROP_RGBMASK) || !defined(OPTIMIZER_ENABLED) + rgbMask = POI2D_SAMPLER_PAN(_RGBMask, _MainTex, poiMesh.uv[_RGBMaskUV], _RGBMaskPanning).rgb; + #else + rgbMask = 1; + #endif + } + #endif + #if defined(PROP_REDTEXURE) || !defined(OPTIMIZER_ENABLED) + float4 red = POI2D_SAMPLER_PAN(_RedTexure, _MainTex, poiMesh.uv[_RGBRed_UV], _RGBRedPanning); + #else + float4 red = 1; + #endif + #if defined(PROP_GREENTEXTURE) || !defined(OPTIMIZER_ENABLED) + float4 green = POI2D_SAMPLER_PAN(_GreenTexture, _MainTex, poiMesh.uv[_RGBGreen_UV], _RGBGreenPanning); + #else + float4 green = 1; + #endif + #if defined(PROP_BLUETEXTURE) || !defined(OPTIMIZER_ENABLED) + float4 blue = POI2D_SAMPLER_PAN(_BlueTexture, _MainTex, poiMesh.uv[_RGBBlue_UV], _RGBBluePanning); + #else + float4 blue = 1; + #endif + + UNITY_BRANCH + if(_RGBBlendMultiplicative) + { + float3 RGBColor = 1; + RGBColor = lerp(RGBColor, red.rgb * _RedColor.rgb, rgbMask.r * red.a * _RedColor.a); + RGBColor = lerp(RGBColor, green.rgb * _GreenColor.rgb, rgbMask.g * green.a * _GreenColor.a); + RGBColor = lerp(RGBColor, blue.rgb * _BlueColor.rgb, rgbMask.b * blue.a * _BlueColor.a); + + baseColor *= RGBColor; + } + else + { + baseColor = lerp(baseColor, red.rgb * _RedColor.rgb, rgbMask.r * red.a * _RedColor.a); + baseColor = lerp(baseColor, green.rgb * _GreenColor.rgb, rgbMask.g * green.a * _GreenColor.a); + baseColor = lerp(baseColor, blue.rgb * _BlueColor.rgb, rgbMask.b * blue.a * _BlueColor.a); + } + + return baseColor; + } + +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiRGBMask.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiRGBMask.cginc.meta new file mode 100644 index 00000000..9c49f636 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiRGBMask.cginc.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5a887d6c0dfbbba48a780737a0351a55 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiRandom.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiRandom.cginc new file mode 100644 index 00000000..7870c853 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiRandom.cginc @@ -0,0 +1,41 @@ +#ifndef POI_RANDOM + #define POI_RANDOM + + float _EnableRandom; + float m_start_Angle; + float _AngleType; + float3 _AngleForwardDirection; + float _CameraAngleMin; + float _CameraAngleMax; + float _ModelAngleMin; + float _ModelAngleMax; + float _AngleMinAlpha; + float _AngleCompareTo; + + float ApplyAngleBasedRendering(float3 modelPos, float3 worldPos) + { + half cameraAngleMin = _CameraAngleMin / 180; + half cameraAngleMax = _CameraAngleMax / 180; + half modelAngleMin = _ModelAngleMin / 180; + half modelAngleMax = _ModelAngleMax / 180; + float3 pos = _AngleCompareTo == 0 ? modelPos : worldPos; + half3 cameraToModelDirection = normalize(pos - getCameraPosition()); + half3 modelForwardDirection = normalize(mul(unity_ObjectToWorld, normalize(_AngleForwardDirection))); + half cameraLookAtModel = remapClamped(.5 * dot(cameraToModelDirection, getCameraForward()) + .5, cameraAngleMax, cameraAngleMin, 0, 1); + half modelLookAtCamera = remapClamped(.5 * dot(-cameraToModelDirection, modelForwardDirection) + .5, modelAngleMax, modelAngleMin, 0, 1); + if (_AngleType == 0) + { + return max(cameraLookAtModel, _AngleMinAlpha); + } + else if(_AngleType == 1) + { + return max(modelLookAtCamera, _AngleMinAlpha); + } + else if(_AngleType == 2) + { + return max(cameraLookAtModel * modelLookAtCamera, _AngleMinAlpha); + } + return 1; + } + +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiRandom.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiRandom.cginc.meta new file mode 100644 index 00000000..945d4847 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiRandom.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: b6260b56386a2b743a6bc537a3307cc7 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiRimLighting.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiRimLighting.cginc new file mode 100644 index 00000000..d7ae319d --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiRimLighting.cginc @@ -0,0 +1,76 @@ +#ifndef POI_RIM + #define POI_RIM + + float4 _RimLightColor; + float _RimLightingInvert; + float _RimWidth; + float _RimStrength; + float _RimSharpness; + float _RimLightColorBias; + float _ShadowMix; + float _ShadowMixThreshold; + float _ShadowMixWidthMod; + float _EnableRimLighting; + float _RimBrighten; + float _RimLightNormal; + float _RimHueShiftEnabled; + float _RimHueShiftSpeed; + float _RimHueShift; + + #if defined(PROP_RIMTEX) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_RimTex); + #endif + #if defined(PROP_RIMMASK) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_RimMask); + #endif + #if defined(PROP_RIMWIDTHNOISETEXTURE) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_RimWidthNoiseTexture); + #endif + + float _RimWidthNoiseStrength; + + float4 rimColor = float4(0, 0, 0, 0); + float rim = 0; + + void applyRimLighting(inout float4 albedo, inout float3 rimLightEmission) + { + #if defined(PROP_RIMWIDTHNOISETEXTURE) || !defined(OPTIMIZER_ENABLED) + float rimNoise = POI2D_SAMPLER_PAN(_RimWidthNoiseTexture, _MainTex, poiMesh.uv[_RimWidthNoiseTextureUV], _RimWidthNoiseTexturePan); + #else + float rimNoise = 0; + #endif + rimNoise = (rimNoise - .5) * _RimWidthNoiseStrength; + + float viewDotNormal = abs(dot(poiCam.viewDir, poiMesh.normals[_RimLightNormal])); + UNITY_BRANCH + if (_RimLightingInvert) + { + viewDotNormal = 1 - abs(dot(poiCam.viewDir, poiMesh.normals[_RimLightNormal])); + } + float rimWidth = _RimWidth; + rimWidth -= rimNoise; + #if defined(PROP_RIMMASK) || !defined(OPTIMIZER_ENABLED) + float rimMask = POI2D_SAMPLER_PAN(_RimMask, _MainTex, poiMesh.uv[_RimMaskUV], _RimMaskPan); + #else + float rimMask = 1; + #endif + + #if defined(PROP_RIMTEX) || !defined(OPTIMIZER_ENABLED) + rimColor = POI2D_SAMPLER_PAN(_RimTex, _MainTex, poiMesh.uv[_RimTexUV], _RimTexPan) * _RimLightColor; + #else + rimColor = _RimLightColor; + #endif + + UNITY_BRANCH + if(_RimHueShiftEnabled) + { + rimColor.rgb = hueShift(rimColor.rgb, _RimHueShift + _Time.x * _RimHueShiftSpeed); + } + + rimWidth = max(lerp(rimWidth, rimWidth * lerp(0, 1, poiLight.lightMap - _ShadowMixThreshold) * _ShadowMixWidthMod, _ShadowMix), 0); + rim = 1 - smoothstep(min(_RimSharpness, rimWidth), rimWidth, viewDotNormal); + rim *= _RimLightColor.a * rimColor.a * rimMask; + rimLightEmission = rim * lerp(albedo, rimColor, _RimLightColorBias) * _RimStrength; + albedo.rgb = lerp(albedo.rgb, lerp(albedo.rgb, rimColor, _RimLightColorBias) + lerp(albedo.rgb, rimColor, _RimLightColorBias) * _RimBrighten, rim); + } +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiRimLighting.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiRimLighting.cginc.meta new file mode 100644 index 00000000..8fcf8327 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiRimLighting.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: a87bd1004a9f61d4da9d5159ced4fcc8 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiShadowFrag.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiShadowFrag.cginc new file mode 100644 index 00000000..282501c2 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiShadowFrag.cginc @@ -0,0 +1,123 @@ +#ifndef SHADOW_FRAG + #define SHADOW_FRAG + + float2 _MainDistanceFade; + float _ForceOpaque; + float _MainShadowClipMod; + float2 _ClippingMaskPan; + float _ClippingMaskUV; + sampler3D _DitherMaskLOD; + float2 _MainTexPan; + float _MainTextureUV; + float _Inverse_Clipping; + + half4 fragShadowCaster( + #if !defined(V2F_SHADOW_CASTER_NOPOS_IS_EMPTY) || defined(UNITY_STANDARD_USE_SHADOW_UVS) + V2FShadow i, uint facing: SV_IsFrontFace + #endif + ): SV_Target + { + poiMesh.uv[0] = i.uv; + poiMesh.uv[1] = i.uv1; + poiMesh.uv[2] = i.uv2; + poiMesh.uv[3] = i.uv3; + + // Basically every texture relies on the maintex sampler to function and that's why this is here. + float4 mainTexture = UNITY_SAMPLE_TEX2D(_MainTex, TRANSFORM_TEX(poiMesh.uv[_MainTextureUV], _MainTex) + _Time.x * _MainTexPan); + + + //Possible Bug with clip + float clipValue = clamp(_Cutoff + _MainShadowClipMod, - .001, 1.001); + + poiMesh.vertexColor = saturate(i.vertexColor); + poiMesh.worldPos = i.worldPos; + poiMesh.localPos = i.localPos; + + #ifdef POI_MIRROR + applyMirrorRenderFrag(); + #endif + + #if defined(UNITY_STANDARD_USE_SHADOW_UVS) + + half4 alpha = mainTexture; + + #if defined(PROP_MIRRORTEXTURE) || !defined(OPTIMIZER_ENABLED) + UNITY_BRANCH + if (_EnableMirrorTexture) + { + if(IsInMirror()) + { + alpha.a = UNITY_SAMPLE_TEX2D_SAMPLER(_MirrorTexture, _MainTex, TRANSFORM_TEX(i.uv, _MirrorTexture)).a; + } + } + #endif + + alpha.a *= smoothstep(_MainDistanceFade.x, _MainDistanceFade.y, distance(i.modelPos, _WorldSpaceCameraPos)); + half alphaMask = POI2D_PAN(_ClippingMask, poiMesh.uv[_ClippingMaskUV], _ClippingMaskPan); + UNITY_BRANCH + if(_Inverse_Clipping) + { + alphaMask = 1 - alphaMask; + } + alpha.a *= alphaMask; + alpha.a *= _Color.a + .0001; + alpha.a += _AlphaMod; + alpha.a = saturate(alpha.a); + + UNITY_BRANCH + if(_Mode == 0) + { + alpha.a = 1; + } + + UNITY_BRANCH + if(_Mode == 1) + { + applyShadowDithering(alpha.a, calcScreenUVs(i.grabPos).xy); + } + + #ifdef POI_DISSOLVE + float3 fakeEmission = 1; + calculateDissolve(alpha, fakeEmission); + #endif + UNITY_BRANCH + if(_Mode == 1) + { + clip(alpha.a - 0.001); + } + + /* + return poiMesh.vertexColor.g; + + #ifdef POI_RANDOM + alpha.a *= i.angleAlpha; + #endif + + UNITY_BRANCH + if(_Mode >= 1) + { + applySpawnInShadow(uv[0], i.localPos); + + #if defined(POI_FLIPBOOK) + alpha.a *= applyFlipbookAlphaToShadow(uv[_FlipbookTexArrayUV]); + #endif + } + */ + UNITY_BRANCH + if (_Mode == 1) + { + clip(alpha.a - clipValue); + } + + UNITY_BRANCH + if(_Mode > 1) + { + float dither = tex3D(_DitherMaskLOD, float3(i.pos.xy * .25, alpha.a * 0.9375)).a; + clip(dither - 0.01); + } + + #endif + SHADOW_CASTER_FRAGMENT(i) + } + + #endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiShadowFrag.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiShadowFrag.cginc.meta new file mode 100644 index 00000000..217949d3 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiShadowFrag.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 6f029ac6c95637345af7f9fa039b835d +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiShadowIncludes.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiShadowIncludes.cginc new file mode 100644 index 00000000..583b0e75 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiShadowIncludes.cginc @@ -0,0 +1,44 @@ +#ifndef SHADOW_INCLUDES + #define SHADOW_INCLUDES + + #define UNITY_STANDARD_USE_SHADOW_UVS 1 + + float4 _Color; + sampler2D _ClippingMask; float4 _ClippingMask_ST; + + struct VertexInputShadow + { + float4 vertex: POSITION; + float3 normal: NORMAL; + float4 tangent: TANGENT; + float4 color: COLOR; + float2 uv0: TEXCOORD0; + float2 uv1: TEXCOORD1; + float2 uv2: TEXCOORD2; + float2 uv3: TEXCOORD3; + uint vertexId : SV_VertexID; + UNITY_VERTEX_INPUT_INSTANCE_ID + }; + + #if !defined(V2F_SHADOW_CASTER_NOPOS_IS_EMPTY) || defined(UNITY_STANDARD_USE_SHADOW_UVS) + struct V2FShadow + { + V2F_SHADOW_CASTER_NOPOS + float4 pos: SV_POSITION; + float2 uv: TEXCOORD1; + float2 uv1: TEXCOORD2; + float2 uv2: TEXCOORD3; + float2 uv3: TEXCOORD4; + float3 modelPos: TEXCOORD5; + float4 worldPos: TEXCOORD6; + float4 localPos: TEXCOORD7; + float3 angleAlpha: TEXCOORD8; + float4 grabPos: TEXCOORD9; + fixed3 barycentricCoordinates: TEXCOORD10; + float4 vertexColor: TEXCOORD11; + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO + }; + #endif + +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiShadowIncludes.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiShadowIncludes.cginc.meta new file mode 100644 index 00000000..e32bb288 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiShadowIncludes.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 388afdf5d08890a498d21c55347c0a2c +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiShadowVert.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiShadowVert.cginc new file mode 100644 index 00000000..b7d8328c --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiShadowVert.cginc @@ -0,0 +1,86 @@ +float _EnableTouchGlow; +float _EnableBulge; +float _VertexManipulationHeightUV; + +V2FShadow vertShadowCaster(VertexInputShadow v) +{ + V2FShadow o; + UNITY_SETUP_INSTANCE_ID(v); + #ifdef RALIV_PENETRATION + applyRalivDynamicOrifaceSystem(v); + #endif + #ifdef AUTO_EXPOSURE + applyLocalVertexTransformation(v.normal, v.vertex); + #endif + + UNITY_INITIALIZE_OUTPUT(V2FShadow, o); + UNITY_TRANSFER_INSTANCE_ID(v, o); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + + o.localPos = v.vertex; + o.worldPos = mul(unity_ObjectToWorld, o.localPos); + + #ifdef RALIV_PENETRATION + applyRalivDynamicPenetrationSystem(o.localPos.rgb, v.normal.rgb, v); + #endif + + o.modelPos = mul(unity_ObjectToWorld, float4(0, 0, 0, 1)); + o.uv = v.uv0; + o.uv1 = v.uv1; + o.uv2 = v.uv2; + o.uv3 = v.uv3; + + + float2 uvToUse = 0; + UNITY_BRANCH + if (_VertexManipulationHeightUV == 0) + { + uvToUse = v.uv0.xy; + } + UNITY_BRANCH + if(_VertexManipulationHeightUV == 1) + { + uvToUse = v.uv1.xy; + } + UNITY_BRANCH + if(_VertexManipulationHeightUV == 2) + { + uvToUse = v.uv2.xy; + } + UNITY_BRANCH + if(_VertexManipulationHeightUV == 3) + { + uvToUse = v.uv3.xy; + } + #ifdef AUTO_EXPOSURE + applyWorldVertexTransformation(o.worldPos, o.localPos, v.normal, uvToUse); + #endif + applyVertexGlitching(o.worldPos, o.localPos); + applySpawnInVert(o.worldPos, o.localPos, v.uv0.xy); + #ifdef AUTO_EXPOSURE + applyVertexRounding(o.worldPos, o.localPos); + #endif + o.pos = UnityObjectToClipPos(o.localPos); + o.grabPos = ComputeGrabScreenPos(o.pos); + o.modelPos = mul(unity_ObjectToWorld, float4(0, 0, 0, 1)); + o.vertexColor = v.color; + + UNITY_BRANCH + if(_EnableTouchGlow || _EnableBulge) + { + o.pos = UnityObjectToClipPos(float3(0, 0, -5)); + o.localPos.xyz = float3(0, 0, -5); + o.worldPos = mul(unity_ObjectToWorld, o.localPos); + } + + o.angleAlpha = 1; + #ifdef POI_RANDOM + o.angleAlpha = ApplyAngleBasedRendering(o.modelPos, o.worldPos); + #endif + + + o.pos = UnityClipSpaceShadowCasterPos(o.localPos, v.normal); + o.pos = UnityApplyLinearShadowBias(o.pos); + + return o; +}
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiShadowVert.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiShadowVert.cginc.meta new file mode 100644 index 00000000..2b45031c --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiShadowVert.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 85240e87020438747a5fa50f428e5cdf +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiSpawnInFrag.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiSpawnInFrag.cginc new file mode 100644 index 00000000..12bea5f7 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiSpawnInFrag.cginc @@ -0,0 +1,58 @@ +#ifndef POI_SPAWN_IN_FRAG + #define POI_SPAWN_FRAG + + #ifndef SPAWN_IN_VARIABLES + #define SPAWN_IN_VARIABLES + + float3 _SpawnInGradientStart; + float3 _SpawnInGradientFinish; + fixed _SpawnInAlpha; + fixed _SpawnInNoiseIntensity; + float3 _SpawnInEmissionColor; + float _SpawnInEmissionOffset; + float _SpawnInVertOffset; + float _SpawnInVertOffsetOffset; + float _EnableScifiSpawnIn; + #endif + + UNITY_DECLARE_TEX2D_NOSAMPLER(_SpawnInNoise); float4 _SpawnInNoise_ST; + + float calculateGradientValueFrag(float3 start, float3 finish, float3 localPos) + { + return inverseLerp3(start, finish, localPos); + } + + void applySpawnIn(inout float4 finalColor, inout float3 spawnInEmission, float2 uv, float3 localPos) + { + UNITY_BRANCH + if (_EnableScifiSpawnIn) + { + float noise = UNITY_SAMPLE_TEX2D_SAMPLER(_SpawnInNoise, _MainTex, TRANSFORM_TEX(uv, _SpawnInNoise)).r * _SpawnInAlpha * _SpawnInNoiseIntensity; + float gradient = calculateGradientValueFrag(_SpawnInGradientStart, _SpawnInGradientFinish, localPos); + float inverseGradient = 1 - gradient; + float alpha = gradient - _SpawnInAlpha - noise; + spawnInEmission = saturate(inverseGradient + _SpawnInAlpha + _SpawnInEmissionOffset +noise - 1) * _SpawnInEmissionColor; + UNITY_BRANCH + if(_Mode >= 1) + { + clip(ceil(alpha) - 0.001); + } + } + } + + void applySpawnInShadow(float2 uv, float3 localPos) + { + UNITY_BRANCH + if(_EnableScifiSpawnIn) + { + float noise = UNITY_SAMPLE_TEX2D_SAMPLER(_SpawnInNoise, _MainTex, TRANSFORM_TEX(uv, _SpawnInNoise)).r * _SpawnInAlpha * _SpawnInNoiseIntensity; + float gradient = calculateGradientValueFrag(_SpawnInGradientStart, _SpawnInGradientFinish, localPos); + float alpha = gradient - _SpawnInAlpha - noise + length(_SpawnInVertOffset); + UNITY_BRANCH + if(_Mode >= 1) + { + clip(ceil(alpha) - 0.001); + } + } + } +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiSpawnInFrag.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiSpawnInFrag.cginc.meta new file mode 100644 index 00000000..97aa08c5 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiSpawnInFrag.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 7913db65c40101341a2f9d4c1b15f96d +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiSpawnInVert.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiSpawnInVert.cginc new file mode 100644 index 00000000..01ced3fb --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiSpawnInVert.cginc @@ -0,0 +1,40 @@ +#ifndef POI_SPAWN_IN_FRAG + #define POI_SPAWN_FRAG + + #ifndef SPAWN_IN_VARIABLES + #define SPAWN_IN_VARIABLES + + float3 _SpawnInGradientStart; + float3 _SpawnInGradientFinish; + fixed _SpawnInAlpha; + fixed _SpawnInNoiseIntensity; + float3 _SpawnInEmissionColor; + float _SpawnInEmissionOffset; + float _SpawnInVertOffset; + float _SpawnInVertOffsetOffset; + float _EnableScifiSpawnIn; + + #endif + //sampler2D _SpawnInNoiseVert; float4 _SpawnInNoiseVert_ST; + + float calculateGradientValueVert(float3 start, float3 finish, float3 localPos) + { + return inverseLerp3(start, finish, localPos); + } + + void applySpawnInVert(inout float4 worldPos, inout float4 localPos, float2 uv) + { + UNITY_BRANCH + if (_EnableScifiSpawnIn) + { + float noise = 0; + float gradient = calculateGradientValueVert(_SpawnInGradientStart, _SpawnInGradientFinish, localPos.xyz); + float inverseGradient = 1 - gradient; + float alpha = gradient - _SpawnInAlpha - noise; + worldPos.xyz += saturate(inverseGradient + _SpawnInAlpha + _SpawnInVertOffsetOffset -1) * float3(0, _SpawnInVertOffset, 0); + localPos.xyz = mul(unity_WorldToObject, worldPos).xyz; + } + //float noise = tex2Dlod(_SpawnInNoise, float4(TRANSFORM_TEX(uv, _SpawnInNoise))).r * _SpawnInAlpha * _SpawnInNoiseIntensity; + } + +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiSpawnInVert.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiSpawnInVert.cginc.meta new file mode 100644 index 00000000..e6fcfee7 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiSpawnInVert.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 73fa7e501ae5f2643ac34be3ad11b72a +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiSpecular.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiSpecular.cginc new file mode 100644 index 00000000..d2775152 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiSpecular.cginc @@ -0,0 +1,483 @@ +#ifndef POI_SPECULAR + #define POI_SPECULAR + float _SpecWhatTangent; + float _SpecularType; + float _SmoothnessFrom; + POI_TEXTURE_NOSAMPLER(_SpecularMetallicMap); + POI_TEXTURE_NOSAMPLER(_SpecularMap); + fixed _CenterOutSpecColor; + POI_TEXTURE_NOSAMPLER(_SpecularAnisoJitterMicro); + float _SpecularAnisoJitterMirrored; + POI_TEXTURE_NOSAMPLER(_SpecularAnisoJitterMacro); + POI_TEXTURE_NOSAMPLER(_SpecularAnisoFakeUV); + POI_TEXTURE_NOSAMPLER(_AnisoTangentMap); + POI_TEXTURE_NOSAMPLER(_SpecularMask); + float _SpecularAnisoJitterMicroMultiplier; + float _SpecularAnisoJitterMacroMultiplier; + float4 _SpecularTint; + float _SpecularSmoothness; + float _Spec1Offset; + float _Spec1JitterStrength; + float _Spec2Smoothness; + float _Spec2Offset; + float _Spec2JitterStrength; + float _AnisoUseTangentMap; + float _AnisoSpec1Alpha; + float _AnisoSpec2Alpha; + float _SpecularInvertSmoothness; + half _SpecularMetallic; + float _SpecularNormal; + float _SpecularNormal1; + // Toon + fixed _SpecularToonStart; + fixed _SpecularToonEnd; + half4 _SpecularToonInnerOuter; + + #ifdef DITHERING + float _EnableSpecular1; + float _SpecWhatTangent1; + float _SpecularType1; + float _SmoothnessFrom1; + POI_TEXTURE_NOSAMPLER(_SpecularMetallicMap1); + POI_TEXTURE_NOSAMPLER(_SpecularMap1); + POI_TEXTURE_NOSAMPLER(_SpecularAnisoJitterMicro1); + POI_TEXTURE_NOSAMPLER(_SpecularAnisoJitterMacro1); + float _SpecularAnisoJitterMirrored1; + POI_TEXTURE_NOSAMPLER(_AnisoTangentMap1); + POI_TEXTURE_NOSAMPLER(_SpecularMask1); + float _SpecularAnisoJitterMicroMultiplier1; + float _SpecularAnisoJitterMacroMultiplier1; + float4 _SpecularTint1; + float _SpecularSmoothness1; + float _Spec1Offset1; + float _Spec1JitterStrength1; + float _Spec2Smoothness1; + float _Spec2Offset1; + float _Spec2JitterStrength1; + float _AnisoUseTangentMap1; + float _AnisoSpec1Alpha1; + float _AnisoSpec2Alpha1; + float _SpecularInvertSmoothness1; + half _SpecularMetallic1; + // Toon + half4 _SpecularToonInnerOuter1; + fixed _SpecularToonStart1; + fixed _SpecularToonEnd1; + #endif + UnityIndirect ZeroIndirect() + { + UnityIndirect ind; + ind.diffuse = 0; + ind.specular = 0; + return ind; + } + + // From unity just putting it here in case I want to mod it + half4 poiRealisticSpecular(half3 diffColor, half3 specColor, half oneMinusReflectivity, half smoothness, + float3 normal, float3 halfDir, + UnityLight light, UnityIndirect gi) + { + float perceptualRoughness = SmoothnessToPerceptualRoughness(smoothness); + #define UNITY_HANDLE_CORRECTLY_NEGATIVE_NDOTV 0 + + #if UNITY_HANDLE_CORRECTLY_NEGATIVE_NDOTV + half shiftAmount = dot(normal, poiCam.viewDir); + normal = shiftAmount < 0.0f ? normal + poiCam.viewDir * (-shiftAmount + 1e-5f): normal; + float nv = saturate(dot(normal, poiCam.viewDir)); + #else + half nv = abs(dot(normal, poiCam.viewDir)); + #endif + + float nl = saturate(dot(normal, light.dir)); + float nh = saturate(dot(normal, halfDir)); + + half lv = saturate(dot(light.dir, poiCam.viewDir)); + half lh = saturate(dot(light.dir, halfDir)); + + half diffuseTerm = DisneyDiffuse(nv, nl, lh, perceptualRoughness) * nl; + + float roughness = PerceptualRoughnessToRoughness(perceptualRoughness); + + roughness = max(roughness, 0.002); + float V = SmithJointGGXVisibilityTerm(nl, nv, roughness); + float D = GGXTerm(nh, roughness); + + float specularTerm = V * D * UNITY_PI; + + #ifdef UNITY_COLORSPACE_GAMMA + specularTerm = sqrt(max(1e-4h, specularTerm)); + #endif + + specularTerm = max(0, specularTerm * nl); + #if defined(_POI_SPECULARHIGHLIGHTS_OFF) + specularTerm = 0.0; + #endif + + half surfaceReduction; + #ifdef UNITY_COLORSPACE_GAMMA + surfaceReduction = 1.0 - 0.28 * roughness * perceptualRoughness; + #else + surfaceReduction = 1.0 / (roughness * roughness + 1.0); + #endif + + specularTerm *= any(specColor) ? 1.0: 0.0; + + half grazingTerm = saturate(smoothness + (1 - oneMinusReflectivity)); + half3 color = diffColor * (gi.diffuse + light.color * diffuseTerm) + + specularTerm * light.color * FresnelTerm(specColor, lh) + + surfaceReduction * gi.specular * FresnelLerp(specColor, grazingTerm, nv); + + return half4(color, 1); + } + + half3 calculateRealisticSpecular(float4 albedo, float2 uv, float4 specularTint, float specularSmoothness, float invertSmoothness, float mixAlbedoWithTint, float4 specularMap, float3 specularLight, float3 normal, float attenuation, float3 lightDirection, float nDotL, float3 halfDir) + { + half oneMinusReflectivity; + half3 finalSpecular; + UnityLight unityLight; + unityLight.color = specularLight; + unityLight.dir = lightDirection; + unityLight.ndotl = nDotL; + + UNITY_BRANCH + if (_SmoothnessFrom == 0) + { + half3 diffColor = EnergyConservationBetweenDiffuseAndSpecular(albedo, specularMap.rgb * specularTint.rgb, /*out*/ oneMinusReflectivity); + finalSpecular = poiRealisticSpecular(diffColor, specularMap.rgb, oneMinusReflectivity, specularMap.a * specularSmoothness * lerp(1, -1, invertSmoothness), normal, halfDir, unityLight, ZeroIndirect()); + } + else + { + half3 diffColor = EnergyConservationBetweenDiffuseAndSpecular(albedo, specularTint.rgb, /*out*/ oneMinusReflectivity); + float smoothness = max(max(specularMap.r, specularMap.g), specularMap.b); + finalSpecular = poiRealisticSpecular(diffColor, 1, oneMinusReflectivity, smoothness * specularSmoothness * lerp(1, -1, invertSmoothness), normal, halfDir, unityLight, ZeroIndirect()); + } + finalSpecular *= lerp(1, albedo.rgb, mixAlbedoWithTint); + return finalSpecular; + } + + half3 calculateToonSpecular(float4 albedo, float2 uv, float2 specularToonInnerOuter, float specularMixAlbedoIntoTint, float smoothnessFrom, float4 specularMap, float3 specularLight, float3 normal, float3 halfDir, float attenuation) + { + half3 finalSpecular = smoothstep(1 - specularToonInnerOuter.y, 1 - specularToonInnerOuter.x, dot(halfDir, normal)) * specularLight; + UNITY_BRANCH + if (smoothnessFrom == 0) + { + finalSpecular.rgb *= specularMap.rgb * lerp(1, albedo.rgb, specularMixAlbedoIntoTint); + finalSpecular *= specularMap.a; + } + else + { + finalSpecular *= specularMap.r * lerp(1, albedo.rgb, specularMixAlbedoIntoTint); + } + return finalSpecular; + } + + float3 strandSpecular(float TdotL, float TdotV, float specPower, float nDotL) + { + #ifdef FORWARD_ADD_PASS + nDotL *= poiLight.attenuation * poiLight.additiveShadow; + #endif + float Specular = saturate(nDotL) * pow(saturate(sqrt(1.0 - (TdotL * TdotL)) * sqrt(1.0 - (TdotV * TdotV)) - TdotL * TdotV), specPower); + half normalization = sqrt((specPower + 1) * ((specPower) + 1)) / (8 * pi); + Specular *= normalization; + return Specular; + } + + half3 AnisotropicSpecular( + float specWhatTangent, float anisoUseTangentMap, float specularSmoothness, float spec2Smoothness, + float anisoSpec1Alpha, float anisoSpec2Alpha, float4 specularTint, float specularMixAlbedoIntoTint, float4 specularMap, float3 specularLight, float3 lightDirection, float3 halfDir, float nDotL, float jitter, float4 packedTangentMap, in float4 albedo) + { + float3 tangentOrBinormal = specWhatTangent ? poiMesh.tangent: poiMesh.binormal; + + + float3 normalLocalAniso = lerp(float3(0, 0, 1), UnpackNormal(packedTangentMap), anisoUseTangentMap); + normalLocalAniso = BlendNormals(normalLocalAniso, poiMesh.tangentSpaceNormal); + //float3 normalDirection = normalize(mul(poiMesh.normals[_SpecularNormal], poiTData.tangentTransform)); + float3 normalDirectionAniso = Unity_SafeNormalize(mul(normalLocalAniso, poiTData.tangentTransform)); + float3 tangentDirection = mul(poiTData.tangentTransform, tangentOrBinormal).xyz; + float3 viewReflectDirectionAniso = reflect(-poiCam.viewDir, normalDirectionAniso); // possible bad negation + float3 tangentDirectionMap = mul(poiTData.tangentToWorld, float3(normalLocalAniso.rg, 0.0)).xyz; + tangentDirectionMap = normalize(lerp(tangentOrBinormal, tangentDirectionMap, anisoUseTangentMap)); + + tangentDirectionMap += _Spec1Offset +jitter; + + float TdotL = dot(lightDirection, tangentDirectionMap); + float TdotV = dot(poiCam.viewDir, tangentDirectionMap); + float TdotH = dot(halfDir, tangentDirectionMap); + half specPower = RoughnessToSpecPower(1.0 - specularSmoothness * specularMap.a); + half spec2Power = RoughnessToSpecPower(1.0 - spec2Smoothness * specularMap.a); + half Specular = 0; + + float3 spec = strandSpecular(TdotL, TdotV, specPower, nDotL) * anisoSpec1Alpha; + float3 spec2 = strandSpecular(TdotL, TdotV, spec2Power, nDotL) * anisoSpec2Alpha; + + return max(spec, spec2) * specularMap.rgb * specularTint.a * specularLight * lerp(1, albedo.rgb, specularMixAlbedoIntoTint); + } + + inline float3 toonAnisoSpecular(float specWhatTangent, float anisoUseTangentMap, float3 lightDirection, float halfDir, float4 specularMap, float nDotL, fixed gradientStart, fixed gradientEnd, float4 specColor, float4 finalColor, fixed metallic, float jitter, float mirrored, float4 packedTangentMap) + { + float3 tangentOrBinormal = specWhatTangent ? poiMesh.tangent: poiMesh.binormal; + + float3 normalLocalAniso = lerp(float3(0, 0, 1), UnpackNormal(packedTangentMap), anisoUseTangentMap); + normalLocalAniso = BlendNormals(normalLocalAniso, poiMesh.tangentSpaceNormal); + //float3 normalDirection = normalize(mul(poiMesh.normals[_SpecularNormal], poiTData.tangentTransform)); + float3 normalDirectionAniso = Unity_SafeNormalize(mul(normalLocalAniso, poiTData.tangentTransform)); + float3 tangentDirection = mul(poiTData.tangentTransform, tangentOrBinormal).xyz; + float3 viewReflectDirectionAniso = reflect(-poiCam.viewDir, normalDirectionAniso); // possible bad negation + float3 tangentDirectionMap = mul(poiTData.tangentToWorld, float3(normalLocalAniso.rg, 0.0)).xyz; + tangentDirectionMap = normalize(lerp(tangentOrBinormal, tangentDirectionMap, anisoUseTangentMap)); + + if (!mirrored) + { + tangentDirectionMap += jitter; + } + + float TdotL = dot(lightDirection, tangentDirectionMap); + float TdotV = dot(poiCam.viewDir, tangentDirectionMap); + float TdotH = dot(halfDir, tangentDirectionMap); + + float specular = saturate(sqrt(1.0 - (TdotL * TdotL)) * sqrt(1.0 - (TdotV * TdotV)) - TdotL * TdotV); + + fixed smoothAlpha = specular; + if(mirrored) + { + smoothAlpha = max(specular - jitter, 0); + } + + specular = smoothstep(gradientStart, gradientEnd, smoothAlpha); + + /* + UNITY_BRANCH + if(_CenterOutSpecColor) + { + specularMap = POI2D_SAMPLER_PAN(_SpecularMap, _MainTex, clamp(float2(specular, specular), 0.01, .99), _SpecularMapPan); + } + */ + + #ifdef FORWARD_ADD_PASS + nDotL *= poiLight.attenuation * poiLight.additiveShadow; + #endif + + return saturate(nDotL) * specular * poiLight.color * specColor * specularMap.rgb * lerp(1, finalColor, metallic) * specularMap.a; + } + + inline float SpecularHQ(half roughness, half dotNH, half dotLH) + { + roughness = saturate(roughness); + roughness = max((roughness * roughness), 0.002); + half roughnessX2 = roughness * roughness; + + half denom = dotNH * dotNH * (roughnessX2 - 1.0) + 1.0f; + half D = roughnessX2 / (3.14159 * denom * denom); + + half k = roughness / 2.0f; + half k2 = k * k; + half invK2 = 1.0f - k2; + + half vis = rcp(dotLH * dotLH * invK2 + k2); + + float specTerm = vis * D; + + return specTerm; + } + + float3 calculateNewSpecular(in float3 specularMap, uint colorFrom, in float4 albedo, in float3 specularTint, in float specularMetallic, in float specularSmoothness, in half dotNH, in half dotLH, in float3 lightColor, in float attenuation) + { + float3 specColor = specularTint; + float metallic = specularMetallic; + float roughness = 1 - specularSmoothness; + float perceptualRoughness = roughness; + //float reflectInverse = DielectricSpec.a - metallic * DielectricSpec.a; + //float reflectivity = 1.0h - reflectInverse; + float3 specMapColor = lerp(specularMap, 1, colorFrom); + float3 specularColor = lerp(DielectricSpec.rgb * specMapColor, lerp(specularMap, albedo.rgb, colorFrom), metallic); + //albedo.rgb *= reflectInverse; + return clamp(specularColor * lightColor * attenuation * specularTint * SpecularHQ(perceptualRoughness, dotNH, dotLH), 0, lightColor * specularTint); + } + + float3 calculateSpecular(in float4 albedo) + { + half3 finalSpecular = 0; + half3 finalSpecular1 = 0; + float4 realisticAlbedo = albedo; + float4 realisticAlbedo1 = albedo; + float4 specularMap = POI2D_SAMPLER_PAN(_SpecularMap, _MainTex, poiMesh.uv[_SpecularMapUV], _SpecularMapPan); + half metallic = POI2D_SAMPLER_PAN(_SpecularMetallicMap, _MainTex, poiMesh.uv[_SpecularMetallicMapUV], _SpecularMetallicMapPan).r * _SpecularMetallic; + half specularMask = POI2D_SAMPLER_PAN(_SpecularMask, _MainTex, poiMesh.uv[_SpecularMaskUV], _SpecularMaskPan).r; + float attenuation = saturate(poiLight.nDotL); + + #ifdef FORWARD_ADD_PASS + attenuation *= poiLight.attenuation * poiLight.additiveShadow; + #endif + + #ifdef POI_LIGHTING + UNITY_BRANCH + if (_LightingMode == 0 && _LightingRampType == 1) + { + attenuation = poiLight.rampedLightMap; + } + #endif + + UNITY_BRANCH + if(_SpecularType == 1) // Realistic + { + if (_SmoothnessFrom == 1) + { + specularMap.a = specularMap.r; + specularMap.rgb = 1; + } + + if(_SpecularInvertSmoothness) + { + specularMap.a = 1 - specularMap.a; + } + + finalSpecular += calculateNewSpecular(specularMap.rgb, _SmoothnessFrom, realisticAlbedo, _SpecularTint, metallic, _SpecularSmoothness * specularMap.a, poiLight.dotNH, poiLight.dotLH, poiLight.color, attenuation); + } + + UNITY_BRANCH + if(_SpecularType == 4) + { + float jitter = 0; + float microJitter = POI2D_SAMPLER_PAN(_SpecularAnisoJitterMicro, _MainTex, float2(poiMesh.uv[_SpecularAnisoJitterMicroUV]), _SpecularAnisoJitterMicroPan).r; + fixed jitterOffset = (1 - _SpecularAnisoJitterMirrored) * .5; + jitter += (POI2D_SAMPLER_PAN(_SpecularAnisoJitterMicro, _MainTex, float2(poiMesh.uv[_SpecularAnisoJitterMicroUV]), _SpecularAnisoJitterMicroPan).r - jitterOffset) * _SpecularAnisoJitterMicroMultiplier; + jitter += (POI2D_SAMPLER_PAN(_SpecularAnisoJitterMacro, _MainTex, float2(poiMesh.uv[_SpecularAnisoJitterMacroUV]), _SpecularAnisoJitterMacroPan).r - jitterOffset) * _SpecularAnisoJitterMacroMultiplier; + jitter += _Spec1Offset; + + float4 packedTangentMap = POI2D_SAMPLER_PAN(_AnisoTangentMap, _MainTex, poiMesh.uv[_AnisoTangentMapUV], _AnisoTangentMapPan); + + finalSpecular += toonAnisoSpecular(_SpecWhatTangent, _AnisoUseTangentMap, poiLight.direction, poiLight.halfDir, specularMap, poiLight.nDotL, _SpecularToonStart, _SpecularToonEnd, _SpecularTint, albedo, metallic, jitter, _SpecularAnisoJitterMirrored, packedTangentMap); + finalSpecular *= attenuation; + } + + #ifdef FORWARD_BASE_PASS + UNITY_BRANCH + if(_SpecularType == 2) // Toon + { + finalSpecular += calculateToonSpecular(albedo, poiMesh.uv[0], _SpecularToonInnerOuter, metallic, _SmoothnessFrom, specularMap, poiLight.color, poiMesh.normals[_SpecularNormal], poiLight.halfDir, poiLight.attenuation); + finalSpecular *= _SpecularTint; + } + UNITY_BRANCH + if (_SpecularType == 3) // anisotropic + { + float jitter = 0; + float microJitter = POI2D_SAMPLER_PAN(_SpecularAnisoJitterMicro, _MainTex, float2(poiMesh.uv[_SpecularAnisoJitterMicroUV]), _SpecularAnisoJitterMicroPan).r; + fixed jitterOffset = (1 - _SpecularAnisoJitterMirrored) * .5; + jitter += (POI2D_SAMPLER_PAN(_SpecularAnisoJitterMicro, _MainTex, float2(poiMesh.uv[_SpecularAnisoJitterMicroUV]), _SpecularAnisoJitterMicroPan).r - jitterOffset) * _SpecularAnisoJitterMicroMultiplier; + jitter += (POI2D_SAMPLER_PAN(_SpecularAnisoJitterMacro, _MainTex, float2(poiMesh.uv[_SpecularAnisoJitterMacroUV]), _SpecularAnisoJitterMacroPan).r - jitterOffset) * _SpecularAnisoJitterMacroMultiplier; + jitter += _Spec1Offset; + + float4 packedTangentMap = POI2D_SAMPLER_PAN(_AnisoTangentMap, _MainTex, poiMesh.uv[_AnisoTangentMapUV], _AnisoTangentMapPan); + + finalSpecular += AnisotropicSpecular(_SpecWhatTangent, _AnisoUseTangentMap, _SpecularSmoothness, _Spec2Smoothness, _AnisoSpec1Alpha, _AnisoSpec2Alpha, _SpecularTint, metallic, specularMap, poiLight.color, poiLight.direction, poiLight.halfDir, poiLight.nDotL, jitter, packedTangentMap, albedo); + finalSpecular *= _SpecularTint; + finalSpecular *= attenuation; + } + #endif + + #ifdef VERTEXLIGHT_ON + // Non Important Lights + for (int index = 0; index < 4; index ++) + { + attenuation = poiLight.vAttenuationDotNL[index]; + UNITY_BRANCH + if (_SpecularType == 1) // Realistic + { + finalSpecular += calculateNewSpecular(specularMap.rgb, _SmoothnessFrom, realisticAlbedo, _SpecularTint, metallic, _SpecularSmoothness * specularMap.a, poiLight.vDotNH[index], poiLight.vDotLH[index], poiLight.vColor[index], poiLight.vAttenuationDotNL[index]); + } + } + #endif + + finalSpecular *= _SpecularTint.a; + finalSpecular = finalSpecular.rgb; + finalSpecular *= specularMask; + #ifdef DITHERING + float4 specularMap1 = POI2D_SAMPLER_PAN(_SpecularMap1, _MainTex, poiMesh.uv[_SpecularMap1UV], _SpecularMap1Pan); + half specularMask1 = POI2D_SAMPLER_PAN(_SpecularMask1, _MainTex, poiMesh.uv[_SpecularMask1UV], _SpecularMask1Pan).r; + half metallic1 = POI2D_SAMPLER_PAN(_SpecularMetallicMap1, _MainTex, poiMesh.uv[_SpecularMetallicMap1UV], _SpecularMetallicMap1Pan).r * _SpecularMetallic1; + UNITY_BRANCH + if (_SpecularType1 == 1) // Realistic + { + UNITY_BRANCH + if (_SmoothnessFrom1 == 1) + { + specularMap1.a = specularMap1.r; + specularMap1.rgb = 1; + } + else + { + realisticAlbedo1.rgb = specularMap1.rgb; + } + + UNITY_BRANCH + if(_SpecularInvertSmoothness1) + { + specularMap1.a = 1 - specularMap1.a; + } + + finalSpecular1 = calculateNewSpecular(specularMap1.rgb, _SmoothnessFrom1, realisticAlbedo1, _SpecularTint1, metallic1, _SpecularSmoothness1 * specularMap1.a, poiLight.dotNH, poiLight.dotLH, poiLight.color, attenuation); + } + + UNITY_BRANCH + if(_SpecularType1 == 4) + { + float jitter = 0; + float microJitter = POI2D_SAMPLER_PAN(_SpecularAnisoJitterMicro1, _MainTex, float2(poiMesh.uv[_SpecularAnisoJitterMicro1UV]), _SpecularAnisoJitterMicro1Pan).r; + fixed jitterOffset = (1 - _SpecularAnisoJitterMirrored1) * .5; + jitter += (POI2D_SAMPLER_PAN(_SpecularAnisoJitterMicro1, _MainTex, float2(poiMesh.uv[_SpecularAnisoJitterMicro1UV]), _SpecularAnisoJitterMicro1Pan).r - jitterOffset) * _SpecularAnisoJitterMicroMultiplier1; + jitter += (POI2D_SAMPLER_PAN(_SpecularAnisoJitterMacro1, _MainTex, float2(poiMesh.uv[_SpecularAnisoJitterMacro1UV]), _SpecularAnisoJitterMacro1Pan).r - jitterOffset) * _SpecularAnisoJitterMacroMultiplier1; + jitter += _Spec1Offset1; + + float4 packedTangentMap = POI2D_SAMPLER_PAN(_AnisoTangentMap1, _MainTex, poiMesh.uv[_AnisoTangentMap1UV], _AnisoTangentMap1Pan); + + finalSpecular1 += toonAnisoSpecular(_SpecWhatTangent1, _AnisoUseTangentMap1, poiLight.direction, poiLight.halfDir, specularMap1, poiLight.nDotL, _SpecularToonStart1, _SpecularToonEnd1, _SpecularTint1, albedo, metallic1, jitter, _SpecularAnisoJitterMirrored1, packedTangentMap); + finalSpecular1 *= poiLight.attenuation; + } + + UNITY_BRANCH + if(_SpecularType1 == 2) // Toon + { + finalSpecular1 = calculateToonSpecular(albedo, poiMesh.uv[0], _SpecularToonInnerOuter1, metallic1, _SmoothnessFrom1, specularMap1, poiLight.color, poiMesh.normals[_SpecularNormal1], poiLight.halfDir, poiLight.attenuation); + finalSpecular1 *= _SpecularTint1; + } + UNITY_BRANCH + if (_SpecularType1 == 3) // anisotropic + { + float jitter = 0; + float microJitter = POI2D_SAMPLER_PAN(_SpecularAnisoJitterMicro1, _MainTex, float2(poiMesh.uv[_SpecularAnisoJitterMicro1UV]), _SpecularAnisoJitterMicro1Pan).r; + fixed jitterOffset = (1 - _SpecularAnisoJitterMirrored1) * .5; + jitter += (POI2D_SAMPLER_PAN(_SpecularAnisoJitterMicro1, _MainTex, float2(poiMesh.uv[_SpecularAnisoJitterMicro1UV]), _SpecularAnisoJitterMicro1Pan).r - jitterOffset) * _SpecularAnisoJitterMicroMultiplier1; + jitter += (POI2D_SAMPLER_PAN(_SpecularAnisoJitterMacro1, _MainTex, float2(poiMesh.uv[_SpecularAnisoJitterMacro1UV]), _SpecularAnisoJitterMacro1Pan).r - jitterOffset) * _SpecularAnisoJitterMacroMultiplier1; + jitter += _Spec1Offset1; + + float4 packedTangentMap = POI2D_SAMPLER_PAN(_AnisoTangentMap1, _MainTex, poiMesh.uv[_AnisoTangentMap1UV], _AnisoTangentMap1Pan); + + finalSpecular1 = AnisotropicSpecular(_SpecWhatTangent1, _AnisoUseTangentMap1, _SpecularSmoothness1, _Spec2Smoothness1, _AnisoSpec1Alpha1, _AnisoSpec2Alpha1, _SpecularTint1, metallic1, specularMap1, poiLight.color, poiLight.direction, poiLight.halfDir, poiLight.nDotL, jitter, packedTangentMap, albedo); + finalSpecular1 *= _SpecularTint1; + finalSpecular1 *= poiLight.attenuation; + } + + #ifdef FORWARD_BASE_PASS + // Non Important Lights + #ifdef VERTEXLIGHT_ON + for (int index = 0; index < 4; index ++) + { + attenuation = poiLight.vAttenuationDotNL[index]; + UNITY_BRANCH + if (_SpecularType == 1) // Realistic + { + finalSpecular1 += calculateNewSpecular(specularMap1.rgb, _SmoothnessFrom1, realisticAlbedo1, _SpecularTint1, metallic1, _SpecularSmoothness1 * specularMap1.a, poiLight.vDotNH[index], poiLight.vDotLH[index], poiLight.vColor[index], poiLight.vAttenuationDotNL[index]); + } + } + #endif + #endif + + finalSpecular1 *= _SpecularTint1.a; + finalSpecular1 = finalSpecular1.rgb; + finalSpecular1 *= specularMask1; + + #endif + return finalSpecular + finalSpecular1; + } + +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiSpecular.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiSpecular.cginc.meta new file mode 100644 index 00000000..99ab9d9b --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiSpecular.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: da46d1a0fb2f8cc48a64a10aabc5df20 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiSubsurfaceScattering.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiSubsurfaceScattering.cginc new file mode 100644 index 00000000..5878059b --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiSubsurfaceScattering.cginc @@ -0,0 +1,75 @@ +#ifndef SUBSURFACE + #define SUBSURFACE + /* + float _SSSThickness; + half4 _SSSColor; + float _SSSPointLightDirectionality; + float _SSSNormalOffset; + float _SSSStrength; + float _SSSExponent; + float _SSSNDotL; + float _SSSConstant; + + #if defined(PROP_SSSTHICKNESSMAP) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_SSSThicknessMap); + #endif + + half3 calculateSubsurfaceScattering(const float4 albedo) + { + #if defined(PROP_SSSTHICKNESSMAP) || !defined(OPTIMIZER_ENABLED) + float thicknessMap = 1 - POI2D_SAMPLER_PAN(_SSSThicknessMap, _MainTex, poiMesh.uv[_SSSThicknessMapUV], _SSSThicknessMapPan); + #else + float thicknessMap = 1; + #endif + + half4 translucencyColor = _SSSColor; + float3 lightDir = poiLight.direction; + + #ifdef FORWARD_BASE_PASS + half tLitDot = saturate(dot((poiLight.direction + poiMesh.normals[1] * _SSSNormalOffset), -poiCam.viewDir)); + #else + float3 lightDirectional = normalize(_WorldSpaceLightPos0.xyz - poiCam.worldPos); + lightDir = normalize(lerp(poiLight.direction, lightDirectional, _SSSPointLightDirectionality)); + half tLitDot = saturate(dot((poiLight.direction + poiMesh.normals[1] * _SSSNormalOffset), -poiCam.viewDir)); + #endif + + tLitDot = exp2(-_SSSExponent * (1 - tLitDot)) * _SSSStrength; + float NDotL = abs(dot(poiLight.direction, poiMesh.normals[1])); + tLitDot *= lerp(1, NDotL, _SSSNDotL); + + half translucencyOcclusion = lerp(1, thicknessMap, _SSSThickness); + half translucencyAtten = (tLitDot + _SSSConstant * (NDotL + 0.1)) * translucencyOcclusion; + + return translucencyAtten * albedo.rgb * translucencyColor.rgb * poiLight.lightMap * poiLight.color; + } + */ + + float _SSSThicknessMod; + float _SSSSCale; + float _SSSPower; + float _SSSDistortion; + float4 _SSSColor; + float _EnableSSS; + + #if defined(PROP_SSSTHICKNESSMAP) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_SSSThicknessMap); + #endif + + float3 calculateSubsurfaceScattering() + { + #if defined(PROP_SSSTHICKNESSMAP) || !defined(OPTIMIZER_ENABLED) + float SSS = 1 - POI2D_SAMPLER_PAN(_SSSThicknessMap, _MainTex, poiMesh.uv[_SSSThicknessMapUV], _SSSThicknessMapPan); + #else + float SSS = 1; + #endif + half3 vLTLight = poiLight.direction + poiMesh.normals[0] * _SSSDistortion; + half flTDot = pow(saturate(dot(poiCam.viewDir, -vLTLight)), _SSSPower) * _SSSSCale; + #ifdef FORWARD_BASE_PASS + half3 fLT = (flTDot) * saturate(SSS + - 1 * _SSSThicknessMod); + #else + half3 fLT = poiLight.attenuation * (flTDot) * saturate(SSS + - 1 * _SSSThicknessMod); + #endif + + return fLT * poiLight.color * _SSSColor * poiLight.attenuation; + } +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiSubsurfaceScattering.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiSubsurfaceScattering.cginc.meta new file mode 100644 index 00000000..f2f00eaf --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiSubsurfaceScattering.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c86cb17bac1d3ae469535ac16b47fcf9 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiTessellation.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiTessellation.cginc new file mode 100644 index 00000000..a35f940f --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiTessellation.cginc @@ -0,0 +1,117 @@ +#ifndef POI_TESSELLATION + #define POI_TESSELLATION + + float _TessellationPhongStrength; + float _TessellationEdgeLength; + float _TessellationExtrusionAmount; + float _TessellationUniform; + + struct TessellationControlPoint + { + float4 vertex: INTERNALTESSPOS; + float3 normal: NORMAL; + float4 tangent: TANGENT; + float4 color: COLOR; + float2 uv0: TEXCOORD0; + float2 uv1: TEXCOORD1; + float2 uv2: TEXCOORD2; + float2 uv3: TEXCOORD3; + }; + + struct TessellationFactors + { + float edge[3]: SV_TessFactor; + float inside: SV_InsideTessFactor; + }; + + TessellationControlPoint poiTessellationVert(appdata v) + { + TessellationControlPoint p; + p.vertex = v.vertex; + p.normal = v.normal; + p.tangent = v.tangent; + p.color = v.color; + p.uv0 = v.uv0; + p.uv1 = v.uv1; + p.uv2 = v.uv2; + p.uv3 = v.uv3; + return p; + } + + float TessellationEdgeFactor(float3 p0, float3 p1) + { + #ifndef _FADING_ON + float edgeLength = distance(p0, p1); + + float3 edgeCenter = (p0 + p1) * 0.5; + float viewDistance = distance(edgeCenter, _WorldSpaceCameraPos); + + return edgeLength * _ScreenParams.y / + (_TessellationEdgeLength * viewDistance); + #else + return _TessellationUniform; + #endif + } + + TessellationFactors poiPatchConst( + InputPatch < TessellationControlPoint, 3 > patch + ) + { + + TessellationFactors f; + float3 p0 = mul(unity_ObjectToWorld, patch[0].vertex).xyz; + float3 p1 = mul(unity_ObjectToWorld, patch[1].vertex).xyz; + float3 p2 = mul(unity_ObjectToWorld, patch[2].vertex).xyz; + f.edge[0] = TessellationEdgeFactor(p1, p2); + f.edge[1] = TessellationEdgeFactor(p2, p0); + f.edge[2] = TessellationEdgeFactor(p0, p1); + f.inside = (TessellationEdgeFactor(p1, p2) + + TessellationEdgeFactor(p2, p0) + + TessellationEdgeFactor(p0, p1)) * (1 / 3.0); + return f; + } + + [UNITY_domain("tri")] + [UNITY_outputcontrolpoints(3)] + [UNITY_outputtopology("triangle_cw")] + [UNITY_partitioning("fractional_odd")] + [UNITY_patchconstantfunc("poiPatchConst")] + TessellationControlPoint poiHull( + InputPatch < TessellationControlPoint, 3 > patch, + uint id: SV_OutputControlPointID + ) + { + return patch[id]; + } + + [UNITY_domain("tri")] + v2f poiDomain( + TessellationFactors factors, + OutputPatch < TessellationControlPoint, 3 > patch, + float3 barycentricCoordinates: SV_DomainLocation + ) + { + appdata data; + + #define MY_DOMAIN_PROGRAM_INTERPOLATE(fieldName) data.fieldName = patch[0].fieldName * barycentricCoordinates.x + patch[1].fieldName * barycentricCoordinates.y + patch[2].fieldName * barycentricCoordinates.z; + + MY_DOMAIN_PROGRAM_INTERPOLATE(vertex) + float3 pp[3]; + for (int i = 0; i < 3; ++ i) + { + pp[i] = data.vertex.xyz - patch[i].normal * (dot(data.vertex.xyz, patch[i].normal) - dot(patch[i].vertex.xyz, patch[i].normal)); + } + data.vertex.xyz = _TessellationPhongStrength * (pp[0] * barycentricCoordinates.x + pp[1] * barycentricCoordinates.y + pp[2] * barycentricCoordinates.z) + (1.0f - _TessellationPhongStrength) * data.vertex.xyz; + MY_DOMAIN_PROGRAM_INTERPOLATE(normal) + data.vertex.xyz += data.normal.xyz * _TessellationExtrusionAmount; + MY_DOMAIN_PROGRAM_INTERPOLATE(tangent) + MY_DOMAIN_PROGRAM_INTERPOLATE(color) + MY_DOMAIN_PROGRAM_INTERPOLATE(uv0) + MY_DOMAIN_PROGRAM_INTERPOLATE(uv1) + MY_DOMAIN_PROGRAM_INTERPOLATE(uv2) + MY_DOMAIN_PROGRAM_INTERPOLATE(uv3) + + return vert(data); + } + +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiTessellation.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiTessellation.cginc.meta new file mode 100644 index 00000000..4ddeb912 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiTessellation.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: cb923a9217d969d40a045da0c480df7e +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiUVDistortion.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiUVDistortion.cginc new file mode 100644 index 00000000..97ba5405 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiUVDistortion.cginc @@ -0,0 +1,53 @@ +#ifndef POI_UV_DISTORTION + #define POI_UV_DISTORTION + + #if defined(PROP_DISTORTIONFLOWTEXTURE) || !defined(OPTIMIZER_ENABLED) + UNITY_DECLARE_TEX2D_NOSAMPLER(_DistortionFlowTexture); float4 _DistortionFlowTexture_ST; + #endif + #if defined(PROP_DISTORTIONFLOWTEXTURE1) || !defined(OPTIMIZER_ENABLED) + UNITY_DECLARE_TEX2D_NOSAMPLER(_DistortionFlowTexture1); float4 _DistortionFlowTexture1_ST; + #endif + #if defined(PROP_DISTORTIONMASK) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_DistortionMask); + #endif + + float _DistortionStrength; + float _DistortionStrength1; + float2 _DistortionSpeed; + float2 _DistortionSpeed1; + + float2 getTorusUv(float2 uv) + { + // translated to hlsl from https://www.shadertoy.com/view/Md3Bz7 + // http://web.cs.ucdavis.edu/~amenta/s12/findnorm.pdf + float phi = 6.28318530718f * uv.x; + float theta = 6.28318530718f * uv.y; + float3 c = cos(float3(phi, phi + 1.57079632679f, theta)); + float2 result = float2(c.x * c.z, -c.y * c.z); + return result * 0.5 + 0.5; + } + + float2 calculateDistortionUV(float2 uv) + { + #if defined(PROP_DISTORTIONFLOWTEXTURE) || !defined(OPTIMIZER_ENABLED) + float4 flowVector = UNITY_SAMPLE_TEX2D_SAMPLER(_DistortionFlowTexture, _MainTex, TRANSFORM_TEX(poiMesh.uv[0], _DistortionFlowTexture) + _Time.x * _DistortionSpeed) * 2 - 1; + #else + float4 flowVector = 0; + #endif + #if defined(PROP_DISTORTIONFLOWTEXTURE1) || !defined(OPTIMIZER_ENABLED) + float4 flowVector1 = UNITY_SAMPLE_TEX2D_SAMPLER(_DistortionFlowTexture1, _MainTex, TRANSFORM_TEX(poiMesh.uv[0], _DistortionFlowTexture1) + _Time.x * _DistortionSpeed1) * 2 - 1; + #else + float4 flowVector1 = 0; + #endif + #if defined(PROP_DISTORTIONMASK) || !defined(OPTIMIZER_ENABLED) + half distortionMask = POI2D_SAMPLER_PAN(_DistortionMask, _MainTex, poiMesh.uv[_DistortionMaskUV], _DistortionMaskPan).r; + #else + half distortionMask = 1; + #endif + + flowVector *= _DistortionStrength; + flowVector1 *= _DistortionStrength1; + return uv + ((flowVector.xy + flowVector1.xy) / 2) * distortionMask; + } + +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiUVDistortion.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiUVDistortion.cginc.meta new file mode 100644 index 00000000..e949dffd --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiUVDistortion.cginc.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b781c7822eb79cd4d94941b850ec86fd +ShaderImporter: + externalObjects: {} + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiV2F.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiV2F.cginc new file mode 100644 index 00000000..2f9ec870 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiV2F.cginc @@ -0,0 +1,34 @@ +#ifndef POI_V2F + #define POI_V2F + + struct v2f + { + float4 pos: SV_POSITION; + float4 uv0: TEXCOORD0; + float4 uv1: TEXCOORD1; + float3 normal: TEXCOORD2; + float3 tangentViewDir: TEXCOORD3; + float4 tangent: TEXCOORD4; + float4 worldPos: TEXCOORD5; + float4 localPos: TEXCOORD6; + float4 grabPos: TEXCOORD7; + float3 barycentricCoordinates: TEXCOORD8; + #if defined(GRAIN) + float4 worldDirection: TEXCOORD9; + #endif + #if defined(LIGHTMAP_ON) || defined(DYNAMICLIGHTMAP_ON) + float4 lightmapUV: TEXCOORD10; + #endif + float3 modelPos: TEXCOORD11; + float angleAlpha: TEXCOORD12; + float4 vertexColor: TEXCOORD14; + #ifdef FUR + float furAlpha: TEXCOORD15; + #endif + UNITY_SHADOW_COORDS(16) + UNITY_FOG_COORDS(17) + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO + }; + +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiV2F.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiV2F.cginc.meta new file mode 100644 index 00000000..b99520d2 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiV2F.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: ef2c28e0e6cae3d49989341119faa165 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiVert.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiVert.cginc new file mode 100644 index 00000000..e54ec1e0 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiVert.cginc @@ -0,0 +1,137 @@ +#ifndef POI_VERT +#define POI_VERT + +float _VertexManipulationHeightUV; +float _VertexUnwrap; + +#define PM UNITY_MATRIX_P + +inline float4 CalculateFrustumCorrection() +{ + float x1 = -PM._31 / (PM._11 * PM._34); + float x2 = -PM._32 / (PM._22 * PM._34); + return float4(x1, x2, 0, PM._33 / PM._34 + x1 * PM._13 + x2 * PM._23); +} + +v2f vert(appdata v) +{ + UNITY_SETUP_INSTANCE_ID(v); + v2f o; + + #ifdef _COLOROVERLAY_ON + v.vertex.xyz = lerp(v.vertex.xyz, float3(v.uv0.x - .5, v.uv0.y - .5, 0), _VertexUnwrap); + #endif + + #ifdef RALIV_PENETRATION + applyRalivDynamicOrifaceSystem(v); + #endif + + #ifdef AUTO_EXPOSURE + applyLocalVertexTransformation(v.normal, v.tangent, v.vertex); + #endif + + + UNITY_INITIALIZE_OUTPUT(v2f, o); + UNITY_TRANSFER_INSTANCE_ID(v, o); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + + + #ifdef _REQUIRE_UV2 //POI_MIRROR + applyMirrorRenderVert(v.vertex); + #endif + + TANGENT_SPACE_ROTATION; + o.localPos = v.vertex; + o.worldPos = mul(unity_ObjectToWorld, o.localPos); + o.normal = UnityObjectToWorldNormal(v.normal); + + #ifdef RALIV_PENETRATION + applyRalivDynamicPenetrationSystem(o.localPos.rgb, o.normal.rgb, v); + #endif + + //o.localPos.x *= -1; + //o.localPos.xz += sin(o.localPos.y * 100 + _Time.y * 5) * .0025; + + float2 uvToUse = 0; + UNITY_BRANCH + if (_VertexManipulationHeightUV == 0) + { + uvToUse = v.uv0.xy; + } + UNITY_BRANCH + if (_VertexManipulationHeightUV == 1) + { + uvToUse = v.uv1.xy; + } + UNITY_BRANCH + if (_VertexManipulationHeightUV == 2) + { + uvToUse = v.uv2.xy; + } + UNITY_BRANCH + if (_VertexManipulationHeightUV == 3) + { + uvToUse = v.uv3.xy; + } + #ifdef AUTO_EXPOSURE + applyWorldVertexTransformation(o.worldPos, o.localPos, o.normal, uvToUse); + #endif + applyVertexGlitching(o.worldPos, o.localPos); + applySpawnInVert(o.worldPos, o.localPos, v.uv0.xy); + #ifdef AUTO_EXPOSURE + applyVertexRounding(o.worldPos, o.localPos); + #endif + o.pos = UnityObjectToClipPos(o.localPos); + o.grabPos = ComputeGrabScreenPos(o.pos); + o.uv0.xy = v.uv0.xy; + o.uv0.zw = v.uv1.xy; + o.uv1.xy = v.uv2.xy; + o.uv1.zw = v.uv3.xy; + o.vertexColor = v.color; + o.modelPos = mul(unity_ObjectToWorld, float4(0, 0, 0, 1)).xyz; + o.tangent = float4(UnityObjectToWorldDir(v.tangent.xyz), v.tangent.w); + + #ifdef POI_BULGE + bulgyWolgy(o); + #endif + + + o.angleAlpha = 1; + #ifdef _SUNDISK_NONE //POI_RANDOM + o.angleAlpha = ApplyAngleBasedRendering(o.modelPos, o.worldPos); + #endif + + #if defined(LIGHTMAP_ON) + o.lightmapUV.xy = v.uv1.xy * unity_LightmapST.xy + unity_LightmapST.zw; + #endif + #ifdef DYNAMICLIGHTMAP_ON + o.lightmapUV.zw = v.uv2.xy * unity_DynamicLightmapST.xy + unity_DynamicLightmapST.zw; + #endif + + UNITY_TRANSFER_SHADOW(o, o.uv0.xy); + UNITY_TRANSFER_FOG(o, o.pos); + + v.tangent.xyz = normalize(v.tangent.xyz); + v.normal = normalize(v.normal); + float3x3 objectToTangent = float3x3( + v.tangent.xyz, + cross(v.normal, v.tangent.xyz) * v.tangent.w, + v.normal + ); + o.tangentViewDir = mul(objectToTangent, ObjSpaceViewDir(v.vertex)); + + #ifdef POI_META_PASS + o.pos = UnityMetaVertexPosition(v.vertex, v.uv1.xy, v.uv2.xy, unity_LightmapST, unity_DynamicLightmapST); + #endif + + #if defined(GRAIN) + float4 worldDirection; + + worldDirection.xyz = o.worldPos.xyz - _WorldSpaceCameraPos; + worldDirection.w = dot(o.pos, CalculateFrustumCorrection()); + o.worldDirection = worldDirection; + #endif + + return o; +} +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiVert.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiVert.cginc.meta new file mode 100644 index 00000000..200d2fcc --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiVert.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c608d4e6f9b40dc4a854fca20604e6b6 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiVertexManipulations.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiVertexManipulations.cginc new file mode 100644 index 00000000..cf586808 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiVertexManipulations.cginc @@ -0,0 +1,102 @@ +#ifndef POI_VERTEX_MANIPULATION + #define POI_VERTEX_MANIPULATION + + #include "CGI_PoiMath.cginc" + + float4 _VertexManipulationLocalTranslation; + float4 _VertexManipulationLocalRotation; + float4 _VertexManipulationLocalScale; + float4 _VertexManipulationWorldTranslation; + + float _VertexManipulationHeight; + float _VertexManipulationHeightBias; + #if defined(PROP_VERTEXMANIPULATIONHEIGHTMASK) || !defined(OPTIMIZER_ENABLED) + sampler2D _VertexManipulationHeightMask; float4 _VertexManipulationHeightMask_ST; + #endif + float2 _VertexManipulationHeightPan; + + + //Vertex Glitching + float _EnableVertexGlitch; + float _VertexGlitchThreshold; + float _VertexGlitchFrequency; + float _VertexGlitchStrength; + // Rounding + float _VertexRoundingDivision; + float _VertexRoundingEnabled; + + void applyLocalVertexTransformation(inout float3 normal, inout float4 tangent, inout float4 vertex) + { + normal = rotate_with_quaternion(normal, _VertexManipulationLocalRotation.xyz); + tangent.xyz = rotate_with_quaternion(tangent.xyz, _VertexManipulationLocalRotation.xyz); + vertex = transform(vertex, _VertexManipulationLocalTranslation, _VertexManipulationLocalRotation, _VertexManipulationLocalScale); + + //vertex = float4(vertex.x + sin(_Time.y*1.5 + vertex.y * 50) * .75 * smoothstep( .3, -1, vertex.y), vertex.y, vertex.z + cos(_Time.y*1.5 + vertex.y * 50) * .75 * smoothstep( .3, -1, vertex.y), 1); + } + + void applyLocalVertexTransformation(inout float3 normal, inout float4 vertex) + { + normal = rotate_with_quaternion(normal, _VertexManipulationLocalRotation.xyz); + vertex = transform(vertex, _VertexManipulationLocalTranslation, _VertexManipulationLocalRotation, _VertexManipulationLocalScale); + + //vertex = float4(vertex.x + sin(_Time.y*1.5 + vertex.y * 50) * .75 * smoothstep( .3, -1, vertex.y), vertex.y, vertex.z + cos(_Time.y*1.5 + vertex.y * 50) * .75 * smoothstep( .3, -1, vertex.y), 1); + } + + void applyWorldVertexTransformation(inout float4 worldPos, inout float4 localPos, inout float3 worldNormal, float2 uv) + { + #if defined(PROP_VERTEXMANIPULATIONHEIGHTMASK) || !defined(OPTIMIZER_ENABLED) + float3 heightOffset = (tex2Dlod(_VertexManipulationHeightMask, float4(TRANSFORM_TEX(uv, _VertexManipulationHeightMask) + _VertexManipulationHeightPan * _Time.x, 0, 0)).r - _VertexManipulationHeightBias) * _VertexManipulationHeight * worldNormal; + #else + float3 heightOffset = _VertexManipulationHeight * worldNormal; + #endif + worldPos.rgb += _VertexManipulationWorldTranslation.xyz/* * _VertexManipulationWorldTranslation.w*/ + heightOffset; + localPos.xyz = mul(unity_WorldToObject, worldPos).xyz; + } + + void applyWorldVertexTransformationShadow(inout float4 worldPos, inout float4 localPos, float3 worldNormal, float2 uv) + { + #if defined(PROP_VERTEXMANIPULATIONHEIGHTMASK) || !defined(OPTIMIZER_ENABLED) + float3 heightOffset = (tex2Dlod(_VertexManipulationHeightMask, float4(TRANSFORM_TEX(uv, _VertexManipulationHeightMask) + _VertexManipulationHeightPan * _Time.x, 0, 0)).r - _VertexManipulationHeightBias) * _VertexManipulationHeight * worldNormal; + #else + float3 heightOffset = _VertexManipulationHeight * worldNormal; + #endif + worldPos.rgb += _VertexManipulationWorldTranslation.xyz/* * _VertexManipulationWorldTranslation.w*/ + heightOffset; + localPos.xyz = mul(unity_WorldToObject, worldPos).xyz; + } + + void applyVertexRounding(inout float4 worldPos, inout float4 localPos) + { + UNITY_BRANCH + if (_VertexRoundingEnabled) + { + worldPos.xyz = (ceil(worldPos.xyz * _VertexRoundingDivision) / _VertexRoundingDivision) - 1 / _VertexRoundingDivision * .5; + localPos = mul(unity_WorldToObject, worldPos); + } + } + + void applyVertexGlitching(inout float4 worldPos, inout float4 localPos) + { + UNITY_BRANCH + if(_EnableVertexGlitch) + { + float3 forward = getCameraPosition() - mul(unity_ObjectToWorld, float4(0, 0, 0, 1)).xyz; + forward.y = 0; + forward = normalize(forward); + float3 glitchDirection = normalize(cross(float3(0, 1, 0), forward)); + float glitchAmount = frac(sin(dot(_Time.xy + worldPos.y, float2(12.9898, 78.233))) * 43758.5453123) * 2 - 1; + /* + float uvl = worldPos.y * _VertexGlitchDensity + _Time.x * _VertexGlitchMapPanSpeed; + float uvr = worldPos.y * _VertexGlitchDensity - _Time.x * _VertexGlitchMapPanSpeed; + float glitchAmountLeft = tex2Dlod(_VertexGlitchMap, float4(uvl, uvl, 0, 0)).r; + float glitchAmountRight = -tex2Dlod(_VertexGlitchMap, float4(uvr, uvr, 0, 0)).r; + float glitchAmount = glitchAmountLeft + glitchAmountRight; + */ + float time = _Time.y * _VertexGlitchFrequency; + float randomGlitch = (sin(time) + sin(2.2 * time + 5.52) + sin(2.9 * time + 0.93) + sin(4.6 * time + 8.94)) / 4; + worldPos.xyz += glitchAmount * glitchDirection * (_VertexGlitchStrength * .01) * step(_VertexGlitchThreshold, randomGlitch); + localPos = mul(unity_WorldToObject, worldPos); + } + } + +#endif +//
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiVertexManipulations.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiVertexManipulations.cginc.meta new file mode 100644 index 00000000..b0ae7b8d --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiVertexManipulations.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 8f221171da2883d41ab5a08dd1de9779 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiVideo.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiVideo.cginc new file mode 100644 index 00000000..2e4625e1 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiVideo.cginc @@ -0,0 +1,297 @@ +#ifndef POI_VIDEO + #define POI_VIDEO + + #if defined(PROP_VIDEOPIXELTEXTURE) || !defined(OPTIMIZER_ENABLED) + UNITY_DECLARE_TEX2D_NOSAMPLER(_VideoPixelTexture); float4 _VideoPixelTexture_ST; + #endif + #if defined(PROP_VIDEOMASKTEXTURE) || !defined(OPTIMIZER_ENABLED) + UNITY_DECLARE_TEX2D_NOSAMPLER(_VideoMaskTexture); float4 _VideoMaskTexture_ST; + #endif + #if defined(PROP_VIDEOGAMEBOYRAMP) || !defined(OPTIMIZER_ENABLED) + sampler2D _VideoGameboyRamp; + #endif + #if defined(PROP_VIDEODEBUGTEXTURE) || !defined(OPTIMIZER_ENABLED) + UNITY_DECLARE_TEX2D_NOSAMPLER(_VideoDebugTexture); float4 _VideoDebugTexture_ST; + #endif + + float _VideoUVNumber; + float _VideoType; + float3 pixels; + float2 _VideoResolution; + half _VideoBacklight; + half _VideoCRTRefreshRate; + half _VideoCRTPixelEnergizedTime; + half _VideoEnableVideoPlayer; + half _VideoRepeatVideoTexture; + half _VideoPixelateToResolution; + float2 _VideoMaskPanning; + float _VideoEmissionEnabled; + // Video Settings + half _VideoSaturation; + half _VideoContrast; + float2 _VideoTiling; + float2 _VideoOffset; + float2 _VideoPanning; + + //Debug + half _VideoEnableDebug; + + + + sampler2D _VRChat_VideoPlayer; + float4 _VRChat_VideoPlayer_TexelSize; + + float4 globalVideoPlayerColor; + float3 globalColorToDisplayOnScreen; + float globalVideoOn; + + float3 applyBacklight(float3 albedo, half backlightStrength) + { + return max(backlightStrength, albedo.rgb); + } + + float3 applyViewAngleTN(float3 albedo) + { + float3 reflectionVector = normalize(reflect(poiCam.viewDir.rgb, poiMesh.normals[1].rgb)); + float upwardShift = dot(reflectionVector, poiMesh.binormal); + upwardShift = pow(upwardShift, 1); + float sideShift = dot(reflectionVector, poiMesh.tangent); + sideShift *= pow(sideShift, 3); + #if !UNITY_COLORSPACE_GAMMA + albedo = LinearToGammaSpace(albedo); + #endif + albedo = saturate(lerp(half3(0.5, 0.5, 0.5), albedo, upwardShift + 1)); + #if !UNITY_COLORSPACE_GAMMA + albedo = GammaToLinearSpace(albedo); + #endif + albedo = (lerp(albedo, albedo.gbr, sideShift)); + return albedo; + } + + float calculateCRTPixelBrightness() + { + float totalPixels = _VideoResolution.x * _VideoResolution.y; + float2 uvPixel = float2((floor((1 - poiMesh.uv[_VideoUVNumber].y) * _VideoResolution.y)) / _VideoResolution.y, (floor(poiMesh.uv[_VideoUVNumber].x * _VideoResolution.x)) / _VideoResolution.x); + float currentPixelNumber = _VideoResolution.x * (_VideoResolution.y * uvPixel.x) + _VideoResolution.y * uvPixel.y; + float currentPixelAlpha = currentPixelNumber / totalPixels; + half electronBeamAlpha = frac(_Time.y * _VideoCRTRefreshRate); + float electronBeamPixelNumber = totalPixels * electronBeamAlpha; + + float DistanceInPixelsFromCurrentElectronBeamPixel = 0; + if (electronBeamPixelNumber >= currentPixelNumber) + { + DistanceInPixelsFromCurrentElectronBeamPixel = electronBeamPixelNumber - currentPixelNumber; + } + else + { + DistanceInPixelsFromCurrentElectronBeamPixel = electronBeamPixelNumber + (totalPixels - currentPixelNumber); + } + float CRTFrameTime = 1 / _VideoCRTRefreshRate; + float timeSincecurrentPixelWasHitByElectronBeam = (DistanceInPixelsFromCurrentElectronBeamPixel / totalPixels); + + return saturate(_VideoCRTPixelEnergizedTime - timeSincecurrentPixelWasHitByElectronBeam); + } + + void applyContrastSettings(inout float3 pixel) + { + #if !UNITY_COLORSPACE_GAMMA + pixel = LinearToGammaSpace(pixel); + #endif + pixel = saturate(lerp(half3(0.5, 0.5, 0.5), pixel, _VideoContrast + 1)); + #if !UNITY_COLORSPACE_GAMMA + pixel = GammaToLinearSpace(pixel); + #endif + } + + void applySaturationSettings(inout float3 pixel) + { + pixel = lerp(pixel.rgb, dot(pixel.rgb, float3(0.3, 0.59, 0.11)), -_VideoSaturation); + } + + void applyVideoSettings(inout float3 pixel) + { + applySaturationSettings(pixel); + applyContrastSettings(pixel); + } + + void calculateLCD(inout float4 albedo) + { + UNITY_BRANCH + if(_VideoEnableVideoPlayer == 0) + { + globalColorToDisplayOnScreen = albedo; + } + globalColorToDisplayOnScreen = applyBacklight(globalColorToDisplayOnScreen, _VideoBacklight * .01); + applyVideoSettings(globalColorToDisplayOnScreen); + albedo.rgb = globalColorToDisplayOnScreen * pixels * _VideoBacklight + albedo * .000001; + } + void calculateTN(inout float4 albedo) + { + if(_VideoEnableVideoPlayer == 0) + { + globalColorToDisplayOnScreen = albedo; + } + globalColorToDisplayOnScreen = applyBacklight(globalColorToDisplayOnScreen, _VideoBacklight * .01); + globalColorToDisplayOnScreen = applyViewAngleTN(globalColorToDisplayOnScreen); + applyVideoSettings(globalColorToDisplayOnScreen); + albedo.rgb = globalColorToDisplayOnScreen * pixels * _VideoBacklight + albedo * .000001; + } + void calculateCRT(inout float4 albedo) + { + UNITY_BRANCH + if(_VideoEnableVideoPlayer == 0) + { + globalColorToDisplayOnScreen = albedo; + } + float brightness = calculateCRTPixelBrightness(); + applyVideoSettings(globalColorToDisplayOnScreen); + albedo.rgb = globalColorToDisplayOnScreen * pixels * brightness * _VideoBacklight + albedo * .000001; + } + void calculateOLED(inout float4 albedo) + { + UNITY_BRANCH + if(_VideoEnableVideoPlayer == 0) + { + globalColorToDisplayOnScreen = albedo; + } + applyVideoSettings(globalColorToDisplayOnScreen); + albedo.rgb = globalColorToDisplayOnScreen * pixels * _VideoBacklight + albedo * .000001; + } + void calculateGameboy(inout float4 albedo) + { + UNITY_BRANCH + if(_VideoEnableVideoPlayer == 0) + { + globalColorToDisplayOnScreen = albedo; + } + applyVideoSettings(globalColorToDisplayOnScreen); + half brightness = saturate((globalColorToDisplayOnScreen.r + globalColorToDisplayOnScreen.g + globalColorToDisplayOnScreen.b) * .3333333); + #if defined(PROP_VIDEOGAMEBOYRAMP) || !defined(OPTIMIZER_ENABLED) + albedo.rgb = tex2D(_VideoGameboyRamp, brightness); + #endif + } + void calculateProjector(inout float4 albedo) + { + UNITY_BRANCH + if(_VideoEnableVideoPlayer == 0) + { + globalColorToDisplayOnScreen = albedo; + } + applyVideoSettings(globalColorToDisplayOnScreen); + + float3 projectorColor = albedo * globalColorToDisplayOnScreen * _VideoBacklight; + albedo.r = clamp(projectorColor.r, albedo.r, 1000); + albedo.g = clamp(projectorColor.g, albedo.g, 1000); + albedo.b = clamp(projectorColor.b, albedo.b, 1000); + } + + void applyScreenEffect(inout float4 albedo, inout float3 videoEmission) + { + float4 albedoBeforeScreen = albedo; + #if defined(PROP_VIDEOPIXELTEXTURE) || !defined(OPTIMIZER_ENABLED) + pixels = UNITY_SAMPLE_TEX2D_SAMPLER(_VideoPixelTexture, _MainTex, TRANSFORM_TEX(poiMesh.uv[_VideoUVNumber], _VideoPixelTexture) * _VideoResolution); + #else + pixels = 1; + #endif + globalVideoOn = 0; + UNITY_BRANCH + if(_VideoEnableVideoPlayer == 1) + { + float4 videoTexture = 0; + UNITY_BRANCH + if(_VideoPixelateToResolution) + { + UNITY_BRANCH + if(_VideoEnableDebug) + { + #if defined(PROP_VIDEODEBUGTEXTURE) || !defined(OPTIMIZER_ENABLED) + videoTexture = UNITY_SAMPLE_TEX2D_SAMPLER(_VideoDebugTexture, _MainTex, round(TRANSFORM_TEX(poiMesh.uv[_VideoUVNumber], _VideoDebugTexture) * _VideoResolution + .5) / _VideoResolution); + #else + videoTexture = 1; + #endif + } + else + { + videoTexture = tex2D(_VRChat_VideoPlayer, round(poiMesh.uv[_VideoUVNumber] * _VideoResolution + .5) / _VideoResolution); + } + } + else + { + UNITY_BRANCH + if(_VideoEnableDebug) + { + #if defined(PROP_VIDEODEBUGTEXTURE) || !defined(OPTIMIZER_ENABLED) + videoTexture = UNITY_SAMPLE_TEX2D_SAMPLER(_VideoDebugTexture, _MainTex, TRANSFORM_TEX(poiMesh.uv[_VideoUVNumber], _VideoDebugTexture) * _VideoTiling + _VideoOffset); + #else + videoTexture = 1; + #endif + } + else + { + videoTexture = tex2D(_VRChat_VideoPlayer, ((poiMesh.uv[_VideoUVNumber] + _Time.x * _VideoPanning) * _VideoTiling) + _VideoOffset); + } + } + if(videoTexture.a == 1) + { + globalColorToDisplayOnScreen = videoTexture.rgb; + globalVideoOn = 1; + } + } + + UNITY_BRANCH + if(_VideoRepeatVideoTexture == 1) + { + if(poiMesh.uv[_VideoUVNumber].x > 1 || poiMesh.uv[_VideoUVNumber].x < 0 || poiMesh.uv[_VideoUVNumber].y > 1 || poiMesh.uv[_VideoUVNumber].y < 0) + { + return; + } + } + + switch(_VideoType) + { + case 0: // LCD + { + calculateLCD(albedo); + break; + } + case 1: // TN + { + calculateTN(albedo); + break; + } + case 2: // CRT + { + calculateCRT(albedo); + break; + } + case 3: // OLED + { + calculateOLED(albedo); + break; + } + case 4: // Gameboy + { + calculateGameboy(albedo); + break; + } + case 5: // Projector + { + calculateProjector(albedo); + break; + } + } + #if defined(PROP_VIDEOMASKTEXTURE) || !defined(OPTIMIZER_ENABLED) + float screenMask = UNITY_SAMPLE_TEX2D_SAMPLER(_VideoMaskTexture, _MainTex, TRANSFORM_TEX(poiMesh.uv[_VideoUVNumber], _VideoMaskTexture) + _Time.x * _VideoMaskPanning); + #else + float screenMask = 1; + #endif + + albedo = lerp(albedoBeforeScreen, albedo, screenMask); + UNITY_BRANCH + if (_VideoEmissionEnabled) + { + videoEmission = albedo.rgb * screenMask; + } + } + +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiVideo.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiVideo.cginc.meta new file mode 100644 index 00000000..34b51bfb --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiVideo.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: ff77987a6a6483746ae074933182b0e0 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiVoronoi.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiVoronoi.cginc new file mode 100644 index 00000000..50df551c --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiVoronoi.cginc @@ -0,0 +1,312 @@ +#ifndef POI_VORONOI + #define POI_VORONOI + + float _VoronoiSpace; + float _VoronoiBlend; + float _VoronoiType; + float4 _VoronoiColor0; + float _VoronoiEmission0; + float4 _VoronoiColor1; + float _VoronoiEmission1; + float2 _VoronoiGradient; + float _VoronoiScale; + float3 _VoronoiSpeed; + float _VoronoiEnableRandomCellColor; + float2 _VoronoiRandomMinMaxSaturation; + float2 _VoronoiRandomMinMaxBrightness; + float3 randomPoint; + float _VoronoiEffectsMaterialAlpha; + + #if defined(PROP_VORONOIMASK) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_VoronoiMask); + #endif + #if defined(PROP_VORONOINOISE) || !defined(OPTIMIZER_ENABLED) + POI_TEXTURE_NOSAMPLER(_VoronoiNoise); + #endif + float _VoronoiNoiseIntensity; + + float2 inoise(float3 P, float jitter) + { + float3 Pi = mod(floor(P), 289.0); + float3 Pf = frac(P); + float3 oi = float3(-1.0, 0.0, 1.0); + float3 of = float3(-0.5, 0.5, 1.5); + float3 px = Permutation(Pi.x + oi); + float3 py = Permutation(Pi.y + oi); + + float3 p, ox, oy, oz, dx, dy, dz; + float2 F = 1e6; + + for (int i = 0; i < 3; i ++) + { + for (int j = 0; j < 3; j ++) + { + p = Permutation(px[i] + py[j] + Pi.z + oi); // pij1, pij2, pij3 + + ox = frac(p * K) - Ko; + oy = mod(floor(p * K), 7.0) * K - Ko; + + p = Permutation(p); + + oz = frac(p * K) - Ko; + + dx = Pf.x - of[i] + jitter * ox; + dy = Pf.y - of[j] + jitter * oy; + dz = Pf.z - of + jitter * oz; + + float3 d = dx * dx + dy * dy + dz * dz; // dij1, dij2 and dij3, squared + + //Find lowest and second lowest distances + for (int n = 0; n < 3; n ++) + { + if (d[n] < F[0]) + { + F[1] = F[0]; + F[0] = d[n]; + randomPoint = p; + } + else if(d[n] < F[1]) + { + F[1] = d[n]; + } + } + } + } + + return F; + } + + float voronoi2D(in float2 x, float scale, float2 speed) + { + x *= scale; + x += speed * _Time.x; + float2 n = floor(x); + float2 f = frac(x); + + // first pass: regular voronoi + float2 mg, mr; + float md = 8.0; + for (int j = -1; j <= 1; j ++) + { + for (int i = -1; i <= 1; i ++) + { + float2 g = float2(float(i), float(j)); + float2 o = random2(n + g); + float2 currentPoint = o; + + float2 r = g + o - f; + float d = dot(r, r); + + if (d < md) + { + md = d; + mr = r; + mg = g; + randomPoint.xy = currentPoint; + } + } + } + + // second pass: distance to borders + md = 8.0; + for (int r = -2; r <= 2; r ++) + { + for (int q = -2; q <= 2; q ++) + { + float2 g = mg + float2(float(q), float(r)); + float2 o = random2(n + g); + + float2 r = g + o - f; + + if (dot(mr - r, mr - r) > 0.00001) + { + md = min(md, dot(0.5 * (mr + r), normalize(r - mr))); + } + } + } + return md; + } + + float voronoi3D(in float3 x, float scale, float3 speed) + { + x *= scale; + x += speed * _Time.x; + float3 n = floor(x); + float3 f = frac(x); + + // first pass: regular voronoi + float3 mg, mr; + float md = 8.0; + for (int j = -1; j <= 1; j ++) + { + for (int i = -1; i <= 1; i ++) + { + for (int h = -1; h <= 1; h ++) + { + float3 g = float3(float(h), float(i), float(j)); + float3 o = random3(n + g); + float3 currentPoint = o; + + float3 r = g + o - f; + float d = dot(r, r); + + if (d < md) + { + md = d; + mr = r; + mg = g; + randomPoint = currentPoint; + } + } + } + } + + // second pass: distance to borders + md = 8.0; + for (int r = -2; r <= 2; r ++) + { + for (int q = -2; q <= 2; q ++) + { + for (int p = -2; p <= 2; p ++) + { + float3 g = mg + float3(float(p), float(q), float(r)); + float3 o = random3(n + g); + + float3 r = g + o - f; + + if (dot(mr - r, mr - r) > 0.00001) + { + md = min(md, dot(0.5 * (mr + r), normalize(r - mr))); + } + } + } + } + return md; + } + + + + // fracal sum, range -1.0 - 1.0 + float VoronoiNoise_Octaves(float3 p, float scale, float3 speed, int octaveNumber, float octaveScale, float octaveAttenuation, float jitter, float time) + { + float freq = scale; + float weight = 1.0f; + float sum = 0; + for (int i = 0; i < octaveNumber; i ++) + { + float2 F = inoise(p * freq + time * speed, jitter) * weight; + + sum += sqrt(F[0]); + + freq *= octaveScale; + weight *= 1.0f - octaveAttenuation; + } + return sum; + } + + float VoronoiNoiseDiff_Octaves(float3 p, float scale, float3 speed, int octaveNumber, float octaveScale, float octaveAttenuation, float jitter, float time) + { + float freq = scale; + float weight = 1.0f; + float sum = 0; + for (int i = 0; i < octaveNumber; i ++) + { + float2 F = inoise(p * freq + time * speed, jitter) * weight; + + sum += sqrt(F[1]) - sqrt(F[0]); + + freq *= octaveScale; + weight *= 1.0f - octaveAttenuation; + } + return sum; + } + + void applyVoronoi(inout float4 finalColor, inout float3 VoronoiEmission) + { + float voronoiOctaveNumber = 1; + float voronoiOctaveScale = 1; + float voronoiOctaveAttenuation = 1; + randomPoint = 0; + float4 voronoiColor1 = _VoronoiColor1; + + float voronoi = 0; + + float3 position = 0; + + UNITY_BRANCH + if (_VoronoiSpace == 0) + { + position = poiMesh.localPos; + } + UNITY_BRANCH + if(_VoronoiSpace == 1) + { + position = poiMesh.worldPos; + } + UNITY_BRANCH + if(_VoronoiSpace == 2) + { + position = float3(poiMesh.uv[0].x, poiMesh.uv[0].y, 0); + } + #if defined(PROP_VORONOIMASK) || !defined(OPTIMIZER_ENABLED) + float mask = POI2D_SAMPLER_PAN(_VoronoiMask, _MainTex, poiMesh.uv[_VoronoiMaskUV], _VoronoiMaskPan).r; + #else + float mask = 1; + #endif + #if defined(PROP_VORONOINOISE) || !defined(OPTIMIZER_ENABLED) + float edgeNoise = POI2D_SAMPLER_PAN(_VoronoiNoise, _MainTex, poiMesh.uv[_VoronoiNoiseUV], _VoronoiNoisePan).r * _VoronoiNoiseIntensity; + #else + float edgeNoise = 0; + #endif + UNITY_BRANCH + if(_VoronoiType == 0) // Basic + { + voronoi = voronoi2D(position.xy, _VoronoiScale, _VoronoiSpeed); + } + UNITY_BRANCH + if (_VoronoiType == 1) // Diff + { + voronoi = VoronoiNoiseDiff_Octaves(position, _VoronoiScale, _VoronoiSpeed, voronoiOctaveNumber, voronoiOctaveScale, voronoiOctaveAttenuation, 1, _Time.x); + } + UNITY_BRANCH + if (_VoronoiType == 2) // Fixed Border + { + voronoi = voronoi3D(position, _VoronoiScale, _VoronoiSpeed); + // isolines + //color = c.x * (0.5 + 0.5 * sin(64.0 * c.x)) * 1.0; + } + + if (_VoronoiEnableRandomCellColor == 1) + { + float3 rando = random3(randomPoint); + fixed hue = rando.x; + fixed saturation = lerp(_VoronoiRandomMinMaxSaturation.x, _VoronoiRandomMinMaxSaturation.y, rando.y); + fixed value = lerp(_VoronoiRandomMinMaxBrightness.x, _VoronoiRandomMinMaxBrightness.y, rando.z); + float3 hsv = float3(hue, saturation, value); + + voronoiColor1.rgb = HSVtoRGB(hsv); + } + + float2 voronoiGradient = _VoronoiGradient; + voronoiGradient.xy += edgeNoise; + float ramp = smoothstep(voronoiGradient.x, voronoiGradient.y, voronoi); + + UNITY_BRANCH + if(_VoronoiBlend == 0) + { + float4 voronoiColor = lerp(_VoronoiColor0, voronoiColor1, ramp); + UNITY_BRANCH + if(_VoronoiEffectsMaterialAlpha) + { + finalColor.rgba = lerp(finalColor, voronoiColor, mask); + } + else + { + finalColor.rgb = lerp(finalColor.rgb, voronoiColor.rgb, mask * voronoiColor.a); + } + } + float4 voronoiEmissionColor = lerp(_VoronoiColor0 * _VoronoiEmission0, voronoiColor1 * _VoronoiEmission1, ramp); + VoronoiEmission = voronoiEmissionColor.rgb * mask * voronoiEmissionColor.a; + } + +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiVoronoi.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiVoronoi.cginc.meta new file mode 100644 index 00000000..59241830 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiVoronoi.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: e434761b466d9634bb3659a0b8ec52b8 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiWireframe.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiWireframe.cginc new file mode 100644 index 00000000..1f56e6e6 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiWireframe.cginc @@ -0,0 +1,111 @@ +#ifndef POI_WIREFRAME + #define POI_WIREFRAME + + UNITY_DECLARE_TEX2D_NOSAMPLER(_WireframeTexture); float4 _WireframeTexture_ST; + float2 _WireframeTexturePan; + float _WireframeSmoothing; + float _WireframeThickness; + float4 _WireframeColor; + float _WireframeAlpha; + float _WireframeEnable; + float _WireframeWaveEnabled; + float _WireframeWaveDensity; + float _WireframeWaveSpeed; + float _WireframeEdgeOpacity; + float _WireframeFaceOpacity; + half _WireframeEmissionAlpha; + float _WireframeEmissionStrength; + float _WireframeQuad; + float _WireframeUV; + + #ifndef POI_SHADOW + void applyWireframe(inout float3 wireframeEmission, inout float4 albedo) + { + UNITY_BRANCH + if (_WireframeEnable) + { + float4 colorMap = UNITY_SAMPLE_TEX2D_SAMPLER(_WireframeTexture, _MainTex, TRANSFORM_TEX(poiMesh.uv[_WireframeUV], _WireframeTexture) + _Time.x * _WireframeTexturePan); + float size = _WireframeThickness; + half3 width = abs(ddx(poiMesh.barycentricCoordinates)) + abs(ddy(poiMesh.barycentricCoordinates)); + half3 eF = smoothstep(0, width * size, poiMesh.barycentricCoordinates); + half minBary = size > 0 ? min(min(eF.x, eF.y), eF.z): 1; + + float4 wireframeColor = _WireframeColor * colorMap; + + albedo.a *= lerp(_WireframeEdgeOpacity, _WireframeFaceOpacity, minBary); + albedo.rgb = lerp(lerp(albedo.rgb, wireframeColor.rgb, wireframeColor.a), albedo.rgb, minBary); + wireframeEmission = wireframeColor.rgb * _WireframeEmissionStrength * (1 - minBary) * _WireframeColor.a; + } + } + + [maxvertexcount(3)] + void wireframeGeom(triangle v2f IN[3], inout TriangleStream < v2f > tristream) + { + UNITY_BRANCH + if(_WireframeQuad) + { + float e1 = length(IN[0].localPos - IN[1].localPos); + float e2 = length(IN[1].localPos - IN[2].localPos); + float e3 = length(IN[2].localPos - IN[0].localPos); + + float3 quad = 0; + if(e1 > e2 && e1 > e3) + quad.y = 1.; + else if(e2 > e3 && e2 > e1) + quad.x = 1; + else + quad.z = 1; + + IN[0].barycentricCoordinates = fixed3(1, 0, 0) + quad; + IN[1].barycentricCoordinates = fixed3(0, 0, 1) + quad; + IN[2].barycentricCoordinates = fixed3(0, 1, 0) + quad; + } + else + { + IN[0].barycentricCoordinates = fixed3(1, 0, 0); + IN[1].barycentricCoordinates = fixed3(0, 1, 0); + IN[2].barycentricCoordinates = fixed3(0, 0, 1); + } + + + + tristream.Append(IN[0]); + tristream.Append(IN[1]); + tristream.Append(IN[2]); + } + #else + + float applyShadowWireframe(float2 uv, float3 barycentricCoordinates, float3 normal, float3 worldPos) + { + UNITY_BRANCH + if(_WireframeEnable) + { + float wireframeFadeAlpha = _WireframeAlpha; + float3 finalWireframeColor = 0; + + float3 barys; + barys.xy = barycentricCoordinates; + barys.z = 1 - barys.x - barys.y; + float3 deltas = fwidth(barys); + float3 smoothing = deltas * _WireframeSmoothing; + float wireframeThickness = _WireframeThickness; + float3 thickness = deltas * wireframeThickness; + barys = smoothstep(thickness, thickness + smoothing, barys); + float minBary = min(barys.x, min(barys.y, barys.z)); + + return lerp(_WireframeEdgeOpacity, _WireframeFaceOpacity, minBary); + } + } + + [maxvertexcount(3)] + void wireframeGeom(triangle V2FShadow IN[3], inout TriangleStream < V2FShadow > tristream) + { + IN[0].barycentricCoordinates = fixed3(1, 0, 0); + IN[1].barycentricCoordinates = fixed3(0, 1, 0); + IN[2].barycentricCoordinates = fixed3(0, 0, 1); + tristream.Append(IN[0]); + tristream.Append(IN[1]); + tristream.Append(IN[2]); + } + #endif +#endif
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiWireframe.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiWireframe.cginc.meta new file mode 100644 index 00000000..6a7b4507 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_PoiWireframe.cginc.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 65110f189ab785a48b0a0d99d987ea15 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_Poicludes.cginc b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_Poicludes.cginc new file mode 100644 index 00000000..319e4cb6 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_Poicludes.cginc @@ -0,0 +1,178 @@ +#ifndef POICLUDES +#define POICLUDES + +UNITY_DECLARE_TEX2D(_MainTex); float4 _MainTex_ST; float4 _MainTex_TexelSize; +float _SpecularLMOcclusion; +float _SpecLMOcclusionAdjust; +sampler2D _PoiGrab; +sampler2D _CameraDepthTexture; +float _Cutoff; +float _AlphaMod; + +//Structs +struct appdata +{ + float4 vertex: POSITION; + float3 normal: NORMAL; + float4 tangent: TANGENT; + float4 color: COLOR; + float2 uv0: TEXCOORD0; + float2 uv1: TEXCOORD1; + float2 uv2: TEXCOORD2; + float2 uv3: TEXCOORD3; + uint vertexId: SV_VertexID; + UNITY_VERTEX_INPUT_INSTANCE_ID +}; + +#ifdef OUTLINE + float _LineWidth; + float _OutlineEmission; + float4 _LineColor; + sampler2D _OutlineTexture; float4 _OutlineTexture_ST; float2 _OutlineTexturePan; float _OutlineTextureUV; + float4 _OutlineFadeDistance; + float4 _OutlineGlobalPan; +#endif + +struct PoiLighting +{ + half3 direction; + half3 color; + fixed attenuation; + #ifdef FORWARD_ADD_PASS + fixed additiveShadow; + #endif + half3 directLighting; + half3 indirectLighting; + half lightMap; + float3 rampedLightMap; + half3 finalLighting; + half3 halfDir; + half nDotL; + half nDotH; + half lDotv; + half lDotH; + half nDotV; + half N0DotV; + half diffuseTerm; + half occlusion; + // World normal dot half direction + #ifdef POI_VAR_DOTNH + half dotNH; + #endif + + // Light direction dot half direction + #ifdef POI_VAR_DOTLH + half dotLH; + #endif + + #ifdef VERTEXLIGHT_ON + // Non Important Lights + float4 vDotNL; + float3 vColor[4]; + float4 vCorrectedDotNL; + float4 vAttenuation; + float4 vAttenuationDotNL; + float3 vPosition[4]; + float3 vDirection[4]; + float3 vFinalLighting; + float3 vHalfDir[4]; + half4 vDotNH; + half4 vDotLH; + + + #endif +}; + +struct PoiCamera +{ + half3 viewDir; + half3 tangentViewDir; + half3 decalTangentViewDir; + half3 forwardDir; + half3 worldPos; + float viewDotNormal; + float distanceToModel; + float distanceToVert; + float3 reflectionDir; + float3 vertexReflectionDir; + float2 screenUV; + float4 clipPos; + #if defined(GRAIN) + float4 worldDirection; + #endif + float4 grabPos; +}; + +struct PoiMesh +{ + float3 normals[2]; + float4 tangent; + float3 binormal; + float3 localPos; + float3 worldPos; + float3 modelPos; + float3 tangentSpaceNormal; + float2 uv[5]; + float4 vertexColor; + fixed3 barycentricCoordinates; + #if defined(LIGHTMAP_ON) || defined(DYNAMICLIGHTMAP_ON) + float4 lightmapUV; + #endif + float isFrontFace; + #ifdef FUR + float furAlpha; + #endif +}; + +struct PoiTangentData +{ + float3x3 tangentTransform; + float3x3 tangentToWorld; +}; + +struct FragmentCommonData +{ + half3 diffColor, specColor; + // Note: smoothness & oneMinusReflectivity for optimization purposes, mostly for DX9 SM2.0 level. + // Most of the math is being done on these (1-x) values, and that saves a few precious ALU slots. + half oneMinusReflectivity, smoothness; + float3 normalWorld; + float3 eyeVec; + half alpha; + float3 posWorld; + + #if UNITY_STANDARD_SIMPLE + half3 reflUVW; + #endif + + #if UNITY_STANDARD_SIMPLE + half3 tangentSpaceNormal; + #endif +}; + +struct Debug +{ + float debug1; + float2 debug2; + float3 debug3; + float4 debug4; +}; + +struct PoiMods +{ + float4 audioLink; + fixed audioLinkTextureExists; + float4 globalMasks; + float audioLinkVersion; +}; + +static Debug debug; +static PoiLighting poiLight; +static PoiCamera poiCam; +static PoiMesh poiMesh; +static PoiMods poiMods; +static UnityGI gi; +static FragmentCommonData s; +static PoiTangentData poiTData; + +#endif diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_Poicludes.cginc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_Poicludes.cginc.meta new file mode 100644 index 00000000..f1877049 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/CGI_Poicludes.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: d0e3e8cd70bfa154ab69be067aba0d59 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/Notes.txt b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/Notes.txt new file mode 100644 index 00000000..32633192 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/Notes.txt @@ -0,0 +1,7 @@ +// Transforms 2D UV by scale/bias property +#define TRANSFORM_TEX(tex,name) (tex.xy * name##_ST.xy + name##_ST.zw) + +[HideInInspector][Vector2]Pan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] UV ("UV", Int) = 0 + +:=--{reference_properties:[Pan, UV]}
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/Notes.txt.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/Notes.txt.meta new file mode 100644 index 00000000..53bab679 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Includes/Notes.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 572baf09485ff2d4b9e074da2bba81bb +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Shaders.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Shaders.meta new file mode 100644 index 00000000..10106176 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Shaders.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b1e88d4461f0ec646b7b5b2d06efbbba +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Shaders/7PlusLabels.txt b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Shaders/7PlusLabels.txt new file mode 100644 index 00000000..587b6dfb --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Shaders/7PlusLabels.txt @@ -0,0 +1,235 @@ +--{reference_property:REFERENCEA,button_right:{text:Tutorial,action:{type:URL,data:URLSTRING},hover:YouTube}} +THINGASD:=NAMESD--{hide_in_inspector:true} + +reference_property:REFERENCEA, + +--{reference_property:REFERENCEA} +:=--{reference_property:REFERENCEA} + +--{button_right:{text:Tutorial,action:{type:URL,data:URLSTRING},hover:YouTube}} + +--{hide_in_inspector:true} + +// Main +m_mainOptions:=Main--{button_right:{text:Tutorial,action:{type:URL,data:https://www.youtube.com/watch?v=5yxREJE8DPA&list=PL4_Gy3VRJSmbXfQSldzUiChgABQsoBlLw},hover:YouTube},is_visible_simple:true} +_MainTex:=Main Texture--{reference_properties:[_MainTexPan, _MainTextureUV]} +_BumpMap:=Normal Map--{reference_properties:[_BumpMapPan, _BumpMapUV]} +_VertexManipulationHeightMask:=Height Map--{reference_properties:[_VertexManipulationHeightPan, _VertexManipulationHeightUV]} +_BackFaceTexture:= Texture--{reference_properties:[_BackFacePanning, _BackFaceTextureUV]} + +m_start_MainVertexColors:=Vertex Colors--{is_hideable:true} + +// RGB Mask +m_start_RGBMask:=RGB Mask--{button_right:{text:Tutorial,action:{type:URL,data:https://www.youtube.com/watch?v=VVJ9Ac1_fXk&list=PL4_Gy3VRJSmbXfQSldzUiChgABQsoBlLw},hover:YouTube},reference_property:_RGBMaskEnabled,is_hideable:true} +_RGBMask:=RGB Mask--{reference_properties:[_RGBMaskPanning, _RGBMaskUV]} +_RedTexure:=R Texture--{reference_properties:[_RGBRedPanning, _RGBRed_UV]} +_GreenTexture:=G Texture--{reference_properties:[_RGBGreenPanning, _RGBGreen_UV]} +_BlueTexture:=B Texture--{reference_properties:[_RGBBluePanning, _RGBBlue_UV]} + +// Hue Shift +m_start_MainHueShift:=Color Adjust--{button_right:{text:Tutorial,action:{type:URL,data:https://www.youtube.com/watch?v=Asj7u0Wd5T4&list=PL4_Gy3VRJSmbXfQSldzUiChgABQsoBlLw},hover:YouTube},reference_property:_MainHueShiftToggle,is_hideable:true} +_MainHueShiftMask:=Mask--{reference_properties:[_MainHueShiftMaskPan, _MainHueShiftMaskUV]} + +// Details +_DetailMask:=Detail Mask--{reference_properties:[_DetailMaskPan, _DetailMaskUV]} +_DetailTex:=Detail Texture--{reference_properties:[_DetailTexPan, _DetailTexUV]} +_DetailNormalMap:=Detail Normal--{reference_properties:[_DetailNormalMapPan, _DetailNormalMapUV]} + +// Alpha Options +m_start_Alpha:=Alpha Options--{button_right:{text:Tutorial,action:{type:URL,data:https://www.youtube.com/watch?v=kP4KFOd6P6o&list=PL4_Gy3VRJSmbXfQSldzUiChgABQsoBlLw},hover:YouTube},is_hideable:true} + +// Backface +m_start_backFace:=Back Face--{reference_property:_BackFaceEnabled,button_right:{text:Tutorial,action:{type:URL,data:https://www.youtube.com/watch?v=uZnNpiCvsDg&list=PL4_Gy3VRJSmbXfQSldzUiChgABQsoBlLw},hover:YouTube},is_hideable:true} +_BackFaceEnabled:=Back Face--{hide_in_inspector:true} +_BackFaceTexture:=Backface Texture--{reference_properties:[_BackFacePanning, _BackFaceTextureUV]} + +// Lighting +m_lightingOptions:=Lighting & Reflections--{is_hideable:true,is_visible_simple:true} +m_start_Lighting:=Light & Shadow--{reference_property:_EnableLighting,button_right:{text:Tutorial,action:{type:URL,data:https://www.youtube.com/watch?v=TxVmCYkH8CM&list=PL4_Gy3VRJSmbXfQSldzUiChgABQsoBlLw&index=11&t=0s},hover:YouTube},is_hideable:true,is_visible_simple:true} +_EnableLighting:=Light & Shadow--{hide_in_inspector:true} +_LightingAOTex:=AO Map--{reference_properties:[_LightingAOTexPan, _LightingAOTexUV]} + +// Subsurface Scattering +m_start_subsurface:=Subsurface Scattering--{reference_property:_EnableSSS,button_right:{text:Tutorial,action:{type:URL,data:https://www.youtube.com/watch?v=WZ1fmFMVk0U&list=PL4_Gy3VRJSmbXfQSldzUiChgABQsoBlLw},hover:YouTube},is_hideable:true} +_EnableSSS:=Subsurface Scattering--{hide_in_inspector:true} + +_ToonRamp1:=Lighting Ramp 2--{texture:{width:512,height:4,filterMode:Bilinear,wrapMode:Clamp},force_texture_options:true} +_ToonRamp2:=Lighting Ramp 3--{texture:{width:512,height:4,filterMode:Bilinear,wrapMode:Clamp},force_texture_options:true} +_ToonRamp3:=Lighting Ramp 4--{texture:{width:512,height:4,filterMode:Bilinear,wrapMode:Clamp},force_texture_options:true} + +m_start_lightingStandard:=Standardish Settings + +// Rim Lighting +m_start_rimLightOptions:=Rim Lighting--{reference_property:_EnableRimLighting,button_right:{text:Tutorial,action:{type:URL,data:https://www.youtube.com/watch?v=RE2eWlpdTm8&list=PL4_Gy3VRJSmbXfQSldzUiChgABQsoBlLw},hover:YouTube},is_hideable:true} +_EnableRimLighting:=Rim Lighting--{hide_in_inspector:true} +_RimTex:=Rim Texture--{reference_properties:[_RimTexPan]} +_RimTex:=Rim Texture--{reference_properties:[_RimTexPan, _RimTexUV]} +_RimMask:=Rim Mask--{reference_properties:[_RimMaskPan, _RimMaskUV]} +_RimWidthNoiseTexture:=Width Noise--{reference_properties:[_RimWidthNoiseTexturePan, _RimWidthNoiseTextureUV]} + +// Environmental Rim Lighting +m_start_reflectionRim:=Environmental Rim Lighting--{button_right:{text:Tutorial,action:{type:URL,data:https://www.youtube.com/watch?v=R1LTIjzk-WM&list=PL4_Gy3VRJSmbXfQSldzUiChgABQsoBlLw},hover:YouTube},reference_property:_EnableEnvironmentalRim,is_hideable:true} +_EnableEnvironmentalRim:=Environmental Rim Lighting--{hide_in_inspector:true} +_RimEnviroMask:=Mask--{reference_properties:[_RimEnviroMaskPan, _RimEnviroMaskUV]} + +m_start_bakedLighting:=Baked Lighting--{is_hideable:true} + +// Reflections +m_reflectionOptions:=Reflections--{is_hideable:true,is_visible_simple:true} +// Metal +m_start_Metallic:=Metallics (Deprecated)--{reference_property:_EnableMetallic,button_right:{text:Tutorial,action:{type:URL,data:https://www.youtube.com/watch?v=uSoj9eEFhPY&list=PL4_Gy3VRJSmbXfQSldzUiChgABQsoBlLw},hover:YouTube},is_hideable:true,is_visible_simple:true} +_EnableMetallic:=Metallics--{hide_in_inspector:true} +_MetallicMask:=Metallic Map--{reference_properties:[_MetallicMaskPan, _MetallicMaskUV]} +_MetallicTintMap:=RGB Tint A Mask--{reference_properties:[_MetallicTintMapPan, _MetallicTintMapUV]} +_SmoothnessMask:=Smoothness Map--{reference_properties:[_SmoothnessMaskPan, _SmoothnessMaskUV]} + +// Clear Coat +m_start_clearCoat:=Clear Coat--{reference_property:_EnableClearCoat,button_right:{text:Tutorial,action:{type:URL,data:https://www.youtube.com/watch?v=HtbLCfgzFlg&list=PL4_Gy3VRJSmbXfQSldzUiChgABQsoBlLw},hover:YouTube},is_hideable:true} +_EnableClearCoat:=Clear Coat--{hide_in_inspector:true} + +// Matcap +m_start_matcap:=Matcap--{reference_property:_MatcapEnable,button_right:{text:Tutorial,action:{type:URL,data:https://youtu.be/DFo87kuO1OI},hover:YouTube},is_hideable:true,is_visible_simple:true} +_MatcapEnable:=Matcap--{hide_in_inspector:true} +m_start_Matcap2:=Matcap 2--{reference_property:_Matcap2Enable,button_right:{text:Tutorial,action:{type:URL,data:https://youtu.be/DFo87kuO1OI},hover:YouTube},is_hideable:true} +_Matcap2Enable:=Matcap 2--{hide_in_inspector:true} + +// Specular +m_start_specular:=Specular Reflections--{reference_property:_EnableSpecular,button_right:{text:Tutorial,action:{type:URL,data:https://youtu.be/YFFe8IrXVnc},hover:YouTube},is_hideable:true,is_visible_simple:true} +_EnableSpecular:=Specular Reflections--{hide_in_inspector:true} +_SpecularMap:=Spec Map--{reference_properties:[_SpecularMapPan, _SpecularMapUV]} +_SpecularMask:=Spec Mask--{reference_properties:[_SpecularMaskPan, _SpecularMaskUV]} + +// Specular 2 +m_start_specular1:=Specular Reflections 2--{reference_property:_EnableSpecular1,button_right:{text:Tutorial,action:{type:URL,data:https://youtu.be/YFFe8IrXVnc},hover:YouTube},is_hideable:true} +_EnableSpecular1:=Specular Reflections 2--{hide_in_inspector:true} +_SpecularMap1:=Spec Map--{reference_properties:[_SpecularMap1Pan, _SpecularMap1UV]} +_SpecularMask1:=Spec Mask--{reference_properties:[_SpecularMask1Pan, _SpecularMask1UV]} +m_start_SpecularToon1:=Toon Specular +m_start_Anisotropic1:=Anisotropic + +m_outlineOptions:=Outlines--{reference_property:_commentIfZero_EnableOutlinePass,is_hideable:true} +_commentIfZero_EnableOutlinePass:=Enable Outlines--{hide_in_inspector:true} + +m_start_outlineAdvanced:=Advanced--{is_hideable:true,is_visible_simple:true} + +// Special Effects +m_Special_Effects:=Special Effects--{is_hideable:true,is_visible_simple:true} + +// Emission +m_emissionOptions:= Emission--{reference_property:_EnableEmission,button_right:{text:Tutorial,action:{type:URL,data:https://youtu.be/iqk23gtwkz0},hover:YouTube},is_hideable:true} +m_start_emissionOptions:=Emission--{reference_property:_EnableEmission,button_right:{text:Tutorial,action:{type:URL,data:https://youtu.be/iqk23gtwkz0},hover:YouTube},is_hideable:true,is_visible_simple:true} +_EnableEmission:=Emission--{hide_in_inspector:true} +_EmissionMap:=Emission Map--{texture:{width:1224,height:4,filterMode:Bilinear,wrapMode:Repeat},reference_properties:[_EmissionMapPan, _EmissionMapUV], force_texture_options:true} +_EmissionMask:=Emission Mask--{reference_properties:[_EmissionMaskPan, _EmissionMaskUV]} +_EmissionMap1:=Emission Map--{texture:{width:1224,height:4,filterMode:Bilinear,wrapMode:Repeat},reference_properties:[_EmissionMap1Pan, _EmissionMap1UV], force_texture_options:true} +_EmissionMask1:=Emission Mask--{reference_properties:[_EmissionMask1Pan, _EmissionMask1UV]} +m_start_CenterOutEmission:=Center Out Emission--{reference_property:_EmissionCenterOutEnabled} +m_start_glowInDarkEmissionOptions:=Glow In The Dark Emission (Requires Lighting Enabled)--{reference_property:_EnableGITDEmission} +m_start_blinkingEmissionOptions:=Blinking Emission--{reference_property:_EmissionBlinkingEnabled} +m_start_scrollingEmissionOptions:=Scrolling Emission--{reference_property:_ScrollingEmission} + + +m_start_emission1Options:=Emission 2(Requires Emission 1 Enabled)--{reference_property:_EnableEmission1,is_hideable:true} +_EnableEmission1:=Emission 2(Requires Emission 1 Enabled)--{hide_in_inspector:true} +m_start_CenterOutEmission1:=Center Out Emission--{reference_property:_EmissionCenterOutEnabled1} +m_start_glowInDarkEmissionOptions1:=Glow In The Dark Emission (Requires Lighting Enabled)--{reference_property:_EnableGITDEmission1} +m_start_blinkingEmissionOptions1:=Blinking Emission--{reference_property:_EmissionBlinkingEnabled1} +m_start_scrollingEmissionOptions1:=Scrolling Emission--{reference_property:_ScrollingEmission1} + +// Flipbook +m_start_flipBook:=Flipbook--{reference_property:_EnableFlipbook,button_right:{reference_property:_EnableFlipbook,text:Tutorial,action:{type:URL,data:https://youtu.be/NrA18CITEVs},hover:YouTube},is_hideable:true} +_EnableFlipbook:=Flipbook--{hide_in_inspector:true} +m_start_manualFlipbookControl:=Manual Frame Control +_FlipbookTexArray:=Texture Array--{reference_properties:[_FlipbookTexArrayPan, _FlipbookTexArrayUV]} +_FlipbookMask:=Mask--{reference_properties:[_FlipbookMaskPan, _FlipbookMaskUV]} + +// Dissolve +m_start_dissolve:=Dissolve--{reference_property:_EnableDissolve,button_right:{reference_property:_EnableDissolve,text:Tutorial,action:{type:URL,data:https://youtu.be/abTejmV4yGU},hover:YouTube},is_hideable:true} +_EnableDissolve:=Dissolve--{hide_in_inspector:true} +m_start_pointToPoint:=Point to Point +_DissolveToTexture:=Dissolved Texture--{reference_properties:[_DissolveToTexturePan, _DissolveToTextureUV]} +_DissolveNoiseTexture:=Dissolve Noise--{reference_properties:[_DissolveNoiseTexturePan, _DissolveNoiseTextureUV, _DissolveInvertNoise]} +_DissolveDetailNoise:=Dissolve Detail Noise--{reference_properties:[_DissolveDetailNoisePan, _DissolveDetailNoiseUV, _DissolveInvertDetailNoise]} +_DissolveMask:=Mask--{reference_properties:[_DissolveMaskPan, _DissolveMaskUV, _DissolveMaskInvert]} + +// Panosphere +m_start_panosphereOptions:=Panosphere--{reference_property:_PanoToggle,button_right:{text:Tutorial,action:{type:URL,data:https://youtu.be/wyCY6qE0_Vg},hover:YouTube},is_hideable:true} +_PanoToggle:=Panosphere--{hide_in_inspector:true} +_PanoMask:=Mask--{reference_properties:[_PanoMaskPan, _PanoMaskUV]} + +// Glitter +m_start_glitter:=Glitter--{reference_property:_GlitterEnable,is_hideable:true} +_GlitterEnable:=Glitter--{hide_in_inspector:true} +_GlitterColorMap:=Color Map--{reference_properties:[_GlitterColorMapPan, _GlitterColorMapUV]} +_GlitterMask:=Mask--{reference_properties:[_GlitterMaskPan, _GlitterMaskUV]} + +// MSDF +m_start_Text:=Text Overlay--{reference_property:_TextEnabled,is_hideable:true} +_TextEnabled:=Text Overlay--{hide_in_inspector:true} +m_start_TextFPS:=FPS--{reference_property:_TextFPSEnabled} +_TextFPSEnabled:=FPS --{hide_in_inspector:true} +m_start_TextPosition:=Position--{reference_property:_TextPositionEnabled} +_TextPositionEnabled:=Position--{hide_in_inspector:true} +m_start_TextInstanceTime:=Instance Time--{reference_property:_TextTimeEnabled} +_TextTimeEnabled:=Instance Time--{hide_in_inspector:true} + +// Mirror Options +m_start_mirrorOptions:=Mirror (VRChat)--{reference_property:_EnableMirrorOptions,button_right:{text:Tutorial,action:{type:URL,data:https://youtu.be/ptnVKyuijO4},hover:YouTube},is_hideable:true} +_EnableMirrorOptions:=Mirror (VRChat)--{hide_in_inspector:true} +_MirrorTexture:=Mirror Texture--{reference_properties:[_MirrorTexturePan, _MirrorTextureUV]} + +// Distance Fade +m_start_distanceFade:=Distance Fade--{is_hideable:true} + +// Angular Fade +m_start_angularFade:=Angular Fade--{reference_property:_EnableRandom,is_hideable:true} +_EnableRandom:=Angular Fade--{hide_in_inspector:true} +// Optimization +m_optimization:=Optimization + +m_ParallaxMap:=Parallax--{reference_property:_ParallaxMap,is_hideable:true} +_ParallaxMap:=Parallax--{hide_in_inspector:true} + +_ParallaxHeightMap:=Height Map--{reference_properties:[_ParallaxHeightMapPan]} + +m_start_parallaxHeightmap:=Heightmap--{reference_property:_ParallaxHeightMapEnabled} +_ParallaxHeightMapEnabled:=Heightmap--{hide_in_inspector:true} + +m_start_parallaxInternal:=Internal Parallax--{reference_property:_ParallaxInternalMapEnabled} +_ParallaxInternalMapEnabled:=Internal Parallax--{hide_in_inspector:true} + +_ParallaxHeightMapMask:=Mask--{reference_properties:[_ParallaxHeightMapMaskPan, _ParallaxHeightMapMaskUV]} +_ParallaxInternalMapMask:=Mask--{reference_properties:[_ParallaxInternalMapMaskPan, _ParallaxInternalMapMaskUV]} + +m_start_parallaxAdvanced:=Advanced + + +m_start_distortionFlow:=UV Distortion--{reference_property:_EnableDistortion,button_right:{text:Tutorial,action:{type:URL,data:https://www.youtube.com/watch?v=J17a3glPMYI&t=1s},hover:YouTube},is_hideable:true} +_EnableDistortion:=UV Distortion--{hide_in_inspector:true} + + +// Touch +m_start_TouchOptions:=Touch FX--(Requires DepthGet Prefab,is_hideable:true) + + +m_start_FresnelAlpha:=Fresnel Alpha +_HoloAlphaMap:=Alpha Maptexture--{width:1024,height:4,filterMode:Bilinear,wrapMode:Repeat},force_texture_options:true} + +// Voronoi +_VoronoiMask:=Mask--{reference_properties:[_VoronoiMaskPan, _VoronoiMaskUV]} +_VoronoiNoise:=Edge Noise--{reference_properties:[_VoronoiNoisePan, _VoronoiNoiseUV]} + +m_renderingOptions:=Rendering Options--{button_right:{text:Tutorial,action:{type:URL,data:https://youtu.be/P5KlE9rk9pg},hover:YouTube}, is_hideable:true,is_visible_simple:true} +m_start_StencilPassOptions:=Stencil--{button_right:{text:Tutorial,action:{type:URL,data:https://youtu.be/uniOEpw88jk},hover:YouTube}, is_hideable:true} + + +m_start_debugOptions:=Debug--{reference_property:_DebugEnabled,is_hideable:true} + +m_animationToggles:=Animation Support Toggles--{is_hideable:true} + +// Footer +footer_youtube:={texture:{name:icon-youtube,height:32},action:{type:URL,data:https://www.youtube.com/poiyomi},hover:YOUTUBE} +footer_twitter:={texture:{name:icon-twitter,height:32},action:{type:URL,data:https://twitter.com/poiyomi},hover:TWITTER} +footer_patreon:={texture:{name:icon-patreon,height:32},action:{type:URL,data:https://www.patreon.com/poiyomi},hover:PATREON} +footer_discord:={texture:{name:icon-discord,height:32},action:{type:URL,data:https://discord.gg/Ays52PY},hover:DISCORD} +footer_github:={texture:{name:icon-github,height:32},action:{type:URL,data:https://github.com/poiyomi/PoiyomiToonShader},hover:GITHUB}
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Shaders/7PlusLabels.txt.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Shaders/7PlusLabels.txt.meta new file mode 100644 index 00000000..4e848c2b --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Shaders/7PlusLabels.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d91e0db3d0441454e8f7d1d26d2ec2e4 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Shaders/S_Poiyomi_Toon.shader b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Shaders/S_Poiyomi_Toon.shader new file mode 100644 index 00000000..7f3c0710 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Shaders/S_Poiyomi_Toon.shader @@ -0,0 +1,1619 @@ +Shader ".poiyomi/• Poiyomi Toon •" +{ + Properties + { + [HideInInspector] shader_is_using_thry_editor ("", Float) = 0 + [HideInInspector] shader_master_label ("<color=#000000ff>Poiyomi Toon V7.1.60</color>", Float) = 0 + [HideInInspector] shader_presets ("poiToonPresets", Float) = 0 + [HideInInspector] shader_properties_label_file ("7PlusLabels", Float) = 0 + + [HideInInspector] footer_youtube ("youtube footer button", Float) = 0 + [HideInInspector] footer_twitter ("twitter footer button", Float) = 0 + [HideInInspector] footer_patreon ("patreon footer button", Float) = 0 + [HideInInspector] footer_discord ("discord footer button", Float) = 0 + [HideInInspector] footer_github ("github footer button", Float) = 0 + + // Keyword to remind users in the VRChat SDK that this material hasn't been locked. Inelegant but it works. + [HideInInspector] _ForgotToLockMaterial (";;YOU_FORGOT_TO_LOCK_THIS_MATERIAL;", Int) = 1 + [ThryShaderOptimizerLockButton] _ShaderOptimizerEnabled ("", Int) = 0 + [Helpbox(1)] _LockTooltip ("Animations don't work by default when locked in. Right click a property if you want to animate it. The shader will lock in automatically at upload time.", Int) = 0 + + [ThryWideEnum(Opaque, 0, Cutout, 1, TransClipping, 9, Fade, 2, Transparent, 3, Additive, 4, Soft Additive, 5, Multiplicative, 6, 2x Multiplicative, 7, Grab Pass (Pro Only), 8)]_Mode("Rendering Preset--{on_value_actions:[ + {value:0,actions:[{type:SET_PROPERTY,data:render_queue=2000}, {type:SET_PROPERTY,data:render_type=Opaque}, {type:SET_PROPERTY,data:_BlendOp=0}, {type:SET_PROPERTY,data:_BlendOpAlpha=0}, {type:SET_PROPERTY,data:_Cutoff=0}, {type:SET_PROPERTY,data:_SrcBlend=1}, {type:SET_PROPERTY,data:_DstBlend=0}, {type:SET_PROPERTY,data:_AlphaToMask=0}, {type:SET_PROPERTY,data:_ZWrite=1}, {type:SET_PROPERTY,data:_ZTest=4}, {type:SET_PROPERTY,data:_AlphaPremultiply=0}]}, + {value:1,actions:[{type:SET_PROPERTY,data:render_queue=2450}, {type:SET_PROPERTY,data:render_type=TransparentCutout}, {type:SET_PROPERTY,data:_BlendOp=0}, {type:SET_PROPERTY,data:_BlendOpAlpha=0}, {type:SET_PROPERTY,data:_Cutoff=.5}, {type:SET_PROPERTY,data:_SrcBlend=1}, {type:SET_PROPERTY,data:_DstBlend=0}, {type:SET_PROPERTY,data:_AlphaToMask=1}, {type:SET_PROPERTY,data:_ZWrite=1}, {type:SET_PROPERTY,data:_ZTest=4}, {type:SET_PROPERTY,data:_AlphaPremultiply=0}]}, + {value:9,actions:[{type:SET_PROPERTY,data:render_queue=2450}, {type:SET_PROPERTY,data:render_type=TransparentCutout}, {type:SET_PROPERTY,data:_BlendOp=0}, {type:SET_PROPERTY,data:_BlendOpAlpha=0}, {type:SET_PROPERTY,data:_Cutoff=0}, {type:SET_PROPERTY,data:_SrcBlend=5}, {type:SET_PROPERTY,data:_DstBlend=10}, {type:SET_PROPERTY,data:_AlphaToMask=0}, {type:SET_PROPERTY,data:_ZWrite=1}, {type:SET_PROPERTY,data:_ZTest=4}, {type:SET_PROPERTY,data:_AlphaPremultiply=0}]}, + {value:2,actions:[{type:SET_PROPERTY,data:render_queue=3000}, {type:SET_PROPERTY,data:render_type=Transparent}, {type:SET_PROPERTY,data:_BlendOp=0}, {type:SET_PROPERTY,data:_BlendOpAlpha=0}, {type:SET_PROPERTY,data:_Cutoff=0}, {type:SET_PROPERTY,data:_SrcBlend=5}, {type:SET_PROPERTY,data:_DstBlend=10}, {type:SET_PROPERTY,data:_AlphaToMask=0}, {type:SET_PROPERTY,data:_ZWrite=0}, {type:SET_PROPERTY,data:_ZTest=4}, {type:SET_PROPERTY,data:_AlphaPremultiply=0}]}, + {value:3,actions:[{type:SET_PROPERTY,data:render_queue=3000}, {type:SET_PROPERTY,data:render_type=Transparent}, {type:SET_PROPERTY,data:_BlendOp=0}, {type:SET_PROPERTY,data:_BlendOpAlpha=0}, {type:SET_PROPERTY,data:_Cutoff=0}, {type:SET_PROPERTY,data:_SrcBlend=1}, {type:SET_PROPERTY,data:_DstBlend=10}, {type:SET_PROPERTY,data:_AlphaToMask=0}, {type:SET_PROPERTY,data:_ZWrite=0}, {type:SET_PROPERTY,data:_ZTest=4}, {type:SET_PROPERTY,data:_AlphaPremultiply=1}]}, + {value:4,actions:[{type:SET_PROPERTY,data:render_queue=3000}, {type:SET_PROPERTY,data:render_type=Transparent}, {type:SET_PROPERTY,data:_BlendOp=0}, {type:SET_PROPERTY,data:_BlendOpAlpha=0}, {type:SET_PROPERTY,data:_Cutoff=0}, {type:SET_PROPERTY,data:_SrcBlend=1}, {type:SET_PROPERTY,data:_DstBlend=1}, {type:SET_PROPERTY,data:_AlphaToMask=0}, {type:SET_PROPERTY,data:_ZWrite=0}, {type:SET_PROPERTY,data:_ZTest=4}, {type:SET_PROPERTY,data:_AlphaPremultiply=0}]}, + {value:5,actions:[{type:SET_PROPERTY,data:render_queue=3000}, {type:SET_PROPERTY,data:RenderType=Transparent}, {type:SET_PROPERTY,data:_BlendOp=0}, {type:SET_PROPERTY,data:_BlendOpAlpha=0}, {type:SET_PROPERTY,data:_Cutoff=0}, {type:SET_PROPERTY,data:_SrcBlend=4}, {type:SET_PROPERTY,data:_DstBlend=1}, {type:SET_PROPERTY,data:_AlphaToMask=0}, {type:SET_PROPERTY,data:_ZWrite=0}, {type:SET_PROPERTY,data:_ZTest=4}, {type:SET_PROPERTY,data:_AlphaPremultiply=0}]}, + {value:6,actions:[{type:SET_PROPERTY,data:render_queue=3000}, {type:SET_PROPERTY,data:render_type=Transparent}, {type:SET_PROPERTY,data:_BlendOp=0}, {type:SET_PROPERTY,data:_BlendOpAlpha=0}, {type:SET_PROPERTY,data:_Cutoff=0}, {type:SET_PROPERTY,data:_SrcBlend=2}, {type:SET_PROPERTY,data:_DstBlend=0}, {type:SET_PROPERTY,data:_AlphaToMask=0}, {type:SET_PROPERTY,data:_ZWrite=0}, {type:SET_PROPERTY,data:_ZTest=4}, {type:SET_PROPERTY,data:_AlphaPremultiply=0}]}, + {value:7,actions:[{type:SET_PROPERTY,data:render_queue=3000}, {type:SET_PROPERTY,data:render_type=Transparent}, {type:SET_PROPERTY,data:_BlendOp=0}, {type:SET_PROPERTY,data:_BlendOpAlpha=0}, {type:SET_PROPERTY,data:_Cutoff=0}, {type:SET_PROPERTY,data:_SrcBlend=2}, {type:SET_PROPERTY,data:_DstBlend=3}, {type:SET_PROPERTY,data:_AlphaToMask=0}, {type:SET_PROPERTY,data:_ZWrite=0}, {type:SET_PROPERTY,data:_ZTest=4}, {type:SET_PROPERTY,data:_AlphaPremultiply=0}]} + }]}]}", Int) = 0 + + // Main + [HideInInspector] m_mainOptions ("Main", Float) = 0 + _Color ("Color & Alpha", Color) = (1, 1, 1, 1) + _MainTex ("Texture", 2D) = "white" { } + [HideInInspector][Vector2]_MainTexPan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _MainTextureUV ("UV", Int) = 0 + _MainEmissionStrength ("Basic Emission", Range(0, 20)) = 0 + [Normal]_BumpMap ("Normal Map", 2D) = "bump" { } + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _BumpMapUV ("UV", Int) = 0 + [HideInInspector][Vector2]_BumpMapPan ("Panning", Vector) = (0, 0, 0, 0) + _BumpScale ("Normal Intensity", Range(0, 10)) = 1 + _ClippingMask ("Alpha Map--{reference_properties:[_ClippingMaskPan, _ClippingMaskUV, _Inverse_Clipping]}", 2D) = "white" { } + [HideInInspector][Vector2]_ClippingMaskPan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _ClippingMaskUV ("UV", Int) = 0 + [ToggleUI]_Inverse_Clipping ("Invert", Float) = 0 + + //Hue Shifting + [HideInInspector] m_start_MainHueShift ("Color Adjust", Float) = 0 + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _MainColorAdjustTextureUV ("UV", Int) = 0 + [ToggleUI]_MainHueShiftReplace ("Hue Replace?", Float) = 1 + _MainHueShift ("Hue Shift", Range(0, 1)) = 0 + _MainHueShiftSpeed ("Hue Shift Speed", Float) = 0 + _Saturation ("Saturation", Range(-1, 10)) = 0 + _MainBrightness("Brightness", Range(-1,1)) = 0 + [HideInInspector][ThryToggle(COLOR_GRADING_HDR)]_MainHueShiftToggle ("Toggle Hueshift", Float) = 0 + _MainColorAdjustTexture ("Mask R(H) G(S) B(B)--{reference_properties:[_MainColorAdjustTexturePan, _MainColorAdjustTextureUV]}", 2D) = "white" { } + [HideInInspector][Vector2]_MainColorAdjustTexturePan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector] m_end_MainHueShift ("Hue Shift", Float) = 0 + + // RGB Masking + [HideInInspector] m_start_RGBMask ("RGB Color Masking", Float) = 0 + [HideInInspector][ThryToggle(VIGNETTE)]_RGBMaskEnabled ("RGB Mask Enabled", Float) = 0 + [ToggleUI]_RGBUseVertexColors ("Use Vertex Colors", Float) = 0 + [ToggleUI]_RGBBlendMultiplicative ("Multiplicative?", Float) = 0 + _RGBMask ("Mask", 2D) = "white" { } + [HideInInspector][Vector2]_RGBMaskPanning ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)]_RGBMaskUV ("UV", int) = 0 + _RedColor ("R Color", Color) = (1, 1, 1, 1) + _RedTexure ("R Texture", 2D) = "white" { } + [HideInInspector][Vector2]_RGBRedPanning ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)]_RGBRed_UV ("UV", int) = 0 + _GreenColor ("G Color", Color) = (1, 1, 1, 1) + _GreenTexture ("G Texture", 2D) = "white" { } + [HideInInspector][Vector2]_RGBGreenPanning ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)]_RGBGreen_UV ("UV", int) = 0 + _BlueColor ("B Color", Color) = (1, 1, 1, 1) + _BlueTexture ("B Texture", 2D) = "white" { } + [HideInInspector][Vector2]_RGBBluePanning ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)]_RGBBlue_UV ("UV", int) = 0 + + // RGB MASKED NORMALS + [ThryToggle(GEOM_TYPE_MESH)]_RgbNormalsEnabled ("Enable Normals", Float) = 0 + [ToggleUI]_RGBNormalBlend ("Blend with Base--{condition_show:{type:PROPERTY_BOOL,data:_RgbNormalsEnabled==1}}", Float) = 0 + [Normal]_RgbNormalR ("R Normal--{reference_properties:[_RgbNormalRPan, _RgbNormalRUV],condition_show:{type:PROPERTY_BOOL,data:_RgbNormalsEnabled==1}}", 2D) = "bump" { } + [HideInInspector]_RgbNormalRPan ("Pan", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)]_RgbNormalRUV ("UV", int) = 0 + _RgbNormalRScale ("Intensity--{condition_show:{type:PROPERTY_BOOL,data:_RgbNormalsEnabled==1}}", Range(0,10)) = 0 + [Normal]_RgbNormalG ("G Normal--{reference_properties:[_RgbNormalGPan, _RgbNormalGUV],condition_show:{type:PROPERTY_BOOL,data:_RgbNormalsEnabled==1}}", 2D) = "bump" { } + [HideInInspector]_RgbNormalGPan ("Pan", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)]_RgbNormalGUV ("UV", int) = 0 + _RgbNormalGScale ("Intensity--{condition_show:{type:PROPERTY_BOOL,data:_RgbNormalsEnabled==1}}", Range(0,10)) = 0 + [Normal]_RgbNormalB ("B Normal--{reference_properties:[_RgbNormalBPan, _RgbNormalBUV],condition_show:{type:PROPERTY_BOOL,data:_RgbNormalsEnabled==1}}", 2D) = "bump" { } + [HideInInspector]_RgbNormalBPan ("Pan", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)]_RgbNormalBUV ("UV", int) = 0 + _RgbNormalBScale ("Intensity--{condition_show:{type:PROPERTY_BOOL,data:_RgbNormalsEnabled==1}}", Range(0,10)) = 0 + [HideInInspector] m_end_RGBMask ("RGB Color Masking", Float) = 0 + + // Detail Options + [HideInInspector] m_start_DetailOptions ("Details--{reference_property:_DetailEnabled, button_right:{text:Tutorial,action:{type:URL,data:https://www.youtube.com/watch?v=9oIcQln9of4&list=PL4_Gy3VRJSmbXfQSldzUiChgABQsoBlLw},hover:YouTube},is_hideable:true}", Float) = 0 + [HideInInspector][ThryToggle(FINALPASS)]_DetailEnabled ("Enable", Float) = 0 + _DetailMask ("Detail Mask (R:Texture, G:Normal)", 2D) = "white" { } + [HideInInspector][Vector2]_DetailMaskPan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _DetailMaskUV ("UV", Int) = 0 + _DetailTint ("Detail Texture Tint", Color) = (1, 1, 1) + _DetailTex ("Detail Texture", 2D) = "gray" { } + [HideInInspector][Vector2]_DetailTexPan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _DetailTexUV ("UV", Int) = 0 + _DetailTexIntensity ("Detail Tex Intensity", Range(0, 10)) = 1 + _DetailBrightness ("Detail Brightness:", Range(0, 2)) = 1 + [Normal]_DetailNormalMap ("Detail Normal", 2D) = "bump" { } + _DetailNormalMapScale ("Detail Normal Intensity", Range(0, 10)) = 1 + [HideInInspector][Vector2]_DetailNormalMapPan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _DetailNormalMapUV ("UV", Int) = 0 + [HideInInspector] m_end_DetailOptions ("Details", Float) = 0 + + // Vertex Colors + [HideInInspector] m_start_MainVertexColors ("Vertex Colors", Float) = 0 + _MainVertexColoring ("Use Vertex Color", Range(0, 1)) = 0 + _MainUseVertexColorAlpha ("Use Vertex Color Alpha", Range(0, 1)) = 0 + [HideInInspector] m_end_MainVertexColors ("Vertex Colors", Float) = 0 + + //Vertex Manipulations + [HideInInspector] m_start_vertexManipulation ("Vertex Offset--{reference_property:_VertexManipulationsEnabled, button_right:{text:Tutorial,action:{type:URL,data:https://www.youtube.com/watch?v=x728WN50JeA&list=PL4_Gy3VRJSmbXfQSldzUiChgABQsoBlLw},hover:YouTube},is_hideable:true}", Float) = 0 + [HideInInspector][ThryToggle(AUTO_EXPOSURE)]_VertexManipulationsEnabled ("Enabled", Float) = 0 + [Vector3]_VertexManipulationLocalTranslation ("Local Translation", Vector) = (0, 0, 0, 1) + [Vector3]_VertexManipulationLocalRotation ("Local Rotation", Vector) = (0, 0, 0, 1) + [Vector3]_VertexManipulationLocalScale ("Local Scale", Vector) = (1, 1, 1, 1) + [Vector3]_VertexManipulationWorldTranslation ("World Translation", Vector) = (0, 0, 0, 1) + _VertexManipulationHeight ("Vertex Height", Float) = 0 + _VertexManipulationHeightMask ("Height Map", 2D) = "white" { } + [HideInInspector][Vector2]_VertexManipulationHeightPan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3)] _VertexManipulationHeightUV ("UV", Int) = 0 + _VertexManipulationHeightBias ("Mask Bias", Range(0, 1)) = 0 + [ToggleUI]_VertexRoundingEnabled ("Rounding Enabled", Float) = 0 + _VertexRoundingDivision ("Division Amount", Float) = 500 + [HideInInspector] m_end_vertexManipulation ("Vertex Offset", Float) = 0 + + // Alpha Options + [HideInInspector] m_start_Alpha ("Alpha Options", Float) = 0 + _Cutoff ("Alpha Cuttoff", Range(0, 1.001)) = 0.5 + [ToggleUI]_DitheringEnabled ("Enable Dithering", Float) = 0 + _DitherGradient ("Dither Gradient", Range(0, 1)) = .1 + [ToggleUI]_ForceOpaque ("Force Opaque", Float) = 0 + _MainShadowClipMod ("Shadow Clip Mod", Range(-1, 1)) = 0 + [Enum(Off, 0, On, 1)] _AlphaToMask ("Alpha To Coverage", Float) = 0 + [ToggleUI]_MainAlphaToCoverage ("Sharpenned A2C--{condition_show:{type:PROPERTY_BOOL,data:_AlphaToMask==1}}", Float) = 0 + _MainMipScale ("Mip Level Alpha Scale--{condition_show:{type:PROPERTY_BOOL,data:_AlphaToMask==1}}", Range(0, 1)) = 0.25 + [ToggleUI]_AlphaPremultiply ("Alpha Premultiply", Float) = 0 + _AlphaMod ("Alpha Mod", Range(-1, 1)) = 0.0 + [HideInInspector] m_end_Alpha ("Alpha Options", Float) = 0 + + // Decal Texture + [HideInInspector] m_start_DecalSection ("Decals--{button_right:{text:Tutorial,action:{type:URL,data:https://www.youtube.com/watch?v=xHoQVN_F7JE&list=PL4_Gy3VRJSmbXfQSldzUiChgABQsoBlLw},hover:YouTube},reference_property:_DecalEnabled,is_hideable:true}", Float) = 0 + _DecalMask ("Decal RGBA Mask--{reference_properties:[_DecalMaskPan, _DecalMaskUV]}", 2D) = "white" { } + [HideInInspector][Vector2]_DecalMaskPan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _DecalMaskUV ("UV", Int) = 0 + // Decal 0 + [HideInInspector] m_start_Decal0 ("Decal 0", Float) = 0 + [HideInInspector][ThryToggle(GEOM_TYPE_BRANCH)]_DecalEnabled ("Enable", Float) = 0 + _DecalColor ("Color", Color) = (1, 1, 1, 1) + _DecalEmissionStrength ("Emission Strength", Range(0, 20)) = 0 + _DecalTexture ("Decal--{reference_properties:[_DecalTexturePan, _DecalTextureUV]}", 2D) = "white" { } + [HideInInspector][Vector2]_DecalTexturePan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _DecalTextureUV ("UV", Int) = 0 + [ToggleUI]_DecalTiled ("Tiled?", Float) = 0 + [Vector2]_DecalScale ("Scale", Vector) = (1, 1, 0, 0) + [Vector2]_DecalPosition ("Position", Vector) = (.5, .5, 0, 0) + _DecalRotation ("Rotation", Range(0, 360)) = 0 + _DecalRotationSpeed ("Rotation Speed", Float) = 0 + [ThryWideEnum(Replace, 0, Darken, 1, Multiply, 2, Color Burn, 3, Linear Burn, 4, Lighten, 5, Screen, 6, Color Dodge, 7, Linear Dodge (Add), 8, Overlay, 9, Soft Lighten, 10, Hard Light, 11, Vivid Light, 12, Linear Light, 13, Pin Light, 14, Hard Mix, 15, Difference, 16, Exclusion, 17, Subtract, 18, Divide, 19)]_DecalBlendType ("Blending", Range(0, 1)) = 0 + _DecalBlendAlpha("Alpha", Range(0,1)) = 1 + [ToggleUI]_DecalHueShiftEnabled ("Hue Shift Enabled", Float) = 0 + _DecalHueShiftSpeed ("Shift Speed", Float) = 0 + _DecalHueShift ("Hue Shift", Range(0,1)) = 0 + [HideInInspector] m_end_Decal0 ("Decal 0", Float) = 0 + // Decal 1 + //"GEOM_TYPE_FROND" + //"DEPTH_OF_FIELD_COC_VIEW" + [HideInInspector] m_start_Decal1 ("Decal 1--{reference_property:_DecalEnabled1}", Float) = 0 + [HideInInspector][ThryToggle(GEOM_TYPE_BRANCH_DETAIL)]_DecalEnabled1 ("Enable", Float) = 0 + _DecalColor1 ("Color", Color) = (1, 1, 1, 1) + _DecalEmissionStrength1 ("Emission Strength", Range(0, 20)) = 0 + _DecalTexture1 ("Decal--{reference_properties:[_DecalTexture1Pan, _DecalTexture1UV]}", 2D) = "white" { } + [HideInInspector][Vector2]_DecalTexture1Pan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _DecalTexture1UV ("UV", Int) = 0 + [ToggleUI]_DecalTiled1 ("Tiled?", Float) = 0 + [Vector2]_DecalScale1 ("Scale", Vector) = (1, 1, 0, 0) + [Vector2]_DecalPosition1 ("Position", Vector) = (.5, .5, 0, 0) + _DecalRotation1 ("Rotation", Range(0, 360)) = 0 + _DecalRotationSpeed1 ("Rotation Speed", Float) = 0 + [ThryWideEnum(Replace, 0, Darken, 1, Multiply, 2, Color Burn, 3, Linear Burn, 4, Lighten, 5, Screen, 6, Color Dodge, 7, Linear Dodge (Add), 8, Overlay, 9, Soft Lighten, 10, Hard Light, 11, Vivid Light, 12, Linear Light, 13, Pin Light, 14, Hard Mix, 15, Difference, 16, Exclusion, 17, Subtract, 18, Divide, 19)]_DecalBlendType1 ("Blending", Range(0, 1)) = 0 + _DecalBlendAlpha1("Alpha", Range(0,1)) = 1 + [ToggleUI]_DecalHueShiftEnabled1 ("Hue Shift Enabled", Float) = 0 + _DecalHueShiftSpeed1 ("Shift Speed", Float) = 0 + _DecalHueShift1 ("Hue Shift", Range(0,1)) = 0 + [HideInInspector] m_end_Decal1 ("Decal 0", Float) = 0 + // Decal 2 + [HideInInspector] m_start_Decal2 ("Decal 2--{reference_property:_DecalEnabled2}", Float) = 0 + [HideInInspector][ThryToggle(GEOM_TYPE_FROND)]_DecalEnabled2 ("Enable", Float) = 0 + _DecalColor2 ("Color", Color) = (1, 1, 1, 1) + _DecalEmissionStrength2 ("Emission Strength", Range(0, 20)) = 0 + _DecalTexture2 ("Decal--{reference_properties:[_DecalTexture2Pan, _DecalTexture2UV]}", 2D) = "white" { } + [HideInInspector][Vector2]_DecalTexture2Pan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _DecalTexture2UV ("UV", Int) = 0 + [ToggleUI]_DecalTiled2 ("Tiled?", Float) = 0 + [Vector2]_DecalScale2 ("Scale", Vector) = (1, 1, 0, 0) + [Vector2]_DecalPosition2 ("Position", Vector) = (.5, .5, 0, 0) + _DecalRotation2 ("Rotation", Range(0, 360)) = 0 + _DecalRotationSpeed2 ("Rotation Speed", Float) = 0 + [ThryWideEnum(Replace, 0, Darken, 1, Multiply, 2, Color Burn, 3, Linear Burn, 4, Lighten, 5, Screen, 6, Color Dodge, 7, Linear Dodge (Add), 8, Overlay, 9, Soft Lighten, 10, Hard Light, 11, Vivid Light, 12, Linear Light, 13, Pin Light, 14, Hard Mix, 15, Difference, 16, Exclusion, 17, Subtract, 18, Divide, 19)]_DecalBlendType2 ("Blending", Range(0, 1)) = 0 + _DecalBlendAlpha2("Alpha", Range(0,1)) = 1 + [ToggleUI]_DecalHueShiftEnabled2 ("Hue Shift Enabled", Float) = 0 + _DecalHueShiftSpeed2 ("Shift Speed", Float) = 0 + _DecalHueShift2 ("Hue Shift", Range(0,1)) = 0 + [HideInInspector] m_end_Decal2 ("Decal 0", Float) = 0 + // Decal 3 + [HideInInspector] m_start_Decal3 ("Decal 3--{reference_property:_DecalEnabled3}", Float) = 0 + [HideInInspector][ThryToggle(DEPTH_OF_FIELD_COC_VIEW)]_DecalEnabled3 ("Enable", Float) = 0 + _DecalColor3 ("Color", Color) = (1, 1, 1, 1) + _DecalEmissionStrength3 ("Emission Strength", Range(0, 20)) = 0 + _DecalTexture3 ("Decal--{reference_properties:[_DecalTexture3Pan, _DecalTexture3UV]}", 2D) = "white" { } + [HideInInspector][Vector2]_DecalTexture3Pan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _DecalTexture3UV ("UV", Int) = 0 + [ToggleUI]_DecalTiled3 ("Tiled?", Float) = 0 + [Vector2]_DecalScale3 ("Scale", Vector) = (1, 1, 0, 0) + [Vector2]_DecalPosition3 ("Position", Vector) = (.5, .5, 0, 0) + _DecalRotation3 ("Rotation", Range(0, 360)) = 0 + _DecalRotationSpeed3 ("Rotation Speed", Float) = 0 + [ThryWideEnum(Replace, 0, Darken, 1, Multiply, 2, Color Burn, 3, Linear Burn, 4, Lighten, 5, Screen, 6, Color Dodge, 7, Linear Dodge (Add), 8, Overlay, 9, Soft Lighten, 10, Hard Light, 11, Vivid Light, 12, Linear Light, 13, Pin Light, 14, Hard Mix, 15, Difference, 16, Exclusion, 17, Subtract, 18, Divide, 19)]_DecalBlendType3 ("Blending", Range(0, 1)) = 0 + _DecalBlendAlpha3("Alpha", Range(0,1)) = 1 + [ToggleUI]_DecalHueShiftEnabled3 ("Hue Shift Enabled", Float) = 0 + _DecalHueShiftSpeed3 ("Shift Speed", Float) = 0 + _DecalHueShift3 ("Hue Shift", Range(0,1)) = 0 + [HideInInspector] m_end_Decal3 ("Decal 0", Float) = 0 + [HideInInspector] m_end_DecalSection ("Decal", Float) = 0 + + // Back Face Textures and Emission + [HideInInspector] m_start_backFace ("Back Face", Float) = 0 + [ToggleUI]_BackFaceEnabled ("Enable Back Face Options", Float) = 0 + _BackFaceColor ("Color", Color) = (1, 1, 1, 1) + _BackFaceTexture ("Texture", 2D) = "white" { } + [HideInInspector][Vector2]_BackFacePanning ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)]_BackFaceTextureUV ("UV#", Int) = 0 + _BackFaceDetailIntensity ("Detail Intensity", Range(0, 5)) = 1 + _BackFaceHueShift ("Hue Shift", Range(0, 1)) = 0 + _BackFaceEmissionStrength ("Emission Strength", Range(0, 20)) = 0 + [HideInInspector] m_end_backFace ("Back Face", Float) = 0 + + // Lighting + [HideInInspector] m_lightingOptions ("Lighting", Float) = 0 + [HideInInspector] m_start_Lighting ("Light and Shadow", Float) = 0 + [Toggle(VIGNETTE_MASKED)]_EnableLighting ("Enable Lighting", Float) = 1 + [Enum(Toon, 0, Realistic, 1, Flat, 4)] _LightingMode ("Lighting Type", Int) = 4 + _LightingStandardSmoothness ("Smoothness--{condition_show:{type:PROPERTY_BOOL,data:_LightingMode==1}}", Range(0, 1)) = 0 + _LightingWrappedWrap ("Wrap--{condition_show:{type:PROPERTY_BOOL,data:_LightingMode==2}}", Range(0, 2)) = 0 + _LightingWrappedNormalization ("Normalization--{condition_show:{type:PROPERTY_BOOL,data:_LightingMode==2}}", Range(0, 1)) = 0 + [Enum(Ramp Texture, 0, Math Gradient, 1, Shade Mapping, 2)] _LightingRampType ("Ramp Type--{condition_show:{type:OR,condition1:{type:PROPERTY_BOOL,data:_LightingMode==0},condition2:{type:PROPERTY_BOOL,data:_LightingMode==2}}}}", Int) = 0 + + // Shade Maps + _1st_ShadeColor ("1st ShadeColor--{condition_show:{type:AND,condition1:{type:PROPERTY_BOOL,data:_LightingMode==0},condition2:{type:PROPERTY_BOOL,data:_LightingRampType==2}}}", Color) = (1,1,1,1) + _1st_ShadeMap ("1st ShadeMap--{reference_properties:[_1st_ShadeMapPan, _1st_ShadeMapUV, _Use_1stShadeMapAlpha_As_ShadowMask, _1stShadeMapMask_Inverse],condition_show:{type:AND,condition1:{type:PROPERTY_BOOL,data:_LightingMode==0},condition2:{type:PROPERTY_BOOL,data:_LightingRampType==2}}}", 2D) = "white" {} + [HideInInspector][Vector2]_1st_ShadeMapPan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _1st_ShadeMapUV ("UV", Int) = 0 + [HideInInspector][ToggleUI]_Use_1stShadeMapAlpha_As_ShadowMask("1st ShadeMap.a As ShadowMask", Float ) = 0 + [HideInInspector][ToggleUI]_1stShadeMapMask_Inverse("1st ShadeMapMask Inverse", Float ) = 0 + [ToggleUI] _Use_BaseAs1st ("Use BaseMap as 1st ShadeMap--{condition_show:{type:AND,condition1:{type:PROPERTY_BOOL,data:_LightingMode==0},condition2:{type:PROPERTY_BOOL,data:_LightingRampType==2}}}}", Float ) = 0 + _2nd_ShadeColor ("2nd ShadeColor--{condition_show:{type:AND,condition1:{type:PROPERTY_BOOL,data:_LightingMode==0},condition2:{type:PROPERTY_BOOL,data:_LightingRampType==2}}}", Color) = (1,1,1,1) + _2nd_ShadeMap ("2nd ShadeMap--{reference_properties:[_2nd_ShadeMapPan, _2nd_ShadeMapUV, _Use_2ndShadeMapAlpha_As_ShadowMask, _2ndShadeMapMask_Inverse],condition_show:{type:AND,condition1:{type:PROPERTY_BOOL,data:_LightingMode==0},condition2:{type:PROPERTY_BOOL,data:_LightingRampType==2}}}", 2D) = "white" {} + [HideInInspector][Vector2]_2nd_ShadeMapPan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _2nd_ShadeMapUV ("UV", Int) = 0 + [HideInInspector][ToggleUI]_Use_2ndShadeMapAlpha_As_ShadowMask("2nd ShadeMap.a As ShadowMask", Float ) = 0 + [HideInInspector][ToggleUI]_2ndShadeMapMask_Inverse("2nd ShadeMapMask Inverse", Float ) = 0 + [ToggleUI] _Use_1stAs2nd ("Use 1st ShadeMap as 2nd_ShadeMap--{condition_show:{type:AND,condition1:{type:PROPERTY_BOOL,data:_LightingMode==0},condition2:{type:PROPERTY_BOOL,data:_LightingRampType==2}}}", Float ) = 0 + _BaseColor_Step ("BaseColor_Step--{condition_show:{type:AND,condition1:{type:PROPERTY_BOOL,data:_LightingMode==0},condition2:{type:PROPERTY_BOOL,data:_LightingRampType==2}}}", Range(0.01, 1)) = 0.5 + _BaseShade_Feather ("Base/Shade_Feather--{condition_show:{type:AND,condition1:{type:PROPERTY_BOOL,data:_LightingMode==0},condition2:{type:PROPERTY_BOOL,data:_LightingRampType==2}}}", Range(0.0001, 1)) = 0.0001 + _ShadeColor_Step ("ShadeColor_Step--{condition_show:{type:AND,condition1:{type:PROPERTY_BOOL,data:_LightingMode==0},condition2:{type:PROPERTY_BOOL,data:_LightingRampType==2}}}", Range(0.01, 1)) = 0 + _1st2nd_Shades_Feather ("1st/2nd_Shades_Feather--{condition_show:{type:AND,condition1:{type:PROPERTY_BOOL,data:_LightingMode==0},condition2:{type:PROPERTY_BOOL,data:_LightingRampType==2}}}", Range(0.0001, 1)) = 0.0001 + + // Ramp + [Gradient]_ToonRamp ("Lighting Ramp--{texture:{width:512,height:4,filterMode:Bilinear,wrapMode:Clamp},force_texture_options:true,condition_show:{type:AND,condition1:{type:OR,condition1:{type:PROPERTY_BOOL,data:_LightingMode==0},condition2:{type:PROPERTY_BOOL,data:_LightingMode==2}},condition2:{type:PROPERTY_BOOL,data:_LightingRampType==0}}}", 2D) = "white" { } + _LightingShadowMask ("Ramp Mask--{reference_properties:[_LightingShadowMaskPan, _LightingShadowMaskUV],condition_show:{type:OR,condition1:{type:PROPERTY_BOOL,data:_LightingMode==0},condition2:{type:PROPERTY_BOOL,data:_LightingMode==2}}}", 2D) = "white" { } + [HideInInspector][Vector2]_LightingShadowMaskPan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _LightingShadowMaskUV ("UV", Int) = 0 + _ShadowOffset ("Ramp Offset--{condition_show:{type:AND,condition1:{type:OR,condition1:{type:PROPERTY_BOOL,data:_LightingMode==0},condition2:{type:PROPERTY_BOOL,data:_LightingMode==2}},condition2:{type:PROPERTY_BOOL,data:_LightingRampType==0}}}}", Range(-1, 1)) = 0 + //Math + _LightingGradientStart ("Gradient Start--{condition_show:{type:AND,condition1:{type:OR,condition1:{type:PROPERTY_BOOL,data:_LightingMode==0},condition2:{type:PROPERTY_BOOL,data:_LightingMode==2}},condition2:{type:PROPERTY_BOOL,data:_LightingRampType==1}}}", Range(0, 1)) = 0 + _LightingGradientEnd ("Gradient End--{condition_show:{type:AND,condition1:{type:OR,condition1:{type:PROPERTY_BOOL,data:_LightingMode==0},condition2:{type:PROPERTY_BOOL,data:_LightingMode==2}},condition2:{type:PROPERTY_BOOL,data:_LightingRampType==1}}}", Range(0, 1)) = .5 + // Skin + _SkinLUT ("LUT--{condition_show:{type:PROPERTY_BOOL,data:_LightingMode==3}}", 2D) = "white" {} + _SssWeight ("Weight--{condition_show:{type:PROPERTY_BOOL,data:_LightingMode==3}}", Range(0,1)) = 1 + //_SssMaskCutoff ("Mask Cutoff--{condition_show:{type:PROPERTY_BOOL,data:_LightingMode==3}}", Range(0.01,1)) = 0.1 + _SssBias ("Bias--{condition_show:{type:PROPERTY_BOOL,data:_LightingMode==3}}", Range(0,1)) = 0 + _SssScale ("Scale--{condition_show:{type:PROPERTY_BOOL,data:_LightingMode==3}}", Range(0,1)) = 1 + _SssBumpBlur ("Bump Blur--{condition_show:{type:PROPERTY_BOOL,data:_LightingMode==3}}", Range(0,1)) = 0.7 + [Vector3]_SssTransmissionAbsorption ("Absorption--{condition_show:{type:PROPERTY_BOOL,data:_LightingMode==3}}", Vector) = (-8,-40,-64,0) + [Vector3]_SssColorBleedAoWeights ("AO Color Bleed--{condition_show:{type:PROPERTY_BOOL,data:_LightingMode==3}}", Vector) = (0.4,0.15,0.13,0) + _LightingShadowColor ("Shadow Tint--{reference_property:_LightingDetailShadowsEnabled, condition_showS:(_LightingMode==0&&_LightingRampType!=2)||_LightingMode==2||_LightingMode==3}", Color) = (1, 1, 1, 1) + _ShadowStrength ("Shadow Strength--{condition_showS:(_LightingMode==0&&_LightingRampType!=2)||_LightingMode==2||_LightingMode==3}", Range(0, 1)) = 1 + _AttenuationMultiplier ("Unity Shadows--{condition_show:{type:PROPERTY_BOOL,data:_LightingMode!=4}}", Range(0, 1)) = 0 + [ToggleUI]_LightingIgnoreAmbientColor ("Ignore Ambient Color--{condition_show:{type:AND,condition1:{type:PROPERTY_BOOL,data:_LightingMode!=4},condition2:{type:PROPERTY_BOOL,data:_LightingMode!=1}}}", Float) = 0 + //_LightingShadowMap ("Shadow Color(RGB) and wrap(A)--{reference_properties:[_LightingShadowMapPan, _LightingShadowMapUV],condition_show:{type:PROPERTY_BOOL,data:_LightingMode==2}}}", 2D) = "white" { } + //[HideInInspector][Vector2]_LightingShadowMapPan ("Panning", Vector) = (0, 0, 0, 0) + //[HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _LightingShadowMapUV ("UV", Int) = 0 + + [HideInInspector] m_start_lightingModifiers ("Lighting Modifiers", Float) = 0 + [Enum(Poi Custom, 0, Correct, 1)] _LightingDirectColorMode ("Direct Light Color", Int) = 0 + [ToggleUI]_LightingIndirectColorMode ("Indirect Uses Normals", Float) = 0 + [ToggleUI]_LightingUncapped ("Uncapped Lighting", Float) = 0 + [ToggleUI]_LightingOnlyUnityShadows ("Only Unity Shadows", Float) = 0 + _LightingMonochromatic ("Monochromatic Lighting?", Range(0,1)) = 0 + _LightingMinLightBrightness ("Min Brightness", Range(0, 1)) = 0 + _LightingMinShadowBrightnessRatio ("Shadow:Light min Ratio", Range(0, 1)) = 0 + [HideInInspector] m_end_lightingModifiers ("Lighting Modifiers", Float) = 0 + + [HideInInspector] m_start_detailShadows ("Detail Shadows--{reference_property:_LightingDetailShadowsEnabled, condition_show:{type:PROPERTY_BOOL,data:_LightingMode!=4}}", Float) = 0 + [HideInInspector][ToggleUI]_LightingDetailShadowsEnabled ("Enabled Detail Shadows?", Float) = 0 + _LightingDetailShadows ("Detail Shadows--{reference_properties:[_LightingDetailShadowsPan, _LightingDetailShadowsUV]}", 2D) = "white" { } + [HideInInspector][Vector2]_LightingDetailShadowsPan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _LightingDetailShadowsUV ("UV", Int) = 0 + _LightingDetailStrength ("Detail Strength", Range(0, 1)) = 1 + [HideInInspector] m_end_detailShadows ("Detail Shadows", Float) = 0 + + [HideInInspector] m_start_ambientOcclusion ("Ambient Occlusion--{reference_property:_LightingEnableAO}", Float) = 0 + [HideInInspector][ToggleUI]_LightingEnableAO ("Enable AO", Float) = 0 + _LightingAOTex ("AO Map", 2D) = "white" { } + [HideInInspector][Vector2]_LightingAOTexPan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _LightingAOTexUV ("UV", Int) = 0 + _AOStrength ("AO Strength", Range(0, 1)) = 1 + [HideInInspector] m_end_ambientOcclusion ("Ambient Occlusion", Float) = 0 + + // HSL Lighting + [HideInInspector] m_start_lightingHSL ("HSL Lighting--{reference_property:_LightingEnableHSL, condition_show:{type:PROPERTY_BOOL,data:_LightingMode==0}}", Float) = 0 + [HideInInspector][ToggleUI]_LightingEnableHSL ("Enabled HSL Lighting", Float) = 0 + _LightingHSLIntensity ("Shadow HSL Intensity", Range(0, 1)) = 1 + _LightingShadowHue ("Shadow Hue Change", Range(0, 1)) = 0.5 + _LightingShadowSaturation ("Shadow Saturation Change", Range(0, 1)) = 0.5 + _LightingShadowLightness ("Shadow Lightness Change", Range(0, 1)) = 0.5 + [HideInInspector] m_end_lightingHSL ("HSL Lighting", Float) = 0 + + // point/spot Light Settings + [HideInInspector] m_start_lightingAdvanced ("Additive Lighting (Point/Spot)--{reference_property:_commentIfZero_LightingAdditiveEnable,button_right:{text:Tutorial,action:{type:URL,data:https://www.youtube.com/watch?v=at3p5yRRVU0&list=PL4_Gy3VRJSmbXfQSldzUiChgABQsoBlLw&index=12},hover:YouTube}}", Float) = 0 + [HideInInspector][ToggleUI]_commentIfZero_LightingAdditiveEnable ("Enable Additive", Float) = 1 + [Enum(Realistic, 0, Toon, 1, Wrapped, 2)] _LightingAdditiveType ("Lighting Type", Int) = 1 + _LightingAdditiveGradientStart ("Gradient Start", Range(0, 1)) = 0 + _LightingAdditiveGradientEnd ("Gradient End", Range(0, 1)) = .5 + _LightingAdditivePassthrough ("Point Light Passthrough", Range(0, 1)) = .5 + _LightingAdditiveDetailStrength ("Detail Shadow Strength", Range(0, 1)) = 1 + [ToggleUI]_LightingAdditiveLimitIntensity ("Limit Intensity", Float) = 0 + _LightingAdditiveMaxIntensity ("Max Intensity--{condition_show:{type:PROPERTY_BOOL,data:_LightingAdditiveLimitIntensity==1}}", Range(0, 3)) = 1 + [Toggle(_SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A)]_DisableDirectionalInAdd ("No Directional", Float) = 1 + [ThryToggle(_SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A)]_DisableDirectionalInAdd ("No Directional", Float) = 1 + [HideInInspector] m_end_lightingAdvanced ("Additive Lighting", Float) = 0 + [HideInInspector] m_end_Lighting ("Light and Shadow", Float) = 0 + + // Subsurface Scattering + [HideInInspector] m_start_subsurface ("Subsurface Scattering", Float) = 0 + [ThryToggle(_TERRAIN_NORMAL_MAP)]_EnableSSS ("Enable Subsurface Scattering", Float) = 0 + _SSSColor ("Subsurface Color", Color) = (1, 0, 0, 1) + _SSSThicknessMap ("Thickness Map", 2D) = "black" { } + [HideInInspector][Vector2]_SSSThicknessMapPan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _SSSThicknessMapUV ("UV", Int) = 0 + _SSSThicknessMod ("Thickness mod", Range(-1, 1)) = 0 + _SSSSCale ("Light Strength", Range(0, 1)) = 0.25 + _SSSPower ("Light Spread", Range(1, 100)) = 5 + _SSSDistortion ("Light Distortion", Range(0, 1)) = 1 + [HideInInspector] m_end_subsurface ("Subsurface Scattering", Float) = 0 + /* + // Subsurface Scattering + [HideInInspector] m_start_subsurface ("Subsurface Scattering", Float) = 0 + [ThryToggle(_TERRAIN_NORMAL_MAP)]_EnableSSS ("Enable Subsurface Scattering", Float) = 0 + _SSSColor ("Subsurface Color", Color) = (1, 0, 0, 1) + _SSSStrength ("Strength", Float) = 4 + _SSSConstant ("Constant", Range(0, .5)) = 0.1 + _SSSNDotL ("NDotL Reduction", Range(0, 1)) = 0 + _SSSExponent ("Spot Exponent", Range(2, 100)) = 30 + _SSSNormalOffset ("Scattering", Range(0, .3)) = 0.05 + _SSSPointLightDirectionality ("Point Light Directionality", Range(0, 1)) = .7 + _SSSThicknessMap ("Thickness Map--{reference_properties:[_SSSThicknessMapPan, _SSSThicknessMapUV, _SSSThickness]}", 2D) = "black" { } + [HideInInspector][Vector2]_SSSThicknessMapPan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _SSSThicknessMapUV ("UV", Int) = 0 + [HideInInspector]_SSSThickness ("Strength", Range(0, 1)) = 1 + [HideInInspector] m_end_subsurface ("Subsurface Scattering", Float) = 0 + */ + + + // Rim Lighting + [HideInInspector] m_start_rimLightOptions ("Rim Lighting", Float) = 0 + [ThryToggle(_GLOSSYREFLECTIONS_OFF)]_EnableRimLighting ("Enable Rim Lighting", Float) = 0 + [Enum(vertex, 0, pixel, 1)] _RimLightNormal ("Normal Select", Int) = 1 + [ToggleUI]_RimLightingInvert ("Invert Rim Lighting", Float) = 0 + _RimLightColor ("Rim Color", Color) = (1, 1, 1, 1) + _RimWidth ("Rim Width", Range(0, 1)) = 0.8 + _RimSharpness ("Rim Sharpness", Range(0, 1)) = .25 + _RimStrength ("Rim Emission", Range(0, 20)) = 0 + _RimBrighten ("Rim Color Brighten", Range(0, 3)) = 0 + _RimLightColorBias ("Rim Color Bias", Range(0, 1)) = 1 + _RimTex ("Rim Texture", 2D) = "white" { } + [HideInInspector][Vector2]_RimTexPan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _RimTexUV ("UV", Int) = 0 + _RimMask ("Rim Mask", 2D) = "white" { } + [HideInInspector][Vector2]_RimMaskPan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _RimMaskUV ("UV", Int) = 0 + + [HideInInspector] m_start_rimHueShift ("Hue Shift", Float) = 0 + [ToggleUI]_RimHueShiftEnabled ("Enabled", Float) = 0 + _RimHueShiftSpeed ("Shift Speed", Float) = 0 + _RimHueShift ("Hue Shift", Range(0,1)) = 0 + [HideInInspector] m_end_rimHueShift ("Hue Shift", Float) = 0 + + // Rim Noise + [HideInInspector] m_start_rimWidthNoise ("Width Noise", Float) = 0 + _RimWidthNoiseTexture ("Rim Width Noise", 2D) = "black" { } + [HideInInspector][Vector2]_RimWidthNoiseTexturePan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _RimWidthNoiseTextureUV ("UV", Int) = 0 + _RimWidthNoiseStrength ("Intensity", Range(0, 1)) = 0.1 + [HideInInspector] m_end_rimWidthNoise ("Width Noise", Float) = 0 + + // Rim Shadow Mix + [HideInInspector] m_start_ShadowMix ("Shadow Mix", Float) = 0 + _ShadowMix ("Shadow Mix In", Range(0, 1)) = 0 + _ShadowMixThreshold ("Shadow Mix Threshold", Range(0, 1)) = .5 + _ShadowMixWidthMod ("Shadow Mix Width Mod", Range(0, 10)) = .5 + [HideInInspector] m_end_ShadowMix ("Shadow Mix", Float) = 0 + [HideInInspector] m_end_rimLightOptions ("Rim Lighting", Float) = 0 + + // Environmental Rim Lighting + [HideInInspector] m_start_reflectionRim ("Environmental Rim", Float) = 0 + [ThryToggle(_MAPPING_6_FRAMES_LAYOUT)]_EnableEnvironmentalRim ("Enable Environmental Rim", Float) = 0 + _RimEnviroMask ("Mask", 2D) = "white" { } + [HideInInspector][Vector2]_RimEnviroMaskPan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _RimEnviroMaskUV ("UV", Int) = 0 + _RimEnviroBlur ("Blur", Range(0, 1)) = 0.7 + _RimEnviroWidth ("Rim Width", Range(0, 1)) = 0.45 + _RimEnviroSharpness ("Rim Sharpness", Range(0, 1)) = 0 + _RimEnviroMinBrightness ("Min Brightness Threshold", Range(0, 2)) = 0 + _RimEnviroIntensity ("Intensity", Range(0, 1)) = 1 + [HideInInspector] m_end_reflectionRim ("Environmental Rim", Float) = 0 + + // Baked Lighting + [HideInInspector] m_start_bakedLighting ("Baked Lighting", Float) = 0 + _SpecularLMOcclusion("Specular Occlusion", Range(0,1)) = 0 + _SpecLMOcclusionAdjust("Spec Occlusion Sensitiviy", Range(0,1)) = 0.2 + _GIEmissionMultiplier ("GI Emission Multiplier", Float) = 1 + [HideInInspector] DSGI ("DSGI", Float) = 0 //add this property for double sided illumination settings to be shown + [HideInInspector] LightmapFlags ("Lightmap Flags", Float) = 0 //add this property for lightmap flags settings to be shown + [HideInInspector] m_end_bakedLighting ("Baked Lighting", Float) = 0 + + [Helpbox(3)] _LockTooltip ("ALWAYS LOCK IN BEFORE UPLOADING. || RIGHT CLICK A PROPERTY IF YOU WANT TO ANIMATE IT.", Int) = 0 + + // BRDF + [HideInInspector] m_start_brdf ("Metallics & Specular--{reference_property:_EnableBRDF}", Float) = 0 + [HideInInspector][ThryToggle(VIGNETTE_CLASSIC)]_EnableBRDF ("Enable", Float) = 0 + _BRDFMetallicGlossMap ("Metallic Gloss Map--{reference_properties:[_BRDFMetallicGlossMapPan, _BRDFMetallicGlossMapUV, _BRDFInvertGlossiness, _BRDFMetallicGlossMapToolTip]}", 2D) = "white" { } + [HideInInspector][Helpbox(1)] _BRDFMetallicGlossMapToolTip ("R = Metallic, G = Reflectance, A = Glossiness/Smoothness/Inverse Roughness", Int) = 0 + [HideInInspector][ToggleUI]_BRDFInvertGlossiness ("Invert Glossiness", Float) = 0 + [HideInInspector][Vector2]_BRDFMetallicGlossMapPan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _BRDFMetallicGlossMapUV ("UV", Int) = 0 + _BRDFSpecularMap ("Specular Tint/Mask--{reference_properties:[_BRDFSpecularMapPan, _BRDFSpecularMapUV, _BRDFSpecularMapToolTip]}", 2D) = "white" { } + [HideInInspector][Helpbox(1)] _BRDFSpecularMapToolTip ("RGB = Color, A = Mask", Int) = 0 + [HideInInspector][Vector2]_BRDFSpecularMapPan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _BRDFSpecularMapUV ("UV", Int) = 0 + _BRDFMetallicMap ("Metallic Tint/Mask--{reference_properties:[_BRDFMetallicMapPan, _BRDFMetallicMapUV, _BRDFMetallicMapToolTip]}", 2D) = "white" { } + [HideInInspector][Helpbox(1)] _BRDFMetallicMapToolTip ("RGB = Color, A = Mask", Int) = 0 + [HideInInspector][Vector2]_BRDFMetallicMapPan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _BRDFMetallicMapUV ("UV", Int) = 0 + _BRDFMetallic ("Metallic", Range(0,1)) = 0 + _BRDFGlossiness ("Glossiness", Range(0,1)) = 0 + _BRDFReflectance ("Reflectance", Range(0,1)) = .5 + _BRDFAnisotropy ("Anisotropy", Range(-1,1)) = 0 + [ToggleUI]_BRDFReflectionsEnabled ("Enable Reflections", Float) = 1 + [ToggleUI]_BRDFSpecularEnabled ("Enable Specular", Float) = 1 + _BRDFFallback ("Fallback Reflection", Cube) = "" { } + [ToggleUI]_BRDFForceFallback ("Force Fallback Reflection", Range(0, 1)) = 0 + [HideInInspector] m_end_brdf ("Baked Lighting", Float) = 0 + + // Metallics + [HideInInspector] m_start_Metallic ("Metallicsa", Float) = 0 + [ThryToggle(_METALLICGLOSSMAP)]_EnableMetallic ("Enable Metallics", Float) = 0 + _CubeMap ("Baked CubeMap", Cube) = "" { } + [ToggleUI]_SampleWorld ("Force Baked Cubemap", Range(0, 1)) = 0 + _MetalReflectionTint ("Reflection Tint", Color) = (1, 1, 1) + _MetallicTintMap ("Tint Map", 2D) = "white" { } + [HideInInspector][Vector2]_MetallicTintMapPan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _MetallicTintMapUV ("UV", Int) = 0 + _MetallicMask ("Metallic Mask", 2D) = "white" { } + [HideInInspector][Vector2]_MetallicMaskPan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _MetallicMaskUV ("UV", Int) = 0 + _Metallic ("Metallic", Range(0, 1)) = 0 + _SmoothnessMask ("Smoothness Map", 2D) = "white" { } + [HideInInspector][Vector2]_SmoothnessMaskPan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _SmoothnessMaskUV ("UV", Int) = 0 + [ToggleUI]_InvertSmoothness ("Invert Smoothness Map", Range(0, 1)) = 0 + _Smoothness ("Smoothness", Range(0, 1)) = 0 + [HideInInspector] m_end_Metallic ("Metallics", Float) = 0 + + // Clearcoat + [HideInInspector] m_start_clearCoat ("Clear Coat", Float) = 0 + [ThryToggle(_COLORCOLOR_ON)]_EnableClearCoat ("Enable Clear Coat", Float) = 0 + //[Enum(Vertex, 0, Pixel, 1)] _ClearCoatNormalToUse ("What Normal?", Int) = 0 + //_ClearCoatTint ("Reflection Tint", Color) = (1, 1, 1) + _ClearcoatMap ("Clear Coat Map--{reference_properties:[_ClearcoatMapPan, _ClearcoatMapUV, _ClearcoatInvertSmoothness, _ClearcoatHelpBox]}", 2D) = "white" { } + [HideInInspector][Helpbox(1)] _ClearcoatHelpBox ("R = Clear Coat Map, G = Specular Mask, B = Reflection Mask, A = Glossiness/Smoothness/Inverse Roughness", Int) = 0 + [HideInInspector][Vector2]_ClearcoatMapPan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _ClearcoatMapUV ("UV", Int) = 0 + [HideInInspector][ToggleUI]_ClearcoatInvertSmoothness ("Invert Smoothness", Range(0, 1)) = 0 + _Clearcoat ("Clear Coat", Range(0, 1)) = 1 + _ClearcoatGlossiness ("Smoothness", Range(0, 1)) = 0 + _ClearcoatAnisotropy ("Anisotropy", Range(-1, 1)) = 0 + [ToggleUI]_ClearcoatEnableReflections ("Enable Reflections", Range(0, 1)) = 1 + [ToggleUI]_ClearcoatEnableSpecular ("Enable Specular", Range(0, 1)) = 1 + _ClearcoatFallback ("Fallback CubeMap", Cube) = "" { } + [ToggleUI]_ClearcoatForceFallback ("Force Fallback Cubemap", Range(0, 1)) = 0 + [HideInInspector] m_end_clearCoat ("Clear Coat", Float) = 0 + + // First Matcap + [HideInInspector] m_start_matcap ("Matcap / Sphere Textures", Float) = 0 + [ThryToggle(_COLORADDSUBDIFF_ON)]_MatcapEnable ("Enable Matcap", Float) = 0 + _MatcapColor ("Color", Color) = (1, 1, 1, 1) + [TextureNoSO]_Matcap ("Matcap", 2D) = "white" { } + _MatcapBorder ("Border", Range(0, .5)) = 0.43 + _MatcapMask ("Mask--{reference_properties:[_MatcapMaskPan, _MatcapMaskUV, _MatcapMaskInvert]}", 2D) = "white" { } + [HideInInspector][Vector2]_MatcapMaskPan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _MatcapMaskUV ("UV", Int) = 0 + [HideInInspector][ToggleUI]_MatcapMaskInvert("Invert", Float) = 0 + _MatcapEmissionStrength ("Emission Strength", Range(0, 20)) = 0 + _MatcapIntensity ("Intensity", Range(0, 5)) = 1 + _MatcapLightMask ("Hide in Shadow", Range(0, 1)) = 0 + _MatcapReplace ("Replace With Matcap", Range(0, 1)) = 1 + _MatcapMultiply ("Multiply Matcap", Range(0, 1)) = 0 + _MatcapAdd ("Add Matcap", Range(0, 1)) = 0 + [Enum(Vertex, 0, Pixel, 1)] _MatcapNormal ("Normal to use", Int) = 1 + [HideInInspector] m_start_matcapHueShift ("Hue Shift", Float) = 0 + [ToggleUI]_MatcapHueShiftEnabled ("Enabled", Float) = 0 + _MatcapHueShiftSpeed ("Shift Speed", Float) = 0 + _MatcapHueShift ("Hue Shift", Range(0,1)) = 0 + [HideInInspector] m_end_matcapHueShift ("Hue Shift", Float) = 0 + [HideInInspector] m_end_matcap ("Matcap", Float) = 0 + + // Second Matcap + [HideInInspector] m_start_Matcap2 ("Matcap 2", Float) = 0 + [ThryToggle(COLOR_GRADING_HDR_3D)]_Matcap2Enable ("Enable Matcap 2", Float) = 0 + _Matcap2Color ("Color", Color) = (1, 1, 1, 1) + [TextureNoSO]_Matcap2 ("Matcap", 2D) = "white" { } + _Matcap2Border ("Border", Range(0, .5)) = 0.43 + _Matcap2Mask ("Mask--{reference_properties:[_Matcap2MaskPan, _Matcap2MaskUV, _Matcap2MaskInvert]}", 2D) = "white" { } + [HideInInspector][Vector2]_Matcap2MaskPan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _Matcap2MaskUV ("UV", Int) = 0 + [HideInInspector][ToggleUI]_Matcap2MaskInvert("Invert", Float) = 0 + _Matcap2EmissionStrength ("Emission Strength", Range(0, 20)) = 0 + _Matcap2Intensity ("Intensity", Range(0, 5)) = 1 + _Matcap2LightMask ("Hide in Shadow", Range(0, 1)) = 0 + _Matcap2Replace ("Replace With Matcap", Range(0, 1)) = 0 + _Matcap2Multiply ("Multiply Matcap", Range(0, 1)) = 0 + _Matcap2Add ("Add Matcap", Range(0, 1)) = 0 + [Enum(Vertex, 0, Pixel, 1)] _Matcap2Normal ("Normal to use", Int) = 1 + [HideInInspector] m_start_matcap2HueShift ("Hue Shift", Float) = 0 + [ToggleUI]_Matcap2HueShiftEnabled ("Enabled", Float) = 0 + _Matcap2HueShiftSpeed ("Shift Speed", Float) = 0 + _Matcap2HueShift ("Hue Shift", Range(0,1)) = 0 + [HideInInspector] m_end_matcap2HueShift ("Hue Shift", Float) = 0 + [HideInInspector] m_end_Matcap2 ("Matcap 2", Float) = 0 + + // Specular + [HideInInspector] m_start_specular ("Specular Reflections", Float) = 0 + [ThryToggle(_SPECGLOSSMAP)]_EnableSpecular ("Enable Specular", Float) = 0 + [Enum(Realistic, 1, Toon, 2, Anisotropic, 3, Toon Aniso, 4)] _SpecularType ("Specular Type", Int) = 1 + [Enum(vertex, 0, pixel, 1)] _SpecularNormal ("Normal Select", Int) = 1 + _SpecularTint ("Specular Tint", Color) = (1, 1, 1, 1) + _SpecularMetallic ("Metallic", Range(0, 1)) = 0 + [Gradient]_SpecularMetallicMap ("Metallic Map--{reference_properties:[_SpecularMetallicMapPan, _SpecularMetallicMapUV]}", 2D) = "white" { } + [HideInInspector][Vector2]_SpecularMetallicMapPan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _SpecularMetallicMapUV ("UV", Int) = 0 + _SpecularSmoothness ("Smoothness--{condition_show:{type:OR,condition1:{type:PROPERTY_BOOL,data:_SpecularType==1},condition2:{type:PROPERTY_BOOL,data:_SpecularType==3}}}", Range(0, 1)) = 1 + [Gradient]_SpecularMap ("Specular Map", 2D) = "white" { } + [HideInInspector][Vector2]_SpecularMapPan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _SpecularMapUV ("UV", Int) = 0 + [ToggleUI]_SpecularInvertSmoothness ("Invert Smoothness", Float) = 0 + _SpecularMask ("Specular Mask", 2D) = "white" { } + [HideInInspector][Vector2]_SpecularMaskPan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _SpecularMaskUV ("UV", Int) = 0 + [Enum(Alpha, 0, Grayscale, 1)] _SmoothnessFrom ("Smoothness From", Int) = 1 + // Anisotropic Specular + [Enum(Tangent, 0, binormal, 1)] _SpecWhatTangent ("(Bi)Tangent?--{condition_show:{type:OR,condition1:{type:PROPERTY_BOOL,data:_SpecularType==3},condition2:{type:PROPERTY_BOOL,data:_SpecularType==4}}}", Int) = 0 + _AnisoSpec1Alpha ("Spec1 Alpha--{condition_show:{type:PROPERTY_BOOL,data:_SpecularType==3}}", Range(0, 1)) = 1 + _AnisoSpec2Alpha ("Spec2 Alpha--{condition_show:{type:PROPERTY_BOOL,data:_SpecularType==3}}", Range(0, 1)) = 1 + _Spec1Offset ("Spec1 Offset--{condition_show:{type:PROPERTY_BOOL,data:_SpecularType==3}}", Range(-1, 1)) = 0 + _Spec2Smoothness ("Spec2 Smoothness--{condition_show:{type:PROPERTY_BOOL,data:_SpecularType==3}}", Range(0, 1)) = 0 + [ToggleUI]_AnisoUseTangentMap ("Use Directional Map?--{condition_show:{type:OR,condition1:{type:PROPERTY_BOOL,data:_SpecularType==3},condition2:{type:PROPERTY_BOOL,data:_SpecularType==4}}}", Float) = 0 + _AnisoTangentMap ("Anisotropic Directional Map--{reference_properties:[_AnisoTangentMapPan, _AnisoTangentMapUV], condition_show:{type:OR,condition1:{type:PROPERTY_BOOL,data:_SpecularType==3},condition2:{type:PROPERTY_BOOL,data:_SpecularType==4}}}", 2D) = "bump" { } + [HideInInspector][Vector2]_AnisoTangentMapPan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _AnisoTangentMapUV ("UV", Int) = 0 + //toon aniso + _SpecularToonStart ("Spec Toon Start--{condition_show:{type:PROPERTY_BOOL,data:_SpecularType==4}}", Range(0, 1)) = .95 + _SpecularToonEnd ("Spec Toon End--{condition_show:{type:PROPERTY_BOOL,data:_SpecularType==4}}", Range(0, 2)) = 1 + //[ToggleUI]_CenterOutSpecColor ("Center Out SpecMap--{condition_show:{type:PROPERTY_BOOL,data:_SpecularType==4}}", Float) = 0 + [ToggleUI]_SpecularAnisoJitterMirrored ("Mirrored?--{condition_show:{type:PROPERTY_BOOL,data:_SpecularType==4}}", Float) = 0 + [Curve]_SpecularAnisoJitterMicro ("Micro Shift--{reference_properties:[_SpecularAnisoJitterMicroPan, _SpecularAnisoJitterMicroUV], condition_show:{type:OR,condition1:{type:PROPERTY_BOOL,data:_SpecularType==3},condition2:{type:PROPERTY_BOOL,data:_SpecularType==4}}}", 2D) = "black" { } + _SpecularAnisoJitterMicroMultiplier ("Micro Multiplier--{condition_show:{type:OR,condition1:{type:PROPERTY_BOOL,data:_SpecularType==3},condition2:{type:PROPERTY_BOOL,data:_SpecularType==4}}}", Range(0, 10)) = 0 + [HideInInspector][Vector2]_SpecularAnisoJitterMicroPan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _SpecularAnisoJitterMicroUV ("UV", Int) = 0 + [Curve]_SpecularAnisoJitterMacro ("Macro Shift--{reference_properties:[_SpecularAnisoJitterMacroPan, _SpecularAnisoJitterMacroUV], condition_show:{type:OR,condition1:{type:PROPERTY_BOOL,data:_SpecularType==3},condition2:{type:PROPERTY_BOOL,data:_SpecularType==4}}}", 2D) = "black" { } + _SpecularAnisoJitterMacroMultiplier ("Macro Multiplier--{condition_show:{type:OR,condition1:{type:PROPERTY_BOOL,data:_SpecularType==3},condition2:{type:PROPERTY_BOOL,data:_SpecularType==4}}}", Range(0, 10)) = 0 + [HideInInspector][Vector2]_SpecularAnisoJitterMacroPan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _SpecularAnisoJitterMacroUV ("UV", Int) = 0 + // Toon Specular + [MultiSlider]_SpecularToonInnerOuter ("Inner/Outer Edge--{condition_show:{type:PROPERTY_BOOL,data:_SpecularType==2}}", Vector) = (0.25, 0.3, 0, 1) + [HideInInspector] m_end_specular ("Specular Reflections", Float) = 0 + + // Second Specular + [HideInInspector] m_start_specular1 ("Specular Reflections 2", Float) = 0 + [ThryToggle(DITHERING)]_EnableSpecular1 ("Enable Specular", Float) = 0 + [Enum(Realistic, 1, Toon, 2, Anisotropic, 3, Toon Aniso, 4)] _SpecularType1 ("Specular Type", Int) = 1 + [Enum(vertex, 0, pixel, 1)] _SpecularNormal1 ("Normal Select", Int) = 1 + _SpecularTint1 ("Specular Tint", Color) = (1, 1, 1, 1) + _SpecularMetallic1 ("Metallic", Range(0, 1)) = 0 + [Gradient]_SpecularMetallicMap1 ("Metallic Map--{reference_properties:[_SpecularMetallicMapPan, _SpecularMetallicMapUV]}", 2D) = "white" { } + [HideInInspector][Vector2]_SpecularMetallicMap1Pan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _SpecularMetallicMap1UV ("UV", Int) = 0 + _SpecularSmoothness1 ("Smoothness--{condition_show:{type:OR,condition1:{type:PROPERTY_BOOL,data:_SpecularType1==1},condition2:{type:PROPERTY_BOOL,data:_SpecularType1==3}}}", Range(-2, 1)) = .75 + _SpecularMap1 ("Specular Map", 2D) = "white" { } + [HideInInspector][Vector2]_SpecularMap1Pan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _SpecularMap1UV ("UV", Int) = 0 + [ToggleUI]_SpecularInvertSmoothness1 ("Invert Smoothness", Float) = 0 + _SpecularMask1 ("Specular Mask", 2D) = "white" { } + [HideInInspector][Vector2]_SpecularMask1Pan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _SpecularMask1UV ("UV", Int) = 0 + [Enum(Alpha, 0, Grayscale, 1)] _SmoothnessFrom1 ("Smoothness From", Int) = 1 + // Second Anisotropic Specular + [Enum(Tangent, 0, binormal, 1)] _SpecWhatTangent1 ("(Bi)Tangent?--{condition_show:{type:OR,condition1:{type:PROPERTY_BOOL,data:_SpecularType1==3},condition2:{type:PROPERTY_BOOL,data:_SpecularType1==4}}}", Int) = 0 + _AnisoSpec1Alpha1 ("Spec1 Alpha--{condition_show:{type:PROPERTY_BOOL,data:_SpecularType1==3}}", Range(0, 1)) = 1 + _AnisoSpec2Alpha1 ("Spec2 Alpha--{condition_show:{type:PROPERTY_BOOL,data:_SpecularType1==3}}", Range(0, 1)) = 1 + _Spec1Offset1 ("Spec1 Offset--{condition_show:{type:PROPERTY_BOOL,data:_SpecularType1==3}}", Range(-1, 1)) = 0 + _Spec2Smoothness1 ("Spec2 Smoothness--{condition_show:{type:PROPERTY_BOOL,data:_SpecularType1==3}}", Range(0, 1)) = 0 + [ToggleUI]_AnisoUseTangentMap1 ("Use Directional Map?--{condition_show:{type:OR,condition1:{type:PROPERTY_BOOL,data:_SpecularType1==3},condition2:{type:PROPERTY_BOOL,data:_SpecularType1==4}}}", Float) = 0 + _AnisoTangentMap1 ("Anisotropic Directional Map--{reference_properties:[_AnisoTangentMap1Pan, _AnisoTangentMap1UV], condition_show:{type:OR,condition1:{type:PROPERTY_BOOL,data:_SpecularType1==3},condition2:{type:PROPERTY_BOOL,data:_SpecularType1==4}}}", 2D) = "bump" { } + [HideInInspector][Vector2]_AnisoTangentMap1Pan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _AnisoTangentMap1UV ("UV", Int) = 0 + // Second toon aniso + _SpecularToonStart1 ("Spec Toon Start--{condition_show:{type:PROPERTY_BOOL,data:_SpecularType1==4}}", Range(0, 1)) = .95 + _SpecularToonEnd1 ("Spec Toon End--{condition_show:{type:PROPERTY_BOOL,data:_SpecularType1==4}}", Range(0, 2)) = 1 + //[ToggleUI]_CenterOutSpecColor1 ("Center Out SpecMap--{condition_show:{type:PROPERTY_BOOL,data:_SpecularType1==4}}", Float) = 0 + [ToggleUI]_SpecularAnisoJitterMirrored1 ("Mirrored?--{condition_show:{type:PROPERTY_BOOL,data:_SpecularType1==4}}", Float) = 0 + [Curve]_SpecularAnisoJitterMicro1 ("Micro Shift--{reference_properties:[_SpecularAnisoJitterMicro1Pan, _SpecularAnisoJitterMicro1UV], condition_show:{type:OR,condition1:{type:PROPERTY_BOOL,data:_SpecularType1==3},condition2:{type:PROPERTY_BOOL,data:_SpecularType1==4}}}", 2D) = "black" { } + _SpecularAnisoJitterMicroMultiplier1 ("Micro Multiplier--{condition_show:{type:OR,condition1:{type:PROPERTY_BOOL,data:_SpecularType1==3},condition2:{type:PROPERTY_BOOL,data:_SpecularType1==4}}}", Range(0, 10)) = 0 + [HideInInspector][Vector2]_SpecularAnisoJitterMicro1Pan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _SpecularAnisoJitterMicro1UV ("UV", Int) = 0 + [Curve]_SpecularAnisoJitterMacro1 ("Macro Shift--{reference_properties:[_SpecularAnisoJitterMacro1Pan, _SpecularAnisoJitterMacro1UV], condition_show:{type:OR,condition1:{type:PROPERTY_BOOL,data:_SpecularType1==3},condition2:{type:PROPERTY_BOOL,data:_SpecularType1==4}}}", 2D) = "black" { } + _SpecularAnisoJitterMacroMultiplier1 ("Macro Multiplier--{condition_show:{type:OR,condition1:{type:PROPERTY_BOOL,data:_SpecularType1==3},condition2:{type:PROPERTY_BOOL,data:_SpecularType1==4}}}", Range(0, 10)) = 0 + [HideInInspector][Vector2]_SpecularAnisoJitterMacro1Pan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _SpecularAnisoJitterMacro1UV ("UV", Int) = 0 + // Second Toon Specular + [MultiSlider]_SpecularToonInnerOuter1 ("Inner/Outer Edge--{condition_show:{type:PROPERTY_BOOL,data:_SpecularType1==2}}", Vector) = (0.25, 0.3, 0, 1) + [HideInInspector] m_end_specular1 ("Specular Reflections", Float) = 0 + + // First Emission + [HideInInspector] m_Special_Effects ("Special Effects", Float) = 0 + [HideInInspector] m_start_emissionOptions ("Emission / Glow", Float) = 0 + [ThryToggle(_EMISSION)]_EnableEmission ("Enable Emission", Float) = 0 + [ToggleUI]_EmissionReplace ("Replace Base Color", Float) = 0 + [HDR]_EmissionColor ("Emission Color", Color) = (1, 1, 1, 1) + [Gradient]_EmissionMap ("Emission Map", 2D) = "white" { } + [ToggleUI]_EmissionBaseColorAsMap ("Base Color as Map?", Float) = 0 + [HideInInspector][Vector2]_EmissionMapPan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _EmissionMapUV ("UV", Int) = 0 + _EmissionMask ("Emission Mask", 2D) = "white" { } + [HideInInspector][Vector2]_EmissionMaskPan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _EmissionMaskUV ("UV", Int) = 0 + _EmissionStrength ("Emission Strength", Range(0, 20)) = 0 + [ToggleUI]_EmissionHueShiftEnabled ("Enable Hue Shift", Float) = 0 + _EmissionHueShift ("Hue Shift", Range(0, 1)) = 0 + _EmissionHueShiftSpeed ("Hue Shift Speed", Float) = 0 + + // Center out emission + [HideInInspector] m_start_CenterOutEmission ("Center Out Emission", Float) = 0 + [HideInInspector][ToggleUI]_EmissionCenterOutEnabled ("Enable Center Out", Float) = 0 + _EmissionCenterOutSpeed ("Flow Speed", Float) = 5 + [HideInInspector] m_end_CenterOutEmission ("inward out emission", Float) = 0 + + // Glow in the dark Emission + [HideInInspector] m_start_glowInDarkEmissionOptions ("Glow In The Dark Emission (Requires Lighting Enabled)", Float) = 0 + [HideInInspector][ToggleUI]_EnableGITDEmission ("Enable Glow In The Dark", Float) = 0 + [Enum(World, 0, Mesh, 1)] _GITDEWorldOrMesh ("Lighting Type", Int) = 0 + _GITDEMinEmissionMultiplier ("Min Emission Multiplier", Range(0, 1)) = 1 + _GITDEMaxEmissionMultiplier ("Max Emission Multiplier", Range(0, 1)) = 0 + _GITDEMinLight ("Min Lighting", Range(0, 1)) = 0 + _GITDEMaxLight ("Max Lighting", Range(0, 1)) = 1 + [HideInInspector] m_end_glowInDarkEmissionOptions ("Glow In The Dark Emission (Requires Lighting Enabled)", Float) = 0 + + // Blinking Emission + [HideInInspector] m_start_blinkingEmissionOptions ("Blinking Emission", Float) = 0 + [HideInInspector][ToggleUI]_EmissionBlinkingEnabled ("Enable Blinking", Float) = 0 + _EmissiveBlink_Min ("Emissive Blink Min", Float) = 0 + _EmissiveBlink_Max ("Emissive Blink Max", Float) = 1 + _EmissiveBlink_Velocity ("Emissive Blink Velocity", Float) = 4 + _EmissionBlinkingOffset ("Offset", Float) = 0 + [HideInInspector] m_end_blinkingEmissionOptions ("Blinking Emission", Float) = 0 + + // Scrolling Emission + [HideInInspector] m_start_scrollingEmissionOptions ("Scrolling Emission", Float) = 0 + [HideInInspector][ToggleUI] _ScrollingEmission ("Enable Scrolling Emission", Float) = 0 + [ToggleUI]_EmissionScrollingUseCurve ("Use Curve", float) = 0 + [Curve]_EmissionScrollingCurve ("Curve", 2D) = "white" { } + [ToggleUI]_EmissionScrollingVertexColor ("VColor as position", float) = 0 + _EmissiveScroll_Direction ("Direction", Vector) = (0, -10, 0, 0) + _EmissiveScroll_Width ("Width", Float) = 10 + _EmissiveScroll_Velocity ("Velocity", Float) = 10 + _EmissiveScroll_Interval ("Interval", Float) = 20 + _EmissionScrollingOffset ("Offset", Float) = 0 + [HideInInspector] m_end_scrollingEmissionOptions ("Scrolling Emission", Float) = 0 + [HideInInspector] m_end_emissionOptions ("Emission / Glow", Float) = 0 + + // Second Enission + [HideInInspector] m_start_emission1Options ("Emission / Glow 2 (Requires Emission 1 Enabled)", Float) = 0 + [ThryToggle(EFFECT_HUE_VARIATION)]_EnableEmission1 ("Enable Emission 2", Float) = 0 + [HDR]_EmissionColor1 ("Emission Color", Color) = (1, 1, 1, 1) + [Gradient]_EmissionMap1 ("Emission Map", 2D) = "white" { } + [ToggleUI]_EmissionBaseColorAsMap1 ("Base Color as Map?", Float) = 0 + [HideInInspector][Vector2]_EmissionMap1Pan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _EmissionMap1UV ("UV", Int) = 0 + _EmissionMask1 ("Emission Mask", 2D) = "white" { } + [HideInInspector][Vector2]_EmissionMask1Pan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _EmissionMask1UV ("UV", Int) = 0 + _EmissionStrength1 ("Emission Strength", Range(0, 20)) = 0 + [ToggleUI]_EmissionHueShiftEnabled1 ("Enable Hue Shift", Float) = 0 + _EmissionHueShift1 ("Hue Shift", Range(0, 1)) = 0 + _EmissionHueShiftSpeed1 ("Hue Shift Speed", Float) = 0 + + + // Second Center Out Enission + [HideInInspector] m_start_CenterOutEmission1 ("Center Out Emission", Float) = 0 + [HideInInspector][ToggleUI]_EmissionCenterOutEnabled1 ("Enable Center Out", Float) = 0 + _EmissionCenterOutSpeed1 ("Flow Speed", Float) = 5 + [HideInInspector] m_end_CenterOutEmission1 ("inward out emission", Float) = 0 + + // Second Glow In The Dark Emission + [HideInInspector] m_start_glowInDarkEmissionOptions1 ("Glow In The Dark Emission (Requires Lighting Enabled)", Float) = 0 + [HideInInspector][ToggleUI]_EnableGITDEmission1 ("Enable Glow In The Dark", Float) = 0 + [Enum(World, 0, Mesh, 1)] _GITDEWorldOrMesh1 ("Lighting Type", Int) = 0 + _GITDEMinEmissionMultiplier1 ("Min Emission Multiplier", Range(0, 1)) = 1 + _GITDEMaxEmissionMultiplier1 ("Max Emission Multiplier", Range(0, 1)) = 0 + _GITDEMinLight1 ("Min Lighting", Range(0, 1)) = 0 + _GITDEMaxLight1 ("Max Lighting", Range(0, 1)) = 1 + [HideInInspector] m_end_glowInDarkEmissionOptions1 ("Glow In The Dark Emission (Requires Lighting Enabled)", Float) = 0 + + // Second Blinking Emission + [HideInInspector] m_start_blinkingEmissionOptions1 ("Blinking Emission", Float) = 0 + [HideInInspector][ToggleUI]_EmissionBlinkingEnabled1 ("Enable Blinking", Float) = 0 + _EmissiveBlink_Min1 ("Emissive Blink Min", Float) = 0 + _EmissiveBlink_Max1 ("Emissive Blink Max", Float) = 1 + _EmissiveBlink_Velocity1 ("Emissive Blink Velocity", Float) = 4 + _EmissionBlinkingOffset1 ("Offset", Float) = 0 + [HideInInspector] m_end_blinkingEmissionOptions1 ("Blinking Emission", Float) = 0 + + // Scrolling Scrolling Emission + [HideInInspector] m_start_scrollingEmissionOptions1 ("Scrolling Emission", Float) = 0 + [HideInInspector][ToggleUI] _ScrollingEmission1 ("Enable Scrolling Emission", Float) = 0 + [ToggleUI]_EmissionScrollingUseCurve1 ("Use Curve", float) = 0 + [Curve]_EmissionScrollingCurve1 ("Curve", 2D) = "white" { } + [ToggleUI]_EmissionScrollingVertexColor1 ("VColor as position", float) = 0 + _EmissiveScroll_Direction1 ("Direction", Vector) = (0, -10, 0, 0) + _EmissiveScroll_Width1 ("Width", Float) = 10 + _EmissiveScroll_Velocity1 ("Velocity", Float) = 10 + _EmissiveScroll_Interval1 ("Interval", Float) = 20 + _EmissionScrollingOffset1 ("Offset", Float) = 0 + [HideInInspector] m_end_scrollingEmission1Options ("Scrolling Emission", Float) = 0 + [HideInInspector] m_end_emission1Options ("Emission / Glow 2", Float) = 0 + + // Flipbook + [HideInInspector] m_start_flipBook ("Flipbook", Float) = 0 + [ThryToggle(_SUNDISK_HIGH_QUALITY)]_EnableFlipbook ("Enable Flipbook", Float) = 0 + [ToggleUI]_FlipbookAlphaControlsFinalAlpha ("Flipbook Controls Alpha?", Float) = 0 + [ToggleUI]_FlipbookIntensityControlsAlpha ("Intensity Controls Alpha?", Float) = 0 + [ToggleUI]_FlipbookColorReplaces ("Color Replaces Flipbook", Float) = 0 + [TextureArray]_FlipbookTexArray ("Texture Array", 2DArray) = "" { } + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _FlipbookTexArrayUV ("UV", Int) = 0 + [HideInInspector][Vector2]_FlipbookTexArrayPan ("Panning", Vector) = (0, 0, 0, 0) + _FlipbookMask ("Mask", 2D) = "white" { } + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _FlipbookMaskUV ("UV", Int) = 0 + [HideInInspector][Vector2]_FlipbookMaskPan ("Panning", Vector) = (0, 0, 0, 0) + _FlipbookColor ("Color & alpha", Color) = (1, 1, 1, 1) + _FlipbookTotalFrames ("Total Frames", Float) = 1 + _FlipbookFPS ("FPS", Float) = 30.0 + _FlipbookScaleOffset ("Scale | Offset", Vector) = (1, 1, 0, 0) + [ToggleUI]_FlipbookTiled ("Tiled?", Float) = 0 + _FlipbookEmissionStrength ("Emission Strength", Range(0, 20)) = 0 + _FlipbookRotation ("Rotation", Range(0, 360)) = 0 + _FlipbookRotationSpeed ("Rotation Speed", Float) = 0 + _FlipbookReplace ("Replace", Range(0, 1)) = 1 + _FlipbookMultiply ("Multiply", Range(0, 1)) = 0 + _FlipbookAdd ("Add", Range(0, 1)) = 0 + + // Flipbook Manual Control + [HideInInspector] m_start_manualFlipbookControl ("Manual Control", Float) = 0 + _FlipbookCurrentFrame ("Current Frame", Float) = -1 + [HideInInspector] m_end_manualFlipbookControl ("Manual Control", Float) = 0 + + [HideInInspector] m_start_crossfade ("Crossfade", Float) = 0 + [ToggleUI]_FlipbookCrossfadeEnabled("Enable Crossfade?", Float) = 0 + [MultiSlider]_FlipbookCrossfadeRange ("Fade Range", Vector) = (0.75, 1, 0, 1) + [HideInInspector] m_end_crossfade ("Crossfade", Float) = 0 + + [HideInInspector] m_start_flipbookHueShift ("Hue Shift", Float) = 0 + [ToggleUI]_FlipbookHueShiftEnabled ("Enabled", Float) = 0 + _FlipbookHueShiftSpeed ("Shift Speed", Float) = 0 + _FlipbookHueShift ("Hue Shift", Range(0,1)) = 0 + [HideInInspector] m_end_flipbookHueShift ("Hue Shift", Float) = 0 + [HideInInspector] m_end_flipBook ("Flipbook", Float) = 0 + + // Dissolve + [HideInInspector] m_start_dissolve ("Dissolve", Float) = 0 + [ThryToggle(DISTORT)]_EnableDissolve ("Enable Dissolve", Float) = 0 + [Enum(Basic, 1, Point2Point, 2)] _DissolveType ("Dissolve Type", Int) = 1 + _DissolveEdgeWidth ("Edge Width", Range(0, .5)) = 0.025 + _DissolveEdgeHardness ("Edge Hardness", Range(0, 1)) = 0.5 + _DissolveEdgeColor ("Edge Color", Color) = (1, 1, 1, 1) + [Gradient]_DissolveEdgeGradient ("Edge Gradient", 2D) = "white" { } + _DissolveEdgeEmission ("Edge Emission", Range(0, 20)) = 0 + _DissolveTextureColor ("Dissolved Color", Color) = (1, 1, 1, 1) + _DissolveToTexture ("Dissolved Texture", 2D) = "white" { } + [HideInInspector][Vector2]_DissolveToTexturePan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _DissolveToTextureUV ("UV", Int) = 0 + _DissolveToEmissionStrength ("Dissolved Emission Strength", Range(0, 20)) = 0 + _DissolveNoiseTexture ("Dissolve Noise", 2D) = "white" { } + [HideInInspector][Vector2]_DissolveNoiseTexturePan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _DissolveNoiseTextureUV ("UV", Int) = 0 + [HideInInspector][ToggleUI]_DissolveInvertNoise ("Invert?", Float) = 0 + _DissolveDetailNoise ("Dissolve Detail Noise", 2D) = "black" { } + [HideInInspector][Vector2]_DissolveDetailNoisePan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _DissolveDetailNoiseUV ("UV", Int) = 0 + [HideInInspector][ToggleUI]_DissolveInvertDetailNoise ("Invert?", Float) = 0 + _DissolveDetailStrength ("Dissolve Detail Strength", Range(0, 1)) = 0.1 + _DissolveAlpha ("Dissolve Alpha", Range(0, 1)) = 0 + _DissolveMask ("Dissolve Mask", 2D) = "white" { } + [ToggleUI]_DissolveUseVertexColors ("VertexColor.g Mask", Float) = 0 + [HideInInspector][Vector2]_DissolveMaskPan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _DissolveMaskUV ("UV", Int) = 0 + [HideInInspector][ToggleUI]_DissolveMaskInvert ("Invert?", Float) = 0 + _ContinuousDissolve ("Continuous Dissolve Speed", Float) = 0 + [HideInInspector] m_start_dissolveMasking ("Effect Masking", Float) = 0 + [Enum(Undissolved, 0, Dissolved, 1, Both, 2)] _DissolveEmissionSide ("Emission 1", Int) = 2 + [Enum(Undissolved, 0, Dissolved, 1, Both, 2)] _DissolveEmission1Side ("Emission 2", Int) = 2 + [HideInInspector] m_end_dissolveMasking ("Effect Masking", Float) = 0 + + // Point to Point Dissolve + [HideInInspector] m_start_pointToPoint ("point to point", Float) = 0 + [Enum(Local, 0, World, 1, Vertex Colors, 2)] _DissolveP2PWorldLocal ("World/Local", Int) = 0 + _DissolveP2PEdgeLength ("Edge Length", Float) = 0.1 + [Vector3]_DissolveStartPoint ("Start Point", Vector) = (0, -1, 0, 0) + [Vector3]_DissolveEndPoint ("End Point", Vector) = (0, 1, 0, 0) + [HideInInspector] m_end_pointToPoint ("Point To Point", Float) = 0 + + [HideInInspector] m_start_dissolveHueShift ("Hue Shift", Float) = 0 + [ToggleUI]_DissolveHueShiftEnabled ("Dissolved Enabled", Float) = 0 + _DissolveHueShiftSpeed ("Dissolved Speed", Float) = 0 + _DissolveHueShift ("Dissolved Shift", Range(0,1)) = 0 + [ToggleUI]_DissolveEdgeHueShiftEnabled ("Edge Enabled", Float) = 0 + _DissolveEdgeHueShiftSpeed ("Edge Speed", Float) = 0 + _DissolveEdgeHueShift ("Edge Shift", Range(0,1)) = 0 + [HideInInspector] m_end_dissolveHueShift ("Hue Shift", Float) = 0 + + // Locked in anim sldiers + [HideInInspector] m_start_BonusSliders ("Locked In Anim Sliders", Float) = 0 + _DissolveAlpha0 ("Dissolve Alpha 0", Range(-1, 1)) = 0 + _DissolveAlpha1 ("Dissolve Alpha 1", Range(-1, 1)) = 0 + _DissolveAlpha2 ("Dissolve Alpha 2", Range(-1, 1)) = 0 + _DissolveAlpha3 ("Dissolve Alpha 3", Range(-1, 1)) = 0 + _DissolveAlpha4 ("Dissolve Alpha 4", Range(-1, 1)) = 0 + _DissolveAlpha5 ("Dissolve Alpha 5", Range(-1, 1)) = 0 + _DissolveAlpha6 ("Dissolve Alpha 6", Range(-1, 1)) = 0 + _DissolveAlpha7 ("Dissolve Alpha 7", Range(-1, 1)) = 0 + _DissolveAlpha8 ("Dissolve Alpha 8", Range(-1, 1)) = 0 + _DissolveAlpha9 ("Dissolve Alpha 9", Range(-1, 1)) = 0 + [HideInInspector] m_end_BonusSliders ("Locked In Sliders", Float) = 0 + [HideInInspector] m_end_dissolve ("Dissolve", Float) = 0 + + // Panosphere + [HideInInspector] m_start_panosphereOptions ("Panosphere / Cubemaps", Float) = 0 + [ThryToggle(_DETAIL_MULX2)]_PanoToggle ("Enable Panosphere", Float) = 0 + [ToggleUI]_PanoInfiniteStereoToggle ("Infinite Stereo", Float) = 0 + _PanosphereColor ("Color", Color) = (1, 1, 1, 1) + _PanosphereTexture ("Texture", 2D) = "white" { } + _PanoMask ("Mask", 2D) = "white" { } + [HideInInspector][Vector2]_PanoMaskPan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _PanoMaskUV ("UV", Int) = 0 + _PanoEmission ("Emission Strength", Range(0, 10)) = 0 + _PanoBlend ("Alpha", Range(0, 1)) = 0 + [Vector3]_PanospherePan ("Pan Speed", Vector) = (0, 0, 0, 0) + [ToggleUI]_PanoCubeMapToggle ("Use Cubemap", Float) = 0 + [TextureNoSO]_PanoCubeMap ("CubeMap", Cube) = "" { } + [HideInInspector] m_end_panosphereOptions ("Panosphere / Cubemaps", Float) = 0 + + // Glitter + [HideInInspector] m_start_glitter ("Glitter / Sparkle", Float) = 0 + [ThryToggle(_SUNDISK_SIMPLE)]_GlitterEnable ("Enable Glitter?", Float) = 0 + [Enum(Angle, 0, Linear Emission, 1)]_GlitterMode ("Mode", Int) = 0 + [Enum(Circle, 0, Square, 1)]_GlitterShape ("Shape", Int) = 0 + [Enum(Add, 0, Replace, 1)] _GlitterBlendType ("Blend Mode", Int) = 0 + [HDR]_GlitterColor ("Color", Color) = (1, 1, 1) + _GlitterUseSurfaceColor ("Use Surface Color", Range(0, 1)) = 0 + _GlitterColorMap ("Glitter Color Map", 2D) = "white" { } + [HideInInspector][Vector2]_GlitterColorMapPan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _GlitterColorMapUV ("UV", Int) = 0 + [HideInInspector][Vector2]_GlitterPan ("Panning", Vector) = (0, 0, 0, 0) + _GlitterMask ("Glitter Mask", 2D) = "white" { } + [HideInInspector][Vector2]_GlitterMaskPan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _GlitterMaskUV ("UV", Int) = 0 + _GlitterTexture ("Glitter Texture--{reference_properties:[_GlitterTexturePan]}", 2D) = "white" { } + [HideInInspector][Vector2]_GlitterTexturePan ("Panning", Vector) = (0, 0, 0, 0) + _GlitterTextureRotation ("Rotation Speed", Float) = 0 + _GlitterFrequency ("Glitter Density", Float) = 300.0 + _GlitterJitter ("Glitter Jitter", Range(0, 1)) = 1.0 + _GlitterSpeed ("Glitter Speed", Float) = 10.0 + _GlitterSize ("Glitter Size", Range(0, 1)) = .3 + _GlitterContrast ("Glitter Contrast--{condition_show:{type:PROPERTY_BOOL,data:_GlitterMode==0}}", Range(1, 1000)) = 300 + _GlitterAngleRange ("Glitter Angle Range--{condition_show:{type:PROPERTY_BOOL,data:_GlitterMode==0}}", Range(0, 90)) = 90 + _GlitterMinBrightness ("Glitter Min Brightness", Range(0, 1)) = 0 + _GlitterBrightness ("Glitter Max Brightness", Range(0, 40)) = 3 + _GlitterBias ("Glitter Bias--{condition_show:{type:PROPERTY_BOOL,data:_GlitterMode==0}}", Range(0, 1)) = .8 + _GlitterHideInShadow("Hide in shadow", Range(0,1)) = 0 + _GlitterCenterSize ("dim light--{condition_show:{type:AND,condition1:{type:PROPERTY_BOOL,data:_GlitterMode==1},condition2:{type:PROPERTY_BOOL,data:_GlitterShape==1}}}", Range(0, 1)) = .08 + _glitterFrequencyLinearEmissive ("Frequency--{condition_show:{type:PROPERTY_BOOL,data:_GlitterMode==1}}", Range(0, 100)) = 20 + _GlitterJaggyFix ("Jaggy Fix--{condition_show:{type:PROPERTY_BOOL,data:_GlitterShape==1}}", Range(0, .1)) = .0 + + [HideInInspector] m_start_glitterHueShift ("Hue Shift", Float) = 0 + [ToggleUI]_GlitterHueShiftEnabled ("Enabled", Float) = 0 + _GlitterHueShiftSpeed ("Shift Speed", Float) = 0 + _GlitterHueShift ("Hue Shift", Range(0,1)) = 0 + [HideInInspector] m_end_glitterHueShift ("Hue Shift", Float) = 0 + + // Glitter Random Colors + [HideInInspector] m_start_glitterRandom ("Random Things", Float) = 0 + [ToggleUI]_GlitterRandomColors ("Random Colors", Float) = 0 + [MultiSlider]_GlitterMinMaxSaturation ("Saturation Range", Vector) = (0.8, 1, 0, 1) + [MultiSlider]_GlitterMinMaxBrightness ("Brightness Range", Vector) = (0.8, 1, 0, 1) + [ToggleUI]_GlitterRandomSize("Random Size?", Float) = 0 + [MultiSlider]_GlitterMinMaxSize ("Size Range", Vector) = (0.1, 0.5, 0, 1) + [ToggleUI]_GlitterRandomRotation("Random Tex Rotation", Float) = 0 + [HideInInspector] m_end_glitterRandom ("Random Colors", Float) = 0 + [HideInInspector] m_end_glitter ("Glitter / Sparkle", Float) = 0 + + // MSDF OVERLAY + [HideInInspector] m_start_Text ("MSDF Text Overlay", Float) = 0 + _TextGlyphs ("Font Array", 2D) = "black" { } + _TextPixelRange ("Pixel Range", Float) = 4.0 + [ThryToggle(EFFECT_BUMP)]_TextEnabled ("Text?", Float) = 0 + + // FPS + [HideInInspector] m_start_TextFPS ("FPS", Float) = 0 + [ToggleUI]_TextFPSEnabled ("FPS Text?", Float) = 0 + [Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _TextFPSUV ("FPS UV", Int) = 0 + _TextFPSColor ("Color", Color) = (1, 1, 1, 1) + _TextFPSEmissionStrength ("Emission Strength", Range(0, 20)) = 0 + [Vector2]_TextFPSOffset ("Offset", Vector) = (0, 0, 0, 0) + _TextFPSRotation ("Rotation", Range(0, 360)) = 0 + [Vector2]_TextFPSScale ("Scale", Vector) = (1, 1, 1, 1) + _TextFPSPadding ("Padding Reduction", Vector) = (0, 0, 0, 0) + [HideInInspector] m_end_TextFPS ("FPS", Float) = 0 + + // POSITION + [HideInInspector] m_start_TextPosition ("Position", Float) = 0 + [ToggleUI]_TextPositionEnabled ("Position Text?", Float) = 0 + [Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _TextPositionUV ("Position UV", Int) = 0 + //[ToggleUI]_TextPositionVertical ("Vertical?", Float) = 0 + _TextPositionColor ("Color", Color) = (1, 0, 1, 1) + _TextPositionEmissionStrength ("Emission Strength", Range(0, 20)) = 0 + [Vector2]_TextPositionOffset ("Offset", Vector) = (0, 0, 0, 0) + _TextPositionRotation ("Rotation", Range(0, 360)) = 0 + [Vector2]_TextPositionScale ("Scale", Vector) = (1, 1, 1, 1) + _TextPositionPadding ("Padding Reduction", Vector) = (0, 0, 0, 0) + [HideInInspector] m_end_TextPosition ("Position", Float) = 0 + + // INSTANCE TIME + [HideInInspector] m_start_TextInstanceTime ("Instance Time", Float) = 0 + [ToggleUI]_TextTimeEnabled ("Time Text?", Float) = 0 + [Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _TextTimeUV ("Time UV", Int) = 0 + _TextTimeColor ("Color", Color) = (1, 0, 1, 1) + _TextTimeEmissionStrength ("Emission Strength", Range(0, 20)) = 0 + [Vector2]_TextTimeOffset ("Offset", Vector) = (0, 0, 0, 0) + _TextTimeRotation ("Rotation", Range(0, 360)) = 0 + [Vector2]_TextTimeScale ("Scale", Vector) = (1, 1, 1, 1) + _TextTimePadding ("Padding Reduction", Vector) = (0, 0, 0, 0) + [HideInInspector] m_end_TextInstanceTime ("Instance Time", Float) = 0 + [HideInInspector] m_end_Text ("MSDF Text Overlay", Float) = 0 + + // Mirror Rendering + [HideInInspector] m_start_mirrorOptions ("Mirror", Float) = 0 + [ThryToggle(_REQUIRE_UV2)]_EnableMirrorOptions ("Enable Mirror Options", Float) = 0 + [Enum(ShowInBoth, 0, ShowOnlyInMirror, 1, DontShowInMirror, 2)] _Mirror ("Show in mirror", Int) = 0 + [ToggleUI]_EnableMirrorTexture ("Enable Mirror Texture", Float) = 0 + _MirrorTexture ("Mirror Tex", 2D) = "white" { } + [HideInInspector][Vector2]_MirrorTexturePan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _MirrorTextureUV ("UV", Int) = 0 + [HideInInspector] m_end_mirrorOptions ("Mirror", Float) = 0 + + // Distance Fade + [HideInInspector] m_start_distanceFade ("Distance Fade", Float) = 0 + _MainMinAlpha ("Minimum Alpha", Range(0, 1)) = 0 + _MainFadeTexture ("Fade Mask", 2D) = "white" { } + [HideInInspector][Vector2]_MainFadeTexturePan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _MainFadeTextureUV ("UV", Int) = 0 + [Vector2]_MainDistanceFade ("Distance Fade X to Y", Vector) = (0, 0, 0, 0) + [HideInInspector] m_end_distanceFade ("Distance Fade", Float) = 0 + + // Angular Fade + [HideInInspector] m_start_angularFade ("Angular Fade", Float) = 0 + [ThryToggle(_SUNDISK_NONE)]_EnableRandom ("Enable Angular Fade", Float) = 0 + [Enum(Camera Face Model, 0, Model Face Camera, 1, Face Each Other, 2)] _AngleType ("Angle Type", Int) = 0 + [Enum(Model, 0, Vertex, 1)] _AngleCompareTo ("Model or Vert Positon", Int) = 0 + [Vector3]_AngleForwardDirection ("Forward Direction", Vector) = (0, 0, 1, 0) + _CameraAngleMin ("Camera Angle Min", Range(0, 180)) = 45 + _CameraAngleMax ("Camera Angle Max", Range(0, 180)) = 90 + _ModelAngleMin ("Model Angle Min", Range(0, 180)) = 45 + _ModelAngleMax ("Model Angle Max", Range(0, 180)) = 90 + _AngleMinAlpha ("Min Alpha", Range(0, 1)) = 0 + [HideInInspector] m_end_angularFade ("Angular Fade", Float) = 0 + + // UV Distortion + [HideInInspector] m_start_distortionFlow ("UV Distortion", Float) = 0 + [ThryToggle(USER_LUT)] _EnableDistortion ("Enabled?", Float) = 0 + _DistortionMask ("Mask--{reference_properties:[_DistortionMaskPan, _DistortionMaskUV]}", 2D) = "white" { } + [HideInInspector][Vector2]_DistortionMaskPan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3)] _DistortionMaskUV ("UV", Int) = 0 + _DistortionFlowTexture ("Distortion Texture 1", 2D) = "black" { } + _DistortionFlowTexture1 ("Distortion Texture 2", 2D) = "black" { } + _DistortionStrength ("Strength1", Float) = 0.5 + _DistortionStrength1 ("Strength2", Float) = 0.5 + [Vector2]_DistortionSpeed ("Speed1", Vector) = (0.5, 0.5, 0, 0) + [Vector2]_DistortionSpeed1 ("Speed2", Vector) = (0.5, 0.5, 0, 0) + [HideInInspector] m_end_distortionFlow ("UV Distortion", Float) = 0 + + // Start Patreon + [HideInInspector] m_Patreon ("Patreon (Pro Only)--{is_hideable:true}", Float) = 0 + [Helpbox(1)] _PatreonHelpBox("This section is included to let people know what's included in the pro shader. Nothing here can be used in toon. Feel free to hide this section with the custom UI dropdown at the top of the material.", Int) = 0 + // Video Options + [HideInInspector] m_start_Video ("Video", Float) = 0 + [HideInInspector] m_start_VideoSettings ("Video Texture Settings", Float) = 0 + [HideInInspector] m_end_VideoSettings ("Video Texture Settings", Float) = 0 + [HideInInspector] m_start_VideoDebug ("Video Debug", Float) = 0 + [HideInInspector] m_end_VideoDebug ("Video Debug", Float) = 0 + [HideInInspector] m_start_CRT ("CRT Options", Float) = 0 + [HideInInspector] m_end_CRT ("CRT Options", Float) = 0 + [HideInInspector] m_start_Gameboy ("Gameboy Options", Float) = 0 + [HideInInspector] m_end_Gameboy ("Gameboy Options", Float) = 0 + [HideInInspector] m_end_Video ("Video", Float) = 0 + + // TouchFX + [HideInInspector] m_start_TouchOptions ("Touch FX", Float) = 0 + [HideInInspector] m_start_Bulge ("Bulge", Float) = 0 + [HideInInspector] m_end_Bulge ("Bulge", Float) = 0 + + [HideInInspector] m_start_TouchGlow ("Touch Color", Float) = 0 + [HideInInspector] m_end_TouchGlow ("Touch Color", Float) = 0 + [HideInInspector] m_end_TouchOptions ("Touch FX", Float) = 0 + + // Hologram + [HideInInspector] m_start_Hologram ("Hologram Alpha", Float) = 0 + [HideInInspector] m_start_FresnelAlpha ("Fresnel Alpha", Float) = 0 + [HideInInspector] m_end_FresnelAlpha ("Fresnel Alpha", Float) = 0 + [HideInInspector] m_end_Hologram ("Hologram Alpha", Float) = 0 + + // GrabPass + [HideInInspector] m_start_GrabPass ("GrabPass Transparency", Float) = 0 + [HideInInspector] m_start_Refraction ("Refraction", Float) = 0 + [HideInInspector] m_end_Refraction ("Refraction", Float) = 0 + [HideInInspector] m_start_Blur ("Blur", Float) = 0 + [HideInInspector] m_end_Blur ("Blur", Float) = 0 + [HideInInspector] m_end_GrabPass ("GrabPass Transparency", Float) = 0 + + // Iridescence + [HideInInspector] m_start_Iridescence ("Iridescence", Float) = 0 + [HideInInspector] m_end_Iridescence ("Iridescence", Float) = 0 + + // Vertex Glitching + [HideInInspector] m_start_VertexGlitch ("Vertex Glitching", Float) = 0 + [HideInInspector] m_end_VertexGlitch ("Vertex Glitching", Float) = 0 + + // Spawn In Effects + [HideInInspector] m_start_Spawns ("Spawns", Float) = 0 + [HideInInspector] m_start_ScifiSpawnIn ("Sci Fi", Float) = 0 + [HideInInspector] m_end_SciFiSpawnIn ("Sci Fi", Float) = 0 + [HideInInspector] m_end_Spawns ("Spawns", Float) = 0 + + // Voronoi + [HideInInspector] m_start_Voronoi ("Voronoi", Float) = 0 + [HideInInspector] m_start_voronoiRandom ("Voronoi Random Cell Color", Float) = 0 + [HideInInspector] m_end_voronoiRandom ("Voronoi Random Cell Color", Float) = 0 + [HideInInspector] m_end_Voronoi ("Vertex Glitching", Float) = 0 + + [HideInInspector] m_start_BlackLight ("Black Light Mask", Float) = 0 + [HideInInspector] m_end_BlackLight ("Black Light", Float) = 0 + // End Patreon + + // Outline Options + [HideInInspector] m_outlineOptions ("Outlines", Float) = 0 + [ToggleUI]_commentIfZero_EnableOutlinePass ("Enable Outlines", float) = 0 + [Enum(Basic, 0, Tint, 1, Rim Light, 2, Directional, 3, DropShadow, 4)]_OutlineMode ("Mode", Int) = 0 + _OutlineTintMix ("Tint Mix--{condition_show:{type:PROPERTY_BOOL,data:_OutlineMode==1}}", Range(0, 1)) = 0 + _OutlineRimLightBlend ("Rim Light Blend--{condition_show:{type:PROPERTY_BOOL,data:_OutlineMode==2}}", Range(0, 1)) = 0 + _OutlinePersonaDirection ("directional Offset XY--{condition_show:{type:PROPERTY_BOOL,data:_OutlineMode==3}}", Vector) = (1, 0, 0, 0) + _OutlineDropShadowOffset ("Drop Direction XY--{condition_show:{type:PROPERTY_BOOL,data:_OutlineMode==4}}", Vector) = (1, 0, 0, 0) + [ToggleUI]_OutlineFixedSize ("Fixed Size?", Float) = 0 + _OutlinesMaxDistance ("Fixed Size Max Distance", Float) = 9999 + [Enum(Off, 0, Normals, 1, Mask VC.r, 2)]_OutlineUseVertexColors ("Vertex Color", Float) = 0 + [ToggleUI]_OutlineLit ("Enable Lighting", Float) = 1 + _LineWidth ("Width", Float) = 0 + _LineColor ("Color", Color) = (1, 1, 1, 1) + _OutlineEmission ("Outline Emission", Float) = 0 + _OutlineTexture ("Outline Texture--{reference_properties:[_OutlineTexturePan, _OutlineTextureUV]}", 2D) = "white" { } + [HideInInspector][Vector2]_OutlineTexturePan ("Outline Texture Pan", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _OutlineTextureUV ("UV", Int) = 0 + _OutlineMask ("Outline Mask--{reference_properties:[_OutlineMaskPan, _OutlineMaskUV]}", 2D) = "white" { } + [HideInInspector][Vector2]_OutlineMaskPan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _OutlineMaskUV ("UV", Int) = 0 + _OutlineShadowStrength ("Shadow Strength", Range(0, 1)) = 1 + [HideInInspector] m_start_outlineAdvanced ("Advanced", Float) = 0 + [Vector2]_OutlineFadeDistance ("Outline distance Fade", Vector) = (0, 0, 0, 0) + [Enum(UnityEngine.Rendering.CullMode)] _OutlineCull ("Cull", Float) = 1 + _OutlineOffsetFactor("Offset Factor", Float) = 0 + _OutlineOffsetUnits("Offset Units", Float) = 0 + [HideInInspector] m_end_outlineAdvanced ("Advanced", Float) = 0 + + // Parallax Mapping + [HideInInspector] m_ParallaxMap ("Parallax", Float) = 0 + [ThryToggle(_PARALLAXMAP)]_ParallaxMap ("Enable Parallax FX", Float) = 0 + [ToggleUI]_ParallaxHeightMapEnabled ("Enable Parallax Height", Float) = 0 + [ToggleUI]_ParallaxInternalMapEnabled ("Enable Parallax Internal", Float) = 0 + [HideInInspector] m_start_parallaxHeightmap ("Heightmap", Float) = 0 + [Vector2]_ParallaxHeightMapPan ("Pan", Vector) = (0, 0, 0, 0) + [Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3)] _ParallaxUV ("Parallax UV", Int) = 0 + _ParallaxHeightMap ("Height Map", 2D) = "black" { } + _ParallaxHeightMapMask ("Mask", 2D) = "white" { } + [HideInInspector][Vector2]_ParallaxHeightMapMaskPan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _ParallaxHeightMapMaskUV ("UV", Int) = 0 + _ParallaxStrength ("Parallax Strength", Range(0, 1)) = 0 + [HideInInspector] m_end_parallaxHeightmap ("Heightmap", Float) = 0 + [HideInInspector] m_start_parallaxInternal ("Internal", Float) = 0 + [Enum(Basic, 0, HeightMap, 1)] _ParallaxInternalHeightmapMode ("Parallax Mode", Int) = 0 + [ToggleUI]_ParallaxInternalHeightFromAlpha ("HeightFromAlpha", Float) = 0 + _ParallaxInternalMap ("Internal Map", 2D) = "black" { } + _ParallaxInternalMapMask ("Mask", 2D) = "white" { } + [HideInInspector][Vector2]_ParallaxInternalMapMaskPan ("Panning", Vector) = (0, 0, 0, 0) + [HideInInspector][Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, DistortedUV1, 4)] _ParallaxInternalMapMaskUV ("UV", Int) = 0 + _ParallaxInternalIterations ("Parallax Internal Iterations", Range(1, 50)) = 1 + _ParallaxInternalMinDepth ("Min Depth", Float) = 0 + _ParallaxInternalMaxDepth ("Max Depth", Float) = 1 + _ParallaxInternalMinFade ("Min Depth Brightness", Range(0, 5)) = 0 + _ParallaxInternalMaxFade ("Max Depth Brightness", Range(0, 5)) = 1 + _ParallaxInternalMinColor ("Min Depth Color", Color) = (1, 1, 1, 1) + _ParallaxInternalMaxColor ("Max Depth Color", Color) = (1, 1, 1, 1) + [Vector2]_ParallaxInternalPanSpeed ("Pan Speed", Vector) = (0, 0, 0, 0) + [Vector2]_ParallaxInternalPanDepthSpeed ("Per Level Speed Multiplier", Vector) = (0, 0, 0, 0) + [HideInInspector] m_end_parallaxInternal ("Internal", Float) = 0 + [HideInInspector] m_start_parallaxAdvanced ("Advanced", Float) = 0 + _ParallaxBias ("Parallax Bias (0.42)", Float) = 0.42 + [HideInInspector] m_end_parallaxAdvanced ("Advanced", Float) = 0 + + // Rendering Options + [HideInInspector] m_renderingOptions ("Rendering Options", Float) = 0 + [Enum(UnityEngine.Rendering.CullMode)] _Cull ("Cull", Float) = 2 + [Enum(UnityEngine.Rendering.CompareFunction)] _ZTest ("ZTest", Float) = 4 + [Enum(Off, 0, On, 1)] _ZWrite ("ZWrite", Int) = 1 + [Enum(Thry.ColorMask)] _ColorMask ("Color Mask", Int) = 15 + _OffsetFactor ("Offset Factor", Float) = 0.0 + _OffsetUnits ("Offset Units", Float) = 0.0 + [ToggleUI]_IgnoreFog ("Ignore Fog", Float) = 0 + [HideInInspector] Instancing ("Instancing", Float) = 0 //add this property for instancing variants settings to be shown + + // Blending Options + [HideInInspector] m_start_blending ("Blending", Float) = 0 + [Enum(Thry.BlendOp)]_BlendOp ("RGB Blend Op", Int) = 0 + [Enum(Thry.BlendOp)]_BlendOpAlpha ("Alpha Blend Op", Int) = 0 + [Enum(UnityEngine.Rendering.BlendMode)] _SrcBlend ("Source Blend", Int) = 1 + [Enum(UnityEngine.Rendering.BlendMode)] _DstBlend ("Destination Blend", Int) = 0 + [HideInInspector] m_end_blending ("Blending", Float) = 0 + + // Stencils + [HideInInspector] m_start_StencilPassOptions ("Stencil", Float) = 0 + [IntRange] _StencilRef ("Stencil Reference Value", Range(0, 255)) = 0 + [IntRange] _StencilReadMask ("Stencil ReadMask Value", Range(0, 255)) = 255 + [IntRange] _StencilWriteMask ("Stencil WriteMask Value", Range(0, 255)) = 255 + [Enum(UnityEngine.Rendering.StencilOp)] _StencilPassOp ("Stencil Pass Op", Float) = 0 + [Enum(UnityEngine.Rendering.StencilOp)] _StencilFailOp ("Stencil Fail Op", Float) = 0 + [Enum(UnityEngine.Rendering.StencilOp)] _StencilZFailOp ("Stencil ZFail Op", Float) = 0 + [Enum(UnityEngine.Rendering.CompareFunction)] _StencilCompareFunction ("Stencil Compare Function", Float) = 8 + [HideInInspector] m_end_StencilPassOptions ("Stencil", Float) = 0 + + // Outline Stencil + [HideInInspector] m_start_OutlineStencil ("Outline Stencil--{is_hideable:true, condition_show:{type:PROPERTY_BOOL,data:_commentIfZero_EnableOutlinePass==1}}", Float) = 0 + [IntRange] _OutlineStencilRef ("Stencil Reference Value", Range(0, 255)) = 0 + [IntRange] _OutlineStencilReadMask ("Stencil ReadMask Value", Range(0, 255)) = 255 + [IntRange] _OutlineStencilWriteMask ("Stencil WriteMask Value", Range(0, 255)) = 255 + [Enum(UnityEngine.Rendering.StencilOp)] _OutlineStencilPassOp ("Stencil Pass Op", Float) = 0 + [Enum(UnityEngine.Rendering.StencilOp)] _OutlineStencilFailOp ("Stencil Fail Op", Float) = 0 + [Enum(UnityEngine.Rendering.StencilOp)] _OutlineStencilZFailOp ("Stencil ZFail Op", Float) = 0 + [Enum(UnityEngine.Rendering.CompareFunction)] _OutlineStencilCompareFunction ("Stencil Compare Function", Float) = 8 + [HideInInspector] m_end_OutlineStencil ("Outline Stencil", Float) = 0 + + // Debug Options + [HideInInspector] m_start_debugOptions ("Debug", Float) = 0 + [HideInInspector][ThryToggle(_COLOROVERLAY_ON)]_DebugEnabled ("Display Debug Info", Float) = 0 + _VertexUnwrap ("Unwrap", Range(0, 1)) = 0 + [Enum(Off, 0, Vertex Normal, 1, Pixel Normal, 2, Tangent, 3, Binormal, 4, Local 0 Distance, 5)] _DebugMeshData ("Mesh Data", Int) = 0 + [Enum(Off, 0, Attenuation, 1, Direct Lighting, 2, Indirect Lighting, 3, light Map, 4, Ramped Light Map, 5, Final Lighting, 6)] _DebugLightingData ("Lighting Data", Int) = 0 + [Enum(Off, 0, View Dir, 1, Tangent View Dir, 2, Forward Dir, 3, WorldPos, 4, View Dot Normal, 5)] _DebugCameraData ("Camera Data", Int) = 0 + [HideInInspector] m_end_debugOptions ("Debug", Float) = 0 + } + + + //originalEditorCustomEditor "PoiToon" + CustomEditor "Thry.ShaderEditor" + SubShader + { + Tags { "RenderType" = "Opaque" "Queue" = "Geometry" } + + Pass + { + Name "MainPass" + Tags { "LightMode" = "ForwardBase" } + + Stencil + { + Ref [_StencilRef] + ReadMask [_StencilReadMask] + WriteMask [_StencilWriteMask] + Comp [_StencilCompareFunction] + Pass [_StencilPassOp] + Fail [_StencilFailOp] + ZFail [_StencilZFailOp] + } + + ZWrite [_ZWrite] + Cull [_Cull] + AlphaToMask [_AlphaToMask] + ZTest [_ZTest] + ColorMask [_ColorMask] + Offset [_OffsetFactor], [_OffsetUnits] + + BlendOp [_BlendOp], [_BlendOpAlpha] + Blend [_SrcBlend] [_DstBlend] + + CGPROGRAM + + #pragma target 5.0 + #define FORWARD_BASE_PASS + float _Mode; + // Base Pass Features + // Decal + #pragma shader_feature GEOM_TYPE_BRANCH + #pragma shader_feature GEOM_TYPE_BRANCH_DETAIL + #pragma shader_feature GEOM_TYPE_FROND + #pragma shader_feature DEPTH_OF_FIELD_COC_VIEW + #pragma multi_compile _ VERTEXLIGHT_ON + // patreon Base + // Black Light Mask + #pragma shader_feature _SPECULARHIGHLIGHTS_OFF + // voronoi + #pragma shader_feature CHROMATIC_ABERRATION + // UV Distortion + #pragma shader_feature USER_LUT + // Vertex Offsets + #pragma shader_feature AUTO_EXPOSURE + // Bulge + #pragma shader_feature BLOOM_LOW + // Hologram Alpha + #pragma shader_feature DEPTH_OF_FIELD + //Grab Pass Blur + #pragma shader_feature CHROMATIC_ABERRATION_LOW + //Video + #pragma shader_feature BLOOM + #pragma shader_feature _PARALLAXMAP + // Mirror + #pragma shader_feature _REQUIRE_UV2 + // Random + #pragma shader_feature _SUNDISK_NONE + // Hue Shift + #pragma shader_feature COLOR_GRADING_HDR + // Dissolve + #pragma shader_feature DISTORT + // Panosphere + #pragma shader_feature _DETAIL_MULX2 + // Touch Color + #pragma shader_feature GRAIN + // Lighting + #pragma shader_feature VIGNETTE_MASKED + // Flipbook + #pragma shader_feature _SUNDISK_HIGH_QUALITY + // Rim Lighting + #pragma shader_feature _GLOSSYREFLECTIONS_OFF + // Enviro Rim + #pragma shader_feature _MAPPING_6_FRAMES_LAYOUT + // Metal + #pragma shader_feature _METALLICGLOSSMAP + // Poi Shader Model + #pragma shader_feature VIGNETTE_CLASSIC + // Iridescence + #pragma shader_feature BLOOM_LENS_DIRT + // Matcap + #pragma shader_feature _COLORADDSUBDIFF_ON + // Matcap 2 + #pragma shader_feature COLOR_GRADING_HDR_3D + // Specular + #pragma shader_feature _SPECGLOSSMAP + // Specular 2 + #pragma shader_feature DITHERING + // SubSurface + #pragma shader_feature _TERRAIN_NORMAL_MAP + // Debug + #pragma shader_feature _COLOROVERLAY_ON + // Glitter + #pragma shader_feature _SUNDISK_SIMPLE + // RGBMask + #pragma shader_feature VIGNETTE + // RGB NORMALS + #pragma shader_feature GEOM_TYPE_MESH + //Details + #pragma shader_feature FINALPASS + // Text + #pragma shader_feature EFFECT_BUMP + // Emission 1 + #pragma shader_feature _EMISSION + // Emission 2 + #pragma shader_feature EFFECT_HUE_VARIATION + // Clear Coat + #pragma shader_feature _COLORCOLOR_ON + #pragma multi_compile_instancing + #pragma multi_compile_fwdbase + #pragma fragmentoption ARB_precision_hint_fastest + #pragma multi_compile_fog + #pragma vertex vert + #pragma fragment frag + #include "../Includes/CGI_PoiPass.cginc" + ENDCG + + } + + //LightingAdditiveEnable + Pass + { + Name "ForwardAddPass" + Tags { "LightMode" = "ForwardAdd" } + + Stencil + { + Ref [_StencilRef] + Comp [_StencilCompareFunction] + Pass [_StencilPassOp] + Fail [_StencilFailOp] + ZFail [_StencilZFailOp] + } + ZWrite Off + BlendOp [_BlendOp], [_BlendOpAlpha] + Blend One One + Cull [_Cull] + ZTest [_ZTest] + ColorMask [_ColorMask] + Offset [_OffsetFactor], [_OffsetUnits] + CGPROGRAM + + #pragma target 5.0 + #define FORWARD_ADD_PASS + float _Mode; + // Add Pass Features + // Decal + #pragma shader_feature GEOM_TYPE_BRANCH + #pragma shader_feature GEOM_TYPE_BRANCH_DETAIL + #pragma shader_feature GEOM_TYPE_FROND + #pragma shader_feature DEPTH_OF_FIELD_COC_VIEW + // patreon Additive + // Black Light Mask + #pragma shader_feature _SPECULARHIGHLIGHTS_OFF + // voronoi + #pragma shader_feature CHROMATIC_ABERRATION + // UV Distortion + #pragma shader_feature USER_LUT + // Vertex Offsets + #pragma shader_feature AUTO_EXPOSURE + // Bulge + #pragma shader_feature BLOOM_LOW + #pragma shader_feature _PARALLAX_MAP + // Mirror + #pragma shader_feature _REQUIRE_UV2 + // Random + #pragma shader_feature _SUNDISK_NONE + // Hue Shift + #pragma shader_feature COLOR_GRADING_HDR + // Dissolve + #pragma shader_feature DISTORT + // Panosphere + #pragma shader_feature _DETAIL_MULX2 + // Lighting + #pragma shader_feature VIGNETTE_MASKED + // Flipbook + #pragma shader_feature _SUNDISK_HIGH_QUALITY + // Rim Lighting + #pragma shader_feature _GLOSSYREFLECTIONS_OFF + // Metal + #pragma shader_feature _METALLICGLOSSMAP + // Poi Shader Model + #pragma shader_feature VIGNETTE_CLASSIC + // Iridescence + #pragma shader_feature BLOOM_LENS_DIRT + // Matcap + #pragma shader_feature _COLORADDSUBDIFF_ON + // Matcap 2 + #pragma shader_feature COLOR_GRADING_HDR_3D + // Specular + #pragma shader_feature _SPECGLOSSMAP + // Specular 2 + #pragma shader_feature DITHERING + // SubSurface + #pragma shader_feature _TERRAIN_NORMAL_MAP + // RGBMask + #pragma shader_feature VIGNETTE + // RGB NORMALS + #pragma shader_feature GEOM_TYPE_MESH + //Details + #pragma shader_feature FINALPASS + // Text + #pragma shader_feature EFFECT_BUMP + // Debug + #pragma shader_feature _COLOROVERLAY_ON + // Glitter + #pragma shader_feature _SUNDISK_SIMPLE + // Disable Directionals + #pragma shader_feature _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A + // Emission + #pragma shader_feature _EMISSION + #pragma multi_compile_instancing + #pragma multi_compile_fwdadd_fullshadows + #pragma vertex vert + #pragma fragment frag + #include "../Includes/CGI_PoiPass.cginc" + ENDCG + + } + //LightingAdditiveEnable + + //EnableOutlinePass + Pass + { + Name "Outline" + Tags { "LightMode" = "ForwardBase" } + Stencil + { + Ref [_OutlineStencilRef] + ReadMask [_OutlineStencilReadMask] + WriteMask [_OutlineStencilWriteMask] + Comp [_OutlineStencilCompareFunction] + Pass [_OutlineStencilPassOp] + Fail [_OutlineStencilFailOp] + ZFail [_OutlineStencilZFailOp] + } + ZTest [_ZTest] + ColorMask [_ColorMask] + Offset [_OutlineOffsetFactor], [_OutlineOffsetUnits] + BlendOp [_BlendOp], [_BlendOpAlpha] + Blend [_SrcBlend] [_DstBlend] + ZWrite [_ZWrite] + AlphaToMask [_AlphaToMask] + Cull [_OutlineCull] + CGPROGRAM + + #pragma target 5.0 + #define FORWARD_BASE_PASS + #define OUTLINE + float _Mode; + #pragma multi_compile _ VERTEXLIGHT_ON + // patreon Additive + // Black Light Mask + #pragma shader_feature _SPECULARHIGHLIGHTS_OFF + // voronoi + #pragma shader_feature CHROMATIC_ABERRATION + // UV Distortion + #pragma shader_feature USER_LUT + // Vertex Offsets + #pragma shader_feature AUTO_EXPOSURE + // Mirror + #pragma shader_feature _REQUIRE_UV2 + // Random + #pragma shader_feature _SUNDISK_NONE + // Dissolve + #pragma shader_feature DISTORT + // Lighting + #pragma shader_feature VIGNETTE_MASKED + #pragma multi_compile_fwdbase + #pragma fragmentoption ARB_precision_hint_fastest + #pragma multi_compile_fog + #pragma multi_compile_instancing + #pragma vertex vert + #pragma fragment frag + #include "../Includes/CGI_PoiPassOutline.cginc" + ENDCG + + } + //EnableOutlinePass + + //LightingCastShadows + Pass + { + Name "ShadowCasterPass" + Tags { "LightMode" = "ShadowCaster" } + Stencil + { + Ref [_StencilRef] + Comp [_StencilCompareFunction] + Pass [_StencilPassOp] + Fail [_StencilFailOp] + ZFail [_StencilZFailOp] + } + AlphaToMask Off + ZWrite [_ZWrite] + Cull [_Cull] + ZTest [_ZTest] + ColorMask [_ColorMask] + Offset [_OffsetFactor], [_OffsetUnits] + CGPROGRAM + + #pragma target 5.0 + #define POI_SHADOW + float _Mode; + // UV Distortion + #pragma shader_feature USER_LUT + // Vertex Offsets + #pragma shader_feature AUTO_EXPOSURE + // Flipbook + #pragma shader_feature _SUNDISK_HIGH_QUALITY + // Mirror + #pragma shader_feature _REQUIRE_UV2 + // Random + #pragma shader_feature _SUNDISK_NONE + // Dissolve + #pragma shader_feature DISTORT + #pragma multi_compile_instancing + #pragma vertex vertShadowCaster + #pragma fragment fragShadowCaster + #include "../Includes/CGI_PoiPassShadow.cginc" + ENDCG + + } + //LightingCastShadows + + Pass + { + Tags { "LightMode" = "Meta" } + Cull Off + CGPROGRAM + + #pragma target 5.0 + #define POI_META_PASS + float _Mode; + // UV Distortion + #pragma shader_feature USER_LUT + // Hologram Alpha + #pragma shader_feature DEPTH_OF_FIELD + //Video + #pragma shader_feature BLOOM + #pragma shader_feature _PARALLAXMAP + // Mirror + #pragma shader_feature _REQUIRE_UV2 + // Random + #pragma shader_feature _SUNDISK_NONE + // Hue Shift + #pragma shader_feature COLOR_GRADING_HDR + // Dissolve + #pragma shader_feature DISTORT + // Panosphere + #pragma shader_feature _DETAIL_MULX2 + // Lighting + #pragma shader_feature VIGNETTE_MASKED + // Flipbook + #pragma shader_feature _SUNDISK_HIGH_QUALITY + // Rim Lighting + #pragma shader_feature _GLOSSYREFLECTIONS_OFF + // Enviro Rim + #pragma shader_feature _MAPPING_6_FRAMES_LAYOUT + // Metal + #pragma shader_feature _METALLICGLOSSMAP + // Poi Shader Model + #pragma shader_feature VIGNETTE_CLASSIC + // Iridescence + #pragma shader_feature BLOOM_LENS_DIRT + // Matcap + #pragma shader_feature _COLORADDSUBDIFF_ON + // Matcap 2 + #pragma shader_feature COLOR_GRADING_HDR_3D + // Specular + #pragma shader_feature _SPECGLOSSMAP + // Specular 2 + #pragma shader_feature DITHERING + // SubSurface + #pragma shader_feature _TERRAIN_NORMAL_MAP + // Debug + #pragma shader_feature _COLOROVERLAY_ON + // Glitter + #pragma shader_feature _SUNDISK_SIMPLE + // RGBMask + #pragma shader_feature VIGNETTE + // RGB NORMALS + #pragma shader_feature GEOM_TYPE_MESH + //Details + #pragma shader_feature FINALPASS + // Text + #pragma shader_feature EFFECT_BUMP + // Emission 1 + #pragma shader_feature _EMISSION + // Emission 2 + #pragma shader_feature EFFECT_HUE_VARIATION + // Clear Coat + #pragma shader_feature _COLORCOLOR_ON + #pragma vertex vert + #pragma fragment frag + #include "../Includes/CGI_PoiPass.cginc" + ENDCG + + } + } +}
\ No newline at end of file diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Shaders/S_Poiyomi_Toon.shader.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Shaders/S_Poiyomi_Toon.shader.meta new file mode 100644 index 00000000..99e5f59d --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Shaders/Pro/Shaders/S_Poiyomi_Toon.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 917b37092bae034459c28c00a3a19b54 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures.meta new file mode 100644 index 00000000..f0791f0a --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: eb7f6eb09917cab429d6293cf5e9fa50 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Cubemaps.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Cubemaps.meta new file mode 100644 index 00000000..3c1d5194 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Cubemaps.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a1429521c12476947b651a6f51a58e4e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Cubemaps/T_Clouds_CM.jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Cubemaps/T_Clouds_CM.jpg Binary files differnew file mode 100644 index 00000000..e17ab715 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Cubemaps/T_Clouds_CM.jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Cubemaps/T_Clouds_CM.jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Cubemaps/T_Clouds_CM.jpg.meta new file mode 100644 index 00000000..6c33767a --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Cubemaps/T_Clouds_CM.jpg.meta @@ -0,0 +1,87 @@ +fileFormatVersion: 2 +guid: 8fc1b64e56c5c6540a4fe651abb8e855 +TextureImporter: + fileIDToRecycleName: + 8900000: generatedCubemap + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 2 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Cubemaps/T_Gold_CM.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Cubemaps/T_Gold_CM.png Binary files differnew file mode 100644 index 00000000..d2f6aa31 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Cubemaps/T_Gold_CM.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Cubemaps/T_Gold_CM.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Cubemaps/T_Gold_CM.png.meta new file mode 100644 index 00000000..7ebd60f8 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Cubemaps/T_Gold_CM.png.meta @@ -0,0 +1,100 @@ +fileFormatVersion: 2 +guid: 4c4ee3a819827ba44982aa9914a492c1 +TextureImporter: + fileIDToRecycleName: + 8900000: generatedCubemap + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 2 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Cubemaps/T_Shine_CM.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Cubemaps/T_Shine_CM.png Binary files differnew file mode 100644 index 00000000..3bfa8575 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Cubemaps/T_Shine_CM.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Cubemaps/T_Shine_CM.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Cubemaps/T_Shine_CM.png.meta new file mode 100644 index 00000000..39875c29 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Cubemaps/T_Shine_CM.png.meta @@ -0,0 +1,87 @@ +fileFormatVersion: 2 +guid: 926fb776fa6806b4ab672dc408235d54 +TextureImporter: + fileIDToRecycleName: + 8900000: generatedCubemap + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 2 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Cubemaps/T_ToonLit_CM.psd b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Cubemaps/T_ToonLit_CM.psd Binary files differnew file mode 100644 index 00000000..52083745 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Cubemaps/T_ToonLit_CM.psd diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Cubemaps/T_ToonLit_CM.psd.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Cubemaps/T_ToonLit_CM.psd.meta new file mode 100644 index 00000000..075b6736 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Cubemaps/T_ToonLit_CM.psd.meta @@ -0,0 +1,87 @@ +fileFormatVersion: 2 +guid: 8c08eedd2cd5c4341b81cbad4b78bc14 +TextureImporter: + fileIDToRecycleName: + 8900000: generatedCubemap + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 2 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Cubemaps/T_iridescent_CM.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Cubemaps/T_iridescent_CM.png Binary files differnew file mode 100644 index 00000000..230856ac --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Cubemaps/T_iridescent_CM.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Cubemaps/T_iridescent_CM.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Cubemaps/T_iridescent_CM.png.meta new file mode 100644 index 00000000..04138b19 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Cubemaps/T_iridescent_CM.png.meta @@ -0,0 +1,87 @@ +fileFormatVersion: 2 +guid: 137e423b84d592745900f40e96109a42 +TextureImporter: + fileIDToRecycleName: + 8900000: generatedCubemap + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 2 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Debug.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Debug.meta new file mode 100644 index 00000000..bd494e9a --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Debug.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 507cfb58ea0b0124aac01d84f8c5265d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Debug/T_SecretMessage.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Debug/T_SecretMessage.png Binary files differnew file mode 100644 index 00000000..fe616c54 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Debug/T_SecretMessage.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Debug/T_SecretMessage.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Debug/T_SecretMessage.png.meta new file mode 100644 index 00000000..81024e03 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Debug/T_SecretMessage.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 26945f7417f404a4991f14e10add5cbe +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Defaults.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Defaults.meta new file mode 100644 index 00000000..040646bb --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Defaults.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 92b9686eec302ad438fe89b34a54c10e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Defaults/T_Default_CM.exr b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Defaults/T_Default_CM.exr Binary files differnew file mode 100644 index 00000000..90154e84 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Defaults/T_Default_CM.exr diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Defaults/T_Default_CM.exr.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Defaults/T_Default_CM.exr.meta new file mode 100644 index 00000000..05598bef --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Defaults/T_Default_CM.exr.meta @@ -0,0 +1,100 @@ +fileFormatVersion: 2 +guid: 1f79f71b84fc2844bb81e9ae4f5bc384 +TextureImporter: + fileIDToRecycleName: + 8900000: generatedCubemap + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 2 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Defaults/T_Default_SR.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Defaults/T_Default_SR.png Binary files differnew file mode 100644 index 00000000..3569f8d0 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Defaults/T_Default_SR.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Defaults/T_Default_SR.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Defaults/T_Default_SR.png.meta new file mode 100644 index 00000000..d8e1c2ac --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Defaults/T_Default_SR.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 61bd594533da4fc42bd46ef93ba5a4f6 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 2 + aniso: 16 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 128 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Defaults/T_MainTex_D.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Defaults/T_MainTex_D.png Binary files differnew file mode 100644 index 00000000..47112887 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Defaults/T_MainTex_D.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Defaults/T_MainTex_D.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Defaults/T_MainTex_D.png.meta new file mode 100644 index 00000000..e2305ccf --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Defaults/T_MainTex_D.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: a6d6984545cde4a4f9317b17d6dca225 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 2 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Detail.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Detail.meta new file mode 100644 index 00000000..ed45c842 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Detail.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3361b579c3e1c1543aa2869314b9da99 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Detail/T_Cracks_D.jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Detail/T_Cracks_D.jpg Binary files differnew file mode 100644 index 00000000..bae7da8b --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Detail/T_Cracks_D.jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Detail/T_Cracks_D.jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Detail/T_Cracks_D.jpg.meta new file mode 100644 index 00000000..89715dcf --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Detail/T_Cracks_D.jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 0e5adf556c7cd744cb68a0358216904f +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/DiscordBannerTrans.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/DiscordBannerTrans.png Binary files differnew file mode 100644 index 00000000..8c29e407 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/DiscordBannerTrans.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/DiscordBannerTrans.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/DiscordBannerTrans.png.meta new file mode 100644 index 00000000..d9327806 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/DiscordBannerTrans.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: f0639686d59f97549bb28e5ee83a6710 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Distortion.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Distortion.meta new file mode 100644 index 00000000..ac11b830 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Distortion.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 27dde615f48443844b28c248ff80844f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Distortion/T_DistortionMap0_DM.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Distortion/T_DistortionMap0_DM.png Binary files differnew file mode 100644 index 00000000..6f9e85f2 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Distortion/T_DistortionMap0_DM.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Distortion/T_DistortionMap0_DM.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Distortion/T_DistortionMap0_DM.png.meta new file mode 100644 index 00000000..9c055749 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Distortion/T_DistortionMap0_DM.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 07f0a54a3a4e7754eabc8ced70d7b30c +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 0 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Distortion/T_DistortionMap1_DM.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Distortion/T_DistortionMap1_DM.png Binary files differnew file mode 100644 index 00000000..c6d2838c --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Distortion/T_DistortionMap1_DM.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Distortion/T_DistortionMap1_DM.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Distortion/T_DistortionMap1_DM.png.meta new file mode 100644 index 00000000..0cd189d1 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Distortion/T_DistortionMap1_DM.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 70cd704e7a9550241b8a8b51fffc1a68 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fonts.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fonts.meta new file mode 100644 index 00000000..5e9a99e8 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fonts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bcb8eaf8786d24946860980db37f948f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fonts/T_DigitalBold_FONT.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fonts/T_DigitalBold_FONT.png Binary files differnew file mode 100644 index 00000000..b5870a7d --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fonts/T_DigitalBold_FONT.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fonts/T_DigitalBold_FONT.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fonts/T_DigitalBold_FONT.png.meta new file mode 100644 index 00000000..1016a395 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fonts/T_DigitalBold_FONT.png.meta @@ -0,0 +1,86 @@ +fileFormatVersion: 2 +guid: fa80ac020379e5047896d6c7551b216a +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -1 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fonts/T_RobotoBlack_FONT.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fonts/T_RobotoBlack_FONT.png Binary files differnew file mode 100644 index 00000000..c1f1d626 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fonts/T_RobotoBlack_FONT.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fonts/T_RobotoBlack_FONT.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fonts/T_RobotoBlack_FONT.png.meta new file mode 100644 index 00000000..b8b3aa27 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fonts/T_RobotoBlack_FONT.png.meta @@ -0,0 +1,86 @@ +fileFormatVersion: 2 +guid: bb52cc9d00ce83f49a4c555ae9ceeb45 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -1 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fonts/T_RobotoMedium_FONT.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fonts/T_RobotoMedium_FONT.png Binary files differnew file mode 100644 index 00000000..01276189 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fonts/T_RobotoMedium_FONT.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fonts/T_RobotoMedium_FONT.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fonts/T_RobotoMedium_FONT.png.meta new file mode 100644 index 00000000..91601326 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fonts/T_RobotoMedium_FONT.png.meta @@ -0,0 +1,86 @@ +fileFormatVersion: 2 +guid: bd25b8c9bd6d54b4bbf037665d011bc1 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -1 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fonts/T_RobotoRegular_FONT.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fonts/T_RobotoRegular_FONT.png Binary files differnew file mode 100644 index 00000000..7f7f9184 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fonts/T_RobotoRegular_FONT.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fonts/T_RobotoRegular_FONT.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fonts/T_RobotoRegular_FONT.png.meta new file mode 100644 index 00000000..5f087ebf --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fonts/T_RobotoRegular_FONT.png.meta @@ -0,0 +1,86 @@ +fileFormatVersion: 2 +guid: 02efa160dddcf4d4b98cd9c8f73ea0c2 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -1 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur.meta new file mode 100644 index 00000000..0b00c60a --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9bac2ac7d5c58734ba4b3f3c599c7114 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (1).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (1).jpg Binary files differnew file mode 100644 index 00000000..fb1d8240 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (1).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (1).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (1).jpg.meta new file mode 100644 index 00000000..31def976 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (1).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: b2d5844398779944897100ab02debb3f +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (1).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (1).png Binary files differnew file mode 100644 index 00000000..2ee8c488 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (1).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (1).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (1).png.meta new file mode 100644 index 00000000..29229266 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (1).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 6dd6638e8d91f324383b214a129f143d +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (10).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (10).jpg Binary files differnew file mode 100644 index 00000000..83a24e28 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (10).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (10).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (10).jpg.meta new file mode 100644 index 00000000..9194952c --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (10).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: fefe6a3985f51034d940687be8f7202c +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (11).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (11).jpg Binary files differnew file mode 100644 index 00000000..45ca1164 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (11).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (11).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (11).jpg.meta new file mode 100644 index 00000000..1934db78 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (11).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 0b48796ae2eff2e4592f97849436677a +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (12).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (12).jpg Binary files differnew file mode 100644 index 00000000..7f59b39f --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (12).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (12).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (12).jpg.meta new file mode 100644 index 00000000..08ecb19a --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (12).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 1427eb7067b0ff84fbb3c12c2a3da7a9 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (13).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (13).jpg Binary files differnew file mode 100644 index 00000000..9bbea5a6 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (13).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (13).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (13).jpg.meta new file mode 100644 index 00000000..fcb3cf59 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (13).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: f6678285637dca9478005297b797c3e5 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (14).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (14).jpg Binary files differnew file mode 100644 index 00000000..4ae51f90 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (14).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (14).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (14).jpg.meta new file mode 100644 index 00000000..5722a193 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (14).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: e449b338bcb7aa04d856b0fca929c017 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (15).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (15).jpg Binary files differnew file mode 100644 index 00000000..13da88f3 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (15).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (15).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (15).jpg.meta new file mode 100644 index 00000000..e34df685 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (15).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 10a7a1354002a1044ad5ef6a7d65eb07 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (16).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (16).jpg Binary files differnew file mode 100644 index 00000000..6bae32f9 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (16).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (16).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (16).jpg.meta new file mode 100644 index 00000000..273efee7 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (16).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 7e8ded856e9486c45a0c72a2ca9b2cfe +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (17).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (17).jpg Binary files differnew file mode 100644 index 00000000..ee5b87db --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (17).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (17).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (17).jpg.meta new file mode 100644 index 00000000..ae664948 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (17).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 86ca19b5a4decea4ea533b7f1f0a80f0 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (18).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (18).jpg Binary files differnew file mode 100644 index 00000000..d29eafae --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (18).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (18).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (18).jpg.meta new file mode 100644 index 00000000..8a42927b --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (18).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: ef2cd5ae79f431f488a863cda3cb1fd1 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (19).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (19).jpg Binary files differnew file mode 100644 index 00000000..c2399036 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (19).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (19).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (19).jpg.meta new file mode 100644 index 00000000..1c7cb0a6 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (19).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 14f9237ca5b8ac04e933d8f136c013cf +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (2).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (2).jpg Binary files differnew file mode 100644 index 00000000..a74b7730 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (2).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (2).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (2).jpg.meta new file mode 100644 index 00000000..c860bc28 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (2).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: dad9afee739f8254ab2dd517e4cf7da0 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (2).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (2).png Binary files differnew file mode 100644 index 00000000..4a13ef48 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (2).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (2).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (2).png.meta new file mode 100644 index 00000000..8a71d23d --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (2).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: c0125b075311ac74c93f83b0e6558dc0 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (21).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (21).jpg Binary files differnew file mode 100644 index 00000000..f61f1220 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (21).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (21).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (21).jpg.meta new file mode 100644 index 00000000..4f4b43f1 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (21).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 5925e757158e2d241b10165ea723b9ef +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (22).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (22).jpg Binary files differnew file mode 100644 index 00000000..f0e147ee --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (22).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (22).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (22).jpg.meta new file mode 100644 index 00000000..a4a4c0b3 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (22).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: e3f0167066cb8de40a2a6e03c35c1812 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (23).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (23).jpg Binary files differnew file mode 100644 index 00000000..7db8225f --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (23).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (23).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (23).jpg.meta new file mode 100644 index 00000000..21291855 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (23).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: ef0eddc6bbd1fe44f8535592c33c8286 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (24).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (24).jpg Binary files differnew file mode 100644 index 00000000..f2aa8050 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (24).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (24).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (24).jpg.meta new file mode 100644 index 00000000..4d6c275b --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (24).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 85673f25242c2fd42bc72f6a2d75a1b7 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (3).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (3).jpg Binary files differnew file mode 100644 index 00000000..45e54e4c --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (3).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (3).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (3).jpg.meta new file mode 100644 index 00000000..2e235128 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (3).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 2c9b1fc62caa05245b2d5691922ed7e9 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (4).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (4).jpg Binary files differnew file mode 100644 index 00000000..5cad21de --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (4).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (4).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (4).jpg.meta new file mode 100644 index 00000000..6492f01c --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (4).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 8ddce56e0290541428b1143f3df5259e +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (4).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (4).png Binary files differnew file mode 100644 index 00000000..33f489ce --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (4).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (4).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (4).png.meta new file mode 100644 index 00000000..16b1eede --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (4).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: b974fce48120c9b408a637334056614e +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (5).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (5).jpg Binary files differnew file mode 100644 index 00000000..e0f46bb0 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (5).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (5).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (5).jpg.meta new file mode 100644 index 00000000..24010a6e --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (5).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: b96cad894c8c3cd4c8b72e4ef06afc01 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (6).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (6).jpg Binary files differnew file mode 100644 index 00000000..5299e6e5 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (6).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (6).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (6).jpg.meta new file mode 100644 index 00000000..536af931 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (6).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 66fa20c31f3fd964795803c2209f2254 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (7).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (7).jpg Binary files differnew file mode 100644 index 00000000..7d55d0fc --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (7).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (7).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (7).jpg.meta new file mode 100644 index 00000000..1ee3afa0 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (7).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 1aff2597cadef9442ab67b460bbd6241 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (8).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (8).jpg Binary files differnew file mode 100644 index 00000000..fa02c79c --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (8).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (8).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (8).jpg.meta new file mode 100644 index 00000000..1e68b551 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (8).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: a0623b299d92a564e8f308dd645856a1 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (9).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (9).jpg Binary files differnew file mode 100644 index 00000000..c64dc159 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (9).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (9).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (9).jpg.meta new file mode 100644 index 00000000..941b7ff9 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/Fur (9).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: d3b42841e5cd27d4bb0f683ec498000e +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/FurHeightMap.gif b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/FurHeightMap.gif Binary files differnew file mode 100644 index 00000000..e5635479 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/FurHeightMap.gif diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/FurHeightMap.gif.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/FurHeightMap.gif.meta new file mode 100644 index 00000000..10f5264a --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/FurHeightMap.gif.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 4936f95df08752e46940d871d9288f05 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/noise_simplex.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/noise_simplex.png Binary files differnew file mode 100644 index 00000000..ae36e914 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/noise_simplex.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/noise_simplex.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/noise_simplex.png.meta new file mode 100644 index 00000000..b2a5bfba --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/noise_simplex.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: d5e4a521aa43ec742a51e66e8da2871a +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/ornage-fur-texture.jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/ornage-fur-texture.jpg Binary files differnew file mode 100644 index 00000000..025b5eb0 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/ornage-fur-texture.jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/ornage-fur-texture.jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/ornage-fur-texture.jpg.meta new file mode 100644 index 00000000..fe35f13e --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Fur/ornage-fur-texture.jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 336f8973abdb4564e901d06333a17ce9 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs.meta new file mode 100644 index 00000000..8399b067 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bdc82b5ca720a64479d96eda8abf7c57 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_2ColorLines_GIF.gif b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_2ColorLines_GIF.gif Binary files differnew file mode 100644 index 00000000..e01cd988 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_2ColorLines_GIF.gif diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_2ColorLines_GIF.gif.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_2ColorLines_GIF.gif.meta new file mode 100644 index 00000000..292d3903 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_2ColorLines_GIF.gif.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 3219b69a8562db0439012ae282fc6eb1 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_3ColorLines_GIF.gif b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_3ColorLines_GIF.gif Binary files differnew file mode 100644 index 00000000..7121bf70 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_3ColorLines_GIF.gif diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_3ColorLines_GIF.gif.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_3ColorLines_GIF.gif.meta new file mode 100644 index 00000000..05a41936 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_3ColorLines_GIF.gif.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 81515002c3860be4f915641814f9b491 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_FireWorks_GIF.gif b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_FireWorks_GIF.gif Binary files differnew file mode 100644 index 00000000..4b4cc4a9 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_FireWorks_GIF.gif diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_FireWorks_GIF.gif.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_FireWorks_GIF.gif.meta new file mode 100644 index 00000000..9c87539b --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_FireWorks_GIF.gif.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 4366357a39e155f4582cd3fcc18ea692 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_GrayThing_GIF.gif b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_GrayThing_GIF.gif Binary files differnew file mode 100644 index 00000000..340bf998 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_GrayThing_GIF.gif diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_GrayThing_GIF.gif.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_GrayThing_GIF.gif.meta new file mode 100644 index 00000000..3b710a6f --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_GrayThing_GIF.gif.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 51e12303b2e7b6047ace7411e66b3988 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_Hearts_GIF.gif b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_Hearts_GIF.gif Binary files differnew file mode 100644 index 00000000..554463ec --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_Hearts_GIF.gif diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_Hearts_GIF.gif.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_Hearts_GIF.gif.meta new file mode 100644 index 00000000..8bf90c36 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_Hearts_GIF.gif.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: a937e2d8cd8cb8840ab729392c896c42 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_HorizontalCircles_GIF.gif b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_HorizontalCircles_GIF.gif Binary files differnew file mode 100644 index 00000000..a3aafd64 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_HorizontalCircles_GIF.gif diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_HorizontalCircles_GIF.gif.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_HorizontalCircles_GIF.gif.meta new file mode 100644 index 00000000..c2727526 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_HorizontalCircles_GIF.gif.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: effb638e91144eb4780b51a79c07fe4c +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_Matrix_GIF.gif b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_Matrix_GIF.gif Binary files differnew file mode 100644 index 00000000..ae297c88 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_Matrix_GIF.gif diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_Matrix_GIF.gif.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_Matrix_GIF.gif.meta new file mode 100644 index 00000000..09200d57 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_Matrix_GIF.gif.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 6863931c533eef040bb9ff8f6341c075 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_Ovals_GIF.gif b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_Ovals_GIF.gif Binary files differnew file mode 100644 index 00000000..58dff13d --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_Ovals_GIF.gif diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_Ovals_GIF.gif.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_Ovals_GIF.gif.meta new file mode 100644 index 00000000..056bcb2f --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_Ovals_GIF.gif.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 5c4dcd6a4d55c704a830a6e4145c556f +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_Snakes_GIF.gif b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_Snakes_GIF.gif Binary files differnew file mode 100644 index 00000000..17f82a44 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_Snakes_GIF.gif diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_Snakes_GIF.gif.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_Snakes_GIF.gif.meta new file mode 100644 index 00000000..d5621637 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/T_Snakes_GIF.gif.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: b9f11add051c1244aa4e36fe23bc24c1 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 2 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/VerticalCircles.gif b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/VerticalCircles.gif Binary files differnew file mode 100644 index 00000000..5754e898 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/VerticalCircles.gif diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/VerticalCircles.gif.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/VerticalCircles.gif.meta new file mode 100644 index 00000000..2c53a5ec --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/VerticalCircles.gif.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 4defab4eefbca0d45a9cfe92f54d8f3f +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/Waves.gif b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/Waves.gif Binary files differnew file mode 100644 index 00000000..aef6ddbc --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/Waves.gif diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/Waves.gif.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/Waves.gif.meta new file mode 100644 index 00000000..b85b3d37 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/Waves.gif.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: ac094b6695c5d1940a30a73008adef44 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/zigzags.gif b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/zigzags.gif Binary files differnew file mode 100644 index 00000000..684aeb6b --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/zigzags.gif diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/zigzags.gif.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/zigzags.gif.meta new file mode 100644 index 00000000..7abc4a21 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Gifs/zigzags.gif.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 1bd6fecb7f38f1d449b84445a83e7c3e +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Icons.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Icons.meta new file mode 100644 index 00000000..6eb9a091 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Icons.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9ea0dcdb442479c40b4bfec06ed875ff +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Masks.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Masks.meta new file mode 100644 index 00000000..dd74e0b8 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Masks.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 12b51e4763231fe4dbcb4e844db448eb +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Masks/T_Grid_MBW.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Masks/T_Grid_MBW.png Binary files differnew file mode 100644 index 00000000..6db45ced --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Masks/T_Grid_MBW.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Masks/T_Grid_MBW.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Masks/T_Grid_MBW.png.meta new file mode 100644 index 00000000..e038abc6 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Masks/T_Grid_MBW.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 47a1e48d03a0094499c5ebdd30e29495 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Masks/T_RampTest_MRGBA.tif b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Masks/T_RampTest_MRGBA.tif Binary files differnew file mode 100644 index 00000000..52582657 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Masks/T_RampTest_MRGBA.tif diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Masks/T_RampTest_MRGBA.tif.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Masks/T_RampTest_MRGBA.tif.meta new file mode 100644 index 00000000..440c949b --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Masks/T_RampTest_MRGBA.tif.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: e615f84c8371ebd4fa56258f42800739 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Masks/T_Star_MBW.jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Masks/T_Star_MBW.jpg Binary files differnew file mode 100644 index 00000000..1f634068 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Masks/T_Star_MBW.jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Masks/T_Star_MBW.jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Masks/T_Star_MBW.jpg.meta new file mode 100644 index 00000000..9d4bfd7e --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Masks/T_Star_MBW.jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: e21db298689c4f84abe7200bc9c130da +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Masks/T_circuit_MBW.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Masks/T_circuit_MBW.png Binary files differnew file mode 100644 index 00000000..0194108e --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Masks/T_circuit_MBW.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Masks/T_circuit_MBW.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Masks/T_circuit_MBW.png.meta new file mode 100644 index 00000000..ba5f79c1 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Masks/T_circuit_MBW.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 39505ec18a2256247be0f9ff777b8ef6 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps.meta new file mode 100644 index 00000000..bb5589d1 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 35832358cf2abba4b9befc6fddf1fd75 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/LatexMatcap2.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/LatexMatcap2.png Binary files differnew file mode 100644 index 00000000..b931e47e --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/LatexMatcap2.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/LatexMatcap2.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/LatexMatcap2.png.meta new file mode 100644 index 00000000..c42775f6 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/LatexMatcap2.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 1db11fa2fd2d3fe47b1f585645db2a5a +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/MatcapLatex.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/MatcapLatex.png Binary files differnew file mode 100644 index 00000000..872c86a0 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/MatcapLatex.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/MatcapLatex.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/MatcapLatex.png.meta new file mode 100644 index 00000000..0281138f --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/MatcapLatex.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 18bc3c3625266ef4b8fee18269619212 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap.png Binary files differnew file mode 100644 index 00000000..b3f6c2e5 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap.png.meta new file mode 100644 index 00000000..ecb66c0f --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: b66c2d17fdb7f5a4197a759142e82c96 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_MatcapPinkBlue_MC.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_MatcapPinkBlue_MC.png Binary files differnew file mode 100644 index 00000000..0eadbcfc --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_MatcapPinkBlue_MC.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_MatcapPinkBlue_MC.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_MatcapPinkBlue_MC.png.meta new file mode 100644 index 00000000..cbbc83fa --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_MatcapPinkBlue_MC.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: d52ce43dad0c07d4ba39d794d17f4639 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (1).bmp b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (1).bmp Binary files differnew file mode 100644 index 00000000..394c5b2e --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (1).bmp diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (1).bmp.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (1).bmp.meta new file mode 100644 index 00000000..dbf2872c --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (1).bmp.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 119bfe51061529d40929df43ea5b5687 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (1).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (1).jpg Binary files differnew file mode 100644 index 00000000..ccd9d0f3 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (1).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (1).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (1).jpg.meta new file mode 100644 index 00000000..115115a9 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (1).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 22e746c3d444b3c43b687229e8263cfc +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (1).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (1).png Binary files differnew file mode 100644 index 00000000..f36eafb9 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (1).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (1).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (1).png.meta new file mode 100644 index 00000000..c7e4671b --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (1).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 3dbb3be39df7e7c4eac60386a0f67ea8 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (10).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (10).jpg Binary files differnew file mode 100644 index 00000000..4848de55 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (10).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (10).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (10).jpg.meta new file mode 100644 index 00000000..06ac7f72 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (10).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 0e0d81b6be9daaf459ba80b0e93f2ce1 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (10).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (10).png Binary files differnew file mode 100644 index 00000000..d18e36f1 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (10).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (10).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (10).png.meta new file mode 100644 index 00000000..f276dda3 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (10).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: c9e5ea5d5e5e6f740815297d05d53ed4 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (11).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (11).jpg Binary files differnew file mode 100644 index 00000000..43d94893 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (11).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (11).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (11).jpg.meta new file mode 100644 index 00000000..d27a1f77 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (11).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 82136e8697de6eb4394177338725876f +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (11).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (11).png Binary files differnew file mode 100644 index 00000000..82c61a41 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (11).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (11).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (11).png.meta new file mode 100644 index 00000000..06999400 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (11).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 652deaaf3db3ffd49ac1658c5feed917 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (12).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (12).jpg Binary files differnew file mode 100644 index 00000000..d9b9f009 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (12).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (12).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (12).jpg.meta new file mode 100644 index 00000000..ddf58620 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (12).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 16cfdbf57bd4a5f4e8a240217503734a +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (12).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (12).png Binary files differnew file mode 100644 index 00000000..1197e407 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (12).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (12).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (12).png.meta new file mode 100644 index 00000000..194d09d8 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (12).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: c5758d4a5402db14c856bc927fcd9582 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (13).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (13).jpg Binary files differnew file mode 100644 index 00000000..c18316e1 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (13).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (13).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (13).jpg.meta new file mode 100644 index 00000000..ee796443 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (13).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 64eda4a30094fd24198f44b0c9d41208 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (13).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (13).png Binary files differnew file mode 100644 index 00000000..c6c484ef --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (13).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (13).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (13).png.meta new file mode 100644 index 00000000..1566ba4c --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (13).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: bd0cc922d6a571e438eee900fe57a5b1 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (14).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (14).jpg Binary files differnew file mode 100644 index 00000000..1723c5c0 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (14).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (14).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (14).jpg.meta new file mode 100644 index 00000000..0c311695 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (14).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: ee08a1bb6cc9ce44284b711477c79df4 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (14).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (14).png Binary files differnew file mode 100644 index 00000000..b5dfd88e --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (14).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (14).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (14).png.meta new file mode 100644 index 00000000..b18f0ad7 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (14).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: b70fb87bdaed04d4db351ed4a1cf8433 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (15).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (15).jpg Binary files differnew file mode 100644 index 00000000..0d607685 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (15).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (15).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (15).jpg.meta new file mode 100644 index 00000000..d0577b45 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (15).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 3d2cce892a030694d9a72a92dad5e82f +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (15).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (15).png Binary files differnew file mode 100644 index 00000000..6c2ab18c --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (15).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (15).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (15).png.meta new file mode 100644 index 00000000..442029b0 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (15).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 5ff5ddb61accef94bbd8aaad130b93e6 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (16).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (16).jpg Binary files differnew file mode 100644 index 00000000..811b05c2 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (16).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (16).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (16).jpg.meta new file mode 100644 index 00000000..4224834d --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (16).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 507ec010e33595d4ca0fadcc45844169 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (16).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (16).png Binary files differnew file mode 100644 index 00000000..f934ac81 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (16).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (16).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (16).png.meta new file mode 100644 index 00000000..ea225a1d --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (16).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: b2af0c8d2bd641648a8d1ec0b9536b17 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (17).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (17).jpg Binary files differnew file mode 100644 index 00000000..19214f9c --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (17).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (17).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (17).jpg.meta new file mode 100644 index 00000000..834e8615 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (17).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: bca7518f2d385c340b84b107c599abe2 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (17).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (17).png Binary files differnew file mode 100644 index 00000000..6aeab66b --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (17).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (17).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (17).png.meta new file mode 100644 index 00000000..a4364f6e --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (17).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: b2a2a720253b640459f15f64a371a83e +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (18).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (18).jpg Binary files differnew file mode 100644 index 00000000..2e2cd682 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (18).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (18).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (18).jpg.meta new file mode 100644 index 00000000..4324a6d7 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (18).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 7bd1664c669e2e94683e48d235b1bb27 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (18).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (18).png Binary files differnew file mode 100644 index 00000000..724653f9 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (18).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (18).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (18).png.meta new file mode 100644 index 00000000..56631f04 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (18).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 55b34dc98a1beda49a9004a81b46af61 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (19).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (19).jpg Binary files differnew file mode 100644 index 00000000..914fdcb6 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (19).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (19).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (19).jpg.meta new file mode 100644 index 00000000..c2b1f6f4 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (19).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 97b53db9a7bc7a64181a216a90907e39 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (19).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (19).png Binary files differnew file mode 100644 index 00000000..72c6566a --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (19).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (19).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (19).png.meta new file mode 100644 index 00000000..edb6f619 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (19).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: b9031c1f7aa3af84a9c6db1738c1ba59 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (2).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (2).jpg Binary files differnew file mode 100644 index 00000000..94118854 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (2).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (2).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (2).jpg.meta new file mode 100644 index 00000000..1f03fa30 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (2).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: ffefc5ef27c0c5542b545dd6169d0428 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (2).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (2).png Binary files differnew file mode 100644 index 00000000..4a36fa62 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (2).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (2).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (2).png.meta new file mode 100644 index 00000000..adb10a16 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (2).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 7960f3b319c2a4e4baad0c57ba8f9d48 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (20).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (20).jpg Binary files differnew file mode 100644 index 00000000..9d451d62 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (20).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (20).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (20).jpg.meta new file mode 100644 index 00000000..ea0a9e2e --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (20).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 9069ac80b6926394eaefe7ef40fafcfb +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (20).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (20).png Binary files differnew file mode 100644 index 00000000..c8342ee8 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (20).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (20).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (20).png.meta new file mode 100644 index 00000000..de893a81 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (20).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 5f94789d7f6da9b449e4cb1139ebecc6 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (21).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (21).jpg Binary files differnew file mode 100644 index 00000000..b3f78a1b --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (21).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (21).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (21).jpg.meta new file mode 100644 index 00000000..05e66118 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (21).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: b5e71f00f5605f64bb2b7e60473e750c +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (21).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (21).png Binary files differnew file mode 100644 index 00000000..1a95a149 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (21).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (21).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (21).png.meta new file mode 100644 index 00000000..f06e0fda --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (21).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 5586e7d602e5b49408769f87e8c907d2 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (22).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (22).jpg Binary files differnew file mode 100644 index 00000000..6b5e5eb9 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (22).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (22).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (22).jpg.meta new file mode 100644 index 00000000..cd911621 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (22).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 760bc4ee5d362ff4da1ba3ca0e2efc76 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (22).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (22).png Binary files differnew file mode 100644 index 00000000..e8a23384 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (22).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (22).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (22).png.meta new file mode 100644 index 00000000..9c665aab --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (22).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: b36a67a8cb824694cbd0f71b5ba9de5e +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (23).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (23).jpg Binary files differnew file mode 100644 index 00000000..3e4bcd10 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (23).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (23).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (23).jpg.meta new file mode 100644 index 00000000..c2e9221b --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (23).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: cabfaa2a3d851a448929f9ef1807bb05 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (23).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (23).png Binary files differnew file mode 100644 index 00000000..53ccb757 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (23).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (23).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (23).png.meta new file mode 100644 index 00000000..8f0bf341 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (23).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 6fe30ec40a285ae4f90a2656a59b8048 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (24).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (24).jpg Binary files differnew file mode 100644 index 00000000..6ef57747 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (24).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (24).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (24).jpg.meta new file mode 100644 index 00000000..a190eb8b --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (24).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 6123b53d024ac0b489e5d7a87528c5da +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (24).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (24).png Binary files differnew file mode 100644 index 00000000..9018c90c --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (24).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (24).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (24).png.meta new file mode 100644 index 00000000..f68b3ac0 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (24).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: bf41ad2e79589774f97ac0e6b7f950bf +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (25).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (25).jpg Binary files differnew file mode 100644 index 00000000..72c5e2ef --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (25).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (25).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (25).jpg.meta new file mode 100644 index 00000000..bf3d2b1a --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (25).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 0585906ec08a78346b9fe60a303e12ee +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (25).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (25).png Binary files differnew file mode 100644 index 00000000..de6f2249 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (25).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (25).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (25).png.meta new file mode 100644 index 00000000..92dd0489 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (25).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 194efd6ff3768ab44b7ad9647dcd9d7e +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (26).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (26).jpg Binary files differnew file mode 100644 index 00000000..20d457f2 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (26).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (26).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (26).jpg.meta new file mode 100644 index 00000000..68d91e58 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (26).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 58b5b74caaea4b74ab0e210d080d43da +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (26).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (26).png Binary files differnew file mode 100644 index 00000000..a5995a13 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (26).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (26).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (26).png.meta new file mode 100644 index 00000000..031f5cf2 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (26).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: be401e0134922d1429f57d073a05f469 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (27).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (27).jpg Binary files differnew file mode 100644 index 00000000..64bfad70 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (27).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (27).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (27).jpg.meta new file mode 100644 index 00000000..67eed1ed --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (27).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: f6a76475a220f20468f16ec0e17d67b1 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (27).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (27).png Binary files differnew file mode 100644 index 00000000..c7b52d53 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (27).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (27).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (27).png.meta new file mode 100644 index 00000000..14b1a8a6 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (27).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 57b8918006ce46f478039228a2880c63 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (28).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (28).jpg Binary files differnew file mode 100644 index 00000000..35b1a896 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (28).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (28).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (28).jpg.meta new file mode 100644 index 00000000..757d0f8e --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (28).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 54a1fdb38de704840acc087caf4683bf +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (28).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (28).png Binary files differnew file mode 100644 index 00000000..6476f126 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (28).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (28).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (28).png.meta new file mode 100644 index 00000000..8a8750d5 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (28).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 3eac3478dda6e6d42860167a61d0c39e +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (29).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (29).jpg Binary files differnew file mode 100644 index 00000000..d6d21b8e --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (29).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (29).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (29).jpg.meta new file mode 100644 index 00000000..17f3da3b --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (29).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 7a28f4ace6d11af4a8b1e41c0e74e245 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (29).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (29).png Binary files differnew file mode 100644 index 00000000..f2f62a4d --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (29).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (29).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (29).png.meta new file mode 100644 index 00000000..7e26baa2 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (29).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 893868d7303292244881c1e37a3113b4 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (3).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (3).jpg Binary files differnew file mode 100644 index 00000000..a7ce0743 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (3).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (3).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (3).jpg.meta new file mode 100644 index 00000000..e67207d1 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (3).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 8d2fc396afb45da4bb76782b8fc0f4a5 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (3).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (3).png Binary files differnew file mode 100644 index 00000000..c40c0345 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (3).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (3).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (3).png.meta new file mode 100644 index 00000000..2f22945e --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (3).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: f5303b4da8057574c84c7322a19702b7 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (30).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (30).jpg Binary files differnew file mode 100644 index 00000000..26751167 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (30).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (30).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (30).jpg.meta new file mode 100644 index 00000000..19825a17 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (30).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 0108fa829c99c56478b917b81937622c +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (30).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (30).png Binary files differnew file mode 100644 index 00000000..bda38334 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (30).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (30).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (30).png.meta new file mode 100644 index 00000000..b7bfe504 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (30).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 8b0294a2d71b5044180c0ace903cd6bf +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (31).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (31).jpg Binary files differnew file mode 100644 index 00000000..84845bc6 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (31).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (31).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (31).jpg.meta new file mode 100644 index 00000000..ac46d530 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (31).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 25bab4ee27508ec419f44b2357baa9ea +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (31).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (31).png Binary files differnew file mode 100644 index 00000000..2b1bda28 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (31).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (31).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (31).png.meta new file mode 100644 index 00000000..a0df57a4 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (31).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: c481b4ce3da24254d8535e039bddd9a2 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (32).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (32).jpg Binary files differnew file mode 100644 index 00000000..ddea0030 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (32).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (32).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (32).jpg.meta new file mode 100644 index 00000000..798ba883 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (32).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 789f2ef616997194d9a6075249378b36 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (32).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (32).png Binary files differnew file mode 100644 index 00000000..83f2059d --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (32).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (32).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (32).png.meta new file mode 100644 index 00000000..c66addd7 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (32).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 3c1b5b63bfcf1d64a85ae92a997559ad +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (33).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (33).jpg Binary files differnew file mode 100644 index 00000000..d409e2ed --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (33).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (33).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (33).jpg.meta new file mode 100644 index 00000000..91391ef9 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (33).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 9093fc5a69128ad4b8d57fdfa63614ad +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (33).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (33).png Binary files differnew file mode 100644 index 00000000..a460a22c --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (33).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (33).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (33).png.meta new file mode 100644 index 00000000..0cbd19f0 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (33).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: c2900629045488a4b89b252f60b7ba80 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (34).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (34).png Binary files differnew file mode 100644 index 00000000..30c523d3 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (34).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (34).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (34).png.meta new file mode 100644 index 00000000..3ca2c0f9 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (34).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: fa2e476756e68e54d8218936d92f44de +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (35).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (35).png Binary files differnew file mode 100644 index 00000000..b838ae04 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (35).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (35).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (35).png.meta new file mode 100644 index 00000000..37f1846a --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (35).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: f5d590d6f058eab4ca5501856f5b48d2 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (36).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (36).png Binary files differnew file mode 100644 index 00000000..9e3e3829 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (36).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (36).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (36).png.meta new file mode 100644 index 00000000..ba1c0dac --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (36).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 19d43460f5d9e824ca794439434578de +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (37).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (37).png Binary files differnew file mode 100644 index 00000000..0fd9aa57 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (37).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (37).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (37).png.meta new file mode 100644 index 00000000..fcb0cd8b --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (37).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 3e5c458f086955147b31f6fc5f0e118a +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (38).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (38).png Binary files differnew file mode 100644 index 00000000..49cd2702 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (38).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (38).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (38).png.meta new file mode 100644 index 00000000..f62d5207 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (38).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 96af20914dee77340aa59723bee8417f +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (39).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (39).png Binary files differnew file mode 100644 index 00000000..40510e3e --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (39).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (39).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (39).png.meta new file mode 100644 index 00000000..757e63b8 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (39).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 9d10c0c5b584761468fae139861a42de +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (4).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (4).jpg Binary files differnew file mode 100644 index 00000000..f5e3e139 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (4).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (4).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (4).jpg.meta new file mode 100644 index 00000000..58bc3357 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (4).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: ad62a319e566fdd4c8c6441b7250ba61 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (4).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (4).png Binary files differnew file mode 100644 index 00000000..781861db --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (4).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (4).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (4).png.meta new file mode 100644 index 00000000..01701283 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (4).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 2b5e0b031839238468f548ae5e30d127 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (40).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (40).png Binary files differnew file mode 100644 index 00000000..8d29adb9 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (40).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (40).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (40).png.meta new file mode 100644 index 00000000..e9df6d66 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (40).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 9c38b9b79d5e16b43b79b9c7d3f0fe7e +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (41).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (41).png Binary files differnew file mode 100644 index 00000000..523c28a6 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (41).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (41).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (41).png.meta new file mode 100644 index 00000000..8bf94f1d --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (41).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 8db27ba22c9f17c408dd81739495da48 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (42).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (42).png Binary files differnew file mode 100644 index 00000000..56102f1d --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (42).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (42).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (42).png.meta new file mode 100644 index 00000000..0dfb1336 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (42).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: aa27df79f39a4aa4f9e59e56f202da35 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (43).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (43).png Binary files differnew file mode 100644 index 00000000..26a5ffbe --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (43).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (43).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (43).png.meta new file mode 100644 index 00000000..b000a534 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (43).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 46ec5de8b6955e74b85a8173d64fd30f +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (44).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (44).png Binary files differnew file mode 100644 index 00000000..450eefd1 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (44).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (44).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (44).png.meta new file mode 100644 index 00000000..65661d21 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (44).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: e2f800df165ce7b42bc331a89805b4b0 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (45).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (45).png Binary files differnew file mode 100644 index 00000000..ca301489 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (45).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (45).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (45).png.meta new file mode 100644 index 00000000..201a1ea0 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (45).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: cbecb892fa166824ab4114ffc7f27c17 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (46).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (46).png Binary files differnew file mode 100644 index 00000000..98d01155 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (46).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (46).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (46).png.meta new file mode 100644 index 00000000..fbb777a1 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (46).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 191938ee788301d408ee03ab53a3d47d +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (47).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (47).png Binary files differnew file mode 100644 index 00000000..4d5db069 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (47).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (47).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (47).png.meta new file mode 100644 index 00000000..be4911f9 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (47).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 0aac4adcdab886c46a45ab1b9d264123 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (5).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (5).jpg Binary files differnew file mode 100644 index 00000000..472797cd --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (5).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (5).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (5).jpg.meta new file mode 100644 index 00000000..25ba2148 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (5).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 625ea777e073d1644a0e1eb481eec64a +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (5).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (5).png Binary files differnew file mode 100644 index 00000000..3e1cfd78 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (5).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (5).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (5).png.meta new file mode 100644 index 00000000..6f4fd2d9 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (5).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: caf2f79a23000a84599416e236287616 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (6).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (6).jpg Binary files differnew file mode 100644 index 00000000..242e7b43 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (6).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (6).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (6).jpg.meta new file mode 100644 index 00000000..93fbc81e --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (6).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 9bb7c453de514554db5dbb8a2cfc672b +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (6).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (6).png Binary files differnew file mode 100644 index 00000000..380fd2db --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (6).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (6).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (6).png.meta new file mode 100644 index 00000000..84c99d2c --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (6).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 33148cf06f81cac40b9b18a9aa5b3bff +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (7).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (7).jpg Binary files differnew file mode 100644 index 00000000..192880c3 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (7).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (7).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (7).jpg.meta new file mode 100644 index 00000000..97d55a27 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (7).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: a24496aa77800b24c960741cb4c32203 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (7).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (7).png Binary files differnew file mode 100644 index 00000000..973da56b --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (7).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (7).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (7).png.meta new file mode 100644 index 00000000..88bdcb2a --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (7).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 0e50551111e650f44bebc5d6f589d704 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (8).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (8).jpg Binary files differnew file mode 100644 index 00000000..cf8bffdd --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (8).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (8).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (8).jpg.meta new file mode 100644 index 00000000..01e88898 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (8).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 30c6e066a187de543a9e1bae3a6c6852 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (8).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (8).png Binary files differnew file mode 100644 index 00000000..ad355e63 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (8).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (8).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (8).png.meta new file mode 100644 index 00000000..81662e6d --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (8).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: e8626a4d5c2f311438c72481922d7efe +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (9).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (9).jpg Binary files differnew file mode 100644 index 00000000..4e6733e6 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (9).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (9).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (9).jpg.meta new file mode 100644 index 00000000..8b1099ca --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (9).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 612476841a11fb94ca01633cc01282df +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (9).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (9).png Binary files differnew file mode 100644 index 00000000..e58136e0 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (9).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (9).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (9).png.meta new file mode 100644 index 00000000..24796eb9 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Matcap_MC (9).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: f712d8b4373eba943baf1989e0aeb15f +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Rainbow_Matcap.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Rainbow_Matcap.png Binary files differnew file mode 100644 index 00000000..9d706982 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Rainbow_Matcap.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Rainbow_Matcap.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Rainbow_Matcap.png.meta new file mode 100644 index 00000000..b5cbc3c0 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Matcaps/T_Rainbow_Matcap.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: fc239b868ef86f94087bad300518901e +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Misc.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Misc.meta new file mode 100644 index 00000000..f2608f42 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Misc.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 41da7b93e1d47c34ba56d23a4e158a11 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Misc/T_Black.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Misc/T_Black.png Binary files differnew file mode 100644 index 00000000..26a68a74 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Misc/T_Black.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Misc/T_Black.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Misc/T_Black.png.meta new file mode 100644 index 00000000..c0d24031 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Misc/T_Black.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 4ce40eff399b11a4fb5cddbc29ee2227 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Misc/T_Circle.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Misc/T_Circle.png Binary files differnew file mode 100644 index 00000000..1875c058 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Misc/T_Circle.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Misc/T_Circle.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Misc/T_Circle.png.meta new file mode 100644 index 00000000..d5c6188c --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Misc/T_Circle.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: ce440cfbe62dfdd4abc464cf7b031b8c +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Misc/T_LightRainbowVertical.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Misc/T_LightRainbowVertical.png Binary files differnew file mode 100644 index 00000000..aa230961 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Misc/T_LightRainbowVertical.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Misc/T_LightRainbowVertical.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Misc/T_LightRainbowVertical.png.meta new file mode 100644 index 00000000..83f92f99 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Misc/T_LightRainbowVertical.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 5e54fd3fa7d2eb2448d1afc2697bf8a4 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Misc/T_PastelRainbowVertical.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Misc/T_PastelRainbowVertical.png Binary files differnew file mode 100644 index 00000000..b2202309 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Misc/T_PastelRainbowVertical.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Misc/T_PastelRainbowVertical.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Misc/T_PastelRainbowVertical.png.meta new file mode 100644 index 00000000..a74d1552 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Misc/T_PastelRainbowVertical.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: bc453e8dc8d53ae42a9930a8b0de1dc5 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Misc/T_RainbowHorizontal.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Misc/T_RainbowHorizontal.png Binary files differnew file mode 100644 index 00000000..d848311d --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Misc/T_RainbowHorizontal.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Misc/T_RainbowHorizontal.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Misc/T_RainbowHorizontal.png.meta new file mode 100644 index 00000000..69526d2f --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Misc/T_RainbowHorizontal.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: fb2cd373b18d16146922f755a1109a94 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Misc/T_RainbowVertical.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Misc/T_RainbowVertical.png Binary files differnew file mode 100644 index 00000000..fec3501a --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Misc/T_RainbowVertical.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Misc/T_RainbowVertical.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Misc/T_RainbowVertical.png.meta new file mode 100644 index 00000000..70786e6b --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Misc/T_RainbowVertical.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 68238ea52b01b4646a834ac408126548 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise.meta new file mode 100644 index 00000000..d83f2cde --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7a75d5a97b85aa343a193a5078829e0a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/Gradient.jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/Gradient.jpg Binary files differnew file mode 100644 index 00000000..13312abf --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/Gradient.jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/Gradient.jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/Gradient.jpg.meta new file mode 100644 index 00000000..be19954d --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/Gradient.jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: f8f2f125174239f44bbd65262132328c +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/Gradient2.jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/Gradient2.jpg Binary files differnew file mode 100644 index 00000000..b3b3630a --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/Gradient2.jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/Gradient2.jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/Gradient2.jpg.meta new file mode 100644 index 00000000..41df2497 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/Gradient2.jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: efad3a5f6f0666945bb3a8dd0dc9afe9 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Abstract2_Noise.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Abstract2_Noise.png Binary files differnew file mode 100644 index 00000000..fab78bb4 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Abstract2_Noise.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Abstract2_Noise.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Abstract2_Noise.png.meta new file mode 100644 index 00000000..39b46a08 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Abstract2_Noise.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 5b4e56cbe10b0ab48ba4a4f8e21be893 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Abstract_Noise.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Abstract_Noise.png Binary files differnew file mode 100644 index 00000000..ed82d855 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Abstract_Noise.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Abstract_Noise.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Abstract_Noise.png.meta new file mode 100644 index 00000000..69318cca --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Abstract_Noise.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: b60b8211733a76c4b9a4322bfcf0b581 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Blotch_Noise.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Blotch_Noise.png Binary files differnew file mode 100644 index 00000000..41aec80d --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Blotch_Noise.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Blotch_Noise.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Blotch_Noise.png.meta new file mode 100644 index 00000000..4a5f239a --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Blotch_Noise.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 3f0ebc93eb910fa4e83d2dbdc92fedb7 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Brick2_Noise.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Brick2_Noise.png Binary files differnew file mode 100644 index 00000000..a507e9fb --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Brick2_Noise.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Brick2_Noise.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Brick2_Noise.png.meta new file mode 100644 index 00000000..9b91f880 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Brick2_Noise.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: f70e10900053fb44986fb2d3d6bf8454 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Brick_Noise.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Brick_Noise.png Binary files differnew file mode 100644 index 00000000..f9791b84 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Brick_Noise.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Brick_Noise.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Brick_Noise.png.meta new file mode 100644 index 00000000..e29b84cd --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Brick_Noise.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 65cfe9f1e5990e8448929ef8a4b649d4 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Caustic_Noise.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Caustic_Noise.png Binary files differnew file mode 100644 index 00000000..f09b6e13 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Caustic_Noise.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Caustic_Noise.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Caustic_Noise.png.meta new file mode 100644 index 00000000..5ad74383 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Caustic_Noise.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: aded3d8bdb52eb744964762b45920654 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Cell_Noise.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Cell_Noise.png Binary files differnew file mode 100644 index 00000000..66171278 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Cell_Noise.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Cell_Noise.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Cell_Noise.png.meta new file mode 100644 index 00000000..65e7ed90 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Cell_Noise.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: d2b08e9dd82d76b4fa5e07bb95ff2196 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Checker_Noise.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Checker_Noise.png Binary files differnew file mode 100644 index 00000000..e176b977 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Checker_Noise.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Checker_Noise.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Checker_Noise.png.meta new file mode 100644 index 00000000..7131e95a --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Checker_Noise.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 41c4dd3ec1abf6e42964db04353440bc +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Cloudy_Noise.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Cloudy_Noise.png Binary files differnew file mode 100644 index 00000000..95990661 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Cloudy_Noise.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Cloudy_Noise.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Cloudy_Noise.png.meta new file mode 100644 index 00000000..68d491de --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Cloudy_Noise.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 39587adffa9ad98488e3d4c7c56a92a9 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_InvertedHex_Noise.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_InvertedHex_Noise.png Binary files differnew file mode 100644 index 00000000..043c9140 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_InvertedHex_Noise.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_InvertedHex_Noise.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_InvertedHex_Noise.png.meta new file mode 100644 index 00000000..a8d73dc4 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_InvertedHex_Noise.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 5757e282ae2aac54e99d40378b103e7c +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (1).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (1).jpg Binary files differnew file mode 100644 index 00000000..1eb572c7 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (1).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (1).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (1).jpg.meta new file mode 100644 index 00000000..e35b2e7e --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (1).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 39bb96d456be4a84f926ee715e5b626a +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (1).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (1).png Binary files differnew file mode 100644 index 00000000..446e129b --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (1).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (1).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (1).png.meta new file mode 100644 index 00000000..47da4ef5 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (1).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 1539e659b3b7d4940b051f702bc0c13e +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (10).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (10).jpg Binary files differnew file mode 100644 index 00000000..cff6528b --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (10).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (10).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (10).jpg.meta new file mode 100644 index 00000000..6e2d1323 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (10).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 83350d98782a3f64cb46dd7bb928271c +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (11).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (11).jpg Binary files differnew file mode 100644 index 00000000..966351a3 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (11).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (11).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (11).jpg.meta new file mode 100644 index 00000000..26f42a9b --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (11).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: c2523251ed02cab4f9261d7a4c0678f9 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (12).TGA b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (12).TGA Binary files differnew file mode 100644 index 00000000..b166952d --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (12).TGA diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (12).TGA.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (12).TGA.meta new file mode 100644 index 00000000..d6e234e9 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (12).TGA.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 73dcc3a84b09e3146b6194acca5be1fb +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (12).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (12).jpg Binary files differnew file mode 100644 index 00000000..ae95b74b --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (12).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (12).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (12).jpg.meta new file mode 100644 index 00000000..cfcb1e51 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (12).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 1b65b9963ccf248489844c4d18ebd6a2 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (13).TGA b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (13).TGA Binary files differnew file mode 100644 index 00000000..748a804b --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (13).TGA diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (13).TGA.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (13).TGA.meta new file mode 100644 index 00000000..0ef99c0b --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (13).TGA.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: c0264675a41c58142ac2cd8e1e2c60d8 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (13).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (13).jpg Binary files differnew file mode 100644 index 00000000..9834d5cd --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (13).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (13).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (13).jpg.meta new file mode 100644 index 00000000..239f7ee2 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (13).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 7a5009302aa7c3d44b67e520541750a7 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (14).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (14).jpg Binary files differnew file mode 100644 index 00000000..a6718772 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (14).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (14).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (14).jpg.meta new file mode 100644 index 00000000..079fb717 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (14).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: feb2e298e2fdcfc4ea372610bddb4ab4 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (15).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (15).jpg Binary files differnew file mode 100644 index 00000000..39e2cb38 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (15).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (15).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (15).jpg.meta new file mode 100644 index 00000000..7a8f569d --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (15).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 0b021ae2081d45541a752b1d7ad0d570 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (16).TGA b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (16).TGA Binary files differnew file mode 100644 index 00000000..b166952d --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (16).TGA diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (16).TGA.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (16).TGA.meta new file mode 100644 index 00000000..bd09531c --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (16).TGA.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 588b1cf3457e893429b891d9e309773c +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (16).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (16).jpg Binary files differnew file mode 100644 index 00000000..cbbf1156 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (16).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (16).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (16).jpg.meta new file mode 100644 index 00000000..07f4b7bd --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (16).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 948d051b07279294088742d8154223f9 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (17).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (17).jpg Binary files differnew file mode 100644 index 00000000..b4ae749b --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (17).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (17).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (17).jpg.meta new file mode 100644 index 00000000..79f59743 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (17).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: f09ed133d3c2ea743880f31ed4c4ec60 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (18).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (18).jpg Binary files differnew file mode 100644 index 00000000..2f8c413a --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (18).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (18).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (18).jpg.meta new file mode 100644 index 00000000..d83a4c62 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (18).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 7f726d3d09907a74e8ca61caef91350c +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (19).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (19).jpg Binary files differnew file mode 100644 index 00000000..28590a88 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (19).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (19).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (19).jpg.meta new file mode 100644 index 00000000..124b09a9 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (19).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 384585c1d1eb2ae4293c37bc13542310 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (2).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (2).jpg Binary files differnew file mode 100644 index 00000000..0600a8cc --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (2).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (2).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (2).jpg.meta new file mode 100644 index 00000000..d0e35e07 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (2).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: faaad765f99ebf042892806a43c5acee +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (2).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (2).png Binary files differnew file mode 100644 index 00000000..426d404e --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (2).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (2).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (2).png.meta new file mode 100644 index 00000000..202244d2 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (2).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 71eb1cadc5880074bb3788081492b75e +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (20).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (20).jpg Binary files differnew file mode 100644 index 00000000..e4cc4bd0 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (20).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (20).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (20).jpg.meta new file mode 100644 index 00000000..4dbb3f3f --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (20).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 50407170ac45a6c49a6044f71e0413c3 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (21).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (21).jpg Binary files differnew file mode 100644 index 00000000..42720278 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (21).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (21).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (21).jpg.meta new file mode 100644 index 00000000..b9db973e --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (21).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 1ff8ebef6b28683499c6fa04a4098e70 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (22).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (22).jpg Binary files differnew file mode 100644 index 00000000..0f6ef7f0 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (22).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (22).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (22).jpg.meta new file mode 100644 index 00000000..2da8b239 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (22).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: d2fc7e621ee2eac4b986c465de92c6bf +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (23).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (23).jpg Binary files differnew file mode 100644 index 00000000..5608df33 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (23).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (23).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (23).jpg.meta new file mode 100644 index 00000000..f3d46a31 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (23).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: ea37624af93d96943b2dd93ab64a1128 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (3).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (3).jpg Binary files differnew file mode 100644 index 00000000..f5657ed9 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (3).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (3).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (3).jpg.meta new file mode 100644 index 00000000..ee583193 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (3).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: a43e3197e3af367458fa25637d0ace57 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (4).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (4).jpg Binary files differnew file mode 100644 index 00000000..920cfe76 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (4).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (4).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (4).jpg.meta new file mode 100644 index 00000000..8e7fdd5f --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (4).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 04adfac2018725f43bf17158a3b6991a +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (5).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (5).jpg Binary files differnew file mode 100644 index 00000000..db02f1db --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (5).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (5).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (5).jpg.meta new file mode 100644 index 00000000..076f668e --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (5).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 68b47bf7b40cbbd4d98fb5edba9c6b08 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (6).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (6).jpg Binary files differnew file mode 100644 index 00000000..d8757e2e --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (6).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (6).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (6).jpg.meta new file mode 100644 index 00000000..0bbfb2e5 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (6).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 64318b6160916704db4495c99e14d9bb +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (7).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (7).jpg Binary files differnew file mode 100644 index 00000000..f38bca0c --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (7).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (7).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (7).jpg.meta new file mode 100644 index 00000000..be42bdbb --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (7).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 5cd2541f2a58a49439b03b255264c50c +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (8).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (8).jpg Binary files differnew file mode 100644 index 00000000..36053f74 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (8).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (8).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (8).jpg.meta new file mode 100644 index 00000000..71db398e --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (8).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 8c2ba11c031f30747abe2e9d52d3483d +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (9).TGA b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (9).TGA Binary files differnew file mode 100644 index 00000000..b166952d --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (9).TGA diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (9).TGA.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (9).TGA.meta new file mode 100644 index 00000000..3123e818 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (9).TGA.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: a174f25610aa260419d13c28372ca403 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (9).jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (9).jpg Binary files differnew file mode 100644 index 00000000..b6e1fbcc --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (9).jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (9).jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (9).jpg.meta new file mode 100644 index 00000000..a18ac915 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No (9).jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: e645408cc6f35154bb09808bc39471b3 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (1).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (1).png Binary files differnew file mode 100644 index 00000000..53f82a2e --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (1).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (1).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (1).png.meta new file mode 100644 index 00000000..e39a06d7 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (1).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 3d2855f84e40fc0479ba50c9b2822793 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (10).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (10).png Binary files differnew file mode 100644 index 00000000..25ceeb44 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (10).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (10).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (10).png.meta new file mode 100644 index 00000000..4366a97a --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (10).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 12d2a54817ebe334db38e85a687d9439 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (11).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (11).png Binary files differnew file mode 100644 index 00000000..dde60b47 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (11).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (11).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (11).png.meta new file mode 100644 index 00000000..49efa140 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (11).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: a239bf9efb27401409c75b90cc73007a +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (12).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (12).png Binary files differnew file mode 100644 index 00000000..9f6a6342 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (12).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (12).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (12).png.meta new file mode 100644 index 00000000..6ed43a32 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (12).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 0f65047a52bd6484d968e94f2c6777cb +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (13).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (13).png Binary files differnew file mode 100644 index 00000000..52080755 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (13).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (13).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (13).png.meta new file mode 100644 index 00000000..83e5b23f --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (13).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: abc13b08eb4023448b37a833482f82ff +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (14).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (14).png Binary files differnew file mode 100644 index 00000000..6e0e1bd9 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (14).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (14).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (14).png.meta new file mode 100644 index 00000000..85cf9a10 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (14).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: ea593121750048e49b98c3f20671a5b8 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (15).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (15).png Binary files differnew file mode 100644 index 00000000..170fc1f8 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (15).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (15).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (15).png.meta new file mode 100644 index 00000000..aa33307e --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (15).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 2586df9a3b5ce4e4b83b617390ce682c +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (16).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (16).png Binary files differnew file mode 100644 index 00000000..c95e510b --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (16).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (16).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (16).png.meta new file mode 100644 index 00000000..9d780b1a --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (16).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 0cd62273cab4ce24bade5b72b2e02127 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (17).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (17).png Binary files differnew file mode 100644 index 00000000..615a1058 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (17).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (17).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (17).png.meta new file mode 100644 index 00000000..8f92e8f2 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (17).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 84cd2c832f417e147879a1b683213016 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (18).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (18).png Binary files differnew file mode 100644 index 00000000..0a21bc21 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (18).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (18).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (18).png.meta new file mode 100644 index 00000000..0c37444b --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (18).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 69cd5ad91b4778c46ae1cd2a81ed3760 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (2).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (2).png Binary files differnew file mode 100644 index 00000000..53c42134 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (2).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (2).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (2).png.meta new file mode 100644 index 00000000..28af6940 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (2).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 689a97b4b90b8b94baea6243cdc7a0d6 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (3).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (3).png Binary files differnew file mode 100644 index 00000000..0589c2cc --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (3).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (3).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (3).png.meta new file mode 100644 index 00000000..2b93a661 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (3).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 98a08c318257af648b4288a136e3d523 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (4).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (4).png Binary files differnew file mode 100644 index 00000000..bbb2bbe3 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (4).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (4).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (4).png.meta new file mode 100644 index 00000000..3825e1a9 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (4).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: fd389a4cbaf52d945b09babc7cce4e91 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (5).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (5).png Binary files differnew file mode 100644 index 00000000..758034ce --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (5).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (5).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (5).png.meta new file mode 100644 index 00000000..d29520be --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (5).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: bf57ae9997325ec44af94043bbfce786 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (6).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (6).png Binary files differnew file mode 100644 index 00000000..2a19dd00 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (6).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (6).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (6).png.meta new file mode 100644 index 00000000..6962c4e2 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (6).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: dc45c2a31dc431b4489192aac5b85cf2 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (7).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (7).png Binary files differnew file mode 100644 index 00000000..fe470143 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (7).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (7).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (7).png.meta new file mode 100644 index 00000000..215dddd4 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (7).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: db2de0fac2c4b2040a6b7807330991ee +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (8).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (8).png Binary files differnew file mode 100644 index 00000000..6d6868f9 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (8).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (8).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (8).png.meta new file mode 100644 index 00000000..f07793c2 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (8).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 0fa953077ee3b4d49b74e56801a27e77 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (9).png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (9).png Binary files differnew file mode 100644 index 00000000..3997e228 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (9).png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (9).png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (9).png.meta new file mode 100644 index 00000000..944f3840 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Noise_No.png (9).png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: e87e3d84ef8b649469166e2afa88c1c5 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Pattern2_Noise.jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Pattern2_Noise.jpg Binary files differnew file mode 100644 index 00000000..0ba47332 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Pattern2_Noise.jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Pattern2_Noise.jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Pattern2_Noise.jpg.meta new file mode 100644 index 00000000..cf6b050f --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Pattern2_Noise.jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 19ddda4f7d303094db07b8fda5037a03 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Pattern_Noise.jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Pattern_Noise.jpg Binary files differnew file mode 100644 index 00000000..a711935f --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Pattern_Noise.jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Pattern_Noise.jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Pattern_Noise.jpg.meta new file mode 100644 index 00000000..b2a97a79 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Pattern_Noise.jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: e0764bbcb1913ce4eb038fe89988a396 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Sketch_Noise.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Sketch_Noise.png Binary files differnew file mode 100644 index 00000000..21c33fd6 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Sketch_Noise.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Sketch_Noise.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Sketch_Noise.png.meta new file mode 100644 index 00000000..e3069cc4 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Sketch_Noise.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 6bfa05600af138847bc516fd43534e52 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Smudge_Noise.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Smudge_Noise.png Binary files differnew file mode 100644 index 00000000..7f2e5ee5 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Smudge_Noise.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Smudge_Noise.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Smudge_Noise.png.meta new file mode 100644 index 00000000..a5831f7c --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Smudge_Noise.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: e90e0fb9119be9b4db37ee3b86de6440 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Vornoi2_Noise.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Vornoi2_Noise.png Binary files differnew file mode 100644 index 00000000..9866e165 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Vornoi2_Noise.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Vornoi2_Noise.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Vornoi2_Noise.png.meta new file mode 100644 index 00000000..7c30e635 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Vornoi2_Noise.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 3e93baabe07c2e443ab3cf659438417c +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Voronoi_Noise.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Voronoi_Noise.png Binary files differnew file mode 100644 index 00000000..5eba2d25 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Voronoi_Noise.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Voronoi_Noise.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Voronoi_Noise.png.meta new file mode 100644 index 00000000..912f3322 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Voronoi_Noise.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 71c08610deb243144888703479205c12 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Wiggly_Noise.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Wiggly_Noise.png Binary files differnew file mode 100644 index 00000000..df0006bd --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Wiggly_Noise.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Wiggly_Noise.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Wiggly_Noise.png.meta new file mode 100644 index 00000000..311ddd3e --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_Wiggly_Noise.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 8b5a4f787794c584ab3fdb7f40d4ac37 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_ZigZag_Noise.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_ZigZag_Noise.png Binary files differnew file mode 100644 index 00000000..fbf9d295 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_ZigZag_Noise.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_ZigZag_Noise.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_ZigZag_Noise.png.meta new file mode 100644 index 00000000..c202d597 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Noise/T_ZigZag_Noise.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: ef36503fcb9106a4e982cc94d83685e9 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 16 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals.meta new file mode 100644 index 00000000..2ab208c7 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 837a7b4857a96a943b48de9dedb717d8 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals/T_Cloth_N.jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals/T_Cloth_N.jpg Binary files differnew file mode 100644 index 00000000..2eabb06a --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals/T_Cloth_N.jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals/T_Cloth_N.jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals/T_Cloth_N.jpg.meta new file mode 100644 index 00000000..1e5d867c --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals/T_Cloth_N.jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: f3dc3d4e2a6de754d93047830bdc5d15 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 1 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals/T_Fabric_N.jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals/T_Fabric_N.jpg Binary files differnew file mode 100644 index 00000000..742f693b --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals/T_Fabric_N.jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals/T_Fabric_N.jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals/T_Fabric_N.jpg.meta new file mode 100644 index 00000000..c69495f8 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals/T_Fabric_N.jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 95569409267572b49813657ae5de18e1 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 1 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals/T_Random_N.jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals/T_Random_N.jpg Binary files differnew file mode 100644 index 00000000..7be355aa --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals/T_Random_N.jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals/T_Random_N.jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals/T_Random_N.jpg.meta new file mode 100644 index 00000000..7b9618dd --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals/T_Random_N.jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: f771a6313a5869d44b53020b3dc105b7 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 1 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals/T_Wave_N.jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals/T_Wave_N.jpg Binary files differnew file mode 100644 index 00000000..98474fa5 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals/T_Wave_N.jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals/T_Wave_N.jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals/T_Wave_N.jpg.meta new file mode 100644 index 00000000..13b45553 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals/T_Wave_N.jpg.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: ab89d0b40a0410c4aa787b95750cb036 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 1 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals/T_couch_N.jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals/T_couch_N.jpg Binary files differnew file mode 100644 index 00000000..a84fa498 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals/T_couch_N.jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals/T_couch_N.jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals/T_couch_N.jpg.meta new file mode 100644 index 00000000..660ef47d --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals/T_couch_N.jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: ed3986805d60eda499042ce23b1be705 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 1 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals/T_crystal_N.jpg b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals/T_crystal_N.jpg Binary files differnew file mode 100644 index 00000000..bbad4107 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals/T_crystal_N.jpg diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals/T_crystal_N.jpg.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals/T_crystal_N.jpg.meta new file mode 100644 index 00000000..30bdeeb2 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals/T_crystal_N.jpg.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 446cd9992afb87f45b237154fea5f570 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 1 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals/WaterNorm.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals/WaterNorm.png Binary files differnew file mode 100644 index 00000000..97b43ade --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals/WaterNorm.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals/WaterNorm.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals/WaterNorm.png.meta new file mode 100644 index 00000000..eb748a06 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Normals/WaterNorm.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: b8960a088bdbdad478c88078ffab9d8c +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 1 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps.meta new file mode 100644 index 00000000..4731cbcb --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b141f3b3633da1943a28c5fad204de85 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/SkinLUT.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/SkinLUT.png Binary files differnew file mode 100644 index 00000000..8cfa0ba0 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/SkinLUT.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/SkinLUT.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/SkinLUT.png.meta new file mode 100644 index 00000000..7b651e51 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/SkinLUT.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: d13510bb2be49aa40a66a0101efb6a36 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 2 + aniso: 16 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 128 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: 5 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 1 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_Hair_SR.tga b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_Hair_SR.tga Binary files differnew file mode 100644 index 00000000..1db21897 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_Hair_SR.tga diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_Hair_SR.tga.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_Hair_SR.tga.meta new file mode 100644 index 00000000..849f79bd --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_Hair_SR.tga.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 49bcc4a51b69ddc438f1914cfa7f41f0 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 2 + aniso: 16 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 128 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_Metal_SR.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_Metal_SR.png Binary files differnew file mode 100644 index 00000000..9a5f6af0 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_Metal_SR.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_Metal_SR.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_Metal_SR.png.meta new file mode 100644 index 00000000..f4e921db --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_Metal_SR.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 7ff3cc732aae9734f85c697329ee371f +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 2 + aniso: 16 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 128 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_Mihoyo_MCSR.tga b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_Mihoyo_MCSR.tga Binary files differnew file mode 100644 index 00000000..94e0ceaf --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_Mihoyo_MCSR.tga diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_Mihoyo_MCSR.tga.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_Mihoyo_MCSR.tga.meta new file mode 100644 index 00000000..bc330883 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_Mihoyo_MCSR.tga.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 0901749828304e340844c78be88fe2e8 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 2 + aniso: 16 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 128 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_Neitri_skin_SR.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_Neitri_skin_SR.png Binary files differnew file mode 100644 index 00000000..c6601636 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_Neitri_skin_SR.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_Neitri_skin_SR.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_Neitri_skin_SR.png.meta new file mode 100644 index 00000000..ae71cd52 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_Neitri_skin_SR.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 6982ddf13e4f7ab4cb10c88cb6ba3ba4 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 2 + aniso: 16 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 128 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_Skin_SR.tga b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_Skin_SR.tga Binary files differnew file mode 100644 index 00000000..67b00a1b --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_Skin_SR.tga diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_Skin_SR.tga.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_Skin_SR.tga.meta new file mode 100644 index 00000000..ec5bc773 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_Skin_SR.tga.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: b4ae486ee54de7243a507d6356e7537d +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 2 + aniso: 16 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 128 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_SoftHardBlack_SR.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_SoftHardBlack_SR.png Binary files differnew file mode 100644 index 00000000..8b86a4e3 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_SoftHardBlack_SR.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_SoftHardBlack_SR.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_SoftHardBlack_SR.png.meta new file mode 100644 index 00000000..4452968d --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_SoftHardBlack_SR.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 9bb77cf8c1bd8184680cdfdc7f7b4c46 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 2 + aniso: 16 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 128 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_SoftHardGrey_SR.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_SoftHardGrey_SR.png Binary files differnew file mode 100644 index 00000000..de456007 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_SoftHardGrey_SR.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_SoftHardGrey_SR.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_SoftHardGrey_SR.png.meta new file mode 100644 index 00000000..92076861 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_SoftHardGrey_SR.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 732b4977557d2954f822f01846fa0dba +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 2 + aniso: 16 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 128 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_ToonSkin_SR.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_ToonSkin_SR.png Binary files differnew file mode 100644 index 00000000..64c32789 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_ToonSkin_SR.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_ToonSkin_SR.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_ToonSkin_SR.png.meta new file mode 100644 index 00000000..b6945644 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Ramps/T_ToonSkin_SR.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 56b3aaba9b026e84887babe35c1969f8 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 2 + aniso: 16 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 128 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Shapes.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Shapes.meta new file mode 100644 index 00000000..21e50084 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Shapes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9ce39c202872cd24da7374bb1ac12e22 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Shapes/T_Snowflake.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Shapes/T_Snowflake.png Binary files differnew file mode 100644 index 00000000..f98de484 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Shapes/T_Snowflake.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Shapes/T_Snowflake.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Shapes/T_Snowflake.png.meta new file mode 100644 index 00000000..805bfa67 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/Shapes/T_Snowflake.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 3739010f030632a4fa615f9a0a4a62ec +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/UV_Check.png b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/UV_Check.png Binary files differnew file mode 100644 index 00000000..60f42f33 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/UV_Check.png diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/UV_Check.png.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/UV_Check.png.meta new file mode 100644 index 00000000..f6a7a8d1 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/Textures/UV_Check.png.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: bb7711dde80ffc949b3171744eb92cdd +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 16 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/poiToonPresets.txt b/VRCSDK3Worlds/Assets/_PoiyomiShaders/poiToonPresets.txt new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/poiToonPresets.txt diff --git a/VRCSDK3Worlds/Assets/_PoiyomiShaders/poiToonPresets.txt.meta b/VRCSDK3Worlds/Assets/_PoiyomiShaders/poiToonPresets.txt.meta new file mode 100644 index 00000000..b9055b34 --- /dev/null +++ b/VRCSDK3Worlds/Assets/_PoiyomiShaders/poiToonPresets.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c1886b825430ada47a42d52f33c03cac +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: |