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

发布于:2025-07-19 ⋅ 阅读:(16) ⋅ 点赞:(0)

前言

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,如果学习过程中遇到任何问题,也欢迎你评论私信找我。

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


网站公告

今日签到

点亮在社区的每一天
去签到