The fact of representing the reality of a three-dimensional world in a two-dimensional space has its limits, not only because of the limited angle of view, but also because a series of perspective aberrations appear. The solution to the problem would be to have a graphics system designed for a virtual reality headset and not one designed for a conventional, poorly raised screen. However, we will focus on the problem of textures
What is the problem with oblique textures?
One of the visual limitations of current games, as long as they are three-dimensional polygonal scenes, concerns the textures of objects placed at certain viewing angles relative to the camera. In many cases, they lose their definition and even end up being seen with little definition or out of focus. Which greatly tarnishes the visual aspect of the games.
Of course, we must start from the fact that the textures are a 2D image that is mapped pixel by pixel in the fragments, which are nothing more than the polygons that make up each of the elements of the scene transferred in a Cartesian space. in two dimensions. The problem occurs when the object is at an oblique angle to the camera, then the texture filtering looks really bad, as it even blurs the details completely. However, this has a very simple explanation.
Why does it happen?
Let’s imagine for a moment a 3D scene that represents a wall with a completely smooth color and a painting in the center. If we look at this box head-on, then we’ll have a 1:1 pixel, box, and texture mapping, and so it will look correct. On the other hand, if we rotate the camera and with it the angle, we find that this relationship is completely broken. The pixels are no longer square, but have become longer and thinner at the same time. That is, anisotropy occurred and therefore some characteristics changed with viewing angle.
For example, we can see that an object that was 256 x 256 pixels from the front, in an oblique position, has fewer pixels. So in the end it ends up generating a texture with less information and therefore resolution. That is to say that we are really looking at an object with a much lower definition because there are fewer information points and if we add to this the interpolation of the filtering of the textures, well we can already imagine what’s wrong with oblique textures.
Graphics card hardware is definitely limited
In each of the GPU cores there is a texture unit, what it does is take 4 adjacent pixels and apply an interpolation algorithm called bilinear filtering, which can be used to apply other more complex types as anisotropic. . Features that developers don’t have to program into their games because they’re automated by these fixed functional units.
To avoid the problem of oblique angles and not having to calculate the same texture at a lower resolution, these versions are loaded in memory. Which are created by the artists when creating the game. Well, these are not only used for textures at a distance, but for calculating textures at oblique angles, although not with all the precision in the world and therefore limited to near objects, but this avoids the problem regarding the distance that can be seen from distant objects.
The ideal would be to have a texture of each object according to its angle of view in memory, but this would not only be a titanic task for the artists, but would require multiplying by 90 the amount of memory, since it would require a version for each degree of camera view. Of course, enabling anisotropy is free and requires no lines of code, however, there is a much better and more advanced solution.
The solution to oblique textures is RIP mapping, but
RIP mapping is nothing more or less than the definitive solution to the oblique texture display problem and is therefore a more advanced solution to the current anisotropic filtering in games. If applied in terms of hardware, the visual problem would completely disappear, however, there are reasons why it has not yet been implemented and they have to do not only with computing costs, but also with band bandwidth, which can reach up to 4 times higher.
If today’s graphics cards are already limited in terms of VRAM bandwidth and you need to load textures from each core’s internal cache to get high enough throughput, then imagine using RIP mapping. And no, that’s not a potential limitation. Let’s not forget that we have reached the point where it is more expensive to move information than to calculate it, and this is one of the clearest examples. There doesn’t seem to be any intention of fixing this problem anytime soon unless they find a solution via AI. Which is a shame, because it’s one of the visual issues that most tarnishes the gaming experience graphically.
Table of Contents