各种图形库介绍

各种图形以及其它库
图形库,著名的有两个:OpenGL和DirectX。
OpenGL(“Open Graphics Library”)是一个性能卓越的三维图形标准,是图形硬件的软件接口。他是在SGI等多家世界闻名的计算机公司的倡导下,以SGI的GL三维图形库为基础制定的一个通用共享的开放式三维图形标准,具有使用简便、效率高、便于移植、性能卓越等特点,独立于窗口系统和操作系统,以它为基础开发的应用程序可以十分方便地在各种平台间移植。目前包括Microsoft、SGI、IBM、DEC、SUN、HP等大公司都采用了OpenGL做为三维图形标准,许多软件厂商也纷纷以OpenGL为基础开发出自己的产品,其中比较著名的产品包括动画制作软件Soft Image和3D Studio MAX、仿真软件Open Inventor、VR软件World Tool Kit、CAM软件ProEngineer、GIS软ARC/INFO等等。包括迪斯尼梦工厂等好莱坞厂商的大批电脑特效程序都是使用的OpenGL库。

OpenGL有两大经典教材
OpenGL体系结构审核委员会,Dave Shreiner, Mason Woo, Jackie Neider, Tom Davis 联合撰写的《OpenGL Programming Guide: The Official Guide to Learning OpenGL》(OpenGL编程指南),此书因封面为红色,被大家爱称为“红宝书”。
Richard S Wright和Benjamin Lipchak的《OpenGL SuperBible》(OpenGL超级宝典),是另一本合适的入门教材。
OpenGL结构评审委员会的《OpenGL Reference Manual》(OpenGL 参考手册),就和他的名字一样,它是一本文档大全,和“红宝书”相对应,他被称为“蓝宝书” 。
按照前辈的经验,有红蓝两宝书足矣。不过,OpenGL社区的实力雄厚的很,好为人师的大牛也不少。有一位昵称NeHe的大牛,他在自己的网站上放了一整套完整的OpenGl教程,实例教学讲解清晰,而且会跟随OpenGL的发展在随时更新,更重要的是,除了C/C++的标准例程之外,他的例程还几乎涵盖世界上的所有语言,如果想用自己喜欢的独特语言,可以参考页面最下方的联接。NeHe的教程在http://nehe.gamedev.net/。同时,Nate Robin的例子对你理解OpenGL很有帮助。http://www.gamedev.net/reference/articles/article839.asp。
OpenGL最权威的资料在他的官方网站 http://www.OpenGL.org的Documentation中,可以下载到官方教程和例子程序。

DirectX是微软提供的一种应用程序接口(Application Interface)。简单的说它是一个提高系统性能的辅助加速软件。”Direct”的意思是”直接的”,而”X”则意味着”无限”。事实上它是一个.dll(动态连接库Dynamic link library)的文件集合。通过这些动态连接库文件,开发者们可以在不考虑设备差异的情况下访问硬件最底层。这项特性使程序员从无尽的硬件驱动程序中解脱了出来。DirectX同时封装了一些COM(Component Object Model)对象,这些 COM 对象为访问系统硬件提供了一个主要的接口。DirectX是一种游戏开发利器,Windows下的大量游戏在制作时都用到了它。DirectX包括很多组件,他们按功能划分为:DirectDraw,Direct3D,DirectMusic,DirectSound,DirectShow,DirectPlay,DirectInput,DirectSetup and AutoPlay等等。
在DirectX中最重要并且最具有代表性的是Direct3D和DirectDraw(在DirectX7.0之后被合并进了Direct3D),它的主要功能就是3D图形。Direct3D和OpenGL处于竞争关系,很难评论他们孰优孰劣。OpenGL专攻图形,而且适用众多平台。而DirectX可以在Win平台下获得多样的服务,而不止是图形。
如果你想学习如何使用DirectX,那么必须得掌握BASIC或Delphi或C++/C#等语言中的一种,纯C是不行的。同时,掌握Win32编程技术以及一些其他相关的知识也是必需的。
Frank D.Luna的《DirectX 9.0 3D游戏开发编程基础》可以作为你的入门书。DierctX合适的入门书其实很多,重点是要注意版本要跟上最新的DircetX才行。
微软的东西,最标准的教材就是MSDN。想深入学习DirectX,就去翻阅MSDN好了。而且,那里也有不错的入门资料。

OpenGL和DirectX的最新进展往往是由显卡厂商作出的,经常去Nvidia和ATI的主页上去关注最新技术是个好选择。
其他库,比如用于构建窗口程序框架的GTK、QT、wxWidgets等,用于科学计算的Blitz、CGAL,网络通讯的ACE,加解密用的Crypto++,测试用的CppUnit,XML用的xml4c、XMLBooster、Xerces c++,当然也少不了即将加入标准库的Boost,这些库由于在不断的发展进化中,实体出版物相对较少,但他们自带的电子文档和相关主站上的资料通常足以满足需求。请记住,既然这些库的作者把他们发布给大家用,他当然要给齐资料让我们知道怎么用才行。

Feekood脚本语言(一种简便的3D图形语言)

宣言:do less, work more

Feekood是一种人工智能脚本技术,旨在建立一个开放的脚本语言平台,解决一系列的应用软件快速开发的问题。

Feekood结合了面向对象设计(OOP)、面向过程设计各自的优势,在传统程序设计逻辑的基础上,提供了更多更丰富的内容,通过提供丰富的编程接口和模板程序,大大简化编码工作,全面提高软件开发的工作效率。

Feekood提供平台化的编程方式,网络化的资源管理,让您可以随时随地开展工作。基于Feekood核心技术,可以迅速搭建游戏开发平台、大数据处理和分析、3D智能展现平台和行业应用平台。

我们相信“大道至简”,以最简单的方式完成工作,就是最好的选择。您只需掌握少量语法,参照样例程序,就可以将原本复杂的事情简单化,使开发者能够集中时间和精力关注业务,轻松地做出更好的软件产品。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注