115 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			115 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<HTML>
 | 
						|
<HEAD>
 | 
						|
<TITLE>PVVMUD - </TITLE>
 | 
						|
<LINK REL=STYLESHEET HREF="/pvvmud/pvvmud.css"  TYPE="text/css">
 | 
						|
</HEAD>
 | 
						|
<BODY>
 | 
						|
 | 
						|
<H1>Geometry (geo) file format</H1>
 | 
						|
<PRE>
 | 
						|
Status          : suggestion
 | 
						|
Implementations : util/geo2bog
 | 
						|
                  geoexp.dle (3D Studio MAX file export plugin)
 | 
						|
</PRE>
 | 
						|
<P>Describing a 3D mesh object. This file is a ascii representation of the 
 | 
						|
<A HREF="bogfileformat.html">bog file format</A>. The utility program 
 | 
						|
<A HREF="geo2bog.html">geo2bog</A> converts from geo to bog file format.</P>
 | 
						|
 | 
						|
<H2>Logical file structure</H2>
 | 
						|
 | 
						|
<TABLE>
 | 
						|
<TR><TH></TH><TH></TH></TR>
 | 
						|
<TR><TD VALIGN=top><A NAME="GEOFILE">geoFile</TD><TD>= geoHead + Geometry list
 | 
						|
<TR><TD VALIGN=top><A NAME="GEOHEAD">geoHead</TD><TD>= (File version)
 | 
						|
<TR><TD VALIGN=top><A NAME="FILEVER">File version</TD><TD>= * Version number *
 | 
						|
<TR><TD VALIGN=top><A NAME="GEOMETRYLIST">Geometry list</TD><TD>= {Geometry}
 | 
						|
<TR><TD VALIGN=top><A NAME="GEOMETRY">Geometry</TD><TD>= (Object name) + Vertex list + Normal list + TexCoord list + Polygon list
 | 
						|
<TR><TD VALIGN=top><A NAME="OBJECTNAME">Object name</TD><TD>= * String that identify sub objects *
 | 
						|
<TR><TD VALIGN=top><A NAME="VERTEXLIST">Vertex list</TD><TD>= {Vertex}
 | 
						|
<TR><TD VALIGN=top><A NAME="VERTEX">Vertex</TD><TD>= x-coord + y-coord + z-coord
 | 
						|
<TR><TD VALIGN=top><A NAME="NORMALLIST">Normal list</TD><TD>= {Normal}
 | 
						|
<TR><TD VALIGN=top><A NAME="NORMAL">Normal</TD><TD>= x-coord + y-coord + z-coord
 | 
						|
<TR><TD VALIGN=top><A NAME="TEXCOORDLIST">TexCoord list</TD><TD>= {TexCoord}
 | 
						|
<TR><TD VALIGN=top><A NAME="TEXCOORD">TexCoord</TD><TD>= u-coord + v-coord 
 | 
						|
<TR><TD VALIGN=top><A NAME="POLYGONLIST">Polygon list</TD><TD>= {Polygon}
 | 
						|
<TR><TD VALIGN=top><A NAME="POLYGON">Polygon</TD><TD>= Polygon type + Material name + Vertex index list + Normal index list + TexCood index list
 | 
						|
<TR><TD VALIGN=top><A NAME="POLYGONTYPE">Polygon type</TD><TD>= 
 | 
						|
        [ "Polygon" | "Triangles" | "Quads" | "Quad strip" | 
 | 
						|
        "Triangle strip" | "Triangle fan" ]
 | 
						|
<TR><TD VALIGN=top><A NAME="MATERIALNAME">Material name</TD><TD>= 
 | 
						|
        * A string that identify the material. *
 | 
						|
<TR><TD VALIGN=top><A NAME="VERTEXINDEXLIST">Vertex index list</TD><TD>= {index}
 | 
						|
<TR><TD VALIGN=top><A NAME="NORMALINDEXLIST">Normal index list</TD><TD>= {index}
 | 
						|
