New ambient aperture lighting demo

Humus

Crazy coder
Veteran
I've added a new demo that does self-shadowing bumpmapping using ambient aperture lighting. It's a faster way to compute self-shadowing than horizon mapping.
The aperture map can be computed fairly quickly on the GPU (which this demo does) but since that shader is too long for Radeon 9x00 cards I've included precomputed aperture maps.

ambientApertureLighting.jpg


Get it at the usual place
 
Nice :) Runs at about 1100 FPS without AA/AF on my 8800 GTX at the default res, or around 700 fps with 16x AF and 16x AA.

One small issue, though: it doesn't look like it queries the driver for the available AA modes, but instead just lists those available on Radeons.
 
Cool, is this some kind of fancy normal mapping? How is it different?

7900GTX Mobile - 1920x1200 4x16x HQ - 85 fps. 640x480 4x16x HQ - 664fps.
X1900XT - 1600x1200 6x16x HQ - 234 fps. 640x480 6x16x HQ - 748 fps.
 
Last edited by a moderator:
One small issue, though: it doesn't look like it queries the driver for the available AA modes, but instead just lists those available on Radeons.

Yeah, one of these days I'll implement this properly.

Cool, is this some kind of fancy normal mapping?

No. It's more like a replacement for horizon mapping. You still need normal mapping for diffuse and specular lighting. Ambient aperture lighting takes care of shadowing.
 
Works great in Vista too, even with glass! :D

Although, I must say, it looks less like self-shadowing, and more like a sea of dark with the light creating an anti-tide.
 
Last edited by a moderator:
"but since that shader is too long for Radeon 9x00 cards I've included precomputed aperture maps.
"

so whats the advantage of not precomputing them ?
 
so whats the advantage of not precomputing them ?

Smaller download size, which is always a goal I have with my demos (within reason). I could have done a multipass implementation, but that would have made the code more complex, and since it was only for the precomputation step and not neccessary at runtime I instead opted for just downsampling the resulting maps and include them in the file. You can get good results even with very small aperture maps.
 
For some reason I cant run it in fullscreen. But at 1400x1050 I get like 650 FPS @ 16xAA/16xAF windowed and @ its base I get like 2100 FPS.
 
For some reason I cant run it in fullscreen. But at 1400x1050 I get like 650 FPS @ 16xAA/16xAF windowed and @ its base I get like 2100 FPS.

If I pick any resolution beyond 1600*1200 (--->CRT mask override) I just get a black screen. All other of Humus' demos work up to 2048*1536 flawlessly. In fact the only other way to get it back to 16*12 or lower is to tune down in one of his other demos.
 
Back
Top