首页 > 其他分享 >边缘发光效果

边缘发光效果

时间:2024-08-22 22:03:59浏览次数:12  
标签:效果 Normal Color 边缘 发光 NormalMap 着色器

前言

时隔半年再来写shader发现好多东西都忘光了,最近刷短视频看见一个帅气的边缘发光效果,于是想自己也学着写一个,遂找博客学习。发现大佬用的是表面着色器的写法,于是狠狠的恶补了一波表面着色器
表面着色器可以看成是顶点片元着色器的一种抽象。可以更加方便的编写shader,不用再繁杂的编写光照模型。回归正题,边缘发光主要分两步,首先我们要找到模型边缘,让后自发光。第二步可以直接调用属性,所以关键就是第一步
视线与法线的夹角越大说明越靠近边缘,所以用点积来处理

代码

Shader "Custom/MargeLight"
{
    Properties
    {
        _Color ("Color", Color) = (1, 1, 1, 1)
        [Normal]_NormalMap("Normal Map", 2D) = "bump" {}
        _RimColor("Rim Color", Color) = (1, 1, 1, 0)
        _RimPower("Rim Power", Range(0.5, 6.0)) = 1.0
    }
    SubShader
    {
        Tags { "RenderType"="Opaque" }
        LOD 200
        
        CGPROGRAM
        #pragma surface surf Standard fullforwardshadows
        #pragma target 3.0

        float4 _Color;
        sampler2D _NormalMap;
        float4 _RimColor;
        float _RimPower;

        struct Input
        {
            float2 uv_NormalMap;
            float3 viewDir;
        };

        void surf(Input IN, inout SurfaceOutputStandard o)
        {
            o.Normal = UnpackNormal(tex2D(_NormalMap, IN.uv_NormalMap));
            float rim = 1 - saturate(dot(o.Normal, IN.viewDir));
            o.Albedo = _Color;
            o.Emission = _RimColor * pow(rim, _RimPower);
        }
        ENDCG
    }
    FallBack "Diffuse"
}

参考

大佬

标签:效果,Normal,Color,边缘,发光,NormalMap,着色器
From: https://www.cnblogs.com/monituihuo/p/18374724

相关文章

  • 【HW系列+技战法】全面掌控API接口,提升防御效果!
    原创紫队安全研究在现代互联网应用中,API接口已经成为了各种应用程序之间互通的桥梁。然而,随着API的广泛使用,API接口的安全性正逐渐成为网络安全的焦点。如果API接口被攻击者成功入侵,后果可能是灾难性的:数据泄露、服务中断、甚至整个系统瘫痪。为此,如何有效防御API接口的潜在......
  • 文字下滑线渐变效果(有hover效果)
    文字下滑线渐变效果(有hover效果)利用线性渐变,先设置background-size款为0,搞为3px,transition设置过过渡时间,hover时,把background-size宽度设为100%,高度还是3px<p>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA<a>BBBBBBBBBBBBBBBBBBBBB......
  • 全新AI边缘计算盒子支持海康,大华灯摄像头对接
    网迅通的边缘计算盒子支持海康和大华等主流品牌摄像头的接入,确保了系统的高兼容性和用户操作的便利性。通过HTTP、WebSocket、ModbusTCP等多种协议对接,这款设备极大简化了数据交换的过程,使您能够快速集成现有的系统。​-----“恒网迅通”这是我们研发的一款AI主机摄像头,......
  • 【python】PyQt5中的QFrame控件,控制图形的边框样式、阴影效果、形状等属性
    ✨✨欢迎大家来到景天科技苑✨✨......
  • js实现点击图片放大效果
    实现点击图片后弹出一个遮罩层来放大显示图片的功能,可以使用简单的HTML和JavaScript来完成:HTML结构-包含图片和一个用于弹出的遮罩层。CSS样式-设置遮罩层和放大的图片样式。JavaScript逻辑-处理点击事件和遮罩层的显示与隐藏。HTML<!DOCTYPEhtml><htmllang="en......
  • Nuxt3 使用animate.css来实现页面切换过渡效果
    首先,如果两个page分别在不同的layout下,是无法使用pageTransition来实现切换效果的,这时候需要使用layoutTransition来实现切换效果这里采用npmpackage的方式安装animate.css,当然采用cdn的形式也是可以的npmianimate.css然后在app.vue中导入<scriptsetup>import"anima......
  • rgba()和opacity的透明效果有什么不同?
    rgba()和opacity都是用来控制元素的透明度,但它们之间有一些重要的区别。一、rgba()rgba()是一个CSS函数,用于定义颜色的红、绿、蓝和透明度值。这个函数允许你指定一个颜色的RGBA值,其中R代表红色,G代表绿色,B代表蓝色,而A代表透明度(Alpha)。rgba()的透明度值范围从0.0(完全透明)到1.......
  • Web端OA办公后台管理系统(使用AxureRP设计)思路与效果分享
    本期带来一套OA办公后台管理系统(办公一体化)的设计分享。本次的作品设计,使用AxureRP软件。一套实用的后台OA系统,一定是功能强大、能覆盖常用功能的。本次分享的系统,包含组织、员工管理、考勤、薪资、社保公积金、绩效、招聘、审批、会议室预定、车辆申请、新闻发布、公告管理、合......
  • 点击放烟花效果,随便玩玩
    HTML<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>炫酷烟花效果</title>......
  • YOLOv5改进 | 融合改进 | C3融合ContextGuided增强分割效果
     秋招面试专栏推荐 :深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转......