3ds files viewer

Soyez le premier à donner votre avis sur cette source.

Vue 10 863 fois - Téléchargée 1 553 fois

Description

visualiser un fichier *.3ds ...

Source / Exemple :


zip

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
27
Date d'inscription
dimanche 4 juin 2000
Statut
Membre
Dernière intervention
13 juillet 2007

Concernant les fuites je rajouterai également ces deux bouts de codes dans mathlib.h
==========================================================================================
inline vec3& Cross(const vec3 &v1,const vec3 &v2) {
vec3 *ret = new vec3(v1.y * v2.z - v1.z * v2.y, v1.z * v2.x - v1.x * v2.z, v1.x * v2.y - v1.y * v2.x);
return *ret;
}

// This calculates a vector between 2 points and returns the result
inline vec3& Vector(const vec3 &vp1, const vec3 &vp2) {
vec3 *ret = new vec3(vp1.x - vp2.x, vp1.y - vp2.y, vp1.z - vp2.z);
return *ret;
}
===============================================================================================

A corriger en remplacant par

==========================================================================================
inline vec3& Cross(const vec3 &v1,const vec3 &v2) {
vec3 ret(v1.y * v2.z - v1.z * v2.y, v1.z * v2.x - v1.x * v2.z, v1.x * v2.y - v1.y * v2.x);
return ret;
}

// This calculates a vector between 2 points and returns the result
inline vec3& Vector(const vec3 &vp1, const vec3 &vp2) {
vec3 ret(vp1.x - vp2.x, vp1.y - vp2.y, vp1.z - vp2.z);
return ret;
}
===============================================================================================

Pour le post d'avant il faut utiliser un smart pointer pour verts,normals,texverts et pfaces afin de liberer automatiquement la mémoire.
Messages postés
27
Date d'inscription
dimanche 4 juin 2000
Statut
Membre
Dernière intervention
13 juillet 2007

Un sérieux manque de gestion de la mémoire.

Les fichier 3DS.h et 3DS.cpp comporte de nombreuses fuites de mémoire notament à cause de la structure de données :

struct t3DObject
{
int numOfVerts;
int numOfFaces;
int numTexVertex;
int materialID;
bool bHasTexture;
bool bHasmaterialID;
char strName[255];
vec3 *pVerts;
vec3 *pNormals;
vec2 *pTexVerts;
tFace *pFaces;
};

Des pointeur dans la structure qui ne sont bien sûr jamais déchargé via un delete[] .. !!!!

Cette partie du code source est donc à revoir

Une version sans fuite de mémoire serait donc la bienvenue car cette source est vraiment trés interressente !
Messages postés
4
Date d'inscription
lundi 21 août 2006
Statut
Membre
Dernière intervention
28 mars 2007

Salut,jaime beaucoup ton programme.J'utilise 3ds max avec un ami et je vais essayer mes projets sur ton visualisateur.Si tu pourrais m'envoyer tes futures mises à jours de ce logiciel.Merci.

SylvainSSiri@hotmail.com
Messages postés
71
Date d'inscription
mercredi 14 avril 2004
Statut
Membre
Dernière intervention
14 septembre 2007

Dans ton fichier principale, tu devrais remplacer ta boucle qui s'occupe des messages par celle-ci. Ca évite que le processeur soit constamment utilisé à 100% (ce qui est qd meme mieux). En testant, je n'ai pas vu de différence entre ta boucle et celle-ci.

while (GetMessage(&msg, NULL, 0, 0) != 0)
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
Messages postés
23
Date d'inscription
mercredi 18 août 2004
Statut
Membre
Dernière intervention
20 novembre 2007

gbourgeois0019:
j'ai compilé avec visual C++ (Warining level 3)et ça donne pas de warnings,
le warning level 3 et une option par default de VC++.
avec un (warning level 3) il y a tjrs des warnings
Afficher les 7 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.