Time Measurement in Game Programming
11 hours ago
- 时间测量对于游戏和实时程序至关重要,需要仔细选择数据类型、单位和零点,以避免精度和范围限制。
- 整数类型(例如64位)更适合绝对时间,以避免大数值时的精度损失,而浮点数可用于小增量。
- 常见的时间读取函数包括 QueryPerformanceCounter(高精度)、GetTickCount(低精度)和 clock_gettime(Unix);每个函数在单调性、精度和平台支持方面各有权衡。
- 专用的 GameTime 类(存储来自 QPC 的周期)通过重载运算符确保正确的逻辑操作(例如,不添加时间)并简化时间处理。
- 采取如钳制时间增量并从绝对测量值中减去起始时间等预防措施,可以防止灾难性抵消和其他浮点问题。
- FPS 是一个非线性度量(帧时间的倒数),不应用于性能比较;相反,应使用以毫秒为单位的帧时间进行准确分析。