Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

VIEWER 3D ET GÉNÉRATEUR 2D WIN32 OPENGL VC++7


Information sur la source

Catégorie :OpenGL Niveau : Initié Date de création : 23/01/2005 Vu / téléchargé: 13 196 / 1 980

Note :
10 / 10 - par 4 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (30)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
Il s'agit d'un logiciel de visualisation d'objets 3D supportant les textures
Il peut lire 3 formats et on peux facilement en ajouter :
- Wavefront OBJ (format texte)
- 3D Studio
- Milkshape (au format binaire)

Il y a des options d'affichage, il supporte le glisser/déplacer (drag'n drop), il calcule et peut afficher les bouding boxes, si l'objet est composé de plusieurs parties on peut en désactiver, on peux visualiser d'un simple clic une partie de l'objet, l'arborescence de l'objet sert d'interface aux manipulations, une fonction permet de "poser l'objet au sol" (pas de coordonnées en dessous de la verticale 0), fonction d'optimisation de l'objet retirant les vertices en doubles et les faces qui ont 2 points communs, fonction de génération de silhouette, pas de fonction de sauvegarde : à vous de d'intégrer celle que vous voulez

Vous pouvez donc trouver dans le code des tas de trucs qui peuvent vous plaire :
- des fonctions de math (vecteurs, matrices, ...)
- une classe de gestion de textures
- une classe de gestion de fichier log
- une classe de gestion d'objet 3D
- de la gestion de fenêtre en Win32
- une fonction de chargement JPEG !!
- une classe de gestion du temps (basique)
- une classe de chargement 3DS (pas de moi)
- une classe de chargement milkshape (pas de moi à la base mais un peu modifiée)
- une fonction de chargement wavefront
- du treeview
- gestion d'un fichier .ini (sauvegarde/chargement) pour conserver les préférences
- et bien d'autres ...

bon "amusement"
Shenron

PS: un grand merci à http://nehe.gamedev.net de m'avoir permis d'en arriver là, il est ma principale source d'apprentissage OpenGL
 

Conclusion

Quelques petites explications sur le fonctionnement :
La partie gauche affiche la 3D, à droite la 2D
si vous avez un objet 3D vous le déplacez et le déposez dans l'application, il se charge, sinon menu "Fichiers" -> "Charger 3D" (vous aviez devinés ?__?)

