This wiki was in read-only mode for many years, but can now be edited again. A lot of information will need to be updated.

Mesh: Difference between revisions

From BZFlagWiki
Jump to navigation Jump to search
TD-Linux (talk | contribs)
Pasted in more information on the pre-2.0.6 meshes
Line 10: Line 10:
   # properties without affecting the state of the mesh properties.
   # properties without affecting the state of the mesh properties.
   # The same pattern is used to apply physics drivers.
   # The same pattern is used to apply physics drivers.
   vertex 100 200 300 # add a vertex (repeatable)
  inside 5.5 4.5 1.2 # add an inside point (repeatable)
     normals 2 6 0 4 7 # list of normals       (optional)
  outside 0 0 1000 # add an outside point (repeatable)
     texcoords 0 3 2 4 9 # list of texture coordinates (optional)
   vertex 100 200 300 # add a vertex (repeatable)
     phydrv example_phydrv # assign a physics driver
  normal 1.0 0 0 # add a normal (repeatable)
   endface # end the face
  texcoord 0.1 0.75 # add a texture coordinate (repeatable)
  shift 0 0 0 # (repeatable)
  scale 1 1 1 # (repeatable)
  shear 0 0 0 # (repeatable)
  spin angle nx ny nz # (repeatable)
  phydrv example_phydrv # assign a physics driver
  smoothbounce # ricochets use normals
  noclusters # render each mesh face individually
            # (this can be useful for occluders)
  face # start a face (repeatable)
      # faces must be convex polygons
    vertices 1 4 0 3 5 # list of vertices (requires at least three)  
     normals 2 6 0 4 7 # list of normals (optional)  
     texcoords 0 3 2 4 9 # list of texture coordinates (optional)  
     phydrv example_phydrv # assign a physics driver  
    smoothbounce
    noclusters
    drivethrough
    shootthrough
    passable
    material
   endface # end the face  
   #
   #
   #  This next element can be added to increase the rendering speed
   #  This next element can be added to increase the rendering speed

Revision as of 22:30, 23 February 2007

A mesh is a BZW map object that defines an arbitrary three dimensional shape. A mesh is defined as a series of faces containing 3 or more points in three dimensional space ( or a vertex ).

Code

The code for a mesh object is as follows, this is only an example

mesh
 name example_mesh
 # Material properties applied to a mesh apply to all faces
 # that follow the setting. Mesh faces will alter their own
 # properties without affecting the state of the mesh properties.
 # The same pattern is used to apply physics drivers.
 inside 5.5 4.5 1.2 # add an inside point (repeatable) 
 outside 0 0 1000 # add an outside point (repeatable) 
 vertex 100 200 300 # add a vertex (repeatable) 
 normal 1.0 0 0 # add a normal (repeatable) 
 texcoord 0.1 0.75 # add a texture coordinate (repeatable) 
 shift 0 0 0 # (repeatable) 
 scale 1 1 1 # (repeatable) 
 shear 0 0 0 # (repeatable) 
 spin angle nx ny nz # (repeatable) 
 phydrv example_phydrv # assign a physics driver 
 smoothbounce # ricochets use normals 
 noclusters # render each mesh face individually 
            # (this can be useful for occluders) 
 face # start a face (repeatable) 
      # faces must be convex polygons 
   vertices 1 4 0 3 5 # list of vertices (requires at least three) 
   normals 2 6 0 4 7 # list of normals (optional) 
   texcoords 0 3 2 4 9 # list of texture coordinates (optional) 
   phydrv example_phydrv # assign a physics driver 
   smoothbounce 
   noclusters 
   drivethrough 
   shootthrough 
   passable 
   material 
 endface # end the face 
 #
 #  This next element can be added to increase the rendering speed
 #  of the mesh object. If the client is capable of using this data,
 #  then it is used to draw the mesh instead of the face  information.
 #
 drawInfo
   dlist		      # display list for all material sets
   decorative		      # older clients with not see this mesh
   angvel <degrees/sec>       # rotation about initial Z axis
   extents <minX> <minY> <minZ> <maxX> <maxY> <maxZ>
   sphere <x> <y> <z> <radiusSquared>
   corner <v> <n> <t>	      (repeatable)
   vertex 0.0 0.0 0.0	      (repeatable)
   normal 0.0 0.0 0.0	      (repeatable)
   texcoord 0.0 0.0	      (repeatable)
   lod			      (repeatable)
     lengthPerPixel <value>
     matref <name>	      (repeatable)
       dlist		      # display list for this material set
       sphere <x> <y> <z> <radiusSquared>
       points	 0	      (repeatable)
       lines	 0 1	      (repeatable)
       lineloop  0 1	      (repeatable)
       linestrip 0 1	      (repeatable)
       tris	 0 1 2	      (repeatable)
       tristrip  0 1 2	      (repeatable)
       trifan	 0 1 2	      (repeatable)
       quads	 0 1 2 3      (repeatable)
       quadstrip 0 1 2 3      (repeatable)
       polygon	 0 1 2	      (repeatable)
     end  # matref
   end	  # lod
 end	  # drawInfo
end	  # mesh


Valid parameters for a base are

TODO::add stuff here

Meshes have full support for Material, Texture Matrix, and Physics Drivers.

Appearance

The appearance of a mesh will vary greatly as by it's very nature it can be defined to look like anything.

Editor Support

The mesh object only supported by the BZWTools blender plugin.

History

The Mesh object was added with the v2.0.0 release of BZFlag.