对于像学习游戏引擎原理的人来说,需要制定自己明确的长期目标:
1) 首先,一开始可能对游戏引擎没什么概念,建议先使用一两个游戏引擎(我推荐C++程序员学习虚幻4游戏引擎,现在是免费开源的,非常值得学习。那些不开源的游戏引擎尽量不要去学习,因为其对于学习原理来说没有多大贡献)。
2) 因为游戏开发就是一门实时渲染的艺术,所以离不开图形库的学习。现在主流的图形库是Windows平台专用的DirectX 11和通用平台的Opengl。这两个图形库,至少需要入门其中一个。
3) 然后,你就可以开始看计算机图形学的书籍了。如果你发现你的理论底子不足,这个时候就需要补一下线性代数、基本的微积分、还有3D数学的知识。
4) 游戏引擎中包含了各个部分,上面的渲染只是游戏引擎的一部分。还有其它诸如着色器编写、地形编写、物理引擎编写、模型和动画、人工智能体设计、网络编程等等,完成渲染部分的基本学习后,你可以选择自己感兴趣的部分进行专攻,毕竟我们实际工作大多数时候是团队开发,而不是单打独斗,每个人都应该精通自己所擅长的那部分。
这里为了文章的紧凑性,我将游戏引擎的基础理论知识和各个引擎组件的推荐书籍放到了文章的附录处。
下表是基础理论知识和游戏引擎组件书籍推荐(不必全看,请有选择地阅读):
1) 数学基础
下面这些数学基础书籍是为游戏开发量身定制的,比专门看某一数学方向更有效率:
- 《3D Math Primer for Graphics and Game Development》,有中文版
- 《Mathematics for 3D Game Programming and Computer Graphics》
- 《Essential Mathematics Guide》
- 《Geometric Tools for Computer Graphics》
2) 图形库
针对 DirectX 的书籍:
- 《Introduction to 3D Game Programming with DirectX 11》,大名鼎鼎的龙书,入门必看的
- 《Practical Rendering and Computation with Direct3D 11》,进阶
- 《Real-Time 3D Rendering with DirectX and HLSL》
针对 OpengGL 的书籍:
- 《OpenGL SuperBible》,著名的蓝宝书,以例子为主,有中文版。但不建议看中文版,翻译得不好。
- 《OpenGL Programming Guide》,著名的红宝书,有中文版。红宝书更像是手册,API大全,例子较少,适合熟练者查询使用。
- 《OpenGL 4.0 Shading Language Cookbook》,进阶,基本上就是API手册,有中文版。但不建议看中文版,翻译得不好。
3) 计算机图形学
- 《The Nature of Code》,有中文版,比较简单
- 《Fundamentals of Computer Graphics》,被国外多所大学采用的入门教材,介绍范围比较广,从基本的相关数学到建模、渲染、动画、应用方面都有提及
- 《Physically Based Rendering》,主要是离线渲染
- 《Real-Time-Rendering》,必读经典!必读!
- 《计算机图形学》,作者舍利
- 《Computer Graphics》,要看最新的第三版
- 《计算机图形学原理及实践:C语言描述》
4) Shader着色器
- 《Cg_tutorial》,入门
- 《The Complete Effect and HLSL Guide》,入门
- 《Shaders for Game Programmers and Artists》,含有大量入门例子
- 《Advanced Lighting And Materials With Shaders》,介绍光照模型和技术
- 《GPU Gems》进阶必读。
- 《Shader X》系列,每年出版一本,包含最新的实时渲染技术。论文性的比较多,偏难。
- 《Programming Vertex, Geometry, and Pixel Shaders》,以DirectX 10为主,很详细。
5) 地形
《Real Time 3D Terrain Engines Using C++ And DX9》非常全面的讨论了关于地形渲染的各种技术。
6) 模型导入和动画
- 《Character Animation With Direct3D》包含了最新的游戏动画技术
- 《Computer Animation》
- 《Real-Time Cameras》
- 《Computer Facial Animation》
- 《Realtime 3D Character Animation with Visual C++》
- 《Advanced Animation and Rendering Techniques》
- 《Cloth Modeling and Animation》
7) 网络
- 《TCP/IP 详解 卷2》
- 《Network Programming for Microsoft Windows》
- 《Advanced Programming in the UNIX Environment》
- 《Windows核心编程》
- 《Multithreading applications in Win32》
- 《网络游戏核心技术与实战》
8) 物理
- 《Game Physics》
- 《Game Physics Engine Development》
- 《Real-time Collision Detection》,碰撞检测方面最好的书
- 《3D Game Engine Design, 2nd》第8、9章值得一看
9) 细节层次
《Level of Detail for 3D Graphics》
10) 光线跟踪
- 《Physical-Based Rendering - From Theory to Implementation》
- 《Another Introduction to Ray Tracing》
11) 人工智能
- 《Programming Game AI by Example》有中文版
- 《Artificial Intelligence for Games》
- 《AI Programming Wisdom》
- 《AI Game Engine Programming》
12) 综合
- 《Game Programming Gems》,文章的范围比较广,选择性阅读
- 《Color and Light in Nature》
- 《Digital Design of Nature》
- 《Form+Code in Design, Art, and Architecture》
- 一下这张图片非原创,出自:作者星铃丹,授权发布,转载请注明出处。写的非常详细,拿出来和大家分享下!
- 引用:http://gad.qq.com/article/detail/7193648?sessionUserType=BFT.PARAMS.214566.TASKID&ADUIN=1318446093&ADSESSION=1490248132&ADTAG=CLIENT.QQ.5497_.0&ADPUBNO=26661