本文的 2.1 - 2.4 部分是针对Borland C++ Builder用户的头文件是O
C++5.0以上版本的头文件也行。将C:\oglskd\bclib下的文件拷至$BCB\Lib下。
为便于编写代码,要将opengl的帮助文件加入搜索范围。在BCB3.0中可用Help|Customize调出OpenHelp设定程
序,在每一页中用Edit|Add Files到\program file\common\Borland Shared\MSHelp下找到必要的文件。
说明:系统安装的dll与程序链接时使用的lib要一致,否则像素格式设置调用会失败。
2.2、GLUT库
为了在初期简化编程负担,可以使用独立于平台的GLUT库,在网上可以找到库、源文件、说明书,基于GLUT的
WINDOWS应用程序是WIN32 CONSOL程序,主程序是int main(int,void **),在其中可以只用两三行打开一个窗口,
并以填写几个回调函数的方式实现程序功能,省掉了与窗口系统打交道的麻烦。另外,该库是做跨平台应用的首选
,它在几乎所有的平台上都可用。目前还没有找到将glut与VCL可视开发结合的方法,所以本教程并没使用它。
安装glut运行库:将这些DLL文件(V3.6)(V3.7β)复制到windows\system下,其中有两种版本的dll,分别对应
MS(*32.dll)和SGI实现的OpenGL(*.dll)。将其中的glut.h复制到$BCB\Include\gl下, 用BCB的implib.exe制作导
入库(*.lib),放到$BCB\Lib下。
GLUT使用指南<稍候>
2.3、GLAUX库
有一个glaux库(即red Book所用的编程环境),可以大简化窗口界面设定过程,但太过简陋, 不推荐使用。可
是为了便于阅读Red Book,现将在BCB中使用glaux的方法简述如下:
安装glaux运行库:将BCB版aux库的DLL文件复制到windows\system下,将其中的glauximp.lib复制到$BCB\lib
下,或者用BCB的implib.exe制作导入库(*.lib)再复制到$BCB\Lib下。BCB中已经带有aux库的头文件, aux库的源
码在VC中带有。在程序之前加入:
USELIB("C:\Program Files\Borland\CBuilder3\Lib\glauximp.lib");
引号中为导入库所在的位置和名字。
GLAUX使用指南<稍候>
2.4、VCL元件
在CBuilder/Delphi环境下还可以使用各种VCL元件,常见的有:
下载并展开后,在BCB中加以安装即可,详情请自
行查阅其自带的readme,以后有空再逐个解说。本人推荐使用Daniel Plakosh的,简洁易用且带源程序,还可以用
BMP格式的图象作纹理。本教程后期将会基于TOpenGLPanel,但前面会用通用的方法,不必借助任何附加元件。
Daniel Plakosh said:“ Feel free to whatever you want with the component”
说明:该控件对中文支持不灵,另外其内部会自动调用wglMakeCurrent(null,null),所以在OnMouse事件中进
行选取时要调用先MakeOpenGLPanelCurrent()。
TOpenglPanel安装说明:
如果曾经装过老版本的TOpenGLPanel,请先御掉。
在File菜单下选Close All File以关闭所有文件。
在Component菜单下选Install Component。
在Install Component对话框中选Into New Package页 <必须Into New Package>
在Inot New Package页中如下填写各项:
Unit File Name:填入或浏览(Browse)寻找含路径的单元文件名,如:
C:\OpenGLv0.3BCB3\Component\TOpenGLPanel.cpp //不必完全相同,就看你把文件放在哪了
Search Path:这一条应该会自动填好。如:c:\OpenGLv0.3BCB3\ComponentPackage File Name:应该填为OpenGLPanel_DP
Package Description:应该填为OpenGL Panel Component
单击OK按纽
当提示“Package OpenGLPanel_DP.bpl will be built then installed. Conitnue?”时点“Yes”。
当编译完成后,在File菜单下选Save All,用默认的文件名!
现在OpenGL Panel Component就装好了,你可以在工具栏的最右端发现它。
调整BCB3的include及Lib的路径,例如:
INCLUDE:$(BCB)\include;$(BCB)\include\vcl;c:\dplakosh\openglv0.3bcb3\component
LIB:$(BCB)\lib\obj;$(BCB)\lib;c:\dplakosh\openglv0.3bcb3\component
// 不必完全一样,你的文件在哪就填哪
$(BCB)代表CBuilder所在目录。在你的系统路径中加入元件所在的目录,以便程序运行。
2.5、非Borland C++ Builder用户
Borland C++/OWL
Delphi /Pascal+API
VisiIt是很好用的,不过封装得太厉害,对于学习者