UE5 USkinnedMeshComponent::PrecachePSOs相关调用流程梳理


最近在游戏开发工作上碰到一个问题, 过场动画中一角色的上半身在切换其某个材质时消失了一两帧, 该问题大多数出现于机器第一次打开游戏包体播放该过场动画时, 故初步结论是由于编译PSOs导致的. 经过一番排查, 确认是编译PSOs导致的问题, 故以本文梳理USkinnedMeshComponent::PrecachePSOs相关的调用流程, 方便后续在碰到类似问题时进行复习.

继续阅读UE5 USkinnedMeshComponent::PrecachePSOs相关调用流程梳理

《Shadow Caster Culling for Efficient Shadow Mapping》论文解读及对UE5 Shadow Depth Pass的性能优化


之前在学习Nanite的过程中, 发觉自己对于传统的Shadow的遮挡剔除流程亦不甚了解, 故找来该领域比较经典的一篇论文《Shadow Caster Culling for Efficient Shadow Mapping》进行学习, 同时将其算法思想应用于UE5 Shadow Depth Pass上进行性能优化.

继续阅读《Shadow Caster Culling for Efficient Shadow Mapping》论文解读及对UE5 Shadow Depth Pass的性能优化

《3D Gaussian Splatting for Real-Time Radiance Field Rendering》论文较真解读


最近开始在学习3D Gaussian Splatting, 一开始燃起兴趣是因为得知知乎的Italink大神在做一些将3D Gaussian Splatting与HLOD相结合的工作(Unreal Engine 5 — 3D Gaussian Splatting), 且在一次面试过程中也听面试官提起过3D Gaussian Splatting, 这不由让我觉得3D Gaussian Splatting未来将大有可为. 在经过一番简单入门后, 得知3D Gaussian Splatting是一个不涉及深度学习的CG算法, 背后的数学原理还是十分深刻的, 这也激发了自己更浓厚的兴趣. 由于在3D Gaussian Splatting的运行环境的配置上还不太顺利(目前主要原因是本地的VS版本太高), 故先读读论文解解馋, 同时配合B站上一个讲解得十分清晰易懂的视频解惑~

继续阅读《3D Gaussian Splatting for Real-Time Radiance Field Rendering》论文较真解读

提高Shadow Depth Maps性能的常用技术


目前项目组尚未开启Nanite, 故也一直没有好好地钻研过Nanite算法. 前段时间终于抽出业余时间, 静下心来认真学完了Games 104的Nanite一节内容, 收获颇多. 接下来打算以若干篇文章学透Nanite的技术要点, 本文先介绍提高Shadow Depth Maps性能的常用技术, 翻译自微软的技术博客文章《Common Techniques to Improve Shadow Depth Maps》.

继续阅读提高Shadow Depth Maps性能的常用技术

[UE5 AI流程探索篇] 引入深度学习实现Meshes分类 – 下篇


在上篇([UE5 AI流程探索篇] 引入深度学习实现Meshes分类 – 上篇) 中我们在外部PyTorch环境下搭建神经网络模型, 并用导出的训练数据来训练模型. 接下来在下篇中我们将编写插件将StaticMeshes信息转化为文本数据, 并将其作为外部搭建的神经网络的测试数据, 最后导出分类结果数据后在引擎中进行解析与可视化.

继续阅读[UE5 AI流程探索篇] 引入深度学习实现Meshes分类 – 下篇

《New Quadric Metric for Simplifying Meshes with Appearance Attributes》论文要点解读


最近在复习Mesh减面相关的知识点, 当初读罢Hoppe H. New quadric metric for simplifying meshes with appearance attributes[C]//Proceedings Visualization’99 (Cat. No. 99CB37067). IEEE, 1999: 59-510.这篇论文后开发了Mesh自动减面模块, 但其实并没有完全吃透这篇论文, 对许多理论细节亦是囫囵吞枣. 时隔近两年, 重新阅读这篇论文, “柳暗花明又一村”, 对于之前许多令自己迷惑的理论细节豁然开朗~

继续阅读《New Quadric Metric for Simplifying Meshes with Appearance Attributes》论文要点解读

[UE5 AI流程探索篇] 引入深度学习实现Meshes分类 – 上篇


这是前段时间阅读芝麻拌葱花在知乎上写下的一篇文章《【UE5 AI流程探索篇】引入深度学习实现PCG相关功能-上篇》 后突然冒出来的一个想法, 目前根据Meshes的拓扑不变量进行分类是一个十分具有挑战性的问题,
其本质上就是通过编写一套基于代数拓扑的算法, 根据使用者输入的Meshes, 然后去输出输入Meshes的预测分类. 怎么去设计这套逻辑算法是主要脱发点(剩下的脱发点就是怎么跟策划还有美术扯皮… 因为必然会加入许多比较Trick的分类逻辑). 那么我们有没有办法将这个白箱变成黑箱, 只需要控制输入跟输出, 然后黑箱内部会自己调整呢, 这很容易联想到机器学习. 因为机器学习的本质就是拟合, 而拟合就是根据现有的数据来构建函数去预测新的数据. 借助这个思想运用到Meshes分类上, 其本质就是根据不同输入Mesh来执行一套函数去输出输入Meshes的分类, 因此我们只需要将Meshes信息打包成训练数据来喂给神经网络, 让它自己去拟合出这个函数, 某种程度上训练后的神经网络就具备了Meshes分类的能力. 本人采用的神经网络是MeshCNN, MeshCNN是2019年提出的直接在3D Meshes上进行分类和分割的网络, MeshCNN在3D Meshes上定义了定义了卷积和池化层, 依据三维模型边的连通关系进行研究. 最终能够在来自SHREC 11数据集的30个类上达到98.6%的精度, 并且在部件和人体数据集上有很好的分割性能.

继续阅读[UE5 AI流程探索篇] 引入深度学习实现Meshes分类 – 上篇

代数拓扑, 几何与UE游戏开发的那些事(2024版)


自参加工作学习代数拓扑以来, 自己尝试做过一些将代数拓扑, 几何与UE游戏开发结合的微小工作. 本文总结了截至2024年底的相关工作要点, 其中, 有一部分还处在”新建文件夹” 的状态ε=ε=ε=┏(゜ロ゜;)┛

继续阅读代数拓扑, 几何与UE游戏开发的那些事(2024版)

亚历山大多项式注记


最近在学习TopoXu老师的拓扑数据分析课程, 许多课程内容参考了蒋伯驹老师的《绳圈的数学》一书. 但遗憾的是, 书上对于亚历山大多项式及康威方法介绍的篇幅很少, 而这一部分却又是纽结理论里极其重要的一部分, 因此特以本文记录一些关于亚历山大多项式及康威方法的要点.

继续阅读亚历山大多项式注记