在线工具推荐: 3D数字孪生场景编辑器 ?-? GLTF/GLB材质纹理编辑器 ?-? 3D模型在线转换 ?-? Three.js AI自动纹理开发包 ?-? YOLO 虚幻合成数据生成器 ?-? 三维模型预览图生成器 ?-? 3D模型语义搜索引擎
位移贴图可以使曲面的几何体产生位移。 它的效果与使用位移修改器相类似。 与凹凸贴图不同,位移贴图实际上更改了曲面的几何体或面片细分。我们可以借助GLTF 编辑器 -NSDT??来设置模型的位移贴图;在学习如何使用 GLTF 编辑器 -NSDT 之前我们先详细学习下位移贴图的一些相关知识。
位移贴图是一种在渲染时向曲面添加几何细节的技术。与凹凸贴图相比,凹凸贴图的工作原理是仅通过改变曲面法线来创建曲面细节的错觉,而位移贴图则修改曲面本身。下面是使用凹凸贴图和位移贴图渲染的同一对象的示例。请注意凹凸贴图中球体的圆形轮廓及其阴影,以及位移产生的变形轮廓。在这种情况下,位移贴图是梯度斜坡(程序)贴图;采用3D映射方法。
在位移映射的情况下,表面实际上被修改了,这导致了正确的轮廓、阴影和 GI。在凹凸贴图的情况下,尽管表面看起来经过修改,但轮廓和阴影与原始对象的轮廓和阴影相同。
位移与其他类型的着色不同,因为它修改了实际的对象表面。虽然其他着色活动(如凹凸贴图)在渲染时进行,但位移发生在渲染之前。
位移贴图可以是以下两种类型之一:
下面给出了位移映射的一些应用。
对于 3D 位移,几何图形在子三角形的基础上进行裁剪 - 子三角形要么被完全裁剪掉,要么完全可见(对于裁剪更精确的 2D 位移,情况并非如此)。因此,您可能会在剪裁的边缘处获得锯齿状效果。您可以通过生成更多子三角形来减少这种影响(请参阅下一节)。
以下是此渲染的放大图,以更好地显示各个子三角形(单击该图像获得较大视图):
此外,这里是显示球体原始三角形边界的渲染图。要创建类似的渲染,可使用GLTF 编辑器 -NSDT??打开模型,在右侧面板中可以找到材质属性栏,点击位移贴图选项,在弹出的文件选择框中选择本地文件(位移贴图,格式为常规图片格式:png、jpg等),左侧渲染窗口会实时渲染模型。
位移的质量由子三角形的大小和数量决定。要调整的主要参数是边长, 它决定了子三角形边的最大长度。这可以是世界单位或像素,具体取决于“视图相关” 选项。边长值越低意味着三角形越小,质量越好。这是使用各种边长值渲染的上一张图像。“视图相关”处于打开状态,因此边长以像素表示。请注意,“视图相关”选项是指原始图像中的像素,而不是通过放大渲染获得的放大图像。这就是为什么我们能够进行放大渲染以更好地看到各个子三角形的原因。
下面的图像是在材质的漫反射槽中使用位移贴图渲染的,以显示网格的原始三角形。GLTF 编辑器 -NSDT?不仅可以使法线平滑表面,还可以自动应用法线贴图来表示完美位移表面的法线,这使得表面看起来比实际更详细。