-
近日因为工程关系接触的
vcl
,
一个评价相当高的
delphi + opengl
开源引擎,
开发一般的
2d3d
游戏完
全足够。
好像没看见这里讨
论过,简单介绍一下,供初学者参考
。已证明
delphi7
可用,之后的版本没试验。
官方网站:
/
source
forge
:
/
帮助文件:
//
*checkout*/glscene/Help/?rev=1.6
安装时可能会有些问题,以下的经验多少会有点帮助:
1
、编译的时候找不到
。该文件在压缩包的
Source
目录下,拷
贝到要安装版本的目录下就没问题。
2
、安装
时候出现找不到
p>
的错误。这个
dll
包含在
nvidia
的
Cg
Compiler
或
Cg Toolkit
中,可以到官方网站
/
下载,似乎是针对
< br>n
卡硬件的驱动,不知道其他卡上能不能正常运行。这个
dll
只影响
cgshaders
里的
demo
。
3
、找不到
。这个错误有点奇怪,一些
旧版本的压缩包都包含
plugin
目录,附件里包含一个
p>
v09b_D6
版本的
plugin
目录,解压到
source
目录就可以顺利编
译。
如果能顺利安装,请看
一下
demo
里面的例子,的确是一个不错的引擎。
GLScene
库的完整安装说明
<
/p>
GLScene
开源库为
Delphi<
/p>
提供了基于
OpenGL
的
3D
框架,
通过
GLSce
ne
的组件,
你可以轻松的创建和渲染你的
3D
场景。
而令
人惊讶的是,对于
这么优秀的开源库,在网络上居然找不到一个完整的安装说明,甚至于
GLScene<
/p>
本身的官方文档也是不完整
的。
基于这样的状况,
我觉得很有必要和大家分享一下
GLScene
库完整的安装步骤。
我的实践环境是
WindowsXP + Delphi 6.0 +
Delphi
Web ScriptII 2.0
+
GLScene 1000714
,各位的安装版本如有不同,
可能需要稍作修改。
为了描述方便,
这里用
{Delphi}
表示
Delp
hi
的安装目录,
{DWSII}
表示
Delphi Web ScriptII
的解压目录,
{GLScene}
表示
GLScene
p>
的解压目录。对于
Delphi Web ScriptII
库和
GLScene
库,你也可以直接通过上
文的相关链接获取完整的压缩包。
在
Delphi
的
Library
Path
列表中,添加如下路径:
{DWSII}Source
{GLScene}Source
{GLScene}SourceBase
{GLScene}SourceCgShaders
{GLScene}SourceDesignTime
{GLScene}SourceFileFormats
{GLScene}SourceGameAPIs
{GLScene}SourcePhysicsAPIs
{GLScene}SourcePlatform
{GLScene}SourcePlugIn
{GLScene}SourceScriptingAPIs
{GLScene}SourceShaders
{GLScene}SourceSoundAPIs
{GLScene}SourceVideoAPIs
搜索<
/p>
{GLScene}
中的
、
、
、
、
和
,将它们全部拷贝到
{Delphi}Pro
jectsBpl
目录,然后
安装
{D
WSII}
包,最后安装
{GLScene}Delphi6<
/p>
目录下的
、
GL
S_
、
、
GL
S_
、
GLS_
、
GLSS_
和
GLSS_
包。
p>
GLScene
基础
在开始使用
GLScene
之前先让我们了解一下<
/p>
GLScene
的基本构成。一个
GLS
cene
场景由以下几个基本物体构
成:
1.
基本场景
2.
摄像机
3.
灯光系统
4.
基本物体
5.
辅助物体
6.
材质贴图
7.
场景观察器
2.1
基本场景
在
GLScene
< br>中是以场景为基本构成对象。场景是所有其它物体的父容器,我们所构建的所有可视物体或特
效都将在场景中显示。
场景由
GLScene
(场景产生器)产生,一
个工程中可以有多个场景产生器,也就是说一个工程中可以同时
拥有多个场景。下面让我们来看一下如何产生一个场景,双击
中
GLScene
控件栏的
,这时会在窗体中显示
出一个
控件。表示我们已经成功的引进了一个场景,不过此时的场景中没有任何物体。我们继续
在窗体
中的
上双击鼠标左键。此时将会弹出场景编辑器:
图
2.1
场景编辑器
通过对象查看器我们可以:
·
创建摄像机
·
创建或导入我们需要的物体
p>
场景编辑器由工具栏和工作区两部分组成,我们的绝大多数操作都会在工作区中完成。
2.2
摄
像
机
摄像
机是察场和用户之间的视觉接口,用户只有通过摄像机才能观察场景中的内容。
创建摄像机
在场景观察器中选中
,然后单击鼠标右键弹出场景编辑器快捷菜单,其中添加摄
像机(
Add
Camera
)选
项将被激活,单击该按钮系统中将会添加一台摄像机如图
2.2
图
2.2
添加摄像机
摄像机关键属性
·
CameraStyle
/
摄像机类型
决定摄像机的类型
.
共有如下四个选项
:
透视摄像机,成像图为透视图(默认选项)
。
直角摄像机,成像图为直角图像。
平面设想机,成像图为
2D
效果,仅存在
XY
轴的概念。
< br>
自定义摄像机,你可以自由设置参数。
·
DepthOfView
/
景深
确定摄像机的景深。
影响当前摄像机的最大观察距离,超过这个距离的场景将被剪
切(不可见)
.
该属性仅在
Z
轴上产生影响,一般景深的默认值为
100
.
注意在
2D
模式中该属性将不起作用
.
·
Direction
/
方向
该
属性确定摄像机镜头所在的方向,由
X
、
Y
、
Z
三个轴共同作用,且这三个方
向上的值均为浮点类型,最
大取
值为
1
最小取值为
-1
。
·
FocalLength
/
焦距
定义摄像机的焦距。
调整当前摄像机的焦距(调节过度会使图像显示走样)
.
·
SceneScale
/
场景缩放
缩放摄像机中的场景。
在
2
D
场景中产生的线形缩放,相当于调整景深的效果。
·
Position
/
位置
该属性确定摄像机镜头所在的方向,由
X
、
Y
、
Z
三
个轴共同作用,且这三个方向上的值均为浮点类型。
·
TargetObject
/
成像目标
设置摄像机所指向的目标物体
.
当为摄像机选择一个目标物体时摄像机本身的方向性将被忽略
,它将始终指向目标物体。
·
NearPlane
/
近景
获得当前摄像机的视角值。
返回值由当前摄像机的景深和焦距决定。
2.3
灯光
和现实世界一样
GLScene<
/p>
中也需要灯光来照亮场景中的物体。灯光的设置和大程度上决定了场景
效果。
一个
OPENGL
场景中最多支持
8
盏灯光(实际上和
< br>OPENGL
的版本和机器配置有关)
。过多的灯光将<
/p>
使渲染
速度降低。请慎重使用
。
创建灯光
在
GLScene
< br>场景编辑器其中选中场景物体(
Scene
object
)
,然后单击鼠标右键,场景编
辑器快捷菜单此
时添加物体
(Add
object)
选项将被激活,单击该按钮系统中将会弹出其子菜单,选择
第一项(
LightSourc
e
)
。如图
2.3
一盏灯光将会被加入到当前场景中。如图
2.4
图
2.4
添加灯光
灯光属性
·
Ambient
/
环境色
获取或设置周围环境的颜色
。
·
ConstAttenuation
/
衰减常量
获取或设置灯光的衰减量。
·
Diffuse
/
散射光颜色
获取或设置漫反射的灯光颜色
。
·
LinearAttenuation
/
线形衰减
读取或设置灯光的线形衰减值
。
·
QuadraticAttenuation
/
二次方程式衰减
读取或设置二次方程的衰减值
。
·
LightStyle
/
灯光类型
获取或设置灯光的类型
。
灯光类型包括
lsSpot
聚光灯
,
lsParallel
平面灯
,
lsOmni
泛光灯。
·
Shining
/
灯光强度
获取或设置灯光的强度
。
·
Specular
/
镜面效果
获取或设置境面效果
。
·
SpotCutOff
/
投射范围
(聚光灯)
获取或设置灯光的投射范围
。
·
SpotDirection
/
投射方向(聚光灯)
获取或设置聚光灯投射的方向
。
·
SpotExponent
/
投射指数(聚光灯)
获取或设置聚光灯的投射指数
。
2.4
基本物体
场
景中有了摄像机和灯光只是搭建了一个最基本的平台,而我们主要最关心则如何是向这个平台中添加物
体,使其丰富起来。
GLScene
中提供了一些内
置的基本物体供我们使用,这些物体的使用方式大体相同,以下仅举一例
(CUBE)
来说明,以达到抛砖引玉的作用。
2.4.1
创建
CUBE
在场景编辑器中选中场景物体(
Scene
Objects
)选项,然后单击
鼠标右键,在弹出的场景编辑器快捷菜
单中选择
”Basic
geometry-
> Cube”
,如图
2.5
所示:
< br>
图
2.5
创建
Cube
< br>此时一个
Cube
将被加入到场景编辑器中。如图
2.6
所示。
-
-
-
-
-
-
-
-
-
上一篇:七年级英语练习题
下一篇:七年级全册英语测试题