OpenGL开发之路
文章平均质量分 81
OpenGL实际上是一种图形与硬件的接口。它包括了120个图形函数,开发者可以用这些函数来建立三维模型和进行三维实时交互。与其他图形程序设计接口不同,OpenGL提供了十分清晰明了的图形函数。
heyuchang666
这个作者很懒,什么都没留下…
展开
-
OpenGL单缓冲与双缓冲的区别
单缓冲,实际上就是将所有的绘图指令在窗口上执行,就是直接在窗口上绘图,这样的绘图效率是比较慢的,如果使用单缓冲,而电脑比较慢,你回到屏幕的闪烁。 双缓冲,实际上的绘图指令是在一个缓冲区完成,这里的绘图非常的快,在绘图指令完成之后,再通过交换指令把完成的图形立即显示在屏幕上,这就避免了出现绘图的不完整,同时效率很高。一般用OpenGL绘图都是用双缓冲,单缓冲一般只用于显示单独的一副非动态的图像转载 2017-04-07 10:50:55 · 4332 阅读 · 0 评论 -
OpenGL函数_ gl.glenable()详细介绍
glEnable 用于启用各种功能。功能由参数决定。与glDisable相对应。glDisable是用来关闭的。两个函数参数取值是一至的。参数说明:void glEnable(GLenum cap)GLenum 是unsigned int 类型cap 是一个取值。由值决定启用的功能键。各种功能请看参数cap的取值表转载 2017-04-07 10:42:06 · 15666 阅读 · 1 评论 -
OpenGL---GLUT教程(二) GLUT初始化
Void glutInit(int*argc,char**argv);//初始化Void glutInitWindowPositon(int x,int y);//窗口位置(它默认的是屏幕左上角),X: 距离屏幕左边的像素数。Y:距离屏幕上边的像素数,默认值都是-1。Void glutInitWindowSize(int width,int height); //设置窗口大小Void glutInitDisplayMode(unsighed int mode); // 定义显示方式Int glutC原创 2017-04-06 18:57:49 · 1542 阅读 · 0 评论 -
OpenGL_GLUT(一)_vs2013中配置gult库
GLUT 代表OpenGL Utility Tookit。Mark J.Kilgard 为了使OpenGL应用程序结构能够真正独立于窗口系统构思了GLUT库。感谢GLUT,使我们可以写程序而不必去学关于X windows或者微软自己的窗口系统。Kilgard在X windows上应用这个库,后来Nate Robins把它扩展到微软的窗口系统。原创 2017-04-06 18:20:25 · 1150 阅读 · 0 评论 -
opengl库中gl glu glut glaux的区别
OpenGL中的gl库是核心库,glu是实用库,glut是实用工具库。gl是核心,glu是对gl的部分封装,glut是OpenGL的跨平台工具库。gl中包含了最基本的3D函数,而glu似乎对gl的辅助,如果算数好,不用glu的情况下,也是可以做出同样的效果。glut是基本的窗口界面,如果不喜欢用glut可以用MFC和Win32窗口等代替,但是glut是跨平台的,这就保证了我们编出的程序是跨平台的,如果用MFC或者Win32只能在windows操作系统上使用。选择OpenGL的一个很大原因就是因为它的跨转载 2017-04-06 16:26:59 · 1420 阅读 · 0 评论 -
OpenGL基础图形编程(十)真实感图形基本概念
由于真实感图形是通过景物表面的颜色和明暗色调来表现景物的几何形状、空间位置以及表面材料的,而一个物体表面所呈现的颜色是由表面向视线方向辐射的光能决定的。在计算机图形学中,常采用一个既能表示光能大小又能表示其颜色组成的物理量即光亮度(luminance)或光强(intensity of light)来描述物体表面朝某方向辐射光能的颜色。采用这个物理量可以正确描述光在物体表面的反射、透射和吸收现象,因而可以正确计算处物体表面在空间给定方向上的光能颜色。原创 2016-04-13 20:37:15 · 11517 阅读 · 2 评论 -
OpenGL基础图形编程(九)OpenGL颜色
几乎所有OpenGL应用目的都是在屏幕窗口内绘制彩色图形,所以颜色在OpenGL编程中占有很重要的地位。这里的颜色与绘画中的颜色概念不一样,它属于RGB颜色空间,只在监视器屏幕上显示。另外,屏幕窗口坐标是以象素为单位,因此组成图形的每个象素都有自己的颜色,而这种颜色值是通过对一系列OpenGL函数命令的处理最终计算出来的。计算机颜色不同于绘画或印刷中的颜色,显示于计算机屏幕上每一个点的颜色都是由监视器内部的电子枪激发的三束不同颜色的光(红、绿、蓝)混合而成,因此,计算机颜色通 常用R(Red)、G(Gree原创 2016-04-12 14:49:04 · 6558 阅读 · 0 评论 -
OpenGL基础图形编程(七)建模
OpenGL基本库提供了大量绘制各种类型图元的方法,辅助库也提供了不少描述复杂三维图形的函数。这一章主要介绍基本图元,如点、线、多边形,有了这些图元,就可以建立比较复杂的模型了。7.1、描述图元 OpenGL是三维图形的函数库,它所定义的点、线、多边形等图元与一般的定义不太一样,存在一定的差别。对编程者来说,能否理解二者之间的差别十分重要。一种差别源于基于计算机计算的限制。原创 2016-04-11 16:11:30 · 5275 阅读 · 0 评论 -
OpenGL基础图形编程(八)变换
OpenGL变换是本篇的重点内容,它包括计算机图形学中最基本的三维变换,即几何变换、投影变换、裁剪变换、视口变换,以及针对OpenGL的特殊变换概念理解和用法,如相机模拟、矩阵堆栈等。学好了这章,才开始真正走进三维世界。实际上,从三维空间到二维平面,就如同用相机拍照一样,通常都要经历以下几个步骤 (括号内表示的是相应的图形学概念): 第一步,将相机置于三角架上,让它对准三维景物(视点变换,Viewing Transformation)。 第二步,将三维物体放在适当的位置(模型变换,Modeling原创 2016-04-11 16:36:06 · 5627 阅读 · 0 评论 -
OpenGL基础图形编程(六)OpenGL辅组库的基本使用
OpenGL是一个开放的系统,它是独立于任何窗口系统或操作系统的。尽管它包含了许多图形函数,但它却没有窗口函数,也没有从键盘和鼠标读取事件的函数,所以要初学者写出一个完整的图形程序是相当困难的。另外,OpenGL图形函数中只提供基本的几何原形:点、线、多边形,因此要创建基本的三维几何体如球、锥体等,也很不容易。而OpenGL辅助库就是为解决这些基本问题专门设计的,它提供了一些基本的窗口管理函数和三维图形绘制函数,能帮助初学者尽快进入OpenGL世界,掌握关键的三维图形技术,体会其中奇妙的乐趣。但是,对于复杂原创 2016-04-09 17:24:05 · 4669 阅读 · 0 评论 -
OpenGL基础图形编程(五)
五、OpenGL的数据类型和函数名 OpenGL的数据类型定义可以与其它语言一致,但建议在ANSI C下最好使用以下定义的数据类型,例如GLint、GLfloat等。具体类型见表5-1。表5-1 命令前缀和参数数据类型前缀 数据类型相应C语言类型 OpenGL类型 b 8-bit integer signed charG原创 2016-04-06 16:15:44 · 1238 阅读 · 0 评论 -
OpenGL基础图形编程(四)基础程序结构
用OpenGL编写的程序结构类似于用其他语言编写的程序。实际上,OpenGL是一个丰富的三维图形函数库,编写OpenGL程序并非难事,只需在基本C语言中调用这些函数,用法同Turbo C、Microsoft C等类似,但也有许多不同之处。原创 2016-04-06 16:03:31 · 1630 阅读 · 0 评论 -
基础Shader
Shader(着色器)实际上就是一小段程序,它负责将输入的Mesh(网格)以指定的方式和输入的贴图或者颜色等组 合作用,然后输出。绘图单元可以依据这个输出来将图像绘制到屏幕上。输入的贴图或者颜色等,加上对应的Shader,以及对Shader的特定的参数设 置,将这些内容(Shader及输入参数)打包存储在一起,得到的就是一个Material(材质)。之后,将材质赋予合适的 renderer(渲染器)来进行渲染(输出)了。原创 2015-11-12 00:38:17 · 1322 阅读 · 1 评论 -
OpenGL: 渲染管线理论详解
学习着色器,并理解着色器的工作机制,就要对OpenGL的固定功能管线有深入的了解。首先要知道几个OpenGL的术语:渲染(rendering):计算机根据模型(model)创建图像的过程。模型(model):根据几何图元创建的物体(object)。几何图元:包括点、直线和多边形等,它是通过顶点(vertex)指定的。 最终完成了渲染的图像是由在屏幕上绘制的像素组成的。在内存中,和像素有关的信息(如像素的颜色)组织成位平面的形式,位平面是一块内存区域,保存了屏幕上每个像素的一个位的信息。原创 2015-11-24 18:59:45 · 5106 阅读 · 0 评论 -
OpenGL基础图形编程(三)WindowsNT下的OpenGL
3.1、Windows NT下的OpenGL函数 如前面的章节所述,Windows NT下的OpenGL同样包含100多个库函数,这些函数都按一定的格式来命名,即每个函数都以gl开头。Windows NT下的OpenGL除了具有基本的OpenGL函数外,还支持其他四类函数3.2、OpenGL基本功能 OpenGL能够对整个三维模型进行渲染着色,从而绘制出与客观世界十分类似的三维景象。另外OpenGL还可以进行三维交互、动作模拟等。具体的功能主要有以下这些内容。3.3、Windows NT下Ope原创 2016-04-06 10:27:22 · 1302 阅读 · 0 评论 -
OpenGL基础图形编程(二)OpenGL概念建立
OpenGL是一个与硬件图形发生器的软件接口,它包括了100多个图形操作函数,开发者可以利用这些函数来构造景物模型、进行三维图形交互软件的开发。正如上一章所述,OpenGL是一个高性能的图形开发软件包。OpenGL支持网络,在网络系统中用户可以在不同的图形终端上运行程序显示图形。 OpenGL作为一个与硬件独立的图形接口,它不提供与硬件密切相关的设备操作函数,同时,它也不提供描述类似于飞机、汽车、分子形状等复杂形体的图形操作函数。用户必须从点、线、面等最基本的图形单元开始构造自己的三维模型。原创 2016-04-05 20:17:02 · 1635 阅读 · 0 评论 -
OpenGL基础图形编程(一)OpenGL与3D图形世界
1.1、OpenGL使人们进入三维图形世界1.2、OpenGL提供直观的三维图形开发环境OpenGL提供一系列的三维图形单元供开发者调用。OpenGL提供一系列的图形变换函数。OpenGL提供一系列的外部设备访问函数,使开发者可以方便地访问鼠标、键盘、空间球、数据手套等这种直观的三维图形开发环境体现了OpenGL的技术优势,这也是许多三维图形开发者热衷于OpenGL的缘由所在。1.3、OpenGL成为目前三维图形开发标准原创 2016-04-05 20:11:12 · 6438 阅读 · 0 评论