Jump to content
  • Advertisement
Sign in to follow this  
dxdotnet1

what is a stencil buffer

This topic is 4732 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

im confused of what stencil buffer is and whats its used? i planned to study and learned how to use shadow mapping/volume and the article uses the stencil buffer and i dont knw what it is

Share this post


Link to post
Share on other sites
Advertisement
The stencil buffer is an extra buffer that holds a value for each pixel. This is commonly either 8bit (0..255), 4bit (0..15) or 1bit (0/1). When polygons are drawn, you can update the stencil buffer with operations such as simply writing a value to it, incrementing the value or decrementing the value.
You can also test against the stencil buffer, to see whether the value for a pixel is equal to another value, above or below it.

A good example of why this is useful is using a non-rectangular clipping area. Suppose you want to draw a map display or camera view in the HUD of your game, but this should be displayed in a circular area. You could simply draw a circle in the stencil buffer, writing value 1 to each pixel. Then, you can draw your geometry, setting the stencil buffer condition to ==1. This ensures that everything drawn shows up only inside that circle. Voila, perfect clipping.

With shadow volumes, you can set the stencil operation to increase the stencil value by 1 for the volume's front-facing polygons and decrease it by 1 for back-facing polygons. This results in the stencil buffer containing 0 for all pixels that are not in the shadow, 1 (or higher) for pixels that have a shadow cast on them.

Share this post


Link to post
Share on other sites
Also, the concept of a "Depth-Stencil Buffer" can be confusing. Basically, it is just a depth buffer (which stores information about the depth of a pixel) and a stencil buffer combined, to increase efficiency.

If you look at the DepthStencil buffer formats, you will see a notation like D24S8. This means 24 bits are reserved for the depth buffer, while 8 bits are reserved for the stencil. There are pure depth buffers though, like D32.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!