opengl
dqmengxiang
这个作者很懒,什么都没留下…
展开
-
OpenGL教程之新手上路
Jeff Molofee(NeHe)的OpenGL教程- 新手上路译者的话:NeHe的教程一共有30多课,内容翔实,并且不断更新 。国内的网站实在应该向他们学习。令人惊讶的是,NeHe提供的例程源码几乎都有跨平台的不同编译版本,涉及从Visual C++、Borland C++、Visual Basic、MacOS X/GLUT、Linux/GLX、Code Warrior、Delphi、C++ Builder、MASM、ASM、MingW32&Allegro以及Python等等的不同平台下的多种编译器。这转载 2010-07-09 20:51:00 · 714 阅读 · 0 评论 -
OpenGL系统设计
<br />相对于直线的生成,曲线的生成要难一些。对于参数曲线,通常是根据其切向量、法向量、弧长、曲率等使用插值、拟合来逼近曲线。当拟合后的若干小线段和曲线本身之间的误差很小以至于人眼看不出来时,我们就认为拟合的曲线就是我们需要的结果。对于非参数曲线,则通过控制点,应用不同的规则来拟合曲线,例如Hermit曲线,Bezier曲线等。<br />OpenGL中定义曲线的函数是glMap1,其原型如下<br /> <br />void glMap1d( GLenum target, GLdouble u1,转载 2010-11-17 21:39:00 · 660 阅读 · 0 评论 -
OPENGL(14) c++曲面构造 网格线
<br />发信人: yxy (田丝丝#冬眠的小肥鹰), 信区: GAME_Designer <br />标 题: OPENGL(14) <br />发信站: BBS 水木清华站 (Tue Feb 17 16:24:53 1998) <br />曲面的构造可以是网格线和填充曲面形式,其实与曲线很类似只是变为 <br />二维而已。 <br />1.曲面定义 <br />void glMap2{fd}(GLenum target,TYPE u1,TYPE u2,GLint ustride,GLint uord转载 2010-11-17 21:42:00 · 1742 阅读 · 0 评论 -
显示列表
<br />原 文:Lesson 12: Display Lists<br /> 译 者:Marhoo<br /> 这次我将教你如何使用显示列表,显示列表将加快程序的速度,而且可以减少代码的长度。<br /> 当你在制作游戏里的小行星场景时,每一层上至少需要两个行星,你可以用OpenGL中的多边形来构造每一个行星。聪明点的做法是做一个循环,每个循环画出行星的一个面,最终你用几十条语句画出了一个行星。每次把行星画到屏幕上都是很困难的。当你面临更复杂的物体时你就会明白了。<br /> 那么,解决的办法是转载 2010-11-17 21:51:00 · 446 阅读 · 0 评论 -
OpenGL中如何绘制Bezier曲线和NURBS曲线
<br />一、Bezier曲线<br /> 主要注意两个函数:glMap1和glEvalCoord1。<br />1.void glMap1{fd}(GLenum target,TYPE u1,TYPE u2,GLint stride, GLint order,const TYPE *points); <br />功能:定义求值器。 <br />参数:target:指出了控制顶点的意义以及在points参数中需要提供多少值。<br /> points:可以指向控制点集、RGBA颜转载 2010-11-17 21:40:00 · 2239 阅读 · 0 评论 -
飘动的旗
<br />原 文:Lesson 11: OpenGL Flag Effect<br />译 者:CKER<br /> 大家好!对那些想知道我在这里作了些什么的朋友,您可以先按文章的末尾所列出的链接,下载我那毫无意义的演示(Demo)看看先!我是bosco,我将尽我所能教您来实现一个以正弦波方式运动的图象。这一课基于NeHe的教程第六课,当然您至少也应该学会了一至六课的知识。您需要下载源码压缩包,并将压缩包内带的data目录连其下的位图一起释放至您的代码目录下。或者使用您自己的位图,当然它的尺寸必须适合O转载 2010-11-17 21:50:00 · 754 阅读 · 0 评论 -
看起来很棒的雾
<br />原 文:Lesson 16: Cool Looking Fog<br />译 者:sakura<br /> 难道你不想把“雾”加入到你的OpenGL程序中吗?那么在这课里我将要为您展现如何实现这项功能。这是我第一次写教程,而且相对来说我也是OpenGL/C++程序设计新手,所以如果您发现有什么错误的话,请让我知道。这课的代码是基于第7课的。<br /> 数据设定<br /> 我们将要设定我们用来保存关于雾的信息的所有变量。变量fogMode,用来保存3种有关雾的类型:GL_EXP,GL_E转载 2010-11-17 21:52:00 · 299 阅读 · 0 评论 -
OpenGL系统设计
<br />和曲线类似,曲面也可以通过控制点来模拟。实际上在很多场合也使用多边形来模拟平滑曲面,但使用控制点需要的计算机系统资源开销相对要少很多。同时,控制点个数越多,就越能够逼近真实的曲面,所以选择好的算法和适当的控制点个数相当重要。<br />OpenGL实现曲面的方法和曲线类似,它使用二维的glMap2和glEvalCoord2来代替glMap1和glEvalCoord1。同样,glMap2是设置二维曲面的定义(定义网格的运算子),glEvalCoord2计算具体的坐标点。两个函数的原型如下<br /转载 2010-11-17 21:37:00 · 535 阅读 · 0 评论 -
二次曲面
<br />原 文:Lesson 18: Quadrics<br />译 者:sakura<br /> 二次曲面是一种画复合对象的方法,这种方法通常并不需要很多的三角形。我们将要使用第七课的代码。我们将要增加7个变量以及修改纹理以增加一些变化 :<br /> #include <windows.h> // Header File For Windows<br /> #include <stdio.h> // Header File For St转载 2010-11-17 21:54:00 · 1027 阅读 · 0 评论 -
OpenGL教程之纹理滤波方式
<br />这一课我会教您如何使用三种不同的纹理滤波方式。教您如何使用键盘来移动场景中的对象,还会教您在OpenGL场景中应用简单的光照。这一课包含了很多内容,如果您对前面的课程有疑问的话,先回头复习一下。进入后面的代码之前,很好的理解基础知识十分重要。我们还是在第一课的代码上加以修改。跟以前不一样的是,只要有任何大的改动,我都会写出整段代码。程序开始,我们先加上几个新的变量。<br /> #include <windows.h> // Windows的头文件<br转载 2010-08-05 22:02:00 · 818 阅读 · 0 评论 -
OpenGL教程之旋转
<br />上一课中我教给您三角形和四边形的着色。这一课我将教您如何将这些彩色对象绕着坐标轴旋转。<br /> 其实只需在上节课的代码上增加几行就可以了。下面我将整个例程重写一遍。方便您知道增加了什么,修改了什么。我们增加两个变量来控制这两个对象的旋转。这两个变量加在程序的开始处其他变量的后面(bool fullscreen=TRUE;下面的两行)。它们是浮点类型的变量,使得我们能够非常精确地旋转对象。浮点数包含小数位置,这意味着我们无需使用1、2、3...的角度。你会发现浮点数是OpenGL编程的基础。转载 2010-08-05 21:42:00 · 531 阅读 · 0 评论 -
Jeff Molofee(NeHe)的OpenGL教程 OpenGL教程之第一个多边形
<br />第一课中,我教您如何创建一个OpenGL窗口。这一课中,我将教您如何创建三角形和四边形。我们讲使用来创建GL_TRIANGLES一个三角形,GL_QUADS来创建一个四边形。<br /> 在第一课代码的基础上,我们只需在DrawGLScene()过程中增加代码。下面我重写整个过程。如果您计划修改上节课的代码,只需用下面的代码覆盖原来的DrawGLScene()就可以了。<br /> int DrawGLScene(GLvoid) // 此过程中包括所有的绘原创 2010-07-09 20:57:00 · 341 阅读 · 0 评论 -
Jeff Molofee(NeHe)的OpenGL教程 OpenGL教程之着色
<br />上一课中我教给您三角形和四边形的绘制方法。这一课我将教您给三角形和四边形添加2种不同类型的着色方法。使用单调着色(Flat coloring)给四边形涂上固定的一种颜色。使用平滑着色(Smooth coloring)将三角形的三个顶点的不同颜色混合在一起,创建漂亮的色彩混合。<br /> 继续在上节课的DrawGLScene例程上修改。下面将整个例程重写了一遍。如果您计划修改上节课的代码,只需用下面的代码覆盖原来的DrawGLScene()就可以了。<br /> int DrawGLScen原创 2010-07-09 20:58:00 · 287 阅读 · 0 评论 -
OpenGL教程之向3D进军
<br />在上节课的内容上作些扩展,我们现在开始生成真正的3D对象,而不是象前两节课中那样3D世界中的2D对象。我们给三角形增加一个左侧面,一个右侧面,一个后侧面来生成一个金字塔(四棱锥)。给正方形增加左、右、上、下及背面生成一个立方体。<br /> 我们混合金字塔上的颜色,创建一个平滑着色的对象。给立方体的每一面则来个不同的颜色。<br /> int DrawGLScene(GLvoid) // 此过程中包括所有的绘制代码<br /> {<br />转载 2010-08-05 21:44:00 · 307 阅读 · 0 评论 -
OpenGL教程之纹理映射
<br />学习Texture Map纹理映射(贴图)有很多好处。比方说您想让一颗导弹飞过屏幕。根据前几课的知识,我们最可行的办法可能是很多个多边形来构建导弹的轮廓并加上有趣的颜色。使用纹理映射,您可以使用真实的导弹图像并让它飞过屏幕。您觉得哪个更好看?照片还是一大堆三角形和四边形?使用纹理映射的好处还不止是更好看,而且您的程序运行会更快。导弹贴图可能只是一个飞过窗口的四边形。一个由多边形构建而来的导弹却很可能包括成百上千的多边形。很显然,贴图极大的节省了CPU时间。<br /> 现在我们在第一课的代码开转载 2010-08-05 21:45:00 · 702 阅读 · 0 评论 -
OpenGL教程之纹理映射
<br />学习Texture Map纹理映射(贴图)有很多好处。比方说您想让一颗导弹飞过屏幕。根据前几课的知识,我们最可行的办法可能是很多个多边形来构建导弹的轮廓并加上有趣的颜色。使用纹理映射,您可以使用真实的导弹图像并让它飞过屏幕。您觉得哪个更好看?照片还是一大堆三角形和四边形?使用纹理映射的好处还不止是更好看,而且您的程序运行会更快。导弹贴图可能只是一个飞过窗口的四边形。一个由多边形构建而来的导弹却很可能包括成百上千的多边形。很显然,贴图极大的节省了CPU时间。<br /> 现在我们在第一课的代码开转载 2010-08-05 21:46:00 · 428 阅读 · 0 评论 -
OpenGL教程之Alpha混合
<br />OpenGL中的绝大多数特效都与某些类型的(色彩)混合有关。混色的定义为,将某个象素的颜色和已绘制在屏幕上与其对应的象素颜色相互结合。至于如何结合这两个颜色则依赖于颜色的alpha通道的分量值,以及/或者所使用的混色函数。Alpha通常是位于颜色值末尾的第4个颜色组成分量。前面这些课我们都是用GL_RGB来指定颜色的三个分量。相应的GL_RGBA可以指定alpha分量的值。更进一步,我们可以使用glColor4f()来代替glColor3f()。<br /> 绝大多数人都认为Alpha分量代表转载 2010-08-05 22:05:00 · 1286 阅读 · 0 评论 -
OpenGL教程之漂亮的星星
<br />欢迎进入第九课。到现在为止,您应该很好的理解OpenGL了。您已经学会了设置一个OpenGL窗口的每个细节。学会在旋转的物体上贴图并打上光线以及混色(透明)处理。这一课应该算是第一课中级教程。您将学到如下的知识:在3D场景中移动位图,并去除位图上的黑色象素(使用混色)。接着为黑白纹理上色,最后您将学会创建丰富的色彩,并把上过不同色彩的纹理相互混合,得到简单的动画效果。我们在第一课的代码基础上进行修改。先在程序源码的开始处增加几个变量。出于清晰起见,我重写了整段代码。<br /> #includ转载 2010-08-05 22:06:00 · 1324 阅读 · 0 评论 -
OpenGL教程之漫游3D世界
<br />这一课是由Lionel Brits(βtelgeuse)所写的。在本课中我们只对增加的代码做解释。当然只添加课程中所写的代码,程序是不会运行的。如果您有兴趣知道下面的每一行代码是如何运行的话,请下载完整的源码,并在浏览这一课的同时,对源码进行跟踪。<br /> 好了,现在欢迎来到名不见经传的第十课。到现在为止,您应该有能力创建一个旋转的立方体或一群星星了,对3D编程也应该有些感觉了吧?但还是请等一下。不要立马冲动地要开始写个Quake IV,好不好...。只靠旋转的立方体还很难来创造一个可以决转载 2010-08-05 22:08:00 · 1084 阅读 · 0 评论 -
碰撞检测与模型运动
原 文:Lesson 31: Collision Detection and Physically Based Modeling Tutorial译 者:Wguzgg 下面我们要讨论的是如何快速有效的检测物体的碰撞和合乎物理法则的物体运动,先看一下我们要学的: 1)碰撞检测 ·移动的范围 — 平面 ·移动的范围 — 圆柱 ·移动的范围 — 运动的物体 2)符合物理规则的物体运动 ·碰撞后的响应 ·在具有重力影响的环境下应用Euler公式运动物体转载 2010-11-17 22:36:00 · 916 阅读 · 0 评论