Foreword
As you know, currently held in Taiwan Computex – the worldwide exhibition of achievements of computer technology. If you regularly read our news, you probably already noticed that ATI has introduced a proprietary system for calculating physics. Estimated figures for the performance of the proposed solutions you already know:
Entry-level graphics … based on RV530 performs physics calculations "only" four times faster than the NVIDIA G70 and G71. And in the case of the R580 advantage grows to 15 times! Do not assume that a portion of unpleasant comparisons only got a California company. Claim that Radeon X1600 XT has a performance factor of 2 higher than the product of AGEIA. And when you consider that the cost of accelerator AGEIA twice, the odds X1600 XT is even more impressive. As for the X1900 XTX, then its performance is 9 times higher than AGEIA.
We do not dispute the authenticity of these figures, as well as to suggest otherwise. The time will come, you will be able to check all "own hands", then a verdict. Today, we pay more attention to other issues – what are the ATI approach to accelerate the calculation of "physics" way in which it is proposed to realize the advantages this brings a simple solution for the user. And also a little talk about the future – will address the theme DirectX10 – unified shader architecture.
ATI Physics
The name that we have made the calculation of physical effects of technology from ATI – conditionally, because officially, this technology has not yet released in the "deep waters", as shown at Computex demo is rather a declaration of intent.
Of course, games that support ATI Physics, is currently unavailable. All beauty, shown at the exhibition promises to officially announce closer to the New Year, as well as the first games that use this technology. But even now, the information provided is sufficient to understand the direction that moves the Canadian giant.
Where did "grow legs". The fact that any modern video processor is ideally suited for the simultaneous calculation of the mass of objects. This stems from the definition graphics accelerator and the tasks assigned to it. How to construct three-dimensional image graphics accelerator, you can read here. In simpler terms, the calculation of each frame is calculated once again a lot of pixels, and three-dimensional space, this problem reduces to a recalculation of the various matrices. In order for such work was done quickly and at the same time, graphics cards contain several parallel computational units, often referred to as pipelines. In the terminology of ATI – a Data Parallel Processor (CPU parallel processing). The figure below illustrates this process.
All these things are well known and nothing new was said here. It would seem – why fuss? And here is why. If we try to do the calculation of physical effects in relation to the normal schedule, we find that the calculation of "physics" is essentially the same way. The same operations are applied to a large number of objects and must be executed in parallel. And as for the interpretation of the physical meaning of the figures obtained, the video accelerator makes no difference whether that number the number of color in the palette, the coordinate point or value of the velocity / acceleration of a particle object. That is, we obtain the following scheme:
Apparently, the similarity of computational problems and pushed the ATI engineers to the idea that physics calculations can be performed on the accelerator rather than the special-calculator (AGEIA). For this was introduced a concept such as DPP Abstraction Layer – a layer of abstraction for parallel computing processor. (By this means the processor is GPU, not to be confused!). As a result, we find that the video processor, hidden behind DPP Abstraction Layer do not care what data is to grind, and he does it in the usual manner, without worrying about the physical meaning of the figures obtained, because it just deals with DPP Abstraction Layer, is associated with " physical "engine.
On the very first picture you see a system based on three X1900, two of which were united in CrossFire, and the third acted as an accelerator, "physics". In fact, the requirement of all three types of identity cards is optional. Because despite all the similarities of data processing, rendering and calculation of "physics" of the problem is different, and there is no need for the same cards for efficient load balancing. That is what is due to ATI, speaking of the asymmetric configurations, and even cites the example of a physical Radeon X1600 accelerator.
For ordinary users, in this case there is a big plus – if you upgrade and purchase of new powerful graphics card "old" Radeon can be left as an accelerator, "physics"! Of course, without limitation has not done, the "old" Radeon must be below the X1600 (for ATI Physics of technology at the moment). This is understandable, the calculation of physical effects of running shader GPU, which were significantly improved in the family of ATI Radeon X1x00, and X1300 performance may not be enough.
Now let's see what the physical effects offers us to take advantage of ATI. First of all, it is worth noting the fact that ATI uses the application programming interface (API) from the engine, Havok FX, and not widely advertised today AGEIA PhysX API. Format war – is always good. And for a simple user, and for the industry as a whole. The exact reason why ATI did not choose AGEIA PhysX API, we do not know. Maybe because the AGEIA PhysX API is a private development (and is now with her 3dfx Glide API?). In any case, a standard API for "physics" is not, but as often happens – who was the first "de facto", he is then "de jure". Will Havok FX API to become an industry standard – also unknown, but the potential of this engine is, if the game developers will use it intensively, who knows how it all turns. The assets of Havok is a very interesting development, and Havok FX for the most part "locked" in the calculation of the collision model of thousands of objects, with maximum use of the arsenal of Shader Model 3.0 and the power of modern graphics cards.
Of course, using the Havok FX API, "natural boosters" ATI's currently limited to the calculation of essentially only two effects – collision detection and rendering many small particles (smoke, fog, debris).
Here is the collision detection of objects:
Clarify the picture below in more detail.
In today's chart to calculate the interactions of objects of complex shape, they are often presented with their "dimensions" that is, to some parallelepiped in which the object is inscribed (upper line drawings). That is why the games can be seen, for example, the hero cuts the air in front of him (middle figure), rather than standing in front of a tree that must be cut on a plan (right figure). To prevent this from happening, for correct collision detection of objects offered to cover the desired object across the surface points and to calculate collisions for points on the boundary of objects, rather than the "size" (line drawings in the center). In this case, a collision will look much more accurate, but at the cost of increasing the load by calculating the points on the boundary of the object. At last, the lower figure shows that the calculation of "physics" should also take into account the behavior of objects after the collision (the values of velocity, acceleration, etc. after the impact).
Hence, it becomes clear that the more complex the object, the more points will have to "cover" the surface and recalculate each time the motion of the object, not to mention a possible "deformation". As for the effects of smoke and fog, in this case the boundary of the object (a particle of fog) may coincide with the point of describing his "size", but for realistic images need a huge number of particles, each of which is governed by the laws of physics and, ideally, flies its own trajectory. So, what accelerators do not invent, but there will always be, what they get "full." However, in this case is something ATI has in store.
To not needlessly expend computing power, the image is divided into segments, such as those they oppress, where there is a need to detect collisions (there are particles / objects), and those which do not have to calculate anything. The effectiveness of this approach depends on the size of the chosen cell. The smaller the cell, the more accurately we can determine the amount of work required (very similar to the technique of partitioning the image tiles, right?).
The method described above can be extended further, and significantly improve the "behavior" of objects in the case of deformation.
The figure you see the hanging curtain, which was then "taken up" for the middle. The method of calculating the strains in this case is to run "control" points not only on the surface of the object, but also within himself. That's what makes it possible to simulate how the curtain "flex" and "going to fold."
As you can see, the use of even a small amount of physical effects can significantly improve the realism of the drawn image.
Stress – the main task in creating a "natural accelerators" is not only to increase the number of generated frames per second, and more is to significantly improve the realism of the image produced and the behavior of objects.
DirectX 10
Windows Vista and DirectX 10 – perhaps even more innovations expected than the accelerator physics, but one does not seem to interfere. About how ATI is getting ready for Windows Vista and DirectX 10, we have already mentioned. But we will give DirectX 10 in terms of 3D-games? Pledges incredibly realistic lighting effects, detailed characters, beautiful water, smoke and fog, complex objects can be subjected to strain, and more. And to realize all this beauty will be using the unified shader architecture, which is expected to become a requirement in the near future.
Perhaps this is why, at the exhibition showing a prototype of its physics accelerator, ATI says so calmly – "New Year's Eve and see all." Before the release of Windows Vista has remained about six months, and a lot can still change. Therefore, and announcements of the next generation of chips (such as R600 and G80) are the industry leaders are also not in a hurry.
If we talk about the present, the unified shader architecture has managed to show themselves with a very good side. Ironically, the world's gaming consoles, not PCs. Yeah, I mean, Microsoft Xbox 360, the graphic "heart" which is a chip from ATI.
Here's what he said about this great guru of computer to create 3D-games John Carmack:
"The Xbox 360 is the most productive graphics development platform I have ever worked on – clean and powerful hardware that is well documented and easy to exploit, coupled with absolutely first rate development tools."
- John Carmack, id Software
(Xbox 360 is the most productive graphics platform on which I am still working. Friendly and powerful "iron", which is very well documented and easy to use, along with world-class development tools.)
It is possible that after such a "break" in the console, the unified shader architecture of the next generation of video cards violent color and bloom on the PC. Now fantasize. Who knows, maybe in the bowels of Microsoft vengeance are working on their own "physical" API? If Microsoft will introduce its own API for physics computation, it has the potential to quickly become the de facto standard. The successful future of AGEIA and Havok will be left only to guess (unless of course Microsoft none of them will not buy).
Summing up
Questions speed calculation of physical effects in 3D-games recently received more and more attention. The developers are creating their own APIs, "sharpened" graphics engines, used levels of abstraction and architectural delights. And when industry leaders such as ATI, take the case, the tale begins to seem distant future this tomorrow. It is amazing to realize that the evolutionary development of graphics cards can lead to a revolutionary leap forward in 3D-graphics.
But … anyway, everyone is waiting for "Vista", which will be released no earlier than January. We'll have to wait for us. And in light of the foregoing, we advise you not to throw until your radeonchiki, may still be useful