[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gzz-commits] gzz/Documentation/Manuscripts/Paper paper.tex
From: |
Tuomas J. Lukka |
Subject: |
[Gzz-commits] gzz/Documentation/Manuscripts/Paper paper.tex |
Date: |
Fri, 29 Nov 2002 07:01:39 -0500 |
CVSROOT: /cvsroot/gzz
Module name: gzz
Changes by: Tuomas J. Lukka <address@hidden> 02/11/29 07:01:39
Modified files:
Documentation/Manuscripts/Paper: paper.tex
Log message:
More editing
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/Documentation/Manuscripts/Paper/paper.tex.diff?tr1=1.96&tr2=1.97&r1=text&r2=text
Patches:
Index: gzz/Documentation/Manuscripts/Paper/paper.tex
diff -u gzz/Documentation/Manuscripts/Paper/paper.tex:1.96
gzz/Documentation/Manuscripts/Paper/paper.tex:1.97
--- gzz/Documentation/Manuscripts/Paper/paper.tex:1.96 Fri Nov 29 05:50:54 2002
+++ gzz/Documentation/Manuscripts/Paper/paper.tex Fri Nov 29 07:01:39 2002
@@ -470,6 +470,12 @@
procedural geometry.
% XXX
+The main components, corresponding to the extended OpenGL pipelines
+are shown in Fig.~\ref{figpipeline}.
+
+\begin{figure}
+\caption{\label{figpipeline}The components of our hardware-accelerated
implementation.}
+\end{figure}
%Performance: zoomability, memory, speed
@@ -664,11 +670,33 @@
w.r.t.~the repeating unit. These are also randomly chosen
from an ad hoc distribution.
+\subsection{Texture shading}
+
+On the NV25 architecture,
+the texture accesses can be customized further by the use of texture
+shading: the texture coordinates in a texture access can be made
+to depend on the result of a previous texture access.
+This can create a large variety of shapes, as seen already
+in Perlin's work\cite{perlin-noise-intro}.
+So far, we have only used offset textures with random
+offset matrices, but even they
+do improve the quality of the output.
+The textures used for offsetting are the same as the
+basic textures, but loaded as higher precision two-component HILO textures.
+
+
\subsection{Register combiners}
-Register combiners are used for fusing together the values read
-from the basis textures and computing the fragment output color
-using the palette chosen for the background.
+After the texture accesses, we need to convert
+the 3- and 4-vectors obtained from the basis textures and
+the palette color values into the final fragment color.
+The basic OpenGL texture environment stage is somewhat inadequate
+for this, so we use the NVIDIA register combiners extension
+instead.
+
+% Register combiners are used for fusing together the values read
+% from the basis textures and computing the fragment output color
+% using the palette chosen for the background.
NVIDIA register combiners replace the standard OpenGL
texture environment, color sum, and fog application with a
@@ -682,12 +710,14 @@
Our need for the combiners is rather unconventional:
we want to lose most of the original shapes of the basis textures
+(again the ``saving recognitive power'' argument)
and create new, different shapes
-from the interaction of the basis texture inputs.
-Additionlly, we want to create more variation by varying
-the parameters of the combiner code based on the seed number.
+from the interaction of the basis texture values and
+the floating-point combiner parameters chosen randomly
+from the seed number.
-We use dot products of texture values and random constant vectors
+We use dot products of texture values with each other
+and with random constant vectors
to extract features from the textures.
% XXX: either (texture \cdot texture) or (texture \cdot constant)
Because the numeric range of all register values is $[-1,1]$,
@@ -697,17 +727,19 @@
results before clamping to the register range to sharpen
the gradients and to diminish the area from which the features
of a single basis texture are extracted.
+For an example of how new shapes are created, see Fig.~\ref{fig-regcomb}.
-New shapes can be created by computing polynomials of the real values
-extracted from the basis textures.
-For example, the zero value contour of a real value can be obtained
-by squaring the value, scaling up, and then clamping to $1$.
-This produces nice band-like shapes (see Fig.~\ref{fig-regcomb}).
+% New shapes can be created by computing polynomials of the real values
+% extracted from the basis textures.
+% For example, the zero value contour of a real value can be obtained
+% by squaring the value, scaling up, and then clamping to $1$.
+% This produces nice band-like shapes (see Fig.~\ref{fig-regcomb}).
Finally, the computed real values are used for interpolating between
-the colors chosen for the backround. Typically, because of the scaling
-and clamping, the interpolation values have modes at $0$ and $1$
-and a transition band between the modes.
+the colors chosen for the backround.
+% Typically, because of the scaling
+% and clamping, the interpolation values have modes at $0$ and $1$
+% and a transition band between the modes.
% XXX: the amount of scaling determines the sharpness of the edges
%Because of the unconventional uses, the limitations of the
@@ -761,9 +793,9 @@
Because there are only a few register combiner computation
stages on NV10, a single rendering pass cannot
-produce a very full background.
+produce a satisfactory background.
A simple way of increasing the visual features of the
-backrounds is to use multiple passes.
+backgrounds is to use multiple passes.
The register combiners can be used to compute an alpha
value in the same way as the color interpolation values
@@ -775,33 +807,25 @@
the same repeating unit(s) to make them blend into a
single perceived layer.
-We use 3 passes on NV10 and 2 passes on NV25.
-
-\subsection{Texture shading}
-
-On higher end hardware, the diversity of the shapes can be
-increased with offset textures.
-Another set of basis textures are randomly chosen for
-offsetting the texture coordinates of the first set of textures.
-To further increase variation, the offset values are multiplied
-by a random matrix.
-The textures used for offsetting are similar to the
-basic textures, but loaded as higher precision two-component HILO textures.
-
-%Offset textures used for creating new shapes.
-
-XXX
+Currently, we use 3 passes on the NV10 and 2 passes on the NV25.
\section{Example application}
\begin{figure*}
\centering
-\fbox{\vbox{\vskip 5in}}
+\fbox{\vbox{\vskip 8in}}
\caption{
\label{fig-identity-via-textures}
-a) different documents with similar appearance and a focus+context view
-showing relations,
-b) the same documents and the same view with identity visualized with unique
backgrounds. If viewing this document on a screen, make sure the your gamma is
properly set; the text {\bf is} readable if the gamma is correct but the
textures are too dark if not.
+Two different views of a structure of PDF documents viewed in a focus+context
view.
+The view shows relationships between specific points in the documents,
+similar to Nelson's work XXX.
+Each document has an unique background, which makes it easy to see that the
+fragment of a document on the left side of the bottom view is the document
fully seen
+in the top view; without unique backgrounds, this would be relatively difficult
+and would require traversing the link.
+If viewing this document on a screen,
+make sure the your gamma is properly set; the text {\bf is} readable
+if the gamma is correct but the textures are too dark if not.
}
\end{figure*}
@@ -837,8 +861,8 @@
So far, we have concentrated mostly on low-end hardware, and
have not even tapped the full potential of the NV25 architecture.
-We are currently working on implementing
-similar algorithms on ATI hardware, due to their recent release
+We are working on implementing
+similar algorithms on ATI's extensions, due to their recent release
of a Linux driver.
The new graphics chips, ATI R300 and NVIDIA NV30 support
a great deal more of procedural texturing and it will
@@ -846,6 +870,10 @@
The algorithms can be further developed: simulating lighting and
a rough surface could produce good results.
+ARB fragment program
+
+Usability
+
%
% Each basis texture is repeating,
% but by choosing the texture coordinates
@@ -862,6 +890,9 @@
to use repeating units for non-repeating backgrounds --- but use more than one,
which are not rationally related.
+Nonlinear regcomb leads to aliasing: .... modeling textures mathematically ,
...
+
+2 passes on NV25 too much; should be possible with 1
\section{MPEG Animation}
[not to be included in final ms.]
- [Gzz-commits] gzz/Documentation/Manuscripts/Paper paper.tex, (continued)
- [Gzz-commits] gzz/Documentation/Manuscripts/Paper paper.tex, Tuomas J. Lukka, 2002/11/28
- [Gzz-commits] gzz/Documentation/Manuscripts/Paper paper.tex, Tuomas J. Lukka, 2002/11/29
- [Gzz-commits] gzz/Documentation/Manuscripts/Paper paper.tex, Tuomas J. Lukka, 2002/11/29
- [Gzz-commits] gzz/Documentation/Manuscripts/Paper paper.tex, Tuomas J. Lukka, 2002/11/29
- [Gzz-commits] gzz/Documentation/Manuscripts/Paper paper.tex, Tuomas J. Lukka, 2002/11/29
- [Gzz-commits] gzz/Documentation/Manuscripts/Paper paper.tex, Tuomas J. Lukka, 2002/11/29
- [Gzz-commits] gzz/Documentation/Manuscripts/Paper paper.tex, Tuomas J. Lukka, 2002/11/29
- [Gzz-commits] gzz/Documentation/Manuscripts/Paper paper.tex, Tuomas J. Lukka, 2002/11/29
- [Gzz-commits] gzz/Documentation/Manuscripts/Paper paper.tex, Tuomas J. Lukka, 2002/11/29
- [Gzz-commits] gzz/Documentation/Manuscripts/Paper paper.tex, Tuomas J. Lukka, 2002/11/29
- [Gzz-commits] gzz/Documentation/Manuscripts/Paper paper.tex,
Tuomas J. Lukka <=
- [Gzz-commits] gzz/Documentation/Manuscripts/Paper paper.tex, Tuomas J. Lukka, 2002/11/29
- [Gzz-commits] gzz/Documentation/Manuscripts/Paper paper.tex, Tuomas J. Lukka, 2002/11/29
- [Gzz-commits] gzz/Documentation/Manuscripts/Paper paper.tex, Janne V. Kujala, 2002/11/29