NOTES A LA REALISATION
Objectif :
- Manipuler tous les domaines de la synthese d image a travers la realisation d'un programme de
- modelisation
- visualisation
- rendu realiste
- animation
- Documentation
- UML
- manuel de reference (doc++) ... pour le programmeur
- manuel d'utilsateur... pour l utilisateur
- Languages
- language de description de scene : VRML
- disponibilite de la bibliotheque VML
- ecriture/ecriture fichiers
- gestion du graphe de scene
- outils pour l'extenssion de la grammaire
- /usr/local/VRML/VML1.0/
- soumettre les bugs a : claustre@irit.fr
- Interface sous FLTK
Themes :
- description CSG
- definition du noeund VRML associe
- visualisation OpenGL du noeud (Sans passser par les BREP cf article)
- intersection avec un Rayon
- Surfaces implicites
- logiciel de polygonisation et LR
- Surface de NURBS
- Modele de materiaux
- Bump Mapping
- Texture Procedurales :
- Cook Torrence : VRML, OPenGL, LR
- Lancer de Rayons : acceleration
- boite englobante
- grille reguliere
- octree
- Animation :
- Interpolation de position cle' (cubique)
- Cine'matique Inverse
- Sensors beziers : se deplacer sur une surface de bezier :
...ie bateau sur la mer
Contexte :
90h - Validation Vendredi 25 fev , 45min par groupe
groupe A : nurbs+implicite - octree+cook torence + cinematique inv
groupe *B*: csg + bump+boite+grille + sessor + img cle + colisions
Resources / Bibliotheques
- Support :
{jessel|paulin|geildrat}@irit.fr
- Documentation :
file:///usr/local/VRML/
- TerSurfaceImplicite/
- Heigt : Autonomes
-
Roissard : plugin povray
- VML1.0/
- html : manuel de ref
- sgi : libVML.so .a
- sources : .h (version qui genere l'anim)
- VML.pdf : manuel utilisateur
- add_ons : outils autour de VML
- NodeMaker (O2)
- extendsGrammar
file:///usr/local/VRML/VML1.0/html/HIER.html
Noeud VRML ( VRML Node) :
ensemble de fils :
Type (vrml Field)
VRMLNode {
vrmlType vrmlField
}
Sphere {
SFFloat radius
}
vrmlNode
|
+- vrmlGeometry --------+ vrmlSphere
| + vrmlDataSet ---+ vrmlIndexedFaceSet
+- vrmlBindable
|
+- vrmlGrouping
Nodemaker : genere une classe c++ associe a un noed vrml
-=-=-=-=-=-=-
Definition d'un nouveau Noeud :
*** 1/ Representation externe :
- partie de la representation interne
BezierPatch { MFCoordinate control Point }
CSG { SFnode leftoperande
SFMode rightoperande
}
Contraintes sur les champs : Geometry , CSG,
*** 2/ Definition des classes annexes et de la representation interne auxiliaire
*** 3/ Codage des operateurs manquants (3 ou 4)
- render - createBBox - createDisplayList
gestion de graphe de Scene
vrmlSceneGraph
-=-=-=-=-=-=-=-=-
+ 1 seul acessible a la fois
+ toute les methodes nescesaire a la navigation et a l'affichage d'un graphes
+ lecture / ecriture
+ ajouter un noeud ...
UserProc : parcours ge'ene'riques du graphe
-=-=-=-=-=-
O
/| \
/ | \
1 2 5
/ \ / \
3 4 6 .
methode run :
opertateurs sur les noeuds
en profondeurs d'abord
si VRML USE on a un graphe a la place d'un graphe on peux limiter le traitement au 1er passage
4 Methodes utilisateur
headCallback ( vrmlNode *)
tailCallback ( vrmlNode *)
- (SFNode *)
- (SFNode *)
Links :
www.magic-software.com ...algos libs ...
http://209.66.78.243/www-vrml/hypermail/
CSG
1999.11.18
CSGNode { SFnode leftoperande
SFMode rightoperande
}
Contraintes sur les champs : Geometry , CSG,
VRMLgrouping
|
CSGNode (abstrait)
+- CSGDifference
+- CSGUnion
+- CSGIntersection
Pb de conception :
- les outils ne permettent pas de factoriser les noeuds CSG en superclasse
- la VML ne permet pas de definir des types nouveaux
1999.11.19
Dans un arbre CSG normalise'
les primitive sont a gauche
et a droite CSG | transform | geometry
... pense a changer les noms
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
CSG en OpenGL
1999.12.17
rendu CSG en openGL
une solution (propose'e a opengl.org)
base'e sur les stencils
fait le rendu en plusieurs passes
mais elle peux provoquer des incorances
- si une forme passe devant la forme csg,
les front faces de la forme csg sont visibles alors quelles devraient etre
cache'es
- j'ai trouve' une solution c'est de garder une trace du Zbuffer
avant le rendu de la forme et de l'invoquer a chaque passe
cependant cela prends trop de ressources pour avoir un rendu temps reel
(15fps -> 3fps)
- y a t'il d'autres astuces permettant de sauvegarder rapidement le
zbuffer ? ...voire utiliser un autre buffer comme un zbuffer
et ensuite comutter les buffers ? tous examples est bienvenus
- les displays list sont inefficaces dans la mesure ou on travaille
dans l espace image et non objet
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
2000.01.07
- apparament la frontface de la soustration CSG (2d passe)
ecrase mon Zbuffer, alors qu'il est sauvegarde'
en fait je pense que cela vient du glCullFace(GL_EQUAL)
en fait j'en sais pas trop ...car j'ai experimente' les differentes
possibilitee mais sans succes (a 10mins la compilation ...)
cf vrmlCSGNode & vrmlCSGSub
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Textures 3D
2000.01.13
- 3d textures :
le concept :
soit une texture 3d definit par un echantillon cubique de 128pixels^3
(2 Mb)
http://www.opengl.org/Documentation/Version1.2/1.2specs/texture3D.txt
http://www.sgi.com/software/performer/brew/bumplogo.html#_cch3_887222519
2000.04.26
Planning
- 2000.04.26 : Compilation de Mesa2.3 sous Cygwin
- 2000.05.18/19 : port win32 (vc++)
- 2000.06.14 : compilation csg+t3d LinuxDebian
Misc
Sur la VML, on est en train de faire un navigateur editeur de scene
gVrmlTk (gVrmlTk.free.fr),
www.Philippe.COVAL.online.FR
Last modified: Fri Apr 2 13:50:51 CEST 2004