前言
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/
专栏推荐
完结
好了,我是向宇
,博客地址:https://xiangyu.blog.csdn.net,如果学习过程中遇到任何问题,也欢迎你评论私信找我。
赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注
,你的每一次支持
都是我不断创作的最大动力。当然如果你发现了文章中存在错误
或者有更好的解决方法
,也欢迎评论私信告诉我哦!