zoukankan      html  css  js  c++  java
  • OpenGL复习要点

    OpenGL要点复习

     1、和像素有关的信息(例如像素的颜色)组织成位平面 (bitplane)的形式,位平面又可以组织成帧缓冲区(framebuffer)的形式。位平面是一块内存区域,保存了屏幕上每个像素的1个位的信息。

     2、glClearColor()函数确定了窗口将清除成什么颜色,而glClear()函数实际完成清除窗口的任务。

     3、glFlush()保证了绘图命令的实际执行,而不是存储在缓冲区中等待其他的OpenGL命令。

     4、有些OpenGL函数名后有一个字母v,它表示这个函数所接受的参数是一个指向值向量(或数组)的指针。

     5、OpenGL是一个状态机,许多模式的状态变量可以用glEnable()、glDisable()来启用和禁用。可以通过glGetBooleanv()、glGetDoublev()、glIsEnabled()函数查询。

     6、glPushattrib()、glPushClientattrib()函数把状态变量的集合保存到一个属性栈中,更加高效。

     7、光栅化就是把几何数据和像素数据转化为片断(fragment)的过程。每个片断方块对应于幀缓冲区中的一个像素。

       8、glBegin()中参数指定mode,mode可以是GL_POLYGON。

     9、glLineStipple(GLint factor,GLushort pattern)指定线段模式。

     10、glPolygonMode(face, mode), face可以是GL_FRONT_AND_BACK、GL_FRONT、GL_BACK。mode可以是GL_LINE、GL_FILL、GL_POINT。

     11、glFrontFace(mode)指定哪个方向是正向。GL_CCW逆时针为正,GL_CW顺时针为正。

       12、glCullFace(mode)剔除多边形,GL_BACK、GL_FRONT等。

       13、glPolygonStipple(mode)点阵多边形图。

     14、glEdgeFlag()设置为false时,意味着当前这个顶出发的边都不绘制。

     15、除了顶点外,不能为多边开的其它地方分配法线。法线向量只表示方向,因此它的长度是无关紧要的。 

     16、顶数数组存储在客户机地地址空间中, 除非使用缓冲区对象,才会存储在服务器内存中。

     17、glArrayElement放置在glBegin()和glEnd()间来使用glVertexPoint()、glTexCoord()的数据。让数据从客户端提交到服务端。 

     18、glDrawElements()进一步减少glArrayElement的调用,把引用的顶点放置在一个数组中。glDrawRangeElements()添加了start,end参数,用于限制使用的顶点范围。

     19、glMultiDrawElements()进一步减少glDrawElements()的调用次数。

     20、glDrawArrays()按顺序引用顶点,只提供first和count。glMultiDrawArrays()进一步减少glDrawArrays()的调用。

     21、缓冲区对象(buffer object),可以用于服务端缓存数据。glGenBuffers()可以创建buffer,glIsBuffer()用于判断,glBindBuffer()将一个索引绑绑定到特定的内存,glBufferData()、glBufferSubData()、glMapBuffer()、glUnmapBuffer()等用于操作buffer。最后glDeleteBuffers()用于删除buffer。当使用buf-obj后,glVertexPointer、glDrawElements的指针参数就要设置为0,因为GL将不会去读 。缓冲区对象要指明用法,说明这东西对性能很重要。俗称VBO

     22、glPushAttrib()、glPopAttrib()可以控制属性的保存。

     23、顶点数组对象(vertex array) glGenVertexArrays(n, arrays),管理着多组顶点之间的切换。glBindVertexArray()函数是关键,在不同的情形下有不同的表现。俗称VAO,更多资料可参考:http://www.cppblog.com/init/archive/2012/02/21/166098.html

    -- 摘自《OpenGL编程指南》

  • 相关阅读:
    Android 开发技术周报 Issue#276
    手动添加 Git bash 到鼠标右键
    Sublime Text3 3143 注册码
    MySQL主从复制
    Python-MongoDB的驱动安装、升级
    MongoDB数据库的安装、配置和使用
    js循环生成多个easyui datagrid数据网格时,初始化表格
    屏蔽掉Google Chrome 浏览器 textarea 单词拼写检测
    Fiddler屏蔽某些url的抓取方法
    解决VMware下安装Ubuntu 16.04 不支持1920X1080分辨率的问题
  • 原文地址:https://www.cnblogs.com/tekkaman/p/3519966.html
Copyright © 2011-2022 走看看