Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2010-11-05 22:47:13 +0000
committerStijn Buys <ingar@osirion.org>2010-11-05 22:47:13 +0000
commitbf198b1ef97e64ff6a2dd30ea2d9714e3b5fec73 (patch)
tree3340e75906efdbea9ebb55001fb047612869666a /doc/models.html
parent37a8c7aa64bdded36f452e6f95c829165d44e792 (diff)
documentation updates
Diffstat (limited to 'doc/models.html')
-rw-r--r--doc/models.html234
1 files changed, 145 insertions, 89 deletions
diff --git a/doc/models.html b/doc/models.html
index bd0565a..68351bf 100644
--- a/doc/models.html
+++ b/doc/models.html
@@ -2,16 +2,21 @@
<html lang="en">
<head>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
- <link rel="stylesheet" type="text/css" href="style.css">
- <TITLE>The Osirion Project - Creating models</TITLE>
+ <link rel="stylesheet" type="text/css" href="main.css">
+ <TITLE>Project::OSiRiON - Creating models</TITLE>
</head>
+
<body>
-<H1>
- The Osirion Project - Creating models
-</H1>
+<div class="banner">
+ <img src="images/banner.png" ALT="Project::OSiRiON">
+ <br>
+ Creating models
+</div>
+
+<div class="text">
<p>
The engine supports two kind of models: The first one are
- Quake 3 style .map files with custom osirion entities. The second
+ Quake 3 style .map files with custom entities. The second
one are .ase models. Textures are supported, but no advanced features
like normal mapping.
</p>
@@ -19,8 +24,8 @@
The .map format allows for a quick and easy way to create usable
3D models, while the .ase format allows importing more complex
models made with modelling packages. The .map format is also used
- as a container format to place tags on models, like lights,
- smoke trails and weapon locations.
+ as a container format to place model tags like lights,
+ particle effects and weapon locations.
</p>
<p>
.ase models can be loaded as sub-models into a .map file,
@@ -29,16 +34,20 @@
</p>
<p>
The rest of the document describes how to create models using
- GtkRadiant and contains mostly information specific to creating
- models for The Osirion Project. Even if you can handle GtkRadiant,
+ Radiant and contains mostly information specific to creating
+ models for Project::OSiRiON. Even if you can handle Radiant,
it is still worth a read.
</p>
-<h2>
+</div>
+
+<div class="title">
Content
-</h2>
+</div>
+
+<div class="text">
<p>
<ul>
- <li><a href="#gtkradiant">Creating models with GtkRadiant</a>
+ <li><a href="#gtkradiant">Creating models with Radiant</a>
<li><a href="#brushes_and_sizes">Brushes and sizes</a>
<li><a href="#caulk">Caulk</a>
<li><a href="#clip">Clip</a>
@@ -52,97 +61,122 @@
<li><a href="#submodels">Submodels</a>
<li><a href="#other_entities">Other entities</a>
</ul>
+</div>
-<h2 id="gtkradiant">
- Creating models with GtkRadiant
-</h2>
-<p>
- All the models for the game were created with GtkRadiant 1.5,
- in theory any editor capable of exporting Quake 2 .map files could
- be used. Support for files for GtkRadiant 1.5 are included in the
- data distribution. Refer to the file INSTALL on where to find them
- and how to install them. No map compiler is necessary, the engine
- reads the .map files directly.
-<p>
- If you are using a linux-based operating system, you can also use
- the GtkRadiant distribution from <a href="http://ingar.satgnu.net/gtkradiant">http://ingar.satgnu.net/gtkradiant</a>.
+<!-- =============================================================== -->
+<div class="title" id="radiant">
+ Creating models with Radiant
+</div>
+<div class="text">
+<p>
+ All the models for the game were created with GtkRadiant 1.5 and NetRadiant,
+ in theory any editor capable of exporting Quake 3 .map files could
+ be used. Support for files which can be used with NetRadiant or GtkRadiant 1.5
+ are included in the data distribution. Refer to the file INSTALL on where
+ to find them and how to install them. No map compiler is necessary,
+ the engine reads the .map files directly.
+<p></p>
+ You can also use the NetRadiant distribution from
+ <a href="http://ingar.satgnu.net/gtkradiant">http://ingar.satgnu.net/gtkradiant</a>.
Note that it does not include the Osirion support files by default.
-<p>
+<p></p>
This document will not explain how to use the editor. Consult google
for numerous tutorials on this subject. All basic brush editing
techniques for any Quake-engine based game can be used.
-<p>
+<p></p>
The main difference with other games is that you are not creating
- a map for a 3d-shoot'em'up but, obviously, an object that has to be
+ a map for a 3d-shoot'em'up, but obviously, an object that has to be
loaded into a space game.
-<p>
+<p></p>
Because there is no map compile involved, and the engine is fundamentally
different, some points should be take under consideration.
+</p>
+</div>
-<h2 id="brushes_and_sizes">
+<div class="title" id="brushes_and_sizes">
Brushes and sizes
-</h2>
+</div>
+<div class="text">
<p>
- The engine supports brushes only. Patches will be ignored. A large number
+ The engine only supports brushes only, patches will be ignored. A large number
of complex brushes is supported, but I advise not to go below grid size 1.
As with any engine it is still possible to create brushwork that gets
- messed up.
-<p>
+ messed up due to rounding errors.
+<p></p>
When the model is loaded, the bounding box is calculated. The model will
be automaticly centered around the center of the geometry. All visible faces
will be converted to triangles. At the moment the practical triangle count
limit for a model is between 20,000 and 30,000 brushes. The engine is
capable of handling a lot more, but think about the fact that a large station
might be placed in a system filled with player ships and other objects.
-<p>
+<p></p>
The limits of map coordinates are placed on +/-16384 map units. Placing
brushes outside these bounds will have unpredictable results. The map
will be scaled down to make 1024 units in radiant correspond to 1 game unit.
One game unit corresponds to 100m in-game. 16 units in radiant will
therefor correspond to 1.5625 meters in-game.
-<p>
+<p></p>
The front of a model points along the positive X-axis, the positive
- Z-axis is up, the positive Y-axis is left. In GtkRadiant, the nose of
- the spacesip or the front of a spacestation should point to the right.
+ Z-axis is up, the positive Y-axis is left. In Radiant, the nose of
+ a spacesip or the front of a spacestation should point to the right.
+</p>
+</div>
-<h2 id="caulk">
+<!-- =============================================================== -->
+<div class="title" id="caulk">
Caulk
-</h2>
+</div>
+
+<div class="text">
<p>
Any brush face that has the <i>common/caulk</i> texture will be ignored on load.
+ Note that <i>common/caulk</i> is actually a special material with the <i>ignore</i> flag set.
+</p>
+<p>
+ Like in Quake 3 maps, all invisible brushes faces should have the this material.
</p>
-<h2 id="clip">
+</div>
+
+<!-- =============================================================== -->
+<div class="title" id="clip">
Clip
-</h2>
+</div>
+<div class="text">
<p>
Any brush face that has the <i>common/clip</i> texture will be ignored on load.
+ Note that <i>common/clip</i> is actually a special material with the <i>ignore</i> flag set.
Clip is reserved for future use.
</p>
-<h2 id="detail_brushes">
+</div>
+
+<!-- =============================================================== -->
+<div class="title" id="detail_brushes">
Detail brushes
-</h2>
+</div>
+<div class="text">
<p>
As with other engines, Osirion supports the use of detail brushes, but
with a twist: detail brushes will only be rendered if the model
is within detail range, close enough to the camera. When it is further away,
only structural brushes will be rendered. The actual detail range depends on the
size of the model.
-</p>
-<p>
+</p><p>
This means that any object that could only been seen from close by
should be made from detail brushes.
-</p>
-<p>
+</p><p>
This has one improtant implication: if you show the structural brushes
only (with the CTRL+D filter in Gtkradiant) there should be no obvious
gaps of caulk that were previously hidden behind detail brushes.
-<p>
+</p>
+</div>
-<h2 id="materials">
+<!-- =============================================================== -->
+<div class="title" id="materials">
Textures and Materials
-</h2>
+</div>
+<div class="text">
<p>
- The engine can use tga, jpg and tng images as textures and uses a simple
+ The engine can use TGA, JPEG and PNG images as textures and uses a simple
script based materials system similar to Quake 3 Arena shader files.
Materials make it possible use special textures like player and engine color,
or to apply certain effects to a texture.
@@ -152,7 +186,7 @@
</p><p>
The default shaderlist.txt looks like this:
</p>
-<pre>
+<pre class="code">
common
colors
glass
@@ -186,20 +220,22 @@ glass
by the engine: as explained above, the <i>common/caulk</i> material can be used
on hidden faces. The <i>common/clip</i> material is reserved for future use
brush faces using this texture will be ignored as well.
-</p>
-<p>
+</p><p>
For .ase models, the material name inside the .ase file is interpreted as an osirion material.
If you'd use a material called <i>common/entity</i>, those model faces will rendered using
the object's primary in-game color, regardless of the actual material settings in the .ase file.
</p>
-
-<h2 id="shader_files">
+</div>
+
+<!-- =============================================================== -->
+<div class="title" id="shader_files">
Shader files
-</h2>
+</div>
+<div class="text">
<p>
TODO: write a section on shader files.
</p>
-<pre>
+<pre class=code>
// material name
textures/common/clip
{
@@ -211,7 +247,7 @@ textures/common/clip
ignore
}
</pre>
-<pre>
+<pre class=code>
// material name
textures/common/entity_dark_bright
{
@@ -225,58 +261,64 @@ textures/common/entity_dark_bright
bright
}
</pre>
-<pre>
+<pre class=code>
// material name
-textures/ship/stripes
+textures/ship/plating_entity
{
// use entity color
entity
// use a texture, texture name and material name don't have to be the same
- texture textures/ship/stripes
+ texture textures/ship/plating
}
</pre>
+</div>
-<h2 id="lights">
+<!-- =============================================================== -->
+<div class="title" id="lights">
Lights
-</h2>
+</div>
+<div class="text">
<p>
Unlike quake, <i>light</i> entities are not used to add lighting information
to the level but to add point lights to a model. Adding a light will
render a light flare texture in the corresponding location.
-<p>
+</p><p>
The <i>flare</i> value indicates what texture will be used to draw the light.
The flare value is translated to a texture name, <i>bitmaps/fx/flare??</i>.
The default flare texture is <i>flare00</i>.
-<p>
+</p><p>
The <i>light</i> value is used to determine the size of the flare. The engine
default is 100, resulting in rather large flares.
-<p>
+</p><p>
The default <i>_color</i> is white, but the color can be set through radiant's
color menu (K key). If the <i>entity</i> option (spawnflag 2) is set, the
color value will be ignored and the light will be rendered with the
color of the entity it is attached to.
-<p>
+</p><p>
The <i>strobe</i> option (spawnflag 1) will create a blinking light. A number
of options can be set to manipulate the flashing behaviour. By default
a strobe light will be half a second on, half a second off.
-<p>
+</p><p>
The <i>frequency</i> value changes the number of flashes per second.
-<p>
+</p><p>
The <i>offset</i> value changes the moment the light will be on. Offset is
measured in seconds.
-<p>
+</p><p>
The <i>time</i> value sets the fraction of time the light will be on.
The default is 0.5.
-<p>
+</p><p>
Lights will only be rendered if the model is within detail range.
-<p>
+</p><p>
I also came across this usefull information: <a href="http://en.wikipedia.org/wiki/Starboard">http://en.wikipedia.org/wiki/Starboard</a><br>
-
In short, the green light should be on the right side, the red light on the left side.
+</p>
+</div>
-<h2 id="flares">
+<!-- =============================================================== -->
+<div class="title" id="flares">
Flares
-</h2>
+</div>
+<div class="text">
<p>
The default light entity creates omnidirectional lights. To create
a directional flare, use the <i>fx_flare</i> entity. Values for a
@@ -297,10 +339,13 @@ textures/ship/stripes
</p><p>
Flares will only be rendered if the entity is within detail range.
</p>
+</div>
-<h2 id="particles">
+<!-- =============================================================== -->
+<div class="title" id="particles">
Particles
-</h2>
+</div>
+<div class="text">
<p>
Add a <i>fx_particles</i> entity to attach a particle system to the model.
They can be used to add effects like trails and smoke. A particle system
@@ -320,9 +365,13 @@ textures/ship/stripes
</p><p>
Particles will only be rendered if the entity is within detail range.
</p>
-<h2 id="groups">
+</div>
+
+<!-- =============================================================== -->
+<div class="title" id="groups">
Function groups
-</h2>
+</div>
+<div class="text">
<p>
Brushes can be grouped together into funcion groups. These groups can be used
to create moving parts in a model.
@@ -338,15 +387,23 @@ textures/ship/stripes
is automaticly calculated as the geometrical center of the group.
The rotation axis can be set with the <i>direction</i>, <i>pitch</i> and <i>roll</i> keys. <i>angle</i> is an alias for <i>direction</i>.
</p>
-<h2 id="submodels">
+</div>
+
+<!-- =============================================================== -->
+<div class="title" id="submodels">
Submodels
-</h2>
+</div>
+<div class="text">
<p>
<i>misc_model</i> can be used to add a submodel.
</p>
-<h2 id="other_entities">
+</div>
+
+<!-- =============================================================== -->
+<div class="title" id="other_entities">
Other entities
-</h2>
+</div>
+<div class="text">
<p>
<i>location_cockpit</i>, <i>location_dock</i>, <i>location_turret</i> and <i>location_cannon</i> are reserved but have not yet been implemented.
</p><p>
@@ -360,9 +417,8 @@ textures/ship/stripes
</p><p>
<i>location_turret</i> will create an attachment point for turrets. Turrets point upwards or downwards.
</p>
-<h2 class="navigate">
- <a href="index.html">back</a>
-</h2>
+</div>
+
</body>
</html>