Preview of Matrox Parhelia: DirectX 9 not quite fulfilled

Preview of Matrox Parhelia: DirectX 9 not quite fulfilled

DirectX 9

Higher precision

As already mentioned, values ​​with floating point accuracy are essential for DirectX9 compliance, i.e. complete compliance with the specification, since even 32-bit rendering seems to be slowly but surely reaching its limits. This is not so easy to see with normal level textures, but various effects made possible by pixel shaders, especially in the lighting area, where many individual values ​​overlap and roundings have to be made again and again, already show initial restrictions. This happens due to the rounding errors, which increase in power, which become more obvious the more often these roundings are necessary, i.e. the more texture layers are superimposed.

DirectX 8 already demanded the ability to process 8 textures per surface and John Carmack, for example, chief programmer at id-Software, is already planning with up to eleven texture layers in his new Doom3 project.

For this reason, DirectX 9 requires an internal rendering accuracy of 40 bits, i.e. 10 bits for each channel (RGBA, red, green, blue and transparency), which results in a quadrupling of the color space per channel. Even though this accuracy is only required internally,This naturally creates an enormous additional load for both the rendering unit and the memory interface.

Displacement mapping

Displacement mapping is a technology developed by Matrox and licensed by Microsoft for use in DirectX9. It is still unclear whether this is a must-have or an optional feature.

Displacement Mapping

By modifying the triangular grid in relation to the corresponding texture value of a so-called displacement map, in contrast to bump mapping, which could be used to achieve a similar effect purely visually, the Geometry changes, which allows a previously unknown level of realism. However, as can be seen in the example above, additional geometry is absolutely necessary in order not to simply get a rough, unrecognizable something rendered. The magic word in this case is 'N-Patches', which have been around for more than 9 months in the form of the 'TruForm' feature in ATi's Radeon8500 cards . This feature is now also brought to new life with Matrox.

A normal triangular framework is sent to the chip and refined there by means of tessellation (i.e. the division into several small polygons) so that the displacement map can be used without causing ugly artifacts because there is not enough detailed geometry.

While displacement mapping would be responsible for the rough preparatory work, the result of this geometry step can of course be bump-mapped afterwards (or corresponding pixel shader effects) edit pixel-precisely and thus improve the level of detail again without placing the entire load on just one part of the chip, intelligentSo division of labor. As you can see on the left picture, the level of detail of a landscape, for example, can be extremely high without the rest of the system with the transfer of the huge amounts of polygons or vertex shaders - Load instructions as it would be necessary with conventional methods.

The problem with the whole thing is that displacement mapping is not very useful without prior use of n-patch tessellation and may not be possible at all. In this case, too, we have to wait for appropriately adapted programs that can take advantage of this genuinely ingenious feature.

In larger outdoor scenarios, however, a chip like the Parhelia would also be clearly overwhelmed if it had the degree of which is necessary for the immediate environment in order to achieve a realistic representation, would also have to be produced for a virtual distance of 500m. Especially with a landscape that is as varied (in multiple senses) as a jagged gorge that would be downright fatal for performance.

So a very simple trick is used, as it has been for normal textures for a long time is used: Mip-Mapping. The displacement map is also loaded into the local RAM in different degrees of detail and a suitable resolution is selected depending on the distance, since the ability to perceive details decreases with increasing distance.

So it is possible to get close to To use a very finely resolved geometry for the viewer and to dynamically adjust the more distant parts of the viewing area in the level of detail while the viewer moves towards or away from it.


So one suggests two birds with oneFlap, because up to now the programmer always had to put a lot of effort into ensuring a functioning and meaningful LOD system (level of detail).


On the whole, displacement mapping can be used very nicely and above all with relative Little programming effort, both implementing a well-functioning level-of-detail system and generating extremely detailed geometry without filling all of the computer's bus systems with polygon or texture data.


On the next page: Displacement Mapping II