PERSONNAGE ANIME EN 3D

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 - 20 juin 2006 à 21:59
Choumoumou Messages postés 162 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 17 novembre 2010 - 6 juil. 2007 à 23:06
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/38208-personnage-anime-en-3d

Choumoumou Messages postés 162 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 17 novembre 2010
6 juil. 2007 à 23:06
excellent
(mais... 3 fps en 640x480 ! snif...)
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
9 nov. 2006 à 15:24
Oups,
pas j'attend mais j'atteins 40 FPS
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
9 nov. 2006 à 15:21
Aussi, pour avoir le taux réel de FPS que peut générer ta lib, je suggère d'enlever le Sleep(15) dans la fonction AppLoop de la démo. Ça plafonne les FPS à 33 tandi qu'en l'enlevant, j'attend 40 FPS.
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
8 nov. 2006 à 22:31
SAKingdom> Merci pour les info je vais tester ça. Desolé j'avais pas remarqué l'autre message. Merci encore.

@+
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
8 nov. 2006 à 19:13
Salut.
J'ai trouver quelque chose qui pourrait peut-être améliorer les FPS si ça t'interesse.

C'est simple, on se débarasse de StretchBlt. Mais comment redimentionner ?
Bien, j'ai rajouter une fonction dans ta librairie:
DLLEXPORT void __stdcall egResize (int width, int height)
{
mSrcCtrX = width / 2;
mSrcCtrY = height / 2;

mWidth width; mHeight height;
}
Tu l'aura deviné, ça sers à recentrer l'image. mWidth et mHeight sont des variables globales dans ton fichier EBArtGl.cpp.

J'ai donc refais la fonction blast:

DLLEXPORT void __stdcall egBlast(HDC hDC)
{
if (mInit == false) return;
//Copie le DC
BitBlt(hDC, 0, 0, mWidth, mHeight, mhDC, 0, 0, SRCCOPY);
}

Et j'ai modifier, dans le démo, AppCycle en changent l'appele de blast et en rajoutant ma fonction:
GetClientRect(hWnd,&Rc);
egResize(Rc.right, Rc.bottom);
hDC = GetDC(hWnd);
egBlast(hDC);

J'ai testé et, pour moi, ça fonctionne. Ça m'a fais passer de 20 fps à 33 fps (variable) en release.

Je me suis rendue compte de cela en fesant ma propre lib graphique 3D. Ça marche pour la mienne, pour la tienne aussi (chez moi) mais j'ai peut-être pas fais attention à quelque chose alors si ça ne peut pas fonctionner pour X raison, désolé de t'avoir fais perdre ton temps. Sinon, au plaisir de t'aider ;)
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
24 juin 2006 à 05:40
Woaw c'est très bien mais j'ai noter que le programme gelait pendant une certaine periode de temps quand une autre fenetre passait par dessus. Aussi, comment procède-tu pour afficher les pixels à l'écran? Tu utilise les fonctions de la GDI ou tu as tes propre fonctions. Je dois avouer que je suis un peu perdue.
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
20 juin 2006 à 22:59
Merci
Je suis à 33 images/sec si ca t'intéresse
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
20 juin 2006 à 22:35
voila le lien pour le zip complet :
http://ebartcodes.info/temp/moteur%203d.zip

@+
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
20 juin 2006 à 21:59
Ce serait cool un exécutable, pour que l'on puisse tester
Rejoignez-nous