三平面投影的错误及其改进!完美版
34414 1
实名

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

发布于 2024-2-29 23:36:19

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

x
三维平面映射是在着色器领域中一种流行的方法,但在游戏中的实现并不总是正确的。首先我们解释了这种方法的基本实现,然后分析并修复了错误
但由于该位置是三维数据,而 UVS只有二维数据,我们发现自己必须根据我们的选择选择留下三个位置通道中的哪一个,我们将获得三个不同的结果,所有结果都属于规划器投影的宏观类别

d0e86d86f18c10c016583dada82a2034.png

同时使用所有三个平面映射相同的纹理,这意味着必须找到一种方法来计算哪个平面应显示在表面的哪个部分,正如我们所见,表面越朝向平面相位,选择显示该平面就越有意义,否则我们将得到一个极度扭曲的图像我们可以通过从表面法线开始操作
c5d69ed77530da07f40bfe7c0572776e.gif

以往三平面映射方案问题:
01-如果我们改变纹理,侧面映射是上下颠倒的,而且它们的一侧还是水平镜像的。沿着c轴投影的底部部分也出现了同样的问题。虽然这可能被认为不是一个问题,因为不是所有的纹理在这样的变换下都看起来明显错误,但如果你想制作一个通用的着色器,这个问题必须得到解决



02-让我们添加法线贴图,让我们看看,是的,它已经完全损坏了,这个问题要困难得多

需要注意的是其中比较重要的是我们需要--->选择主材质--->禁用材质的切线空间法线,创建我们自己的向量变换,并正确转化为空间向量





03-现在剩下的唯一一件事就是解决uv


来解决这个问题,我们必须将这些导数手动传递给采样器并使用连续数据计算它们


04-改进用于地形和模块化对象的三维平面映射
地形上的拉伸问题


减少投影倾斜角度,使他们更加水平。提高覆盖范围减少纹理拉伸



我们强制规定投影角度









作者:Visual Tech Art
地址:https://youtu.be/Cq5H59G-DHI
原视频

01:26 平面投影和法线• 三维平面映射同时在三个平面上映射相同的纹理,使用顶点位置数据• 法线用于确定表面的方向和选择要进行映射的平面04:59 错误修正和法线修复• 作者使用UV射线和法线贴图修复了纹理映射和法线中的错误• 结果是正确显示纹理和法线10:12 提高性能和消除不均匀性• 作者提出了一种替代方法,可以一次在沿所有三个投影显示纹理• 这有助于避免内存问题和不均匀的紫外线分布12:19 改进三维平面映射• 视频讨论了如何改进用于地形和模块化对象的三维平面映射• 讨论了仅使用水平投影和纹理拉伸的问题16:37 解决法线问题• 讨论了由于具有零长度的法线引起的错误• 提出了一种解决方案,用于检查向量长度并在必要时沿y轴重写19:47 改善覆盖和降低纹理失真• 讨论了使用五个平面映射的可能性,以改善平面的覆盖• 建议使用45度旋转以改善覆盖和减小纹理失真20:41 创建安娜平面图• 讨论了创建安娜平面图的过程,该图由四个侧面投影组成,这些投影旋转了45度• 建议使用交叉蒙版来控制分裂向量,并更新基础以进行矩阵乘法23:49 更新矩阵变换• 视频作者承认他原本对自己的想法持怀疑态度,但现在看到它确实有效。• 他在第二个版本的单次提取中更新了矩阵变换,并完成了过程24:07 结果与展望• 最终结果绝对值得额外的工作,作者看到纹理更自然地适应地形,并获得了少量自由纹理重复获工程文件发消息:平面投影






坚持与您“分享”最有价值“干货”内容本期分享就到这里,我们下期见!
探寻游戏细节:解析53种贴图的制作与用途以及对环境、角色的影响!<<游戏关卡>> 关卡设计中的空间通信<<游戏关卡>> 游戏光照是什么?如何为关卡进行照明 (灯光篇)
<<游戏关卡>> 如何自然地引导玩家使用关卡布局 (视觉引导篇)
你从未见过PCG这样做!官方超好用图表 | 基础案例总结运用演示
虚幻引擎5 BluePrint(蓝图)
UE5.2预览版PCG工具系列
Houdini基础入门系列 | Houdini大世界制作#更多详细文章分类知乎专栏 | 左侧文章目录便于查找https://zhuanlan.zhihu.com/p/659080390关注我们学习不止、不止学习


公众号小编

公众号

哔哩哔哩

微信公众号:Game艺视界
使用道具 <
gdh7201  发表于 2024-3-7 21:46:51  
2#
thanks very much!!!
回复 收起回复
使用道具
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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