Delphipage - la reference en Delphi
Accueil - Astuces - Composants - Programmes - Tutoriaux - Livres - Liens
 Sources
- Astuces
- Composants
- Programmes
- Tutoriaux
 Rechercher
- Delphipage
- Ngscan
 Ressources
- Lexique Delphi
- Livres
- News
- Patchs Delphi
 Liens
- Borland France
- CodeGear
- Les meilleurs sites


Tutoriaux - GLScene - Exemple d'utilisation

Présentation

Cette exemple vous permettra de vous familiariser avec GLScene.



Le programme consiste à montrer les points suivants :
  •   Création d'objets 3D
  •   Mettre une texture sur un objet
  •   Jouer avec la caméra
Le programme utilise les deux principaux composants de GLScene : TGLScene et TGLSceneViewer.

TGLScene est une scène constituée d'objets (on appelle ici "objet" une forme quelconque, cube, sphère, ...).
TGLSceneViewer permet de visualiser la scène.


Réalisation du programme

Créez un nouveau projet Delphi.
Ajoutez le composant TGLScene et TGLSceneViewer de l'onglet "GLScene" de la palette de composants de Delphi.
Mettez la propriété "Align" du composant TGLSceneViewer à "alClient".



Ajouter une caméra

Cliquez deux fois sur le composant TGLScene que vous avez insérer sur la fiche.
La fenêtre "GLScene Editior" apparait alors. Sélectionnez "Cameras" puis cliquez sur le bouton "Add camera".



Sélectionnez le composant TGLSceneViewer et mettez "GLCamera1" dans la propriété "Camera".

Modifier la couleur de fond du composant TGLSceneViewer

Sélectionnez le composant TGLSceneViewer puis allez dans l'inspecteur d'objet et cliquez sur le "+" de la propriété "Buffer". Modifier la propriété "BackgroundColor" en choissant "clBlack" pour la couleur noire.

Créer des objets 3D

Pour commencer, allez dans la fenêtre "GLScene Editor". Sélectionnez "Scene objects" puis cliquez sur le bouton "Add objet" pour faire apparaitre un menu surgissant.



Choisissez "DummyCube".
Sélectionnez "GLCamera1" et mettez la propriété "TargetObject" à "DummyCube1".
Sélectionnez "DummyCube1" et cliquez sur le "+" de la propriété "Position". Pour les propriétés "X", "Y" et "Z" mettez la valeur "2".



Ajoutez un deuxième objet "Sphere" par le même procédé que précèdemment.

Placer les objets

Pour "Sphere2", cliquez sur le "+" de la propriété "Position" dans l'inspecteur d'objet.
Dans "X", mettez "7", dans "Y" et "Z "mettez "2".

Modifier la couleur d'un objet

Sélectionnez à l'aide de la fenêtre "GLScene Editor" "Sphere1". A l'aide de l'inspecteur d'objet, cliquez sur "+" de la propriété "Material" puis sur le "+" de la propriété "FrontProperties". Choisissez "clrBlue" dans la propriété "Ambient".

Réalisez la même opération pour "Sphere2" en choisissant cette fois- ci "clrGray85" pour la propriété "Ambiant".

Voici le résultat que vous devriez obtenir :




Mettre une texture sur un objet

Nous allons maintenant mettre une texture sur la première Sphère que nous avons créer précèdemment.
Pour cela, on utilise l'image du monde :



Allez dans la fenêtre "GLScene Editor". Sélectionnez "Sphere1". A l'aide de l'inspecteur d'objet, cliquez deux fois sur le "+" de la propriété "Material" puis sur le "+" de "Texture".
Recherchez l'image du monde (l'image est au format JPEG, il est donc nécessaire d'ajouter l'unité "Jpeg"). Ensuite, affectez la propriété "Disabled" (toujours dans "texture") à "False".

Jouer avec la caméra

Cette opération consiste à changer la vue que l'utilisateur du programme possède.
Dans un premier temps, on utilise l'événement "OnMouseWeel" de la form pour modifier la distance (nous allons faire une sorte de zoom).

Uses Math, Jpeg;

private

{ Déclarations privées }
CoordX,CoordY:Integer;
end;

procedure
TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
//Modifie la distance de la vue
GLCamera1.AdjustDistanceToTarget(Power(1.1,WheelDelta/120));
end;

Il est nécessaire d'ajouter l'unité "Math" pour pouvoir se servir de la fonction "Power" qui permet d'éléver à la puissance.

Puis dans un deuxième temps, on va agir sur la position de la vue.


procedure TForm1.GLSceneViewer1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
//Stocke les coordonnées de la souris
CoordX:=X;
CoordY:=Y;
end;

procedure TForm1.GLSceneViewer1MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
var dx,dy:Integer;
begin
//Calcule la distance entre le point lors du dernier clic et la position de la souris après avoir bouger
dx:=CoordX-X;
dy:=CoordY-Y;
CoordX:=X;
CoordY:=Y;
if ssLeft in Shift then //Si l'utilisateur utilise le bouton gauche de la souris alors...
GLCamera1.MoveAroundTarget(dy,dx); //Change l'orientation de la caméra
if ssRight in Shift then //Si il utilise le bouton droit alors...
GLCamera1.RotateObject(Sphere1,dy,dx); //L'objet "Sphere1" subit une rotation
end;

GLScene    [ 23-12-2003 ]
 Créer des objets 3D, jouer avec la caméra, mettre une texture sur un objet.
Télécharger :  [19 Ko] [Télécharger exglscene.zip]

Auteur : Yoann
Site internet :
http://delphipage.free.fr/
 

Tous droits réservés - Contacts
Haut de la page