Unity溶解Shader
一、前言
嘿嘿,今天我们继续来实现溶解效果
1.1 思路
思路:我们可以运用一张噪声贴图,然后采样噪声贴图的透明度,接着定义一个_ThresholdAlpha透明度阈值变量,当噪声贴图的透明度小于_ThresholdAlpha。我们可以运用clip(x)函数来裁剪掉像素。随着_ThresholdAlpha的变大即可实现溶解效果
1.2 效果图

1.3 准备工作
1.3.1 噪声贴图
我们需要一张噪声贴图作为材料,先附上贴图

1.3.2 贴图设置
接着我们修改下贴图的透明设置

二、Shader内容
2.1 初版Shader
Shader "Unlit/Dissolve"
{
Properties
{
_MainTex ("Texture", 2D) = "white" {}
_NoiseTex("Texture", 2D) = "white" {}
_ThresholdAlpha("ThresholdAlpha",Range(0,1)) = 0
}
SubShader
{
Tags { "RenderType"="Opaque" }
LOD 100
Pass
{
Blend SrcAlpha OneMinusSrcAlpha
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
// make fog work
#pragma multi_compile_fog
#include "UnityCG.cginc"
struct appdata
{
float4 vertex : POSITION;
float2 uv : TEXCOORD0;

本文介绍了如何使用Unity创建溶解效果的Shader,通过噪声贴图和透明度阈值控制像素的溶解程度。首先,利用噪声贴图采样并设定_ThresholdAlpha阈值,当噪声贴图的透明度小于阈值时,使用clip函数裁剪像素。然后,通过优化Shader,添加_DissolveAlpha和_DissolveColor变量,使溶解区域呈现出火烧效果,增强视觉表现。最后提供了完整的Shader代码供参考。

1194

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



