Difference between revisions of "GLScene/zh CN"

From Lazarus wiki
m (最新 (v1.0.0.2))
(One intermediate revision by one other user not shown)
Line 7: Line 7:
*hierarchical objects structure, with as many objects as memory allows, easily extendable
*互动场景管理(许多 Delphi 专家)
*互动场景管理(许多 Delphi 专家)
*structural objects (dummy cube, proxy object) for manageing composite objects
*procedural objects (heightfield, revolution solids, pipes, tesselators...)
*程序的对象(地形,revolution solids,管道,tesselators……)
*support for 2D and 1D objects (sprites, lines with spline support) fully integrated
*HUD objects (sprites rendered in 2D coordinates)
*Utility objects (grids, skydome, arrows...)
*support classes for directly accessing OpenGL
*camera and light objects that can be used anywhere in a scene objects hierarchy
*behaviour objects can be attached to objects for animation purposes, easily extendable
*per-object special effects (before/after object rendering and scene after-effects), easily *extendable
*support for particle systems, any object or object structure can be a particle
*3D Studio file import with automatic and precise normal vector calculation (using the given *smoothing groups of the file) and texture coordinate import
*3D Studio 文件导入自动精确矢量运算(使用给定的光滑组文件)和纹理坐标导入
*Other imported formats : OBJ/OBJF, SMD, MD2, STL, TIN, PLY
*其他导入格式 : OBJ/OBJF, SMD, MD2, STL, TIN, PLY
*easy to use, optimized, material object
*material library to share and reuse materials
*ambient, diffuse, emission, specular and shininess support
*support of blending modes (transparency, additive...)
*alpha-channel auto-generation
*support for OpenGL texture formats, including compressed ones (DXT, S3TC etc.)
*generic plug-in shaders support
*High-level Cg shaders support classes
*polymorphic image support for texturing (allows many formats as well as procedural textures), easily extendable
*more than 150 predefined colors like clrCornflowerBlue or clrCoolCopper (easily extendable) *in addition to standard colors and direct RGBA specifications
*easily to use texture movement and scaling properties, independently from texture coordinates
*32 bits Bitmap support class
*automatically uses the hardware OpenGL driver if available
*a well working camera model using focal length and targeting
*multiple viewers for one or more scenes, easy change of view through camera selection
*fog and depth-of-view support
*render to a file, a bitmap or to the printer in any color and pixel resolution
*full screen support with dynamic resolution changes
*reflections and mirror effects
*dynamic shadow casting
*high-performance scene-wide transparent particles system support
*automatic frustrum culling (hierarchical or per-object)
*propagation of time progression events
*frame interpolation and morph targets
*automatic, realtime scene cadenceing
Line 65: Line 65:
*optimized geometry functions and utilities (vector, quaternion and matrix...)
*cubic spline support functions and class
*mesh manipulation and optimization (stripification, vertex-cache awareness, etc.)
*component to make full-featured screen-saver in a few clicks
*precise frame speed determination
Line 208: Line 208:
* 联系 #glscene channel at freenode.net
* 联系 #glscene channel at freenode.net
[[Category:Game Development]]

Latest revision as of 10:16, 19 June 2015

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


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


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


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


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


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


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)


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

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


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


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


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


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


  • 18.07.2007 快照发布版本
    • 调整了些东西,它能工作在最新的lazarus SVN版本
    • 添加位图对象到SceneEditor
    • 修正SceneEditor中另一个AV
    • 将所有补丁和错误修正from original glscene cvs repo like dynamic textures ..
  • 13.06.2007 快照发布版本
    • 合并所有补丁和修正原始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


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

  • 提取源文件
    • ZIP:
      • 在 "lazarus/components/" 下执行 "unzip glscene-",这将创建 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)"中添加
  • 完成安装:
    • 复制 "lazarus/components/glscene/globallinks/*.lpl" 到 "lazarus/packager/globallinks/"
    • 打开 Lazarus
    • 在"包"菜单下选择 "配置已经安装的包 ..."
    • 在 "Available packages(可用的软件包)" 中选择 "glscenelazarus"
    • 点击 "安装所选" 按钮
    • 点击 "保存并重建IDE" 按钮
      • 注意:有可能会出现"jpegforlazarus"未找到的错误。如果是的话,你可以执行以下操作:
      • 包菜单 --> 打开包文件...
      • 选择 "glscenelazarus" (版本 后点击 "打开..."
      • 在"Required Packages(所需的软件包)"列表中移除"jpegfromlazarus"
      • 查看"jpeg"单元,在/lazarus/components/glscene/Source/base,替换"LazJPEG"(在uses部分)为"LazJPG"(ImagesForLazarus包)
      • 保存并重复上述四个步骤。
      • 提示:你应该安装了"ImagesForLazarus"包,如果没有,操作方式和安装"glscenelazarus"类似。
    • 重复上述4个步骤安装你需要的软件包。
      • 注:在glsceneode和glscenecgshader安装时,需要将相关的库安装在系统上。
    • 注:你可以尝试选择一个或全部软件包。不过,我喜欢一个一个安装,这样可以查看它的错误,如果出现错误的话;)
    • 安装 "glscenelazarus" - 错误: (只需要使用glscene-,在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


  • 创建目录 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