3DS FILE VIEWER 1.4.1 PRE- FINAL

Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
- - Dernière réponse : shadowmoy
Messages postés
340
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
25 août 2007
- 3 janv. 2008 à 13:30
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/29361-3ds-file-viewer-1-4-1-pre-final

ScSami
Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
18 -
C'est super ce que vous (ou tu!!!) avez fait.

10/10
shadowmoy
Messages postés
340
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
25 août 2007
-
ben Ciberrique m'as filé ca base est j'ai cherché et codé :p

merci ScSami :p

comme ca maintenant on a un vrai loader de 3ds en vb :p
ciberrique
Messages postés
589
Date d'inscription
lundi 25 août 2003
Statut
Membre
Dernière intervention
18 juillet 2010
-
J'ai t'ai envoyer un message sur ce qu'est de mon avis.
Ensuite ScSami je confirme les dire de shadowmoy toutes l'ouverture du fichier 3d et de moi sauf ce qui concerne le mapping donc texture et materiaux...

Continue comme sa shadowmoy, la final est proche.
ciberrique
Messages postés
589
Date d'inscription
lundi 25 août 2003
Statut
Membre
Dernière intervention
18 juillet 2010
-
J'ai oublier un truc, shadowmoy si tu veux un jour participer a un jeu en vb, contacte moi.
Afyn
Messages postés
613
Date d'inscription
samedi 3 août 2002
Statut
Membre
Dernière intervention
22 décembre 2016
-
Bravo

Bon boulot

Afyn - Navedac
ScSami
Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
18 -
Bon, je voulais juste dire qu'il y avait encore quelques "bugs" qui sont un peu chiants...

Par exemple, je ne peux pas choisir, à l'ouverture, DirexctX sinon ça plante directe (x!).

Au passage entre le mode DirecteX et Soft, y'a quelques probs de réinitialisations.

De plus, systématiquement, j'ai des probs avec "0,4"...

L'accès au clavier est peut-être à revoir... J'ai entre autre de gros probs de caméra, toujours entre le mode normal et directX...

Sinon, pour les textures BRAVO, franchement, rien à dire.

J'attends la Finale avec une immense impatience.
NoRabbit
Messages postés
224
Date d'inscription
samedi 26 juillet 2003
Statut
Membre
Dernière intervention
30 mars 2009
-
superbe !
shadowmoy
Messages postés
340
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
25 août 2007
-
je mettrais bientot une mise a jour qui corrige des bugs et optimise le code ...
parce que la c'est plutot foutoire dnas la lecture du fichier et dans le rendu...
et j'ajouteri le support des materials :p
djan03
Messages postés
1
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
11 février 2005
-
super.

bonne continuation
10/10
shadowmoy
Messages postés
340
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
25 août 2007
-
bon g corrigé le bug des vertices en trop mais (oui y a un mais) les models dont le poit d'origine ne se trouve pas au point 0,0,0 (x,y,z) auront 1 a 3 vertices en trop en mode filliaire.
je m'explique : ces 3 vertices correspondent a la ligne entre le point 0 du monde et le point 0 de l'objet 3d
je corrigerais ca en recalant l'objet 3d sur l'axe 0,0,0
le hic c'est que ca necessite de recalculer les coordonnées de tous les vertex :o/ donc je me demande si ca va pas ramer je vous dit quoi des que c'est codé ;p
ciberrique
Messages postés
589
Date d'inscription
lundi 25 août 2003
Statut
Membre
Dernière intervention
18 juillet 2010
-
shadowmoy, pour recentrer l'objet tu n'as qu'as recaler les vertex au meme endroit que je corrige les normal.
J'espere que sa t'aidera un peu.
shadowmoy
Messages postés
340
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
25 août 2007
-
j'ai viré cette partie de ton code et restructuré le code sous forme de structure (c pour le prochain update sur le site) g recodé la partie afficahge et rotation (x,y,z) entierement via des matrices
enfin tu verras dans le prochain update

g aussi modifié la facon de lire les noms de materials et meshs dans le 3ds (ah optimisation quand tu nous tiens :op)

