From Lazarus wiki
Revision as of 16:24, 13 June 2007 by Swen (talk | contribs)
Jump to navigationJump to search

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


GLScene ist eine auf OpenGL basierende 3D Bibliothek. Sie wurde ursprünglich für Delphi geschrieben, funktioniert jetzt aber auch mit C++ Builder, Kylix, Delphi und Lazarus.

Seine Hauptmerkmale sind:


  • Hierarchische Objektstruktur, mit so vielen Objekten wie der Speicher es erlaubt, einfach erweiterbar
  • Interaktives Scenenmanagement
  • Einfache Rotationen und Bewegungsfunktionen für jedes Objekt
  • Vordefinierte Objekte (Alle Standartobjekte von Kubus bis zu Teekanne zu Sprite), einfach erweiterbar
  • Struktur Objekte (dummy cube, proxy object) um untergeordnete Objekte zu managen
  • Funktionsgesteuerte Objekte (heightfield, revolution solids, pipes, tesselators...)
  • Unterstützung für 2D und 3D Objekte (Sprites, Linien mit Sprite Unterstützung) voll integriert
  • HUD Objekte (Sprites in 2D Koordinaten gerendert)
  • Utility Objekte (Gitter, Skydome, Zeiger...)
  • Unterstützungsklasse um direkt auf OpenGL zuzugreifen
  • Kamera und Licht Objekte fügen sich nahtlos in die Scenen hierarchie ein
  • Verhaltensobjekte können an Objekte angehängt werden um diese zu animieren, einfach erweiterbar
  • Pro-Objekt Spezialeffekte (vor/nach Objektrendering und scene after-effects), einfach erweiterbar
  • Unterstützung für Partikelsysteme, jedes Objekt oder Objektstruktur kann ein Partikel sein
  • 3D Studio Datei Import mit automatischer präziser normalen Berechnung (benutzt die smoothing groups der Datei) und Texturkoordinaten Import
  • Andere 3D Formate: OBJ/OBJF, SMD, MD2, STL, TIN, PLY und mehr


  • 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
  • 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


  • 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


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


Autor: ursprünglich Mike Lischke
jetzt gewartet von Eric Grange
LCL Port: Christian Ulrich


Neueste Version (

Currently, we are preparing a snapshot release (version of the current glscene for lazarus svn repository. This should be almost identical to the original cvs repository of today in terms of functionality and bugfixes. There wont be a "Lazarus-with-GLScene-Installer" with this new release, unless someone else creates it. Expect the link to the new package here within the next few hours. --Crossbuilder 14:10, 13 June 2007 (CEST)


Ein älteres Release (Version ist zu finden auf der Lazarus CCR Seite zusammen mit einem Lazarus-Installer, der GLScene bereits in die Lazarus IDE integriert sowie GLScene Demos.


Sie können die aktuellen Quellen auschecken von

Das Kommando dafür lautet:

svn co glscene

This will download the trunk (main) repository to "glscene" dir to whereever you invoked the command from.

Unter Windows können sie Clients wie Tortoise SVN oder andere verwenden.

Bug reporting/Feature request

Bug Reporting/Featurerequest

Change Log

  • 13.06.2007 Snapshot release version
    • incorporated all patches and bugfixes from original glscene cvs repo
    • improved scene editor (crashes less, but still needs some love)
      Tip: Save your project frequently ;-)
    • seperated mmsystem dependent stuff from generic sound support so e.g. FMOD is available in linux, too
    • many more ..
  • 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
  • 16.07.05 GLScene 0.9.X Port
  • look at GLScene Sourceforge Account for complete Changelog

Status: Beta



  • extracting the sources
    • ZIP:
      • in "lazarus/components/" folder execute "unzip"
        This will create the lazarus/componets/glscene/ folder
    • SVN:
      • in "lazarus/components/" folder execute
        svn co glscene
        This will create the lazarus/componets/glscene/ folder
  • Finish the installation:
    • copy "lazarus/components/glscene/globallinks/*.lpl" to "lazarus/packager/globallinks/"
    • start lazarus
    • select "Configure installed packages ..." from the "Components" menu
    • select "glscenelazarus" from the "Available packages" list
    • click "Install selection" button
    • click "Save and rebuild IDE" button
    • repeat the last 4 steps for the other packages you want to use
  • List of packages:
    • glscenelazarus The main package.
    • glscenecgshader Cg Shader components
    • glsceneode ODE components
    • glss_fmodlaz FMOD component
    • gls_winonly Windows only, contains sound support over mmsystem, BASS support and GLScreenSaver component


  • Erstellen sie das Verzeichnis lazarus\components\GLScene
  • Entpacken sie die Dateien aus der Zip Datei in dieses Verzeichnis.
  • Starten sie Lazarus
  • Open the package .lpk with Component/Open package file (.lpk) for Windows from LazarusWin for Linux from LazarusLin
  • (Click on Compile is only necessary, if you don't want to install the component into the IDE)
  • Klicken sie auf Installieren.
  • 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).
    • glscenecgshader.lpk : Cg shaders (only with NVidia cards?)
    • glsceneode.lpk : support for ode lib
    • glsss_fmodlaz.lpk : support for fmod lib
    • gls_winonly.lpk : this can be installed on windows only. Contains screensaver stuff as well as support for BASS lib.

Hinweis: Manchmal erscheint die Fehlermeldung "GLGraphics not found". Keine Sorge, starten sie Werkzeuge ->Build Lazarus erneut und es sollte in Ordnung sein.

A full install of Lazarus with GLScene already in the IDE is available as binary win32 release or

Just a warning for (new) Linux users: 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.

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)

A fully featured windows installer is planned.