您的当前位置:首页正文

Unity Shader 学习案例二:描边效果

2024-11-13 来源:个人技术集锦

Unity ShaderLab新手宝典简单Shader:描边效果 + 相关基础知识

原理

当Shader中有多个Pass时,Pass会按照顺序执行,后执行的Pass绘制的图像会覆盖掉前面的Pass绘制的图像。
这个案例就是通过两层Pass实现,第一层Pass将模型的顶点位置沿法线方向膨胀一段距离,然后为膨胀的模型指定一个颜色,不需要与任何灯光交互。
第二层模型正常显示,本案例使用Surface Shader,并使用Standard Specular光照模型。
正常情况第一层膨胀起来的模型会将第二层模型笼罩,因此第二层模型无法通过深度测试,最终只会显示第一层的模型。为解决这个问题,需要让第二层模型通过深度测试。具体解决办法有如下两种:

Shader "Samples/OutLine"
{
   
    Properties
    {
   
        [Header(Texture Group)]//[Header(name)]材质面板说明
        [Space(10)]//间距
        _Albedo("Albedo",2D) = "white"{
   }
        [NoScaleOffset]_Specular("Specular(RGB-A)",2D) = "black"{
   }//[NoScalle
显示全文