PhysX——Memory Management篇
以下为个人学习笔记整理。参考 PhysX SDK 3.4.0 文档,部分代码可能来源于更高版本。 # PhysX——Memory Management 篇 (未完待续) PhysX 所有对象的分配都是基于 Foundation 内的 PxAllocatorCallback 完成,这里以 PsPool 作为按理简单介绍一下 先来看看 Pool 的构造函数,这里稍微有些绕: // 通过泛型模板定义好该类型的分配器 Alloctemplate <class T, class Alloc = typename AllocatorTraits<T>::Type>...
more...PhysX内置容器介绍
以下为个人学习笔记整理。参考 PhysX SDK 3.4.0 文档,部分代码可能来源于更高版本。 # PhysX 内置容器介绍(未完待续) 本文主要归纳了 PhysX 里看到的一些内置容器,因为用的时候每次都要确认一下,干脆做个系统记录。 # 基础容器 # Array 常规数组,支持扩容。插入时如果容量不够了触发扩容,每次扩容容量翻倍。 # InlineArray 支持提前分配好 N 个元素的 Array。 # Pool Pool 其实是一个维护多个指针的数组,其继承自 PoolBase: mSlabs:InlineArray 的数组指针,初始时大小为...
more...kcp源码阅读
以下为个人学习笔记整理。项目源码来自 kcp github 开源库 # kcp 源码阅读 # 收发包流程 Kcp 握手 | 挥手 规则其实是上层应用自己定义的,因此实现上五花八门,这里简单介绍一下: Kcp 握手: 客户端请求连接,服务器创建 kcp 对象,生成 conv 编号,通知客户端 客户端通过 conv 初始化 kcp,双端 conv 一致,开始通信 特殊情况: 客户端连接请求丢失:客户端未收到 conv 触发重传 服务器同步 conv 丢失:同理,客户端触发重传再次建立连接,服务器再次生成 conv 并同步 客户端发起请求后断开(未通知服务器):服务器 kcp...
more...asio源码阅读
以下为个人学习笔记整理。 # asio 源码阅读 Boost 的 asio 库常被用于实现异步的网络 IO,在服务器开发中往往充当着非常重要的作用,是服务器开发的基础。这里主要根据个人对于 asio 库阅读后的理解和感悟,进行系统化的归纳和总结。 # service_registry 类 Service 对象的管理器,通过单链表的形式存储所有的 Service 对象。并提供了添加、查询、创建等常用接口。 fork 操作 # execution_context 类 包含一个 service_registry 对象,对 service_registry 所有接口进行了一层封装,通过...
more...3D寻路NavBound
个人设计开发的 3D 导航寻路方案 # 3D 寻路 NavBound 基于 RecastNavigation 的 3D 场景下寻路解决方案 ——NavBound。 # 核心思想 通过构建「非障碍空间」下的八叉树,将空间分割为稀疏的立方体结构,再对立方体之间更新 connect 和 region 信息辅助 A_star 实现 3D 场景下的寻路。 # 离线数据生成规则 初始化参数配置 障碍空间体素化 非障碍空间体素化 生成八叉树 更新八叉树节点连接情况 更新八叉树 region 信息 转为 NavBound 格式 # 初始化参数配置 #...
more...SoloMesh
以下为个人学习笔记整理,源项目 github 链接。 # SoloMesh SoloMesh 的构建过程可以分为如下几步: 「Step 1」Initialize build config 「Step 2」Rasterize input polygon soup 「Step 3」Filter walkables surfaces 「Step 4」Partition walkable surface to simple regions 「Step 5」Trace and simplify region contours 「Step 6」Build polygons mesh from...
more....jpg)
.jpg)
.jpg)
.jpg)
.jpg)


.jpg)
