3D Standards

Please note that these standards are in no way set in stone and might (probably will) change a good deal as we get further into our implementation of a 3d client. This is a very rough start to this document and we'll fill in the holes when we're further along on our implementation and have more of an idea of what's feasible and what isn't.

Formats - There are 2 required and ideally 3 formats that you should provide your model in.

  1. Your 3d modeler's native file format (required)
  2. A WRL or 3DS file [OBJ for models with bones] with textures (required for compatibility)
  3. MD3 (OBJ or 3DS acceptable for non-animated objects)
  4. Cal3d bones, meshes, material and animation files for game characters (players, npcs and animals/monsters)

Mesh Details - In this section when we say 'polygon' we're actually referring to triangles as all meshes must be composed of triangles only so they can be hardware accelerated.

  1. Tools - poly count should be kept to an absolute minimum < 200 polys.

  2. Character meshes - should be kept below 1500 polys.

  3. Characters meshes - animated via IKA/bones systems.

One mesh unit should correspond to one dm (0.1 m). This allows the default editing settings in the common 3D modelers to work most comfortably for the typical sizes of the meshes needed in a game. Note that in Atlas, 1 3D unit corresponds to 1m, so all models will be scaled before rendering. This is not a problem because scaling has almost zero cost in most APIs.



General Info
You should provide a png file for all game ready textures. You should check those textures into cvs in /media-3d/collection-foo. Your source texture files (the ones with layer info such as PSDs, PSPs, etc. or large photographs) should go in cvs at /media-3d-originals/collection-foo. If you haven't read the Artist's Guide to CVS {TODO} you should do so now esp if you're unsure about how you should setup your cvs collection(s). Anyone familiar with OpenGL will be acquainted with the file sizes we require (2^n x 2^m) which should nostly end up being perfectly square. Below is the listing of acceptable sizes for textures:

2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048
Example sizes: 512x512, 256x128, 64x64 etc

It is recommended that when creating textures from photos that you make your original texture as large as possible and of as high a quality as your equipment will allow. 2048x1096 is a reasonable size to store raw textures. It is desireable to store the raw textures in such large sizes. You can always resize your texture down but you can never resize upward. :) Please note that all sizes after this section refer to game ready media. Raw textures not to be used directly in game can be much larger (ie 2048x2048).

Landscape Texturing
A typical landscape texture will be a 128x128 PNG. You may also create 'special' landscape textures which are used to help break up the repetetiveness of an often tiled texture. These special landscape textures can be up to 256x256 in size. These special textures need to integrate seamlessly with their parent textures. An example of this would a grass tile (this is called the parent tile) which is tiled over a long distance. The artist decides this looks good but a little boring and decides to create a 256x256 tile which makes the grass a bit more bare and patchy. This new "patchy grass" texture should tile well with the plain grass texture.

Character Texuring
A character texture will be a single texture, maximum size 512x512 PNG which contains all data needed to be uvmapped a character mesh. At the artist's discretion they may also include with their character one up to 512x512 grayscale PNG which can be used for either a bump map or a spec map. In addition, we will also allow multiple 64x64 decals (textures) to be uvmapped on to each character. This will provide players the opportunity to have a unique appearance. An example of a decal might be a logo or crest on a piece of armor.