begin process at 2012 05 29 04:28:50
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

OpenGL

 > 

Fichier VMF


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Fichier VMF

mercredi 9 février 2005 à 12:38:25 | Fichier VMF

otofraise

Bonjour a tous,

Je ne sais pas si ce post est a sa place, mais je ne savais pas trop sur quel site de cs le placer.

Je voudrais utiliser les fichiers VMF (Hammer Editor) comme base pour la realisation de scene avec OpenGL.

En effet c plus rapide de déterminer les coordonnees avec un editeur qu'en ligne de code.

Le probleme c que j'ai du mal a comprendre comment hammer genere ces fichiers puisque les faces des solides ne sont pas donnée dans un ordre particulier, et que pour eviter la redondance des points, il ne donne que trois des quatres points d'une face, le quatrieme etant a recuperer sur une autre face.

donc au final je ne vois pas comment recuperer le bon quatrieme point.

Si qqun a deja travaille sur ces fichiers ou a une idee, ca m'aiderait bien

Merci d'avance

Oto

Voici un exemple de solide (Un cube) extrait d'un VMF :


solid
 {
  "id" "2"
  side
  {
   "id" "1"
   "plane" "(0 192 192) (192 192 192) (192 0 192)"
   "material" "BRICK/BRICKFLOOR001A"
   "uaxis" "[1 0 0 -256] 0.25"
   "vaxis" "[0 -1 0 256] 0.25"
   "rotation" "0"
   "lightmapscale" "16"
   "smoothing_groups" "0"
  }
  side
  {
   "id" "2"
   "plane" "(0 0 0) (192 0 0) (192 192 0)"
   "material" "BRICK/BRICKFLOOR001A"
   "uaxis" "[1 0 0 -256] 0.25"
   "vaxis" "[0 -1 0 256] 0.25"
   "rotation" "0"
   "lightmapscale" "16"
   "smoothing_groups" "0"
  }
  side
  {
   "id" "3"
   "plane" "(0 192 192) (0 0 192) (0 0 0)"
   "material" "BRICK/BRICKFLOOR001A"
   "uaxis" "[0 1 0 -256] 0.25"
   "vaxis" "[0 0 -1 0] 0.25"
   "rotation" "0"
   "lightmapscale" "16"
   "smoothing_groups" "0"
  }
  side
  {
   "id" "4"
   "plane" "(192 192 0) (192 0 0) (192 0 192)"
   "material" "BRICK/BRICKFLOOR001A"
   "uaxis" "[0 1 0 -256] 0.25"
   "vaxis" "[0 0 -1 0] 0.25"
   "rotation" "0"
   "lightmapscale" "16"
   "smoothing_groups" "0"
  }
  side
  {
   "id" "5"
   "plane" "(192 192 192) (0 192 192) (0 192 0)"
   "material" "BRICK/BRICKFLOOR001A"
   "uaxis" "[1 0 0 -256] 0.25"
   "vaxis" "[0 0 -1 0] 0.25"
   "rotation" "0"
   "lightmapscale" "16"
   "smoothing_groups" "0"
  }
  side
  {
   "id" "6"
   "plane" "(192 0 0) (0 0 0) (0 0 192)"
   "material" "BRICK/BRICKFLOOR001A"
   "uaxis" "[1 0 0 -256] 0.25"
   "vaxis" "[0 0 -1 0] 0.25"
   "rotation" "0"
   "lightmapscale" "16"
   "smoothing_groups" "0"
  }
  editor
  {
   "color" "0 135 220"
   "visgroupshown" "1"
  }
 }
jeudi 3 mars 2005 à 23:28:31 | Re : Fichier VMF

KeniiyK

Membre Club

tu peux expliquer ces lignes ? :
"plane" "(0 192 192) (192 192 192) (192 0 192)"
"uaxis" "[1 0 0 -256] 0.25"
"vaxis" "[0 0 -1 0] 0.25"

plane c'est un quad ? (vu ce que tu as dis.... 3 points mais pas le 4eme) et meme si c'est ca les cooordonnees en int c'est bizzare non ?
A moins que ce ne soit pas des coordonnees mais des index plutot....

Enfin bon donne deja ce que tu sais sur ces fichiers et peut etre qu'on pourra t'aider.
vendredi 4 mars 2005 à 08:52:03 | Re : Fichier VMF

otofraise

Salut KeniiyK,

Les valeur entre parenthese de plane sont bien des coordonnees. Elles representent trois points definissant le plan de la face du solide.

En fait j'ai regarde dans tous les sens il n'y a pas de "formule" pour retrouver le quatrieme point manquant dans les autres coordonnees de plan. Etant donnees que les faces sont enregistrees sans ordre fixe, il n'y a pas de lien logique entre les faces.

Par contre il y a un lien mathematique, et la c'est plus embattant (neuronalement) : il faut regarder les intersections de plan. En les prenant 3 par 3 on doit retrouver les points manquant. Je vais m'y pencher dans les semaines a venir et on va bien finir par trouver, a force de perseverence

