Unity ASE制作彩色流光马赛克 舞池DJ台效果 Shader@TOC
项目需求想写一个舞池DJ台的效果,尝试写了发现制作出好玩的效果。
首先想要得到这种棋盘格的效果,想到了马赛克像素平铺,平铺数低就是棋盘格效果,所以需要将UV进行平铺。
通过Floor节点反除获取到一个正方形的平铺棋盘格。
然后想要把棋盘格随机给上不同的颜色。
这时候想到颜色映射,用一张扰动贴图得到一张有黑白渐变的不规则颜色贴图。
使用ASE自带的Noise节点来当扰动贴图。
我们可以把扰动贴图的颜色信息黑色到白色颜色值从0到1
映射到pS制作的一个彩色渐变图上,
这样的话彩色渐变图的颜色信息就映射到扰动贴图的不同灰度值上,这样我们就得到了一张彩色的纹理图。使用Lerp来将把马赛克的平铺数给多一些就能够看到流光的彩色效果。
接下来为我们想让他动起来,这时候我们可以控制扰动贴图的UV偏移,乘以一个Time节点,加一个控制偏移的常量值(速度)这样的话,这张 彩色渐变图就能流动起来了。通过控制扰动贴图的尺寸,我们可以得到不同效果的波纹流动图片。获得到这张彩色渐变流动贴图后我们就可以把他用在各种文字或图片上。比如我制作了一张黑白的文字贴图,添加后就得出了这样的效果。
怎么样,一个材质就能实现多种的效果。马赛克效果,流动效果,DJ舞台效果。喜欢的点个赞!材质节点图在下方。
Shader "JJM_PixelsText"
{
Properties
{
_MainTex("MainTex", 2D) = "white" {
}
_Tiling("Tiling", Float) = 0
_Color("Color ", Color) = (0,0,0,0)
_TextureSample1("Texture Sample 1", 2D) = "white" {
}
_Emission("Emission", Float) = 0
_Speed("Speed", Float) = 0.06
_Scale("Scale", Float) = 0.35
[HideInInspector] _texcoord( "", 2D ) = "white" {
}
}
SubShader
{
Tags {
"RenderType"="Opaque" }
LOD 100
CGINCLUDE
#pragma target 3.0
ENDCG
Blend OneMinusDstColor One, One One
BlendOp Max, Add
AlphaToMask Off
Cull Back
ColorMask RGBA
ZWrite On
ZTest LEqual
Offset 0 , 0