ue3dHDRP中的Tessellation是什么?有什么用!

HDRP中的Tessellation是什么?有什么用!

分类:

Tessellation 是 Unity 中的一种 Shader 类型,称为镶嵌或曲面细分着色器,使用它可以为低边形平面的对象添加更多的细分,让平坦的对象表面看似或提供具有 3D 的几何图形。

ue3d - HDRP中的Tessellation是什么?有什么用!

对于 Tessellation 是什么的辅助理解,可以先从下面的站内链接中下载泥土贴图。

下载后,在贴图文件夹中提供了四张纹理,依次是颜色、AO、高度图、法线贴图,那么这也是我们常说的PBR材质(基于物理的渲染材质),这四张贴图都具备自己的使用特点。

具备pbr属性的泥土材质,以下简称泥土素材
具备pbr属性的泥土材质,以下简称泥土素材

因为涉及到材质,所以我先拿三维软件(例如 3DMax、C4D)在做下利于后续理解的说明。

在三维软件中赋予材质给模型时,如果模型具备纹理,则首先会在材质编辑器的漫反射通道赋予一张颜色贴图,也就是泥土贴图示例的第一张;泥土如果具备起伏的地形,就需要利用第三张高度图或者第四张法线贴图做细分映射,剩下一张根据需要表达模型的质感依次贴在不同的通道上。

那么 Unity 与三维软件中的材质制作有什么区别?其实区别不大,过程大同小异,只是 Tessellation 是一项技术或算法,它与三维软件使用的细分位移的高度映射不同,它实际上会真的在物理上改变对象的细分,而三维软件的对象在一开始有多少细分最后就有多少。

这里做个例子…

在三维软件中处理部分细分
在三维软件中处理部分细分

在一个仅具备四个顶点的平面上赋予泥土材质,在三维软件中如果平面只有四个顶点,则使用泥土素材中的高度图(第三张贴图)不可能让其具备置换高度,只能将模型细分到一定的数量,才会发生置换效果,不信可以拿 3DMax 或者 C4D 试。

如果你在 Unity 中将材质(着色器)类型更改为 Tessellation,那么根据细分曲面技术,此时的平面将不在只有四个顶点啦,会根据视角的角度自动计算调整对象的远近细分(实时计算),哪里密一点,哪里少一点,那么这就是 Tessellation 神奇的地方,可以减少占用系统资源,它不会像三维软件那样做整体细分。

Tessellation 使用后与未使用前对比,从四个顶点到根据高度图计算网格多边形分布图
Tessellation 使用后与未使用前对比,从四个顶点到根据高度图计算网格多边形分布图

但是…大家需要注意一点。

对象的细分越大,对于机器的压力是不是也就越大!那么 Tessellation 提供了参数调节这个细分曲面的精度,通过参数更改物理属性也是一样的,因为最终细分的本质是添加更多的顶点以使对象具有更多面数或更具延展性。

到这里我相信大家对 Tessellation 有一定的概念了吧,不过在应用方便还是需要注意一下,根据个人经验,通常可以将 Tessellation 应用在具有不平坦的平面地形物体上,例如不具备高低起伏的泥土地面、庭院用鹅卵石做的小路或者房屋砖墙,不建议将其应用在具备高度起伏的3D模型上,毕竟它是一个算法,模型起伏太大,计算可能也会有吃不消的时候,容易让软件崩溃。

本文作者于 2022年 11 月 04 号编辑过

相关信息

  • 类型:知识
  • 字数:714
  • 字符:1716
  • 适用软件:Unity
  • 说明:无
  • 编号:94256

热门内容

提示:3D天堂作为服务提供者,尊重网络版权及知识产权,对某些行为的发生不具备充分的监控能力,若无意间侵犯到您的权利,请 联系我们,我们会在收到信息后尽快给予处理。

本站文章版权归本站自创作者所有,未经允许不得转载!