|
|
|
|
| |
Multitexture Frosted Glass on Radeon®
|
| |
|
| |
Figure 1 - Frosted glass using multitexturing
|
| |
The sample RadeonFrostedGlass implements an accumulation
buffer technique for simulating frosted glass by using
multitexturing, render target textures, and vertex fog.
This is based on a Multi-pass Pipeline Rendering (MPR)
technique proposed by Paul J. Diefenbach and Norman I.
Badler in "Multi-Pass Pipeline Rendering: Realism For
Dynamic Environments". To download this paper, and to
learn more about his work on MPR, visit Paul
Diefenbach's home page.
The scattering of light through a translucent material
is simulated by stochasitcally shearing X, Y about the
normal axis to the translucent surface for multiple samples
of the transmitted geomtery. The samples are accumulated
to produce the final scattered effect. The shearing is
performed by transforming world coordinates into the plane
normal view at the translucent surface, shearing linearly
with respect to the perpendicular distance from the surface,
and transforming back into world space. The dispersion
of light through this material is further simulated by
adding vertex fog that varies linearly with the perpendicular
distance from the translucent surface.
Each stochastic sample is rendered into an independent
render target texture. The samples are accumulated by
adding them in weighted proportions through a combination
of multitexturing and alpha blending. The Radeon® can
combine four samples in a single pass using its three
texture stage units and the alpha blending unit. This
process can be used recursively to accumulate more samples.
The final scattered image is projected onto the translucent
surface using a texture transformation matrix. Figure
1 illustrates this effect.
|
| |
- RadeonFrostedGlass Controls
-
- S - Toggle between regular and larger shear
displacement
- M - Toggle between default (6) and more (12)
samples
- J - Enable/Disable random jitter added to the
shear displacement
- [SPACE] - Advance Frame-by-frame
- [ENTER] - stop advancing Frame-by-frame
- [LEFT] - Rotate camera left
- [RIGHT] - Rotate camera right
- [ESC] - Quit
|
|
|
| |
Downloads
|
| |
Note: The source code and media should be unzipped
into the following recommended directory structure to
ensure you can easily compile and run the executable.
Radeonxxxxxx.zip -> x:\atiddk\Direct3D\Radeonxxxxxx
media.zip -> x:\atiddk\media
RadeonFrostedGlass.zip
media.zip
Back
to Samples Page
|
| |
| |
 |
|
|
|