当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: OpenGL最初是由Silicon图形公司开发的底层图形库规范。
 

 

 ·取得当前目录的上一级目录     »显示摘要«
    摘要:self.edit2.text := extractfilepath(self.edit1.text + \..); ......
 ·buildingactivexcontrolswithdelphi3     »显示摘要«
    摘要:introduction this course is about how to build an activex control using delphi 3. in addition to presenting a tutorial on how to use delphi 3s wizards to convert an existing vcl control into an activ......


Delphi下的OpenGL开发
opengl最初是由silicon图形公司开发的底层图形库规范.你的系统中准确实现这个规范的部分,通常被称为opengl驱动,它允许你使用几何集合(点,线,多边形,图像等等)来描述你希望表现的场景.让肉眼观察起来较为舒适的中等规模场景,通常在毫秒级的速度上实现,这意味着该库文件有足够的能力来支持你创建一个生机勃勃的虚拟世界.

【程序编程相关:db2relocatedb 工具

【推荐阅读:DB2 Performance Expe

opengl驱动一般以二进制库文件的形式提供.它能够动态的连接到你的程序中.在windows平台上,它将是成为dll的形式(在你的系统目录下检查opengl.dll).自从delphi能够使用任何dll开始,它对opengl 3d编程的能力就像其他任何语言一样容易了.本文将帮助你获得在delphi中进行opengl开发的有效知识. 【扩展信息:DB2 基础关于DB2 UDB监控的一些

数学基础

opengl拥有强大的数学基础,因此对它功能的限制完全取决于你的想象能力(译者注:没有做不到,只有想不到).对于理解那些公理与引理,更好的是让我们立刻认识一个简单的3d坐标系统,它是3d编程中惯用的坐标系统.如下:

你应该如何理解你的屏幕(蓝色的方块)在场景中的放置位置呢?发出四条射线并形成屏幕的那个点,是该想象空间中的视点(point of view).opengl让你调用两个简单的函数来定义这个场景

glmatrixmode(gl_projection);

glfrustum(-0.1, 0.1, -0.1, 0.1, 0.3, 25.0);

在这个调用的过程中的-0.1,0.1,-0.1,0.1定义了这个可视屏幕的左上角与右下角坐标;0.3指定视点到屏幕的距离(就好象“近剪贴板”(near clipping plane))同时25.0指定“远剪贴板”(far clipping plane).任何近剪贴板前面的物体以及远剪贴板后面的物体都将不可见.当然,你能够任意摆弄这些数字,以使他们适合你需要的场景.

从基本元素(primitive)到对象

现在开始最有意思的部分:对象.opengl仅仅支持以下几种基本几何图形:点,线与多边形.没有表面或者更高级的图形(比如球状图形)能被作为基本图形元素绘制.但是它们能够用多边形完美的模仿出来.随意看看现代3d游戏,你会发现它们完全由三角形建立.因此,我们不会被此限制所约束.

对象的绘制非常类似pascal语言编程.每个块都应该被begin-end包含着,更为确切的说是glbegin()与glend().如同下面的例子:

const s=1.0; d=5.0;

...

glbegin(gl_triangles);

glvertex3f( -s, 0, d); glvertex3f(s, 0, d); glvertex3f(0, s, d);

glend;

这是个简单的三角形.它距离你的视点有5个单位,自身高1个单位,宽2个单位.

这是屏幕截图:

即使它看起来不象3d图形,但它是我们的初始块.在下面你可以看到这个例子的源代码.

在你开始钻研代码前,还有些话要说.每次opengl编程,都包含一些初始化输出设备的os设定(os-specific)代码.
...   下一页
    摘要:利用setwindowshookex(wh_mouse?,mousehookhandler,hinstance,0)捕捉鼠标信息,其中mousehookhandler的格式如下: lresult callback mouseproc( ??? int ncode,?// hook code??? wparam wparam,?// message identifier??? lparam lp......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE