GLScene/de

From Free Pascal wiki
Jump to: navigation, search

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

Über

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:

Scenenbeschriebung

  • 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

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

Rendering

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

Animation

  • 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

Interface

  • 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

  • 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

Screenshots

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

Autor

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

Download

Neueste Version (1.0.0.2)

A new snapshot release can be found at Lazarus CCR Files page. 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. --Crossbuilder 20:16, 18 July 2007 (CEST)

Veraltet

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

SVN

Sie können die aktuellen Quellen auschecken von
http://svn.freepascal.org/svn/fpcprojects/glscene/trunk/

Das Kommando dafür lautet:

svn co http://svn.freepascal.org/svn/fpcprojects/glscene/trunk 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

Bug Reporting/Featurerequest Please select Project "Packages" and Category "glscene" for your reports. Thanks.

Change Log

  • 18.07.2007 Snapshot release version 1.0.0.2
    • adjusted some things, so it works with latest lazarus svn version
    • added object bitmaps for the SceneEditor
    • fixed another AV in SceneEditor
    • incorporated all patches and bugfixes 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
    • improved scene editor (crashes less, but still needs some love)
      Tip: Speichern sie ihr Projekt regelmäßig ;-)
    • seperated mmsystem dependent stuff from generic sound support so e.g. FMOD is available in linux, too
    • many more ..
  • 01.12.06 Unterstützung für ODE, GTK2 und Cg Shader in Linux hinzugefügt (ODE is limited to normal release, unsupported are cone, ccylinder and terrains)
  • 10.08.05 Zu viele Änderungen um sie hier aufzuführen, siehe CVS History
  • 16.07.05 GLScene 0.9.X Port
  • look at GLScene Sourceforge Account for complete Changelog

Status: Beta

Installation

Version 1.0.0.2

Anmerkung: Sie benötigen FPC 2.1.4 oder höher und Lazarus 0.9.23 (Revision 11348) oder höher !!

  • Extrahieren der Quellen
    • ZIP:
      • Im Verzeichnis "lazarus/components/" führen sie aus "unzip glscene-1.0.0.2.zip"
        Dies wird das Verzeichnis lazarus/componets/glscene/ erzeugen.
    • SVN:
      • Im Verzeichnis "lazarus/components/" führen sie aus
        svn co http://svn.freepascal.org/svn/fpcprojects/glscene/trunk glscene
        Dies wird das Verzeichnis lazarus/componets/glscene/ erzeugen.
  • Fertigstellen der Installation:
    • Kopieren sie "lazarus/components/glscene/globallinks/*.lpl" nach "lazarus/packager/globallinks/"
    • Starten sie Lazarus
    • Wählen sie Komponenten -> Installierte Packages einrichten ...
    • Wählen sie "glscenelazarus" in der "Verfügbare Packages" Liste
    • Klicken sie auf den "Auswahl installieren" Button
    • Klicken sie auf den "Speichern und IDE neu bauen" Button
    • Wiederholen sie die letzten 4 Schritte für die anderen Packages, die sie verwenden wollen
      • Anmerkung: glsceneode und glscenecgshader benötigen ihre zugehörigen Bibliotheken während der Installation!
    • Anmerkung: 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 ;)
  • Liste der Packages:
    • glscenelazarus Das Haupt-Package.
    • glscenecgshader Cg Shader Komponenten
    • glsceneode ODE Komponenten
    • glss_fmodlaz FMOD Komponente
    • gls_winonly nur für Windows, enthält Soundunterstützung mittels mmsystem, BASS Unterstützung und die GLScreenSaver Komponente

Version 0.9.6.1

  • Erstellen sie das Verzeichnis lazarus\components\GLScene
  • Entpacken sie die Dateien aus der Zip Datei in dieses Verzeichnis.
  • Starten sie Lazarus
  • Wählen sie unter Komponenten -> Package-Datei (.lpk) öffnen das gewünschte Package
  • Klicken sie auf Installieren.
  • Wiederholen sie diese Schritte (.lpk öffnen, auf Installieren klicken) für die anderen Packages, die sie verwenden wollen. Anmerkung: Diese zusätzlichen Packages benötigen weitere Bibliotheken (FMOD, ODE, Cg).
    • glscenecgshader.lpk : Cg shaders (only with NVidia cards?)
    • glsceneode.lpk : Unterstützung für die ODE Bibliothek
    • glsss_fmodlaz.lpk : Unterstützung für die FMOD Bibliothek
    • 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 http://www.skinhat.com/lazarus

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.

Hilfe