全文6.6k字, 预计需要22分钟.
1 游戏编程概述
游戏主循环
游戏循环: 整个游戏程序的核心流程控制, 不断执行直到退出
帧: 循环的一次迭代...., 另一个线程负责渲染图形
多线程合作的时候渲染线程需要等待主线程的数据, 因此为了提高利用率最好借用流水线的思路, 让渲染线程比主线程慢一帧
多线程可能导致更高的输入延迟如下图: 第一帧进行了计算,...模型, 且属于一种局部光照模型(不考虑光线的二次反射)
Phong光照由环境光项+漫反射项+高光项得到
环境光项是直接附加的一个常数
漫反射项是颜色乘上一个权重, 权重是法线方向与光照方向的点乘
高光项也是颜色乘权重..., 权重是视线方向与光照方向的半程向量(相加然后单位化)与法线方向的点乘, 然后经过一个指数幂处理来控制得到的高光范围大小, 幂次越大高光范围越小
四元数
目的是避免欧拉角表示旋转会有的万向节死锁问题,..., 减少事件轮询的开销
一般这个输入管理器对象是全局可见的, 对象内部在每一帧对所有输入操作进行基础的处理, 而其他需要被输入调用的对象将自己的函数指针传入管理器的链表/映射表中(这种操作称为注册或绑定