1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > Unity Shader实现《氮气加速特效》

Unity Shader实现《氮气加速特效》

时间:2021-05-30 18:45:24

相关推荐

Unity Shader实现《氮气加速特效》

1:材质和shader

Shader 是一种給GPU执行的代码,GPU的渲染流水线,为了方便开发人员定制效果,开放出接口給程序员编写代码来控制,这种程序叫作shader, shader开发语言,cocos采用的是GLSL编程语言。开发人员可以在下图顶点Shader和着色Shader来插入代码。

材质是一种配置文件,选择好一个Shader(算法), 并給这个Shader提供必要的参数,当游戏引擎绘制物体的时候,先读取材质,根据材质, 給GPU配置shader和shader要的参数, 这样管道流水线就可以完成的绘制出来这个物体。

2: 准备工作

准备一个子弹头模型(子弹列车^_^)

准备一个加速特效的火焰与透明渐变的贴图:

3: 实现的效果:

4: 上代码:

Shader "Custom/additiveTex_2" {Properties {_TintColor ("Tint Color", Color) = (0.5, 0.5, 0.5, 0.5)_Intensity ("Intensity", Float) = 1.0_MainTexture ("Base (RGB) Alpha(A)", 2D) = "white" {}_Mask ("Mask (ARGB or Grayscale)", 2D) = "white" {}_speed("speed",Float)=5}Category {Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" }Blend SrcAlpha OneAlphaTest Greater 0.01ColorMask RGBCull OffLighting OffZWrite Off// Fog { Color (0,0,0,0) }/*BindChannels {Bind "Color", colorBind "Vertex", vertexBind "TexCoord", texcoord}*/SubShader {Pass {CGPROGRAM#pragma vertex vert#pragma fragment frag#pragma fragmentoption ARB_precision_hint_fastest#include "UnityCG.cginc"fixed4 _TintColor;float _Intensity;sampler2D _MainTexture;sampler2D _Mask;float _speed;float4 _MainTexture_ST;float4 _Mask_ST;struct appdata_t {float4 vertex : POSITION;fixed4 color : COLOR;float2 texcoord : TEXCOORD0;float2 texcoord2 : TEXCOORD1;};struct v2f {float4 vertex : POSITION;fixed4 color : COLOR;float2 texcoord : TEXCOORD0;float2 texcoord2 : TEXCOORD1;};v2f vert (appdata_t v){v2f o;o.vertex = UnityObjectToClipPos(v.vertex);o.color = v.color;o.texcoord = TRANSFORM_TEX(v.texcoord,_MainTexture);o.texcoord2 = TRANSFORM_TEX(v.texcoord2,_Mask);return o;}fixed4 frag (v2f i) : COLOR{i.texcoord.x+=_Time*_speed;i.texcoord.y-=(_Time*_speed*16);half4 c = i.color * _TintColor * tex2D(_MainTexture, i.texcoord);half4 mask = tex2D(_Mask, i.texcoord2);c *= mask.a;return _Intensity * c;}ENDCG }}} FallBack "Diffuse"}

氮气加速特效详细的视频详细讲解,和项目工程,可以加学习讨论群,今天的分享都到这里结束了,谢谢大家。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。