【OpenGL】学习笔记之常用函数(二)

glutInitDisplayMode

函数功能:设置初始显示模式。

函数原型:void glutInitDisplayMode(unsigned int mode);


对应宏定义
意义
GLUT_RGB
0x0000
指定  RGB 颜色模式的窗口
GLUT_RGBA
0x0000
指定  RGBA 颜色模式的窗口
GLUT_INDEX
0x0001
指定颜色索引模式的窗口
GLUT_SINGLE
0x0000
指定单缓存窗口
GLUT_DOUBLE
0x0002
指定双缓存窗口
GLUT_ACCUM
0x0004
窗口使用累加缓存
GLUT_ALPHA
0x0008
窗口的颜色分量包含 alpha 值
GLUT_DEPTH
0x0010
窗口使用深度缓存
GLUT_STENCIL
0x0020
窗口使用模板缓存
GLUT_MULTISAMPLE
0x0080
指定支持多样本功能的窗口
GLUT_STEREO
0x0100
指定立体窗口
GLUT_LUMINANCE
0x0200
窗口使用亮度颜色模型


glViewport

glViewport是OpenGL中的一个函数。计算机图形学中,在屏幕上打开窗口的任务是由窗口系统,而不是OpenGL负责的。

glViewport(GLint x,GLint y,GLsizei width,GLsizei height)为其函数原型。

X,Y————以像素为单位,指定了视口的左下角(在第一象限内,以(0,0)为原点的)位置。

width,height————表示这个视口矩形的宽度和高度,根据窗口的实时变化重绘窗口。

glClear

函数原型

      void glClear(GLbitfield mask);

参数说明

      GLbitfield:可以使用 | 运算符组合不同的缓冲标志位,表明需要清除的缓冲,例如glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)表示要清除颜色缓冲以及深度缓冲,可以使用以下标志位

  •       GL_COLOR_BUFFER_BIT:    当前可写的颜色缓冲
  •       GL_DEPTH_BUFFER_BIT:    深度缓冲
  •       GL_ACCUM_BUFFER_BIT:   累积缓冲
  •   GL_STENCIL_BUFFER_BIT: 模板缓冲

  函数说明   

   glClear()函数的作用是用当前缓冲区清除值,也就是glClearColor或者glClearDepth、glClearIndex、glClearStencil、glClearAccum等函数所指定的值来清除指定的缓冲区,也可以使用glDrawBuffer一次清除多个颜色缓存。比如:

  glClearColor(0.0,0.0,0.0,0.0);

  glClear(GL_COLOR_BUFFER_BIT);

  第一条语句表示清除颜色设为黑色,第二条语句表示实际完成了把整个窗口清除为黑色的任务,glClear()的唯一参数表示需要被清除的缓冲区。

      像素检验、裁剪检验、抖动和缓存的写屏蔽都会影响glClear的操作,其中,裁剪范围限制了清除的区域,而glClear命令还会忽略alpha函数、融合函数、逻辑操作、模板、纹理映射和z缓存;



glReadPixels  - 从 帧缓存 里读取一个像素块
void glReadPixels(GLint x,GLint y,GLsizesi width,GLsizei height,
GLenum format,GLenum type,GLvoid *pixel);
函数参数(x, y)定义图像区域左下角点的坐标,width和height分别是图像的高度和宽度,*pixel是一个指针,指向存储图像数据的数组。参数format指出所读象素数据元素的格式(索引值或R、G、B、A值,如下面表所示),而参数type指出每个元素的数据类型(也见下面表)。
写入象素数据:
void glDrawPixels(GLsizesi width,GLsizei height,GLenum format,
GLenum type,GLvoid *pixel);
函数参数format和type与glReadPixels()有相同的意义,pixel指向的数组包含所要画的象素数据。注意,调用这个函数前必须先设置当前光栅位置,若当前光栅位置无效,则给出该函数时不画任何图形,并且当前光栅位置仍然保持无效。
+++++++++++ 像素格式表++++++++++++++++++++++
GL_INDEX 单个颜色索引
GL_RGB 先是红色分量,再是绿色分量,然后是蓝色分量
GL_RED 单个红色分量
GL_GREEN 单个绿色分量
GL_BLUE 单个蓝色分量
GL_ALPHA 单个Alpha值
GL_LUMINANCE_ALPHA 先是亮度分量,然后是Alpha值
GL_STENCIL_INDEX 单个的模板索引
GL_DEPTH_COMPONENT 单个深度分量
++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++ 数据类型+++++++++++++++++++
GL_UNSIGNED_BYTE 无符号的8位整数
GL_BYTE 8位整数
GL_BITMAP 无符号的8位整数数组中的单个数位
GL_UNSIGNED_SHORT 无符号的16位整数
GL_SHORT 16位整数
GL_UNSIGNED_INT 无符号的32位整数
GL_INT 32位整数
GL_FLOAT 单精度浮点数
+++++++++++++++++++++++++++++++++++++++
图像的每个元素按上面表给出的数据类型存储。若元素表示连续的值,如红、绿、蓝或亮度分量,每个值都按比例放缩使之适合于可用的位数。例如,红色分量是0.0到1.0之 间的浮点值。若它需要放到无符号单字节整数中,也仅有8位精度保存下来,其他 无符号整数类型同理。对于有符号的数据类型还要少一位,例如颜色索引存到有符号的8位整数中,它的第一位被0xfe屏蔽掉了(即这个掩码包含7个1)。若类型是GL_FLOAT,索引值简单地转化成单精度浮点值,例如索引17转化成17.0,同理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值