`
linshenqi
  • 浏览: 33986 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

在OpenGL中使用纹理(2D)

阅读更多
搞OpenGL好几天了,现在开始写点东西。有问题请参考nehe的opengl教程。

1.载入纹理图片
FILE *File;
File=fopen(Filename,"r");  //打开纹理图片,Filename为文件路径



2.设置纹理
AUX_RGBImageRec *TextureImage[1];  //定义缓存
memset(TextureImage,0,sizeof(void *)*1);  //分配空间
if(TextureImage[0] = &auxDIBImageLoad(Filename)) //载入纹理成功
{
    glGenTextures(1, &texture[0]);  //创建纹理
     glBindTexture(GL_TEXTURE_2D, texture[0]);  //绑定纹理到创建的空间
     glTexImage2D(GL_TEXTURE_2D, 0, 3, TextureImage[0]->sizeX,TextureImage[0]->sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, TextureImage[0]->data);  //载入纹理
    glTexParameter(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);  //设置纹理过滤模式 
    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
    if (TextureImage[0])  //释放纹理缓存空间		
    {
	if (TextureImage[0]->data)			
	{
	   free(TextureImage[0]->data);			
         }
         free(TextureImage[0]);				
    }
}


3.使用纹理
glLoadIdentity();
glTranslatef(0.0f,0.0f,-5.0f);
glBindTexture(GL_TEXTURE_2D, texture[0]);  //设置纹理,此步必须在glbegin之前
glBegin(GL_QUADS);  //画一个矩形
glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f, -1.0f,  1.0f); //纹理的范围从0.0~1.0,分别于矩形的四角对应
glTexCoord2f(1.0f, 0.0f); glVertex3f( 1.0f, -1.0f,  1.0f);
glTexCoord2f(1.0f, 1.0f); glVertex3f( 1.0f,  1.0f,  1.0f);
glTexCoord2f(0.0f, 1.0f); glVertex3f(-1.0f,  1.0f,  1.0f);
glEnd();


最后别忘了在winmain中加入glEnable(GL_TEXTURE_2D);作用是开启纹理。当然还有头文件#include"stdio.h"
分享到:
评论

相关推荐

    openGL中二维纹理的生成

    该程序给出了openGL中二位纹理生成代码,对于初学者来说理解openGL中纹理函数有帮助。

    Android平台OpenGLES生成使用Mipmap纹理

    该案例代码为Android 平台OpenGL ES实现...1、在Android平台,使用OpenGL ES通过加载灰度图,构建山地图形渲染效果; 2、使用 OpenGLES 生成与使用Mipmap纹理,构建远处模糊,近处清晰的效果。 具体案例文章讲解请见: ...

    罗大柚OpenGL系列教程_2D纹理渲染文字

    通过2D纹理渲染文字,这非常适用来实现HUD, 这份demo依旧是在GLKit框架下实现

    qt opengl 2d纹理到球面

    看书过后,用qt实现的一个把2维纹理贴到球面的工程,其中还包含混合光,采用opengl es 3.0;初学者可以学习下

    Android平台OpenGLES3将GL-TEXTURE-2D纹理id渲染到ImageReader提供的Surface上

    1、OpenGLES3中加载GL_TEXTURE_2D纹理,生成纹理ID; 2、通过EGL构建EGLDisplay虚拟屏幕,并绑定ImageReader提供的Surface; 3、在EGL线程中,渲染GL_TEXTURE_2D对应的纹理图形; 4、在EGL线程中,完成渲染后,通过...

    openGL法线贴图混合纹理贴图以达到更好的物体表面细节

    openGL法线贴图混合纹理贴图以达到更好的物体表面细节 1.凹凸贴图是使用数学公式产生物体表面凹凸特效 2.凹凸贴图的一种替代方法是使用查找表来替换法向量 3.一种使用查找表的常见方法叫作法线贴图。 4.法线贴图使用...

    opengl.zip(2D含变换,纹理)

    2D的画面,可以旋转,位移,变换颜色,交换纹理图片

    17Text_Texture_2D.rar_opengl 2d

    使用VisualC++ Win32应用程序开发的一个OpenGL程序,用2D的纹理图实现字符的显示。

    opengl+vc写的太阳系演示源代码,包含三维场景建模,复合空间变换,太阳光源设置,纹理贴图等方法

    解释一下标题:复合空间...纹理贴图指如何把平面图片贴入到空间实体上。本代码结构简单,代码量少,适合新手快速学习原理,以及上手。 如果出现编译后纹理无法加载,请将代码包内的图片纹理文件夹拷贝至程序同一目录。

    Nehe的OpenGL教程电子书

    在OpenGL中使用FreeType库 使用FreeType库可以创建非常好看的反走样的字体,记住暴雪公司就是使用这个库的,就是那个做魔兽世界的。尝试一下吧,我只告诉你了基本的使用方式,你可以走的更远。 44.3D 光晕 当...

    OpenGL ES:Texture2D和两个的强大功能

    如何调整Texture2D对象以允许OpenGL ES项目中的任何大小的纹理。

    OpenGL编程指南(原书第7版)中文扫描版.pdf.rar

    OpenGL是一种功能强大的软件接口,既可以用于生成高质量的计算机图像,也可以用于编写使用2d和3d物体、位图和彩色图像的交互式应用程序。 《OpenGL编程指南(原书第7版)》对OpenGL以及OpenGL实用函数库进行了全面...

    PhoenixCore:使用OpenGL构建的实验性2D优化渲染系统

    PhoenixCore是基于OpenGL的实验性2D渲染框架,用C ++编写。 这是一个相当抽象的库,用于渲染2D几何。 PhoenixCore的功能包括: 设置OpenGL上下文。 处理用户输入(键盘,鼠标)。 管理OpenGL上下文(交换缓冲区等...

    opengl 设计魔方

    [csgl doc rar] OPENGL在C#下使用的开发说明 很详细 很清楚 [[emuch net]opengl rar] opengl mfc框架程序 MFC 面向对象编程 [WcgCube rar] 魔方游戏代码 用visual c++ 写的 欢迎大家来下载啊 我贡献的">[cube rar...

    QT+OPENGL 多线程测试

    本人原创,浅显易懂,QT+OPENGL多线程,采用2D纹理贴图的方式,多线程进行纹理拷贝和渲染。

    OPhone平台2D游戏引擎实现——物理引擎

    而圆形和矩形都是我们在点击屏幕时要释放的物体,前面我们说过,JBox2d中的图形部分在Ophone中不能用,所以我们会专门介绍如何通过Opengl ES来对图形图像进行渲染,另外,该示例中的这些物体都是通过纹理映射来将...

    OPenGL编程书籍

    43.在OpenGL中使用FreeType库 使用FreeType库可以创建非常好看的反走样的字体,记住暴雪公司就是使用这个库的,就是那个做魔兽世界的。尝试一下吧,我只告诉你了基本的使用方式,你可以走的更远。 44.3D 光晕 当...

    Android Opengles 例子

    Android 中使用OpenGL ES进行2D开发(纹理Texture使用) http://blog.csdn.net/fox64194167/article/details/7448491

    OpenGL编程指南(第四版)(中文版)

    OpenGL是一种功能强大的软件接口,用于生成高质量的计算机图像,也可以用于编写使用2D和3D物体、位图和彩色图像的交互性应用程序。 《OPENGL编程指南》对OpenGL以及OpenGL实用函数库进行了全面而又权威的介绍,素有...

    OpenGL 库函数汇总(中文分类)CHM

    目前OpenGL的函数主要包含在3个库中 1.GL 函数库 2.GLU 函数库 3.GLUT 函数库 1.GL 库函数 =================================== 颜色编辑 ------------------- glShadeModel 选择平面明暗模式或光滑明暗...

Global site tag (gtag.js) - Google Analytics