Difference between revisions of "GLScene"
Line 109: | Line 109: | ||
Hint: sometimes an Error "GLGraphics not found" occurs. Don't worry, just do Tools->Build Lazarus again and it should be ok. | Hint: sometimes an Error "GLGraphics not found" occurs. Don't worry, just do Tools->Build Lazarus again and it should be ok. | ||
− | 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=98986&release_id=348313 binary win32 release] or at [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=98986&release_id=348313 binary win32 release] (this is an older version) or the latest version at [http://www.skinhat.com/lazarus http://www.skinhat.com/lazarus] |
===Help=== | ===Help=== | ||
Can be found at [http://www.glscene.org Main GLScene Page] | Can be found at [http://www.glscene.org Main GLScene Page] |
Revision as of 01:02, 3 September 2005
About
GLScene is an OpenGL based 3D library. It was initially written for Delphi, now it is running in C++ Builder, Kylix, Delphi and Lazarus.
Its main caracteristics are :
Scene description
- hierarchical objects structure, with as many objects as memory allows, easily extendable
- interactive scene management (numerous Delphi experts)
- 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...)
- 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
- Other imported formats : OBJ/OBJF, SMD, MD2, STL, TIN, PLY
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
Author
Author: initially Mike Lischke
at time maintained by Eric Grange
LCL Port: Christian Ulrich
Download
The latest stable release can be found on the Lazarus CCR Files page together with a lazarus installer with GLScene already in the Lazarus IDE and GLScene demoes.
CVS
you can checkout the actual source from
CVSROOT=:pserver:cvs@avl.ath.cx:/CVS/glscene
Modules:
LazarusLin
LazarusWin
Source
Demos
Bug reporting/Feature request
Change Log
- 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
- Create the directory lazarus\components\GLScene
- On this directory, unzip the files from the zip file
- Open lazarus
- Open the package .lpk with Component/Open package file (.lpk) for Windows from LazarusWin for Linux from LazarusLin
- Click on Compile
- Click on Install
Hint: sometimes an Error "GLGraphics not found" occurs. Don't worry, just do Tools->Build Lazarus again and it should be ok.
A full install of Lazarus with GLScene already in the IDE is available as binary win32 release (this is an older version) or the latest version at http://www.skinhat.com/lazarus
Help
Can be found at Main GLScene Page