GLScene/fr

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)

(NdT : traduction non garantie, termes techniques incertains en français, reportez-vous à la version anglaise en cas de doute)

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
  • accès asynchrone au clavier, support des cartes de clavier

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ésuet

Une 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

vous pouvez descendre les sources courantes depuis
http://svn.freepascal.org/svn/fpcprojects/glscene/trunk/

La command sera:

svn co http://svn.freepascal.org/svn/fpcprojects/glscene/trunk glscene

Cela téléchargera le tronc (principal) du dépôt vers le dossier "glscene" de l'endroit où vous invoquez la commande.

Dans Windows, vous pouvez utiliser des clients comme Tortoise SVN ou autres.

Rapport de bug

Rapport de bug/demande de fonctionnalité SVP, sélectionner le projet "Packages" et la catégorie "glscene" pour vos rapports. Merci.

Changement

  • 18/07/2007 Livraison de l'instantané version 1.0.0.2
    • certaines choses ajustées, ainsi il tourne avec la dernière version svn de Lazarus
    • sont ajoutées des bitmaps d'objet pour l'éditeur de scène
    • est corrigée une autre violation d'accès dans l'éditeur de scène
    • sont incorporés tous les patchs et corrections de bugs du dépôt originel cvs comme les textures dynamiques ...
  • 13/06/2007 Livraison de l'instantané version 1.0.0.1
    • sont incorporés tous les patchs et corrections de bugs du dépôt originel cvs
    • est amélioré l'éditeur de scène (mois de plantage, mais demande toujours de l'amour)
      Tip: enregistrez votre projet régulièrement ;-)
    • sont séparés les choses dépendant de mmsystem du support générique du son ainsi p.ex. FMOD est aussi disponible dans Linux
    • et bien plus ...
  • 01/12/2006 Est ajouté le support pour ODE, gtk2 et des nuanceurs Cg dans Linux (ODE est limité en version normale, les cônes, cylindres et terrains ne sont pas supportés)
  • 10/08/2005 Trop de changements pour être publiés ici, voir l'historique cvs
  • 16/07/2005 Portage GLScene 0.9.X
  • Regarder dans le compte SourceForge GLScene pour une liste complète des changements.

Etat: Beta

Installation de la version 1.0.0.2

Nécessite fpc 2.1.4 ou supérieur et lazarus 0.9.23 rév. 11348 ou supérieur !!

  • Extraction des sources
    • ZIP:
      • Dans le dossier "lazarus/components/" exécuter "unzip glscene-1.0.0.2.zip"
        Cela créera le dossier lazarus/componets/glscene/.
    • SVN:
      • Dans le dossier "lazarus/components/" exécuter
        svn co http://svn.freepascal.org/svn/fpcprojects/glscene/trunk glscene
        Cela créera le dossier lazarus/componets/glscene/.
  • Terminer l'installation :
    • Copier "lazarus/components/glscene/globallinks/*.lpl" vers "lazarus/packager/globallinks/"
    • Lancez lazarus
    • Sélectionner "Configurer les paquets installés ..." du menu "Composants"
    • sélectionner "glscenelazarus" depuis la liste des "Paquets disponibles"
    • cliquer sur le bouton "Installer la sélection"
    • cliquer sur le bouton "Enregistrer et reconstruire l'IDE"
    • répéter les 4 dernières étapes pour les autres paquets que vous voulez utiliser.
      • Note: glsceneode et glscenecgshader ont besoin de leur bibliothèques respectives dans le système pendant l'installation !
    • Note: vous pouvez aussi essayer de sélectionner et installer tous les paquets en un seul tour. Toutefois, faire les choses pas à pas à l'avantage de mettre en évidence ce qui ne marche pas quand cela échoue.
    • Installer "glscenelazarus" - erreurs :
      • Pour corriger l'unité GLLCLViewer : procedure TGLSceneViewer.CreateParams(var Params: TCreateParams); - à procedure TGLSceneViewerLCL.CreateParams(var Params: TCreateParams);
      • Pour corriger l'unité GLLCLViewer : procedure TGLSceneViewer.EraseBackground(DC: HDC); - à procedure TGLSceneViewerLCL.EraseBackground(DC: HDC);
      • Pour corriger l'unité GLLCLFullscreenViewer : changer "RegisterClasses([TGLSceneViewer, TGLFullScreenViewer]);" par "RegisterClasses([TGLFullScreenViewer]);"
  • Liste des paquets :
    • glscenelazarus Le paquet principal.
    • glscenecgshader Composants nuanceur Cg
    • glsceneode Composants ODE
    • glss_fmodlaz Composant FMOD
    • gls_winonly Windows seulement, contient le support du son à travers mmsystem, le support de BASS et le composant GLScreenSaver.
  • Сompilation "demo" - erreurs:
    • Si la classe TGLSceneViewer est non trouvée : Pour corriger l'utilisation (demo): GLLCLViewer - à GLViewer

Installation version 0.9.6.1

  • Créer le dossier lazarus\components\GLScene
  • Dans ce dossier, dézipper les fichiers depuis l'archive
  • Ouvrir Lazarus
  • Ouvrir le paquet glscenelazarus.lpk avec Composants/Ouvrir un ficheir de paquet (.lpk) depuis lazarus\components\glscene\Lazarus
  • (cliquer sur Compiler seulement si nécessaire, si vous ne voulez pas installer le composant dans l'IDE)
  • Cliquer sur Installer
  • Répéter ces étapes (ouvrir .lpk puis cliquer sur installer) pour les autres paquets que vous voulez installer. Note : ces paquets supplémentaires nécessitent des bibliothèques additionnelles (fmod, ode, Cg).
    • glscenecgshader.lpk : nuanceurs Cg (seulement avec les cartes NVidia ?)
    • glsceneode.lpk : support de la bibliothèque ode
    • glsss_fmodlaz.lpk : support de la bibliothèque fmod
    • gls_winonly.lpk : ce paquet ne peut être installé que sur Windows. Contient des trucs pour l'économiseur d'écran aussi bien que le support de la bibliothèque BASS.

Conseil: quelquefois une erreur "GLGraphics not found" survient. Ne pas s'inquiéter, il suffit de faire Outils->Construire Lazarus à nouveau et tout devrait rentrer dans l'ordre.

Une installation complète de Lazarus avec GLScene déjà dans l'IDE est disponible comme livraison win32 binaire.

Juste un avertissement pour les utilisateurs (nouveaux) de Linux : GLScene dans son état actuel ne fonctionne pas "en dehors de la boîte ("out-of-the-box") (nombreuses modifications/ajouts nécessaires). UPDATE: ce n'est plus vrai. glscene pour Lazarus est assez à jour et la plupart des choses fonctionnent bien en dehors de la boîte pour Windows ainsi que pour linux.

À partir de la dernière version du tronc (voir svn ci-dessus), la version Linux fonctionne bien. Certaines démos (environ 20%) sont toujours foireuses, mais la majorité de glscene fonctionne maintenant. Nous nous efforçons également de le faire fonctionner sur d'autres plates-formes Unix comme FreeBSD.

Les parties manquantes/non-fonctionnelles sur les non-fenêtres sont: glKeyboard (utilise winapi, mais n'est pas requis la plupart du temps), glSound (qui utilise mm, nous avons besoin d'utiliser openal ou autre chose)

Un installeur windows pleinement fonctionnel est prévu.

Aide