Difference between revisions of "GLScene/zh CN"

From Lazarus wiki
(Created page with "{{GLScene}} === 关于 === GLScene是一个基于OpenGL的3D库。它最初是为Delphi编写的,现在它可以工作C+ + Builder、Kylix、Delphi和Lazarus中。 其主...")
 
 
(7 intermediate revisions by one other user not shown)
Line 7: Line 7:
  
 
场景描述
 
场景描述
*hierarchical objects structure, with as many objects as memory allows, easily extendable
+
*分层对象结构,有很多对象内存允许,易于扩展
*interactive scene management (numerous Delphi experts)
+
*互动场景管理(许多 Delphi 专家)
*easy to use rotation and movement functions for each object
+
*易于使用的对象旋转、运动功能。
*predefined objects (all standards from cube to teapot to sprite), easily extendable
+
*预定义的对象(立方到茶壶、雪碧等),易于扩展
*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
+
*2D和1D对象(精灵,线,样条支持)完全集成支持
*HUD objects (sprites rendered in 2D coordinates)
+
*HUD的对象(在二维坐标绘制精灵)
*Utility objects (grids, skydome, arrows...)
+
*实用对象(网格,球场,箭头……)
*support classes for directly accessing OpenGL
+
*支持类直接访问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
  
 
材料(Materials)
 
材料(Materials)
*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
+
*alpha通道的自动生成
*support for OpenGL texture formats, including compressed ones (DXT, S3TC etc.)
+
*OpenGL纹理格式的支持,包括压缩的DXT、S3TC,等
*generic plug-in shaders support
+
*通用的插件着色器支持
*High-level Cg shaders support classes
+
*高效的Cg着色器支持类
*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
+
*150多个预定义的颜色,如clrCornflowerBlue或clrCoolCopper(易于扩展),除了标准的颜色和直接的RGBA规格
*easily to use texture movement and scaling properties, independently from texture coordinates
+
*易于使用的纹理运动和缩放属性,独立于纹理坐标
*32 bits Bitmap support class
+
*32位位图支持类
  
 
渲染
 
渲染
*automatically uses the hardware OpenGL driver if available
+
*自动使用OpenGL(如果可用)
*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
+
*时间进程的事件传播
*skeletal animation (multiple bones per vertex)
+
*骨骼动画(每个顶点多个骨骼)
*frame interpolation and morph targets
+
*帧插值和变形目标
*easily extendable Behaviours
+
*易于行为扩展
*dynamic physics : inertia, acceleration, damping and force application
+
*动态物理:惯性,加速度,阻力中的应用
*automatic, realtime scene cadenceing
+
*自动,实时场景节奏
  
 
接口
 
接口
*easy-to-use functions to determine picked objects
+
*易于使用的功能方便拾取对象
*helper functions for camera movements
+
*摄像机运动辅助函数
*helper functions for picked object's translation
+
*拾取对象平移辅助函数
*helper functions for converting between screen and world coordinates, raycasting
+
*用于屏幕和世界坐标系之间的转换,光线投射
  
 
实用程序(Utilities)
 
实用程序(Utilities)
*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
+
*精确到帧的速率测定
*asynchronous timer (multi-threaded)
+
*异步定时器(多线程)
*joystick support
+
*操纵杆支持
*asynchronous keyboard access, keymap support
+
*异步键盘接入,支持键盘映射
  
 
=== 截图 ===
 
=== 截图 ===
Line 81: Line 81:
  
 
=== 作者 ===
 
=== 作者 ===
Author: initially Mike Lischke<br>
+
作者: initially Mike Lischke
at time maintained by Eric Grange<br>
+
这段时间由 Eric Grange维护
LCL Port: [[User:Christian|Christian Ulrich]]
+
LCL 接口: [[User:Christian|Christian Ulrich]]
  
 
=== 下载 ===
 
=== 下载 ===
  
 
==== 分支 ====
 
