OpenGL 编程指南笔记——第8章 OpenGL 绘制像素、位图、字体和图像

来源:互联网 发布:淘宝卖家推广方法 编辑:程序博客网 时间:2024/06/03 14:51

内容:

〉定位和绘制位图数据

〉把像素数据(位图和图像)从帧缓冲区读取到内存,或者从内存读取到帧缓冲区

〉把像素数据从一个眼色缓冲区复制到另一格颜色缓冲区,或者复制到同一颜色缓冲区的其他位置

〉图像写入到帧缓冲区时把它放大或缩小

〉控制像素数据格式,并在帧缓冲区中存取数据时执行其他变换

〉使用图像处理子集对像素进行处理

〉使用缓冲区对象存储像素数据

8.1 位图和字体

   glRasterPos  设置当前光栅位置。

   glWindowPos(1.4) 用窗口坐标指定当前光栅位置,而不必把它的x和y坐标通过模型视图和投影矩阵进行变换,也不会被裁剪出视口区域.使我们更容易混合使用2D文本和3D图形,而不必在各种变换状态之间反复切换

  glBitmap 绘制位图

  glColor3f 可以设置位图的颜色

  字体和显示列表:可用使用显示列表用于字体显示。

  glCallLists 调用显示列表

  glListBase 设置偏移值

  glGenLists 生成显示列表

  glDeleteLists删除显示列表

  glNewList

  glEndList

  glPixelStorei

8.2 图像

  glReadPixels 从帧缓冲区读取一个矩形像素数组,并把数据保存在内存中

  glDrawPixels 把内存中所保存的一个矩形像素数据写入到帧缓冲区中由glRasterPos所制定的当前位置

  glCopyPixels 把一个矩形像素数组从帧缓冲区的一个部分复制到另一个部分

8.3 图像管线

  图像管线:包括像素存储模式和像素传输操作,包括如何设置一种任意的映射,对像素数据进行转换

   glPixelZoom 在绘制像素矩形前对它进行放大或缩小。设置写入操作glDrawPixels 和glCopyPixels中的缩放、翻转

  像素包装和解包:指像素数据写入到处理器内存以及从处理器内存读取的方式

  glPixelStore 控制像素的存储模式

  glPixelTransfer 控制像素传输模式, 将影响纹理操作的相关函数

  glPixelMap 像素映射

8.4 读取和绘制像素矩形

8.5 使用缓冲区对象存储像素矩形数据

  glGenBuffer 生成缓冲区对象标识符,

  glBufferData 请求数据存储

  glBindBuffer 绑定适当的缓冲区对象

  缓冲区使用:如glDrawPixels 或glTexImage2D

8.6 提高像素绘制速度的技巧

  〉将像素传输参数设为默认值,缩放率设置为(1.0, 1.0)

  〉禁用片断操作

  〉禁用开销较大的状态,如纹理贴图或混合

  〉图像格式与类型一致时不转换

  〉无符合整形的图像格式比有符号整形类型的图像格式具有更快的处理速度

  〉绘制一个大型像素矩形的速度常常比绘制几个小型像素矩形的速度要快,因为像素的传输开销将被众多数量的像素所分摊

  〉尽量用较小的数据类型和更少的成分,以减少需要复制的数据

8.7 图像处理子集

  〉使用颜色查找表,用于替换像素值  glColorTable glEnable(GL_COLOR_TABLE)

  〉使用卷积用于过滤图像,卷积是一种像素过滤器,用像素本身以及邻近像素的加权平均值来替换这个像素,卷积的应用包括模糊和锐化图像、查找图像边缘以及调用图像的对比度 glConvolutionFilter2D glEnable(GL_CONVOLUTION_2D) glCopyconvotionFilter2D...

  〉使用颜色矩阵变换,进行颜色空间变换以及其他现行变换

  〉收集柱状图统计数据,以及关于图像的最小和最大颜色成分信息 glHistogram glGetHistogram glMinmax glResetMinmax



0 0
原创粉丝点击