游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2850|回复: 5

高手帮忙,shader在移动相机后总是后置一帧造成闪烁

[复制链接]

4

主题

5

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2011-3-22 13:09:00 | 显示全部楼层 |阅读模式

在做水渲染时遇到的问题,参考代码:
http://fileadmin.cs.lth.se/graphics/theses/projects/projgrid/projgriddemo.zip

压缩包内包括已编译好的应用程序及源代码,在执行自带程序过程中显示效果一切正常,但执行编译后的应用程序就会发现,当剧烈移动相机后场景边缘总是慢一帧,从而造成有轻微的闪烁效果,很影响效果。

我在调试过程中发现,如果去掉水的effect效果,仅绘制顶点索引数据不会发生上述情况,但只要加入effect效果,即便像素渲染返回常量,也会出现上述情况。


这个问题已经困扰我很多天了,请高手帮忙

21

主题

296

帖子

296

积分

中级会员

Rank: 3Rank: 3

积分
296
发表于 2011-3-22 15:23:00 | 显示全部楼层

Re:高手帮忙,shader在移动相机后总是后置一帧造成闪烁

在我的机器上,没有出现闪烁。

不过这个操作是如何实现的呢?
鼠标不需要绑定在窗口中央,却可以控制摄像机镜头。怎么做的?如何直接获取鼠标的移动量?
用以前那种老方法做的话,当鼠标到了桌面最右端之后再向右移动,鼠标就没法获取移动量。
可是在你这个DEMO里却可以直接获取鼠标的移动量。怎么做的?

4

主题

5

帖子

5

积分

新手上路

Rank: 1

积分
5
 楼主| 发表于 2011-3-22 15:57:00 | 显示全部楼层

Re:高手帮忙,shader在移动相机后总是后置一帧造成闪烁

应该是应用了dxinput实现的,我没看具体实现过程,你可以看看dxmouse那个类

33

主题

159

帖子

272

积分

中级会员

Rank: 3Rank: 3

积分
272
QQ
发表于 2011-3-22 21:27:00 | 显示全部楼层

Re:高手帮忙,shader在移动相机后总是后置一帧造成闪烁

Dinput 的mouse取值,分立即模式和缓冲模式,其中立即模式取到的值,不是鼠标当前的位置,而是两次取值间,鼠标移动的xy分量,另外还有各个按键的状态,好像最近两期SDK的sample里都没这个了,我上次装2006版的sdk有这个

有需要的话回个,我可以把这两个sample放上来,一个是DinputKeybord 一个是DinputMouse

21

主题

296

帖子

296

积分

中级会员

Rank: 3Rank: 3

积分
296
发表于 2011-3-22 22:25:00 | 显示全部楼层

Re:高手帮忙,shader在移动相机后总是后置一帧造成闪烁

代码看了一下。估计是下面这个部分直接获取到的鼠标移动量。
这个必须使用DirectInput才能调用吗?会不会是系统函数?
  1. lpdiMouse->GetDeviceState(sizeof(DIMOUSESTATE),(LPVOID)&mouseState)
  2. x= mouseState.lX;
  3. y= mouseState.lY;
复制代码

0

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2012-5-22 10:22:00 | 显示全部楼层

Re:高手帮忙,shader在移动相机后总是后置一帧造成闪烁

projgriddemo.zip怎么样调出水的效果???
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-2-28 06:43

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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