游戏开发论坛

 找回密码
 立即注册
搜索
查看: 5164|回复: 6

请教各位高手, 如何在D3D9程序的代码中关闭垂直同步?

[复制链接]

50

主题

200

帖子

200

积分

中级会员

Rank: 3Rank: 3

积分
200
发表于 2008-6-30 10:30:00 | 显示全部楼层 |阅读模式



我现在已经知道我刷新率上不去是由垂直同步引起的了。


我的 <DX实时渲染详解> 中的例子基本上都是可以上到1000多帧的.
里面都是D3D8的代码.

但是在代码中, 我没有看到任何有关于垂直同步的选项.

我的另一本openGL的书中的代码也是如此.


不过, 任何DXD9的程序帧率都不会超过60.

我NVIDIA的显卡, 按照网上查找的说明, 已经设置成"垂直同步由程序指定"

那么是不是就是说, 只要我在我的程序中指定: 关闭垂直同步

那么这个程序就可以不用垂直同步, 帧率就上去了?


现在, 请问各位, 究竟我需要在D3D9的代码中加入什么, 才能关闭垂直同步呢?

2

主题

132

帖子

132

积分

注册会员

Rank: 2

积分
132
发表于 2008-6-30 13:20:00 | 显示全部楼层

Re:请教各位高手, 如何在D3D9程序的代码中关闭垂直同步?

IDirect3D9::CreateDevice 创建设备时候的那个 D3DPRESENT_PARAMETERS 那个参数,里面有个 PresentationInterval 成员,设置成 D3DPRESENT_INTERVAL_IMMEDIATE,就好了。

50

主题

200

帖子

200

积分

中级会员

Rank: 3Rank: 3

积分
200
 楼主| 发表于 2008-6-30 15:03:00 | 显示全部楼层

Re:请教各位高手, 如何在D3D9程序的代码中关闭垂直同步?

哎呀,改好了,一下上到好几百,爽啊!
谢谢各位的帮助!

你们都是我的神。

1

主题

13

帖子

29

积分

注册会员

Rank: 2

积分
29
发表于 2008-7-2 23:50:00 | 显示全部楼层

Re:请教各位高手, 如何在D3D9程序的代码中关闭垂直同步?

这个同步问题我一直有点疑惑,
以前有人说3d程序为什么要限制针速度,每秒钟300,500针不是挺好吗?
我就纳闷了,你的显示器是CRT的话,刷新速度最高也就100镇/秒
液晶60/每秒
不可能显示器为了你这个程序突然变化刷新速度到1000镇/秒
所以你每秒假如画600镇,必然是每10镇里面只有1阵真正被看到了
,另外9针白画,所以还不如让这些cpu/gpu 干些别的事情,如ai等
blizzard的游戏好像都限速的,比如war3,锁定60fps,
所以结构好,配置要求比较低,
而另外很多游戏为了炫耀速度,胡乱提高镇速度,
试问那个朋友敢说自己的眼睛的反应速度可以达到0.01秒的?

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
发表于 2008-7-3 00:31:00 | 显示全部楼层

Re:请教各位高手, 如何在D3D9程序的代码中关闭垂直同步?

1. CPU占用
2. JIT现象

2

主题

132

帖子

132

积分

注册会员

Rank: 2

积分
132
发表于 2008-7-3 03:03:00 | 显示全部楼层

Re:请教各位高手, 如何在D3D9程序的代码中关闭垂直同步?

嘿嘿,一般都要开垂直同步的.
那个全速渲染, 个人认为只是为了测试显卡性能...

50

主题

200

帖子

200

积分

中级会员

Rank: 3Rank: 3

积分
200
 楼主| 发表于 2008-7-3 14:11:00 | 显示全部楼层

Re:请教各位高手, 如何在D3D9程序的代码中关闭垂直同步?

其实四楼说的问题我也想到了.
但是帧率变高了之后, 画面确实比原来流畅很多. 我也想不通啊.
这个绝对比原来60的要流畅, 原来的就有些卡.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-22 03:02

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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