8 |
\def\censor#1{{\sffamily\tiny ${}^{\left<\hbox{censored}\,\right>}$}} |
\def\censor#1{{\sffamily\tiny ${}^{\left<\hbox{censored}\,\right>}$}} |
9 |
|
|
10 |
\begin{document} |
\begin{document} |
11 |
\title{Representing Identity in Focus+Context Views through |
\title{Representing Identity |
12 |
Hardware-Accelerated Unique Backgrounds} |
%in Focus+Context Views |
13 |
|
%Hardware-Accelerated |
14 |
|
by Unique Backgrounds} |
15 |
|
|
16 |
\def\aw{8cm} |
\def\aw{8cm} |
17 |
\author{ |
\author{ |
41 |
for assisting user orientation |
for assisting user orientation |
42 |
in navigating hyperstructures using Focus+Context views. |
in navigating hyperstructures using Focus+Context views. |
43 |
% |
% |
44 |
We can rapidly generate a texture for any document the user visits, |
%We can rapidly generate a texture for any document the user visits, |
45 |
and the user will be able to learn the textures of the |
%and the user will be able to learn the textures of the |
46 |
most often visited |
%most often visited |
47 |
documents, as per Zipf's law. |
%documents, as per Zipf's law. |
48 |
% |
% |
49 |
In Focus+Context views, the textures can act as visual cues in the context |
%In Focus+Context views, the textures can act as visual cues in the context |
50 |
(information foraging). |
%(information foraging). |
51 |
|
|
52 |
We motivate general rules about designing such textures through |
We motivate general rules about designing reconizable backgrounds through |
53 |
a rough, qualitative model of visual perception: to be recognizable, |
a rough, qualitative model of visual perception: to be reconizable, |
54 |
the texture should produce a random feature vector on the cortex |
the texture should produce a random feature vector on the cortex |
55 |
{\bf after} visual feature extraction. |
{\bf after} visual feature extraction. |
56 |
|
|
57 |
We have designed a hardware-accelerated implementation on the NV10 and NV20 |
We have designed a hardware-accelerated implementation on the NV10 and NV20 |
58 |
of unique textures. |
of unique backgrounds. |
59 |
The implementation works by combining a small set of basis textures |
The implementation works by combining a small set of basis textures |
60 |
and perceptually chosen colors |
and perceptually chosen colors |
61 |
on the GPU. |
on the GPU. |
62 |
|
% XXX: perceptually? |
63 |
|
|
64 |
We show an example user interface for browsing linked PDF documents |
We show an example user interface for browsing linked PDF documents |
65 |
in a focus+context view using unique textures. |
in a focus+context view using unique backgrounds. |
66 |
|
|
67 |
% READABILITY |
% READABILITY |
68 |
|
|
109 |
\end{enumerate} |
\end{enumerate} |
110 |
|
|
111 |
In this article, we focus on the latter application, and on |
In this article, we focus on the latter application, and on |
112 |
giving the user navigational cues in the form of textures which |
giving the user navigational cues in the form of backgrounds which |
113 |
give all nodes their own, unique appearance. |
give all nodes their own, unique appearance. |
114 |
|
|
115 |
% XXX f+c refs, write |
% XXX f+c refs, write |
207 |
% other textures as a starting point (see e.g. \cite{heeger95pyramid}) |
% other textures as a starting point (see e.g. \cite{heeger95pyramid}) |
208 |
|
|
209 |
|
|
210 |
\section{Unique Textures} |
\section{Unique Backgrounds} |
211 |
|
|
212 |
Features orthogonal to human perception (e.g.~color, direction of fastest luminance change) |
Features orthogonal to human perception (e.g.~color, direction of fastest luminance change) |
213 |
should be independently random, and features not orthogonal (... and ...)... |
should be independently random, and features not orthogonal (... and ...)... |
221 |
|
|
222 |
It is easier to navigate if different textures are used |
It is easier to navigate if different textures are used |
223 |
as the backgrounds of different documents. |
as the backgrounds of different documents. |
224 |
Unique textures provide instant cues on the |
Unique backgrounds provide instant cues on the |
225 |
identity of the focused and connected documents and |
identity of the focused and connected documents and |
226 |
a more prominent target for tracking movement between views. |
a more prominent target for tracking movement between views. |
227 |
|
|
228 |
|
% XXX: |
229 |
|
Additionally, black text should have good contrast with the background. |
230 |
|
|
231 |
The identity is used as a seed for randomly choosing |
The identity is used as a seed for randomly choosing |
232 |
an easily distinguishable unique texture from a |
an easily distinguishable unique background from a |
233 |
distribution based on a qualitative model of visual perception. |
distribution based on a qualitative model of visual perception. |
234 |
Additionally, black text should have good contrast with the background. |
%providing an infinite source of unique backgrounds. |
|
%providing an infinite source of unique textures. |
|
235 |
%generating textures based on seed numbers [identity] |
%generating textures based on seed numbers [identity] |
236 |
The basic assumption of the model is that an image |
The basic assumption of the model is that an image |
237 |
is perceived as a set of features. |
is perceived as a set of features. |
256 |
such as local and global shapes and colors, form a \emph{feature vector}, |
such as local and global shapes and colors, form a \emph{feature vector}, |
257 |
which facilitates recognition and memorization of images. |
which facilitates recognition and memorization of images. |
258 |
|
|
259 |
For the textures to be distinguishable, they should produce |
For the backgrounds to be distinguishable, they should produce |
260 |
distinct, random feature vectors in brain. |
distinct, random feature vectors in brain. |
261 |
In a sense, the perception model should invert the |
In a sense, the perception model should invert the |
262 |
visual processing to produce a unique texture from |
visual processing to produce a unique background from |
263 |
a random vector seeded by the identity (see Fig.~\ref{fig-perceptual}). |
a random vector seeded by the identity (see Fig.~\ref{fig-perceptual}). |
264 |
%We call this the principle of saving bits. |
%We call this the principle of saving bits. |
265 |
|
|
289 |
bits would be wasted. |
bits would be wasted. |
290 |
|
|
291 |
To understand why it is possible to learn to discriminate particular |
To understand why it is possible to learn to discriminate particular |
292 |
textures easily, consider the task of learning {\em one} texture. |
backgrounds easily, consider the task of learning {\em one} background texture. |
293 |
This is a two-class problem. |
This is a two-class problem. |
294 |
Extensive literature... |
Extensive literature... |
295 |
Here, |
Here, |
315 |
\fbox{\vbox{\vskip 5in}} |
\fbox{\vbox{\vskip 5in}} |
316 |
\caption{ |
\caption{ |
317 |
\label{fig-examples} |
\label{fig-examples} |
318 |
A number of unique textures generated by our system. |
A number of unique backgrounds generated by our system. |
319 |
This view can be rendered, without pre-rendering the textures, |
This view can be rendered, without pre-rendering the textures, |
320 |
in XXX ms on a GeForce4 ... |
in XXX ms on a GeForce4 ... |
321 |
} |
} |
323 |
|
|
324 |
\section{Hardware-accelerated implementation} |
\section{Hardware-accelerated implementation} |
325 |
|
|
326 |
It is important that the texture can be zoomed to different resolutions. |
It is important that the background can be zoomed to different resolutions. |
327 |
However, we are currently |
However, we are currently |
328 |
not trying to attain infinite zoomability\cite{furnas00infinity}, |
not trying to attain infinite zoomability\cite{furnas00infinity}, |
329 |
only the range of zooming that would be reasonable for a single PDF document. |
only the range of zooming that would be reasonable for a single PDF document. |
405 |
%% Doesn't really need to be said here; it's what people |
%% Doesn't really need to be said here; it's what people |
406 |
%% will naturally assume. |
%% will naturally assume. |
407 |
|
|
408 |
To have compatible colors, we choose the hues from a distribution |
To produce compatible colors, we choose the hues from a distribution |
409 |
% To have: huonoa englantia |
% To have: huonoa englantia |
410 |
concentrated on one random hue with a random variance and |
concentrated on one random hue with a random variance and |
411 |
saturations chosen from an ad hoc distribution. |
saturations chosen from an ad hoc distribution. |
485 |
|
|
486 |
\subsection{Texture coordinates} |
\subsection{Texture coordinates} |
487 |
|
|
488 |
Texture coordinates define the mapping of the basis textures to the paper. |
Texture coordinates define the mapping of the basis textures to the background. |
489 |
Each basis texture is repeating, but by choosing the texture coordinates |
Each basis texture is repeating, but by choosing the texture coordinates |
490 |
appropriately we can make the final paper repeating or not. |
appropriately we can make the final background repeating or not. |
491 |
If the paper will be used only at relatively few magnifications, it is |
If the paper will be used only at relatively few magnifications, it is |
492 |
useful to use a repeating paper because of saving bits. |
useful to use a repeating paper because of saving bits. |
493 |
On the other hand, for user interfaces where zooming at widely different |
On the other hand, for user interfaces where zooming at widely different |
494 |
scales is desirable, a non-repeating paper can be better. |
scales is desirable, a non-repeating paper can be better. |
495 |
|
|
496 |
In order to create more interesting textures, it can also be useful |
In order to create more interesting backgrounds, it can also be useful |
497 |
to use repeating units for non-repeating papers --- but use more than one, |
to use repeating units for non-repeating backgrounds --- but use more than one, |
498 |
which are not rationally related. |
which are not rationally related. |
499 |
|
|
500 |
The choice of the repeating unit fixes an absolute scale to the paper. |
The choice of the repeating unit fixes an absolute scale to the paper. |
503 |
|
|
504 |
After a repeating unit is fixed, there is still |
After a repeating unit is fixed, there is still |
505 |
freedom in choosing |
freedom in choosing |
506 |
textures coordinates for each texture |
texture coordinates for each texture |
507 |
unit: any mapping of the texture is fine, as long as it repeats |
unit: any mapping of the texture is fine, as long as it repeats |
508 |
with the selected repeating unit. |
with the selected repeating unit. |
509 |
|
|
511 |
|
|
512 |
Register combiners are used for fusing together the values read |
Register combiners are used for fusing together the values read |
513 |
from the basis textures and computing the fragment output color |
from the basis textures and computing the fragment output color |
514 |
using the palette chosen for the texture. |
using the palette chosen for the background. |
515 |
|
|
516 |
NVIDIA register combiners subsume the standard OpenGL |
NVIDIA register combiners subsume the standard OpenGL |
517 |
texture environment, color sum, and fog application with a |
texture environment, color sum, and fog application with a |
518 |
more general programmable model. |
more general programmable model. |
519 |
% Is this sentence directly copied from somewhere? |
% Is this sentence directly copied from somewhere? |
520 |
The possible computations are designed for the |
The possible computations are designed for the |
521 |
needs of ordinary operations such as bump map lighting and color blending. |
needs of common operations such as bump map lighting and color blending. |
|
% ordinary --> common |
|
522 |
The primitive operations are dot product ($A \cdot B$), componentwise |
The primitive operations are dot product ($A \cdot B$), componentwise |
523 |
multiplication ($AB$), and ``blending'' ($AB + CD$). |
multiplication ($AB$), and ``blending'' ($AB + CD$). |
524 |
There is also a small set of simple input and output mappings |
There is also a small set of simple input and output mappings |
543 |
This produces nice band-like shapes. |
This produces nice band-like shapes. |
544 |
|
|
545 |
Finally, the computed real values are used for interpolating between |
Finally, the computed real values are used for interpolating between |
546 |
the colors chosed for the texture. Typically, because of the scaling |
the colors chosen for the backround. Typically, because of the scaling |
547 |
and clamping, the interpolation values have modes at $0$ and $1$ |
and clamping, the interpolation values have modes at $0$ and $1$ |
548 |
and a transition band between the modes. |
and a transition band between the modes. |
549 |
|
|
565 |
\subsection{Multi-pass} |
\subsection{Multi-pass} |
566 |
|
|
567 |
A simple way of increasing the visual features of the |
A simple way of increasing the visual features of the |
568 |
textures is to use multiple passes. |
backrounds is to use multiple passes. |
569 |
The register combiners can be used to compute an alpha |
The register combiners can be used to compute an alpha |
570 |
value in the same way as the color interpolation values |
value in the same way as the color interpolation values |
571 |
and use it for blending shapes over the texture drawn in the first pass. |
and use it for blending shapes over the background drawn in the first pass. |
572 |
This allows using features of different register combiner codes |
This allows using features of different register combiner codes |
573 |
in one texture. |
in one background. |
574 |
|
|
575 |
All the passes are assigned the same set of colors and |
All the passes are assigned the same set of colors and |
576 |
the same base repeating unit to make them blend into a |
the same base repeating unit to make them blend into a |
595 |
\label{fig-identity-via-textures} |
\label{fig-identity-via-textures} |
596 |
a) different documents with similar appearance and a focus+context view |
a) different documents with similar appearance and a focus+context view |
597 |
showing relations, |
showing relations, |
598 |
b) the same documents and the same view with identity visualized with unique textures |
b) the same documents and the same view with identity visualized with unique backgrounds |
599 |
} |
} |
600 |
\end{figure*} |
\end{figure*} |
601 |
|
|
602 |
\section{Software availability} |
\section{Software availability} |
603 |
|
|
604 |
An implementation of the unique textures is available at |
An implementation of the unique backgrounds is available at |
605 |
\censor{\url{http://gzz.info} as part of |
\censor{\url{http://gzz.info} as part of |
606 |
the Gzz-prototype% |
the Gzz-prototype% |
607 |
}, under the GPL license. |
}, under the GPL license. |
608 |
|
|
609 |
\section{Conclusions} |
\section{Conclusions} |
610 |
|
|
611 |
We have introduced procedurally generated unique textures |
We have introduced procedurally generated unique backgrounds |
612 |
as a way of visualizing the identity of data. |
as a way of visualizing the identity of data. |
613 |
While the method is general and |
While the method is general and |
614 |
applicable whenever data has identity, |
applicable whenever data has identity, |
617 |
it can enhance user's orientation and sense of location. |
it can enhance user's orientation and sense of location. |
618 |
|
|
619 |
Of course it can be argued, for example, that |
Of course it can be argued, for example, that |
620 |
the textures clutter the display |
the backgrounds clutter the display |
621 |
visually, making the user interface more confusing, |
visually, making the user interface more confusing, |
622 |
and reduce text readability.. |
and reduce text readability.. |
623 |
However, we have found that by tuning the color selection and the gamma |
However, we have found that by tuning the color selection and the gamma |