Game Engine Architecture Part I: Foundations 读书笔记
2016-05-18 10:48
453 查看
第一章: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里面的一维扩散到复制到另三维)
随机数生成
相关文章推荐
- 只需十分钟,结果大不同 |《深度思考》
- 《洋葱阅读法》读书笔记
- Jquery实战_读书笔记1―选择jQuery
- JavaScript 精粹读书笔记(1,2)
- JavaScript 权威指南(第四版) 读书笔记
- Terry七月Ruby读书笔记(比较详细)第1/4页
- 整理java读书笔记十五之java中的内部类
- 从「林」开始--C++ primer 读书笔记 -- Part II: Containers ...
- [读书笔记]Scrum 总结
- 《穷爸爸,富爸爸》读书笔记
- 《程序员的职业素养》读书笔记
- sniff读书笔记
- 《Zabbix监控系统深度实践》读书笔记
- 《DevOps故障排除:Linux服务器运维最佳实践》读书笔记
- 重学JS 1
- 《javascript高级程序设计》读书笔记——引用类型之Object类型(细节整理)
- 《HTML重构》读书笔记&思维导图
- <读书笔记>软件调试之道 :问题的核心-诊断
- 数据挖掘入门笔记(一)--认识数据
- 读书笔记 Visual C++ 编程之道