
opengl
文章平均质量分 64
afei198409
这个作者很懒,什么都没留下…
展开
-
OpenGL学习笔记(二)
OpenGL状态机状态机:是一个抽象的模型,表示一组状态变量的集合。每个状态变量可以有各种不同的值,例如可以打开或关闭等。OpenGL使用了一种状态模型(或称状态机)来追踪所有的OpenGL状态变量。当一个状态值被设置之后,它就一直保持这个状态,直到其他函数对它进行了修改。许多状态只是简单的打开或关闭。例如,光照要么打开,要么关闭。如果几何图形不使用光照,那么在绘制这个几何图形的颜色集合时原创 2012-12-04 13:54:33 · 939 阅读 · 0 评论 -
OpenGL学习笔记(十)
光照OpenGL的光照模型把光分成4种独立的成分:环境光、散射光、镜面光和发射光。环境光(ambient light)环境光并不来自任何特定的方向。它来自某个光源,但光线却是在房间或场景中四处反射,没有方向可言。散射光(diffuse light)OpenGL的散射光具有方向性,来自于一个特定的方向,它根据入射光线的角度在表面上均匀地反射开来。因此,如果光线直接指向物体表面,它原创 2012-12-13 17:53:39 · 915 阅读 · 0 评论 -
OpenGL学习笔记(九)
视图产生目标场景视图的变换过程类似于用照相机进行拍照。用照相机(或计算机)进行拍照的步骤大致如下:1. 把照相机固定在三角架上,并让它对准场景(视图变换)2. 对场景进行安排,使各个物体在照片中的位置是我们所希望的(模型变换)3. 选择照相机镜头,并调整放大倍数(投影变换)4. 确定最终照片的大小(视口变换)5. 在完成上面步骤后,就原创 2012-12-11 15:26:43 · 826 阅读 · 0 评论 -
OpenGL学习笔记(八)
顶点数组对象(vao)随着程序逐渐增大并且使用更多的模型,读者可能发现要在每个帧的多组顶点数组之间切换。根据你为每个顶点使用多少个顶点属性,像对glVetexPointer()这样的函数的调用次数可能变得很大。顶点数组对象捆绑了调用的集合,以设置顶点数组的状态。在初始化之后,可以通过单次调用在不同的顶点数组集合之间快速修改。创建顶点数组对象标识:void glGenVertexArra原创 2012-12-10 14:41:22 · 1213 阅读 · 0 评论 -
OpenGL学习笔记(七)
显示列表OpenGL提供了一个工具来创建预处理的OpenGL命令集(数据块),使它们能够快速复制到命令缓冲区,以获得更快的执行速度。这个预编译的命令集称为显示列表(display list)。定义一个显示列表如下:glNewList(,GL_COMPILE);…//一些OpenGL代码…glEndList();参数GL_COMPILE告诉OpenGL编译这个列表原创 2012-12-07 16:03:20 · 903 阅读 · 0 评论 -
OpenGL学习笔记(六)
缓冲区对象许多OpenGL操作都向OpenGL发送一大块数据,例如向它传递需要处理的顶点数组数据。传输这种数据可能非常简单,例如把数据从系统的内存中复制到图形卡。但是,由于OpenGL是按照客户机-服务器模式设计的,在OpenGL需要数据的任何时候,都必须把数据从客户机内存传输到服务器。如果数据并没有修改,或者客户机和服务器位于不同的计算机(分布式渲染),数据的传输可能会比较缓慢,或者是冗余的原创 2012-12-06 22:31:43 · 4387 阅读 · 2 评论 -
OpenGL学习笔记(四)
颜色OpenGL通过分别指定红、绿、蓝成分的强度来指定一种特定的颜色。 void glColor(red,green,blue,alpha);其中表示参数的数量,表示参数的数据类型。注意,OpenGL内部是用浮点值来表示颜色值的。 颜色立方体由于一种颜色是通过3个正的颜色值所指定的,因此可以对所有可用的颜色进行建模,创建一个立方体,称为RGB颜色空间。 着原创 2012-12-04 17:17:58 · 951 阅读 · 0 评论 -
OpenGL学习笔记(一)
OpenGL相关概念介绍 2D + 透视 = 3D 渲染:就是对一个三维物体进行几何描述并且把它转换为屏幕上的一幅图像. 纹理贴图:通过一幅图像向一个多边形提供额外细节的技巧称为纹理贴图,所提供的图像称为纹理,而纹理中每个单独的元素称为纹理单元。而在一个物体的表面上拉伸或压缩纹理单元的过程称为过滤。混合(blending):是屏幕上颜色或物体的组合。它类似于双重曝光照片原创 2012-12-04 13:47:10 · 866 阅读 · 0 评论 -
OpenGL学习笔记(五)
顶点数组根据前面的介绍,OpenGL需要进行大量的函数调用才能完成对几何图元的渲染。如绘制一个20条边的多边形至少需要22个函数调用。首先调用1次glBegine(),然后为每个顶点调用1次函数,最后调用1次glEnd()。有时还需要额外的信息,也增加函数的调用。这样就成倍地增加渲染几何物体所需要的函数调用数量,直接影响到了应用程序的性能。OpenGL提供了一些顶点数组函数,允许只用少数几原创 2012-12-04 23:09:59 · 1004 阅读 · 0 评论 -
OpenGL学习笔记(三)
OpenGL绘制清除窗口在计算机中,保存图片的内存通常被计算机所绘制的前一幅图像所填充,因此在绘制新场景之前,一般需要把它清除为某种背景颜色。 void glClearColor(GLclampf red,GLclampf green,GLclampf blue,GLclampf alpha);设置当前清除颜色,用于清除RGBA模式下的颜色缓冲区。其中red,green,b原创 2012-12-04 14:02:05 · 1141 阅读 · 0 评论 -
OpenGL学习笔记(十一)
混合要启用混合可调用glEnable(GL_BLEND);正常情况下,OpenGL在渲染时把颜色值放在颜色缓冲区中。已经存储在颜色缓冲区的颜色称为目标颜色,作为当前渲染命令的结果进入颜色缓冲区的颜色值称为源颜色。当混合功能被启用时,源颜色和目标颜色的组合方式由混合方程式控制。默认情况下,混合方程式像这样:最终颜色=(源颜色 * S) + (目标颜色 * D)其中S和D分别是源原创 2012-12-13 22:28:34 · 861 阅读 · 0 评论