Ir ao conteúdo
  • Cadastre-se
Entre para seguir isso  

transparency antialising

Recommended Posts

Eu sei. sacanagem né? :P

New antialiasing modes: asymmetric answer

NVIDIA improved antialiasing modes, that were already available in NV4x, having added gamma correction as well as transparent antialiasing modes to the new generation of its video chips. We have been familiar with gamma correction during antialiasing since the ATI R300 already, but transparent antialiasing has attracted our full attention.

Available modes

The drivers allow to choose between one of the two transparent antialiasing modes: multisampling and supersampling. You can also disable the new modes completely (by default) to obtain antialiasing like in NV40-NV45.

It should be added that activating the new antialiasing modes is completely orthogonal to the AA level, chosen by an application or forced by a user in the control panel. The new modes are activated on all AA levels and improve all standard modes (from 2x to 8x). In fact, transparent antialiasing modes as such operate only together with multisample antialiasing (the reasons will be explained below), that is 2x or 4x. But 8x AA is a combined mode that uses multisampling together with supersampling. In this case transparent antialiasing is successfully applied to the multisampling part

Multisampling or supersampling?

As is well known, the main problem of MSAA is that it smoothes only edges of polygons. If a polygon is transparent or semitransparent (for example, glass or a wired fence in a game, where transparent pixels interlace with non-transparent ones), the polygon edges are not smoothed with the background image resulting in sharp edges. But then we don't have to calculate colors for each sample, we can do with just separate Z-values and the color is the same for all samples. The main problem (steps at polygon edges) is efficiently resolved by this method. But it does not cope with transparent polygons. The second method — SSAA (supersampling) honestly calculates all color values for all samples and we get the correct picture even through semi-transparent polygons with sharp borders between transparent and non-transparent areas. But in this case we noticeably lose performance — we have to execute much more pixel shaders — by as many as we have samples, 2 or 4 times.

What? Where? When?

Perhaps, we shall answer these questions in the reverse order.

When. In both cases special antialiasing modifications start working only in a special mode of DirectX / OpenGL applications with a frame buffer. Namely, alpha blending must be disabled and alpha testing must be enabled. In this mode the frame buffer stores only those pixels, which transparency is higher or lower than a given limit (specified by an application), and performs no color blending.

Surprise! This very mode is often used for fast rendering of foliage, grids, and other objects, consisting of a single polygon with a texture imitating a complex surface. These are the only similarities between the new antialiasing modes, all the rest is different.

To answer the other questions, let's examine special test images. All the images were taken in AA 4x mode and then zoomed 2x for your convenience. As you may already know, starting from NV40, all the four samples are obtained in the rotated grid MSAA mode.

At first, let's look at the borders of the reference image, obtained in standard MSAA mode.

<div class='bbimg'>%7Boption%7D' border='0' alt='Imagem postada pelo usuário' /></div>

Nearly horizontal lines on the left image, formed by triangle borders, are smoothed. We can clearly see three transition colors. The borders on the right image are formed by a texture with transparent areas resulting in pixel "steps".

On all the other images the borders are caused by semitransparent textures and the image is rendered in the above-mentioned special mode of operation with a frame buffer. Let's see how the new antialiasing modes will cope with the task.

<div class='bbimg'>%7Boption%7D' border='0' alt='Imagem postada pelo usuário' /></div>

<div class='bbimg'>%7Boption%7D' border='0' alt='Imagem postada pelo usuário' /></div>

<div class='bbimg'>%7Boption%7D' border='0' alt='Imagem postada pelo usuário' /></div>

Four different images are obtained for each antialiasing mode with the increased alpha-test limit, so that less semitransparent pixels are stored in a frame buffer.

<div class='bbimg'>%7Boption%7D' border='0' alt='Imagem postada pelo usuário' /></div>

This image shows two groups of zoomed texels with different alpha-test limits. The images imitate objects consisting of semitransparent textures, as if you come close to them in a game.

It's high time to draw conclusions.

Transparency Adaptive Multisampling

Having analyzed the images, we can assume that the transparency adaptive multisampling mode is a creative revision of the feature included into OpenGL specifications: "alpha to coverage" - GL_SAMPLE_ALPHA_TO_COVERAGE.

According to the OpenGL specs, in GL_SAMPLE_ALPHA_TO_COVERAGE mode only part of samples (only 4 samples in our case) are stored in a frame buffer depending on pixel transparency, the others are dropped. If the alpha-test limit is specified, all samples of the pixels, which don't comply with this limit, are dropped. The transparency adaptive multisampling mode acts slightly differently: a frame buffer also stores samples that don't comply with the alpha-test limit. As a result, we either get an image with blurred borders, which is a tad larger than initially planned by programmers or designers, or we can get a totally unexpected image as in case with the third and the fourth objects on the first image.

Transparency Adaptive Supersampling

In the transparency adaptive supersampling mode the chip obviously performs sterling supersampling for our test images. But it uses multisampling for non-transparent objects. We get ideal image quality, no more comments.

Bottom line

Both transparency antialiasing modes manage to remove aliasing "steps" in scenes with semitransparent textures.

Transparency adaptive multisampling tends to "sugar" the resulting image, losing no shader execution speed. It's up to you to decide whether you like it or not.

Transparency adaptive supersampling is a sterling supersampling, but only for the image parts, where it's really necessary. Thus, performance in this mode drops much less than in case of full screen supersampling. Congratulations to NVIDIA for this mode. But we didn't make out any advantages of this mode on FarCry screenshots in the previous part of the article.

We have entitled the article "Asymmetric answer" for a reason: while ATI uses perfected multisampling, and its CrossFire technology promises new combined modes supersampling+multisampling, NVIDIA takes another tack - it doesn't beef up antialiasing, but attacks weak points of the existing technologies.

By: Alexei Barkovoi ( - June 22, 2005

Só isso...


Compartilhar este post

Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta


Já tem uma conta? Faça o login.

Entrar agora
Entre para seguir isso  

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais