VRML2 File Format ================== VRML2 IndexFaceSet ------------------- * http://accad.osu.edu/~pgerstma/class/vnv/resources/info/AnnotatedVrmlRef/ch2-26.htm#2.6.3 * http://cs.iupui.edu/~aharris/mm/vrml4/vrml4.html meaning of `solid FALSE` ~~~~~~~~~~~~~~~~~~~~~~~~~ * http://stackoverflow.com/questions/5130443/vrml-indexed-faceset *Faces are visible from both sides*, so it doesn't matter if they were defined clockwise or counter-clockwise. That's the easy hack, but it doubles the number of polygons that the viewer renders internally. * http://www.lighthouse3d.com/vrml/tutorial/index.shtml?indfs The solid field determines if the browser should draw both sides of a face or just the front side. VRML assumes by default, solid is TRUE that the faces in an IndexedFaceSet form a solid shape. In this case there is no need to draw the back sides of each face. If solid is FALSE then the browser will draw both sides of each face. VRML2 .wrl inspection ----------------------- Succeeded to create a .wrl:: [blyth@belle7 20130820-1318]$ du -hs g4_00.wrl 82M g4_00.wrl :: [blyth@belle7 20130820-1318]$ head -50 g4_00.wrl #VRML V2.0 utf8 # Generated by VRML 2.0 driver of GEANT4 #---------- CAMERA Viewpoint { position 0 0 111042 } #---------- SOLID: /dd/Structure/Sites/db-rock.1000 Shape { appearance Appearance { material Material { diffuseColor 1 1 1 transparency 0.7 } } geometry IndexedFaceSet { coord Coordinate { point [ 18049.9 -809521 22890, -9108.86 -767540 22890, -51089.9 -794699 22890, -23931.1 -836680 22890, -23931.1 -836680 -15104.2, 18049.9 -809521 -15104.2, -51089.9 -794699 -15104.2, -9108.86 -767540 -15104.2, ] } coordIndex [ 0, 1, 2, 3, -1, 4, 5, 0, -1, 0, 3, 4, -1, 6, 4, 3, -1, 3, 2, 6, -1, 7, 6, 2, -1, 2, 1, 7, -1, 5, 7, 1, -1, 1, 0, 5, -1, 5, 4, 6, -1, 6, 7, 5, -1, ] solid FALSE } } #---------- SOLID: /dd/Geometry/Sites/lvNearSiteRock#pvNearHallTop.1000 Shape { appearance Appearance { material Material { With 12k solids:: ... #---------- SOLID: /dd/Geometry/Pool/lvNearPoolDead#pvNearADE1DeadLegs#pvLegInDead:2#pvLegInDeadUnit.2 #---------- SOLID: /dd/Geometry/Pool/lvNearPoolDead#pvNearADE1DeadLegs#pvLegInDead:3#pvLegInDeadUnit.3 #---------- SOLID: /dd/Geometry/Pool/lvNearPoolDead#pvNearADE1DeadLegs#pvLegInDead:4#pvLegInDeadUnit.4 #---------- SOLID: /dd/Geometry/Pool/lvNearPoolDead#pvNearADE2DeadLegs#pvLegInDead:1#pvLegInDeadUnit.1 #---------- SOLID: /dd/Geometry/Pool/lvNearPoolDead#pvNearADE2DeadLegs#pvLegInDead:2#pvLegInDeadUnit.2 #---------- SOLID: /dd/Geometry/Pool/lvNearPoolDead#pvNearADE2DeadLegs#pvLegInDead:3#pvLegInDeadUnit.3 #---------- SOLID: /dd/Geometry/Pool/lvNearPoolDead#pvNearADE2DeadLegs#pvLegInDead:4#pvLegInDeadUnit.4 #---------- SOLID: /dd/Geometry/Sites/lvNearHallBot#pvNearHallRadSlabs#pvNearHallRadSlab1.1001 #---------- SOLID: /dd/Geometry/Sites/lvNearHallBot#pvNearHallRadSlabs#pvNearHallRadSlab2.1002 #---------- SOLID: /dd/Geometry/Sites/lvNearHallBot#pvNearHallRadSlabs#pvNearHallRadSlab3.1003 #---------- SOLID: /dd/Geometry/Sites/lvNearHallBot#pvNearHallRadSlabs#pvNearHallRadSlab4.1004 #---------- SOLID: /dd/Geometry/Sites/lvNearHallBot#pvNearHallRadSlabs#pvNearHallRadSlab5.1005 #---------- SOLID: /dd/Geometry/Sites/lvNearHallBot#pvNearHallRadSlabs#pvNearHallRadSlab6.1006 #---------- SOLID: /dd/Geometry/Sites/lvNearHallBot#pvNearHallRadSlabs#pvNearHallRadSlab7.1007 #---------- SOLID: /dd/Geometry/Sites/lvNearHallBot#pvNearHallRadSlabs#pvNearHallRadSlab8.1008 #---------- SOLID: /dd/Geometry/Sites/lvNearHallBot#pvNearHallRadSlabs#pvNearHallRadSlab9.1009 [blyth@belle7 20130820-1318]$ grep SOLID g4_00.wrl | wc -l 12229