消散效果shader实践含clip阴影pass——UnityShader学习笔记

本文详细记录了作者学习消融效果Shader过程中遇到的问题和解决方案,涉及自言自语的笔记,包括如何处理模型消失、阴影保持、CGPROGRAM块的设置和多个Pass的使用。重点讲解了边缘溶解效果、法线计算、纹理贴图操作及平滑step和lerp函数的应用。

自言自语

消融效果shader学习练习笔记 没啥可说得了 写完看不见模型了 ORZ

然后晚上回来把绕不明白的几个函数给绕明白了。。。再加上阴影相关的几个宏 单独列个PASS 保持消散时的阴影一致 这几个宏得记一下 我这里默写下

CGPROGRAM块中 还要额外添加一段声明

#pragma multi_compile_shadowcaster

V2F 结构体中 V2F_SHADOW_CASTER;
顶点着色器中 TRANSFER_SHADOW_CASTER_NORMALOFFSET(o)
片元着色其中 SHADOW_CASETER_FRAGMENT(i)

一、效果部分

在这里插入图片描述

二、Shader部分

Shader "TNShaderPractise/ShaderPractise_Dissolve_40"
{
   
   
    Properties
    {
   
   
        _MainTex ("Texture", 2D) = "white" {
   
   }
        _NormalMap("法线贴图",2D)="bump"{
   
   }
        _DissolveMap("噪声贴图",2D)="white"{
   
   }
        _DissolveValue("溶解大小",Range(0,2))=0.2
        _LineWidth("边缘宽度",Range(0,0.7))=0.1
        [HDR]_LineColor01("边缘颜色1",Color)=(1,1,1,1)
        [HDR]_LineColor02("边缘颜色2",Color)=(1,1,1,1)
    }
    SubShader
    {
   
   
        Tags {
   
    "RenderType"="Opaque" "Queue"="Transparent" }
        Pass
        {
   
   
		//第一次写完模型不见了,也没报错,最后查了半天才发现 把 "ForwardBase" 拼错了..... 因此标记下  提醒自己
            Tags{
   
   "LightMode"="ForwardBase"}

			Cull Off

            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag
            #pragma multi_compile_fwdbase
            #include "Lighting.cginc"
            #include "UnityCG.cginc"
            #include "AutoLight.cginc"

            struct a2v
            {
   
   
                float4 vertex : POSITION
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值