me reste a regler pas mal de truc pour la version 1.3.5 ...
enfin prochain update bientot ... (c promis je me depeche ;op)
shadowmoy
Messages postés
340
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
25 août 2007
-
et oui y avait encore un fix a faire pour ne pas avoir a corriger les normals héhé :op
ciberrique
Messages postés
589
Date d'inscription
lundi 25 août 2003
Statut
Membre
Dernière intervention
18 juillet 2010
-
Je le pensais mais je ne suis pas expert en 3ds ....
J'attend ton update pour pouvoir continuer le miens.
shadowmoy
Messages postés
340
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
25 août 2007
-
ben moi non plus j'analyse les fichiers 3ds avec un editeur hexa pour trouver les chunks pas referencés lol
le pire c que ca marche :p
ciberrique
Messages postés
589
Date d'inscription
lundi 25 août 2003
Statut
Membre
Dernière intervention
18 juillet 2010
-
Ptdr, moi sa ira, les chunk je l'ai est presque tous.
ScSami
Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
18 -
C'est quoi un Chunk ???

Dit Ciberrique, si tu les a presque tous, pourquoi tu ne nous les fait pas partagé ???

Sinon, quelqu'un pourrait-il m'expliquer (en gros) comment, via une image de textures (donc, avec plusieurs textures dessus) on peut texturer un obj 3D ??? C'est quoi le concept ???

C'est à dire, comment on découpe (aplatit) un obj3D pour lui assigner sa texture ???

[faites simple svp]
ciberrique
Messages postés
589
Date d'inscription
lundi 25 août 2003
Statut
Membre
Dernière intervention
18 juillet 2010
-
Un chunk c'est comme une partie du fichier, si tu prend mon projet du viewer 3ds ou celui ci (il me semble) tu as un treeview avec les hierarchies, les hierarchies sont les chunk, cependant le treeview ne les contients pas tous.
Pk je les partages pas parceque il le sont deja ...
www.wotsit.org pour ceux qui ne connaisse pas.
En ce qui concerne le texturing je sais qu'il faut donné des coordonées tu et tv pour chaque vertex ensuite apliqué la texture correspondant à l'objet par rapport a son mapping de materiaux mais je connais âs trop, shadowmoy a plus de connaissance.

J'espere t'avoir un peu eclairer.
a+
ScSami
Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
18 -
Oui, merci :-)
shadowmoy
Messages postés
340
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
25 août 2007
-
pour les coordonnées 2d c tout simple :

un point en 3d à 3 coordonnées x,y,z
on lui ajoute deux coordonnées u et v qui correspondent a ces coordonnées x et y sur un plan 2d mais ! ses coordonnées sont comprise entre 0.0000 et 1.000 pourquoi ?
tout simplement car ca permet d'utiliser des texture de taille differentes (ex: 128* 128 ou 256*256 ou 512 *512 ,etc...)

on a donc
truc.tu*256=coordonnée X du point sur l'image
truc.tv*256=coordonnée Y du point sur l'image

ensuite on sait qu'il faut 3 points pour faire un triangle
donc si les trois point du triangle on des coordonnées u et v on pourras le texturer en gros prendre une partie triangulaire sur l'image 2d et la mettre sur l'objet 3d

j'espere que c'est pas trop compliqué expliqué comme ca ? :op
shadowmoy
Messages postés
340
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
25 août 2007
-
bon la prochaine version sera plus "simple"
g encore optimisé le code et viré la partie software
qui ne sert a rien car si l'exe plante au demarage si dx n'est pas installé ben pas de programme donc pas de rendu software donc ca degage

donc le tout est maintenant sous dx8

g encore modifié le module de lecture et refait des modifs dans le rendu sous dx et g modifié le systeme des cameras :p
shadowmoy
Messages postés
340
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
25 août 2007
-
bon la prochaine version sera plus "simple"
g encore optimisé le code et viré la partie software
qui ne sert a rien car si l'exe plante au demarage si dx n'est pas installé ben pas de programme donc pas de rendu software donc ca degage

donc le tout est maintenant sous dx8

g encore modifié le module de lecture et refait des modifs dans le rendu sous dx et g modifié le systeme des cameras :p

update sur le site bientot...
ScSami
Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
18 -
COOL, MERCI.

Tes explications sur les coordonnées U/V, CLAIR, CONCIS, bref PARFAIT !!! :-)))

Là au moins j'ai birn compris.

En ce qui concerne l'update... je suis vraiment IMPATIENT de voir ça :-)))

Je suis surtout impatient de voir la nouvelle gestion de la caméra...


Ceci dit, j'ai quelques idées à te suggèrer pour de futures versions (et j'espère sincérement qu'il y en aura...) :
- Ouverture des DXF (voir des MAX !!! ;-)
- 4 Femêtres (au fait, super la fenêtre de la texture...)
- Faire un OCX (Contrôle ActiveX) pour pouvoir éventuellement intégrer une fenêtre de vision dans un projet... Ce qui nous permettrait de nous concentrer sur l'éditeur plus que sur le rendu en cas de conception de "softs" 3D.

