Personnage anime en 3d

Soyez le premier à donner votre avis sur cette source.

Vue 25 350 fois - Téléchargée 1 140 fois

Description

Bonjour à tous,

Voici un petit moteur de rendu 3d (sans directx ni opengl). Il n'est pas encore performant car beaucoup trop lent et surtout inachevé (besoin de plus de fonction et surtout de plus de sécurité). Il n'est pas vraiement utilisable pour de plus grande application mais... pour ceux que cela interressent il permet d'en apprendre un peu plus sur le monde de la 3d.

Conclusion :


J'aimerais atteindre un minimum de 60 images par seconde (capacite hors limite moniteur)
Ca sera surement tres difficile a atteindre mais toutes les propositions d'amelioration sont les bienvenues
Si vous avez des routines plus rapide je suis prenneur (language assembleur compris)

(Pour information la dll doit être compatible VB ce qui explique la typelib et la separation en deux projets distincs)

Merci et b@nne prog

Codes Sources

A voir également

Ajouter un commentaire Commentaires
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 ;)
Afficher les 9 commentaires

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.