ATI´s demonstrationTalking about a different technique that offers a much wider range of effects is a good thing, but it’s best to prove it. No current game uses ATI´s R2VB and no demonstration was available until today. ATI has decided to go all out and release no less than 12 demos to justify the absence of vertex texturing.
This demonstration represents a map distortion similar to the one seen with NVIDIA with the additional possibility of morphing or progressive transformation.
This second demonstration represents water with geometrical distortion similar to the rendering in NVIDIA´s demo or in Pacific fighters. For this type of rendering two phases are necessary. Calculating the wave position in a texture (or several textures) and applying results in vertices (displacement mapping) and on pixels (normal mapping). Thanks to R2VB, it’s possible to entirely process rendering on the GPU by directly entering the data computed in the first part that comes out of pixel shaders in vertex shaders and to then go through with the second phase. Without R2VB, the first step has to be executed and sent to the system that will then re-inject it (for example, with textures usable in vertex texturing) for the other part of rendering.
The third demonstration is similar to NVIDIA´s demo too except that it is much simpler and consists in the rendering of a tissue that moves depending on the wind adding physics proprieties. Of course it adapts to the shape of an object when it encounters one and we´re also talking about physics effects here.
The idea here is to animate a high number of elements, in this case characters. R2VB would strongly facilitate animation as the required animation data can be injected directly in the vertices flow instead of being brought via an enormous amount of constants that complicates rendering and reduces performances (requiring many calls to the API and increasing CPU use). For a Radeon X1900 XTX, in this example, it is possible to animate more than 10,000 characters and still be at 30 fps!
This demonstration uses a technique of detection of particles collision and is also based on R2VB. Each snow flake rebounds in a very realistic way against the field according to several parameters (in our example they reacted more like ping pong balls than snow flakes). The map is also rendered thanks to R2VB and is entirely deformable. These are also physical effects like the ones processed by Havok FX.
Do you remember ATI´s Truform? This technique allowed the improvement of geometric details (or it made everything round when it wasn´t appropriately used), was introduced with the Radeon 8500 and quickly suppressed from the GPU and emulated via the CPU because of the lack of developer interest. It finally completely disappeared. This demonstration uses R2VB to identically process tessellation (N-Patches). The first screenshot represents the original model. The second one is with a level of tessellation of 9 (each triangle becomes 9 small triangles) and then of 64. This technique works perfectly in a dynamic environment for objects that are distorted. This demonstration however, is restricted to a static object.
Steps in the snow…It’s been a long-time since we’ve talked about this but we haven´t seen any convincing rendering yet. ATI just did it thanks to R2VB, which is capable of distorting the geometry of the ground to make steps and traces in the snow. This demonstration can be partly seen as physical effects.
This is the rendering of a very high level of particles thanks to R2VB, more than 780,000 at 60 FPS in our example. Each particle has a random lifetime, speed and direction. Gravity is applied to all components to make them move realistically. These are also partly physical effects.
3 other demonstrations are based on R2VB : shadow volumes rendering on the GPU, inverse kinematics and another water rendering.
ATI demonstrated that R2VB makes it possible to do the vertex texturing job and sometimes even more with 12 demonstrations that are varied and often lean towards physical effects. Of course it isn´t because NVIDIA hasn´t released demonstrations for all of these effects that the GeForce isn’t able to process them. R2VB could maybe equally work with the GeForce as with the Radeon. But because of the fact that there are no games that use it and that it’s not included in DirectX specification (whereas vertex texturing is), it’s obvious that it wouldn´t be in NVIDIA´s strategic interest to implement R2VB.
In the end, if these different rendering approaches made possible thanks to the R2VB are very interesting, its introduction came a bit late.
We actually find it unfortunate that ATI waited so long, to have to justify the absence of vertex texturing, to implement it and to talk about it as its possibilities seem numberous. If R2VB had been released with the Radeon 9700, we bet that it would be used in games today. Will future games use R2VB? Our crystal ball tells us that it is probably too late for this generation of games (DirectX 9s) to be interested in it, except maybe for a few exceptions. It could however be an interesting fallback for current GPUs with some of the new DirectX 10 rendering techniques that will initially only work with DirectX 10 GPUs.