nehe教程混合这一节需要注意的两个地方
//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教程混合这一节需要注意的两个地方相关推荐
- oracle sql 调用自定义函数_PSCAD入门教程(第7节):怎样调用fortran编写的自定义函数?(附模型)...
PSCAD入门教程(第7节):怎样调用fortran编写的自定义函数?(附模型)mp.weixin.qq.com https://www.zhihu.com/video/12422083467175 ...
- Plecs电力电子仿真专业教程-第一季 第二节 Plecs功能介绍
Plecs电力电子仿真专业教程-第一季 目录 第一章 Plecs是什么 第二节 Plecs 的功能介绍 第三节 Plecs界面介绍 补充课程 Plecs的安装教程与软件下载 Plecs电力电子仿真专业 ...
- NeHe教程Qt实现——lesson08
NeHe 系列教程之八: 混合 英文教程地址:lesson08 本课将在第七课的基础上添加颜色混合的代码: namespace { ... bool blend; // Blending OFF/ON ...
- NeHe教程Qt实现——lesson09
NeHe 系列教程之九: 在3D空间中移动位图 英文教程地址:lesson09 本课基于第一课的代码, 利用颜色混合的方法,将一个黑白纹理与随机颜色进行混合,产生绚丽的效果. 首先是定义相关变量和数据 ...
- NeHe教程Qt实现——lesson06
NeHe 系列教程之六: 纹理映射 英文教程地址:lesson06 本课以第一课的代码为基础,演示了加载纹理的过程. 首先给出的是绘制几何对象和加载纹理坐标的代码 namespace {GLfloat ...
- NeHe教程Qt实现——lesson15
NeHe 系列教程之十四:纹理 轮廓字体 英文教程地址:lesson15 本课展示如何创建和显示纹理轮廓字体, 代码基于第一课. 首先是字体库的创建: namespace {#define USE_D ...
- NeHe教程Qt实现——lesson01
NeHe 系列教程之一: 创建一个OpenGL 窗口 英文教程地址: lesson01 在Qt的实现中, 我们主要依赖QGLWidget类, 我们主要重载三个重要方法 : void initi ...
- NeHe教程Qt实现——lesson10
NeHe 系列教程之十:在3D空间中漫游 英文教程地址:lesson10 本课演示了从外部文件中加载数据构建3D模型的实例,代码基于第一课. 首先是3D模型的数据结构定义: namespace {bo ...
- NeHe教程Qt实现——lesson07
NeHe 系列教程之七: 光照及纹理过滤 英文教程地址:lesson07 本课将以第一课的代码为基础, 实现光照效果. 首先是对象定义与纹理加载的代码: namespace { bool light; ...
最新文章
- WinSock网络编程基础(3)server
- fullcaledar日历插件
- ie8 script445: 对象不支持此操作_经验总结:上海增值税认证勾选安装和操作步骤...
- java 列表框简单案例
- ML之NB:基于NB朴素贝叶斯算法训练20类新闻文本数据集进行多分类预测
- c语言结构体与共同体课件,《结构体与共同体》PPT课件.ppt
- java中factory方法_Java的23中设计模式--工厂方法模式(Factory Method)
- Hadoop安装之JDK在Centos虚拟机中安装
- centos网络隔一段时间就断_潮汕青年说 | 瞎吃小哥:隔着屏幕也要把你看馋的顶配版吃货...
- vue3中v-model的重大更新
- mysql 查看二进制_查看mysql二进制文件(binlog文件)
- 文字转语音真人发声免费的有哪些?文字转语音有这两款软件就够了
- 同步助手java_八大平台全覆盖 QQ同步助手Java版发布
- 摄影光学与镜头pdf_摄影摄像基础pdf
- java 检测表情符号_java 过滤表情符号
- 春招+秋招核心面试问题
- iphone各个系列手机最新的尺寸资料(更新到iphone6s)
- Python 百天读书笔记 | 字符串和常用数据结构 7day
- 【iconfont图标】vue引入并使用阿里巴巴iconfont图标流程【uniapp引入iconfont真机APP不显示问题解决,移动端引入报错解决】
- camera中文版软件 ip_Synergy下载|Synergy 1.8.4 中文版
热门文章
- python batch_size_python 實現動態 batch size,多張圖片如何堆疊轉成指針
- C语言的特点与创建的基本步骤是什么
- 对单片机C语言的一些误用和总结
- http协议下需要服务器推送吗,HTTP/2.0 服务器推送实现
- php gd png透明,调整PNG大小并将其放在PHP / GD中较大的透明背景上?
- python 用while输出数字金字塔_用Python实现一个Dual Thrust数字货币量化交易策略
- Sublime删除所有包含特定值的行
- C++ vector求均值和方差
- PCM复用设备的安装和使用注意事项
- [渝粤教育] 中国地质大学 马克思主义基本原理 复习题