#前言
就闲着没事,偶尔分享一下Shader的效果,可能就一次的偶尔。
我也是正在学Shader,所以不要希望我给大家介绍什么吊炸天的效果,牛逼的全局优化,我也就随便介绍一些简单的效果。如果大家觉得我写的不好,请在评论区里告诉我怎么改,谢了。
#正文
#效果图

啊~~~我的眼睛!
#使用
我先简单给不知道咋用的小伙伴介绍一下怎么使用,就讲一次,了解的小伙伴可以跳过。
- 创建一个Shader文件

随便选一个就好,然后就创建好了一个Shader文件,然后命个名字。Shader文件的命名不像.cs(C#代码文件)要求文件名和类名一样,Shader文件名字不一样一样用,但还是建议和内部命名一致。

- 修改Shader文件
双击进入shader文件,把shader文件内所有代码删掉,把待会我会在下面展示的代码贴进去(在下CtrlCV工程师)。

- 创建材质并选择Shader


选择MyShader——SnowFlakeScreen
- 创建一个平面,把材质放上去
这个就不用我讲了。
#代码
Shader "MyShader/SnowflakeScreen"
{
Properties
{
}
SubShader
{
pass
{
Tags{ "Lighting" = "ForwardBase" }
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "Lighting.cginc"
struct a2v
{
float4 vertex:POSITION;
float2 texcoord:TEXCOORD0;
};
struct v2f
{
float4 pos:SV_POSITION;
float2 uv:TEXCOORD1;
};
v2f vert(a2v v)
{
v2f o;
o.pos = UnityObjectToClipPos(v.vertex);
o.uv = v.texcoord;
return o;
}
fixed4 frag(v2f i):SV_TARGET0
{
float2 a = frac(sin(dot(i.uv, float2(1, 10)) * _Time.y) * 10000 * i.uv);
return fixed4(a, a);
}
ENDCG
}
}
}
是用uv在伪随机数取样乘上时间(这样就已经是雪花屏了,但只是黑白的),然后乘上uv就有颜色了。
听不懂?那就证明你有新的知识需要学习了。(๑•̀ㅂ•́)و✧
这个时候我是应该把UnityShader入门圣经《Unity Shader入门精要》方向出来了。诶,我就不拿出来,我之前给的《C#高级编程》看完没,C#都没有学完,学什么Shader(有需要自己百度下吧,这本书的pdf在网上很多的)。
本文介绍如何在Unity中使用Shader实现雪花屏效果。通过创建Shader文件,修改其内部代码,并应用到场景中的平面对象上,即可实现带有颜色变化的雪花屏视觉效果。
3192

被折叠的 条评论
为什么被折叠?



