ATI’s new SMARTSHADER™ technology allows developers of 3D games and other applications to unleash their creativity with a fully programmable graphics pipeline for both geometry processing and rendering. Vertex shaders enable custom transform and lighting effects, giving complete control over the shape and position of 3D characters, objects, and environments. Pixel shaders enable a huge number of different per-pixel effects, allowing accurate simulations of the natural properties of materials such as hair, cloth, metal, glass, and water that were previously difficult to achieve in real-time applications. Important visual cues such as reflections, highlights, and shadows from multiple light sources can also be rendered with unprecedented speed and accuracy. Both pixel and vertex shaders are accessible using the DirectX® 8.1 API from Microsoft as well as OpenGL® extensions from ATI.
SMARTSHADER™ technology takes a major step beyond existing hardware shader implementations with support for up to six textures per rendering pass, nearly double the number of instructions, and a new and improved shading language that provides greater flexibility and ease of use. These advancements greatly increase the number of graphical effects that can be created, improve performance by conserving memory bandwidth, and allow more games and other applications to take advantage of the technology. With SMARTSHADER™ technology, the pace of graphical innovation will accelerate, and the gap in visual quality between what has been seen in movies and what appears on the computer screen will become narrower than ever before
Developers of 3D graphics applications have always had difficulty creating realistic computer generated characters, objects and environments that can be interacted with in real time. The limitation has been a lack of available processing power combined with the restricted flexibility afforded by existing graphics hardware. There has always been a trade-off between performing operations on the CPU, which allows more flexibility due to its general and programmable nature, and the graphics processor, which allows better performance due to its hardwired and heavily optimized architecture. While the rapidly increasing speed of graphics processors has enabled a significant amount of progress, and while they have been steadily taking over many of the tasks formerly handled by the CPU, there are many interesting and useful graphical techniques that have remained out of reach because they require a combination of speed and flexibility that neither existing CPUs or graphics processors could adequately provide.
What is needed is a technology that combines the speed and optimizations of a dedicated graphics processor with the flexibility and programmability of a CPU, allowing a virtually infinite range of visual effects at interactive frame rates. The first attempts at introducing this kind of technology were successful in increasing the number of effects available to developers, but still suffered from a number of limitations in terms of both versatility and performance. SMARTSHADER™ technology, developed by ATI, removes these limitations to free developers’ imaginations.
2. SMARTSHADER™ Technology
SMARTSHADER™ technology brings a new level of graphical effects to personal computers. It allows software developers to use techniques that, until recently, were only available to the creators of non-interactive computer generated movies and special effects, and bring them to interactive computer games, the world wide web, and digital content creation applications. ATI’s SMARTSHADER™ technology represents a new generation of programmable, hardware-accelerated graphics pipelines. The technology was developed with a keen eye toward maximizing efficiency and minimizing common performance bottlenecks, especially memory bandwidth. SMARTSHADER™ technology is an extension of the Vertex Shader and Pixel Shader programming languages first introduced by Microsoft in DirectX®8.0. While these shader languages were a good first attempt at bringing programmability to graphics hardware, experimentation revealed that they had a number of limitations that offered many opportunities for improvement.
Incorporating suggestions from leading 3D application developers and researchers, ATI worked closely with Microsoft to improve the flexibility, efficiency, and usability of the DirectX® 8.0 shader languages. The results are being made available to developers for the first time with the release of DirectX® 8.1, which reveals the full capabilities of SMARTSHADER™ technology. For developers that prefer to work with OpenGL®, the full SMARTSHADER™ feature set is also accessible using custom extensions provided by AT.
The key improvements offered by ATI’s SMARTSHADER™ technology over existing hardware vertex and pixel shader implementations are:
• Support for up to six textures in a single rendering pass, allowing more complex effects to be achieved without the heavy memory bandwidth requirements and severe performance impact of multi-pass rendering
• A simplified yet more powerful instruction set that lets developers design a much wider ranger of graphical effects with fewer operations
• Pixel shaders up to 22 instructions in length (compared to 12 instructions in DirectX®8.0 Pixel Shaders) allow more accurate simulation of the visual properties of materials
• Ability to perform mathematical operations on texture addresses as well as color values, enabling new types and combinations of lighting and texturing effects that were previously impossible.
The included demos are designed to run on three minimum graphics hardware platforms as outlined below.
2.1.2SmartShader™ HD Demos, Supported Graphics Products:
• Radeon® X800 XT Mac Edition 256MB (Retail Box, G5 only)
2.1.3 SmartShader™ 2.0 Demos, Supported Graphics Products:
• Radeon® X800 XT Mac Edition 256MB (Retail Box, G5 only)
• Radeon® 9700/9800 PRO/XT (All versions)
• Mobility™ Radeon® 9700 64/128MB* (PowerBook G4 15" and 17")
• Radeon® 9600 XT 128MB ( Powe
Mac G5 Standard/BTO)
3. PROGRAMMABLE SHADERS AND FIXED FUNCTION EFFECTS
Graphics APIs like DirectX®and OpenGL® have historically consisted of a set of fixed functions.By calling a function and passing it a set of parameters, a developer could cause things to be drawn on the screen in a certain way. Graphics processors could accelerate these functions using hard-wired circuitry, which can perform the calculations for fixed functions very quickly. As graphics hardware became more complex and powerful, new functions were added to the APIs to give developers access to new features and visual effects. This process worked reasonably well, but it caused a major gap to develop between the time new features were conceived and the time an end-user could see the result. For example, consider an imaginary new 3D graphics technique called Feature X. Before an end-user can experience thebenefits of Feature X, someone first has to design the algorithm, and perhaps publish a research paper on the subject. If Feature X looks promising, then a graphics chip designer has to think of an efficient way to implement support for it in hardware. Once the hardware design is near completion, someone has to implement support for Feature X in the major APIs to make it accessible to application developers. Finally, the developers have to determine how to use Feature X in their application, test it, optimize it, and ship a product with the feature enabled.