UE5材质纹理面板介绍与设置/了解一点纹理压缩的工作原理
Game艺视界原创 41683 0
实名

通过了实名认证的内容创造者

发布于 2022-5-5 23:33:44

您需要 登录 才可以下载或查看,没有账号?注册

x
             680d36e5046a5f0cbc70bdc6d08d8215.png
本期内容
UE5材质面板设置
纹理数据通常代表虚幻项目的大部分大小,有时占用的磁盘空间比游戏资产的其余部分加起来还要多。如果不加以控制,大量的纹理数据会降低游戏性能和团队的生产速度——尤其是在大型项目中

虚幻引擎在纹理属性编辑器中提供了广泛的纹理压缩设置和预设。这些选项可以多种方式使用,以显着减少游戏所需的纹理数据量,同时将对视觉保真度的影响降至最低

充分利用 Unreal 的纹理压缩工具只需了解一点纹理压缩的工作原理,今天我们看下UE5的纹理编辑器设置,因为它特别与纹理贴图有关
我们先看下如何打开纹理编辑器,在我们的内容浏览器中双击我们的纹理即可



好吧,让我们继续往下第一件事就是用户界面:双击任何纹理都可以打开这个窗口,那么我们就已顺时针方式介绍
Save:保存我们修改的贴图
Browse:快速地位到我们打开的这个贴图在内容浏览器的位置(快捷键:Ctrl+B)
Reimport:重新载入指定文件的纹理(当我们的资源在外部进行修改后我们可以点击不必再次重新导入资产)
RGBA:我们资产的题图通道(UE5的这样布局不设置快捷键也可以)
Mip Level :我们贴图的mip等级(上一篇文章已经详细讲过)
Zoom:缩放贴图(快捷键鼠标滑轮)
View Setting:这里面设置我们贴图外的背景颜色(现在是黑色)格子模式更容易查看我们的A通道是否正确
Draw Border:在我们贴图边缘出现一个边界方便我们查看贴图范围

细节面板
Imported: 2048x2048 纹理的大小
Method: Streamed 方式:流
Displayed: 2048x2048 显示的纹理大小
Format: DXT1 格式DXt1
Max In-Game: 2048x2048 游戏中最大纹理
Combined LOD Bias: 0 贴图的LOD
Resource Size: 2731 KB 资源大小(这很重要你的资源大小是一个指标实际文件大小和多少那个这种特殊的纹理在内存中占用了多少)
Number of Mips: 12 贴图的MIP级别(上一章讲过Mip)
Has Alpha Channel: False  Alpha通道是否有
Encode Speed: Fast 编码速度:快速

我们这里有个搜索:可以快速搜索我们下面面板的命令,还可以改变面板方式


纹理压缩【下一期我们详细讲解每一种压缩格式】
可能你将在一个管道中工作会有少量,大小不同的纹理资源。你可能会得到一些非常小的纹理和一些大的,比如4k、8k纹理没关系,我的意思是我们在虚幻编辑器里有工具,这让我们能够覆盖输入的源材料,比如说如果有人在创作所有的纹理都是4K,这并不意味着它一定会在 4 k 时渲染出来,最终我们可以改变这一点,我们通过一些不同的设置压缩与包装你的资产,虚幻的引擎将通过把一切打包有优化有代码,我们在纹理中更改的设置,我们将在统计数据中看到这种变化:回到我们的压缩设置
Compress Without Alpha:是否压缩Alpha通道
(重要:✔丢弃alpha节省资源但是丢失alpha信息:一个典型的纹理贴图基本上有四个通道:红、绿、蓝和alpha,但问题是你的alpha频道也一样贵,当你的rg和b结合在一起其原因与位深度有关。当一切都重新包装好的时候如果你推出一堆纹理还有阿尔法之类的,这是一种保存信息的方法现在虚幻足够聪明,如果它没有阿尔法了通常情况下,你不需要标记这个所以不管怎样它都会丢弃它因为没有消息,但是如果要导出纹理在这种情况下,我相信是以32位编写的能够拥有alpha请注意这是一种可以忽略的方法)

Defer Compression:延迟压缩(真的吗?我要再检查一下渲染管道和打包通道完全影响,但本质上只是说不要压缩这个保持高分辨率在某些情况下,你可能想使用它但默认情况下,你可能应该戴上它)

