Fillrate and VSD (Visible Surface Determination)
by Ga'ash Soffer on December 10, 1998 7:43 PM EST- Posted in
- GPUs
Other Stuff
Don't think that there are only two methods of VSD. Why are they the only methods really used though? Well, the reason is some of the other methods are very inefficient, or have a serious flaw in them.
Depth Sorting
One of the earliest methods of VSD was depth sorting. This process involved sorting the polygons in order of farthest to closest, and then rendering the list, back to front (e.g. draw the farthest polygon first, etc.) The major flaw with depth sorting is that it doesn't always draw the polygons in the right order. Why doesn't it work? Well, first of all, what do we sort by? Do we sort by the farthest point in the polygon, the center of the polygon? Perhaps the closest point in the polygon. Each one of these methods will cause errors in certain cases. Piercing polygons never render correctly, regardless of the method used to sort the polygons. For these reasons, and because depth sorting is not very fast. (Sorting 10,000 polygons or more isn't fast, even using the fastest sorting algorithms).
Zbuffer alone (no organization)
Using a Zbuffer to render polygons is what is used by hardware. Why do we need organization anyway? Why can't we just go through all the polygons and render them using a Z-buffer? This allows a fully dynamic world and always renders correctly. (Provided enough Z buffer accuracy). The reason no one does this is that it is SOOO SLOW. While the actual rendering is only very slow, collision detection and raycasting are incredibly slow, many many many polygons must be tested for ray collisions or player/object collisions. If the polygons are in arbitrary order, all the polygons must be cycled through. The actual collide test does not need to be performed, however, since many polygons can be eliminated quickly. Regardless, this method is very slow and inefficient. For this reason no recent games have no organization method.
Conclusion
While VSD method isn't exactly what gamers care about, it turns out that it is one of the most, if not the most, important aspect of a 3D engine. VSD determines dynamism (is that a word?) of the world, CPU dependency, and graphic card dependency. I hope this article was informative and interesting to all of you.
0 Comments
View All Comments