nVIDIA's "Cg" Language
An Interview With David Kirk, Chief Scientist - NVIDIA Corp
What's on the horizon for next generation graphics

By Dave Altavilla
6/14/02

 
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. 

However, unlike 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.

Today NVIDIA 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 gaming.

Cg, C programming for graphics
High Level 3D Graphics Programming Language

 

  • Industry standard high level graphics language

  • Developed by NVIDIA with Microsofts participation

  • 100% compatible with DirectX 9 High Level Shading Language

  • Complete development environment including compiler and tools

  • Optimized for the worlds most powerful GPUs

  • Outputs DirectX or OpenGL shader programs

  • "Unified Compiler Architecture"

  • Still allows access to low level hardware

  • Open- source key compiler components

  • Generates the fastest and most optimal code for NVIDIA GPUs

  • Ensures increasing optimization through forward compatibility

  • Works with ALL programmable GPUs supporting DirectX 8 or OpenGL 1. 4

  • 100% compatible with Microsoft HLSL

  • NVIDIA Cg 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.

Final Rendering - NVIDIA Bot
 

 

Cg Commands used in various effects - Click image
 

 

NVIDIA's "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 compiler

Another 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!

 

A HotHardware Interview with Chief Scientist, David Kirk of NVIDIA !