opengl 基本图元颜色变换后显示纹理位图本身的颜色
来源:互联网 发布:如何查看 snmp 端口 编辑:程序博客网 时间:2024/06/08 18:40
如果绘制基本图元时改变了颜色,则以后绘制纹理的颜色也可能会改变.如果想显示纹理本身的颜色,可用glColor3f( 1.0f,1.0f,1.0f);来进行还原.
示例如下:
//绘制基本图元
glDisable( GL_TEXTURE_2D);//禁用纹理映射,以便画基本图形(如三角形)
glColor3f( 1.0f,1.0f,0.0f); // 颜色改成黄色/
glPointSize( 4.0);//设置点的大小(要放在glBegin外)
glBegin( GL_POINTS );
glVertex3f( 5+g_pCamera->Get_Eye().Get_X()+ g_pCamera->Get_LookDir().Get_X()
, g_pCamera->Get_Eye().Get_Y()+ g_pCamera->Get_LookDir().Get_Y(),
g_pCamera->Get_Eye().Get_Z()+g_pCamera->Get_LookDir().Get_Z()); // 左上
glEnd();
glPointSize(1.0);//重设点颜色大小
//绘制纹理位图
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, g_uTexture[0]); // 选择纹理
//下面一行一定要,只有这样才能恢复颜色,即显示位图本身颜色,否则纹理位图的颜色可能会受前面图元颜色的影响
glColor3f( 1.0f,1.0f,1.0f);
glBegin(GL_QUADS);
{
float a= -2;
// 前面
glTexCoord2f(0.0f, 0.0f); glVertex3f(-a, -a, a ); // 纹理和四边形的左下
glTexCoord2f(1.0f, 0.0f); glVertex3f( a, -a, a ); // 纹理和四边形的右下
glTexCoord2f(1.0f, 1.0f); glVertex3f( a, a, a ); // 纹理和四边形的右上
glTexCoord2f(0.0f, 1.0f); glVertex3f(-a, a, a ); // 纹理和四边形的左上
}
glEnd();
- opengl 基本图元颜色变换后显示纹理位图本身的颜色
- OpenGL绘图的基本过程是:清除缓冲区,设置当前颜色,绘制几何图元,输出图形。
- NavigationView侧滑栏Item的Icon不显示本身颜色
- opengl中纹理 颜色怎么共存的问题
- 位图像素的颜色
- 第三讲 基本图元和颜色
- UIImage渲染模式显示图片本身颜色
- html 点击<a>元素后颜色的变换
- 链接的最基本操作---链接颜色的变换
- openGL颜色的改变
- OpenGL 颜色的选择
- 位图显示出现颜色失真(VC)
- OpenGL的几何变换-纹理贴图
- OpenGL的纹理显示-笔记
- OpenGL学习笔记(三)---FreeImage颜色显示错乱的解决方法
- opengl 001 显示一个带背景颜色的窗口
- 不停变换的背景颜色
- 【ActionScript】组件的颜色变换
- 惹恼程序员的十件事(转)
- Objective-C语法快速参考
- mscorlib thrown System.UnauthorizedAccessException
- 利用jbpm制作流程图
- SSH整合步骤
- opengl 基本图元颜色变换后显示纹理位图本身的颜色
- Cohesion-strongly【Microsoft .NET Architecting Applications for the Enterprise】
- innodb的磁盘IO(read-ahead和doublewrite技术)(来自于mysql文档)
- MFC程序(SDI)一开始运行最大化
- 其实Unix很简单
- 各类数据库的jdbc驱动及连接字符串总结
- javascript 中==和===的区别
- 规律生活leo:待续
- wavin flag by k'naan