1 |
|
---|
2 | Indirect Diffuse and Glossy Illumination on the GPU
|
---|
3 | István Lazányi and László Szirmay-Kalos
|
---|
4 | TU Budapest
|
---|
5 |
|
---|
6 |
|
---|
7 | Contact | Abstract | System requirements | Controls | Troubleshooting | Documentation
|
---|
8 |
|
---|
9 | Contact
|
---|
10 |
|
---|
11 | +-----------------------------------------------------------------------------------+
|
---|
12 | | IF YOU EXPERIENCE TECHNICAL PROBLEMS OR YOU WOULD LIKE TO INTEGRATE THE |
|
---|
13 | | SOURCE CODE INTO YOUR APPLICATION, DO NOT HESITATE TO CONTACT US FOR ASSISTANCE. |
|
---|
14 | +-----------------------------------------------------------------------------------+
|
---|
15 | | MAILTO: ilazanyi@freemail.hu, (szirmay@iit.bme.hu) |
|
---|
16 | +-----------------------------------------------------------------------------------+
|
---|
17 |
|
---|
18 | Abstract
|
---|
19 |
|
---|
20 | We present a fast approximation method to obtain the indirect diffuse or glossy reflection on a dynamic object, caused by a diffuse or a moderately glossy environment. Instead of creating a diffuse/specular irradiance map with precalculated values we perform all calculations on the fly. Supposing that the environment map representing the environment is downsampled, the method can run in real-time and provide visually pleasing results.
|
---|
21 |
|
---|
22 | System requirements
|
---|
23 |
|
---|
24 | Pixel shader 3.0 compatible video card with DirectX 9c driver. DirectX SDK, Visual Studio .NET 2003 to build the source code.
|
---|
25 |
|
---|
26 | Controls
|
---|
27 | APPLICATION CONTROLS
|
---|
28 |
|
---|
29 | F1: Display this help text
|
---|
30 | Quit: ESC
|
---|
31 | F8: Switch to Wireframe mode
|
---|
32 |
|
---|
33 | Left click+drag: Rotate mesh
|
---|
34 | Mouse wheel: Zoom
|
---|
35 | Arrow keys: Move object
|
---|
36 |
|
---|
37 | L: [L]oad params
|
---|
38 | S: [S]ave params & take SCREENSHOT
|
---|
39 | R: [R]eset params
|
---|
40 |
|
---|
41 | MESH OBJECT CONTROLS
|
---|
42 |
|
---|
43 | O: show 3 mesh [O]bjects
|
---|
44 | F: show [F]ireballs
|
---|
45 | Ins, Del: scale mesh object
|
---|
46 | Home, End, or 0-9: choose mesh object
|
---|
47 | gray +,-: adjust intensity
|
---|
48 | gray /,*: adjust specular shininess
|
---|
49 |
|
---|
50 | ALGORITHM-SPECIFIC CONTROLS
|
---|
51 |
|
---|
52 | TAB,Q: choose shading method
|
---|
53 | N,M: choose cube map resolution
|
---|
54 | A: refresh cube maps for every frame
|
---|
55 | SPACE: refresh cube maps MANUALLY
|
---|
56 | C: choose visualized [C]ube map
|
---|
57 |
|
---|
58 | Troubleshooting
|
---|
59 |
|
---|
60 | - display driver
|
---|
61 |
|
---|
62 | If you experience strange errors or artifacts, the first thing to do is to to update your display driver.
|
---|
63 |
|
---|
64 | - DirectX SDK
|
---|
65 |
|
---|
66 | The application was tested with the following Microsoft DirectX 9.0 SDK versions:
|
---|
67 | - Oct 2005 (during development)
|
---|
68 | - Jun 2006 (final testing)
|
---|
69 |
|
---|
70 | Porting to the new version was achieved by simply updating the DXUT files in the Common folder. To generate these files, we started the DirectX Sample Browser, and installed an EmptyProject(C++) project. The generated Common subfolder was used then to replace the old DXUT files. Otherwise, an error message "Incorrect version of Direct3D and/or D3DX." is displayed.
|
---|
71 |
|
---|
72 | Documentation
|
---|
73 |
|
---|
74 | We hope that you find the enclosed Doxygen documentation useful.
|
---|