GLScene/de

From Free Pascal wiki
Revision as of 16:15, 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)

Ü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

Das neueste stabile Release 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/Feature request

Bug Reporting/Featurerequest

Change Log

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

Installation

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

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

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

Ist zu finden auf der Main GLScene Page