Game Engine Architecture Part I: Foundations 读书笔记

第一章:Introduction

  • 游戏团队里的成员。
  • 游戏的类型。
  • 游戏引擎的概念。
  • 几个知名游戏引擎。
  • Runtime Engine Architecture。从hardware到游戏subsystem。
  • 游戏开发用到的tool和resource。游戏的tool有两种模式:Standalone tools architecture和Tools built on a framework shared with the game。

第二章:Tools of the Trade

介绍了几个游戏开发用到的工具
- 版本控制(SVN)
- IDE(Visual Studio)
- Profile工具
- 内存泄漏检测工具

第三章:Fundamentals of Software Engineering for Games

介绍游戏开发中的软件工程

  • 面向对象编程:封装(Encapsulation)、继承(Inheritance)、多态(Polymorphism)。
  • C++编程:类型、大小尾端、定义和声明(注意header里的inline函数要有函数体才可以inline成功)、链接(注意cpp中的重名static变量是独立的)。
  • C++程序的内存Layout:堆栈、堆、内存对齐、类的vtable。
  • 错误处理:Return Code、异常、断言。遇到错误应该处理后尽量运行下去,不应该直接跳出。

第四章:3D Math for Games
介绍图形学知识。

  • 点与向量
  • 点积与叉积
  • 矩阵
  • 变换:平移、旋转、缩放。
  • 坐标基底转换。
  • 法向量的变换:使用变换矩阵的逆转置:(M_(A->B)^(-1))^T。(如果只有保角变换时可以用原矩阵)
  • 四元数及其运算
  • 对各种表示旋转的方法的比较
    – 三个角度(缺点:gimbal lock,以及旋转顺序不确定)
    – 3x3矩阵 (缺点:需要空间大)
    – 旋转轴+旋转角度(缺点:计算较复杂)
    – 四元数(优点:插值简单可以用SLERP)
  • SQT(表示缩放、旋转、平移,优点:比4x4矩阵所需空间少)
  • 双四元数(表示缩放、旋转、平移,参考资料.)
  • 自由度
  • 直线、射线、线段、球、平面的数学表示
  • 边界处理:Axis-Aligned Bounding Boxes、Oriented Bounding Boxes、Frusta、Convex Polyhedral Regions
  • SIMD加速(做点积的技巧:使用_mm_shuffle_ps()把register里面的一维扩散到复制到另三维)
  • 随机数生成
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值