@+++++++++++
shadowmoy
Messages postés
340
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
25 août 2007
-
héhé pour l'ocx c'est prevu des que j'aurait fixé la lecture complete des 3ds doc voila la version plus simple qui seras encore optimisée tres bientot :op
ciberrique
Messages postés
589
Date d'inscription
lundi 25 août 2003
Statut
Membre
Dernière intervention
18 juillet 2010
-
shadowmoy, j'aimerais savoir jusqu'ou tu comptes allé dans la lecture des 3ds, car suivant ou tu vas je pense que l'on pourrait relier nos forces ....
shadowmoy
Messages postés
340
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
25 août 2007
-
ben je compte lire le maximum d'infos et pouvoir aficher les lumiere, materials etc.. etc.. sous dx

et une fois que tous seras ok je transformerai le module en classe pour en faire un objet et ensuite un ocx voila :)
ciberrique
Messages postés
589
Date d'inscription
lundi 25 août 2003
Statut
Membre
Dernière intervention
18 juillet 2010
-
tu fais ce que tu veux du code. Cependant oublie pas qu'il y a des animations dans les 3ds, est cette partie m'interresse.
shadowmoy
Messages postés
340
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
25 août 2007
-
hum t'as des fichiers 3ds avec animation a me mailer ?
pasque moi je doit pas en avoir enfin pas sur et chercher parmis tous mes 3ds pas trop le temps :p
shadowmoy
Messages postés
340
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
25 août 2007
-
bon en gros on a la vue 3d sous 3dsmax mais (eh oui y a un mais)
reste a fixer l'angle de vue pour avoir la bonne vue en 0,0,0 car la on a une vue "inversée" enfin plutot retournée sur certains axes je bosse dessus ainsi que un complement de la lecture des materials et de l'affectation par index des materials au objets (ou face) reste a savoir ou lire ses infos...
ciberrique
Messages postés
589
Date d'inscription
lundi 25 août 2003
Statut
Membre
Dernière intervention
18 juillet 2010
-
Je peux me procurer des 3ds avec des animations.
shadowmoy
Messages postés
340
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
25 août 2007
-
mise a jour des cameras pour ceux que ca interesse :p
shadowmoy
Messages postés
340
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
25 août 2007
-
limite y commence a y avoir un peu trop de commentaire lol :p
shadowmoy
Messages postés
340
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
25 août 2007
-
prochaine etapes : ajouter les lumiere pour le shading et finir la lecture des materials pour les utiliser sous dx directement
ScSami
Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
18 -
C'est mieux mais y'a encore des ptits problèmes au niveau des caméra...
Quand tu fais une translation, ça tourne !!!

Pi y'en a marre de cette erreur au démarrage... faut enlevé cette vilaine virgule pour les valeurs par défaut (de rotation entre autre) et mette un foutu point "." !!!

Sinon, c'est TOP. J'attends vraiment la suite avec une grande impatience...
shadowmoy
Messages postés
340
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
25 août 2007
-
comment ca ca tourne ? si tu parle du fait que l'objet semble "tourner c normal car la vue actuelle correspond à une vue perspective de l'objet donc quand tu effectue une translation de l'objet ta camera semble rester fixe et l'objet semble tourner un petit peu mais je te rassure c'est tout ce qu'il y a de plus normal, c'est pareil sous 3dsmax et gmax voila :p pour l'erreur de "," moi ca buggait pas mais je vais corriger ca :)
ScSami
Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
18 -
Ok.
Merci :-)
shadowmoy
Messages postés
340
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
25 août 2007
-
Pensez à lire la partie "Historique de cette source" pour saoir les dernieres modif que j'ai fait dessus :op
shadowmoy
Messages postés
340
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
25 août 2007
-
y a encore qq fichiers 3ds que j'arrive pas a lire correctement mais ca viendra ...
shadowmoy
Messages postés
340
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
25 août 2007
-
apparament ca vient du fait qu'il y ai des cameras et des lights dans la scene 3ds et ca fait planter la lecture grrr
shadowmoy
Messages postés
340
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
25 août 2007
-
pour les animation je vais commencer à bosser dessus mais ca risque d'etre bien hard je pense donc je vous promet rien à ce niveau la ... mais on va essayer :op
ScSami
Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
18 -
Ben on est patient ;-)))

Mais bon, franchement, les animes, on s'en fout un peu... Le principale c'est que le prog fonctionne bien.

Moi je suis pour une sensible amélioration de l'interface utilisateur avant de passer aux animes... mais ce n'est que mon humble avis...

