Bonjours a tous,
Je suis actuellement étudiant en informatique et j'ai un projet à réaliser en delphi (je pense que vous commencez à avoir l'habitude).
J'ai fait le tuto de pedro sur asphyre, tout c'est bien passé mais le problème est que je n'arrive pas à placer les mesh ou je veux. En gros j'ai rajouter une mesh et elle est superposer avec l'ancienne. De la même manière impossible de déplacer les meshs ou même de les supprimer et de recalculer leur position car elles seront toujours au centre.

Je suis allé voir le pactage Asphyrephysic mais les mesh sont directement générés par le programme et il est impossible de leur appliquer une texture ou définir leur forme...

J'espère que j'ai été assez clair. Merci d'avance et bonne année à tous

EDIT : après pas mal d'essais, j'ai trouvé une solution mais qui est assez moche : créer une caméra pour chaque élément... En gros :

Code delphi : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
procedure TMainFrm.RenderPrimary(Sender: TAsphyreDevice; Tag: TObject);
begin
  //Paramétrage de l'affichage
  //Cette étape n'est pas forcément nécessaire
  with DefDevice.Dev9 do
  begin
    SetRenderState(D3DRS_CULLMODE, D3DCULL_CCW);
    SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
  end;
 
  //Paramétrage de la matrice de transformation
  WorldMtx.LoadIdentity;
  WorldMtx.scale(Vector3(0.2, 0.2, 0.2));
  WorldMtx.Translate(Vector3(0,Gameticks/100.0,0));
 
  //Paramétrage de la caméra
  ViewMtx.LoadIdentity();
  //Rotation de la caméra suivant le paramètre GameTicks
  //Viewmtx.RotateY(GameTicks / 100.0);
  //Paramétrage de la caméra afin qu'elle regarde vers le point (0, 0, 0)
  ViewMtx.LookAt(Vector3(2.0, 2.0, 2.0), ZeroVec3, AxisYVec3);
 
  //Paramétrage de la matrice de projection
  ProjMtx.LoadIdentity();
  //Ces paramètres peuvent servir pour tous les rendus classiques
  //De cette façon, la projection utilise la taille de la fenêtre
  ProjMtx.PerspectiveFovY(Pi / 4.0, ClientWidth / ClientHeight, 1.0, 1000.0);
 
  //Initialisation du shader
  Shader.BeginAll;
  //Dessin du maillage par le shader
  Shader.Draw(Mesh, Sender.Images[ImageSkin]);
  //Finalisation du shader
  Shader.EndAll;
 
  //Paramétrage de la matrice de transformation
  WorldMtx.LoadIdentity;
  WorldMtx.scale(Vector3(0.2, 0.2, 0.2));
  //WorldMtx.Translate(Vector3(0,-Gameticks/100.0,0));
 
  //Paramétrage de la caméra
  ViewMtx.LoadIdentity();
  //Rotation de la caméra suivant le paramètre GameTicks
  //Viewmtx.RotateY(-GameTicks / 100.0);
  //Paramétrage de la caméra afin qu'elle regarde vers le point (0, 0, 0)
  ViewMtx.LookAt(Vector3(25.0, 6.0, 6.0), ZeroVec3, AxisYVec3);
 
  //Paramétrage de la matrice de projection
  ProjMtx.LoadIdentity();
  //Ces paramètres peuvent servir pour tous les rendus classiques
  //De cette façon, la projection utilise la taille de la fenêtre
  ProjMtx.PerspectiveFovY(Pi / 4.0, ClientWidth / ClientHeight, 1.0, 1000.0);
 
  //Initialisation du shader
  Shader.BeginAll;
  //Dessin du maillage par le shader
  Shader.Draw(Mesh2, Sender.Images[ImageSkin]);
  //Finalisation du shader
  Shader.EndAll;


je trouve ça très moche . si quelqu'un a une solution plus jolie j'aimerais la connaitre.