Why call it "geometry shaders" ?

Hi,

I don’t really understand from where this name come from … Actually, yes I see. Microsoft said : “let’s adds geamotry shaders in Direct3D 10” so that everyone called it geometry shaders, and now OpenGL ARB do the same. But…

From the OpenGL legacy, the OpenGL naming conversions, isn’t it support to be called primitive shaders ? You know as fragment shaders work on fragment and don’t work on pixel. In OpenGL specification ARB refer to “primitives” not to “geometry something”, what’s geometry anyway?

Cheers

[quote]From the OpenGL legacy, the OpenGL naming conversions, isn’t it support to be called primitive shaders ? You know as fragment shaders work on fragment and don’t work on pixel.[/qutoe]

There’s two simple arguments against this.

First, calling fragment programs pixel programs is not simply wrong; it is misleading. However, calling geometry shaders isn’t misleading; it very clearly operates on geometry.

Second, fragment programs clearly replace previous constructs in OpenGL: the Texture Environment pipeline. It was obvious what to name the because the TexEnv operated on a well-defined thing. Geometry shaders are different because they don’t replace anything. They do something that the pipeline didn’t before. It’s a new thing and thus deserves a new name.

Also, sometimes marketing is really more important than the correctness of a term.

“Fragment program” might be the more appropriate name, but “pixel shader” just sounds much cooler. Same for “primitive shader” and “geometry shader”. Though Korval’s argumentation, that it does not only operate ON primitives, but also generates new ones, has a point.

And, apart from that, it is also often very important to have one standardized name for something. Having OpenGL and D3D use two different names for the same thing is not good. The OpenGL users are a minority (in the gaming biz), we should not always try to artificially highlight this fact.

Jan.

Fragment shaders manipulate a single fragment. Vertex shaders manipulate a single vertex.

But geometry shaders don’t manipulate a single primitive, they take a primitive, optionally plus surrounding information, and output multiple primitives. To sum up, instead of operating on single primitives, they operate on multiple primitives, and that’s sometimes called “geometry” :wink:

I know this explanation sounds somewhat artificially constructed, but so does the question :stuck_out_tongue:

Anyone know why the word “shader” became so prominent?

I assume the word started to be used because of its first role as operating on fragments, therefore making “shadows” programmable… From Wikipedia:

Shading refers to depicting depth in 3D models or illustrations by varying levels of darkness.
It seems that the term just decided to stick because it “sounded cool” for other parts of graphics pipeline even unrelated to simply shadowing.

I find it a stretch to say that geometry (point primitives) can be “shaded” when not talking about the fragment stage, but obviously I understand the concept of a geometry “shader”. A “geometry program” doesn’t have quite the same ring to it.

Marketing can be quite useful for conveyance of concept. :slight_smile:

And another thing, why did they change the name of the marathon chocolate bar to snickers?
Oh, hold on, that’s inane nonsense, unlike the rest of this thread.

Anyone know why the word “shader” became so prominent?
Because that’s what Pixar called them?

What is this “pixar” you speak of?

http://www.pixar.com/