尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

【Unity】URP中的UGUIShader实现

【Unity】URP中的UGUIShader实现
📅 发布时间:2026/6/21 2:37:02

【Unity】URP 中的 UGUIShader 实现

参考官方 Shader 代码实现:

https://github.com/TwoTailsGames/Unity-Built-in-Shaders/blob/master/DefaultResourcesExtra/UI/UI-Default.shader

Shader "UI/Template"
{Properties{// PerRendererData 表明纹理由每个渲染器提供,似乎是起某种优化作用。[PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {}_Color ("Tint", Color) = (1,1,1,1)_StencilComp ("Stencil Comparison", Float) = 8_Stencil ("Stencil ID", Float) = 0_StencilOp ("Stencil Operation", Float) = 0_StencilWriteMask ("Stencil Write Mask", Float) = 255_StencilReadMask ("Stencil Read Mask", Float) = 255_ColorMask ("Color Mask", Float) = 15// 启用Clip功能,Clip掉的像素将不会参与模板测试等。[Toggle(UNITY_UI_ALPHACLIP)] _UseUIAlphaClip ("Use Alpha Clip", Float) = 0}SubShader{LOD 100 //内置无光照系列Shader的LOD一般为100Tags{"Queue"="Transparent" // 渲染顺序为透明队列"PreviewType"="Plane" // 材质预览效果为平面"RenderType"="Transparent" // 渲染类型为透明"CanUseSpriteAtlas"="True" // 表明兼容 LegacySpritePacker 图集功能。"IgnoreProjector"="True" // 表明不受内置管线中投影器功能的影响。}//UI利用模板功能实现遮罩效果Stencil{Ref [_Stencil]Comp [_StencilComp]Pass [_StencilOp]ReadMask [_StencilReadMask]WriteMask [_StencilWriteMask]}//渲染器将自动排序,再加上UI都是半透明物体,所以无需深度功能ZWrite OffZTest [unity_GUIZTestMode] // unity_GUIZTestMode 根据当前画布的渲染模式自动设置Blend SrcAlpha OneMinusSrcAlphaColorMask [_ColorMask]Pass{HLSLPROGRAM#pragma vertex VertexPass#pragma fragment PixelPass#pragma shader_feature _ UNITY_UI_ALPHACLIP#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"cbuffer UnityPerMaterial{sampler2D _MainTex;float4 _MainTex_ST;float4 _Color;}struct Vertex{float3 positionOS:POSITION;float4 color : COLOR;float2 uv:TEXCOORD0;};struct Pixel{float4 positionCS:SV_POSITION;float4 color : COLOR;float2 uv:TEXCOORD0;};Pixel VertexPass(const Vertex vertex){Pixel pixel;pixel.positionCS = TransformObjectToHClip(vertex.positionOS);pixel.color = vertex.color * _Color;pixel.uv = TRANSFORM_TEX(vertex.uv, _MainTex);return pixel;}float4 PixelPass(const Pixel pixel):SV_TARGET{float4 color = tex2D(_MainTex, pixel.uv) * pixel.color;#ifdef UNITY_UI_ALPHACLIPclip (pixel.color.a - 0.001);#endifreturn color;}ENDHLSL}}
}

相关新闻

  • 【VSCode】插件开发笔记
  • Apache Ignite 广告实时竞拍系统架构全攻略
  • 实用指南:云计算与边缘计算:协同合作助力智慧城市建设

最新新闻

  • 机器学习在弱引力透镜宇宙学中的应用:应对系统误差与分布偏移挑战
  • 2026安康防水补漏避坑指南:卫生间/厨房/阳台/屋顶/地下室漏水检测维修全攻略,正规施工+透明报价+口碑榜靠谱服务商推荐 - 安佳防水
  • 从灾难性遗忘到概念瓶颈:CI-CBM实现免示例增量学习
  • 基于SAM的地质图像多任务分割:Petro-SAM框架实践与优化
  • 无需训练!3分钟上手roop-unleashed:浏览器就能玩的AI换脸神器
  • 2026年当下西安加固源头公司业内推荐:恒大加固深度解析与选型指南 - 品牌鉴赏官2026

日新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号