游戏开发论坛

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

难题求教 各位高手近来看看 急!!!!!

[复制链接]

5

主题

9

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2006-9-22 09:48:00 | 显示全部楼层 |阅读模式
各位高手麻烦看一下  谢谢
我现在在做一个图形的东西
我想用OPENGL的前后缓存来提高效率
我现在先在后缓存中画上一幅图象,这个图象实际超出窗口的大小,相当于 实际视窗的大小只是我在后缓存中所画图象的1/9,类似于将一个图象分成相等的9块,而窗口的大小只是这个图象的中间那一小块.
glViewport( 0,0,fWidth,fHeight );
glMatrixMode( GL_PROJECTION );
glLoadIdentity( );
gluOrtho2D(-3*fWidth/2, 3*fWidth/2, -3*fHeight/2, 3*fHeight/2 );
glMatrixMode (GL_MODELVIEW);
glLoadIdentity ();  
glClear (GL_DEPTH_BUFFER_BIT);
glDrawBuffer(GL_BACK);
glClear(GL_COLOR_BUFFER_BIT);
.......(画图代码)
glFinish();

接着,我想在前缓存中拷贝后缓存中图象的任意一块(不是交换缓存,由于具体的细节要求,这里我需要不断地拷贝后缓存中图象中每个小部分的图象)
但现在的问题是
由于我将整个图象(9倍于窗口的图象)整个放在后缓存  当我拷贝到前缓存的时候  它会自动缩小9倍    实际上我想要的是某一块的原始大小   但我用GLPIXELZOOM放大后  由于是象素放大  效果很差   故想请问高手  如何解决

8

主题

716

帖子

716

积分

高级会员

Rank: 4

积分
716
发表于 2006-9-22 11:27:00 | 显示全部楼层

Re:难题求教 各位高手近来看看 急!!!!!

你还是在用2D的思维模式在用3D
我建议的方法:
1. 将此图切成多张512x512的小图
2. 生成网络并各自贴上小图以看上去是原图为目标
3. 移动摄像机实现2D中圈轴的效果

5

主题

9

帖子

9

积分

新手上路

Rank: 1

积分
9
 楼主| 发表于 2006-9-22 12:47:00 | 显示全部楼层

Re:难题求教 各位高手近来看看 急!!!!!

谢谢你的回答
但我没太明白你的意思  不好意思
我这里没有用3D啊   我只是纯2D的东西

你说的切分成多个小图   那存放在哪里呢
我现在用的是WIN32  似乎不支持多缓存的

麻烦你说的能更细致些  谢谢你  麻烦了

8

主题

716

帖子

716

积分

高级会员

Rank: 4

积分
716
发表于 2006-9-22 13:09:00 | 显示全部楼层

Re:难题求教 各位高手近来看看 急!!!!!

如果项目不是很紧的话,你目前最主要的任务是去学习OpenGL红宝书
既然你认为OpenGL是2D的,那么我建议你不如直接用DDraw去做还来得直接和方便一些

5

主题

9

帖子

9

积分

新手上路

Rank: 1

积分
9
 楼主| 发表于 2006-9-22 13:51:00 | 显示全部楼层

Re:难题求教 各位高手近来看看 急!!!!!

我不是认为OPENGL是2D的
但OPENGL是可以做2D的
我目前需要做的就是2D这个部分的

8

主题

716

帖子

716

积分

高级会员

Rank: 4

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

Re:难题求教 各位高手近来看看 急!!!!!

因为3D中要求图片的长宽为2的幂,而且你需要显示的图片过大
如果直接载入像是5k x 5k的图片时,可能会在一些显卡上出问题,具体大小可以去查caps
所以我建议你选择一个安全的size比如256或512来拼图

在用OpenGL实现2D效果时其实是很简单的
简单到你不需要去操作front/back buffer... ...
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-25 12:43

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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