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; |
Partager