Personnage anime en 3d

Soyez le premier à donner votre avis sur cette source.

Vue 25 034 fois - Téléchargée 1 089 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

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
12
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
12
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
4531
Date d'inscription
dimanche 29 septembre 2002
Statut
Modérateur
Dernière intervention
22 avril 2019
8
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
12
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 ;)

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.