1. Introduction
Initial graphic processing hardware has only the fixed functions. New generation of programm-able GPU (Graphic Processing Unit) allows program to complete complex tasks and generate photorealistic effects. Unlike traditional CPU, GPU works in the way of SIMD (Single Instuction stream and Multiple Data stream), that is it applies the same program on the uniform data. The new generation GPU consists of the programmable vertex, pixel, and texture units. Vertex unit describes the geometry of an object. Pixel unit deals with the view of an object. And texture unit specifies the skin covered on an object. And pixel unit deals with the view of an object. Current GPU hardware enables vertex and pixel programmable.
The GPU pipeline diagram shows that vertex unit accepts vertice information such as position and normal from the model through the vertex buffer. At the same time texture unit receives surface information from the model. Both units complete processings and output the result to the pixel unit. Then pixel unit completes the lighting and view processing and outputs to the frame buffer for display. All the units work along to generate a shading of 3D world. An instruction set is provided to use the programmable capability of these units. So there are corresponding assembly languages as well. Furthmore, HLSL (High Level Shading Language) can be compiled to generate assembly codes. A complete shader consists of a code running on CPU and a code running on GPU. Usually you may need to write hundred lines of C++ code with 50 lines assembly codes or 20 lines of HLSL code to describe a shader.
Neatware's mCL (Media Control Language) is a scripting language for media application. It is easy to learn, to use, and to test. mCL provides an glue to DirectX D3D platform and can easily embed HLSL for shader programming.
The benefits of mCL are
- allow you to use latest DirectX 9.0+ technology
- program with HLSL for new generation GPU
- generate cinamatic effects with pixel shader
- develop large application with object-oriented programming
- support threads and increase performance with hyperthreading or multicore processor
- render video on models to show surface animation
- mix text and video or model in the scene inteactively
- easy to learn, program, and test
- improve productivity in game and visual computing development
mCL also provides supports for the latest Intel Pentium4/Xeon Processor with HT technology.
- Thread
A mCL thread may execute for shader rendering and another mCL thread works for GUI control. This can gain better interactive experience through the Hyper-Threading technology.
- Matrix
mCL matrix used the matrix optimization for P4 in which the aligned memory access speeded up the matrix computing.
|