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 14 631 fois - Téléchargée 1 389 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
4 janv. 2004 à 19:30
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
5 janv. 2004 à 09:10
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
5 janv. 2004 à 17:58
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
5 janv. 2004 à 18:00
euh envoie moi le compo glscene plz :)
link : ...
cs_Yoann Messages postés 25 Date d'inscription lundi 1 octobre 2001 Statut Membre Dernière intervention 28 juillet 2004
6 janv. 2004 à 17:46

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.