游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3884|回复: 7

游戏计时器的问题

[复制链接]

42

主题

140

帖子

158

积分

注册会员

Rank: 2

积分
158
发表于 2009-11-5 21:52:00 | 显示全部楼层 |阅读模式
如果要做物理运算,里面的时间如何弄呢,如果用系统的时间的话,那么如果某一帧渲染很慢的话,那么程序的物理运动会出现跳跃,如果用帧率的话,那么30帧的和100帧的也不太一样了,那么实际中是如何弄的呢。

30

主题

422

帖子

433

积分

中级会员

Rank: 3Rank: 3

积分
433
发表于 2009-11-6 09:55:00 | 显示全部楼层

Re:游戏计时器的问题

逻辑时间和系统时间分离。并由系统时间或者主循环驱动逻辑时间。
物理计算依赖逻辑时间。一般逻辑时间的前进保持固定频率。
如果渲染效率低,渲染频率小于等于逻辑频率。那么渲染则可随时算则最近一次逻辑帧计算的结果进行。
如果渲染效率很高,那么既可以简单的减少渲染帧配合逻辑帧同时减少cpu占用,也可以不减少渲染帧率,但需要一层逻辑数据到渲染层之间的插值数据计算层以便平滑2个逻辑帧之间缺少的信息。

既然你现在渲染较慢,那么可间隔若干逻辑帧后渲染一帧。比如保持逻辑时间大致上每秒50帧,而渲染则每秒25帧。于是每跑完2帧逻辑,跑一次渲染。这么写是比较简单,不过渲染突然卡一下也影响到逻辑。

3

主题

17

帖子

17

积分

新手上路

Rank: 1

积分
17
发表于 2009-11-6 13:01:00 | 显示全部楼层

Re: 游戏计时器的问题

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
发表于 2009-11-6 23:51:00 | 显示全部楼层

Re:游戏计时器的问题

最好开线程。逻辑和渲染分开。
这样渲染再慢也不影响逻辑。

我前段时间做万有引力仿真的时候,逻辑的delta time起码要全部小于0.02ms才能没有什么误差。
就算每隔几十逻辑frame渲染一次,也会有一些误差。所以最好是开另一个线程。

42

主题

140

帖子

158

积分

注册会员

Rank: 2

积分
158
 楼主| 发表于 2009-11-7 11:39:00 | 显示全部楼层

Re:游戏计时器的问题

虽然不太明白,不过还是谢谢了。

13

主题

312

帖子

312

积分

中级会员

Rank: 3Rank: 3

积分
312
发表于 2009-11-9 03:12:00 | 显示全部楼层

Re:游戏计时器的问题


支持一下 :〉


-------------------------------------------------------------------------------------------

欢迎访问开源图形处理器体系结构论坛(OpenGPU论坛) http://www.opengpu.org/bbs/

OpenGPU Graphics Open Source community(图形开源社区),聚焦领域(focus domain)包括:
  * GPU Architecture(图形处理器体系结构)
  * Graphics Algorithm(图形算法)
  * GPGPU Programming (面向通用的图形处理器编程)
  * Open Source Rendering Engine(开源渲染器)
  * Open Source GPU Simulator/RTL Implement(开源GPU模拟器

86

主题

2251

帖子

2384

积分

金牌会员

Rank: 6Rank: 6

积分
2384
QQ
发表于 2009-11-9 11:31:00 | 显示全部楼层

Re:游戏计时器的问题

线程就没误差?

0

主题

398

帖子

577

积分

高级会员

Rank: 4

积分
577
发表于 2009-11-12 14:57:00 | 显示全部楼层

Re:游戏计时器的问题

误差受DeltaTime影响是因为算法有问题吧.....
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-18 05:41

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表