Dans "Affichage 3D" vous pouvez activer/désactiver/modifier des options d'affichage pour la 3D
l'option "Afficher uniquement la sélection" permet de n'afficher que les éléments qui sont actifs (j'explique un peu plus loin)

Dans "Affichage 2D" vous pouvez activer/désactiver/modifier des options d'affichage pour la 2D cette fois
la première possibilité lance le générateur de silhouette et celle-ci est automatiquement affichée dans la partie 2D
l'option "Silhouette unicolore" affiche la silhouette d'une seule couleur (modifiable) si elle est désactivée alors chaque élément de la 2D est affiché avec la couleur de l'élément 3D correspondant

Dans le menu "Options" se trouve la fonction d'optimisation de la 3D qui consiste à relier les points qui sont confondus et qui peut rendre la 2D plus légère (tout comme la 3D)
Je vous conseille de générer une première fois la 2D puis d'optimiser la 3D et de régénérer encore une fois la 2D en regardant la différence
"Options" contient aussi la fonction (simple" qui va poser l'objet à 0 d'altitude

Les manipulations en 2D et 3D sont les mêmes :
clic gauche maintenu, déplacer la souris pour faire tourner l'objet
clic droit maintenu, déplacer la souris pour (dé)zoomer
clic avec le bouton du milieu, déplacer la souris pour déplacer la vue (en 3D elle ne se déplace pas
erticalement)

Pour terminer, lorsqu'un objet est chargé, une fenêtre apparait avec un "treeview" (un arbre façon windows explorer)
ce treeview contient le nom du fichier 3D chargé suivi de tous les éléments qui composent l'objet
le clic gauche sélectionne l'élément, un clic sur le nom du fichier sélectionne l'objet complet (selon  les éléments actifs)
le clic droit (dés)active un élément, cliquer sur le nom de l'objet inverse l'état de chaque élément (les actifs se désactivent et vice versa), cliquer sur un élément inverse sont état 3D et 3D, cliquer sur le + pour voir l'état de la 2D et de la 3D séparément et un clic droit sur létat de la 2D ou de la 3D permet de le modifier indépendamment
la fonction "Afficher uniquement la sélection" de la 2D et de la 3D tiens compte de ces états et il faut que l'objet général (clic gauche sur le nom de fichier) soit sélectionné

j'espère que mes explications sont assez claires, bon courage pour la compréhension du code
une dernière chose : si vous supprimez le fichier .ini ou s'il n'y en a pas, le programme le recrée automatiquement quand vous quittez
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de Afyn le 23/01/2005 21:43:11

C'est géant !

Bravo

Afyn
Navedac

signaler à un administrateur
Commentaire de shenron666 le 24/01/2005 13:01:39

Pour ceux qui ne savent pas où trouver des objets 3D (3DS et obj en autres) :

http://www.3dcafe.com/asp/freestuff.asp

Si vous en avez d'autres ca m'intéressent (3D, textures, sons, ..., tout ce qui peut etre utile pour la création d'une démo ou d'un jeu)

signaler à un administrateur
Commentaire de NoRabbit le 24/01/2005 16:19:54

bien sympa !

et très intéressant

merci !

signaler à un administrateur
Commentaire de Zazour le 24/01/2005 17:40:08

Bon projet,plein d'idées utiles.

merci!

signaler à un administrateur
Commentaire de Kirua le 24/01/2005 17:47:33

Impressionnant! C'est le 10/10 quoi :)

signaler à un administrateur
Commentaire de LordBob le 25/01/2005 15:11:47

impressionnant !!!
formidable source !

signaler à un administrateur
Commentaire de shenron666 le 25/01/2005 16:39:06

Pour ceux que cela intéresse, la procédure de génération de la silhouette est quasi identique à la procédure de calcul de silhouette destiné à la génération d'ombres volumétrique (dans le style doom3)
Il y a ps mal de boulot à faire tout de même mais si vous arrivez à comprendre le principe appliqué ici vous êtes en bonne voie

signaler à un administrateur
Commentaire de Funto66 le 26/01/2005 20:00:43

Le fichier LoadJPEG.cpp....c'est de toi??

Franchement rien que ça ça vaut le détour lol, qd on voit la complexité du chergement des fichiers JPEG et que tu les charges sans utiliser de jpeglib ni rien...franchement rien que pour ça ça vaut un 10/10 lol

signaler à un administrateur
Commentaire de shenron666 le 27/01/2005 09:40:34

Le chargement JPEG vient d'une source en C que j'ai récupéré et réadapté pour plus de clarté (je suis pas encore satisfait)
c'est limité, il ne lit pas certains formats de JPEG (regardes la fonction "jpeg_readmarkers") mais il lit au moins les jpeg standart et en niveau de gris

si je ne me trompe pas, la source originale se trouve ici : http://www.wotsit.org/search.asp?page=5&s=graphics
le premier lien (un download de 39k) contient un encodeur et un décodeur

c'est que du code récup, je n'ai pas tout le mérite que tu m'accordes mais merci pour ton commentaire très sympathique :-)

signaler à un administrateur
Commentaire de Zazour le 27/01/2005 16:15:00

j'ai une question qui n'a pas directement rapport avec la source,mais...
J'ai un bug graphique qui apparait a chaque fois que j'utilise l'API OpenGL quel que soit le taux de rafraichissement du moniteur et ca résolution.Mais cela seulement en mode fenetre et pas de probleme en plein écran.
Quelqu'un a t'il rencontré ce genre de problème?
Pourquoi cela n'est qu'en mode fenetré?
Comment OpenGL est "connecté" a Windows?

signaler à un administrateur
Commentaire de alpha le 27/01/2005 16:52:47

Super 10/10 c'est vraiment trés trés bien...

signaler à un administrateur
Commentaire de Funto66 le 27/01/2005 18:50:01

Zazour pour ce genre de questions y'a le forum...

shenron666 >> ah dommage :( Enfin ta source est quand même bien lol (même si là aussi les chargeurs de fichiers 3D sont piqués de GameTutorials (enfin sauf un non?)).

signaler à un administrateur
Commentaire de shenron666 le 27/01/2005 21:16:13

Le loader 3DS vient de gametutorials (avant qu'il ne devienne payant snif l'appat du gain...)

Le Loader MS3D vient d'un pote qui a dû le récupérer je ne sais où (le site officiel probablement)

Le Loader Wavefront est 100% maison (facile dans le sens où les objets Wavefront sont des fichiers textes)

Zazour -> tu as aussi ce problème avec ma source ?

signaler à un administrateur
Commentaire de Zazour le 28/01/2005 06:15:56

Milles excuses Funto66,j'ai essayé le forum,mais les questions que je pose ne passe pas.Mais je vais réessayer de poster.

signaler à un administrateur
Commentaire de acrcorp le 07/02/2005 22:31:31

Mes respects capitaine !

signaler à un administrateur
Commentaire de Mattpbem le 10/12/2005 16:25:48

je ne sais pas pourquoi mais OpenGl me fait le Z-ordering à l'envers, j'ai une vue sur l'interieur des objets seulement et il me le fait sur plusieurs sources (jai une NVIDIA geForce 2 MX 400)

signaler à un administrateur
Commentaire de shenron666 le 12/12/2005 13:41:03

Tu as des objets qui s'affichent correctement ?
si c'est le cas c'est peut-etre un problème avec l'objet, l'ordre les vertices est inversé par rapport à ce dont s'attend le programme

signaler à un administrateur
Commentaire de the_king2 le 15/05/2006 17:34:31

je suis débiteur et j'ai 2 probleme pour votre programme
+ je ne peut pas le compiler sur vc++6 (pas de workspace)
+ l'exécutable me fait un erreur lors du chargement du fichier 3d avec extension .obj alors que les fichiers 3ds fonctionnent trés bien
+est ce tu peut me donner un fichier .obj parfaitement éxécutable (n'importe quel objet)
Merciiiiiiiiii d'avence pour vos réponses

signaler à un administrateur
Commentaire de shenron666 le 15/05/2006 19:35:53

sur http://www.3dcafe.com tu vas dans "free stuffs" ("3dcafe main menu" à droite)
puis dans "3D models", la section "MOTORCYCLES, BICYCLES, ATV" contient un monocycle en obj (le fichier est "unicycle2.zip")
je ne peux pas donner le lien direct car le site le génère "au clic"
bon courage ;)

signaler à un administrateur
Commentaire de achref_2005 le 16/05/2006 19:11:28

l'executable fonctionne parfaitement avec les fichiers obj et 3ds mais j'ai pas pu compiler de nouveau les fichiers avec vc++ ou devc++ .pourquoi? je vous attend Svp

signaler à un administrateur
Commentaire de shenron666 le 17/05/2006 15:27:32

si tu as des problèmes pour compiler, dis moi au moins quel problème, si tu as une erreur alors laquelle, parceque le projet vc7 est inclus dans l'archive et fonctionne
si tu compiles sous vc6, tu as juste à créer un projet win32 et y mettre tous les fichiers

signaler à un administrateur
Commentaire de the_king2 le 17/05/2006 16:07:08

c'est ca mon probleme je n'arrive pas a ouvrir le projet
je vai essayer ta réponse
merci

signaler à un administrateur
Commentaire de the_king2 le 18/05/2006 11:59:39

ca y est j'ai pu compiler avec visuel8 et ca tourne mais il y'a des warning que j'ai pas compris:
'3DViewer.exe': Loaded 'C:\WINDOWS\system32\samlib.dll', No symbols loaded.
'3DViewer.exe': Loaded 'C:\WINDOWS\system32\davclnt.dll', No symbols loaded.
'3DViewer.exe': Loaded 'C:\WINDOWS\system32\shgina.dll', No symbols loaded.
'3DViewer.exe': Loaded 'C:\WINDOWS\system32\msgina.dll', No symbols loaded.
et boucoup d'autre (a peu près 60)
une autre question est ce que vous avez une chose sur le calcul de volume des objet 3D.
je vous attend Merci

signaler à un administrateur
Commentaire de shenron666 le 18/05/2006 23:45:41

a mon avis les warning sont générés parcequ'une lib est inclue alors que pas besoin
désolé mais je n'ai rien au sujet du calcul de volume, un forum où il est question d'algorithmes serait plus approprié pour trouver des réponses à ce sujet

signaler à un administrateur
Commentaire de the_king2 le 20/05/2006 11:05:57

Merci

signaler à un administrateur
Commentaire de the_king2 le 23/05/2006 18:39:52

pour les fichiers .obj les facettes sont disposée de la façon suivante:
f 1/1/1 1/3/6 12/4/4
f 1/1/1 1/8/6 1/4/5 etc....
alors que d'autre ficher déclare les facette de la facon suivante:
f 1 5 6
f 4 2 8 etc...
et ce dernier type provoque une erreur lors de l'importation du fichier sur le viewer
quelle est la différence entre les 2?
et pourquoi l'erreur
Merci d'avence parceque vous m'avez boucoup aidé

signaler à un administrateur
Commentaire de shenron666 le 24/05/2006 09:22:45

dans le premier cas, tu as 3 séries de 3 valeurs, 3 vertex, 3 normales et 3 coordonnées de texture
dans le second cas, tu as 1 série de 3 valeurs, les 3 vertex
je n'ai pas prévu que le fichier ne contienne pas les normales -_-

signaler à un administrateur
Commentaire de the_king2 le 24/05/2006 13:21:25

c'est quoi les coordonné de texture

signaler à un administrateur
Commentaire de shenron666 le 29/05/2006 09:32:45

ce sont des coordonnées qui indiquent quelle portion de la texture est alignée avec le point
avec une 1 texture 2D il y a 2 coordonnées par point
les coordonnées varient entre 0 et 1 et ne se soucient pas de la taille de la texture
il vaut mieux connaitre pour faire de la 3D

signaler à un administrateur
Commentaire de coaben le 12/06/2007 17:15:23

A quant la version pou autocad et archicad.

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,468 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.