首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

【OpenGL】请问怎么实现OpenGL背景贴图?

2012-09-12 
【OpenGL】请教如何实现OpenGL背景贴图??OpenGL背景都是默认黑色的,如何实现OpenGL背景贴图哪??要求:BMP图片

【OpenGL】请教如何实现OpenGL背景贴图??
OpenGL背景都是默认黑色的,如何实现OpenGL背景贴图哪??

要求:BMP图片实现。。
1.背景图能实现,随窗口大小变化。
2.背景图永远保持静态状态,不随3D的变化而变化。

[解决办法]
有同一个问题。。。
[解决办法]
你直接用glDrawpixels()函数进行绘图不得行了吗?

C/C++ code
glMatrixMode(GL_PROJECTION);glPushMatrix();glLoadIdentity();gluOrtho2D(0,0,width,height);glMatrixMode(GL_MODELVIEW);glPushMatrix();glLoadIdentity();glRasterPos2i(0,0);glPushAttrib(GL_PIXEL_MODE_BIT);glPixelZoom((GLfloat)width/(GLfloat)image_width,(GLfloat)height/(GLfloat)image_height);glDrawPixels(image_width,image_height,GL_RGBA,GL_UNSIGNED_BYTE,image_data);glPopAttrib(GL_PIXEL_MODE_BIT);glMatrixMode(GL_PROJECTION);glPopMatrix();glMatrixMode(GL_MODELVIEW);glPopMatrix();//do something as you wanna do
[解决办法]
1、什么叫不失真? 既然图像要随窗口大小变化,就需要拉伸,失真是必然的,除非使用循环贴图。
2、实现步骤大致如下。

(1)、使用bmp创建纹理,mipmap可以解决缩小时的失真问题
(2)、设置正交投影矩阵(透视投影也行,不过要恰好填满窗口比较麻烦)
(3)、绑定相应纹理,绘制一个填满窗口的矩形(纹理可以是拉伸或者循环,需要时根据需求设置参数)
(4)、清空深度缓存
(5)、正常流程,渲染其他对象

热点排行