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

【unity组件介绍】URP Decal Projector贴花投影器,将特定材质(贴花)投影到场景中的其他对象上。

文章目录

  • 前言
  • 一、实战
    • 1、创建URP贴花投影器
    • 2、向 URP 渲染器添加贴花渲染器功能
    • 3、创建一个材质并将其分配给 Shader Graphs/Decal 着色器
    • 4、将材质绑定到URP Decal Projector上
    • 5、效果
  • 二、URP Decal Projector组件参数介绍
    • 1、 Scene 视图编辑工具
    • 2、组件属性
  • 三、补充知识
    • 1、修改贴花大小和深度
    • 2、只投射到特定层
    • 3、控制Decal 贴图的颜色与法线强度
  • 四、常见的用例
    • 1、在游戏中墙壁上的涂鸦、地毯上的花纹或者在射击游戏中的血迹、弹孔等等效果。
    • 2、汽车车辆快速换皮
    • 3、可以将特定材质(贴花)投影到 scene贴花与场景的光照交互并环绕网格
  • 专栏推荐
  • 完结

前言

URP12(Unity2021)开始,借助贴花渲染器功能 (URP Decal Projector),Unity 可以将特定材质(贴花)投影到场景中的其他对象上。常用于添加细节、污渍、血迹、标记等效果而不需要修改原始网格。
在这里插入图片描述
主要特点

  • 非破坏性:在不修改原始网格的情况下添加表面细节

  • 灵活投射:可以控制投影方向、大小和角度

  • 混合效果:支持与基础材质的混合模式

  • 性能优化:相比传统方法更高效

性能表现

  • 中等开销:比简单材质高,但比完整网格修改低

  • 基于屏幕空间:性能消耗与屏幕覆盖面积相关,而非场景复杂度

  • 批量处理:URP支持Decal批量渲染,减少draw calls

  • LOD支持:可以随距离调整或禁用

使用注意事项

  • 限制:贴花投影不适用于透明表面。
  • 投影:如果将贴花材质直接分配给某个游戏对象,则贴花投影器不会在此类游戏对象上投影贴花。
  • 性能:URP 支持材质的 GPU 实例化。如果场景中的贴花使用相同的材质,并且该材质启用了 Enable GPU Instancing 属性,则 URP 会实例化材质并可以降低性能影响。

官方文档:贴花渲染器功能

一、实战

1、创建URP贴花投影器

在这里插入图片描述

2、向 URP 渲染器添加贴花渲染器功能

在这里插入图片描述

3、创建一个材质并将其分配给 Shader Graphs/Decal 着色器

在这里插入图片描述

在材质中,选择要投射图形的 Base Map 和 Normal Map。我这里随便选一张图,也没有Normal Map
在这里插入图片描述

4、将材质绑定到URP Decal Projector上

在这里插入图片描述

5、效果

可以看到图形投射到了地面
在这里插入图片描述

二、URP Decal Projector组件参数介绍

在这里插入图片描述

1、 Scene 视图编辑工具

在这里插入图片描述

2、组件属性

在这里插入图片描述

三、补充知识

1、修改贴花大小和深度

修改宽高可以调整贴花大小,深度一般都尽可能大一点,这样才可以确保能正确投射到地面
在这里插入图片描述

2、只投射到特定层

贴花是默认会投射到前面的所有物体上的
在这里插入图片描述
但是有时候我们可能不想要这样,只想让它只投射到某个渲染层,要怎么做?

先在URP 渲染器上勾选开启Use Rendering Layers使用渲染层
在这里插入图片描述
在这里插入图片描述
修改贴花只在Light Layer 1渲染层生效
在这里插入图片描述
修改地面渲染层遮罩也为Light Layer 1
在这里插入图片描述
结果
在这里插入图片描述
但是可以看到,现在地面和贴花灯光渲染有问题了,变暗了

千万不要忘记了,我们灯光也要开启渲染Light Layer 1
在这里插入图片描述
现在一起正常了
在这里插入图片描述

