Navigate:

Advice
Beginners
BIOS Guide
CPUs
Links
Mainboards
Memory
Network
Storage
Video/Sound Cards

Contact
Forum
SiteMap
Sponsors
WebNews
Home
. .

Prices:

Mainboards

ABIT
ASUS
Chaintech
Shuttle
Soyo
Tyan

CPU
Intel
P4 2.4C-800
P4 2.6C-800
P4 2.8C-800
P4 3.0-800
P4 3.2-800

AMD
AthlonXP
XP 1700+
XP 2000+
XP 2400+
XP 2500+
XP 2700+
XP 3000+
XP 3200+

Athlon64
Athlon64 3200+
Athlon64 FX-51

Opteron
Opteron 240
Opteron 242
Opteron 244
Opteron 246

Memory

Corsair
Crucial
Kingston
Mushkin
OCZ

What are you
shopping for?



































































































































































LOSTCIRCUITS

SHORTCUTS:
Top page
Shadow Buffers
3D Textures, Imposters against the rest of the world
ASUS V8200 T5 At One Glance
Test Configuration, 3DMark 2001
SPEC Viewperf
DroneZ
Quake3 Arena, Aquamark
Return to Castle Wolfenstein
Conclusion
 ASUS V8200 T5 Deluxe
No Reason for Panic on the Titanic
(Review by MS, November 28, 2001)

Technographics

Shadow Buffers

Most computer graphics so far, have lacked one critical component of cinematic displays: naturally looking shadows. Shadow display require accurate mapping of every light source and object in the scene and this requires additional memory space. nVidia is using a dedicated portion of the internal buffers of the GPU to store such a shadow, or precisely, a light map. Instead of using shadows that are applied, it actually works exactly the opposite way in that light is applied and the absence of light is the shadow. This appears backwards at first, however, in reality, it makes more sense to calculate the lighting once only instead of applying it first and then subtract luminosity from the shaded areas. The real trick is though that in each light path, there is only one pixel that is really lit. However, behind each pixel that is lit, there are many more (hidden) that are in the shadows. Consequently, it is much more economic to apply the shadow texture to the lit pixel only. (I know that this sounds a bit awkward but on second thought, the logic is very obvious).


Block diagram of the Ti500 GPU with the designated shadow buffer

Here is how it works on a more technical level (Quoted from the nVidia technical brief)

To create a shadow map, the GeForce3 GPU renders the scene from the point of view of the light, as if the viewer were located at the same position and looking in the same direction as the light. As the GeForce3 renders the scene, it stores the depth information, or Z-value, for each pixel in the shadow buffer. The hardware has a special algorithm to bias this Z-value to avoid undesirable artifacts from precision errors. All of the objects in the scene are rendered, but only the smallest biased Z-value for each pixel is kept to ensure that the shadow buffer represents only the objects that are closest to the light. Once a shadow map is created and stored in the shadow buffer, it is ready to be used.

When the GeForce3 Ti GPU renders the scene, it performs the following steps:

To make a long story short, the shadow buffering technique can be used to create hard shadows, soft shadows, self shadows (part of an object shadows another part of the same object).

Example of how shadows can be cast on different objects, including the one casting the shadow (self-shadow). Picture courtesy of nVidia

Looking back, I can't help but notice that the idea and its implementation are not as novel as the nVidia description tries to paint it, as mentioned above, ATi had a similar statement over 1 year ago with the introduction of the Radeon:

Shadow mapping is a much easier and more elegant method that can be implemented using priority buffers. Using a light source as a viewpoint, a scene is rendered to a priority buffer so that the closest shadow casting object has the highest priority, the next closest has the second-highest priority, and so on. Background objects that do not cast shadows have the lowest priority. A shadow texture is then generated by rendering silhouettes of each shadow casting object, in the order defined by the priority buffer. Finally, the shadow texture is projected on to the scene from the light source, and blended with light maps and existing base textures to produce the final image. (More details on ATi's description of the Charisma engine).

Next Page:    => Technographics2: 3D Textures =>

Click Here!

If you enjoyed reading this article and found it useful, please consider making a small donation to LostCircuits.
Thank you!

General disclaimer: This page only reflects the author's personal opinion and assumes no responsibility whatsoever regarding any of the contents or any damages that may occur explicitly or implicitly from reading the contents of this site. All names and trademarks mentioned in this review are the exclusive property of the respective parent companies.
All contents of this site are protected by international copyright laws. Reproduction of the contents even in parts is not allowed except after written permission by the author and referral to this site.
Copyright 1998 - 2008 LostCircuits