GeForce 8800 GTS & GTX review

Graphics cards 1049 Page 3 of 27 Published by

teaser

Page 3 - Geometry Shaders

With the introduction of DirectX 8 & 9, in the traditional way when you executed a shader instruction you had to to send it to either the pixel or the vertex processor. And when you think about that it a little more that seems somewhat inefficient, as you could have the pixel shader units 100% utilized while the vertex units were only 60% utilized. And that's a waste of resources, efficiency and power, thus power consumption as you are not using a lot of transistors. The new approach in DirectX 10 (DX10) and thus new generation of graphics processors is simple. Any shader; pixel or vertex is being sent to a unified shader processor and executed. This way you can 100% utilize the architecture and have as little performance loss as possible as you can use ALL shader processors on the GPU. That's pretty cool from an efficiency point of view as maximum utilization means more computing power, which means either more eye candy on your screen at a better rendering frame rate. So this entire story has one word written all over it: efficiency.

You will notice that NVIDIA will call the unified shader processors the stream processors. And the stream processors will manage pixel, vertex and Geometry shaders. That's right, geometry shaders! We have a new third shader. DX10 and thus Shader Model 4 is exciting. Like the three musketeers, all for one and one for all.

GeFore 8800 GTX & GTS review - Copyright 2006 Guru3D.comG80 silicon wafer - now that would make a nice multi-core graphics card. Funny,if you look closer at the cores one might say there are two cores on there don't you agree ?

Geometry Shaders

Again we need to get a little techie here I'm afraid. You might want to skip this part unless you are a true geek.

We already discussed Pixel and Vertex Shaders, but with DX10 comes a new shader: Geometry Shaders (GS). Geometry Shaders do some quite specific things that make no common sense for a PS/VS program and that is why this new shader was introduced.

A Geometry shader will be a innovative set of shaders present in next generation graphics hardware like GeForce 8 Series and Radeon R600. Geometry shaders do per-primitive operations on vertices grouped into primitives like triangles, lines, strips and points outputted by vertex shaders. Geometry shaders can make copies of the inputted primitives; so unlike a vertex shader, they can actually create new vertices. Examples of use include shadow volumes on the GPU, render-to-cubemap and procedural generation. A geometry shader works at a larger level of granularity than vertices (which are at a larger granularity than pixels): triangles, objects, lines, strips, points. Primitives.

So after the vertices are processed by the vertex shader, the geometry shader can be utilized to push further work on them. And that's exactly where the money shot is to be found as a  limitation of the traditional vertex shader is that it really cant create new vertices. This is where the geometry shader surfaces, as it can be used to work on the edges of a triangle to create a different figure.

GeFore 8800 GTX & GTS review - Copyright 2006 Guru3D.com
The surface (rock vertices) of this demo are created at random and realtime with a Geometry shader. When the camera moves up the GPU will calculate new surface constantly and endlessly, random if you wish. This is a very good example of a the usage of a geometry shader. Small interesting side-note;  the water follows the path of the surface and thus reacts to with it, which is a physics model.

Share this content
Twitter Facebook Reddit WhatsApp Email Print