专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅
这是本人学习江超宇翻译的NeHe OpenGL Tutorial 的结果,这个教程新手看很实用,只要你懂一点点OpenGL和WIN32就可以看的很明白.创建了一个新的 Win32 程序(并非控制台程序) 之后, 链接 OpenGL 的库文件。操作步骤是: Project-> Settings, 点击 LINK 标签, 在 “Object/Library Modules” 下面那一行的开始处(在kernel32... [阅读全文] [PDF]
由于Delphi自带OpenGL.pas是1.0版的,而现在实际使用的至少是1.1版,Windows纯软件模拟方式也是1.1版的,所以要自己导入一些必要的函数。也可用一些开源的免费单元,如Mike Lischke的OpenGL12.pas。当然,自己写可以设计得更简洁,而且不必在过于超前完备的庞大代码中找错误。首先引入必要的单元Windows, Messages, OpenGL要增加一些必要的扩展。const // GL_EXT_bgra GL_BGR_EXT = $80E0; GL_BGRA_EXT = $80E1; // pol... [阅读全文] [PDF]
{呵呵,这两课早就翻译好了,一直没贴,大家久等了(有人再等吗?)简单的透明OpenGL中的绝大多数特效都与某些类型的(色彩)混合有关。混色的定义为,将某个象素的颜色和已绘制在屏幕上与其对应的象素颜色相互结合。至于如何结合这两个颜色则依赖于颜色的alpha通道的分量值,以及/或者所使用的混色函数。Alpha通常是位于颜色值末尾的第4个颜色组成分量。前面这些课我们都是用GL_RGB来指定颜色的三个分量。相应的GL_RGBA可以指定alpha分量的值。更进一步,我们可以使用glColor4f()来代替glColor3f()。绝大多数人都认... [阅读全文] [PDF]
{欢迎进入第九课。到现在为止,您应该很好的理解OpenGL了。『CKER:如果没有的话,一定是我翻译的罪过......』。( myling补充道:我的罪过更大,呵呵)您已经学会了设置一个OpenGL窗口的每个细节。学会在旋转的物体上贴图并打上光线以及混色(透明)处理。这一课应该算是一课中级教程。您将学到如下的知识:在3D场景中移动位图,并去除位图上的黑色象素(使用混色)。接着为黑白纹理上色,最后您将学会创建丰富的色彩,并把上过不同色彩的纹理相互混合,得到简单的动画效果。我们在第一课的代码基础上进行修改。先在程序源码的开始处增加几个变... [阅读全文] [PDF]
{这一课我会教您如何使用三种不同的纹理滤波方式。教您如何使用键盘来移动场景中的对象,还会教您在OpenGL场景中应用简单的光照。这一课包含了很多内容,如果您对前面的课程有疑问的话,先回头复习一下。进入后面的代码之前,很好的理解基础知识十分重要。我们还是在第一课的代码上加以修改。跟以前不一样的是,只要有任何大的改动,我都会写出整段代码。首先我们还要加进SysUtils单元和Glaux单元。}Uses SysUtils, opengl, windows, Messages, Glaux In \'..\\..\\GLAUX\\Glaux... [阅读全文] [PDF]
{贴图可以极大的节省CPU时间。呵呵,但是这一节费了我比较多的时间 : (因为用到了opengl的辅助库,现在这个库的函数已经很少有人用了,但是我还是找到了,感谢zdcnow(磁效应),他给我提供的这个辅助库的delphi版本。在学习本节之前,请大家到网上下载glaux.dll、Glaux.pas文件,并加到项目中。好了,让我们继续OPENGL之路.首先我们需要加进SysUtils单元,因为我们这节要用到文件操作,我们还要将Glaux单元加进来。然后我们在第一课的基础上加上几个变量,xrot , yrot 和 zrot 。这些变量用... [阅读全文] [PDF]
将CKER翻译的NeHe的VC 的OPENGL框架转成了Delphi版,希望对用Delphi学习OPENGL的兄弟有所帮助,不知为什么,我的Delphi环境下无法直接运行,但是在别的机器上好像没问题我的机器只能编译后运行EXE文件。感谢NeHe提供的这么好的框架,感谢CKER翻译的VC的资料Program Project1;Uses opengl, windows, Messages;Const WND_TITLE = \'OPenGl 基本框架\'; //标题Var //==============================... [阅读全文] [PDF]
继续上一节中我教给您三角形和四边形的绘制方法。这一节将教您给三角形和四边形添加2种不同类型的着色方法。使用Flat coloring(单调着色)给四边形涂上固定的一种颜色。使用Smooth coloring(平滑着色)将三角形的三个顶点的不同颜色混合在一起,创建漂亮的色彩混合。继续在上节的glDraw上修改。Procedure glDraw();Begin glClear(GL_COLOR_BUFFER_BIT Or GL_DEPTH_BUFFER_BIT); // 清除屏幕和深度缓存 glLoadIdentity(); // 重置... [阅读全文] [PDF]
上一节中教给您三角形和四边形的着色。这一课将教您如何将这些彩色对象绕着坐标轴旋转。其实只需在上节的代码上增加几行就可以了。下面将整个例程重写一遍。方便您知道增加了什么,修改了什么。增加两个变量来控制这两个对象的旋转。这两个变量加在程序的开始处其他变量的后面( bool fullscreen=TRUE;下面的两行)。它们是浮点类型的变量,使得我们能够非常精确地旋转对象。浮点数包含小数位置,这意味着我们无需使用1、2、3...的角度。你会发现浮点数是OpenGL编程的基础。新变量中叫做 rtri 的用来旋转三角形, rquad 旋转四边... [阅读全文] [PDF]
Lesson 15 具有纹理贴图的轮廓字体(Texture Mapped Outline Fonts)   在发布了前两篇关于位图字体和轮廓字体的教程以后,我收到很多邮件,很多读者都想知道如何才能给字体赋予纹理贴图。你可以使用自动纹理坐标生成器。它会为字体上的每一个多边形生成纹理坐标。  一个小注释,这段代码是专门针对Windows写的,它使用了Windows的wgl函数来创建字体,显然,Apple机系统有agl,X系统有glx来支持做同样事情的,不幸的是,我不能保证这些代码也是容易使用的。如果哪位有能在屏幕上显示文字且独立于平台的代码,请告诉我,我将重写... [阅读全文] [PDF]
  欢迎来到另一课教程,这次我将教你如何使用位图字体,也许你会对自己说:“在屏幕上显示文字有什么难的?”。但是你真正尝试过就会知道,它确实没那么容易。   当然,你可以载入一段美术程序,把文字写在一个图片上,再把这幅图片载入你的OpenGL程序中,打开混合选项,从而在屏幕上显示出文字。但是这种做法非常耗时。而且根据你选择的滤波类型,最终结果常常会显得很模糊,或者有很多马赛克。另外,除非你的图像包含一个Alpha通道,否则一旦绘制在屏幕上,那些文字就会不透明(与屏幕中的其它物体混合)。  如果你使用过记事本、微软的Word或者其它文字处理软件,你会注意到所有... [阅读全文] [PDF]
Lesson 14 轮廓字体(Outline Fonts)   这节课继续上一节课课的内容。在第13课我们学习了如何使用位图字体,这节课,我们将学习如何使用轮廓字体。  创建轮廓字体的方法类似于在第13课中我们创建位图字体的方法。但是,轮廓字体看起来要酷100倍!你可以指定轮廓字体的大小。轮廓字体可以在屏幕中以3D方式运动,而且轮廓字体还可以有一定的厚度!而不是平面的2D字符。使用轮廓字体,你可以将你的计算机中的任何字体转换为OpenGL中的3D字体,加上合适的法线,在有光照的时候,字符就会被很好的照亮了。  一个小注释,这段代码是专门针对Windows写... [阅读全文] [PDF]
1 共13条 分1页