当前位置: 首页 > article >正文

Unity ShaderLab 实现3D物体描边

实现思路:

给物体添加第二个材质球,在shader的顶点着色器中使顶点的位置变大,然后在片元着色器中输出描边颜色。

shader Graph实现如下:

ShaderLab实现如下:

Shader "Custom/Outline"
{
    Properties
    {
        [HDR]_Color("Color", Color) = (0, 0, 0, 0)
        _Scale ("Scale",Range(0,5)) = 0
    }
    SubShader
    {
        Tags { "RenderType"="Transparent" }
        LOD 100
        
        Cull Front

        Pass
        {
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag

            #include "UnityCG.cginc"

            struct appdata
            {
                float4 vertex : POSITION;
            };

            struct v2f
            {
                float4 vertex : SV_POSITION;
            };

            float _Scale;
            float4 _Color;

            v2f vert (appdata v)
            {
                v2f o;
                o.vertex = UnityObjectToClipPos(v.vertex * _Scale);
                return o;
            }

            fixed4 frag (v2f i) : SV_Target
            {
                return _Color;
            }
            ENDCG
        }
    }
}

实现效果如下:


http://www.kler.cn/a/417477.html

相关文章:

  • 【BUUCTF逆向题】[MRCTF2020]Transform
  • python开发:爬虫示例——GET和POST请求处理
  • RFID隧道机:提升生产流水线效率与精准度
  • c++ list的front和pop_front的概念和使用案例—第2版
  • 【Day31 LeetCode】动态规划DP Ⅳ
  • Java高频面试之SE-17
  • Mybatis:CRUD数据操作之单条件查询
  • YOLO模型训练后的best.pt和last.pt区别
  • HTML技术深度解析:构建现代网页的基石
  • redis-bitmap使用详解
  • kubernetes——part3-2 集群声明式文件YAML
  • STL简介
  • 短视频账号矩阵系统源码--独立saas技术部署
  • 计算机视觉工程师紧张学习中!
  • keil 5. Flash Timeout. Reset the Target and try it again.
  • css—动画
  • Unix网络编程笔记(一、简介和TCP/IP)
  • ProtonBase 教育行业解决方案
  • ARM架构下安装新版docker及docker-compose
  • 渗透测试kali虚拟机分享(附网盘链接)
  • 创建maven私人创库nexus
  • 如何全面备份你的Mac电脑:邮件、联系人、桌面文件和Safari书签
  • 【论文阅读】Multi-level Semantic Feature Augmentation for One-shot Learning
  • keepalived+lVS(dr)高可用集群
  • Z2400039基于Java-+ SpringBoot + vue 企业信息管理系统的设计与实现(源码 配置 PPT 文档 分享)
  • 家庭记账本小程序