//glDepthFunc(GL_LESS);
 //glEnable(GL_DEPTH_TEST);///关掉深度测试,否则没效果,原因是后画的物体通不过测试,当然也就不能混合了
    glDepthRange(0.0, 1.0);
 glClearDepth(1.0);
 
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glClearColor(0.0, 0.0, 0.0, 1.0);
  
    //glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
 
    AUX_RGBImageRec *textureImage[1];
    textureImage[0] = auxDIBImageLoadA(TEXT("D:/aa.bmp"));//辅助函数,用来读入纹理图

glBlendFunc(GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA);//打开混合测试函数
 glColor4f(1.0, 0.0, 0.0, 0.7);
 glEnable(GL_BLEND);

GLuint texture[1];
    glEnable(GL_TEXTURE_2D);
 glGenTextures(1, &texture[0]);
 glBindTexture(GL_TEXTURE_2D, texture[0]);

glTexParameteri(GL_TEXTURE, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
 glTexParameteri(GL_TEXTURE, GL_TEXTURE_MAG_FILTER,GL_LINEAR);
    gluBuild2DMipmaps(GL_TEXTURE_2D, 3, textureImage[0]->sizeX, textureImage[0]->sizeY, GL_RGB, GL_UNSIGNED_BYTE, textureImage[0]->data);注意把nehe里面的生成纹理的函数换成glubuild2DMipmaps()

glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);

glBindTexture(GL_TEXTURE_2D, texture[0]);
    glMatrixMode(GL_MODELVIEW);
 glLoadIdentity();
 //glRotatef(num * 30, 10.0, 10.0, 10.0);//旋转纹理
 glBegin(GL_QUADS);
     glTexCoord2f(0.0f, 0.0f); glVertex3f(-100.0f, -100.0f,  100.0f);//0 4 // 纹理和四边形的左下
  glTexCoord2f(1.0f, 0.0f); glVertex3f( 100.0f, -100.0f,  100.0f);//1 5 // 纹理和四边形的右下
  glTexCoord2f(1.0f, 1.0f); glVertex3f( 100.0f,  100.0f,  100.0f);//2 6 // 纹理和四边形的右上
  glTexCoord2f(0.0f, 1.0f); glVertex3f(-100.0f,  100.0f,  100.0f);//3 7 // 纹理和四边形的左上

glTexCoord2f(0.0, 0.0); glVertex3f(-10.0, -10.0, 30.0);//4
  glTexCoord2f(1.0, 0.0); glVertex3f(10.0, -10.0, 30.0);//5
  glTexCoord2f(1.0, 1.0); glVertex3f(10.0, 10.0, 30.0);//6
  glTexCoord2f(0.0, 1.0); glVertex3f(-10.0, 10.0, 30.0);//7

glTexCoord2f(0.0, 0.0); glVertex3f(-10.0f, -10.0f,  10.0f);
  glTexCoord2f(1.0, 0.0); glVertex3f( 10.0f, -10.0f,  10.0f);
        glTexCoord2f(1.0, 1.0); glVertex3f(-10.0, -10.0, 30.0);
  glTexCoord2f(0.0, 1.0); glVertex3f(10.0, -10.0, 30.0);
 glEnd();

glFlush(); 
 glDisable(GL_TEXTURE_2D);

//----------------------------
测试了一下nehe教程里面的混合这一节,有两个地方需要注意,首先要关掉深度测试,如果不关掉深度测试,可能后画的物体直接通不过,就不能画到屏幕上,当然也就不能产生混合效果了
第二个就是,要用gluBuild2DMipmaps()这个函数,原教程的产生纹理的函数好像已经被丢弃了,不能使用

转载于:https://www.cnblogs.com/lizhengjin/archive/2009/07/22/1528860.html

