Rendering是什么
渲染Rendering可以理解为将拿到的3D数据生成一副2D图像的过程。
这些3D数据包含:3D模型本身的点的信息,三角形面的描述信息,模型应用的材质以及摆放的虚拟相机的信息等。Rendering过程会使用全部的数据(物体的几何信息,位置,颜色,光照等等),生成相机所看到的透视投影的2D图像。
Pipeline是什么
如果将Rendering看成是从A点到B点的过程,那么可以将管线(pipeline)看做是A到B经过的不同路径。
每种render pipeline使用了不同的技术和计算方式来产生2D图像,因此每种render pipeline的结果是不同的。
选择哪一种render pipeline,取决于你的项目需求,不同的渲染管线有不同的优缺点。比如一种管线速度最快,一种可能是最易于使用,在某些情况下,还可能存在这种渲染管线在你的项目中完全无法工作的情况。因此根据项目的目标选择最适合的渲染管线是非常重要的。
Unity的几种3D渲染管线
Bult-In Render Pipeline: Unity内置渲染管线(新建工程时,Unity Hub选择3D这个模板).全平台通用,较为可靠,易于使用,但是由于是内置到Unity中的管线,可定制性不太好。它也不是最高效的管线。
Universal Render Pipeline(URP): 对于移动端、网页端和VR项目来说非常适合,它为性能做了很大的优化。配置上会稍微复杂一点,但可定制性相比于Built-In管线来说要好不少。这个管线能够产生不错的图像。
High Definiation Render Pipeline(HDRP): 被设计用来为高端平台产生高质量图形的管线,比如游戏主机或游戏PC,这些平台上有充足的处理能力。配置上非常复杂,因此只在对图形体验要求非常墙的项目中使用。
URP和HDRP都是Scriptable Render Pipeline(SRPs)。 SRP能够高度定制化,甚至能够从零开始编写。由于编写渲染管线是一个巨大的工作,Unity提供了这两种SRP作为模板,对于绝大多数项目来说足够了。