Changeset 1480 for GTP/trunk/App/Demos/Illum/PathMap/ReadMe.txt
- Timestamp:
- 09/22/06 20:58:26 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/App/Demos/Illum/PathMap/ReadMe.txt
r1470 r1480 1 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. 1 GameTools standalone tool: 2 3 Real-time global illumination 4 ############################# 2 5 3 6 4 Run 5 --- 6 Copy PathMap.exe (from the Debug or Release directory) to the solution'S directory and run. 7 Provided effect: 8 ################# 7 9 8 Build 9 ----- 10 Simply load and build the solution file (PathMap_2003.sln) 10 Indirect illumination with Precomputed Radiance Maps (PRM) 11 11 12 Usage 13 ----- 12 Standalone final rendering (real time GI) application without or with [if 13 GENERATE_PATH_MAPS is defined in PathMapEffect.cpp] PRM precomputing 14 14 15 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. 16 15 16 Algorithm benefits: 17 ################### 18 Provides real-time indirect illumination. As opposed to static light maps, 19 actual lighting conditions influence indirect illumination. The effect is 20 achieved by combining multiple 'PRM panes' (partial "light maps") according to 21 current illumination of 'entry point clusters'. 22 23 As opposed to PRT (precomputed radiance transfer), no tessellation (finite 24 elements) is needed, and near light sources are handled. (We do not assume 25 infinitely distant 26 environment lighting.) 27 28 Accuracy of PRMs depends on the number of entry points used, influencing 29 preocessing time only. 30 31 Final rendering requires a compositing of PRMs, where performance depends on the 32 number of 'entry point clusters' considered for an object. As many texture 33 fetches as clusters are needed. A lower number of clusters will result in 34 indirect illumination which is less responsive to actual lighting, but still 35 plausible. (A single cluster would reproduce a static light map which is scaled 36 according to the total direct illumination.) 37 38 39 Build: 40 ###### 41 This is a standalone DirectX 9.0 application, compiles under Visual C++ 2003 42 with DirectX SDK April 2006 (identical to June 2006). 43 44 Parameters (PRM resolution, shadow map resolution, #entry points, #clusters, 45 etc.) are hardcoded as #define directives in PathMapEffect.h. 46 47 GENERATE_PATH_MAPS in PathMapEffect.cpp must be defined to perform precomputing, 48 outputting textures to the PRM subfolder. Otherwise, PRM textures are loaded 49 from the PRM subfolder. 50 51 52 Usage notes: 53 ############ 54 - as precomputing is used, this tool should be used for static level geometry 55 - multiple static objects are supported and encouraged: every object will use a 56 set of most important PRM panes 57 - models must have unique texture mapping (just like light maps) 58 59 - there is no support for any particular 'level geometry' discription format. 60 DirectX .x files and referenced textures are loaded from code. 61 - To include the method in a particular engine, the level geometry should be 62 used to compose the scene which is used to generate the PRM textures. Final 63 compositing must be implemented in the shader system of the game engine, 64 assigning the computed PRMs to the respective objects as textures.
Note: See TracChangeset
for help on using the changeset viewer.