LA FINALE, LA FINALE, LA FINALE, LA FINALE... sinon on fait la grève de la faim.
shadowmoy
Messages postés
340
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
25 août 2007
-
tu entends koi par amelioration de l'interface ?
on sait jamais vous pourriez me donner des idées :p

sinon je vais peut etre essayer d'ajouter les axes origines pour chaque ojbect si je trouve comment les faire sous d3d ;op

sinon ben pour les anims y a du taf :o/
bilaloch
Messages postés
556
Date d'inscription
lundi 6 octobre 2003
Statut
Membre
Dernière intervention
31 octobre 2019
-
Salut shadowmoy,

Tres bonne source et euh... est ce que ce code peut fonctionner en dx9 ?

Merci pour ce code ;) 10/10

BILALoch
bilaloch
Messages postés
556
Date d'inscription
lundi 6 octobre 2003
Statut
Membre
Dernière intervention
31 octobre 2019
-
Ah oui. J'oubliais : comment calcule t on les coordonnées u et v d'un objet 3D (oui ca peut servir des que l'on veut selectionner un objet ;) meme avec des fichiers *.X) parce que je n'ai pas tres bien compris sur la source ?

Merci d'avance

BILALoch
shadowmoy
Messages postés
340
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
25 août 2007
-
on ne les calcul pas en fait chaque point au depart a une coordonnée U et V egale a zero ensuite on peut s'amuser a faire un pseudo calcul pour les mettre en forme sur un plan 2d mais cela necessite toujours de devoir les modifier a la main via un utilitaire de mapping 2d comme l'outils "unwrap uvw" sous 3dsmax je pense justement ajouter qq outils comme ca pour pouvoir modifier les coordonées uv d'un modele n'en ayant pas
mais ca vas me prendre un peut de temps..
en fait je pense a des fichiers *.uv un peut comme mes fichiers *.mat qui seront externes et se charge a l'ouverture.

ensuite des que seras ok j'ajouterais certainement une interface plugins pour pouvoir exporter et pourquoi pas importer des modeles sous d'autres formats simples comme les fichiers *.obj, *.ase , et pourquoi pas *.x
:op
ca seras pas tres difficile ca ;op une fois bien sur que le module 3ds seras transformé en classe héhé
shadowmoy
Messages postés
340
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
25 août 2007
-
je pense que tu veut parler plutot de selectionner un face de l'objet 3d, dans ce cas tu n'as pas besoin des coordonnées uv qui ne servent qu'au mapping de la texture 2d sur l'objet 3d...
ScSami
Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
18 -
Y'a toujours ce problème de "0,1" au lieu de "0.1" !!!

Note, faudrait redim automatiquement la fenetre à l'ouverture dans le form_load...
bilaloch
Messages postés
556
Date d'inscription
lundi 6 octobre 2003
Statut
Membre
Dernière intervention
31 octobre 2019
-
Oui c'est exactement ca. Je souhaite selectionner une face ou le mesh mais je sais pas trop comment faire.
shadowmoy
Messages postés
340
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
25 août 2007
-
chaque face est referencée par 3 points et chaque point a des coordonnées xyz

donc si tu selectionne Face(10)

tu recuperes :

Face(10).point1.x
Face(10).point1.y
Face(10).point1.z

Face(10).point2.x
Face(10).point2.y
Face(10).point2.z

Face(10).point3.x
Face(10).point3.y
Face(10).point3.z

ensuite il te suffit de creer une face temporaire

dont les points auronts ces coordonnées et tu auras une selection dans la partie 3d

par contre pour pouvoir selectionner une face en cliquant directement sur l'objet dans la fenetre de rendu je sais pas encore fo que j'y reflechisse...

ScSami> essaye la new version et dit moi si le bug de virgule est toujours present..
bilaloch
Messages postés
556
Date d'inscription
lundi 6 octobre 2003
Statut
Membre
Dernière intervention
31 octobre 2019
-
Ok, merci ShadowMoy. Si tu as des nouvelles, dis le moi...

BILALoch
KeepCool37
Messages postés
11
Date d'inscription
vendredi 10 janvier 2003
Statut
Membre
Dernière intervention
30 novembre 2006
-
Impec !!
azerty99_71
Messages postés
55
Date d'inscription
samedi 4 septembre 2004
Statut
Membre
Dernière intervention
9 décembre 2005
-
euh perso j'ai un message d'erreur (je suis sous direct X 9.0c XP SP2) ...

J'ai droit à un "Erreur Automation" ...

Quelqu'un pourrait m aider s il vous plait ?

D'après VB c'est la ligne

Set PDevice = PDirect3D.CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, Form1.Picture1.hwnd, CheckHardwareTL(), PStructParameter)

