OpenGL 支持两种颜色模式:一种是RGBA,另一种是颜色索引模式

1.RGBA 颜色

 R : 红色分量G : 绿色分量B : 蓝色分量A : aphpa 透明度glColor* 函数可以用于设置颜色void glColor3f(GLfloat red,GLfloat green,GLfloat blue);void glColor4f(GLfloat red,GLfloat green,GLfloat blue,GLfloat alpha);
void myDisplay(void)
{glClear(GL_COLOR_BUFFER_BIT);glColor3f(0.0f,1.0f,1.0f);glRectf(-0.5,-0.5,0.5,0.5);glFlush();
}
glColor 系列函数,在参数类型不同时候,表述最大颜色值也不同
f、g 为后缀, 1.0 表示最大值
b 为后缀 127 为最大值
ub 后缀 255 为最大值
s  后缀 32767 表示最大值
us 后缀 65535 表示最大值

2. 索引颜色

选择颜色
glIndex* 系列函数可以在颜色表中选择颜色 常用glIndexi
void glIndexi(GLint c);设置颜色表
OpenGL 没有提供设置颜色的办法,颜色设置需要操作系统的支持
这里使用OpenGL工具包 aux, vs 自带的
#include <windows.h>
#include <GL/gl.h>
#include <GL/glaux.h>
#include <math.h>// 依赖的静态库
#pragma comment (lib, "opengl32.lib")
#pragma comment (lib, "glaux.lib")const GLdouble Pi = 3.1415926536;void myDisplay(void)
{int i;for(i=0; i<8; ++i){auxSetOneColor(i, (float)(i&0x04), (float)(i&0x02), (float)(i&0x01));}glShadeModel(GL_FLAT);glClear(GL_COLOR_BUFFER_BIT);glBegin(GL_TRIANGLE_FAN);glVertex2f(0.0f, 0.0f);for(i=0; i<=8; ++i){glIndexi(i);glVertex2f(cos(i*Pi/4), sin(i*Pi/4));}glEnd();glFlush();
}
int main(int argc,char *argv[])
{auxInitDisplayMode(AUX_SINGLE|AUX_INDEX);auxInitPosition(0, 0, 400, 400);auxInitWindow(L"");myDisplay();Sleep(10 * 1000);return 0;
}

结果如图:

3. 清除颜色

glClear(GL_COLOR_BUFFER_BIT);意思是把屏幕上的颜色清空

4. 指定颜色模型

glShadeModel 的使用方法:
WINGDIAPI void APIENTRY glShadeModel(GLenum mode);
glShadeModel(GL_SMOOTH); // 平滑方式,这也是默认方式
glShadeModel(GL_FLAT); // 单色方式

OpenGL-color相关推荐

  1. Ubuntu下安装OpenGL/Glut库

    http://www.libaqiang.com/?p=78330 1.Ubuntu下安装OpenGL/Glut库 OpenGL(全写Open Graphics Library)是个定义了一个跨编程语 ...

  2. OpenGL学习笔记:颜色(RGBA颜色,颜色索引模式)

    OpenGL支持两种颜色模式:一种是RGBA,一种是颜色索引模式. 无论哪种颜色模式,计算机都必须为每一个像素保存一些数据. 不同的是,RGBA模式中,数据直接就代表了颜色:而颜色索引模式中,数据代表 ...

  3. python display方法_在Python中縮放和顯示圖像的最快方法是什么?

    6 The fastest way to display 30x400 data points is to: 顯示30x400數據點的最快方法是: Use OpenGL color arrays If ...

  4. VS2012下基于Glut 绘制立方体示例程序:

    使用glBegin(GL_QUADS)绘制六个侧面来组成一个立方体:并使用glFrontFace(GL_CW).glFrontFace(GL_CCW)来设置每个面的正面:使用glColor3ub来设置 ...

  5. gst-inspect-1.0汇总自用

    gst-inspact-1.0列表(完善中) $ gst-inspect-1.0  cluttergst3:  clutterautovideosink: Generic bin qmlgl:  qm ...

  6. 有趣的matlab编程

    获取更多好玩.有趣的matlab编程请关注微信公众号:好玩的matlab 点击此链接获取更多好玩的源码 目录 1.绘三维爱心 2.绘制爱心 3.绘制爱心 4.绘制玫瑰 5.绘制蝴蝶 6.随机生成数字 ...

  7. V-REP笔记:视觉传感器的使用

    文章目录 重要属性介绍 参数 视场角设置 Packet1 is blank Vision Sensor数据在场景中的显示 关于Image processing and triggering的问题 Vi ...

  8. Part I A Simple game of air hockey(空气曲棍球)-Chapter2 Defining Vertices and Shaders

    上一章节简单介绍了OpenGL ES 2.0开发的简单入门知识,实际上你学没有真正进入OpenGL ES 2.0的世界,从这一章开始将会一步步的带着你开始你的OpenGL ES 2.0实战之旅,这里最 ...

  9. 用唯一的颜色id编号实现OpenGL选择功能(OpenGL Selection Using Unique Color IDs )

    OpenGL Selection Using Unique Color IDs 用唯一的颜色id编号实现OpenGL选择功能 引言 有好几种方式可以实现物体拾取. 利用 OpenGL你可以利用专用的选 ...

  10. Android OpenGL ES 开发教程(20):颜色Color

    OpenGL ES 支持的颜色格式为RGBA模式(红,绿,蓝,透明度).颜色的定义通常使用Hex格式0xFF00FF 或十进制格式(255,0,255), 在OpenGL 中却是使用0-1之间的浮点数 ...

最新文章

  1. 短视频个性化Push工程精进之路
  2. Android 数据库基本操作-2
  3. cloud foundry部署报错TypeError: can't convert Hash into String
  4. Python中if条件判断语句的用法!
  5. Git简单基本操作指令集合
  6. 《终身成长》读书笔记(part4)--创造性并不是出自灵感的神奇行为,而是努力工作和倾情奉献的结果
  7. eShopOnContainers 知多少[11]:服务间通信之gRPC
  8. 每日一题(27)—— define定义一个宏表明1年中有多少秒
  9. (61)UART外设驱动接收驱动(六)(第13天)
  10. 体力劳动和脑力劳动有什么区别?
  11. JS编程:查找数组元素位置
  12. Iframe的allow属性生效时机
  13. 计算机用户个人设置总是重启,联想电脑总是自动重启怎么回事
  14. 多边形的扫描转换算法 c语言,C++程序例题:多边形扫描转换算法
  15. 网络安全-使用PGP实现电子邮件安全
  16. tesseract 学习笔记 psm+限定识别内容提升识别精度
  17. Android 10.0去掉后台启动Service的限制
  18. Android资源管理中的SharedLibrary和Dynamic Reference-------之AssetManager的处理(四)
  19. iNFTnews丨模因、神话和NFT是如何建立文化认同的?
  20. 对象存储COS-数据处理能力升级!“组合拳”助力存储新时代!

热门文章

  1. 论文笔记:Self-Attention Generative Adversarial Networks
  2. Python对html解析(BeautifulSoup)
  3. LaTex字体加粗的方法
  4. 结构体与指针(使用malloc)
  5. ChatGPT超越经典,重新定义《青花瓷》的永恒之美!
  6. Rex: Replication at the Speed of Multi-core
  7. class 类文件结构与字节码指令
  8. linux ps 脚本下载,适用于GNU/Linux的Photoshop CC v19安装程序脚本
  9. 物联网系统设计工具箱——Dashboard框架Dashing
  10. tldr ! 比 man 简单好用的命令手册