<TR><TD VALIGN=top><A NAME="TEXCOORDINDEXLIST">TexCoord index list</TD><TD>= {index}
 | 
						|
<TR><TD VALIGN=top><A NAME="INDEX">Index</TD><TD>=
 | 
						|
         * Pointer to element in a table. *
 | 
						|
</TABLE>
 | 
						|
 | 
						|
<H2>Example</H2>
 | 
						|
<PRE>
 | 
						|
GEO(Version=1)
 | 
						|
 | 
						|
# Box with size = 2
 | 
						|
#  Two sides with equal materials.
 | 
						|
 | 
						|
Geometry(Name="Box") {
 | 
						|
  VertexList   = [ ( -1.0, -1.0,  1.0 ),
 | 
						|
                   (  1.0, -1.0,  1.0 ),
 | 
						|
                   (  1.0,  1.0,  1.0 ),
 | 
						|
                   ( -1.0,  1.0,  1.0 ),
 | 
						|
                   ( -1.0, -1.0, -1.0 ),
 | 
						|
                   (  1.0, -1.0, -1.0 ),
 | 
						|
                   (  1.0,  1.0, -1.0 ),
 | 
						|
                   ( -1.0,  1.0, -1.0 ) ];
 | 
						|
  NormalList   = [ (   1.0,   0.0,   0.0 ),
 | 
						|
                   (   0.0,   1.0,   0.0 ),
 | 
						|
                   (   0.0,   0.0,   1.0 ),
 | 
						|
                   (  -1.0,   0.0,   0.0 ),
 | 
						|
                   (   0.0,  -1.0,   0.0 ),
 | 
						|
                   (   0.0,   0.0,  -1.0 ) ];
 | 
						|
  TexCoordList = [ (   0.0,   0.0 ),
 | 
						|
                   (   1.0,   0.0 ),
 | 
						|
                   (   1.0,   1.0 ),
 | 
						|
                   (   0.0,   1.0 ) ];
 | 
						|
  Polygon {
 | 
						|
    Type = QUADS;
 | 
						|
    Material = "1";
 | 
						|
    Vertex   = [ 1, 5, 6, 2 ];
 | 
						|
    Normal   = [ 0 ];
 | 
						|
    TexCoord = [ 0, 1, 2, 3 ];
 | 
						|
  }
 | 
						|
  Polygon {
 | 
						|
    Type = QUADS;
 | 
						|
    Material = "2";
 | 
						|
    Vertex   = [ 2, 6, 7, 3, 0, 1, 2, 3 ];
 | 
						|
    Normal   = [ 1, 2 ];
 | 
						|
    TexCoord = [ 0, 1, 2, 3, 0, 1, 2, 3 ];
 | 
						|
  }
 | 
						|
  Polygon {
 | 
						|
    Type = QUADS;
 | 
						|
    Material = "3";
 | 
						|
    Vertex   = [ 3, 7, 4, 0 ];
 | 
						|
    Normal   = [ 3 ];
 | 
						|
    TexCoord = [ 0, 1, 2, 3 ];
 | 
						|
  }
 | 
						|
  Polygon {
 | 
						|
    Type = QUADS;
 | 
						|
    Material = "4";
 | 
						|
    Vertex   = [ 0, 4, 5, 1 ];
 | 
						|
    Normal   = [ 4 ];
 | 
						|
    TexCoord = [ 0, 1, 2, 3 ];
 | 
						|
  }
 | 
						|
  Polygon {
 | 
						|
    Type = QUADS;
 | 
						|
    Material = "5";
 | 
						|
    Vertex   = [ 4, 7, 6, 5 ];
 | 
						|
    Normal   = [ 5 ];
 | 
						|
    TexCoord = [ 0, 1, 2, 3 ];
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
</PRE>
 | 
						|
 | 
						|
</BODY>
 | 
						|
</HTML>
 |