Compression Settings:压缩设置【下一期我们详细讲解每一种压缩格式】
好的压缩设置,这可能是最重要的一件事在纹理中的所有设置中在纹理编辑器中,您应该注意压缩设置是什么这实际上告诉了引擎如何处理这一切,我的意思是游戏引擎你知道吗?虚幻引擎基本上是是源于游戏技术的,你有很多信息进来的时候,它必须把所有的进行处理然后放入产品中,那么压缩设置了什么?告诉引擎嘿,我想让你用这个纹理然后引擎处理信息在输出出来,我们有可用的设置默认情况下,我们有这些不同的压缩

BC1和BC5 DX11与纹理的处理方式有关,如果你对材质熟悉了的话就可以使用法线贴图,可能是最显而易见的法线的映射过程是不同的,它再次经历了一个不同的加工链,它在direct x11上使用dx11中的dxt5 bc5,压缩非常重要因为真的真的当你的图形gpu正在处理信息你的纹理会被推过某个通道。所以法线贴图中有不同的信息,事实上虚幻引擎足够聪明当你导入他会认出来它会认出,嘿,这看起来像一张法线贴图,他会继续给你压缩成法线贴图的设置。一般来说你不必改变这一点,如果你自定义法线贴图之类事那个虚幻的东西不明白了,这很简单,只需进入你的压缩设置单击下拉列表,将其更改为法线贴图

mask没有srgb这可能是第二个最重要的,如果您熟悉纹理创作管道,你可以做所谓的分层遮罩、分层纹理、堆叠纹理、它有很多不同的名字。但本质上是什么你要走多通道你的红、绿、蓝,有时还有阿尔法,以及添加信息所以如果我打开这个srm来看看alpha什么都没有
所以这里所做的就是这是一种让你能够使用多通道,这种纹理适用于不同的材料用途我们将其设置mask并取消Srgb的选中

Grayscal:灰度就是它听起来的样子,但是要非常小心我会打开另一个纹理。这样我们就可以看到这里发生了什么,我说要小心的原因是:我有灰度我的灰度应该只有一个通道因为他是灰色,所以我要保存很多纹理事实上并不总是这样。将我的压缩设置更改为灰度从修改前341kn变成1365kb,这就是我的意思,这并不一定是压缩节约,所以要注意你的资源大小

Hdri
剩下的我就略过因为我只是想强调一下,你可能用到其中的几位。你的hdr如果你进口任何类型的hdri进入你的场景,你会想用这个的因为这实际上将使用不同的着色算法能够支持完整的高动态范围,所以你可以改变这一点

User interface

用户界面这是另一个非常重要的问题如果您正在为ui创建纹理,您绝对需要将此用户界面更改为2d。原因是每当你启动游戏并拥有ui时,它会显示在你的屏幕。但是如果你有这个如果你要为用户界面引入纹理设置为默认值时,它们将显示得非常模糊叫mipping,它会在下面所以通过标记这个用户界面丢弃那些maps地图,并确保它呈现以完全的分辨率一直如此,所以这非常重要

Alpha
一般来说,这实际上来自工作多年类似于dcc管道,真的没有很多时候我都需要使用alpha,因为很多时候我只会使用图层纹理使用mask no srgb而不是阿尔法,但它就在那里所以如果你需要的话,如果你想看更多的压缩设置请查看虚幻文档

最大纹理位置



现在我们纹理大小是2048,在这里我可以输入大小128,可以看见我们没有使用原始尺寸,我们再次关注我们纹理大小,当使用原始大小2048会有2731kb,当我们i需改为128大小只有11kb这个大小明显降下来了,看起来很糟糕,因为我们离得很近但如果这个物体在遥远的地方,我们永远不会真的要接近它那真的太好了我省了很大一部分

lossy compression amount:有损压缩

这意味着当引擎处理纹理的压缩面,这是一种可以覆盖它的方式一般来说有损压缩量和压缩质量违约在90-95%的时间里是完全可以接受的,有些情况应该在哪里发生默认值应该完全可以的

当你开始进入你的压缩质量,如果你不知道如何配置个人资料,请注意如果您不知道如何运行设置,更改设置可能会让你进入一个世界,并且影响你的包大小,错误设置可能导致你的包体变大。应用程序的设置是游戏的一部分好吗!

贴图设置

power of two mode:

例如:我们带入一张2048的纹理大小如果设置2的幂次方就会与4096大小尺寸一样昂贵,强制此纹理在实际中进行渲染(就是给我们纹理放大2倍使用)默认情况下你永远不需要。
Padding Color:默认情况你不需要改变
Srgb:如果你一种特殊的纹理,在线性空间中与srgb注意如果你真的得到了很多信息来自物质设计师很好,我应该说更先进的物质设计师创作材料的作者知道如何改变线性输出,但我想说的是默认情况下就像物质设计师是否在线性空间中生成纹理太不对劲了,srgb实际上会将其恢复到正确的颜色空间,但再一次融合压缩设置,如Mask(no srgb),但也要知道你可能有些纹理是线性的只要简单地取消选中这个,它就会为您更改它,以便重新编译

