Shader——3D流光效果
发布日期:2021-06-30 19:57:19 浏览次数:2 分类:技术文章

本文共 3563 字,大约阅读时间需要 11 分钟。

一:流动光效效果

Shader "Custom/Flow" {    Properties    {        _MainTex ("Texture", 2D) = "white" {}        _WaveSpeed("贴图移速",float)=3    }    SubShader    {        Blend One ONE        CULL OFF        Tags{"Queue"="Transparent"}        Pass        {            CGPROGRAM            #pragma vertex vert            #pragma fragment frag                        #include "UnityCG.cginc"            struct appdata            {                float4 vertex : POSITION;                float2 uv : TEXCOORD0;            };            struct v2f            {                float2 uv : TEXCOORD0;                float4 vertex : SV_POSITION;            };            //下面是顶点着色器,有四个可控量,控制振幅、波长、频率、偏移            float _Frequency;            float _Attruibte;             float _K2;            float _B2;            v2f vert (appdata v)            {                v2f o;                o.vertex = UnityObjectToClipPos(v.vertex);                o.uv = v.uv;                return o;            }            //下面是片段着色器 控制像素的移动            sampler2D _MainTex;            float _WaveSpeed;            fixed4 frag (v2f i) : SV_Target            {                float2 tmpUV=i.uv;                tmpUV.y+= _WaveSpeed*_Time.y;                //tmpUV.x+=_WaveSpeed*_Time.x;                fixed4 col = tex2D(_MainTex,tmpUV);                return col;            }            ENDCG        }    }}

二:旋转光效效果

Shader "Custom/Glow" {    Properties    {        _MainTex ("Texture", 2D) = "white" {}        _Speed("旋转速度",Float)=1                    }    SubShader    {    cull off            Blend SrcAlpha One        Tags{"Queue"="Geometry+2"}        Pass        {            CGPROGRAM            #pragma vertex vert            #pragma fragment frag                         #include "UnityCG.cginc"            struct appdata            {                float4 vertex : POSITION;                float2 uv : TEXCOORD0;            };            struct v2f            {                float2 uv : TEXCOORD0;                float4 vertex : SV_POSITION;            };            v2f vert (appdata v)            {                v2f o;                o.vertex = UnityObjectToClipPos(v.vertex);                o.uv = v.uv;                return o;            }            //像素的矩阵旋转              //思路:            //1.先将旋转中心设为(0.5,0.5)   默认中心为(0,0)            //2.套用旋转公式            //3.旋转完毕,中心回到(0,0)            sampler2D _MainTex;            float _Speed;            fixed4 frag (v2f i) : SV_Target            {                float2 tmpUV =i.uv;                tmpUV -=float2(0.5,0.5);            //变换旋转中心                float2 angle =_Time*_Speed;             //角度随时间变化而变化                float2 result =float2(0,0);         //创建一个容器                result.x =tmpUV.x * cos(angle) -sin(angle)*tmpUV.y;  //套公式                result.y =tmpUV.x * sin(angle) +cos(angle)*tmpUV.y;  //套公式                tmpUV+=float2(0.5,0.5);             //旋转中心回归                fixed4 col = tex2D(_MainTex, result);                // just invert the colors                //col = 1 - col;                                return col;            }            ENDCG        }    }}// 关于矩阵旋转的公式: X:  1    0    0    0      (A为随时间变化而变化的角度,下同)//                 0  cosA -sinA  0//                 0  sinA  cosA  0//                 0    0    0    1//                Y: cosA  0   sinA  0//                 0    1    0    0//               -sinA  0   cosA  0//                     0    0    0    1//            Z:  cosA -sinA 0    0//                sinA  cosA 0    0//               0    0    1    0//               0    0    0    1

转载地址:https://liuhaowen.blog.csdn.net/article/details/105095616 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Shader——自发光效果
下一篇:Shader——消融效果

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月27日 05时22分16秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

Image Pyramid(图像金字塔) 2019-04-30
Oracle 作业记录 2019-04-30
putty连接AWS配置(multimedia project) 2019-04-30
Hourglass Network 沙漏网络 (pose estimation姿态估计) 2019-04-30
OpenCV实战(二)——答题卡识别判卷 2019-04-30
目标检测神经网络的发展历程(52 个目标检测模型) 2019-04-30
Boundary loss 损失函数 2019-04-30
神经网络调参实战(一)—— 训练更多次数 & tensorboard & finetune 2019-04-30
tensorflow使用tensorboard进行可视化 2019-04-30
神经网络调参实战(二)—— activation & initializer & optimizer 2019-04-30
凸优化 convex optimization 2019-04-30
数据库索引 & 为什么要对数据库建立索引 / 数据库建立索引为什么会加快查询速度 2019-04-30
IEEE与APA引用格式 2019-04-30
research gap 2019-04-30
pytorch训练cifar10数据集查看各个种类图片的准确率 2019-04-30
Python鼠标点击图片,获取点击点的像素坐标 2019-04-30
路径规划(一) —— 环境描述(Grid Map & Feature Map) & 全局路径规划(最优路径规划(Dijkstra&A*star) & 概率路径规划(PRM&RRT)) 2019-04-30
神经网络调参实战(四)—— 加深网络层次 & 批归一化 batch normalization 2019-04-30
数据挖掘与数据分析(三)—— 探索性数据分析EDA(多因子与复合分析) & 可视化(1)—— 假设检验(μ&卡方检验&方差检验(F检验))&相关系数(皮尔逊&斯皮尔曼) 2019-04-30
RRT算法(快速拓展随机树)的Python实现 2019-04-30