Unity HDRP中的高度图和位移

531 阅读2分钟

HDRP可以实现一些令人印象深刻的图形功能。纹理高度图和像素/顶点置换就是这样的功能。

今天的目标。探索纹理高度图、法线图和置换选项,以创造真实的视觉效果。

不同的选项是如何影响材料的。

没有法线或高度贴图的反照率。

表面的纹理是真实的,但看起来完全是平面和二维的,这就是它。

反照率:法线图,高度图。

带有法线图的反照率,但没有高度图。

这种情况稍好一些,个别岩石周围出现了轻微的阴影和较亮的光线,给人的印象是它稍微凸起。

Albedo✅ Normal✅ Height❎ 反照率:法线图和高度图。

反照率与法线和高度图。

现在它真的开始看起来像一个3D的鹅卵石表面了。尽管物体和材料仍然是2D的,但渲染器使用高度图数据来改变特定像素的渲染位置,让人觉得它们比其他像素高。

Albedo✅Normal✅Height✅

**注意:**这只是我设置的一个快速的例子,并没有达到可以达到的效果。你可以通过查看本帖顶部的Unity官方文档的图片来了解。
高度贴图水平的急剧变化有时会使结果看起来有点糟糕,所以建议使用像Unity文档中那样的平滑图像。

要创建一个这样的材料。

(这类材质也可以在非HDR管道中创建,但我目前使用的是HDRP,所以如果你不是,我的选项可能看起来有点不同。)

基准(Albedo)贴图和法线贴图选项通常在大多数着色器上可用。
你可以只用一个颜色或者一个纹理文件和一个颜色来设置基础贴图。
法线贴图需要一个纹理(导入时标记为 "法线")和一个强度。

在HDRP中,高度贴图选项在默认情况下是不可见的。你需要先设置 "置换模式"。

像素置换。纹理像素将被渲染移位,让人觉得材料/物体是三维的。 错觉材料/物体是三维的。

像素置换

顶点位移。对象的实际顶点 根据高度图的数据进行 移动使物体成为3D.
这种方法非常依赖于物体网格中的顶点数量,因为每个单位的顶点数量越多意味着位移越精确。

顶点置换