Index: GTP/trunk/App/Demos/Illum/PathMap/ReadMe.txt
===================================================================
--- GTP/trunk/App/Demos/Illum/PathMap/ReadMe.txt	(revision 1470)
+++ GTP/trunk/App/Demos/Illum/PathMap/ReadMe.txt	(revision 1480)
@@ -1,16 +1,64 @@
-The Path Map standalone module implements the Light Path Map approach for indirect lighting.Its purpose is to add realism to computer games by computing dynamically changing indirect illumination. It is an improvement over ambient lighting or static light maps. Not unlike light maps, global illumination computations are performed in a precomputing step, using ray casting and indirect photon mapping (the virtual light sources method). The contributions of virtual light samples are computed on the GPU, with depth mapping. However, instead of computing a single light map, multiple texture atlases (constituting the PRM) are generated for the scene objects, all corresponding to a cluster of indirect lighting samples. Then these atlases are combined according to actual lighting conditions. Weighting factors depend on how much light actually arrives at the sample points used for PRM generation. This computation is also performed in a GPU pass.
+GameTools standalone tool:
+
+Real-time global illumination
+#############################
 
 
-Run
----
-Copy PathMap.exe (from the Debug or Release directory) to the solution'S directory and run.
+Provided effect:
+#################
 
-Build
------
-Simply load and build the solution file (PathMap_2003.sln)
+Indirect illumination with Precomputed Radiance Maps (PRM)
 
-Usage
------
+Standalone final rendering (real time GI) application without or with [if
+GENERATE_PATH_MAPS is defined in PathMapEffect.cpp] PRM precomputing
 
-There is a number of on-screen controls available to navigate the scene and adjust lighting. Use the mouse to look around, the A, S, D, W keys to move. If the Move light box is checked, the same controls move the light source. If Look from light is checked, the scene is rendered as seen from the light source instead of the camera. It is convenient to check both boxes when positioning the light source. Selecting the Entry points checkbox will add small squares to the scene to indicate entry points. Colors indicate weights. The clustering also becomes visible. The Turbo checkbox toggles camera movement speed. Pressing the Tab button will display a PRM texture, or revert to scene rendering. The technique ShowTex may be modified to display other internal textures for illustration. The slider Tone scale allows scaling the resulting image, which can also be viewed as changing the light source intensity.
- 
+
+Algorithm benefits:
+###################
+Provides real-time indirect illumination. As opposed to static light maps,
+actual lighting conditions influence indirect illumination. The effect is
+achieved by combining multiple 'PRM panes' (partial "light maps") according to
+current illumination of 'entry point clusters'.
+
+As opposed to PRT (precomputed radiance transfer), no tessellation (finite
+elements) is needed, and near light sources are handled. (We do not assume
+infinitely distant
+environment lighting.)
+
+Accuracy of PRMs depends on the number of entry points used, influencing
+preocessing time only.
+
+Final rendering requires a compositing of PRMs, where performance depends on the
+number of 'entry point clusters' considered for an object. As many texture
+fetches as clusters are needed. A lower number of clusters will result in
+indirect illumination which is less responsive to actual lighting, but still
+plausible. (A single cluster would reproduce a static light map which is scaled
+according to the total direct illumination.)
+
+
+Build:
+######
+This is a standalone DirectX 9.0 application, compiles under Visual C++ 2003
+with DirectX SDK April 2006 (identical to June 2006).
+
+Parameters (PRM resolution, shadow map resolution, #entry points, #clusters,
+etc.) are hardcoded as #define directives in PathMapEffect.h.
+
+GENERATE_PATH_MAPS in PathMapEffect.cpp must be defined to perform precomputing,
+outputting textures to the PRM subfolder. Otherwise, PRM textures are loaded
+from the PRM subfolder.
+
+
+Usage notes:
+############
+- as precomputing is used, this tool should be used for static level geometry
+- multiple static objects are supported and encouraged: every object will use a
+set of most important PRM panes
+- models must have unique texture mapping (just like light maps)
+
+- there is no support for any particular 'level geometry' discription format.
+DirectX .x files and referenced textures are loaded from code.
+- To include the method in a particular engine, the level geometry should be
+used to compose the scene which is used to generate the PRM textures. Final
+compositing must be implemented in the shader system of the game engine,
+assigning the computed PRMs to the respective objects as textures.
