您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 Game艺视界 于 2022-3-21 21:54 编辑
本期内容
今天我们将讨论细节法线贴图让我们开始,在上周的教程中我们讨论了将两个法线贴图组合在一起,本周我们将讨论 使用组合法线贴图的技术来添加细节。对于我们这里的岩石资产这是我从qixel Bridge 下载的资产。所以这块岩石是一个非常好的资产它很好,而且高分辨率
但问题是如果我放大,你会看到纹理开始分崩离析,因为它现在没有足够的分辨率 ,这是一个问题,因为我在这块岩石上使用的纹理贴图是实际上是 2048 到 2048,所以它们真的是高分辨率纹理, 但是因为岩石在零到一的 uv 空间中展开,我只是无法获得我需要的纹理分辨率,所以如果你可以看到纹理细节真的崩溃了
所以今天我们将研究一种将法线贴图组合在一起,并向这块岩石添加更多细节的技术。让我们首先看看我们拥有的资产所以我已经为这块岩石创建了一个非常简单的材质,它基本上看起来像这样,它只有反照率纹理反照率或漫反射纹理将粗糙度填充到 alpha通道中,因此红绿色和蓝色通道具有岩石的颜色和粗糙度存储在 alpha 中,法线贴图只是一个直接的法线贴图,没什么特别的。
然后我为岩石创建了一个材质实例 ,你可以看到我有反照率纹理,我已经命名了反照率 一个 cr 下划线 cr 代表颜色和粗糙度,这样我就 知道我已经在 photoshop 中处理了这个图像,以便它在颜色的 alpha 通道中具有粗糙度以及 id 的原因 这样我就可以逃脱只采样两个纹理只是为了尽量使我的材料尽可能简单
所以如果我们切换到 photoshop你可以看到这是我的颜色纹理 这是我的粗糙度纹理,我已经只是复制粗糙度 ,如果我切换到alpha,我只是将粗糙度粘贴到反照率纹理的 alpha 通道中,然后我用下划线 cr 保存它, 非常简单一旦我这样做了,我将它重新导入到虚幻中,
然后我将这些纹理放入我的材质实例中,因此在参数组中您可以看到我有我的法线贴图纹理和反照率纹理 ,然后我将此材质分配给我的岩石,但是问题是就像我说的,当我离岩石太近时细节真的崩溃了,它开始看起来像一个非常低分辨率的纹理而且非常模糊,即使我确实分配了高分辨率 2048 纹理,所以我需要什么要做的是取第三个纹理并将其平铺一大堆,然后将其覆盖在我这里的顶部
所以让我们看看这第三个纹理我将切换到 photoshop,这是我的细节法线贴图所以我在这里得到的只是一堆粗大的岩石细节,我有红色和绿色通道其中包含法线的 x 和 y 分量, 然后我将一些其他数据打包到蓝色通道中 alpha 通道,我的纹理的蓝色通道包含一个粗糙度乘数,我的纹理的 alpha 通道包含一个颜色叠加。但我想让你看到的是我在红色和绿色通道中获得了法线的 x 和 y 分量, 然后蓝色通道包含粗糙度的乘数, 而 alpha 通道包含颜色的叠加,所以非常酷我将所有这些细节都打包到一个单一的纹理中,这将允许我在着色器中做一个额外的纹理样本并获得所有这些额外的细节。
让我们继续进行我们需要添加此细节纹理的材料修改,所以我们在这里在我们的材质中,我 将在底部添加一堆着色器节点 ,这里是我们的细节纹理我已经将其导入到虚幻中,让我们看一下,所以我只是要到这里来双击打开它,切换不同通道查看
现在有几个设置很重要, 因为我在这个纹理中存储了其他细节,而不仅仅是一个正常的,重要的是你不要将纹理设置为普通文本所以我已经设置了压缩设置, 而不是将其设置为法线贴图我已将其设置为 bc7,这是一个很好的压缩设置适用于使用四个通道的纹理这些通道具有 各种随机数据,它确实提供对这样的纹理进行了良好的压缩,其中我将法线与其他蒙版和其他信息相结合
然后除了bc7之外的其他重要设置是我确保取消选中srgb,因为我没有将颜色数据存储在这个纹理我不想应用srgb所以我把它关掉了所以我继续把这个纹理带入我的材料
然后对于 uv 坐标你可以看到我在这里有我的纹理坐标我正在乘它们由 8 个,这意味着在同一个空间中,我正在应用我的常规岩石颜色和岩石法线仅在岩石表面上一次, 这个细节纹理将在该空间中平铺八次, 所以如果我做数学我的细节普通纹理是 2048,如果你将它乘以8,就像你有一个16000 像素乘以 16 000 的纹理,所以纹理分辨率非常好,所以我的纹理坐标乘以八,所以这是我的详细法线贴图
我将红色和绿色通道乘以 2 并减去 1。现在我之前已经讨论过这个,但我认为当您在纹理贴图中存储法线向量时重申这一点很重要向量的值介于 0 和 1 之间,但法线向量的范围实际上是 负一比一,因此如果您不将法线贴图存储为法线虚幻,只会认为它是常规数据,因此您必须继续展开向量,你自己这就是我在这里做的事情,乘以 2 并减去 1 我正在调整法线的范围,以便它从它在法线贴图中存储的方式 0 到 1 到一个向量,该向量为负 1 到1。然后我需要做的下一件事,是因为我只存储法线的 x 和 y 分量我需要。从 x 和 y 计算法线的 z 分量所以我 在这里有这个节点称为派生法线 z 所以我 将我的法线的 x 和 y 分量的 x 和 y 坐标传递到派生的法线 z 中 ,其结果是正确的法线贴图输出,因此这里的这两个节点乘以 2 减 1 并导出法线 z 这三个节点基本上一起服务从我的纹理中解压我的法线贴图,以便现在我已经解压了我的法线贴图
我需要做的最后一件事就是使用这个混合角度校正法线然后继续将我的法线贴图与我的基本法线贴图结合起来,所以这里是岩石的基本法线贴图这里是细节法线贴图,我使用这个称为混合角度校正法线的节点,继续将我的基础法线贴图与细节法线贴图结合起来, 现在我将把它插入法线输入的根节点上我将保存着色器
查看结果如果我现在放大,您可以看到细节法线贴图在我的岩石表面添加了一些很好的紧密细节以前绝对没有, 所以我现在可以放大我的岩石并看到表面上的更多细节 ,这有点弥补了我的基本纹理在我放大时看起来有点低分辨率的事实,因为我已经添加了额外的细节, 现在我可以在我的岩石上显着放大, 并且仍然有很好的紧凑的细节 ,当我从远处看时,我的岩石看起来仍然一样所以细节法线贴图非常酷
但你请记住我在细节法线贴图,中的蓝色通道和Alpha 通道中也存储了一些数据,所以让我们看看如何使用 这些数据,我将在此处切换回我的材质 ,您可以看到我 这里的蓝色通道连接到乘法器
现在是蓝光如果我们再次看一遍,蓝色通道看起来像这样,它基本上是白色的,但是我有这个这些小裂缝, 这是为了增加我的粗糙度
所以如果我切换回我的材料,这里我的粗糙度来自我的颜色纹理的alpha 通道,所以我将我的粗糙度连接到这个乘法并乘以我的细节法线贴图的蓝色通道然后我将它连接到我的粗糙度插座 所以我不仅要修改我的岩石的法线, 所以我要添加细节法线,但现在我还添加了细节粗糙度我会保存它,我们将切换过来看看
因此我的细节贴图的 alpha 通道有一个颜色叠加层, 这个数据的重要之处在于它以 0.5 为中心我们切换回 photoshop并且我们查看 alpha 通道,如果我们进行级别调整你会看到我的级别在这里居中在中间,大约在0.5标记处,此数据居中 ,这将允许我进行颜色以便该地图上较亮的区域将使其变亮,而较暗的区域将使其变暗
所以让我们继续做在这里切换回我们的材质, 我们将把这个称为混合,现在我将其放入基色中 ,现在这里有一个单一的细节法线贴图,我修改了颜色、粗糙度和法线,对于这三个我都添加了额外的细节,所以我已经获得了所有各种材质通道的细节
好让我们切换到统一并看看如何在那里构建相同的着色器,你可以看到就像我在虚幻中一样,我用颜色纹理和法线制作了这个非常简单的岩石材质,我把这个平滑度贴图打包到颜色纹理的 alpha 通道中,它是虚幻中的粗糙但unity中他的平滑很好,然后我在这里有我的细节法线纹理,我已经获取了我的 uv 坐标 ,我只是使用了uv 的 x 和 y, 我将它们相乘以在整个表面上平铺细节法线纹理频率高于基色和法线贴图,然后我将细节法线贴图的 x 和 y 分量组合在一起, 然后乘以 2 再减去1我这样做的原因是为了扩大范围从 0 到 1 到负 1 到 1,所以如果您 对内部为您完成的法线贴图进行采样我将正常重建法线向量,但是因为我的纹理存储为 bc7 压缩而不是法线贴图 unity不知道这是法线,所以我必须继续自己做这件事,而不是让unity 为我做这件事,然后我使用重建正常重建z 节点来,仅从x 和 y 分量开始,所以我用这四个分量重建了我的法线节点在这里
然后我将把这个法线的混合节点注意模式设置为重新定向,这意味着我正在使用,我们在上周的视频中讨论的 rnm 方法将法线混合在一起然后我将我的基本法线贴图插入a插槽 ,将我的细节法线贴图插入b插槽, 然后将我的法线混合节点直接插入主堆栈的普通插槽,,您可以立即看到我的细节法线显示当我放大时,我得到的细节比以前多得多,
我也可以在这里使用我的细节法线贴图的蓝色通道并将其乘以我的平滑度 ,
然后我可以使用细节法线贴图的Alpha 通道,并使用混合模式混合节点将其覆盖在我的颜色之上,以将其覆盖到我的主堆栈的基色插槽中
所以现在我是修改颜色平滑度以及normals,所以我的结果是这种岩石材料从远处看起来很漂亮 ,当我放大它时它有额外的细节可以近距离观察
如果我们再次查看我们的材料,让我们做一点回顾,可以看到我们开始时只有一个基色纹理,粗糙度包含在alpha通道中, 以及我们资产的基本法线贴图,然后我们添加了一个细节贴图 ,它允许我们修改粗糙度的颜色和法线。并获得许多非常好的紧密细节,否则我们将无法实现这些细节,因此我们可以真正放大我们的资产,并且仍然获得不错的紧密细节
岩石只是由一块岩石制成。但是如果我有一个像我不认识的人,并且这个人有皮带和棉织物怎么办也许其他几种材料,我已经将所有这些材料打包成相同的纹理我不能只使用一张细节贴图,因为皮革的外观细节与衬衫的棉织物不同如果我有一个,我将如何处理呢?一个对象,一个道具或一个角色,它有一堆不同的材料,所有这些都需要不同类型的密度细节贴图,我怎么能做到这一点而不影响性能,我想我可以继续克隆这个就像很多次一样有材质, 但是我对独特的细节贴图进行采样的次数越多, 它就会真正影响性能所以,下周我们将讨论如何当您拥有多种类型的材料仍然想要拥有细节法线贴图一个不错的表现, 所以我希望你会回来。这就是我们今天的教程。
|