du module direct 3d (dans les déclarations) qui foire ...

++
shadowmoy
Messages postés
340
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
25 août 2007
-
c'est un pb de compatibilité avec ta carte graphique qui ne gere pas le T&L en hardware je pense :o/
ScSami
Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
18 -
Dit moi ShadowMoy, d'ou sors-tu la bonne femme ???
Et dit moi encore, avec quel soft tu la texture ???
shadowmoy
Messages postés
340
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
25 août 2007
-
alors c abbey de unreal tournament (UT99) avec une texture faite/modifiée sous paint ;op (en gros j'essayer de texturer le perso en Jill de Resident evil héhé
shadowmoy
Messages postés
340
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
25 août 2007
-
pour utiliser les textures dans le prog il faut aller dans l'editeur de materiaux, selectionner un material dans la liste puis changer le bitmap via le bouton browse et pour finir tu clic sur ok (au cas ou vous seriez pas famillairisés avec le systeme des materiaux a la 3dsmax)
ScSami
Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
18 -
Tu dis "Paint" !!! Parles-tu de Ms-Paint ???
Mais tu parts de quoi ? Du bitmap livré dans ton soft ???
Si c'est le cas, je comprends pas vraiment comment tu arrives à distingué les faces et encore moin à obtenir une texture digne de ce nom !!! Là, faut nous donner le secret...
shadowmoy
Messages postés
340
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
25 août 2007
-
oui je dit bien MS-paint, et oui aussi pour le bitmap filiaire généré par l'appli en fait je pense ajouter un editeur de skin (textures) qui permettras de "peindre" la texture en temps réel (en gros tu dessineras sur la texture 2d choisie et tu auras le resultat affiché direct sur le model 3d comme un apercue temps réel)

en fait une texture n'est rien d'autre qu'un plan sur lequel tu superpose tes triangles pour avoir un rendu 3d texturé.

donc le truc c'est de prendre le rendu filliaire de ta texture et de dessiner ta texture dessus puis dans l'editeur de material il te suffit de la selectionner et tu vois ce que ca donne en 3d , rien ne t'empeche de prendre apres un logiciel comme paint shop pro et de creer ta texture via des filtres.
ScSami
Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
18 -
L'idée de l'éditeur de texture avec apercus directe est une super bonne idée !!! Mais que de boulot!!!
J'attends ça avec une immense impatience !!!

Franchement, si tu y arrive, ce serait vraiment tip-top !
shadowmoy
Messages postés
340
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
25 août 2007
-
j'ai pas trop le temps de bosser dessus en ce moment mais j'ai deja transformé le module de lecture des 3ds en module de classe et modifié un peu l'interface generale , la je bosse sur pas mal de trucs pour rendre le moteur de rendu plus modulaire et pouvoir ajouter d'autres formats, pour le moment le support des formats suivants est supporté :
3ds, ms3d,OBJ et Asc
en fait mon but est de pouvoir fournir une interface plugins pour permettre d'ajouter des formats via du ...
vbscript :op
en gros si je parvient au resultat attendu on auras des formats de base et on pourras coder des loader pour d'autres formats en vbscript (en code non compilé !!!

bien sur ici la vitesse n'a que peut d'importance car il s'agit d'un prog pour visualiser les objets 3D texturés et voir meme animés)

des que j'aurais le temps j'implanterais ca et si c vraiment trop lent j'opterai pour des plugins sous forme de dll activex enfin on verras.
sionon pour le mapping temps réél ca va venir donc fo etre patient car g un taf et c sur mon temps libre :op ...
bilaloch
Messages postés
556
Date d'inscription
lundi 6 octobre 2003
Statut
Membre
Dernière intervention
31 octobre 2019
-
Ok shadowmoy. Par contre, pourrais-tu inclure le format *.X et son animation. Cela pourrait etre interressant... :)

BILALoch
shadowmoy
Messages postés
340
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
25 août 2007
-
pour le format .x il suffit de telecharger le sdk vb6 / dx8 de microsoft :)
bilaloch
Messages postés
556
Date d'inscription
lundi 6 octobre 2003
Statut
Membre
Dernière intervention
31 octobre 2019
-
Oui, je suis d'accord, mais pour l'animation, c'est pas aussi simple... :p