Pour ce qui est des clefs "uaxis" et "vaxis", elles determine la position et l'echelle des textures sur les face du solide.

Et je pense que les coordonnees sont des int car c'est (a mon avis) bien plus simple de gerer des coordonnees entiere dans un editeur, par exemple dans le cas ou tu veux placer deux elements cote a cote. Si tu travaille en float c'est difficile voir impossible (sauf en utilisant une grille magnetique ce qui revient quelque part a utiliser du int)

Bon maintenant on va se motiver et faire ces calculs super sympa. ha lala comme si chez valve ils auraient pas pu mettre le quatrieme point de chaque face (comment ca, redondance des donnees  )

Oto
vendredi 4 mars 2005 à 10:23:32 | Re : Fichier VMF

KeniiyK

Membre Club

Bon j'ai relu ton premier post, toi tu veux juste recuperer la scene, et comme les VMF sont en texte tu as pris ces fichiers comme reference. Mais bon apparement c'est un peu lourd a utilisé.
Prends un autre type de fichier, perso je me suis fait un plugin pour 3DSMax6 qui m'extrait n'importe quel maillage triangulaire avec les Bounding Box, les Materiaux (couleur pas texture), le nom des objets, etc... et il vérifie meme que le maillage enregistré soit en CCW.

vendredi 4 mars 2005 à 21:29:33 | Re : Fichier VMF

otofraise

Tout d'abord je tiens a te remercier de l'interet que tu porte a ce sujet. Ca fait un moment que tout ceci me trotte et j'ai enfin l'impression que je vais pouvoir avance.

Pour ce qui est de 3DSMax, je ne m'en suis jamais servi, et je crains que son utilisation ne soit pas aisee. Mais a partir du moment ou c un outil tres repute et si tu me dis qu'on peut assez facilement en recuperer les solides generes alors je suis preneur

Lorsque tu parles de plugin pour 3DSMax, sous-entendus tu une certaine programmabilite de 3DSMax via OLE ou autre ?

Je debute dans la 3D (quoi ca se voit tant que ca ?), qu'entends tu par Bounding Box et CCW.
Pour la Bounding Box j'ai une petite idee, j'ai travaille a l'automatisation de dessin en DAO et cela nous donnait les dimensions du cube contenant l'objet selectionne.

Enfin je vais commencer par telecharger le bestiot et apprendre un peu a le manipuler.

Oto
vendredi 4 mars 2005 à 22:57:57 | Re : Fichier VMF

KeniiyK

Membre Club

Au sujet de 3DSMax :
        C'est clair l'apprentissage est un peu chaud, mais il inclut des tutoriaux qui vont du truc de base au HighLevel (rendu, modelisation, animation, video, etc...)
        Pour les plugins, il possede un SDK en C++ (Software Development Kit) qui permet de faire des DLLs pour definir de nouveaux objets, materiaux, saver/loader de format de fichiers, etc ... (environ une 50aine de plugins differents)
         Au sinon il possede son propre langage : MaxScript qui est un langage interprété et orienté objet, qui se rélève puissant, d'ailleurs certaines fonctionnalité de 3DSMax sont codées avec. Il est livré avec un tutorial, un editeur (avec coloration syntaxique) et editeur d'IHM (a la Qt designer).

Bounding Box : tu as la bonne definition, la traduction est "boite englobante".

CCW (Counter ClockWise) et son opposé CW (ClockWise), servent a determiner les faces avant/arriere. En fait quand tu trace un triangle, il comporte 2 faces, une avant et une arriere.

