shader 雪 顶点位移_URP四则:顶点动画、雾效解析、序列动画、公告牌!

1. URP顶点动画e861960fddd9695f3eec813074d1de05.gif原理:

  • 1、通过改变本地空间下顶点位置属性实现位移。

  • 2、sin函数实现循环效果。

代码部分:

Shader "CZW/URP/VertexAnimation"
{
Properties
{
_Color("Color",Color) = (1,1,1,1)
_Fresnel("Fade(X) Intancity(Y)",vector) = (0.81,5.2,1,1)
_Animation("Repeat(XZ) Intancity(YW)",vector) = (1.7,0.42,3.59,0.38)
_MaskScale("Maskscale",Range(0,1)) = 0.473
}

SubShader
{
Tags { "RenderPipeline" = "UniversalPipeline" "Queue" = "Transparent" }

Pass
{
Tags{ "LightModel" = "ForwardBase"}
Cull Back
ZWrite on
ZTest LEqual
Blend SrcAlpha OneMinusSrcAlpha

HLSLPROGRAM
#pragma vertex vert #pragma fragment frag
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
#include "Packages/com.unity.shadergraph/ShaderGraphLibrary/ShaderVariablesFunctions.hlsl"

CBUFFER_START(UnityPerMaterial)
float4 _Color;
float4 _Fresnel;
float _MaskScale;
float4 _Animation;
CBUFFER_END


struct Attributes
{
float4 posOS : POSITION;
half3 normalOS :NORMAL;
};

struct Varyings
{
float4 posCS : SV_POSITION;
half3 posOS :TEXCOORD0;
half3 normalWS :TEXCOORD1;
float3 posWS :TEXCOORD2;
};



Varyings vert (Attributes v)
{
Varyings o = (Varyings)0;
o.posOS = v.posOS;
v.posOS.x += sin((v.posOS.y+_Time.y)*_Animation.x)*_Animation.y;
v.posOS.z += sin((v.posOS.y+_Time.y)*_Animation.z)*_Animation.w;
o.posCS = TransformObjectToHClip(v.posOS);
o.posWS = TransformObjectToWorld(v.posOS);
o.normalWS = TransformObjectToWorldNormal(v.normalOS);

return o;
}

half4 frag (Varyings i) : SV_Target
{
half mask = saturate(i.posOS.y * _MaskScale);
// return mask; half3 N = normalize(i.normalWS);
float3 V = normalize(_WorldSpaceCameraPos - i.posWS);
half fresnel = pow(1-saturate(dot(N,V)),_Fresnel.x) * _Fresnel.y;
half3 final = fresnel * _Color.rgb ;
return half4(final,mask);
}
ENDHLSL
}
}
FallBack "Hidden/Shader Graph/FallbackError"
}

2. URP雾效解析

欢迎大佬们进行点评,同时也欢迎大家遇到的一些问题评论私信给我大家一切探讨。

在介绍URP雾效之前先介绍一下real和

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值