Glscene : créer deux objets de type sphère en 3d, insérer une texture sur un objet et jouer avec la caméra

Soyez le premier à donner votre avis sur cette source.

Vue 13 564 fois - Téléchargée 1 254 fois

Description

GLScene créé par Mile Lischke, est une bibliothèque 3D pour Delphi (à partir de la version 4) basée sur OpenGL.
GLScene regroupe un ensemble de composants permettant rapidement de concevoir des objets et des scènes en trois dimensions.

Le programme consiste à montrer les points suivants :
- Création d'objets 3D
- Mettre une texture sur un objet
- Jouer avec la caméra

Source / Exemple :


unit Unit1;

//Programmé par Yoann
//http://delphipage.free.fr/

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  GLScene, GLObjects, GLMisc, GLWin32Viewer, Math, Jpeg;

type
  TForm1 = class(TForm)
    GLSceneViewer1: TGLSceneViewer;
    GLScene1: TGLScene;
    GLCamera1: TGLCamera;
    DummyCube1: TDummyCube;
    Sphere1: TSphere;
    GLLightSource1: TGLLightSource;
    Sphere2: TSphere;
    procedure FormMouseWheel(Sender: TObject; Shift: TShiftState;
      WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
    procedure GLSceneViewer1MouseDown(Sender: TObject;
      Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    procedure GLSceneViewer1MouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
  private
    { Déclarations privées }
    CoordX,CoordY:Integer;
  public
    { Déclarations publiques }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

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

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;

end.

Conclusion :


Plus d'information sur : http://delphipage.free.fr/

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Fayen$
Messages postés
77
Date d'inscription
mercredi 24 septembre 2003
Statut
Membre
Dernière intervention
5 janvier 2004
-
on peut importer ces models fais sous 3ds ?
Frostizz
Messages postés
39
Date d'inscription
jeudi 30 août 2001
Statut
Membre
Dernière intervention
23 janvier 2005
-
Oui, en mettant un objet TFreeForm, et en utilisant sa propriété TFreeForm.LoadFromFile('C:\obj.3ds');
Fayen$
Messages postés
77
Date d'inscription
mercredi 24 septembre 2003
Statut
Membre
Dernière intervention
5 janvier 2004
-
impec vais tester ca :)
gg ;)
Fayen$
Messages postés
77
Date d'inscription
mercredi 24 septembre 2003
Statut
Membre
Dernière intervention
5 janvier 2004
-
euh envoie moi le compo glscene plz :)
link : ...
cs_Yoann
Messages postés
26
Date d'inscription
lundi 1 octobre 2001
Statut
Membre
Dernière intervention
28 juillet 2004
-

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.