修复技能输入并更新战斗资源
This commit is contained in:
@@ -0,0 +1,109 @@
|
||||
Shader "SGame/Particles/Screen_Distortion"
|
||||
{
|
||||
Properties
|
||||
{
|
||||
_Diffuse ("基础贴图", 2D) = "white" {}
|
||||
_V ("基础贴图动画V", Float ) = 0
|
||||
_U ("基础贴图动画U", Float ) = 0
|
||||
_Value ("扭曲强度", Float ) = 1
|
||||
_Mask ("遮罩贴图", 2D) = "white" {}
|
||||
[MaterialToggle] _MaskUseR ("遮罩是否黑底", Float) = 0
|
||||
_Mask1USpeed ("遮罩动画U", Float) = 0
|
||||
_Mask1VSpeed ("遮罩动画V", Float) = 0
|
||||
_MaskIntensity ("遮罩强度", Float) = 1
|
||||
[HideInInspector]_Cutoff ("Alpha cutoff", Range(0,1)) = 0.5
|
||||
}
|
||||
|
||||
SubShader
|
||||
{
|
||||
Tags
|
||||
{
|
||||
"Queue"="Overlay"
|
||||
"RenderType" = "Transparent"
|
||||
"IgnoreProjector" = "True"
|
||||
"PreviewType" = "Plane"
|
||||
"PerformanceChecks" = "False"
|
||||
"RenderPipeline" = "UniversalPipeline"
|
||||
|
||||
"LightMode" = "ScreenDistortion"
|
||||
}
|
||||
Blend SrcAlpha OneMinusSrcAlpha
|
||||
Cull Off ZWrite Off Lighting Off
|
||||
|
||||
Pass
|
||||
{
|
||||
HLSLPROGRAM
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
#pragma fragmentoption ARB_precision_hint_fastest
|
||||
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
|
||||
|
||||
TEXTURE2D(_Diffuse); SAMPLER(sampler_Diffuse);
|
||||
TEXTURE2D(_Mask); SAMPLER(sampler_Mask);
|
||||
TEXTURE2D_X(_CameraOpaqueTextureClone);
|
||||
SAMPLER(sampler_CameraOpaqueTextureClone);
|
||||
|
||||
CBUFFER_START(UnityPerMaterial)
|
||||
float4 _Diffuse_ST; half4 _Mask_ST; half _Mask1USpeed; half _Mask1VSpeed;
|
||||
float _V; float _U; float _Value; float _MaskIntensity; half _MaskUseR;
|
||||
CBUFFER_END
|
||||
|
||||
struct Attributes
|
||||
{
|
||||
float4 vertex : POSITION;
|
||||
float2 texcoord0 : TEXCOORD0;
|
||||
float4 vertexColor : COLOR;
|
||||
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
};
|
||||
struct Varyings
|
||||
{
|
||||
float4 pos : SV_POSITION;
|
||||
float2 uv0 : TEXCOORD0;
|
||||
float4 vertexColor : COLOR;
|
||||
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
UNITY_VERTEX_OUTPUT_STEREO
|
||||
};
|
||||
|
||||
inline float3 SampleSceneColor(float2 uv)
|
||||
{
|
||||
return SAMPLE_TEXTURE2D_X(_CameraOpaqueTextureClone, sampler_CameraOpaqueTextureClone, UnityStereoTransformScreenSpaceTex(uv)).rgb;
|
||||
}
|
||||
|
||||
inline Varyings vert (Attributes v)
|
||||
{
|
||||
Varyings o = (Varyings)0;
|
||||
|
||||
UNITY_SETUP_INSTANCE_ID(v);
|
||||
UNITY_TRANSFER_INSTANCE_ID(v, o);
|
||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
|
||||
|
||||
VertexPositionInputs vertexInput = GetVertexPositionInputs(v.vertex.xyz);
|
||||
o.pos = vertexInput.positionCS;
|
||||
o.vertexColor = v.vertexColor;
|
||||
o.uv0 = v.texcoord0;
|
||||
|
||||
return o;
|
||||
}
|
||||
inline half4 frag(Varyings i) : SV_Target
|
||||
{
|
||||
UNITY_SETUP_INSTANCE_ID(i);
|
||||
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);
|
||||
|
||||
float2 uvDiffuse = i.uv0 + float2(_U, _V) * _Time.y;
|
||||
float4 diffuseTex = SAMPLE_TEXTURE2D(_Diffuse, sampler_Diffuse, TRANSFORM_TEX(uvDiffuse, _Diffuse));
|
||||
half2 sceneUVs = (i.pos.xy / _ScreenParams.xy) + (_Value * diffuseTex.a * float2(diffuseTex.r, diffuseTex.g) * i.vertexColor.a);
|
||||
|
||||
half4 mask_Var = SAMPLE_TEXTURE2D(_Mask, sampler_Mask, TRANSFORM_TEX(i.uv0, _Mask) + half2(_Mask1USpeed, _Mask1VSpeed) * _Time.y);
|
||||
half mask = ((sqrt(mask_Var.r) * _MaskUseR + mask_Var.a * (1 - _MaskUseR))) * _MaskIntensity;
|
||||
half4 sceneColor = half4(SampleSceneColor(sceneUVs), 1);
|
||||
|
||||
half alpha = mask * diffuseTex.a * i.vertexColor.a;
|
||||
|
||||
return half4(sceneColor.rgb, clamp(alpha, 0, 1));
|
||||
}
|
||||
ENDHLSL
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user