Introduction | Command Line & Usage | Detail Brushes | Direct & Face Mode | Extrusions

OBJ2MAP Introduction
OBJ2MAP is a small command-line application for MacOS8.6+ and MacOSX that converts "standard" Wavefront OBJ 3D models into Quake compatible MAP files. It supports multiple conversion methods, all of which can be combined in the same OBJ file for maximum flexibility.

Although it's possible to create a ready-to-compile Quake map with OBJ2MAP, it is meant to be use in conjunction with a dedicated Quake map editing application, which on the Mac, usually means Quiver. (Note that you'll need a registered version of Quiver to import and export the MAP format).

OBJ2MAP makes use of am_detail entities for brush grouping, and it is recommend that you use the eQBSP and eVIS compilers (included in this distribution) to build the final maps. Quiver's internal compilers should work for most converted geometry, but will likely choke on complicated bits and will not recognize brushes contained in am_detail entities as world geometry. Use the compiling utilities that come with OBJ2MAP to avoid problems.

Notes about this manual
It is assumed that the reader has at least some knowledge of Quake MAP limitations and access to a 3D modelling application capable of exporting Wavefront OBJ models. The links at the top and bottom of each of these pages are meant to be read in sequence, starting with this introduction. If you've used prior alpha releases of OBJ2MAP, make note that nearly all commands have been altered or removed since then, new functions have been added, and detail brush usage has been greatly simplified.

Important notes before you begin:
It's very easy to make geometry that seems OK, but refuses to compile. Keep it simple! This is Quake, not Toy Story. Also be sure to read the eQBSP & eVIS documentation to avoid common problems.

The OBJ file is converted at a 1:1 scale. Most 3D editors are unit in-specific (it doesn't matter if the base units are km or cm, 1 is still 1 Quake unit). For reference, the Quake player can be represented by a cube of 32x32x64 units.

Beware of quads and n-sided polygons! Most 3D modelers that support polygons with more than three edges can generate polygons with non-coplanar vertices. Polygon vertices MUST be coplanar and convex to work with OBJ2MAP - no exceptions. One way to ensure that they are coplanar and/or convex is to triangulate the geometry. If your 3D editor supports untriangulation with angle evaluation, that may be used to restore valid, coplanar, n-sided polygons.

If quads are converting badly, try triangles (and vice versa). Face mode, Heightmap and Axial extrusions tend to work best with triangulated meshes. Some geometry will simply not work with certain conversion modes.

Texture names attached to each mesh group in the OBJ file are saved into the MAP as-is. This allows for some limited texturing functionality, but you can only assign one texture per mesh group, with no unique face textures, and no texture transformations. You'll more than likely need to do your texturing in a dedicated Quake map editor (or tweak it at the very least).

Ensure that all facet normals in your OBJ models are facing outwards, or pointing in the correct direction in the case of extrusions.

If your 3D editor supports quantizing, use it! Quantize all geometry to within 1 whole unit before exporting the OBJ file. This is especially important if you're using Quiver to align textures and/or add entities. Quiver will quantize the geometry if you don't and you'll have no control over it.

Keep poly counts low and aligned to a regular grid. Quake map editors are specifically designed to prevent you from creating "bad" geometry. With OBJ2MAP, it's up to you to decide what works and what doesn't. Experiment, and educate yourself about the MAP format (a good Quake MAP format primer is available here).

Although originally designed for Quake 1, OBJ2MAP can be used to create geometry for any Quake engine game. Quake2 and Quake3 MAP formats are just extended versions of the original, and most most map editors will import brushes with little fuss.

OBJ2MAP is designed to recognize and create entities for player spawn points. To create a player spawn entity, use a 32x32x64 unit cuboid and name it appropriately ("info_player_start" for example). Note that obj2map simply looks for "info_player" to determine that the mesh group should be a spawn point, this way it can easily support non-standard entities for mods like "info_player_team1". Note that all spawn points are created without spawnflags, and with an angle of "0 0 0". All other entities (including lights) must be placed with a dedicated Quake map editor at this time.

Last but not least, READ THIS MANUAL! OBJ2MAP has no user interface, and is driven by text input - the only way to learn how to use it is to read this manual from stem to stern.

Introduction | Command Line & Usage | Detail Brushes | Direct & Face Mode | Extrusions