nehe教程混合这一节需要注意的两个地方相关推荐

  1. oracle sql 调用自定义函数_PSCAD入门教程(第7节):怎样调用fortran编写的自定义函数?(附模型)...

    PSCAD入门教程(第7节):怎样调用fortran编写的自定义函数?(附模型)​mp.weixin.qq.com https://www.zhihu.com/video/12422083467175 ...

  2. Plecs电力电子仿真专业教程-第一季 第二节 Plecs功能介绍

    Plecs电力电子仿真专业教程-第一季 目录 第一章 Plecs是什么 第二节 Plecs 的功能介绍 第三节 Plecs界面介绍 补充课程 Plecs的安装教程与软件下载 Plecs电力电子仿真专业 ...

  3. NeHe教程Qt实现——lesson08

    NeHe 系列教程之八: 混合 英文教程地址:lesson08 本课将在第七课的基础上添加颜色混合的代码: namespace { ... bool blend; // Blending OFF/ON ...

  4. NeHe教程Qt实现——lesson09

    NeHe 系列教程之九: 在3D空间中移动位图 英文教程地址:lesson09 本课基于第一课的代码, 利用颜色混合的方法,将一个黑白纹理与随机颜色进行混合,产生绚丽的效果. 首先是定义相关变量和数据 ...

  5. NeHe教程Qt实现——lesson06

    NeHe 系列教程之六: 纹理映射 英文教程地址:lesson06 本课以第一课的代码为基础,演示了加载纹理的过程. 首先给出的是绘制几何对象和加载纹理坐标的代码 namespace {GLfloat ...

  6. NeHe教程Qt实现——lesson15

    NeHe 系列教程之十四:纹理 轮廓字体 英文教程地址:lesson15 本课展示如何创建和显示纹理轮廓字体, 代码基于第一课. 首先是字体库的创建: namespace {#define USE_D ...

  7. NeHe教程Qt实现——lesson01

    NeHe 系列教程之一: 创建一个OpenGL 窗口 英文教程地址: lesson01 在Qt的实现中, 我们主要依赖QGLWidget类, 我们主要重载三个重要方法 :     void initi ...

  8. NeHe教程Qt实现——lesson10

    NeHe 系列教程之十:在3D空间中漫游 英文教程地址:lesson10 本课演示了从外部文件中加载数据构建3D模型的实例,代码基于第一课. 首先是3D模型的数据结构定义: namespace {bo ...

  9. NeHe教程Qt实现——lesson07

    NeHe 系列教程之七: 光照及纹理过滤 英文教程地址:lesson07 本课将以第一课的代码为基础, 实现光照效果. 首先是对象定义与纹理加载的代码: namespace { bool light; ...

最新文章

  1. WinSock网络编程基础(3)server
  2. fullcaledar日历插件
  3. ie8 script445: 对象不支持此操作_经验总结:上海增值税认证勾选安装和操作步骤...
  4. java 列表框简单案例
  5. ML之NB:基于NB朴素贝叶斯算法训练20类新闻文本数据集进行多分类预测
  6. c语言结构体与共同体课件,《结构体与共同体》PPT课件.ppt
  7. java中factory方法_Java的23中设计模式--工厂方法模式(Factory Method)
  8. Hadoop安装之JDK在Centos虚拟机中安装
  9. centos网络隔一段时间就断_潮汕青年说 | 瞎吃小哥:隔着屏幕也要把你看馋的顶配版吃货...
  10. vue3中v-model的重大更新
  11. mysql 查看二进制_查看mysql二进制文件(binlog文件)
  12. 文字转语音真人发声免费的有哪些?文字转语音有这两款软件就够了
  13. 同步助手java_八大平台全覆盖 QQ同步助手Java版发布
  14. 摄影光学与镜头pdf_摄影摄像基础pdf
  15. java 检测表情符号_java 过滤表情符号
  16. 春招+秋招核心面试问题
  17. iphone各个系列手机最新的尺寸资料(更新到iphone6s)
  18. Python 百天读书笔记 | 字符串和常用数据结构 7day
  19. 【iconfont图标】vue引入并使用阿里巴巴iconfont图标流程【uniapp引入iconfont真机APP不显示问题解决,移动端引入报错解决】
  20. camera中文版软件 ip_Synergy下载|Synergy 1.8.4 中文版

热门文章

  1. python batch_size_python 實現動態 batch size,多張圖片如何堆疊轉成指針
  2. C语言的特点与创建的基本步骤是什么
  3. 对单片机C语言的一些误用和总结
  4. http协议下需要服务器推送吗,HTTP/2.0 服务器推送实现
  5. php gd png透明,调整PNG大小并将其放在PHP / GD中较大的透明背景上?
  6. python 用while输出数字金字塔_用Python实现一个Dual Thrust数字货币量化交易策略
  7. Sublime删除所有包含特定值的行
  8. C++ vector求均值和方差
  9. PCM复用设备的安装和使用注意事项
  10. [渝粤教育] 中国地质大学 马克思主义基本原理 复习题