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

边缘光效果加流光效果

在这里插入图片描述

// Upgrade NOTE: replaced ‘_World2Object’ with ‘unity_WorldToObject’

Shader “Unlit/Scan_code”
{
Properties
{
_MainTex (“Texture”, 2D) = “white” {}
_RimMin(“RimMin”,Range(0,1)) = 0.0
_RimMax(“RimMax”,Range(0,1)) = 1.0
_RimColor(“RimColor”, Color) = (1,1,1,1)
_RimIntensity(“RimIntensity”, Range(0,1)) = 0.5
_InnerColor(“InnerColor”, Color) = (0,0,0,1)
_FlowTilling(“Flow Tilling”,Vector) = (1,1,0,0)
_FlowSpeed(“Flow Speed”, Vector) = (1,1,0,0)
_FlowTex(“Flow Texture”, 2D) = “white” {}
_FlowIntensity(“Flow Intensity”, Range(0,1)) = 0.5
_InnerAlpha(“Inner Alpha”, Range(0,1)) = 0.0
}
SubShader
{
Tags { “RenderType”=“Transparent” }
LOD 100

    Pass{ZWrite OffBlend SrcAlpha OneCGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"struct appdata{float4 vertex : POSITION;float2 texcoord : TEXCOORD0;float3 normal : NORMAL;};struct v2f{float2 uv : TEXCOORD0;float4 vertex : SV_POSITION;float3 pos_world : TEXCOORD1;float3 normal_world : TEXCOORD2;float3 pivot_world : TEXCOORD3;};sampler2D _MainTex;float4 _MainTex_ST;float _RimMin;float _RimMax;half4 _RimColor;half _RimIntensity;half4 _InnerColor;float4 _FlowTilling;float4 _FlowSpeed;sampler2D _FlowTex;float _FlowIntensity;float _InnerAlpha;v2f vert (appdata v){v2f o;o.vertex = UnityObjectToClipPos(v.vertex);//计算世界空间下的顶点法线float3 normal_world = mul(float4(v.normal,0.0),unity_WorldToObject).xyz;o.normal_world = normal_world;//输出世界空间下的顶点坐标float3 pos_world = mul(unity_ObjectToWorld,v.vertex).xyz;o.pos_world = pos_world;o.pivot_world = mul(unity_ObjectToWorld,float4(0,0,0,1)).xyz; return o;}fixed4 frag (v2f i) : SV_Target{                fixed4 col = tex2D(_MainTex, i.uv);//片元shader里的世界法线half3 normal_world = normalize(i.normal_world);//世界里的视线方向half3 viewDir = normalize(_WorldSpaceCameraPos.xyz - i.pos_world); //相机坐标减去顶点坐标half NdotV = saturate(dot(normal_world,viewDir));//法线与视线的点积 规范到0-1内half fresnel = 1-NdotV;//0-1half fresnel_ssLimit = smoothstep(_RimMin,_RimMax,fresnel);half emiss = tex2D(_MainTex, i.uv).r;                              emiss = pow(emiss,2);half final_fresnel = saturate( fresnel_ssLimit + emiss);half3 rim_color = lerp(_InnerColor,_RimColor* _RimIntensity,final_fresnel); //边缘光//流光half2 uv_flow = (i.pos_world.xy - i.pivot_world.xy)*_FlowTilling.xy;uv_flow = _Time.y * _FlowSpeed.xy + uv_flow;float4 flow_rgba = tex2D(_FlowTex, uv_flow)*_FlowIntensity;float3 final_col = rim_color+ flow_rgba.rgb;float final_alpha = saturate(final_fresnel + flow_rgba.a+ _InnerAlpha);return fixed4(final_col,final_alpha);}ENDCG}
}

}

http://www.dtcms.com/a/330937.html

相关文章:

  • 从0开始跟小甲鱼C语言视频使用linux一步步学习C语言(持续更新)8.14
  • 测试开发的社区:测试之家
  • 从根源到生态:Apache Doris 与 StarRocks 的深度对比 —— 论开源基因与长期价值的优越性
  • lib.dom.d.ts
  • 速通C++类型转换(代码+注释)
  • 【自动化测试】Web自动化测试 Selenium
  • docker rm删除容器命令入门教程
  • [论文阅读] 人工智能 + 软件工程 | 从模糊到精准:模块化LLM agents(REQINONE)如何重塑SRS生成
  • Flink CDC 实战:实时监听 MySQL Binlog 并同步到 Kafka
  • 监控插件SkyWalking(二)集成方法
  • kafka 单机部署
  • 【Android】适配器与外部事件的交互
  • Mybatis学习笔记(三)
  • [激光原理与应用-267]:理论 - 几何光学 - 胶卷相机的组成和工作原理
  • PostgreSQL 免安装
  • tomcat 定时重启
  • 通过 GitHub520 项目自动获取最新 Hosts 配置,无需手动查询 IP。
  • 语义 HTML 的核心价值:提升 SEO 与 AI 理解
  • 肖臻《区块链技术与应用》第14-15讲 超越货币:以太坊如何用“智能合约”开启去中心化应用时代
  • 备战亚马逊“Prime Big Deal Days”:卖家如何解锁年末增长密钥?
  • 2025年大模型安全岗的面试汇总(题目+回答)
  • 回归算法:驱动酒店智能化定价与自动化运营的引擎—仙盟创梦IDE
  • 不同ide回到上一个文件快捷键
  • STM32--寄存器与标准库函数--通用定时器--输出比较(PWM生成)
  • 区块链在可信空间智能合约中的应用
  • 在IAR Embedded Workbench for Arm中实现NXP S32K3安全调试
  • python sqlite3模块
  • iOS App TF上架全流程实战 高效内测分发与IPA包管理
  • 【KALI】第一篇 安装Kali Linux虚拟机之详细操作步骤讲解
  • Elasticsearch RBAC 配置:打造多租户环境的安全访问控制