==== 分支 ====
A much newer (as of 2012-05-03) GLScene exists here: [http://wiki.glscene.info wiki.glscene.info]
+
一个大的更新(截止 2012-05-03)GLScene在:[http://wiki.glscene.info wiki.glscene.info]
  
 
==== 最新 (v1.0.0.2) ====
 
==== 最新 (v1.0.0.2) ====
* A new snapshot release can be found at [http://sourceforge.net/projects/lazarus-ccr/files/GLScene/ Lazarus CCR Files page].
+
* 新的快照可以在这里找到 [http://sourceforge.net/projects/lazarus-ccr/files/GLScene/ Lazarus CCR 页面]。今天对原CVS存储库中的功能及错误做了修正,这应该是相同的。然而,仍有一些遗失。不会有“Lazarus-with-GLScene-Installer”这个新版本,除非别人创建它。
This should be almost identical to the original cvs repository of today in terms of functionality and bugfixes, however, there are still some parts missing. There wont be a "Lazarus-with-GLScene-Installer" with this new release, unless someone else creates it.
+
--[[User:Crossbuilder|Crossbuilder]] 20:16, 18 7月 2007 (CEST)
--[[User:Crossbuilder|Crossbuilder]] 20:16, 18 July 2007 (CEST)
 
  
 
==== 过时 ====
 
==== 过时 ====
An older release (version 0.9.1.6) can be found on the [http://sourceforge.net/project/showfiles.php?group_id=92177&package_id=98986&release_id=364007 Lazarus CCR Files page] together with a lazarus installer with GLScene already in the Lazarus IDE and GLScene demoes.
+
较旧的版本(0.9.1.6)可以在 [http://sourceforge.net/project/showfiles.php?group_id=92177&package_id=98986&release_id=364007 Lazarus CCR页面] 找到,连同Lazarus 安装和GLScene已经在IDE和GlScene的演示里。
UPDATE: This is pretty old now. If possible, use the svn checkout (see below).
+
 
 +
更新:这个很老了,如果可能的话使用svn checkout(见下文)。
  
 
=== SVN ===
 
=== SVN ===
you can checkout the actual source from<br>
+
在这里检出源文件
http://svn.freepascal.org/svn/fpcprojects/glscene/trunk/<br>
+
http://svn.freepascal.org/svn/fpcprojects/glscene/trunk/
  
The command would be: <br>
+
使用命令:
 
<pre>svn co http://svn.freepascal.org/svn/fpcprojects/glscene/trunk glscene</pre>
 
<pre>svn co http://svn.freepascal.org/svn/fpcprojects/glscene/trunk glscene</pre>
  
This will download the trunk (main) repository to "glscene" dir to whereever you invoked the command from.
+
这将下载分支到你的''glscene''目录。
  
In windows you can use clients like tortoise SVN and others.
+
你Windows你可以使用tortoise SVN或其它工具。
  
 
=== Bug报告===
 
=== Bug报告===
  
[http://bugs.freepascal.org/ Bug Reporting/Featurerequest] Please select Project "Lazarus-ccr" and Category "glscene" for your reports. Thanks.
+
[http://bugs.freepascal.org/ Bug反馈/功能要求] 请选择"Lazarus-ccr"项目中的"glscene"分类,感谢。
  
 
=== 更新日志 ===
 
=== 更新日志 ===
* 18.07.2007 Snapshot release version 1.0.0.2
+
* 18.07.2007 快照发布版本 1.0.0.2
** adjusted some things, so it works with latest lazarus svn version
+
** 调整了些东西,它能工作在最新的lazarus SVN版本
** added object bitmaps for the SceneEditor
+
** 添加位图对象到SceneEditor
** fixed another AV in SceneEditor
+
** 修正SceneEditor中另一个AV
** incorporated all patches and bugfixes from original glscene cvs repo like dynamic textures ..
+
** 将所有补丁和错误修正from original glscene cvs repo like dynamic textures ..
* 13.06.2007 Snapshot release version 1.0.0.1
+
**
** incorporated all patches and bugfixes from original glscene cvs repo
+
* 13.06.2007 快照发布版本 1.0.0.1
** improved scene editor (crashes less, but still needs some love)<br>'''Tip:''' Save your project frequently ;-)
+
** 合并所有补丁和修正原始GLscene cvs报告
** seperated mmsystem dependent stuff from generic sound support so e.g. FMOD is available in linux, too
+
** 改进场景编辑器(崩溃较少,但仍需要一些关爱)<br>'''提示:'''经常保存项目 ;-)
** many more ..
+
** 分离mmsystem的依赖从通用声音支持,如FMOD在Linux下是可用的。
*01.12.06 Added support for ODE, gtk2 and Cg shaders in Linux (ODE is limited to normal release, unsupported are cone, ccylinder and terrains)
+
** 更多 ..
*10.08.05 Too many changes to post here see cvs history
+
*01.12.06 增加了对ODE的支持,GTK2和Cg着色器在Linux上的支持(ODE仅限于正常释放,不支持cone、ccylinder 和terrains)。
*16.07.05 GLScene 0.9.X Port
+
*10.08.05 太多的变化,张贴在这里,查看CVS历史
*look at GLScene Sourceforge Account for complete Changelog
+
*16.07.05 GLScene 0.9.X 端口
 +
*查看GLScene SourceForge帐户的完整日志
  
 
状态: Beta
 
状态: Beta
  
 
=== 安装 1.0.0.2 ===
 
=== 安装 1.0.0.2 ===
'''Requires fpc 2.1.4 or greater  and lazarus 0.9.23 rev. 11348 or greater !!'''
+
'''需要FPC 2.1.4或更高版本,及lazarus0.9.23以上。11348或更高 !!'''
  
 
* '''提取源文件'''
 
* '''提取源文件'''
 
** ZIP:
 
** ZIP:
*** in "lazarus/components/" folder execute "unzip glscene-1.0.0.2.zip" <br>This will create the lazarus/components/glscene/ folder
+
*** "lazarus/components/" 下执行 "unzip glscene-1.0.0.2.zip",这将创建 lazarus/components/glscene/ 文件夹
 
** SVN:
 
** SVN:
*** in "lazarus/components/" folder execute <pre>svn co http://svn.freepascal.org/svn/fpcprojects/glscene/trunk glscene</pre>This will create the lazarus/componets/glscene/ folder
+
*** "lazarus/components/" 下执行 <pre>svn co http://svn.freepascal.org/svn/fpcprojects/glscene/trunk glscene</pre>,这将创建 lazarus/componets/glscene/ 文件夹
***Tortoise SVN: add the folder "glscene" manually so you have lazarus/components/glscene. Then right-click onto new folder and choose "SVN Checkout...". At field "URL of repository" add <pre>http://svn.freepascal.org/svn/fpcprojects/glscene/trunk</pre>Confirm by "OK".
+
***Tortoise SVN: 手动在lazarus/components/下创建文件夹 "glscene", 右击文件夹的空白处选择TortoiseSVN下的 "SVN Checkout(检出)...",在 "URL of repository(版本库URL)"中添加 <pre>http://svn.freepascal.org/svn/fpcprojects/glscene/trunk</pre>并确定。
 
 
 
 
  
 
* '''完成安装:'''
 
* '''完成安装:'''
** copy "lazarus/components/glscene/globallinks/*.lpl" to "lazarus/packager/globallinks/"
+
** 复制 "lazarus/components/glscene/globallinks/*.lpl" "lazarus/packager/globallinks/"
** start lazarus
+
** 打开 Lazarus
** select "Configure installed packages ..." from the "Components" menu
+
** "包"菜单下选择 "配置已经安装的包 ..."
** select "glscenelazarus" from the "Available packages" list
+
** "Available packages(可用的软件包)" 中选择 "glscenelazarus"
** click "Install selection" button
+
** 点击 "安装所选" 按钮
** click "Save and rebuild IDE" button
+
** 点击 "保存并重建IDE" 按钮
*** ATTENTION: There may occur an error that package "jpegforlazarus" is not found. If so do the following:
+
*** 注意:有可能会出现"jpegforlazarus"未找到的错误。如果是的话,你可以执行以下操作:
*** Components --> Open loaded package...
+
*** 包菜单 --> 打开包文件...
*** Choose "glscenelazarus" (Version 1.0.0.3) and click "Open..."
+
*** 选择 "glscenelazarus" (版本 1.0.0.3) 后点击 "打开..."
*** In the following list go down to "Required Packages" and remove dependency from "jpegfromlazarus".
+
*** "Required Packages(所需的软件包)"列表中移除"jpegfromlazarus"
*** Look for unit "jpeg" in folder /lazarus/components/glscene/Source/base and replace "LazJPEG" (in uses clause) by "LazJPG" (from package ImagesForLazarus).
+
*** 查看"jpeg"单元,在/lazarus/components/glscene/Source/base,替换"LazJPEG"(在uses部分)"LazJPG"(ImagesForLazarus包)
*** Save and repeat last 4 steps again.
+
*** 保存并重复上述四个步骤。
*** HINT: You should have installed package "ImagesForLazarus" (the same way as described for "glscenelazarus" package).
+
*** 提示:你应该安装了"ImagesForLazarus"包,如果没有,操作方式和安装"glscenelazarus"类似。
** repeat the last 4 steps for the other packages you want to use.
+
** 重复上述4个步骤安装你需要的软件包。
*** Note: glsceneode and glscenecgshader need their respective libs on the system during installation!
+
*** 注:在glsceneode和glscenecgshader安装时,需要将相关的库安装在系统上。
** '''Note:''' you can also try to select and install all packages in one go. However, I prefer to do things step by step, so I see where it fails, if it fails ;)
+
** ''':'''你可以尝试选择一个或全部软件包。不过,我喜欢一个一个安装,这样可以查看它的错误,如果出现错误的话;)
** '''Install "glscenelazarus" - mistakes:''' (only needed when using glscene-1.0.0.2.zip, in svn these are already fixed)
+
** '''安装 "glscenelazarus" - 错误:''' (只需要使用glscene-1.0.0.2.zip,在SVN中这些已经修订)
***To correct the unit GLLCLViewer: procedure TGLSceneViewer.CreateParams(var Params: TCreateParams); - at procedure TGLSceneViewerLCL.CreateParams(var Params: TCreateParams);
+
***更正单元 GLLCLViewer: procedure TGLSceneViewer.CreateParams(var Params: TCreateParams); - procedure TGLSceneViewerLCL.CreateParams(var Params: TCreateParams);
***To correct the unit GLLCLViewer: procedure TGLSceneViewer.EraseBackground(DC: HDC); - at procedure TGLSceneViewerLCL.EraseBackground(DC: HDC);
+
***更正单元 GLLCLViewer: procedure TGLSceneViewer.EraseBackground(DC: HDC); - procedure TGLSceneViewerLCL.EraseBackground(DC: HDC);
***To correct the unit GLLCLFullscreenViewer: Change "RegisterClasses([TGLSceneViewer, TGLFullScreenViewer]);" to "RegisterClasses([TGLFullScreenViewer]);"
+
***更正单元 GLLCLFullscreenViewer: Change "RegisterClasses([TGLSceneViewer, TGLFullScreenViewer]);" "RegisterClasses([TGLFullScreenViewer]);"
  
 
* '''软件包列表:'''
 
* '''软件包列表:'''
** '''glscenelazarus'''    The main package.
+
** '''glscenelazarus'''    主要包
** '''glscenecgshader'''    Cg Shader components
+
** '''glscenecgshader'''    Cg 渲染组件
** '''glsceneode'''        ODE components
+
** '''glsceneode'''        ODE 组件
** '''glss_fmodlaz'''      FMOD component
+
** '''glss_fmodlaz'''      FMOD 组件
** '''gls_winonly'''        Windows only, contains sound support over mmsystem, BASS support and GLScreenSaver component
+
** '''gls_winonly'''        仅Windows,包含声音支持mmsystem,BASS支持和GLScreenSaver组件
  
* '''Сompilation "demo" - mistakes:'''
+
* '''编译 "演示" - 错误:'''
**If not found class - TGLSceneViewer: To correct the uses (demo): GLLCLViewer - at GLViewer
+
**如果未找到类 - TGLSceneViewer:修改(演示)GLLCLViewer - GLViewer
  
 
=== 安装 0.9.6.1 ===
 
=== 安装 0.9.6.1 ===
* Create the directory lazarus\components\GLScene
+
* 创建目录 lazarus\components\GLScene
* On this directory, unzip the files from the zip file
+
* 在目录中解压zip文件
* Open lazarus
+
* 打开 Lazarus
* Open the package glscenelazarus.lpk with Component/Open package file (.lpk) from lazarus\components\glscene\Lazarus
+
* 在组件/打开包文件(.lpk)中,选择lazarus\components\glscene\Lazarus下的glscenelazarus.lpk
* (Click on Compile is only necessary, if you don't want to install the component into the IDE)
+
* (点击编译是必须的,如果你不想安装组件到IDE)
* Click on Install
+
* 点击安装
* Repeat these steps (open .lpk, click install) for the other packages you want to use. Note: these additional packages need additional libs (fmod, ode, Cg).
+
* 要使用其他软件包重复这些步骤(打开.lpk,点击安装),注:这些额外的包需要额外的库(FMOD、ODE、CG)。
** glscenecgshader.lpk : Cg shaders (only with NVidia cards?)
+
** glscenecgshader.lpk : Cg着色器(仅适用于NVidia显卡?)
** glsceneode.lpk : support for ode lib
+
** glsceneode.lpk : 对ODE库支持
** glsss_fmodlaz.lpk : support for fmod lib
+
** glsss_fmodlaz.lpk : 对FMOD库支持
** gls_winonly.lpk : this can be installed on windows only. Contains screensaver stuff as well as support for BASS lib.
+
** gls_winonly.lpk : 只可以安装在Windows上。包含屏幕保护以以及BASS库支持。
 +
 
 +
提示:如果出现“GLGraphics 未找到”的错误,不要担心,只要在工具中重新构建Lazarus,或许就可以解决。
  
Hint: sometimes an Error "GLGraphics not found" occurs. Don't worry, just do Tools->Build Lazarus again and it should be ok.
+
Lazasrus中安全安装GLScene 可以查看:[http://sourceforge.net/project/showfiles.php?group_id=92177&package_id=185641&release_id=405739 二进制Win32发布] 或 [http://www.skinhat.com/lazarus http://www.skinhat.com/lazarus]
  
A full install of Lazarus with GLScene already in the IDE is available as [http://sourceforge.net/project/showfiles.php?group_id=92177&package_id=185641&release_id=405739 binary win32 release] or [http://www.skinhat.com/lazarus http://www.skinhat.com/lazarus]
+
对于Linux新用户只是个警告:
 +
GLScene目前并不能“拿来就用”,需要做些添加或修改。
  
Just a warning for (new) Linux users:
+
更新:这个不准确了。Lazarus中的Glscene 是相当出色的,可以实现在Windows及Linux中“拿来就用”。
GLScene in its current state is not working "out of the box" (lots of modifications/additions needed).
 
UPDATE: this is not true anymore. glscene for lazarus is pretty up-to-date and most things work good right out of the box for windows as well as for linux.
 
  
As of latest trunk version (see svn above) the linux version is working well. Some demos (about 20%) are still broken but the majority of glscene is now working. We're also moving towards making it work in other Unix platforms like FreeBSD.
+
新的trunk 版本(见上文SVN)在Linux上正常工作,一些演示(约20%)不能正常使用,但大多可以使用。我们也在努力着让它可以在其他Unix平台上完美运行。
  
The missing/nonworking parts on non-windows are: glKeyboard (uses winapi, but is not required mostly), glSound(which uses mm, we need to use openal or somesuch)
+
在非Windows丢失/不能工作的组件是:glKeyboard (使用WINAPI,但不是必须的居多)、glSound(使用mm,我们需要使用OpenAL或者类似的)。
  
A [[Lazarus- Game Developers Edition|fully featured windows installer]] is planned.
+
一个 [[Lazarus- Game Developers Edition|全功能的Windows安装程序]] 计划。
  
 
=== 帮助 ===
 
=== 帮助 ===
  
* Can be found at [http://www.glscene.org Main GLScene Page]
+
* 可以在 [http://www.glscene.org GLScene 首页] 找到
* join #glscene channel at freenode.net
+
* 联系 #glscene channel at freenode.net
  
[[Category:Components]]
 
[[Category:Graphics]]
 
[[Category:Game Development]]
 
[[Category:Multimedia]]
 
 
[[Category:zh]]
 
[[Category:zh]]

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

材料(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