BILALoch
shadowmoy
Messages postés
340
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
25 août 2007
-
ben y a des samples d'animation de .x (persos texturés et animés dans le sdk directx8 de crosoft
mais perso j'aime pas le format .x
ScSami
Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
18 -
Alors, t'en es où maintenant ???
cs_ouroboros
Messages postés
11
Date d'inscription
vendredi 27 juin 2003
Statut
Membre
Dernière intervention
25 avril 2009
-
extra, pratique, simple et efficace.....
Que du bon, beau boulot shadowmoy, rien trouvé d'aussi pratique depuis longtemps..
merci et encore felicitations...
redisnotdead
Messages postés
7
Date d'inscription
lundi 23 juin 2003
Statut
Membre
Dernière intervention
9 novembre 2005
-
Super bien, j'y connait rien en vb mais tout ce que je peut dire c'est que c'est le genre d'outil qui simplifie grandement la vie des infographistes 3D de tout poil ( genre tu récupere une flopé de fichier 3ds t'est dans le speed et t'as pas le temps de lancer cette usine a gaz de 3dsMax c'est bien pratique ). Juste un petit bemol, le fait qu'il faille une carte 3D avec gestion du T&L en hard et que sur mon portable de pauvre y'a pas ça ( tu nous ferais pas une petite emulation en soft du T&L ??? nan je déconne :) )
En tout cas bravo
shadowmoy
Messages postés
340
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
25 août 2007
-
en fait c'etait mon but aussi de pouvoir visionner mes fichiers 3ds texturés rapidement sans avoir a chaque fois a les importer dans 3dsmax et a les retexturer pour voir ce que c'est donc heureux de savoir que je suis pas le seul a qui ce prog soit utile :p

pour la carte 3d je pense que c'est bien le cas mais g pas testé...
sinon je travaille sur une new version pour les 3ds (qq fix et une interface plus sympas)
et si g le temps j'implanterai l'edition du mapping de textures et la sauvegarde (en fait g plein de projet mais pas assez de temps grrr)
ScSami
Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
18 -
Comme tout le monde, comme tout le monde... crois moi!
Ah... comme disait le Joker dans Batman : "Tant de choses à faire et si peu de temps..."
Profonde n'est-elle point !?
shadowmoy
Messages postés
340
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
25 août 2007
-
a merde fo que je prevoit la suppression de l'association de fichier aussi ... :op
shadowmoy
Messages postés
340
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
25 août 2007
-
des idées pour reduire l'utilisation du processeur et augmenter le framerate ?
shadowmoy
Messages postés
340
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
25 août 2007
-
bon pour le framerate j'ai trouvé et le resultat est plus qu'interessant :op
ancienframerate * 2 = newframerate en gros ca double les perf de rendu !!

la solution : tout simple c comme un vertexbuffer en gros je ne calcule les objets qu'une seule fois plutot qu'a chaque frame a afficher voila

la new version arriveras bientot ...
brunomoraut
Messages postés
16
Date d'inscription
jeudi 10 novembre 2005
Statut
Membre
Dernière intervention
17 mai 2011
-
J'ai une err à la compil:
Erreur d'automation
(bécane sous w98)
Why ?

Merci
Germversity
Messages postés
3
Date d'inscription
vendredi 5 novembre 2004
Statut
Membre
Dernière intervention
21 septembre 2006
-
C'est super, je ne croyais pas que c'était faisable en VB...

Il a de la difficulté à lire les gros fichier mais pour les petits ca va...

Maintenant, saurais-tu comment afficher une animation de 3ds en VB?
ciberrique
Messages postés
589
Date d'inscription
lundi 25 août 2003
Statut
Membre
Dernière intervention
18 juillet 2010
-
Bonsoir, ayant largement travaillé sur le format 3ds, je peux dire qu'on peut afficher une animation. De plus je n'ai encore vu aucune source vb qui permet l'animation de fichier 3ds. Toutefois cela reste possible. Pour plus d'information vous pouvez observez ce site :
http://forum.games-creators.org/showthread.php?p=31530
Germversity
Messages postés
3
Date d'inscription
vendredi 5 novembre 2004
Statut
Membre
Dernière intervention
21 septembre 2006
-
Ouin eh bien c'est en C++ et open gl... J'ai besoin d'animer en VB avec DirectX...

En passant si on modifie l'exemple avec le code suivant on peut ouvrir n'importe quel fichier :

Public Function GetObjectVisibility(objectindex As Integer) As Boolean
On Error GoTo handler:
GetObjectVisibility = ObjetVertex(objectindex).Visible
handler:
End Function

Public Function GetObjectName(objectindex As Integer) As String
On Error GoTo handler:
GetObjectName = ObjetVertex(objectindex).Name
handler:
End Function
ciberrique
Messages postés
589
Date d'inscription
lundi 25 août 2003
Statut
Membre
Dernière intervention
18 juillet 2010
-
Le code donné sur http://forum.games-creators.org/showthread.php?p=31530 est effectivement en c++ et open gl, toutefois il reste la seule source permettant d'animer des 3ds ! donc il en est a vous de faire une adaptation au vb tout comme l'auteur de cette source ou moi l'avons fait. On ne va pas macher le travail a tout le monde...
cuq
Messages postés
345
Date d'inscription
mardi 3 juin 2003
Statut
Membre
Dernière intervention
21 mars 2008
1 -
Bonjour,

J'ai un problème avec la lecture des fichiers 3DS. Et par conséquent aussi un bug à signaler dans ce programme.

Normalement pour un fichier 3DS on a pas plus de 32767 ( Integer ) triangles par objet. 5 c'est pas moi qui le dit le l'ai lu sur le net)

