置顶文章

831 1 分钟

更新一下最近的情况,由于近期更换工作,不得不投入更多的经理在项目上,因此可能会有半年左右的停更 # game-study-plan 阅读《python 源码剖析》 | 产出文档 阅读《微服务架构与实践》 | 产出文档 python「工匠」 | 产出文档 现代计算机图形学入门 games101 | 产出文档 现代计算机图形学入门 games101 作业 了解 Python 热更新机制 | 产出文档 掌握 Python 的 C 扩展编写 | 产出文档 阅读《C++ Primer Plus》 | 产出文档 了解 jenkins 流水线语法 JPS+: Over 100x Faster...

精选分类

文章列表

10k 9 分钟

以下为个人学习笔记整理。参考 PhysX SDK 3.4.0 文档,部分代码可能来源于更高版本。 # 「Scene Queries」AABBPruner 本篇基于 「Scene Queries」AABBTree 的扩展,阅读之前建议先了解 AABBTree。( ̄︶ ̄)↗ 如果说 AABBTree 是场景查询中最基础的数据结构,那么 AABBPruner 则是再此基础上进行了全方位的优化 —— 交替帧渲染。该理论的核心是同时存储画面 A 和画面 B,其中一个展示给用户,另一个则在后台渲染,等到渲染完成后,对两者进行替换,从而实现流畅的观看体验。同理,为了保证 AABBTree...
4.7k 4 分钟

以下为个人学习笔记整理。参考 PhysX SDK 3.4.0 文档,部分代码可能来源于更高版本。 # 「Scene Queries」AABBTree—— 下 下篇主要介绍 AABBTree 的增量版本 ——IncrementalAABBTree。阅读本文之前建议请先了解 「Scene Queries」AABBTree—— 上,不然很可能看的迷迷糊糊 (~ ̄▽ ̄)~ IncrementalAABBTree 相比于 AABBTree 最大的区别在于支持了插入删除时能够动态更新树结构(旋转操作,并且由于动态特性,一定程度上简化了数据结构,没那么扣扣嗖嗖了~ #...
11k 10 分钟

以下为个人学习笔记整理。参考 PhysX SDK 3.4.0 文档,部分代码可能来源于更高版本。 # 「Scene Queries」AABBTree—— 上 AABBTree 是 PhysX 用来实现场景查询的基本数据结构,通过 AABBTree 可以实现高效的 AABB 粗筛,从而提高物理检测的查询效率。 之所以把 AABBTree 单独拎出来说,主要是因为其涵盖的内容较多。当作一个单独的篇幅来展开讨论完全合适~ # AABBTree 中的数据组成 AABBTree 中的类变量总计有十个: PxU32* mIndices;PxU32...
1.2k 1 分钟

多出来的 + 1?这里为什么多分配一个 PxVec3 呢? nbPrimitives+1 bool AABBTree::buildInit(AABBTreeBuildParams& params, BuildStats& stats){ // Checkings const PxU32 nbPrimitives = params.mNbPrimitives; if(!nbPrimitives) return false; // Release previous tree release(); // Init...
3.6k 3 分钟

纯粹记录个人知识盲区,并系统性的做个学习 # C++ 中的 extern extern 可以应用于「变量」「函数」和「模板」,用于只声明不定义。 这里有个比较严格的规则:所有常规「变量」「函数」「模板」可以多次声明,只能有一次定义;这个很好理解,如果定义多次的情况下,编译器也不清楚改用哪次的定义作为最终的结果。 这里先做个简单的测试: // test_extern.h#pragma onceint a;void func() {}template<typename T1>void func(T1...
5.7k 5 分钟

本文主要是介绍一些个人开发过程中遇到的奇怪代码,奇怪并非指代代码错误或写法低效,单纯个人知识盲区 # 杂项 # new 构造函数的非零构造 一般调用构造函数的时候,都会初始化对象里的变量,如果不指定的情况下就会执行零构造,对于以下代码,相比大家都很熟悉: class CMyClass{ int c;}CMyClass a = new CMyClass();// a.c == 0初始化一个类对象,但其中实际还隐含了一个操作 —— 值初始化。这一步实际上会把 CMyClass 中的成员 c 初始化为...
9.5k 9 分钟

以下为个人学习笔记整理。参考 PhysX SDK 3.4.0 文档 # PxTransform 用于描述 PhysX 系统下 Transform 操作的类,其提供了两个数据: PxQuat q:用于描述旋转的四元数 q PxVec3 p:用于描述平移的向量 p # PxVec3 一个三维向量,用于表示一个物体从 A 点移动到 B 点所需的方向和距离 # PxQuat 四元数,用于描述三维空间下角度变化的数据结构,说到四元素,这里就不得不提到「旋转矩阵」和「欧拉角」,三者均用于表示空间层面的旋转。 四元数:由四个数字组成 旋转矩阵:由 3X3...
13k 12 分钟

# UE 基础篇 # Unreal 中常见类说明 # UObject 所有 UE 对象的基类 # UClass 用于描述 UObject 类型的类型 # FField 字段,组成复杂结构的基本单元 # UField 成员(成员字段 | 成员函数 | 成员结构),于 Unreal4.25 更新后移除了成员字段的作用,仅作为成员函数和成员结构使用。 https://docs.unrealengine.com/4.27/en-US/WhatsNew/Builds/ReleaseNotes/4_25/ # Unreal 中反射和类关系 #...
3k 3 分钟

# UE 蓝图篇 蓝图作为 Unreal 的大杀器,为 Unreal 提供了可视化编程的能力,把一些代码层面的概念通过可视化形式实现,从而能够让艺术家和策划们实现更为复杂的逻辑。 一句话讲:让不会写代码的人,可以基于已有的内容,通过排列组合的形式实现复杂业务。 # 蓝图类型 Unreal 4 的蓝图目前有以下几种: /** Enumerates types of blueprints. */UENUM()enum EBlueprintType{ /** Normal blueprint....
16k 14 分钟

以下为个人学习笔记整理。B 站课程传送门 # CMake CMake 是用来统一编译代码,相当于是执行编译的自动化脚本。定义 CMakeLists.txt 以后,就不需要对项目代码进行逐个的编译。 # 编译一个简单代码 main.cpp #include <iostream>int main(){ std::cout << "hello world" << std::endl; return...