游戏开发论坛

 找回密码
 立即注册
搜索
查看: 8267|回复: 15

D3DPRESENT_PARAMETERS结构体中的PresentationInterval是怎么影响我

[复制链接]

6

主题

22

帖子

22

积分

注册会员

Rank: 2

积分
22
发表于 2006-5-25 11:42:00 | 显示全部楼层 |阅读模式
程序的帧速率不是前后缓存交换的频率吗?而这是通过Device-&gtresent实现的,那么结构体中的参数怎么影响它呢?这好像只跟我执行Present的时钟频率有关吧,请高手指教

60

主题

1319

帖子

1319

积分

金牌会员

Rank: 6Rank: 6

积分
1319
发表于 2006-5-25 12:11:00 | 显示全部楼层

Re:D3DPRESENT_PARAMETERS结构体中的PresentationInterval是怎么影响

那个影响是你的显示器造成的,
如果垂直同步不关掉,Present的时候就要等待显示器回扫,
而一般显示器的刷新率都设成80赫兹左右,也就把频数限制在了80左右.
把那个参数设成D3DPRESENT_INTERVAL_IMMEDIATE就是不等待显示器。
但也许在某些显示器上会造成显示不正常,比如画面撕裂。

6

主题

22

帖子

22

积分

注册会员

Rank: 2

积分
22
 楼主| 发表于 2006-5-25 13:18:00 | 显示全部楼层

Re: D3DPRESENT_PARAMETERS结构体中的PresentationInterval是怎么影响

垂直同步是什么意思啊?在什么地方设置?

我测试过Present函数用的时间,好像跟PresentationInterval的设置没什么关系。还有,为什么会造成画面撕裂?

30

主题

569

帖子

569

积分

高级会员

Rank: 4

积分
569
发表于 2006-5-25 13:42:00 | 显示全部楼层

Re:D3DPRESENT_PARAMETERS结构体中的PresentationInterval是怎么影响

:)上点理论课。。。
  显示器由电子枪,偏转线圈,荧光屏组成。电子枪由灯丝,阴极,加速环,聚焦环等组成,
显示器打开后,灯丝加热,阴极象荧光屏(充满正电)发射电子束,聚焦后电子束打在荧光屏上是一个点,这时偏转线圈通过控制电场使电子束按照丛上到下,从左到右的逻辑扫描屏幕,在丛左扫描到右后,扫描线需要回到下一行的左边,这个时间叫水平回扫,在从上扫描到下后,扫描线需要回到屏幕的左上角,这个时间叫垂直回扫,由于垂直回扫比较慢,所以显示卡对应的像素缓冲最好等待回扫时间更新,这样就可以一下子提交,不会画面撕裂。否则屏幕上显示的就可能一半是未刷新的画面,一半是刷新的画面。这就是所谓的撕裂咯。

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2006-5-25 15:14:00 | 显示全部楼层

Re:D3DPRESENT_PARAMETERS结构体中的PresentationInterval是怎么影响

楼上说得过于详细了,哈哈
垂直同步是在显卡驱动里设置的,如果想无视驱动设置,就将PresentationInterval设为IMMEDIATE,那样你的程序能跑多少帧就会跑到多少帧的

13

主题

978

帖子

978

积分

高级会员

Rank: 4

积分
978
发表于 2006-5-25 16:20:00 | 显示全部楼层

Re:D3DPRESENT_PARAMETERS结构体中的PresentationInterval是怎么影响

实际上追求太高的FPS没什么意义,60+就已经很流畅了

30

主题

569

帖子

569

积分

高级会员

Rank: 4

积分
569
发表于 2006-5-25 21:28:00 | 显示全部楼层

Re:D3DPRESENT_PARAMETERS结构体中的PresentationInterval是怎么影响

  显示器的刷新率跟显示卡的刷新率是不一样的,一般程序统计的刷新率是显示卡上的刷新率,即程序更新显示内容的速度,而显示器则以固定的刷新率读取显示卡上的显示内容,也就是说不论你程序的刷新率多高,屏幕上的刷新率都是那些。快于显示器的刷新将不会被显示出来。

25

主题

134

帖子

134

积分

注册会员

Rank: 2

积分
134
发表于 2006-5-25 22:02:00 | 显示全部楼层

Re:D3DPRESENT_PARAMETERS结构体中的PresentationInterval是怎么影响

楼上各位大淫说得都很正确啊!

6

主题

22

帖子

22

积分

注册会员

Rank: 2

积分
22
 楼主| 发表于 2006-5-26 13:44:00 | 显示全部楼层

Re:D3DPRESENT_PARAMETERS结构体中的PresentationInterval是怎么影响

多谢各位,关于显示器我已经知道了,不过我还是不太清楚D3DPRESENT_PARAMETERS结构体中的PresentationInterval到底影响了什么?按照各位的说法,应该是Present函数的返回时间了?不过我在程序里测试的时候,为什么Present函数返回的时间没有那么长?

6

主题

22

帖子

22

积分

注册会员

Rank: 2

积分
22
 楼主| 发表于 2006-5-26 23:15:00 | 显示全部楼层

Re:D3DPRESENT_PARAMETERS结构体中的PresentationInterval是怎么影响

还请高手指教
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-24 14:08

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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