112 lines
4.7 KiB
HTML
112 lines
4.7 KiB
HTML
|
<HTML>
|
||
|
<HEAD>
|
||
|
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1252">
|
||
|
<META NAME="Generator" CONTENT="Microsoft Word 97">
|
||
|
<TITLE>HOW TO USE MODEL LIGHTS</TITLE>
|
||
|
</HEAD>
|
||
|
<BODY TEXT="#FFFFFFFF" LINK="#0000ff" VLINK="#800080" BGCOLOR="#000000">
|
||
|
<FONT FACE="Tahoma">
|
||
|
<center>
|
||
|
<p><h1><font color="#FFFF00">HOW TO USE MODEL LIGHTS</P></h1></font>
|
||
|
</center>
|
||
|
|
||
|
<blockquote><p><i>Yes, that's right, we finally have model lights on MD2s. Thanks to Henrik's fixing of
|
||
|
lw2md2, you can model light entities that have been redelivered with the new tool (or CTCs) </p></i></blockquote>
|
||
|
|
||
|
<h2><P>Creating Lights</P></h2>
|
||
|
|
||
|
<blockquote>
|
||
|
<h3><p>Creating Point Lights</h3></p>
|
||
|
|
||
|
<p>To make point lights, you must make an entity with the classname "modellight". Then, set the key, "lighting" to be the radius of the light.
|
||
|
This is the distance from the source that the light will affect entities. Set the R, G, and B keys to be the color of the light.</p>
|
||
|
|
||
|
<p><h3>Creating a World Ambient Light</h3></p>
|
||
|
|
||
|
<p>You can also have a default light source which will affect all entities that aren't in the range of one of the light entities. This is
|
||
|
the world ambient light source. To set this, you set the angles of the worldspawn for the direction and the R,G,B values for the color. This
|
||
|
is an infinite parallel light source which will affect all relevant entities.</p>
|
||
|
</blockquote>
|
||
|
|
||
|
<p><h2>Flagging an Entity as Lit</h2></p>
|
||
|
|
||
|
<blockquote>
|
||
|
<p>By default, all entities are not directionally lit. That is, if the lighting field in the entity.dat is 0, it won't be affected by
|
||
|
these model lights. To change this, change the field to either 1 or 2. If 1 is selected, only model lights will affect the entity (including the world ambient).
|
||
|
If it is set to 2, the normal lighting scheme will be mixed with the directional light so it's effectively combining both the standard Quake2 lighting model with
|
||
|
the model lights</p>
|
||
|
</blockquote>
|
||
|
|
||
|
<p><h2>Controlling Ambient Lights</h2></p>
|
||
|
|
||
|
<blockquote><p>
|
||
|
You can modify the direction and color of the dynamic light through a series of APE and Planet commands. This is useful for when you move to
|
||
|
significantly different areas where the lighting needs to be drastically different (such as going from inside to outside, etc.)</p>
|
||
|
</blockquote>
|
||
|
|
||
|
<blockquote>
|
||
|
|
||
|
<p><h3>In APE</h3></p>
|
||
|
|
||
|
<p>Change the color with the following command:</p>
|
||
|
|
||
|
<font = "courier"><i>
|
||
|
LIGHT_SetAmbientColor [r] [g] [b]
|
||
|
</font></i>
|
||
|
|
||
|
<p>
|
||
|
Where R, G, and B are the Red, Green, and Blue components of the ambient light color
|
||
|
</p>
|
||
|
|
||
|
<p>Change the direction with the following command:</p>
|
||
|
<font = "courier"><i>
|
||
|
LIGHT_SetAmbientDir [yaw] [pitch] [roll]
|
||
|
</font></i>
|
||
|
|
||
|
<p>
|
||
|
Where, yaw pitch and roll are the angles of the light direction vector.
|
||
|
</p>
|
||
|
|
||
|
<p><h3>In Planet</h3></p>
|
||
|
|
||
|
<p>Change the color with the following command:</p>
|
||
|
|
||
|
<font = "courier"><p><i>
|
||
|
setambientcolor [r] [g] [b]
|
||
|
</p></font></i>
|
||
|
|
||
|
<p>Where r, g, and b are the red, green, and blue components of the color.</p>
|
||
|
|
||
|
<font = "courier"><p><i>
|
||
|
setambientdir [yaw] [pitch] [roll]
|
||
|
</p></font></i>
|
||
|
|
||
|
<p>Where yaw, pitch, and roll are the angles of the light direction vector.</p>
|
||
|
</blockquote>
|
||
|
|
||
|
<p><h2>Special Effects and Other Features</h2></p>
|
||
|
|
||
|
<blockquote>
|
||
|
<p>Because the lights are entities, and use the RGB fields to determine their color, you can do a color lerp on the entity to change the color of the light itself.</p>
|
||
|
|
||
|
<p>The lights can also be triggered, much like the particles to be off or on. By setting the light_disable key in noxdrop, the light will be spanwed as off.
|
||
|
When it is triggered, the light will activate. By default, the lights are on until that key is set. If they are on, the triggering will turn
|
||
|
the light off </p>
|
||
|
</blockquote>
|
||
|
|
||
|
<p><h2>Performance Considerations</h2></p>
|
||
|
|
||
|
<blockquote>
|
||
|
<p>Only flag essential entities as lit. Lighting is computationally expensive. Only entities that you feel need to be lit should be marked as such in the entity.dat.</p>
|
||
|
|
||
|
<p>Keep the lights to a minimum. Only the single closest light is applied to the model. It's not that hard to change it to multiple light sources, but we
|
||
|
also incur a major performance hit (essentially doubles the work for 2 lights, etc.). For now, I'm keeping it at a single source--either ambient or a light entity.</p>
|
||
|
|
||
|
<p>Right now I have it capped at 4 lights per PVS. I'm going to add a light # in the performance meter so you can gague your progress. Also, 4 lights is
|
||
|
a tad oppressive, so I may max it to 16, but please, keep these lights to a minimum</p>
|
||
|
</blockquote>
|
||
|
|
||
|
<hr>
|
||
|
<p>Complain about this document to the wonderful author, <A HREF="mailto:ralph@ionstorm.com">Ralph Barbagallo</a></p>
|
||
|
</HTML>
|