|
Submitted by , posted on 10 November 2004
|
|
Image Description, by
We work for a CAE simulation company and have done some work for our next
release adding support for pixel and vertex shaders. :)
We used OpenGL Shader Language for this, as it seemed a better option than
the proprietary CG/etc languages that are out there. It seems this is
likely to stay around longer (who remembers Voodoo II) than the custom
stuff vendors are putting out...
Top left: simple chrome effect. Top right: 3 point-light phong-shaded with
cubic reflection map. It's amazing to see realtime phong rendering at
1600x1200 res, when you used to remember how long 3D studio DOS would take
to render a scanline! :) The middle image is a fake-phong: which uses a
specular map to lookup based on the surface normal: it runs really fast
and sometimes looks even better than the real-phong! At the bottom is the
X-ray shader (don't ask... maybe nostalgia, or maybe too much Syndicate
Wars..)
Cons/Pros?
Man. Earlier ATI cards are pants! During our testing these were the
suffering, with tiny instruction limits, lots of crashes and not a very
friendly Shader Language Compiler. nVidia really kicks butt! Though, I can
see why there is no option in the display properties to "render gouraud
triangles as phong", as it's still just a little bit too slow for that yet
(we get only about 3 frames per second on our most complex shaders: but
then, these are HUGE programs.) It's amazing the computer power that is
packed into a GPU in addition most of our models are around 20,000+
polies. The main taker of time is not Tris but pixels..
It was surprising to find out how many cards did support OpenGL 2.0 when
we installed the latest reference drivers from nVidia and *cough* ATI.
There's been no fanfar about it however: nothing on the webpages like when
some redundant feature is added (ie full-page advert about a better
cooling-fan and how this will make your life better.) Of course, the
reason for this may be that both nVidia and ATI support is still not
100%... (no noise operator for nVidia, and no variables indexing arrays
and poor compiler support for ATI!)
|
|