游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3020|回复: 3

如何开启V-Sync?

[复制链接]

21

主题

296

帖子

296

积分

中级会员

Rank: 3Rank: 3

积分
296
发表于 2011-1-8 15:02:00 | 显示全部楼层 |阅读模式
很多3D游戏都有这个选项。
开启之后画面就不会横切了。
VC++里如何实现这个功能呢?

26

主题

417

帖子

476

积分

中级会员

总版主

Rank: 3Rank: 3

积分
476
发表于 2011-1-9 14:12:00 | 显示全部楼层

Re:如何开启V-Sync?

D3D的话是createdevice的present参数
把D3DPRESENT_PARAMETERS里的PresentationInterval值为D3DPRESENT_INTERVAL_ONE就是开启vsync

2

主题

429

帖子

435

积分

中级会员

Rank: 3Rank: 3

积分
435
发表于 2011-1-9 23:28:00 | 显示全部楼层

Re:如何开启V-Sync?

gdi绘制的话,用双缓冲实现类似效果。

21

主题

296

帖子

296

积分

中级会员

Rank: 3Rank: 3

积分
296
 楼主| 发表于 2011-1-10 03:23:00 | 显示全部楼层

Re: 如何开启V-Sync?

OpenGL的话如下:
typedef BOOL (APIENTRY *PFNWGLSWAPINTERVALFARPROC)( int );
PFNWGLSWAPINTERVALFARPROC wglSwapIntervalEXT = 0;
wglSwapIntervalEXT = (PFNWGLSWAPINTERVALFARPROC)wglGetProcAddress("wglSwapIntervalEXT");

wglSwapIntervalEXT(1);//打开垂直分布,限制帧率
wglSwapIntervalEXT(0);//关闭垂直分布,充分发挥显卡的渲染能力
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-4 22:11

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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