Unity 扫光Shader

该教程介绍了如何在Unity中创建一个扫光Shader,通过使用扫光贴图,结合_Time.y实现扫光的动态移动,并通过_RotateAngel变量调整扫光方向。Shader代码包括对纹理的采样、颜色叠加以及应用旋转函数来改变扫光方向。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、前言

今天我们来实现一个扫光Shader

1.1 思路

思路:我们可以用一张作为扫光的贴图,然后采样它的颜色叠加在原来的基础上,这样就有了光,接着运用_Time.y让采样的UV随着时间变化,这样扫光就能动起来

1.2 效果图

可以看到,扫光按我们所想移动了起来,另外我们还加了一个_RotateAngel变量,让扫光的方向可以调节
请添加图片描述

1.3 准备工作

1.3.1 扫光贴图

我们需要一张扫光的贴图作为材料,先附上贴图
扫光贴图

1.3.2 贴图设置

这里需要把WrapMode设置为Repeat,因为我们算法中uv或加上当前的时间,让uv超出0~1的范围,把WrapMode设置为Repeat,这样保证超出0 ~ 1后还可以采样到纹理
![在这里插入图片描述](https://img-blog.csdnimg.cn/233a730a7f7c4edc92b9a5fa1110e843.png在这里插入图片描述

二、Shader内容

2.1 初版Shader

Shader "Custom/MoveLight"
{
    Properties
    {
        _MainTex ("MainTex", 2D) = "white" {}
        _LightTex("LightTex",2D) = "white" {}
        _LightColor("LightColor",Color) = (1,1,1,1)
        _LightStrength("LightStrength",Range(1,10)) = 1
        _Speed("Speed",Range(0,10)) = 1
        _RotateAngel("RotateAngel",Range(0,360)) = 0
    }
    SubShader
    {
        Tags { "Queue"="Transparent" "RenderType"="Transparent" }
        Blend SrcAlpha OneMinusSrcAlpha


        Pass
        {
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag
            #include "UnityCG.cginc"

            stru
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值