
OpenGL
文章平均质量分 77
shiqx429
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
OpenGL入门学习(一) 【转】
说起编程作图,大概还有很多人想起TC的#include 吧?但是各位是否想过,那些画面绚丽的PC游戏是如何编写出来的?就靠TC那可怜的640*480分辨率、16色来做吗?显然是不行的。本帖的目的是让大家放弃TC的老旧图形接口,让大家接触一些新事物。OpenGL作为当前主流的图形API之一,它在一些场合具有比DirectX更优越的特性。1、与C语言紧密结合。OpenGL命令最初就是用C语言函数来进转载 2008-09-08 11:34:00 · 1161 阅读 · 0 评论 -
OpenGL入门学习(十六) 【转】
本课我们来谈谈如何显示文字。OpenGL并没有直接提供显示文字的功能,并且,OpenGL也没有自带专门的字库。因此,要显示文字,就必须依赖操作系统所提供的功能了。各种流行的图形操作系统,例如Windows系统和Linux系统,都提供了一些功能,以便能够在OpenGL程序中方便的显示文字。最常见的方法就是,我们给出一个字符,给出一个显示列表编号,然后操作系统由把绘制这个字符的OpenGL命令装到指转载 2008-09-08 11:53:00 · 1432 阅读 · 0 评论 -
OpenGL入门学习(十五) 【转】
这次讲的所有内容都装在一个立方体中,呵呵。呵呵,绘制一个立方体,简单呀,我们学了第一课第二课,早就会了。先别着急,立方体是很简单,但是这里只是拿立方体做一个例子,来说明OpenGL在绘制方法上的改进。从原始一点的办法开始一个立方体有六个面,每个面是一个正方形,好,绘制六个正方形就可以了。glBegin(GL_QUADS); glVertex3f(...); glVertex3转载 2008-09-08 11:51:00 · 1008 阅读 · 0 评论 -
OpenGL入门学习(十四) 【转】
OpenGL从推出到现在,已经有相当长的一段时间了。其间,OpenGL不断的得到更新。到今天为止,正式的OpenGL已经有九个版本。(1.0, 1.1, 1.2, 1.2.1, 1.3, 1.4, 1.5, 2.0, 2.1)每个OpenGL版本的推出,都增加了一些当时流行的或者迫切需要的新功能。同时,到现在为止,OpenGL是向下兼容的,就是说如果某个功能在一个低版本中存在,则在更高版本中也一转载 2008-09-08 11:50:00 · 1082 阅读 · 0 评论 -
OpenGL入门学习(十三) 【转】
前一段时间里,论坛有位朋友问什么是状态机。按我的理解,状态机就是一种存在于理论中的机器,它具有以下的特点:1. 它有记忆的能力,能够记住自己当前的状态。2. 它可以接收输入,根据输入的内容和自己的状态,修改自己的状态,并且可以得到输出。3. 当它进入某个特殊的状态(停机状态)的时候,它不再接收输入,停止工作。理论说起来很抽象,但实际上是很好理解的。首先,从本质上讲,我们现在的电脑就是典型的状态机转载 2008-09-08 11:50:00 · 964 阅读 · 0 评论 -
OpenGL入门学习(十二) 【转】
片断测试其实就是测试每一个像素,只有通过测试的像素才会被绘制,没有通过测试的像素则不进行绘制。OpenGL提供了多种测试操作,利用这些操作可以实现一些特殊的效果。我们在前面的课程中,曾经提到了“深度测试”的概念,它在绘制三维场景的时候特别有用。在不使用深度测试的时候,如果我们先绘制一个距离较近的物体,再绘制距离较远的物体,则距离远的物体因为后绘制,会把距离近的物体覆盖掉,这样的效果并不是我们转载 2008-09-08 11:48:00 · 798 阅读 · 0 评论 -
OpenGL入门学习(十一) 【转】
我们在前一课中,学习了简单的像素操作,这意味着我们可以使用各种各样的BMP文件来丰富程序的显示效果,于是我们的OpenGL图形程序也不再像以前总是只显示几个多边形那样单调了。——但是这还不够。虽然我们可以将像素数据按照矩形进行缩小和放大,但是还不足以满足我们的要求。例如要将一幅世界地图绘制到一个球体表面,只使用glPixelZoom这样的函数来进行缩放显然是不够的。OpenGL纹理映射功能支持将转载 2008-09-08 11:46:00 · 815 阅读 · 0 评论 -
OpenGL入门学习(十) 【转】
今天我们先简单介绍Windows中常用的BMP文件格式,然后讲OpenGL的像素操作。虽然看起来内容可能有点多,但实际只有少量几个知识点,如果读者对诸如“显示BMP图象”等内容比较感兴趣的话,可能不知不觉就看完了。像素操作可以很复杂,这里仅涉及了简单的部分,让大家对OpenGL像素操作有初步的印象。学过多媒体技术的朋友可能知道,计算机保存图象的方法通常有两种:一是“矢量图”,一是“像素图”。矢量转载 2008-09-08 11:44:00 · 880 阅读 · 0 评论 -
OpenGL入门学习(九) 【转】
今天介绍关于OpenGL混合的基本知识。混合是一种常用的技巧,通常可以用来实现半透明。但其实它也是十分灵活的,你可以通过不同的设置得到不同的混合结果,产生一些有趣或者奇怪的图象。混合是什么呢?混合就是把两种颜色混在一起。具体一点,就是把某一像素位置原来的颜色和将要画上去的颜色,通过某种方式混在一起,从而实现特殊的效果。假设我们需要绘制这样一个场景:透过红色的玻璃去看绿色的物体,那么可以先绘制绿色转载 2008-09-08 11:44:00 · 759 阅读 · 1 评论 -
OpenGL入门学习(八) 【转】
今天介绍关于OpenGL显示列表的知识。本课内容并不多,但需要一些理解能力。在学习时,可以将显示列表与C语言的“函数”进行类比,加深体会。我们已经知道,使用OpenGL其实只要调用一系列的OpenGL函数就可以了。然而,这种方式在一些时候可能导致问题。比如某个画面中,使用了数千个多边形来表现一个比较真实的人物,OpenGL为了产生这数千个多边形,就需要不停的调用glVertex*函数,转载 2008-09-08 11:42:00 · 976 阅读 · 0 评论 -
OpenGL入门学习(七) 【转】
今天要讲的是OpenGL光照的基本知识。虽然内容显得有点多,但条理还算比较清晰,理解起来应该没有困难。即使对于一些内容没有记住,问题也不大——光照部分是一个比较独立的内容,它的学习与其它方面的学习可以分开,不像视图变换那样,影响到许多方面。课程的最后给出了一个有关光照效果的动画演示程序,我想大家会喜欢的。从生理学的角度上讲,眼睛之所以看见各种物体,是因为光线直接或间接的从它们那里到达了眼睛。人类转载 2008-09-08 11:41:00 · 1014 阅读 · 0 评论 -
OpenGL入门学习(六) 【转】
今天要讲的是动画制作——可能是各位都很喜欢的。除了讲授知识外,我们还会让昨天那个“太阳、地球和月亮”天体图画动起来。缓和一下枯燥的气氛。本次课程,我们将进入激动人心的计算机动画世界。想必大家都知道电影和动画的工作原理吧?是的,快速的把看似连续的画面一幅幅的呈现在人们面前。一旦每秒钟呈现的画面超过24幅,人们就会错以为它是连续的。我们通常观看的电视,每秒播放25或30幅画面。但对于计算机来说,它可转载 2008-09-08 11:40:00 · 919 阅读 · 0 评论 -
OpenGL入门学习(五) 【转】
今天要讲的是三维变换的内容,课程比较枯燥。主要是因为很多函数在单独使用时都不好描述其效果,我只好在最后举一个比较综合的例子。希望大家能一口气看到底了。只看一次可能不够,如果感觉到迷糊,不妨多看两遍。有疑问可以在下面跟帖提出。我也使用了若干图形,希望可以帮助理解。在前面绘制几何图形的时候,大家是否觉得我们绘图的范围太狭隘了呢?坐标只能从-1到1,还只能是X轴向右,Y轴向上,Z轴垂直屏幕。这些限制给转载 2008-09-08 11:39:00 · 1775 阅读 · 2 评论 -
OpenGL入门学习(四) 【转】
OpenGL支持两种颜色模式:一种是RGBA,一种是颜色索引模式。无论哪种颜色模式,计算机都必须为每一个像素保存一些数据。不同的是,RGBA模式中,数据直接就代表了颜色;而颜色索引模式中,数据代表的是一个索引,要得到真正的颜色,还必须去查索引表。1. RGBA颜色RGBA模式中,每一个像素会保存以下数据:R值(红色分量)、G值(绿色分量)、B值(蓝色分量)和A值(alpha分量)。其中红、绿、蓝转载 2008-09-08 11:37:00 · 1627 阅读 · 0 评论 -
OpenGL入门学习(三) 【转】
在第二课中,我们学习了如何绘制几何图形,但大家如果多写几个程序,就会发现其实还是有些郁闷之处。例如:点太小,难以看清楚;直线也太细,不舒服;或者想画虚线,但不知道方法只能用许多短直线,甚至用点组合而成。这些问题将在本课中被解决。下面就点、直线、多边形分别讨论。1、关于点点的大小默认为1个像素,但也可以改变之。改变的命令为glPointSize,其函数原型如下:void glPointSize(G转载 2008-09-08 11:37:00 · 726 阅读 · 0 评论 -
OpenGL入门学习(二) 【转】
本次课程所要讲的是绘制简单的几何图形,在实际绘制之前,让我们先熟悉一些概念。一、点、直线和多边形我们知道数学(具体的说,是几何学)中有点、直线和多边形的概念,但这些概念在计算机中会有所不同。数学上的点,只有位置,没有大小。但在计算机中,无论计算精度如何提高,始终不能表示一个无穷小的点。另一方面,无论图形输出设备(例如,显示器)如何精确,始终不能输出一个无穷小的点。一般情况下,OpenGL中的点将转载 2008-09-08 11:36:00 · 928 阅读 · 0 评论 -
OpenGL工作流程 翻译自蓝宝书
OpenGL工作流程通过上面的介绍,对OpenGL是有了一个总体的印象。下面来阐述在OpenGL中处理数据的三个阶段和这些阶段中OpenGL函数如何使用。 图1详细给出了OpenGL处理流水线(pipe line)的框图。图中左边有三条竖向的宽箭头,箭头代表了几何顶点(vertexs)和与几何顶点有关的两类原始数据:颜色值和纹理坐标。从图中可以看出处理流程的三个阶段,几何顶点被组合为图元(转载 2008-10-07 17:35:00 · 1874 阅读 · 0 评论