介绍 樱井政博的游戏开发方法(桜井政博のゲーム作るには)是星之卡比、任天堂明星大乱斗的游戏制作人樱井政博在油管的频道,主要发布了一系列游戏开发的建议以及方法论。我一直在断断续续地看,有时很受启发,但是这样看无异于走马观花,于是在这里总结归档一下,并在频道更新时,进行相应的更新。 我参考的版本是 B 站由大乱斗吧主光波大侠上传的版本,传送门点这里。 视频分为多个不同的大类,各类别具有不同...
WIP - 樱井政博的游戏开发方法
DBSCAN 算法的应用
介绍 在上一篇文章中介绍了 DBSCAN 的原理,这里来记录一下在引擎中的应用。 我决定引入聚类算法是为了尝试在 UE 中将放置某种包围盒的步骤自动化,从而提高迭代效率。 我在场景中沿着 Nav Mesh 生成了采样点,采样点的数量为 4643 个,分布如下: 可以视作采样点的集合 D 在参照下图对其他聚类算法进行了一些对比后,选择了使用 DBSCAN。 各种聚类算法的效果对...
DBSCAN 聚类算法
介绍 DBSCAN (Density-based spatial clustering of applications with noise) 是一个基于密度的聚类(Cluster)算法:给定空间里的一个点集,该算法能把附近的点分成一组(有很多相邻点的点),并标记出位于低密度区域的噪声点。 原版论文在这里 概念描述及参数 标识 含义 ...
DLSS 的使用和注意事项
Overview 我们知道图片放大后,相比于原图片有新产生的像素点,这些像素点通常是通过各种插值产生的,因此,直接放大的图片的质量不佳,往往会显得很糊。大学时的计算机网络课程中曾经提到过奈奎斯特采样定理,说是要恢复失真的信号,采样频率应该大于二倍的最高频率。也就是说在二倍原始采样率的情况下,可以完整的恢复原始图片的质量。但事实是,在实时渲染领域,在一帧之内,由于 GPU 渲染带来的压力,通...
5.x 新特性使用情况的调查
Intro UE5 已经 release 很久了,为了解当时看起来很酷炫的特性在正式游戏中的应用情况,这里追踪了 Remnant2 以及 RoboCop 的渲染情况。为获得尽可能真实可信的数据,以下抓帧时的数据均在关闭了诸如 DLSS 之类的超分技术和动态分辨率,中画质 1080p 且关闭垂直同步的情况下获取。 硬件环境: i7-10700 2.90GHz NVIDIA RT...
使用 Pose Wrangler 创建 Blendshape
新版 Pose Wrangler 插件已经发布在了 Epic 商城中,新版插件添加了 Driver Bone 的导出模块,及其导入引擎的插件。可以点击这里获取新版插件。新版插件中对 BlendShape 的支持依然是 Experimental,具体的教程视频以及讨论串可以访问这个帖子 背景 Pose Wrangler 是 EpicGames 提供的Maya开源工具,原始的仓库在这...
Occlusion Cull
概述 最近需要利用 Occlusion Query 记录场景中可见物件的信息。为了验证方案的可行性,我决定先在开启 Occlusion Cull 的情况下,从引擎的 View.PrimitiveVisibilityMap 中回读 PrimitiveIndex 来确定可见物件。 然后发现 5.3 版本 SceneVisibility 这块变动挺大的,很多面熟的老函数不见了。查提交发现在引擎...
World Building Guide
World Partition 实践 Grid setup 以单独的 Grid 开始构建,最终的成品中包含的 Grid 越少越好。 应基于 Gameplay、物理行为、Actor 数量等来规划 Grid 的具体的尺寸和加载范围,并在规模变化时进行 profiling,再次调整。 考虑 HLOD 使用 Level Instance 和 Packed Level Acto...
使用 PCA 方法创建有向包围盒(OBB)
背景 在游戏开发中,常见的包围盒有球形包围盒、轴对齐包围盒(AABB)、有向包围盒(OBB)、K-DOP 以及凸包等,包围盒通常用于判断可见性以及碰撞检测等领域。其中,AABB 和 OBB 的应用最为广泛。 不同类型的包围盒 球形包围盒 球形包围盒是包含其所属对象的最小球体。一般用于较粗粒度的碰撞检测。 AABB (Axis-Aligned Bounding Box) ...
Delta Color Compression
问题 前段时间遇到一个平台相关问题,问题是这样: 在 UE 里使用了 SceneCapture 处理的一个低分辨率的 RT,经处理后要做 CopyToResolveTarget,而在这之后作为 Src 的 SceneCaptureRT 没有被拉伸到目标 RT 的大小。最后怀疑了会不会是 DX12 的 CopyTextureRegion 的问题,于是去查了相关资料,最后在一个 2020 年...