UnityShader效果——雪花屏

本文介绍如何在Unity中使用Shader实现雪花屏效果。通过创建Shader文件,修改其内部代码,并应用到场景中的平面对象上,即可实现带有颜色变化的雪花屏视觉效果。

#前言

就闲着没事,偶尔分享一下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在网上很多的)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值