游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3093|回复: 4

请教一下在openGL中怎样实现单幅图像的滚动效果?谢谢:)

[复制链接]

5

主题

12

帖子

12

积分

新手上路

Rank: 1

积分
12
QQ
发表于 2006-9-14 11:21:00 | 显示全部楼层 |阅读模式
我看了一篇文章介绍了单幅图像的滚动的实现方法,就是在纹理坐标的某个分量上加变量roll ,部分代码如下:
glPixelStorei (GL_UNPACK_ALIGNMENT,1) ;
glTexEnvf ( GL_TEXTURE _ENV , GL_TEXTURE_ ENV_MODE , GL_MODULATE) ;
glTexParameteri ( GL_TEXTURE_2D , GL_TEXTURE_MIN_FILTER , GL_ LINEAR) ;
glTexParameteri(GL_ TEXTURE_ 2D , GL _TEXTURE_ MAG_FILTER , GL_ LINEAR) ;
glTexParameteri (GL_ TEXTURE _2D , GL _TEXTURE_ WRAPS , GL_ REPEAT) ;
glTexParameteri (GL _TEXTURE _2D , GL _TEXTURE _WRAP_T, GL _REPEAT) ;
glTexImage2D(GL_TEXTURE_2D ,0 ,3 ,nWidth ,nHeight ,0 ,GL_BGR_EXT,GL_UNSIGNED_ BYTE ,pBytes) ; / / 定义二维纹理映射
glBegin(GL QUADS) ; / / 绘制纹理四边形
glTexCoord2f ( - roll + 0. 0f , - roll + 0. 0f) ; glVertex3f ( - 1. 1f ,- 1. 1f , 0. 0f) ; / / 左下角
glTexCoord2f ( - roll + 3. 0f , - roll + 0. 0f) ; glVertex3f ( 1. 1f , -1. 1f , 0. 0f) ; / / 右下角
glTexCoord2f ( - roll + 3. 0f , - roll + 3. 0f) ; glVertex3f ( 1. 1f , 1.1f , 0. 0f) ; / / 右上角
glTexCoord2f ( - roll + 0. 0f , - roll + 3. 0f) ; glVertex3f ( - 1. 1f ,1. 1f , 0. 0f) ; / / 左上角
glEnd() ;
roll + = 0. 002f ; / / 增加roll 变量
if (roll > 1. 0f) { roll - = 1. 0f ; } / / roll 是否超过1. 0 , 超过1. 0 ,则减1. 0
. . .
绘制动画要响应WM TIMER 消息,并设置SetTimer () 函数。
可是我不知道怎么设置这个函数啊:(请高手给予指导
谢谢
[em1]

8

主题

716

帖子

716

积分

高级会员

Rank: 4

积分
716
发表于 2006-9-15 10:49:00 | 显示全部楼层

Re:请教一下在openGL中怎样实现单幅图像的滚动效果?谢谢

Use the TextureMatrix to translate texture

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2006-9-15 17:53:00 | 显示全部楼层

用 timeGetTime(); 函数来计算时间 float变量 time

然后用
glTexCoord2f ( time ,  0. 0f) ; glVertex3f ( - 1. 1f ,- 1. 1f , 0. 0f) ;

不是更好吗?

95

主题

1089

帖子

3301

积分

论坛元老

Rank: 8Rank: 8

积分
3301
QQ
发表于 2006-9-18 09:29:00 | 显示全部楼层

Re: 请教一下在openGL中怎样实现单幅图像的滚动效果?谢

        case WM_CREATE:
                ::SetTimer(hWnd,1,1000,NULL);
                break;
case WM_TIMER:
roll + = 0. 002f ; / / 增加roll 变量
if (roll > 1. 0f) { roll - = 1. 0f ; } / / roll 是否超过1. 0 , 超过1. 0 ,则减1. 0
break;
---------------

5

主题

12

帖子

12

积分

新手上路

Rank: 1

积分
12
QQ
 楼主| 发表于 2006-9-20 16:35:00 | 显示全部楼层

Re: 请教一下在openGL中怎样实现单幅图像的滚动效果?谢

非常感谢各位:) [em20]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-25 11:33

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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