Unity Universal Render Pipeline/Lit光照材质介绍

发布于:2025-07-10 ⋅ 阅读:(21) ⋅ 点赞:(0)

前言

URP/Lit(Universal Render Pipeline/Lit)是Unity通用渲染管线(URP)中的标准PBR(基于物理的渲染)材质,适用于大多数3D物体渲染。它是URP中最常用且功能最全面的材质类型。
在这里插入图片描述

参数介绍

1、表面选项

在这里插入图片描述

1.1 Worflow Mode工作流模式

在这里插入图片描述

Metallic和Specular,两个模式都能做出高质量材质,使用任何一种方法,您都可以很好地表示大多数常见的材质类型,因此在大多数情况下,选择其中一种是个人喜好的问题,以适应您的艺术工作流程。

1.2 Surface Type 表面类型

在这里插入图片描述

  • Opaque:不透明的
  • ransparent:透明的

现实世界多数物体是不透明的,它们之间会相互遮挡,Opaque不会开启混合(Blend模式),即使对象有Apha值,也不会产生透明效果.
在这里插入图片描述

如果使用Transparent,则可以透过透明物体,看到背后的物体,修改Alpha值能明显改变透明度
在这里插入图片描述

1.3 Blending Mode 混合模式

最常用的是Alpha,它是最接近真实世界的混合模式
在这里插入图片描述

  • Alpha 使用材质的 Alpha 值来更改对象的透明度。0 表示完全透明。1 表示完全不透明,但在透明渲染过程中仍然会渲染材质。对于您希望完全可见但随着时间的推移也会逐渐消失的视觉效果(例如云),这非常有用。
  • Premultiply 对材质应用与 Alpha 类似的效果,但保留反射和高光,即使表面是透明的情况下也是如此。这意味着只有反射光可见。例如,想象一下透明玻璃。
  • Additive 在另一个表面之上给材质添加额外的一层。这对全息图很有用。
  • Multiply 将材质的颜色与表面的背景颜色相乘。这会产生更暗的效果,就像透过彩色玻璃观看一样。

1.4 Preserve Specular 保留镜面光照(高光)

是否要保特高光,不受Alpha值影响.如果勾上,即使Alpha变为0,高光依然存在。如果取消,高光会随着Alphal降低而变弱
在这里插入图片描述

1.5 Render Face 渲染面

在这里插入图片描述

  • Both是两面都渲染
  • Back是仅渲染背面
  • Front是仅渲染正面

正面背面是指网格表面的方向,以四边形Quad为例,它有一个正面,一个背面
在这里插入图片描述

至于哪边是正面,哪边是背面,是网格在制作时决定的,封闭模型,比如球和正方体,一般把外表面定义为“正面,当从球的内部往外看,就会看到球表面的“背面”

1.6 Alpha Clipping 透明度剪裁

在这里插入图片描述

所有像素最终的alpha值,会和Alpha clipping里的值比较,如果像素的alpha值必小于这个配置,那么这个像素会被直接丢弃,不会渲染到最终输出里。

启用后可用于制作镂空效果(如树叶、栅栏等)。需要在制作贴图时考虑Alpha值。

1.7 Receive Shadows 是否接收阴影

表示阴影能否出现在它上面

2、表面输入

在这里插入图片描述

2.1 BaseMap 基础贴图

在这里插入图片描述

网格(Mesh)使用的纹理贴图,也被称作Albedo/Diffuse贴图。贴图一般会随着模型制作,是模型的外观,

贴图提供了一个颜色的配置,这里的颜色会和贴图进行混合,最后再附加到模型
在这里插入图片描述

2.2 Specular Map 高光贴图

影响物体的光泽
在这里插入图片描述

2.3 Smoothness 光滑度

在这里插入图片描述
光滑度越高,反光越集中。1数值达到1,就是一面镜子,光滑度的数值可以从贴图中获取,也就是在制作高光或者纹理贴图时,将Alpha值制作为纹理的光滑度,可以让物体不同区域有不同的光滑度。
在这里插入图片描述

Unity有一些推荐的参数,用来模拟各种材质,简单总结一下它的建议:

  • 对于更偏向金属质感的材质,Base Map最好接近黑色,而Specular Map接近金属本身的颜色
  • 对非金属的材质,Base Map使用接近材质的颜色,而Specular Map接近灰色

2.4 Normal Map法线贴图、Height Map高度贴图、Occlusion Map遮蔽贴图

在这里插入图片描述
它们都是让物体看起来更有凹凸感,在制作模型时一起制作

2.5 Emission 自发光

在这里插入图片描述
在没有光照的情况下发出的光亮

Unity里可以配合全局光照(GI),光照探针,将自发光计算为间接光照
在这里插入图片描述

2.6 Tiling和Offset

分别表示以上所有贴图的重复和移动,X/Y表示哪个轴的变化

这里用一个贴图方便演示

如果Tiling是1,Offset是0,就是使用原图作为贴图
在这里插入图片描述
如果增加Tiling,可以看到在对应轴上,贴图看起来被压缩了
在这里插入图片描述

而Offset就是平移了这个贴图,
在这里插入图片描述

它的原理是改变了顶点的纹理坐标,进而改变了每个像素的采样结果。

我们可以在资源文件夹中找到纹理,其中Wrap Mode 包裹模式定义了当纹理坐标UV超出0-1的范围时,采样的结果是什么
在这里插入图片描述

3、Detail Inputs细节输入

该选项用于添加细节
在这里插入图片描述
如何让模型在局部放大时,仍然可以看到丰富的细节?

最简单的方式是,绘制更高清的纹理贴图,容纳更多的颜色细节,但是它会明显增加贴图占用空间。

Detail Inputs就是一个解决局部细节的方案,它的核心思想是,把局部的细节从主贴图中剥离出来,单独成为一张贴图,通过增加Tiling模拟高分辨率的纹理,在采样主纹理贴图时,同时采样细节纹理贴图,然后将细节采样的结果叠加到主纹理的采样上,它平衡了占用空间和细节效果。

Mask用于标记主纹理上的哪些部分,是需要和细节贴图进行叠加的,下面是细节贴图和细节贴图的法线贴图,以及它们的Tiling和Offset。

4、高级选项

在这里插入图片描述

4.1 Specular Highlights 镜面高光

就是球面这个明显的光点
在这里插入图片描述

取消后光点消失
在这里插入图片描述

4.2 Environment Reflections 环境反射

提供更逼真的镜面反光效果,反射环境中的物体,比如反射天空盒。
在这里插入图片描述

4.3 Sorting Order 渲染顺序

所有Shader都有一个渲染队列序号,比如不透明物体是2000,透明物体是3000,越靠前的越先渲染。URP隐藏了队列序号,改为一个Slider,但是原理是一样的。

4.4 Enable GPU Instancing

当场景中存在大量相同的对象时,勾上它可以在一次DrawCall中,传递多个相同网格和材质的对象,加快渲染计算的速度。

注意:Unity官方建议低于256顶点的网格,不要启用这个选项,应该采用另外的优化方案。

参考

https://docs.unity3d.com/cn/Packages/com.unity.render-pipelines.universal@12.1/manual/lit-shader.html
https://www.bilibili.com/video/BV1foFNeuEjA/


专栏推荐

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

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


网站公告

今日签到

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