30 |
}} |
}} |
31 |
|
|
32 |
\abstract{ |
\abstract{ |
33 |
We propose non-photorealistic tearing as an |
We apply break lines from technical drawing |
34 |
|
as an |
35 |
alternative to the ubiquitous rectangular frames |
alternative to the ubiquitous rectangular frames |
36 |
in user interfaces. When showing a piece of a |
in user interfaces. |
37 |
larger paper, the torn edges naturally indicate |
When showing a piece of a |
38 |
|
larger canvas, the non-photorealistically torn edges naturally indicate |
39 |
where the content extends. We show how the shape |
where the content extends. We show how the shape |
40 |
of the jagged edge can be tied to its location on |
of the jagged edge can be tied to its location on |
41 |
the paper; this creates a natural rippling motion |
the paper; this creates a natural rippling motion |
42 |
when the edge moves in relation to the paper. |
when the edge moves in relation to the paper. |
43 |
As a bonus, visually un-ambiguous |
The jagged edge is also visually less ambiguous than |
44 |
|
the straight horizontal and vertical lines and |
45 |
|
can be used to provide a |
46 |
Visualizing relations in Focus+Contex views. |
sense of scale to the user. |
47 |
|
|
48 |
Sense of scale |
We show how suitably rippling break lines can be implemented |
49 |
|
on the NV10 and NV25 architectures, and show screenshots |
50 |
|
of example user interfaces. |
51 |
} |
} |
52 |
|
|
53 |
|
|
186 |
since they always show the whole irregular object, |
since they always show the whole irregular object, |
187 |
not only part of it. |
not only part of it. |
188 |
|
|
|
\cite{bjork02windowframes} |
|
189 |
|
|
190 |
% --- |
% --- |
191 |
% |
% |
314 |
ends and where there is simply a line inside a viewport; see |
ends and where there is simply a line inside a viewport; see |
315 |
e.g.~Fig.\ref{figbreakout}. |
e.g.~Fig.\ref{figbreakout}. |
316 |
|
|
317 |
XXX Fourier viewpoint |
% XXX Fourier viewpoint |
318 |
frequencies: only low/high in frames |
% frequencies: only low/high in frames |
319 |
|
|
320 |
One thing that we hope to achieve is that instead of having to perceive |
One thing that we hope to achieve is that instead of having to perceive |
321 |
two objects, the ``hole'' of the viewport and the the canvas behind, |
two objects, the ``hole'' of the viewport and the the canvas behind, |
324 |
|
|
325 |
Additionally, the motion of the uneven edge can be used to give the |
Additionally, the motion of the uneven edge can be used to give the |
326 |
user a cue about the motion of the viewport, and |
user a cue about the motion of the viewport, and |
327 |
the style and size of the ripples can give a cue about the scale of the view. |
the style and size of the ripples can give a cue about the scale of the view |
328 |
|
(window frames have also been used for visualization previously\cite{bjork02windowframes}). |
329 |
|
|
330 |
|
|
331 |
% The important difference is that |
% The important difference is that |
381 |
\centering |
\centering |
382 |
\includegraphics{motion.ps}\\ |
\includegraphics{motion.ps}\\ |
383 |
\caption{\label{figmotion} |
\caption{\label{figmotion} |
384 |
XXX: motion |
A diagrammatic representation of the motion of a torn viewport. |
385 |
|
The edges parallel to the direction of motion remain still while the |
386 |
|
moving edges change their shape. |
387 |
} |
} |
388 |
\end{figure} |
\end{figure} |
389 |
|
|
587 |
|
|
588 |
\label{secshape} |
\label{secshape} |
589 |
|
|
|
XXX figs for all these shapes! |
|
|
|
|
590 |
When the tear-out reaches the edge of canvas, the smooth |
When the tear-out reaches the edge of canvas, the smooth |
591 |
canvas border should be drawn instead of the parts of the tear-out |
canvas border should be drawn instead of the parts of the tear-out |
592 |
shape extending outside the canvas. |
shape extending outside the canvas. |
614 |
the value of such a texture and a noise texture and using that (through |
the value of such a texture and a noise texture and using that (through |
615 |
alpha test) as a condition for drawing the fragment. |
alpha test) as a condition for drawing the fragment. |
616 |
|
|
617 |
[ XXX: OpenGL 1.3 or GL\_EXT\_texture\_env\_add required ] |
% [ XXX: OpenGL 1.3 or GL\_EXT\_texture\_env\_add required ] |
618 |
|
|
619 |
We stress that this implementation is not necessarily any worse than |
We stress that this implementation is not necessarily any worse than |
620 |
the offset texture implementation: |
the offset texture implementation: |
879 |
but can be approximated by storing the offsets at a discrete set |
but can be approximated by storing the offsets at a discrete set |
880 |
of orientations in different components of a texture and interpolating |
of orientations in different components of a texture and interpolating |
881 |
by calculating dot products. |
by calculating dot products. |
882 |
This approximation is not completely free of artifacts (FIG), |
This approximation is not completely free of artifacts, |
883 |
but is sometimes acceptable and is fast to draw. |
but is sometimes acceptable and is fast to draw. |
884 |
|
|
885 |
Non-photorealistic line width scaling can be obtained by computing |
Non-photorealistic line width scaling can be obtained by computing |
938 |
Note that this only holds when offsetting in the normal direction. |
Note that this only holds when offsetting in the normal direction. |
939 |
Also, derivative discontinuities are sometimes visible |
Also, derivative discontinuities are sometimes visible |
940 |
as spikes in the border, if the border is more |
as spikes in the border, if the border is more |
941 |
than a few pixels wide. FIG |
than a few pixels wide. |
942 |
|
|
943 |
This trick only works if the line texture is 2D, but its other dimension can |
This trick only works if the line texture is 2D, but its other dimension can |
944 |
be 1. |
be 1. |