Not content with dominating the graphics chipset market, nVidia has now branched out into the software industry, releasing its own graphics programming language, Cg. The C stands for the C programming language, which it is similar to, while the g is for graphics.
Cg, which has been developed in conjunction with Microsoft and will form part of its upcoming DirectX 9.0 graphics interface (though perhaps not under the same name), is a high level programming language, which is designed to simplify the process of creating 3D games and movies. The first public beta was released this week, with the full launch planned for autumn.
The software allows users to create complex graphics effects with far less code than was previously necessary, by providing an easy-to-use programming language, instead of forcing developers to resort to the nuts and bolts of machine code.
The Cg code controls geometry and shading, two key factors that affect how realistic and effective the final graphics are. A Cg compiler compiles and optimises instructions on the fly before sending them down to DirectX or OpenGL graphics interfaces.
nVidia has not restricted the use of Cg to its own GPUs (graphics processing units), and says that it will work with any chip that supports DirectX 8.0 or 9.0, or OpenGL 1.4 or 1.5. DirectX 8 or 9, or OpenGL 1.4 or 1.5. It will also work under the Mac OS and Linux operating systems and Xbox. Microsoft's implementation of the technology only works under Windows and with DirectX, but it has yet to announce plans for Xbox.
While some features of Cg allow nVidia to optimise performance on its GPUs, it will make much of the Cg code open source, so other manufacturers can optimise it for their own chips.
To encourage developers to use Cg it will be distributed free. nVidia chief scientist, Dave Kirk, states the company's aim with this generous move is to grow the market. "Cg is good for graphics and good for games, which increases the demand for high-end GPUs", he explains. Kirk believes that by using Cg developers can cut the amount of time it takes to create a game from two years down to just one.
Kirk believes that with the introduction of Cg, the process of movie making and games development have been brought closer together. "The amount of code used is closer to the amount used to make movies. Anything you can do in RenderMan [software used to code movies], you can do [in real time] in Cg". He says that movie-quality games could be a reality within a year. nVidia has already developed a real-time, interactive version of the Final Fantasy movie.