UE5和Unity中-创建立方体贴图丨环境反射【Ben图形/33】
UE教程贴图Game艺视界原创 19743 0
实名

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

发布于 2022-3-23 15:55:17

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

x
image.png

本期内容
什么是立方体贴图
你有一个立方体的顶部和底部,左侧和右侧,正面和背面,所以基本上我们有六个图像,它们代表环境的不同侧面,所以当把这六个图像放在一起时,代表整个环境

a91eda6e130d755efb6e8fdb2ad30504.png


如果我将我的环境预渲染成立方体贴图,那么当我想对其进行采样以获得类似反射或其他效果时,我不会不必渲染我的整个环境,我可以去获取纹理并采样我的立方体贴图,所以这是我们在实时计算机图形中使用的优化,用于渲染反射和折射等效果

我将向您展示创建这些立方体贴图的过程,然后将它们整合到unity和虚幻中,所以我想做的第一件事是捕捉这六个图像,我可以自己绘制它们或者我可以从我的环境中以虚幻或unity的方式渲染它们,我只需在我的场景中添加一个相机我会将我的视野设置为90度,然后我将我的纵横比设置为正方形然后我现在将捕获这六张图像,一旦我有了我的图像,我可以将它们带入Photoshop并组装

我们在 Photoshop 中首先我要完成组装图像,所以在顶部你可以看到我有一个图像我已经拍摄了我从环境中捕获的所有六张图像,我已经像这样将它们排成一排,所以我的图像是 512 x 512这意味着如果我将它们排列成这样的单个图像,

我的最终分辨率 是 3072 乘 512因为它基本上是 512 乘以 6,所以如果你的图像更小或更大,无论您的单个图像的高度是多少您都可以将您的高度分辨率乘以 6 以获得宽度,然后您只需将图像排成一排,就像这样一二三四五和六x轴是左右,y轴是上下然后是z轴是前后,这就是你排列图像的方式,一旦排列好,你就可以把它保存为 png 或 tga 或任何你想用来实现unity的图像格式,然后让我们切换到unity,看看那里需要做什么

所以我在这里unity,我可以在我的项目中右键单击并选择导入新资产,然后我可以选择我保存的 png 文件,进行贴图类型的设置黄线部分然后点击应用

当我这样做时,你会看到现在它已将我的立方体贴图转换为反射球体 这里表示,现在我实际上有一个立方体贴图图像,而不仅仅是连续六张图片的图像,unity使得将一排六张图像带入真的很容易作为纹理,并将它们转换为立方体贴图,

所以现在我可以抓取我刚刚创建的立方体贴图并将其拖放到其中,它会创建一个示例反射立方体我可以将它用于反射或折射

接下来我们将立方体贴图应用在uneral4中,实际上我们必须以dds格式保存它
这里是我们要下载的 adobe photoshop 插件,我们在 nvidia 网站上有这个工具,叫做 nvidia 纹理

对于虚幻我们贴图的方向有些不同,为什么会有这些非常奇怪的方向用于虚幻版本的立方体贴图,


原因是directx和 dds 纹理格式假设您正在使用 y up,因此如果您的 y 轴向上,则所有图像都会正确翻转,因此它们看起来很正常,但在虚幻中,我们知道 z 是向上轴,这与dds和directx的格式相反所以我们必须做一些有趣的事情,嗯,因为世界是旋转的所以 z 是向上的我们必须,旋转我们的立方体然后重新排列。
虚幻环境图模板


最后一件事您需要做的是使用该photoshop或使用该nvidia photoshop插件将其保存


导入到uneral

这是对立方体贴图的采样,所以它需要一个浮点数 3而不是浮点数 2 的向量。所以我不能使用常规纹理坐标对我的纹理进行采样,我必须使用反射向量这里有一个节点,它是世界空间中的反射向量我可以采样或者我可以使用它作为我的输入 uvs,这有点令人困惑,因为 uvs 通常是2 但是因为我正在对立方体贴图进行采样,我实际上需要一个浮点 3,它是一个方向矢量,而不是 uvs,但这就是它的工作原理,你可以看到,一旦我将反射矢量与我导入的立方体贴图一起使用我现在得到了有一些看起来很酷

也可以使用世界空间法线对其进行采样,我可以使用那个向量来采样我的立方体贴图。但你可以看到,如果我这样做,它看起来像反射而不是反射,它们只是粘在表面上但那是另但那是另一种采样立方体贴图的方法

如果我们切换回 Photoshop,您可以了解立方体贴图您可以看到我们有两种非常不同的格式和方法,可以让立方体贴图变得unity和虚幻,因为unity是好的,我们可以在这里使用directx的标准布局和dds纹理格式但是因为虚幻是z向上,我们必须在这里做一些恶作剧来让我们的图像看起来正确,但是无论如何一旦你通过了所有这些,并且你得到了数据到引擎中你可以用它来做很多很酷的事情。所以从下周开始我们将研究一些可以用来在着色器中使用立方体贴图的技术
unity 3D


uneral

一款软件可以快速转化的软件Lys
软件地址:https://www.knaldtech.com/lys/
什么是Lys?
Lys 是一款超快的 GPU 解决方案,为从全景、球体或 2D 立方体贴图跨源纹理生成辐射、辐照度和镜面纹理设定了标准,以便与基于 HDR 图像的照明配合使用。

Lys 能够实时转换、操作和调整源图像,动态生成辐射度、辐照度和镜面纹理,并在余弦加权、GGX 和高斯镜面反射项之间进行选择,这些术语具有全自动 BRDF 卷积 MIP 贴图,用户可配置不同的镜面功率或粗糙度,Lys 可以帮助您提供所需的工具和功能,以确保项目的基于 HDR 图像的光照管线达到最佳状态是。

全景图、球体图和立方体贴图之间的实时交叉转换
在全景(经度/纬度)、球体(图像探头)和立方体贴图之间进行转换,同时保持原始图像质量是轻而易举的。只需导入上述任何图像,Lys就会通过分析评估每像素覆盖率,立即在源布局和其余布局之间自动转换,以最大限度地提高纹理过滤过程的质量性能。

由于镜面卷积的性质和3D立方体贴图的尴尬,在2D图像编辑器中准确生成或操作这些图像而不在管道中引入错误是非常困难的,并且通常是不可能的。通过添加Lys,现在可以将您的内容来回无缝转换为可编辑的布局,例如全景图(经度/纬度),进行更改,然后重新导入到Lys中进行处理。

实时轴旋转和立方体贴图面位置调试
Lys 使您能够灵活地在 X、Y 和 Z 轴上独立旋转,同时保持所有布局之间转换的完整性。

导入环境图  输出路径


设置格式dds、32位

注:视图所显示的方向并不一定是ue4方向,我们先导出一版到ue4看看是否需要修改旋转以得到正确方向。
球面贴的精度低一些,六面精度更高,但是
六面在相机不在中心位置的时候有
很明显

畸变

通过翻转或者旋转来改变(红框)


这是旋转后得到效果,好本期就到这里我们下期见



原帖地址:UE5和Unity中-创建立方体贴图丨环境反射【Ben图形/33】 (qq.com)


         

本帖被以下画板推荐:

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

本版积分规则

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