
Hello David,
Thanks for taking time out of your busy schedule to chat
with us. We appreciate your ?accessibility? here and it?s
great to know that NVIDIA still values an open line of
communication with the end user community, as well as
HotHardware?s elite group of enthusiasts.
First,
perhaps we should start with the basics. What is your title
and general scope of responsibility at NVIDIA?
My title is Chief Scientist, and I am in charge of the
Architecture group at NVIDIA. We work to develop new
algorithms and architectural features for NVIDIA?s hardware
products. The architecture group provides a software
simulator for each new chip, for the hardware and software
team to use to build the chips and drivers. We also support
the testing process to make sure that we build the right
thing, and it works, and it?s fast. We work closely with our
developer team to get feedback and input on what features
developers and customers want and need. I also have the
pleasure of evangelizing our technology and vision to the PC
and Game community at large!
So, as Chief Scientist, you are somewhat of a visionary
with respect to the technology that is being developed at
NVIDIA, as well as where the industry is headed. What do you
think are going to be key elements, moving forward, for 3D
Graphics and the Gaming Industry? Is it still just
fill rate, bandwidth and shaders? Or are things going
to evolve in another direction?
I think that we?ve reached a turning point in GPU
technology, and we?re going to see some very exciting
changes coming in the very near future. Over the past five
years, we?ve been adding features, but also focusing on
increasing performance at a rate of approximately doubling
every 6 months. Consequently, we?ve gone from the infancy of
mass market PC graphics, to programmable graphics hardware
that is powerful and usable, to create stunning effects. We
are now at a point where pixel fill rate is quite fast, and
polygon rate exceeds the demands of most game developers. We
can render at HD resolution, with over 1 million polygons
per frame, covering each pixel 20+ times with pixel shaded
detail, at 60+ Hz, with anti-aliasing turned on! We?re
now shifting the focus from more, faster pixels, to better,
more realistic pixels. The new programmability in GPUs
is going to drive the creativity of artists and programmers
forward into a whole new era.
What do you think are the top three hardware features
that Game Developer are asking for moving forward?
That?s a tough one. Developers always ask for more, more,
more, and we try to give it to them! Developers have
been asking for more flexibility and programmability in both
the pixel pipeline and in the vertex processing pipeline,
and more precision in the data calculation for lighting and
shading. Finally, programmers are continually
struggling with change. Each new piece of hardware has
more, new, different features to be learned, and this is
difficult for them to program directly. For this
reason, we?ve developed a new technology with collaboration
from Microsoft, that allows GPUs to be programmed at a
higher level of abstraction. We call NVIDIA?s higher level
language Cg ? C for graphics. I believe that it will
revolutionize graphics and the way that games are developed.
Let?s talk about your recent Cg announcement a bit.
Cg is certainly an excellent new tool for the Game Developer
Community. Having an open source, high-level language,
versus machine language or hand coding, is going to open up
new areas of opportunity for next generation game
development. However, the end user community isn?t
going to be firing up your Cg compiler any time soon.
What do you think all this new development software means to
the end user?
The power and excitement of a high-level language, lie in
the fact that the end-user doesn?t have to interact with the
technology or even know that it exists. Cg will allow
developers to start developing high-level language programs
for today?s GPUs right away. There is very little learning
curve, since Cg is very much like C. So, games that
take advantage of the technology will begin to appear right
away. Also, as new GPU technology appears, the Cg run-time
compiler will compile the Cg program to most effectively
take advantage of the new GPU features, without re-writing
the program. This means faster adoption of new hardware
technology, and that means better games for users, sooner!
How does Cg work in conjunction with the current APIs out
there, OpenGL and Direct X 9?
Cg is a high level graphics programming language, and a
run-time compiler that is layered on top of the OpenGL and
DirectX APIs. So, Cg programs are by definition compatible
with both APIs. And, any hardware or operating system
platform that runs either API will therefore run Cg
programs. By the way, we?re actually starting with DirectX
8, and GeForce3 and GeForce4 as targets, so developers can
start now. When DirectX 9 arrives, Cg programs written for
DirectX 8 or OpenGL will ?just work? but run faster and
better.
Does Cg offer simply more streamlined development of 3D
Graphics and Animation or are there certain features and
optimizations that it will bring forth.
Cg streamlines the process of developing games and 3D
graphics animation by moving the programmers and artists
away from the details of the hardware while still allowing
full control. Because Cg is compiled at run-time, the
execution of the program can be dynamically optimized to
take advantage of specific features of particular hardware,
and to run at maximum performance. Developers can focus more
on the visual effects that they want to create, and less on
how to shoehorn them into a specific hardware
implementation. This makes compatibility with multiple
generations of hardware much easier to support.
You?re releasing a tool suite and compiler for this new
?open source? language. Do you think the rest of your
competitors are likely to follow suite and release their own
versions?
We are hopeful that the entire graphics community will
embrace Cg. It?s clearly good for everyone. However,
they don?t actually need to do any work to support Cg. Since
the language is layered on top of the major graphics APIs,
OpenGL and DirectX, Cg will run on all hardware that
supports those APIs, assuming that they are conformant to
the standards. It?s really exciting! Cg can be pervasive. As
part of our announcement of Cg, we are also including some
statements from some of the major authoring software tool
providers, who will be actively integrating Cg support into
their tools. Artwork and effects that are created by artists
and visual effects specialists will be automatically
exported as Cg source code, with supporting data.
Since this new development language supports Direct X 8
and 9 features and extensions, what role does Microsoft play
in all this?
The syntax of the Cg language was developed by NVIDIA in
close collaboration with Microsoft, to make sure that the
syntax of NVIDIA?s Cg language and Microsoft?s efforts are a
perfect match. Also, since Microsoft?s DirectX APIs directly
expose new features that hardware vendors produce, the
combination of Cg and DirectX allows efficient access to the
power and programmability of the latest GPUs. Microsoft is a
valuable partner in bringing the latest and greatest
technology to developers and consumers, and we value their
contributions.
More Q&A with
David Kirk and a hint at what NVIDIA has up their sleeve!
|