一般一秒30-60帧, 也就是程序每帧耗时需要在33ms以下
传统的游戏循环: 输入(控制器), 更新世界和逻辑, 输出(画面)
多线程游戏循环: 最简单的方法是让线程做自己的事情, 例如一个线程负责图形以外的计算..., 另一个线程负责渲染图形
多线程合作的时候渲染线程需要等待主线程的数据, 因此为了提高利用率最好借用流水线的思路, 让渲染线程比主线程慢一帧
多线程可能导致更高的输入延迟如下图: 第一帧进行了计算,...如果程序在屏幕刷新的途中输入画面到屏幕的缓冲区的话会可能屏幕撕裂的现象, 也就是上半个画面是新内容, 下半个画面是旧内容, 虽然持续时间很短但是观感还是不好
因此解决屏幕撕裂的关键在于必须在刷新之前就将所需的内容输入显示器缓冲..., 但是帧率的不稳定导致这个过程可能过早或过晚
为了最大化流水线效率, 游戏设计了双缓冲技术, 前缓冲是用于输入显示器的完整图像, 后缓冲是正在绘制的下一帧图像, 显示器按照周期从前缓冲获取内容, 程序渲染完画面就进行前后缓冲交换...应用到图形库时可以用下面的式子将四元数转换为变换矩阵
5 游戏输入
输入设备
输入可以简单分为数字和模拟两大类, 数字意味着只有0和1两种状态的输入(例如普通的按键), 模拟是浮点输入(例如摇杆)