184 |
seems to be the more popular alternative. If full-screen supersampling |
seems to be the more popular alternative. If full-screen supersampling |
185 |
is present, it does increase texture filtering quality significantly; see Fig.~\ref{figallpfss}. |
is present, it does increase texture filtering quality significantly; see Fig.~\ref{figallpfss}. |
186 |
|
|
187 |
It is also possible to adapt the approach given in \cite{olano01vertexbasedaniso} |
It is also possible to adapt the approach |
188 |
for anisotropic filtering using unextended OpenGL to supersampling by |
to anisotropic filtering using unextended OpenGL |
189 |
However, this approach does significantly restrict the OpenGL texture environment |
given in \cite{olano01vertexbasedaniso} |
190 |
and blend modes available unless the hardware supports a sufficient number of texture |
to supersampling by adjusting the texture coordinates in screen space. |
191 |
accesses to accomplish the complete texturing operation in one pass (e.g., 4 for 2x2 supersampling). |
However, this approach does restrict the OpenGL texture environment |
192 |
Also, the vertex-based implementation requires computation of the derivatives of the texture coordinates |
and blend modes available unless the hardware supports enough texture |
193 |
for each vertex, which may require considerable changes to code when applying this |
accesses to accomplish the complete operation in one pass (e.g., 4 for 2x2 supersampling). |
194 |
method to code that has been using the usual filtering primitives of the hardware. |
Also, the vertex-based approach requires computation of the derivatives of the texture coordinates |
195 |
|
for each vertex, which in some situations would require rendering separate triangles |
196 |
|
instead of for example triangle strips and thus |
197 |
|
considerable changes to existing code. |
198 |
|
|
199 |
In systems supporting the calculation of derivatives on the fragment level |
In systems supporting the calculation of derivatives on the fragment level |
200 |
(via, e.g., the OpenGL extensions \verb+GL_NV_fragment_program+ and \verb+GL_ARB_fragment_shader+) |
(via, e.g., the OpenGL extensions \verb+GL_NV_fragment_program+ and \verb+GL_ARB_fragment_shader+) |
201 |
the supersampling can be implemented entirely in the fragment program, with no changes |
the supersampling can be implemented entirely in the fragment program, with no changes |