《游戏引擎架构》笔记6:资源及文件系统

1. 文件系统 1.1 文件名和路径 Unix路径分隔符是 /,Windows路径分隔符是 \。 路径分离目录/文件名/扩展名,路径规范化,在绝对路径和相对路径之间切换,WIndows提供了API,由shlwapi.dll库提供,提供shlwapi.h头文件,但只用于Win32平台。为了跨平台游戏引擎通常实现自己轻量化的路径处理API。 1.2 基本文件I/O C程序库提供IO输...

发布于 技术

《游戏引擎架构》笔记5:游戏支持系统

1. 子系统的启动和终止 子系统互相依赖,启动次序很关键,控制次序方案: 1.1 单例全局变量❌️ 程序进入点(main()或WinMain())前全局及静态对象构造函数调用次序无法预知 程序(main()或WinMain())结束返回后全局及静态对象析构函数调用次序无法预知 因此不能使用单例:单例构建时依赖的单例可能还未构建,单例析构时依赖的单例可能已经析构。 1234567891...

发布于 技术

《游戏引擎架构》笔记4:游戏所需的三维数学

本文是阅读《游戏引擎架构》第四章"游戏所需的三维数学”进行的归纳和总结,部分内容经过了AI的扩展。 点和矢量 坐标系和基矢 矢量运算:标量乘法、加法、减法、模、点乘、叉乘、插值。 矩阵 矩阵运算:乘法、逆、转置 齐次变换 齐次坐标 基础变换矩阵:平移、旋转、缩放。 坐标空间:模型空间、世界空间、观察空间。 变换坐标系和变换矢量问题(齐次坐标为列向量,和...

发布于 技术

《游戏引擎架构》笔记3:游戏软件工程基础

本文是阅读《游戏引擎架构》第二章"专业工具”进行的归纳和总结,部分内容经过了AI的扩展。 菱形继承 结构: 12345 A / \B C \ / D 问题1: 基类A成员有多份冗余(数据冗余) 二义性(访问A的成员歧义) 解决1: 虚继承 1234class B : virtual public A {};cl...

发布于 技术

《DirectX 12 3D游戏开发实战》阅读笔记1:数学

1. 向量代数 1.1 向量 1.1.1 向量与坐标系 1.1.2 左手坐标系和右手坐标系 1.1.3 向量的基本运算 1.2 长度和单位向量 1.3 点积 1.4 叉积 1.4.1 2D向量的伪叉积 1.4.2 通过叉积来进行正交化处理 1.5 点 1.6 利用DirectXMath库进行向量运 1.6.1 向量类型 了解DirectXMath库设计原理,推...

发布于 技术

《游戏引擎架构》笔记2:专业工具

本文是阅读《游戏引擎架构》第二章"专业工具”进行的归纳和总结,部分内容经过了AI的扩展。 版本管理:常用的有Git、SVN等。 不同的编译器的宏 MSVC: _MSC_VER GCC: __GNUC__ Clang:__clang__ MinGW / MinGW-w64 :__MINGW32__/__MINGW64__ 不同平台的宏 Windows32 /...

发布于 技术

《游戏引擎架构》笔记1:导论

本文是阅读《游戏引擎架构》第一章"导论”进行的归纳和总结。 下面展示了游戏引擎的架构图: 运行时引擎架构 目标硬件 设备驱动程序 操作系统 第三方软件开发包和中间件 数据结构和算法:STL、STLport、Boost、Loki 图形:Glide、OpenGL、DirectX、libgcm、Edge、Vulkan 碰撞和物理:Havok、PhysX、Open Dynamics...

发布于 技术