x轴扭曲模式:斜坡 钳制和镜像如果这个纹理重复,你可以指定并覆盖这个rap,这很好因为这个纹理在表面上重复。您可以指定并覆盖这个rap,因为这个纹理在表面上重复你会看到它有点像包裹就像一个无限循环所以默认情况下完全没问题

抖动的mip alpha和alpha覆盖阈值,这也是你可能不会遇到的情况这与一些优化有关

Flip Green Channel:反转法线的绿通道(正常出资源就要确定)


当我们纹理更换了路径,修改后读取不到了可以在这里通过设置纹理路径重新载入纹理功能

还有一点,我看到很多人都有点困惑你不必拥有原始的纹理,事实上你不需要有任何原始的静态网格等资源你的动画任何东西,你输入引擎的任何数据你不必把它放进去你的实际项目文件夹,可以放在任何地方它可能在一个单独的硬盘上虚幻或根据你的分享创建资产与你的团队其他人一起使用,这就是为什么我们看到源文件路径不同而不是引擎所在的位置,但你可以随时重新调整它的路径

对于我们贴图的一些调节,我想说有ps之类更好的工具不过引擎内具备这个功能也是很好的

Mip


我们案例贴图mip有12级,

gpu将使用它来帮助优化性能但是我们也可以做一些事情来帮助你这一过程,所以我要取消选中mip映射级别

然后回到细节面板





Downscale Options:我们还可以将我们贴图进行锐化模糊配合我们mip级别,这有助于纹理更加清晰所以如果距离太远太模糊这也是mip设置中的一种方法这是一种可以快速改变的方法这很酷!

Num Cinematic Mip Lecels:mip级别
说下这里与贴图上面Mip Lecel的关系,我若我们设置是0那么我们贴图mip 0 就是2048。如果我们设置6,贴图上面的mip 0就是64X64
因为我们贴图有12级Lod,细节面板设置为3就是强制从第3级开始,也就是开启Mip Level 0是256

好这就是关于虚幻中的纹理编辑器视频到此结束我希望它对你有帮助

一般使用的BaseColor,我们可以使用 Default(DXT1/5,BC1/3 on DX11),如果该材质要求 Mask 或精度不高的 Opacity(例如 Subsurface 材质),可以将它们塞给 BaseColor 的 Alpha 通道,这样我们能够获得相比于使用 Masks(DXT1/5,BC1/3 on DX11)更高的单通道质量

注意,Default(DXT5,BC3)的通道分布并不是均匀的,而是遵循565压缩。这意味着该压缩的 G 通道会比 RB 通道精度更高一些,而 Alpha 通道的精度最高,因此在设置时应遵循将最重要的信息放在 Alpha 通道,次要信息放在 G 通道,最不重要的信息放在 RB 通道的方式。例如,我们可以将 AO、Metallic 放在 RB 通道,Specular 放在 G 通道,最重要的 Roughness 放在 Alpha 通道

如果要获得更少的伪像,可以使用 BC7 替代 Default(DXT1/5,BC1/3 on DX11),对于带有 Alpha 的 Default(DXT1/5,BC1/3 on DX11)纹理而言,使用 BC7 替代 Default(DXT1/5,BC1/3 on DX11)没有损失,因此对于 Default(DXT5,BC3 on DX11),应总是考虑使用 BC7 替代
参考:
https://zhuanlan.zhihu.com/p/401111461
https://docs.unrealengine.com/4.26/en-US/RenderingAndGraphics/Textures/TextureCompressionSettings/
之前我们写过的一期文章

打包纹理
Game艺视界,公众号:Game艺视界节约纹理内存和性能?只有这样打包纹理通道才才是最优方案!【Ben图形/23】
好!本期分享就到这里,我们下期见!
原帖地址:https://mp.weixin.qq.com/s/B9-QsymLiaqmamPy9rKnNQ

评分

参与人数 3元素币 +33 活跃度 +17 展开 理由
ayanamiasu... + 10 + 2 原创作品发元素,日积月累成大触。
xiye + 7 + 10 从业不识微元素,做遍项目不算数。
b888888 + 16 + 5 Niubility!!!

查看全部评分

本帖被以下画板推荐:

微信公众号:Game艺视界
使用道具 <
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表