C++游戏开发高级常识(纲领整理)
前言
一直打算通过一篇文章把我的几年的积累整理一下。每天都会想一些,对这篇文章的内容进行填写。在确定目录结构的时候对当中涉及的知识进行叙述。我会尽可能把这篇文章写好。并且不断完善。与诸君共勉。
适合读这篇文章的人:准备C++面试,想通过学习C++来进行游戏开发的同学。
序章 C++开发细节基础
1.C++类型转换
2.C++静态相关
3.C++函数指针
4.C++函数指针返回值
5.C++常量
6.C++开发常用设计模式
7.常用STL
8.C++面向对象理解
9.C++构造与析构
10.虚拟内存与物理内存
11.C++多态实现原理
12.操作系统运行程序流程
13.智能指针及其实现
14.malloc和alloc的关联与详细过程
15.C++内存模型
16.extern C的作用
17.链式表达式
18.数字字符串处理(atoi和stoi)
19.多继承下的内存布局(为何会出现内存偏移)
第一章 程序开发技巧
1.使用C++进行内存管理
2.C/C++程序的编译与链接过程
3.静态链接库与动态链接库的意义、生成与使用
4.C++如何实现委托
5.C++如何实现反射
6.C++的序列化实现
7.C++运行时类型识别
8.C++垃圾回收
9.C++实现回调机制
10.C++智能指针
11.C++模板特化以及偏特化
12.C++函数对象
13.C++多线程下的消息同步
14.C++多线程资源管理:线程池
15.placement new:大批量对象搬运优化
16.指针关联器
第二章 C++高级算法
1.C++高级数据结构实现
1.1 kd树
1.2 线段树
1.3 八叉树
1.4 红黑树
2.C++高级算法思想
2.1 动态规划
2.2 回溯
2.3 贪心
3.图论算法
3.1 最短路径算法
第三章 游戏开发
1.渲染管线流程
2.游戏当中的设计模式
3.判断某个点在扇形区域
4.光线追踪渲染原理及实现
5.PBRT基于物理的渲染原理
6.实时碰撞技术
7.摄像机动画机制
8.基于数据驱动的游戏框架
9.游戏常用的图形学技术
9.1 FFT 海面渲染
9.2 地形加载
9.3 大规模草地渲染
9.4 级联式阴影映射算法CSM
9.5 程序式纹理
9.6 曲面细分
第四章 其他基础知识
1.多进程的同步方法
2.进程间通信的方法,与socket通信的关联
3.VS安装多个项目,不同项目之间互相引用
-
在solution的Property中选择Common Properties->Project Dependencies,给A的depends on里面选上B
-
A的Property里的Configuration Properties->C+±>General,在Additional Include Directories里加上B对应的include目录
-
A的Property里的Configuration Properties->Linker->Input,在Additional Dependecies里面加上B编出来的lib文件名
-
如果在3里面不知道B编出来的lib放哪儿,就去B的Property里的Configuration Properties->General看Output Directory