Télécharger le zip
C'est super ce que vous (ou tu!!!) avez fait.10/10
ben Ciberrique m'as filé ca base est j'ai cherché et codé :pmerci ScSami :pcomme ca maintenant on a un vrai loader de 3ds en vb :p
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.
J'ai oublier un truc, shadowmoy si tu veux un jour participer a un jeu en vb, contacte moi.
BravoBon boulotAfyn - Navedac
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.
superbe !
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
super.bonne continuation10/10
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,0le 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
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.
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 updateg 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)
et oui y avait encore un fix a faire pour ne pas avoir a corriger les normals héhé :op
Je le pensais mais je ne suis pas expert en 3ds ....J'attend ton update pour pouvoir continuer le miens.
ben moi non plus j'analyse les fichiers 3ds avec un editeur hexa pour trouver les chunks pas referencés lolle pire c que ca marche :p
Ptdr, moi sa ira, les chunk je l'ai est presque tous.
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]
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+
Oui, merci :-)
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'imagetruc.tv*256=coordonnée Y du point sur l'imageensuite on sait qu'il faut 3 points pour faire un triangledonc 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 3dj'espere que c'est pas trop compliqué expliqué comme ca ? :op
bon la prochaine version sera plus "simple"g encore optimisé le code et viré la partie softwarequi 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 degagedonc le tout est maintenant sous dx8g encore modifié le module de lecture et refait des modifs dans le rendu sous dx et g modifié le systeme des cameras :pupdate sur le site bientot...
bon la prochaine version sera plus "simple"g encore optimisé le code et viré la partie softwarequi 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 degagedonc le tout est maintenant sous dx8g encore modifié le module de lecture et refait des modifs dans le rendu sous dx et g modifié le systeme des cameras :p
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.@+++++++++++
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
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 ....
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 :)
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.
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
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...
Je peux me procurer des 3ds avec des animations.
mise a jour des cameras pour ceux que ca interesse :p
limite y commence a y avoir un peu trop de commentaire lol :p
prochaine etapes : ajouter les lumiere pour le shading et finir la lecture des materials pour les utiliser sous dx directement
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...
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 :)
Ok.Merci :-)
Pensez à lire la partie "Historique de cette source" pour saoir les dernieres modif que j'ai fait dessus :op
y a encore qq fichiers 3ds que j'arrive pas a lire correctement mais ca viendra ...
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
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
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.
tu entends koi par amelioration de l'interface ?on sait jamais vous pourriez me donner des idées :psinon je vais peut etre essayer d'ajouter les axes origines pour chaque ojbect si je trouve comment les faire sous d3d ;opsinon ben pour les anims y a du taf :o/
Salut shadowmoy,Tres bonne source et euh... est ce que ce code peut fonctionner en dx9 ?Merci pour ce code ;) 10/10BILALoch
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'avanceBILALoch
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 :opca seras pas tres difficile ca ;op une fois bien sur que le module 3ds seras transformé en classe héhé
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...
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...
Oui c'est exactement ca. Je souhaite selectionner une face ou le mesh mais je sais pas trop comment faire.
chaque face est referencée par 3 points et chaque point a des coordonnées xyzdonc si tu selectionne Face(10)tu recuperes :Face(10).point1.xFace(10).point1.yFace(10).point1.zFace(10).point2.xFace(10).point2.yFace(10).point2.zFace(10).point3.xFace(10).point3.yFace(10).point3.zensuite il te suffit de creer une face temporairedont 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..
Ok, merci ShadowMoy. Si tu as des nouvelles, dis le moi...BILALoch
Impec !!
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 ...++
c'est un pb de compatibilité avec ta carte graphique qui ne gere pas le T&L en hardware je pense :o/
Dit moi ShadowMoy, d'ou sors-tu la bonne femme ???Et dit moi encore, avec quel soft tu la texture ???
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é
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)
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...
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.
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 !
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 :open 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 ...
Ok shadowmoy. Par contre, pourrais-tu inclure le format *.X et son animation. Cela pourrait etre interressant... :)BILALoch
pour le format .x il suffit de telecharger le sdk vb6 / dx8 de microsoft :)
Oui, je suis d'accord, mais pour l'animation, c'est pas aussi simple... :pBILALoch
ben y a des samples d'animation de .x (persos texturés et animés dans le sdk directx8 de crosoftmais perso j'aime pas le format .x
Alors, t'en es où maintenant ???
extra, pratique, simple et efficace.....Que du bon, beau boulot shadowmoy, rien trouvé d'aussi pratique depuis longtemps..merci et encore felicitations...
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
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 :ppour 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)
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 !?
a merde fo que je prevoit la suppression de l'association de fichier aussi ... :op
des idées pour reduire l'utilisation du processeur et augmenter le framerate ?
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 voilala new version arriveras bientot ...
J'ai une err à la compil:Erreur d'automation(bécane sous w98)Why ?Merci
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?
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
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 BooleanOn Error GoTo handler: GetObjectVisibility = ObjetVertex(objectindex).Visiblehandler:End FunctionPublic Function GetObjectName(objectindex As Integer) As StringOn Error GoTo handler: GetObjectName = ObjetVertex(objectindex).Namehandler:End Function
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...
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 'cube= 12 : 6 faces * 2 = 12 triangles 'bug here If TempInteger > 0 ThenLe "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, , TempByteTempLong = TempByteGet #NumeroFichier, , TempByteTempLong = TempLong + TempByte * 256si on est inférieur à 32767 ca marche sinon ca plante ?Voilà j'espère avoir été clair ...Merci pour votre aide .
Pardon Petite précision : Case TRI_FACEL1 '&H4120 Get #NumeroFichier, , TempByte TempLong = TempByte Get #NumeroFichier, , TempByte TempLong = TempLong + CLng(TempByte) * 256Bon 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 * TempLongQui dans ce cas devrait être initialisé différement ? pas 8+8 mais 8+???
Putain .... Je suis trop fortBon 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 'cube= 12 : 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
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
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 :psinon 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 'cube= 12 : 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
Se souvenir du profil
Mot de passe oublié ? / Activation de compteCréer un compte
1 874 793 membres 17 nouveaux aujourd'hui 16 152 membres club