Hors J'ai pas mal de fichier 3DS qui ne respecte pas cette limite . je me retrouve donc avec plus de 32000 facettes.

Dans ce programme et dans tous les autres présent sur le site ( vu qu'il découle un peu tous de la même source on retrouve le problème).

Dans notre cas si l'on prend dans le module de classe CLSOBJ3DS la fonction LireBloc.

Au moment de récupérer le nombre de facettes Le code suivant :

Case TRI_FACEL1 '&H4120 Get #NumeroFichier, , TempInteger 'cube12 : 6 faces * 2 12 triangles

'bug here
If TempInteger > 0 Then

Le "Bug indique" déjà que ce problème avit été détecté mais pas résolu.

Donc bref le problème est le suivant : Get #NumeroFichier, , TempInteger retroune un integer sauf que dans certains cas on est au dessus de 32767.

J'ai essayé plusieurs solutions sans succès ...

Par exemple si TempInteger < 0 exemple dans mon cas TempInteger =-23446 alors je fais
TempLong = 65536 + TempInteger ce qui me donne bien les 42090 triangles que je dois relire ...

Si le valeur dans ce cas est juste par contre la relecture ensuite n'est pas bonne : mauvaise position de lecture après Get #NumeroFichier, , TempInteger ?

J'ai essayé aussi de faire un truc du genre :

Get #NumeroFichier, , TempByte
TempLong = TempByte
Get #NumeroFichier, , TempByte
TempLong = TempLong + TempByte * 256

si on est inférieur à 32767 ca marche sinon ca plante ?

Voilà j'espère avoir été clair ...

Merci pour votre aide .
cuq
Messages postés
345
Date d'inscription
mardi 3 juin 2003
Statut
Membre
Dernière intervention
21 mars 2008
1 -
Pardon

Petite précision :
Case TRI_FACEL1 '&H4120
Get #NumeroFichier, , TempByte
TempLong = TempByte
Get #NumeroFichier, , TempByte
TempLong = TempLong + CLng(TempByte) * 256

Bon ca marche .. j'ai bien le bon nombre de triangles mais la suite merde ...

Je pense que c'est au niveau ensuite de fpos :

TempLong = fpos + 8 + 8 * TempLong

Qui dans ce cas devrait être initialisé différement ? pas 8+8 mais 8+???
cuq
Messages postés
345
Date d'inscription
mardi 3 juin 2003
Statut
Membre
Dernière intervention
21 mars 2008
1 -
Putain .... Je suis trop fort

Bon finalement j'ai trouvé c'était tout con .. alors c'est pas dit que ca marche avec des fichiers 3DS ayant encore plus de triangles mais dans mon cas ca marche.

Remplacer le code qui merde par :

'index des points des triangles + maillage du triangle AB,BC,AC 'Face de l'objet 3d.
Case TRI_FACEL1 '&H4120 ' Get #NumeroFichier, , TempInteger 'cube12 : 6 faces * 2 12 triangles
Get #NumeroFichier, , TempByte
TempLong = TempByte
Get #NumeroFichier, , TempByte
TempLong = TempLong + CLng(TempByte) * 256
nbrVertex TempLong * 3 'nombre de triangles * 3 nombre de points
ObjetVertex(nbrSolide).nbmappingpoint = nbpoint
ObjetVertex(nbrSolide).nbrVertex = nbrVertex

Info " |---> Nombre de points trouvé : " & nbrVertex
ObjetVertex(nbrSolide).nbrFace = TempLong ' nombre de faces
Info " |---> Nombre de triangles trouvé : " & TempLong
nbfaces = nbfaces + TempLong
' ReDim ObjetVertex(nbrSolide).VertexFace(0)
ReDim ObjetVertex(nbrSolide).VertexFaceMaterialindex(TempLong - 1) 'face material index for texturing aka texture(i)
ReDim Preserve ObjetVertex(nbrSolide).VertexFace(TempLong - 1)

Get #NumeroFichier, , ObjetVertex(nbrSolide).VertexFace

If TempLong < 32767 Then
TempLong = fpos + 8 + 8 * TempLong
Else
TempLong = fpos + 8 + 9 * TempLong
End If


While TempLong <> (fpos + tBloc.Longeur)
LireBloc TempLong
Wend
cuq
Messages postés
345
Date d'inscription
mardi 3 juin 2003
Statut
Membre
Dernière intervention
21 mars 2008
1 -
Re ...

Décidément vous allez dire celui là il commence à nous les ...

Bon je m'aperçoit que j'avais écrit une connerie la limite pour un fichier 3DS est de 64000 face . Il était donc normal d'avoir plus de 32000 faces donc le code était mauvais dès le départ et ma modif devrait être bonne pour tous les fichiers 3DS !

Bonne continuation
shadowmoy
Messages postés
340
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
25 août 2007
-
hum oui c'est en fait une "vielle" version du loader qui a bien evolué depuis mais non posté (on vas pas vous macher le boulot non plus ;op)

sinon la limite du nombre de triangles (faces) n'est pas comme tu le dit de 64000 triangles mais de 65535 (limite d'un integer en c) sachant qu'un integer vb a une valeur comprise entre -32767 et 32767 donc oui tu dis encore une connerie :p
sinon content que ce prog t'interesse
sinon voila la solution que tu cherche tant :

