GLScene/zh CN

From Lazarus wiki
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Deutsch (de) English (en) français (fr) Bahasa Indonesia (id) 日本語 (ja) 한국어 (ko) português (pt) русский (ru) 中文(中国大陆)‎ (zh_CN)

关于

GLScene是一个基于OpenGL的3D库。它最初是为Delphi编写的,现在它可以工作C+ + Builder、Kylix、Delphi和Lazarus中。

其主要的特征是:

场景描述

  • 分层对象结构,有很多对象内存允许,易于扩展
  • 互动场景管理(许多 Delphi 专家)
  • 易于使用的对象旋转、运动功能。
  • 预定义的对象(立方到茶壶、雪碧等),易于扩展
  • 结构对象(虚拟立方体,代理对象)管理复合对象
  • 程序的对象(地形,revolution solids,管道,tesselators……)
  • 2D和1D对象(精灵,线,样条支持)完全集成支持
  • HUD的对象(在二维坐标绘制精灵)
  • 实用对象(网格,球场,箭头……)
  • 支持类直接访问OpenGL
  • 相机和光源,可以用在场景中任何对象的层次结构
  • 动作对象可以附加到对象动画,易于扩展
  • 每个对象特殊效果(前/后对象渲染和场景效果),容易扩展
  • 粒子系统的支持,任何对象或对象结构都可以是粒子
  • 3D Studio 文件导入自动精确矢量运算(使用给定的光滑组文件)和纹理坐标导入
  • 其他导入格式 : OBJ/OBJF, SMD, MD2, STL, TIN, PLY

材料(Materials)

  • 易于使用,优化,材料对象
  • 材料库分享与再利用材料
  • 光线,弥漫,发射,镜面反射和光亮的支持
  • 混合模式的支持(透明度,添加剂……)
  • alpha通道的自动生成
  • OpenGL纹理格式的支持,包括压缩的DXT、S3TC,等
  • 通用的插件着色器支持
  • 高效的Cg着色器支持类
  • 对于多态纹理图像支持(允许多种格式,以及程序上的纹理),易于扩展
  • 150多个预定义的颜色,如clrCornflowerBlue或clrCoolCopper(易于扩展),除了标准的颜色和直接的RGBA规格
  • 易于使用的纹理运动和缩放属性,独立于纹理坐标
  • 32位位图支持类

渲染

  • 自动使用OpenGL(如果可用)
  • 一个好的工作模式使用相机焦距和目标
  • 一个或多个场景的多个角度切换
  • 雾化支持
  • 提供一个文件,打印任何颜色或分辨率位图
  • 动态分辨率变化的全屏幕支持
  • 反射和镜面效果
  • 动态阴影
  • 高性能大场景透明粒子系统支持
  • 自动载体剔除(分层或每个对象)

动画

  • 时间进程的事件传播
  • 骨骼动画(每个顶点多个骨骼)
  • 帧插值和变形目标
  • 易于行为扩展
  • 动态物理:惯性,加速度,阻力中的应用
  • 自动,实时场景节奏

接口

  • 易于使用的功能方便拾取对象
  • 摄像机运动辅助函数
  • 拾取对象平移辅助函数
  • 用于屏幕和世界坐标系之间的转换,光线投射

实用程序(Utilities)

  • 优化结构功能和实用程序(矢量,四元数和矩阵...)
  • 支持三次样条函数和类
  • 网格处理和优化(分层、顶点缓存等)
  • 点击组件几次就可以使用全功能的屏幕保护程序
  • 精确到帧的速率测定
  • 异步定时器(多线程)
  • 操纵杆支持
  • 异步键盘接入,支持键盘映射

截图

Gl effect.jpg Gl cel.jpg Gl trinity.jpg
Gl ode.jpg

作者

作者: initially Mike Lischke 这段时间由 Eric Grange维护 LCL 接口: Christian Ulrich

下载

分支

一个大的更新(截止 2012-05-03)GLScene在:wiki.glscene.info

最新 (v1.0.0.2)

  • 新的快照可以在这里找到 Lazarus CCR 页面。今天对原CVS存储库中的功能及错误做了修正,这应该是相同的。然而,仍有一些遗失。不会有“Lazarus-with-GLScene-Installer”这个新版本,除非别人创建它。

--Crossbuilder 20:16, 18 7月 2007 (CEST)

过时

较旧的版本(0.9.1.6)可以在 Lazarus CCR页面 找到,连同Lazarus 安装和GLScene已经在IDE和GlScene的演示里。

更新:这个很老了,如果可能的话使用svn checkout(见下文)。

SVN

在这里检出源文件 http://svn.freepascal.org/svn/fpcprojects/glscene/trunk/

使用命令:

svn co http://svn.freepascal.org/svn/fpcprojects/glscene/trunk glscene

这将下载分支到你的glscene目录。

你Windows你可以使用tortoise SVN或其它工具。

Bug报告

Bug反馈/功能要求 请选择"Lazarus-ccr"项目中的"glscene"分类,感谢。

更新日志

  • 18.07.2007 快照发布版本 1.0.0.2
    • 调整了些东西,它能工作在最新的lazarus SVN版本
    • 添加位图对象到SceneEditor
    • 修正SceneEditor中另一个AV
    • 将所有补丁和错误修正from original glscene cvs repo like dynamic textures ..
  • 13.06.2007 快照发布版本 1.0.0.1
    • 合并所有补丁和修正原始GLscene cvs报告
    • 改进场景编辑器(崩溃较少,但仍需要一些关爱)
      提示:经常保存项目 ;-)
    • 分离mmsystem的依赖从通用声音支持,如FMOD在Linux下是可用的。
    • 更多 ..
  • 01.12.06 增加了对ODE的支持,GTK2和Cg着色器在Linux上的支持(ODE仅限于正常释放,不支持cone、ccylinder 和terrains)。
  • 10.08.05 太多的变化,张贴在这里,查看CVS历史
  • 16.07.05 GLScene 0.9.X 端口
  • 查看GLScene SourceForge帐户的完整日志

