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

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


文章目录

  • 前言
  • 一、实战
    • 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 可以将特定材质(贴花)投影到场景中的其他对象上。常用于添加细节、污渍、血迹、标记等效果而不需要修改原始网格。
【unity组件介绍】URP Decal Projector贴花投影器,将特定材质(贴花)投影到场景中的其他对象上。_unity贴花
主要特点

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

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

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

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

性能表现

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

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

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

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

使用注意事项

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

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

一、实战

1、创建URP贴花投影器

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

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

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

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

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

在材质中,选择要投射图形的 Base Map 和 Normal Map。我这里随便选一张图,也没有Normal Map
【unity组件介绍】URP Decal Projector贴花投影器,将特定材质(贴花)投影到场景中的其他对象上。_unity贴花

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

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

5、效果

可以看到图形投射到了地面
【unity组件介绍】URP Decal Projector贴花投影器,将特定材质(贴花)投影到场景中的其他对象上。_unity贴花

二、URP Decal Projector组件参数介绍

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

1、 Scene 视图编辑工具

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

2、组件属性

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

三、补充知识

1、修改贴花大小和深度

修改宽高可以调整贴花大小,深度一般都尽可能大一点,这样才可以确保能正确投射到地面
【unity组件介绍】URP Decal Projector贴花投影器,将特定材质(贴花)投影到场景中的其他对象上。_unity贴花

2、只投射到特定层

贴花是默认会投射到前面的所有物体上的
【unity组件介绍】URP Decal Projector贴花投影器,将特定材质(贴花)投影到场景中的其他对象上。_unity贴花
但是有时候我们可能不想要这样,只想让它只投射到某个渲染层,要怎么做?

先在URP 渲染器上勾选开启Use Rendering Layers使用渲染层
【unity组件介绍】URP Decal Projector贴花投影器,将特定材质(贴花)投影到场景中的其他对象上。_unity贴花
【unity组件介绍】URP Decal Projector贴花投影器,将特定材质(贴花)投影到场景中的其他对象上。_unity贴花
修改贴花只在Light Layer 1渲染层生效
【unity组件介绍】URP Decal Projector贴花投影器,将特定材质(贴花)投影到场景中的其他对象上。_unity贴花
修改地面渲染层遮罩也为Light Layer 1
【unity组件介绍】URP Decal Projector贴花投影器,将特定材质(贴花)投影到场景中的其他对象上。_unity贴花
结果
【unity组件介绍】URP Decal Projector贴花投影器,将特定材质(贴花)投影到场景中的其他对象上。_unity贴花
但是可以看到,现在地面和贴花灯光渲染有问题了,变暗了

千万不要忘记了,我们灯光也要开启渲染Light Layer 1
【unity组件介绍】URP Decal Projector贴花投影器,将特定材质(贴花)投影到场景中的其他对象上。_unity贴花
现在一起正常了
【unity组件介绍】URP Decal Projector贴花投影器,将特定材质(贴花)投影到场景中的其他对象上。_unity贴花

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

为了能够控制贴图的颜色与法线强度,这里我们在内置的 Decal Shader Graph 上增加了两个节点 Multiplay 与 Normal Strength;并在 Shader Graph 中添加两个属性 Color 和 Normal Strength,这样我们就可以在编辑器的 Inspector 界面对其进行修改。
【unity组件介绍】URP Decal Projector贴花投影器,将特定材质(贴花)投影到场景中的其他对象上。_unity贴花
【unity组件介绍】URP Decal Projector贴花投影器,将特定材质(贴花)投影到场景中的其他对象上。_unity贴花

四、常见的用例

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

【unity组件介绍】URP Decal Projector贴花投影器,将特定材质(贴花)投影到场景中的其他对象上。_unity贴花在这里插入图片描述

2、汽车车辆快速换皮

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

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

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

带贴花的示例场景。贴花隐藏了材质之间的接缝并添加了艺术细节。
【unity组件介绍】URP Decal Projector贴花投影器,将特定材质(贴花)投影到场景中的其他对象上。_unity贴花


专栏推荐

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

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