The 3D Graphics arena is getting
a little bit more interesting these days. The
competition is heating back up in a big way, with a host of
players looking to challenge the omnipotent 3D Graphics
Giant, NVIDIA. With 6 month design cycles for next
generation products, NVIDIA looked as though it was
hell-bent on world domination. Some competitors were
either exiting the high end consumer space or going belly-up
altogether. Certainly for a while there, NVIDIA was
almost showing "Microsoft-like" surgical precision, in
the way they were innovating new products that blew the
competition's out of the water.
Microsoft, NVIDIA's weapons arsenal is based heavily upon
hardware, specifically the silicon and PCB that makes up the
heart and soul of the GeForce line of products. As a
result, continuous innovation certainly can make great
strides in performance and features but at the end of the
day, those signals can only move those textures and polygons
so fast or with only so much detail, before simple physics
kick in. On the other hand, part of NVIDIA's real
strength has always been in software as well. The
company's "Unified Driver" architecture has historically
earned them high marks for its stability, efficiency,
performance and feature set.
As we've seen in
the past, 3D Graphics is an ever changing landscape. The
recent movement to programmable GPUs has groomed a new
playing field for which ATi, Matrox and 3D Labs have seen
fit to compete upon. So, with the hardware side of
things getting dicey and the competition heating up with
Radeons and Parhelias, what do you think NVIDIA's next move
might be? If you guessed software, you would be right.
takes the wraps off their new Graphics Programming Language
for the Developer Community, dubbed "Cg". Although the
average end user will probably never have the opportunity to
utilize this new tool, it has promise to open up a whole new
world with respect to next generation 3D Graphics for
C programming for graphics
High Level 3D
Graphics Programming Language
standard high level graphics language
NVIDIA with Microsofts participation
compatible with DirectX 9 High Level Shading
development environment including compiler and tools
the worlds most powerful GPUs
DirectX or OpenGL shader programs
access to low level hardware
key compiler components
fastest and most optimal code for NVIDIA GPUs
increasing optimization through forward
Works with ALL
programmable GPUs supporting DirectX 8 or OpenGL 1.
compatible with Microsoft HLSL
compiler supports DirectX 8, 9 and OpenGL
The concept is
an easy one and the message that the marketing folks at
NVIDIA were trying to convey is clear. NVIDIA "Cg" is
very much like the "C" programming language but for 3D
Graphics. The key advantage of the language itself, is
that it is a "high level" programming language that allows
the developer to synthesize large complex functions with a
simple command string, thus eliminating thousands of line of
code, as well as optimizing it for processing through the
DirectX or OpenGL layers and finally to the GPU.
Rendering - NVIDIA Bot
used in various effects - Click image
"Walker" - Click image
So, as you can
see, there are some very complex effects that can be done
with Cg, with a minimal amount of coding. This should,
by all indications, accelerate development time
significantly as well as speed up the debug process.
It also will allow the smaller, less sophisticated Game
Developer, to have access to a suite of high end visual
effects, that otherwise they would have to code manually.
This simplified approach to 3D Graphics programming should
literally open up a world of new development and visual
detail, that otherwise would have taken years to mature.
Frankly, it is almost as if, with the advent of the
"programmable shading engine", this approach to 3D Graphics
Programming was inevitable. The sheer "critical mass",
that NVIDIA has in Software Engineering, just brought it to
the industry that much sooner.
Cg - Open source
important consideration that comes along with a major
software architecture release, in the developer community,
is quick adoption of the product. With that said, what
better way to get more developers working with your new
tools, than by making things open source and able to support
industry standard hardware that is already available.
Game Developers spend many man hours porting and tuning to
run efficiently on various 3D Graphics platforms.
NVIDIA's new Cg compiler promises to deliver highly
"optimized code for the world's most powerful GPUs". In
short, the Cg Run Time Compiler will optimize code to run on
any major GPU, from the likes of a GeForce4 to a Radeon
8500, R300, Kyro II or the up coming Matrox Parhelia.
What does all
this new 3D Graphics programming technology mean to the
average end user? Well, in short, more advanced 3D
graphics and effects, with shorter development times. The
next question we had here was, what does this do to the 3D
Graphics Hardware landscape now and what does the future
hold for the next generation GPU?
We thought we
would ask someone who was just a tad more in the know on
this subject than we are, so we contacted none other than
the Chief Scientist at NVIDIA, David Kirk!
Interview with Chief Scientist, David Kirk of NVIDIA !