<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>