状态: Beta

安装 1.0.0.2

需要FPC 2.1.4或更高版本,及lazarus0.9.23以上。11348或更高 !!

  • 提取源文件
    • ZIP:
      • 在 "lazarus/components/" 下执行 "unzip glscene-1.0.0.2.zip",这将创建 lazarus/components/glscene/ 文件夹
    • SVN:
      • 在 "lazarus/components/" 下执行
        svn co http://svn.freepascal.org/svn/fpcprojects/glscene/trunk glscene
        ,这将创建 lazarus/componets/glscene/ 文件夹
      • Tortoise SVN: 手动在lazarus/components/下创建文件夹 "glscene", 右击文件夹的空白处选择TortoiseSVN下的 "SVN Checkout(检出)...",在 "URL of repository(版本库URL)"中添加
        http://svn.freepascal.org/svn/fpcprojects/glscene/trunk
        并确定。
  • 完成安装:
    • 复制 "lazarus/components/glscene/globallinks/*.lpl" 到 "lazarus/packager/globallinks/"
    • 打开 Lazarus
    • 在"包"菜单下选择 "配置已经安装的包 ..."
    • 在 "Available packages(可用的软件包)" 中选择 "glscenelazarus"
    • 点击 "安装所选" 按钮
    • 点击 "保存并重建IDE" 按钮
      • 注意:有可能会出现"jpegforlazarus"未找到的错误。如果是的话,你可以执行以下操作:
      • 包菜单 --> 打开包文件...
      • 选择 "glscenelazarus" (版本 1.0.0.3) 后点击 "打开..."
      • 在"Required Packages(所需的软件包)"列表中移除"jpegfromlazarus"
      • 查看"jpeg"单元,在/lazarus/components/glscene/Source/base,替换"LazJPEG"(在uses部分)为"LazJPG"(ImagesForLazarus包)
      • 保存并重复上述四个步骤。
      • 提示:你应该安装了"ImagesForLazarus"包,如果没有,操作方式和安装"glscenelazarus"类似。
    • 重复上述4个步骤安装你需要的软件包。
      • 注:在glsceneode和glscenecgshader安装时,需要将相关的库安装在系统上。
    • 注:你可以尝试选择一个或全部软件包。不过,我喜欢一个一个安装,这样可以查看它的错误,如果出现错误的话;)
    • 安装 "glscenelazarus" - 错误: (只需要使用glscene-1.0.0.2.zip,在SVN中这些已经修订)
      • 更正单元 GLLCLViewer: procedure TGLSceneViewer.CreateParams(var Params: TCreateParams); - 在 procedure TGLSceneViewerLCL.CreateParams(var Params: TCreateParams);
      • 更正单元 GLLCLViewer: procedure TGLSceneViewer.EraseBackground(DC: HDC); - 在 procedure TGLSceneViewerLCL.EraseBackground(DC: HDC);
      • 更正单元 GLLCLFullscreenViewer: Change "RegisterClasses([TGLSceneViewer, TGLFullScreenViewer]);" 为 "RegisterClasses([TGLFullScreenViewer]);"
  • 软件包列表:
    • glscenelazarus 主要包
    • glscenecgshader Cg 渲染组件
    • glsceneode ODE 组件
    • glss_fmodlaz FMOD 组件
    • gls_winonly 仅Windows,包含声音支持mmsystem,BASS支持和GLScreenSaver组件
  • 编译 "演示" - 错误:
    • 如果未找到类 - TGLSceneViewer:修改(演示)GLLCLViewer - 为 GLViewer

安装 0.9.6.1

  • 创建目录 lazarus\components\GLScene
  • 在目录中解压zip文件
  • 打开 Lazarus
  • 在组件/打开包文件(.lpk)中,选择lazarus\components\glscene\Lazarus下的glscenelazarus.lpk
  • (点击编译是必须的,如果你不想安装组件到IDE)
  • 点击安装
  • 要使用其他软件包重复这些步骤(打开.lpk,点击安装),注:这些额外的包需要额外的库(FMOD、ODE、CG)。
    • glscenecgshader.lpk : Cg着色器(仅适用于NVidia显卡?)
    • glsceneode.lpk : 对ODE库支持
    • glsss_fmodlaz.lpk : 对FMOD库支持
    • gls_winonly.lpk : 只可以安装在Windows上。包含屏幕保护以以及BASS库支持。

提示:如果出现“GLGraphics 未找到”的错误,不要担心,只要在工具中重新构建Lazarus,或许就可以解决。

Lazasrus中安全安装GLScene 可以查看:二进制Win32发布http://www.skinhat.com/lazarus

对于Linux新用户只是个警告: GLScene目前并不能“拿来就用”,需要做些添加或修改。

更新:这个不准确了。Lazarus中的Glscene 是相当出色的,可以实现在Windows及Linux中“拿来就用”。

新的trunk 版本(见上文SVN)在Linux上正常工作,一些演示(约20%)不能正常使用,但大多可以使用。我们也在努力着让它可以在其他Unix平台上完美运行。

在非Windows丢失/不能工作的组件是:glKeyboard (使用WINAPI,但不是必须的居多)、glSound(使用mm,我们需要使用OpenAL或者类似的)。

一个 全功能的Windows安装程序 计划。

帮助

  • 可以在 GLScene 首页 找到
  • 联系 #glscene channel at freenode.net