Exemple : le triangle suivant tracé par les sommets V0, V1, V2 et DANS CET ORDRE :
V0---V2
 |         /          si tu es en CCW (-> face avant == les sommets sont dans le sens inverse des 
 |        /           aiguilles d'une montre == sens trigo) la face que tu vois est la face avant.
 |       /    
 |      /             si tu es en CW (->face avant ==  les sommets sont dans le sens des 
 |    /               aiguilles d'une montre == inverse du sens trigo) la face que tu vois est la face V1                 arriere
                      
                      si tu inverse les valeurs de V0 et V1 et que tu continues a tracer le triangle par V0 V1 V2 alors si CCW, la face que tu vois est la face arriere, et si CW la face est la face avant.

Le mode par defaut d'OpenGL est le CCW.  

Ok, mais a quoi ca sert ?

Et bien vient ensuite la notion de Culling qui permet de ne tracer que les faces avant du mode courant (CCW ou CW).
Cela permet de gagner en temps de calcul dans la carte graphique car les faces arrieres sont eliminées relativement "tôt" dans le pipeline graphique.
     

Bah voila, @+ KeniiyK.

vendredi 4 mars 2005 à 23:01:15 | Re : Fichier VMF

KeniiyK

Membre Club

Mon post precedent est parti un peu en vrille au niveau du triangle, alors lis ce qui est a lire et je te poste ici le triangle :
V0---V2
 |         /          
 |        /         
 |       /   
 |      /             
 |    /  
V1

dimanche 6 mars 2005 à 11:52:38 | Re : Fichier VMF

otofraise

A nouveau merci pour tes explications.

Ca ya est, j'ai telecharger la version de demo de 3DSMax 7 et j'ai jete un petit coup d'oeil.
Et en effet ca a l'air chaud, mais bon d'apres ce que j'ai vu ya quand meme beaucoup de sites qui proposent des tutos donc theoriquement, en s'y penchant un peu ca devrait etre jouable.

Par contre reste le probleme du prix du bestio. La je dois dire qu'il sort legerement de mon budget. Alors peut-etre les versions precedentes sont elle plus abordable maintenant que la 7 est sortie. Sinon pour palier au probleme, il y a blender qui est gratuit (enfin etait car j'ai voulu aller voir sur les sites officiels pour le telecharger et tout les liens sont morts. J'espere que la license n'a pas ete rachetee ou "perdue" faute de moyen) M'enfin heureusement je l'avais telechargee il y a quelques mois (v2.33). Alors je ne sais pas ce que tu en pense et si il y a egalement la possibilite de creer des plugins pour blender.

Oto
dimanche 6 mars 2005 à 12:09:22 | Re : Fichier VMF

KeniiyK

Membre Club

Acheter 3DSMax !!!, bordel t'as du fric !!!, meme les versions de mise a jour sont a plus de 1500 euros !! alors les versions de bases laisses tomber !!.

Par rapport a Blender, je ne l'ai jamais utilisé, mais surement qu'il doit pouvoir exporter vers des formats *.ase, *.obj ou plus bateau *.off (texte je crois) et pour ces trois formats de fichier il existe pas mal de loader C/C++ notamment sur ce site (y a un post "importation *.obj" pas loin du tien dans la liste, jettes y un oeil).

@+ et bon courage, KeniiyK.

dimanche 6 mars 2005 à 15:17:15 | Re : Fichier VMF

otofraise

J'ai regarde et en effet blander propose des export vers les format que tu m'a donne.

le format OFF a l'air simpa pour des truc simple mais apparement y prend pas en compte les textures.

Par contre le format VRML 1.0 (*.wrl) propse une structure assez proche de celle de Hammer avec un systeme de listage des coordonnees proche du OFF, donc beaucoup plus simple a utilise que le VMF.

Il ne me reste plus qu'a potasser tout ca, voir egalement les autres formats proposer, trouver le plus adequat et me lancer

Je suis contant parce que je vais enfin pouvoir avancer, merci encore KenniiyK

Oto


1 2

Cette discussion est classée dans : id, side, material, plane, brick


Répondre à ce message

Sujets en rapport avec ce message

Probleme avec structure utilisee dans une classe [ par fcoutel ] Bonjour!Tout d'abord, Meme si j'uitlise OPENGL ce probleme n'a rien a voir avec OPENGL.Dans le meme fichier GLObject.h j'ai mis: /* OpenGL Material D ID_FILE_MRU_FILE1 [ par xakal ] Bonjour a tous.Il faut que je recupere la pathname d'un fichier ouvert par une appli lors d'une utilisation anterieure a l'actuelle.Il me semble que c Charger TGA avec open gl [ par goutbouyo ] Salut,Depuis ce midi j'essaie de charger un fichier TGA et de l'appliquer à une surface mais je n'y arrive.Est ce qu'il existe sous open gl un code si texture plane [ par azkab ] bonjour,bon j ai un petit souci, j ai les coordonnées x,y d une ligne et je veux lui affecter une texture, sauf que cette texture doit s afficher hori bug incompréhensible [ par graall ] Bonjour à tous,Je viens de découvrir les classes en c++ et j'ai créé mon premier programme les utilisant mais il y a un probléme à l'exécution : la va DevC++ Frame et la methode Hide [ par imedghar ] Slt tlm,je suis entrain de programmer des GUI avec wxwundows et dev C++.j´ai le probleme suivant:j´ai deux frames (HauptFrame et ActionFrame), pour le GetDlgItemText sans l'identifier [ par oceax ] Bonjour,Voilà j'aimerai récupérer un texte contenu dans une edit box dans une fenetre dont je ne connais que le handle...J'ai essayé de retrouver l'iD Id cpu [ par stancw1775 ] Bonjour ! Je souhaites recuperer l'id d'un processeur mais en C sous windows .. c'est possible ?? Side bar [ par barraq ] Salut,voila en fait j'aimerai savoir comment creer une sidebar avec WIN32.Se qui se passe c que j'aimerai avoir ma fenetre OpenGl a gauche et plein de HELLP ME FOR MY PTI [ par dj_ricom ] Je suis actuellement en première année BTS IG et je souhaite réaliser un PTI sur la gestion d'une école notament en ce qui concerne les notes des elev


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,842 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales