Difference between revisions of "GLScene/fr"

From Lazarus wiki
Jump to navigationJump to search
Line 40: Line 40:
 
Rendu
 
Rendu
 
*exploite automatiquement le pilote matériel OpenGL si disponible
 
*exploite automatiquement le pilote matériel OpenGL si disponible
  * * * * * A FINIR * * * * *
 
 
*un modèle de caméra marchant bien et utilisant la longueur focale et le ciblage
 
*un modèle de caméra marchant bien et utilisant la longueur focale et le ciblage
 
*visualisateurs multiples pour une ou plusieurs scènes, changement de vue a travers la sélection de camera
 
*visualisateurs multiples pour une ou plusieurs scènes, changement de vue a travers la sélection de camera
Line 60: Line 59:
  
 
Interface  
 
Interface  
*easy-to-use functions to determine picked objects
+
*fonctions pour déterminer l'objet choisi facile à utiliser
*helper functions for camera movements
+
*fonction d'assistance pour les mouvements de caméra
*helper functions for picked object's translation  
+
*fonction d'assistance pour la translation des objets choisis
*helper functions for converting between screen and world coordinates, raycasting  
+
*fonction d'assistance pour la conversion entre écran et coordonnées réelles, raycasting  
  
 
Utilitaires
 
Utilitaires
*optimized geometry functions and utilities (vector, quaternion and matrix...)  
+
*fonctions optimisées de géométrie et outils (vecteur, quaternion et matrice...)
*cubic spline support functions and class
+
*classe et fonctions de support des splines cubiques
*mesh manipulation and optimization (stripification, vertex-cache awareness, etc.)  
+
*manipulation et optimisation du maillage (stripification, sensibilité au cache des sommets, etc.)
*component to make full-featured screen-saver in a few clicks
+
*composant pour créer des économiseurs d'écran complètement fonctionnels en quelques clics
*precise frame speed determination
+
*détermination précise de la vitesse de trame
*asynchronous timer (multi-threaded)  
+
*timer asynchrone (multi-thread-é)  
*joystick support
+
*support du joystick
 
*asynchronous keyboard access, keymap support
 
*asynchronous keyboard access, keymap support
  

Revision as of 22:09, 29 November 2016

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

A propos

GLScene est une bibliothèque 3D basée sur OpenGL. Elle a été écrite au commencement pour Delphi, maintenant elle fonctionne dans C++ Builder, Kylix, Delphi et Lazarus.

Ses caractéristiques principales sont :

Description de la scène

  • Structure hiérarchique d'objets, avec autant d'objets que la mémoire le permet, facilement extensible
  • Gestion interactive de la scène (nombreux experts Delphi)
  • Fonctions de rotation et de mouvement facile à utiliser pour chaque objet
  • Objets prédéfinis (tous les standards : du cube, à la théière, aux sprites ), facilement extensibles
  • Objets structuraux (cube factice, objet de procuration) pour la gestion des objets composites
  • Objets procéduraux (heightfield, solides de révolution , pipes, tesselators...)
  • Support des objets 2D et 1D (sprites, lignes avec suppport des splines) entièrement intégré
  • Objets HUD (sprites rendus en coordonnées 2D)
  • Objets utilitaires (grilles , dôme du ciel, flèches ...)
  • Support des classes pour accéder directement à OpenGL
  • Objects camera et source de lumière qui peuvent être utilisés n'importe où dans une scène hiérarchisée d'objets
  • Des objets de comportement peuvent être attachés aux objets pour l'animation, facilement extensible
  • Des effets spéciaux par-objet(rendu d'objet avant/après et les répercussions sur la scène), facilement *extensible
  • Support des systèmes de particules , n'importe quel objet ou structure d'objet peut être une particule
  • Importation des fichiers 3D studio avec un calcul du vecteur normal précis et automatique (en utilisant les groupes de *Lissage donnés du fichier) et l'importation des coordonnées de texture
  • Autres formats importés : OBJ/OBJF, SMD, MD2, STL, TIN, PLY

Matériaux

  • facile à utiliser, objets matériaux optimisés
  • bibliothèque de matériaux à partager et réutilisation de matériaux
  • support de l'ambiant, du diffus, de l'émission, du spéculaire et de la brillance
  • support des modes de mélange ("blending") (transparence, additif ...)
  • auto-génération du canal alpha
  • support des formats de texture OpenGL, incluant ceux compressés (DXT, S3TC etc.)
  • support des modules d'extension de nuanceurs ("shaders")
  • classes de support des nuanceurs Cg de haut-niveau.
  • support des images polymorphiques pour la texture (permet de nombreux formats tout comme des textures procédurales), facilement extensible
  • plus de 150 couleurs prédéfinies comme clrCornflowerBlue ou clrCoolCopper (facilement extensible) en supplément des couleurs standard et des spécification RVB directes.
  • propriétés de mouvement de texture et d'échelle facile à utiliser, indépendamment des coordonnées de texture.
  • classe de support des bitmap 32 bit

Rendu

  • exploite automatiquement le pilote matériel OpenGL si disponible
  • un modèle de caméra marchant bien et utilisant la longueur focale et le ciblage
  • visualisateurs multiples pour une ou plusieurs scènes, changement de vue a travers la sélection de camera
  • support du brouillard et de la profondeur de champ
  • rendu vers un fichier, une bitmap ou une imprimante dans n'importe quelle couleur ou résolution de point.
  • support du plein-écran avec des changements dynamiques de résolution
  • réflexions et effets de miroirs.
  • lancement ("casting") dynamique d'ombre
  • support de système de particules transparentes sur toute la scène à haute performance
  • Détermination automatique des faces cachées (hiérarchique ou par objet)

Animation

  • propagation d'événement de progression de temps.
  • animation en squelette (os multiples par sommet)
  • interpolation de trames et cible de morphage ("morph targets")
  • comportement facilement extensible
  • physiques dynamiques : inertie, accélération, amortissement et application de force
  • cadencement automatique de scène en temps réel

Interface

  • fonctions pour déterminer l'objet choisi facile à utiliser
  • fonction d'assistance pour les mouvements de caméra
  • fonction d'assistance pour la translation des objets choisis
  • fonction d'assistance pour la conversion entre écran et coordonnées réelles, raycasting

Utilitaires

  • fonctions optimisées de géométrie et outils (vecteur, quaternion et matrice...)
  • classe et fonctions de support des splines cubiques
  • manipulation et optimisation du maillage (stripification, sensibilité au cache des sommets, etc.)
  • composant pour créer des économiseurs d'écran complètement fonctionnels en quelques clics
  • détermination précise de la vitesse de trame
  • timer asynchrone (multi-thread-é)
  • support du joystick
  • asynchronous keyboard access, keymap support

Captures d'écran

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

Auteur

Auteur: initialement Mike Lischke
maintenu un temps par Eric Grange
Migration LCL : Christian Ulrich

Téléchargement

Le plus récent (v1.0.0.2)

Ceci devrait être presque identique au dépôt cvs original de ces jours en termes de fonctionnalités et correction de bugs, toutefois, il y a toujours des parties qui manquent. Il n'y aura pas d'installeur-Lazarus-avec-GLScene" avec cette nouvelle livraison, à moins que quelqu'un ne la crée. --Crossbuilder 20:16, 18 July 2007 (CEST)

Dépassé

Una version plus ancienne (version 0.9.1.6) peut être trouvée dans la page des fichiers Lazarus CCR avec un installeur Lazarus avec GLScene intégré dans l'IDE Lazarus et des démos GLScene.

Mise à jour : C'est assez vieux maintenant. Si possible, utilisez la commande svn (voir ci-dessous).

SVN

you can checkout the actual source from
http://svn.freepascal.org/svn/fpcprojects/glscene/trunk/

The command would be:

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.

In windows you can use clients like tortoise SVN and others.

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: 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 version 1.0.0.2

Requires fpc 2.1.4 or greater and lazarus 0.9.23 rev. 11348 or greater !!

  • extracting the sources
    • ZIP:
      • in "lazarus/components/" folder execute "unzip glscene-1.0.0.2.zip"
        This will create the lazarus/componets/glscene/ folder
    • SVN:
      • in "lazarus/components/" folder execute
        svn co http://svn.freepascal.org/svn/fpcprojects/glscene/trunk 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.
      • Note: glsceneode and glscenecgshader need their respective libs on the system during installation!
    • 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:
      • To correct the unit GLLCLViewer: procedure TGLSceneViewer.CreateParams(var Params: TCreateParams); - at procedure TGLSceneViewerLCL.CreateParams(var Params: TCreateParams);
      • To correct the unit GLLCLViewer: procedure TGLSceneViewer.EraseBackground(DC: HDC); - at procedure TGLSceneViewerLCL.EraseBackground(DC: HDC);
      • To correct the unit GLLCLFullscreenViewer: Change "RegisterClasses([TGLSceneViewer, TGLFullScreenViewer]);" to "RegisterClasses([TGLFullScreenViewer]);"
  • 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
  • Сompilation "demo" - mistakes:
    • If not found class - TGLSceneViewer: To correct the uses (demo): GLLCLViewer - at GLViewer

Installation version 0.9.6.1

  • Create the directory lazarus\components\GLScene
  • On this directory, unzip the files from the zip file
  • Open lazarus
  • Open the package glscenelazarus.lpk with Component/Open package file (.lpk) from lazarus\components\glscene\Lazarus
  • (Click on Compile is only necessary, if you don't want to install the component into the 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).
    • 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.

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

Aide