'Sous bloc d'EDIT_OBJET doit etre lu par l'edit_objet coordonnées xyz de chaque point
Case TRI_VERTEXL
Get #NumeroFichier, , TempInteger

nbrSolide = nbrSolide + 1
ReDim Preserve ObjetVertex(nbrSolide)
ObjetVertex(nbrSolide).name = tpn

If TempInteger > 0 Then
np = np + (TempInteger)
ObjetVertex(nbrSolide).nbrVertex = TempInteger
ReDim ObjetVertex(nbrSolide).tVertex(TempInteger - 1)
Get #NumeroFichier, , ObjetVertex(nbrSolide).tVertex
ObjetVertex(nbrSolide).Visible = True
Else
reste = 32768 + TempInteger
restel = 32768 + reste
np = np + (restel)
ObjetVertex(nbrSolide).nbrVertex = restel
ReDim ObjetVertex(nbrSolide).tVertex(restel - 1)
Get #NumeroFichier, , ObjetVertex(nbrSolide).tVertex
ObjetVertex(nbrSolide).Visible = True
End If

'***********************************************************************************************
Case TRI_FACEL1 '&H4120
'index des points des triangles + maillage du triangle AB,BC,AC 'Face de l'objet 3d.
Get #NumeroFichier, , TempInteger 'cube12 : 6 faces * 2 12 triangles

'bug here
If TempInteger > 0 Then
nbrVertex CLng(TempInteger) * 3 'nombre de triangles * 3 nombre de points
'' ObjetVertex(nbrSolide).nbmappingpoint = nbpoint

' ObjetVertex(nbrSolide).nbrVertex = nbrVertex

ObjetVertex(nbrSolide).nbrFace = TempInteger ' nombre de faces
nbfaces = nbfaces + TempInteger
ReDim ObjetVertex(nbrSolide).VertexFaceMaterialindex(CLng(TempInteger) - 1) 'face material index for texturing aka texture(i)
ReDim Preserve ObjetVertex(nbrSolide).VertexFace(CLng(TempInteger) - 1)

Get #NumeroFichier, , ObjetVertex(nbrSolide).VertexFace
Templong = fpos + 8 + 8 * CLng(TempInteger)

While Templong <> (fpos + tBloc.Longeur)
LireBloc Templong
Wend
Else
reste = 32768 + TempInteger
restel = 32768 + reste
nbrVertex CLng(restel) * 3 'nombre de triangles * 3 nombre de points

ObjetVertex(nbrSolide).nbrFace = restel ' nombre de faces
nbfaces = nbfaces + restel
ReDim ObjetVertex(nbrSolide).VertexFaceMaterialindex(restel - 1) 'face material index for texturing aka texture(i)
ReDim Preserve ObjetVertex(nbrSolide).VertexFace(restel - 1)

Get #NumeroFichier, , ObjetVertex(nbrSolide).VertexFace
Templong = fpos + 8 + 8 * restel

While Templong <> (fpos + tBloc.Longeur)
LireBloc Templong
Wend
End If