3、控制Decal 贴图的颜色与法线强度

为了能够控制贴图的颜色与法线强度,这里我们在内置的 Decal Shader Graph 上增加了两个节点 Multiplay 与 Normal Strength;并在 Shader Graph 中添加两个属性 Color 和 Normal Strength,这样我们就可以在编辑器的 Inspector 界面对其进行修改。
在这里插入图片描述
在这里插入图片描述

四、常见的用例

1、在游戏中墙壁上的涂鸦、地毯上的花纹或者在射击游戏中的血迹、弹孔等等效果。

在这里插入图片描述在这里插入图片描述

2、汽车车辆快速换皮

在这里插入图片描述

3、可以将特定材质(贴花)投影到 scene贴花与场景的光照交互并环绕网格

没有贴花的示例场景
在这里插入图片描述

带贴花的示例场景。贴花隐藏了材质之间的接缝并添加了艺术细节。
在这里插入图片描述


专栏推荐

地址
【unity游戏开发入门到精通——C#篇】
【unity游戏开发入门到精通——unity通用篇】
【unity游戏开发入门到精通——unity3D篇】
【unity游戏开发入门到精通——unity2D篇】
【unity实战】
【制作100个Unity游戏】
【推荐100个unity插件】
【实现100个unity特效】
【unity框架/工具集开发】
【unity游戏开发——模型篇】
【unity游戏开发——InputSystem】
【unity游戏开发——Animator动画】
【unity游戏开发——UGUI】
【unity游戏开发——联网篇】
【unity游戏开发——优化篇】
【unity游戏开发——shader篇】
【unity游戏开发——编辑器扩展】
【unity游戏开发——热更新】
【unity游戏开发——网络】

完结

好了,我是向宇,博客地址:https://xiangyu.blog.csdn.net,如果学习过程中遇到任何问题,也欢迎你评论私信找我。

赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注,你的每一次支持都是我不断创作的最大动力。当然如果你发现了文章中存在错误或者有更好的解决方法,也欢迎评论私信告诉我哦!
在这里插入图片描述

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

相关文章:

  • RabbitMQ深度解析:从核心概念到实战应用
  • 【Android】EditText使用和监听
  • 聚观早报 | 英伟达股价再创新高;中国联通eSIM手机业务开通上线;中国AI加速出海 阿里云提供全栈能力支持
  • Linux之Zabbix分布式监控篇(二)
  • Flutter基础(前端教程①②-序列帧动画)
  • element-plus——图标推荐
  • 【JAVA新特性】Java 8 新特性实战
  • 网络安全威胁下的企业困境与破局技术实践
  • string + 栈 bitset 可达性统计(拓扑排序)
  • 浅探C语言的回调函数(Callback Function)
  • CD54.【C++ Dev】vector和list的反向迭代器的实现
  • 大语言模型Gemini Deep Research 全流程解读+使用攻略
  • uniapp云打包安卓
  • ADVB时序图
  • Spring Boot基于AOP的本地/远程调用动态路由实践
  • 如何在银河麒麟桌面系统中启用 sudo 密码的星号反馈
  • QT之openGL使用(一)
  • 燕之屋打造多元化产品组合,引领行业迈向高质量发展新里程
  • 心通达OA知识管理平台:高效解决单位知识管理难题
  • 点晴模切ERP帮忙模切行业向数智化管理转型
  • Rocky Linux 9 源码包安装php7
  • 如何通过mac的前24bit,模糊确认是那一台什么样的设备
  • macOS 字体管理全攻略:如何查看已安装字体及常见字体格式区
  • 从基础到实战:.NET 反射机制的进阶用法与最佳实践
  • Tekla多部门协作,授权资源如何共享与调度?
  • 暑期算法训练.3
  • day29:零基础学嵌入式之线程1.0
  • HTML 极简个人介绍卡片(侧重语义化标签和响应式布局)
  • pytorch小记(三十二):深度解析 PyTorch 的 `torch.remainder`:向下取整余数运算
  • 【web安全】DVWA存储型XSS分析与利用