gzz-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex


From: Tuomas J. Lukka
Subject: [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex
Date: Sat, 30 Nov 2002 13:26:16 -0500

CVSROOT:        /cvsroot/gzz
Module name:    gzz
Changes by:     Tuomas J. Lukka <address@hidden>        02/11/30 13:26:15

Modified files:
        Documentation/Manuscripts/Irregu: irregu.tex 

Log message:
        move

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/Documentation/Manuscripts/Irregu/irregu.tex.diff?tr1=1.115&tr2=1.116&r1=text&r2=text

Patches:
Index: gzz/Documentation/Manuscripts/Irregu/irregu.tex
diff -u gzz/Documentation/Manuscripts/Irregu/irregu.tex:1.115 
gzz/Documentation/Manuscripts/Irregu/irregu.tex:1.116
--- gzz/Documentation/Manuscripts/Irregu/irregu.tex:1.115       Sat Nov 30 
13:25:10 2002
+++ gzz/Documentation/Manuscripts/Irregu/irregu.tex     Sat Nov 30 13:26:15 2002
@@ -646,6 +646,110 @@
 % On the other hand, the generalized formulation brakes most of the border 
 % drawing algorithms discussed below.
 
+Curved envelopes can be approximated by dicing to linear pieces.
+In the connected case, the sections are drawn as if they were
+rectangles of such lengths that the spines of the adjacent sections meet. 
+Projective texture mapping is used to shear together the sides of the 
+adjacent rectangles.
+In the scattered case, the sections are drawn simply 
+as overlapping rectangles, 
+but clipped along a normal of the envelope so that no part is drawn twice.
+Both of these methods yield the same set of polygons, with
+the only difference in the texture coordinates.
+
+Corners can be problematic, because the envelope must not intersect
+itself. For the scattered case, corners can be drawn by simply
+connecting the envelopes of the sides on a diagonal line.
+For the connected case, the stretching of the texture
+causes an undesireble side effect: the ripples are directed radially
+outward between the directions of the corners, making
+the ripples rotate if the tear-out shape is moved along its side.
+
+A simple solution to the problem is rounding. 
+For example, 
+a higher order ellipse can be used to obtain a rectangle 
+with rounded corners and thus more rectangular sections.
+
+If rounding is not desired, the corners can be drawn as
+intersections of torn-edged half-planes.
+The border of the intersection shape is obtained
+as a similar intersection using the half-planes corresponding to
+the outer edges of the borders.
+The intersection can be implemented using stencil operations.
+
+%by drawing the outside
+%to the stencil buffer for each side of the shape. 
+%The inside is then drawn
+%with stencil test set to discard those fragments that were
+%drawn to the stencil buffer as the outside of the shape.
+%This method works even if the tear-out shape has no corners,
+%and requires no extra passes over the inside of the shape
+%(the stencil can be cleared as the contents are drawn).
+
+When the tear-out reaches the edge of canvas, the smooth 
+canvas border should be drawn instead of the parts of the tear-out
+shape extending outside the canvas.
+This can be implemented with stencil operations:
+First the full tear-out shape including the border is drawn
+to the stencil buffer. 
+Then the canvas with its borders is drawn on screen using stencil test,
+and another bit is written to the stencil buffer for each canvas pixel
+ending up on screen.
+That stencil bit is then used to draw borders for the torn edges.
+
+% If a canvas is torn into multiple pieces, the above methods
+% produce edges that do not fit together: the edges of adjacent
+% pieces have opposing ripples.
+% The problem is partly solved by inverting (i.e., $1-f(\p)$) 
+% the ripple function for either one of each pair of facing sides.
+% But then a 180 degree rotation of a pair of fitting pieces 
+% inverts the torn shape between them, breaking the principle of
+% tying ripple shape to canvas location.
+% 
+% \if0
+% The problem can be fully solved with a vector valued ripple function 
+% $F({\p})$, $\Vert F({\p})\Vert \le 1$,
+% using $f({\p}) = (1 + N \cdot F({\p}))/2$, 
+% where $N$ is the unit normal
+% of the envelope. The dot product automatically inverts the 
+% function for a 180 degree rotation.
+% XXX: equivalent to drawing each envelope section by real 2D-offsetting 
+% of a half-plane
+% 
+% The texture shader version can directly use the vector valued ripple 
function.
+% It can also be used with the
+% pre-computed borders method by pre-computing the dot product, too.
+% However, even the connected case then requires a full 360 degree span
+% of pre-computed outer surfaces.
+% \fi
+% 
+% \if0
+% Content drawn using stencil.
+% Inside only needs to be drawn twice. ???
+% Can create ``outside'' stencil and draw inside only once.
+% 
+% Curved lines: \\
+% - dicing \\
+% - non-rectangular segments need projective texture mapping for
+%   the connected case: rectangular sections are stretched together \\
+% 
+% Corners: \\
+% - motion problem with connected edge on non-rectangular segments 
+%   on a straight line
+%   (the ripples ``rotate'' when the tearout shape moves)  \\
+% - rounded corners to make segments more rectangular \\
+% -%  possible problem with self-intersecting envelope \\
+% - could move spine to the inner edge with the spine-normal definition \\
+% - creating corners by intersecting two straight lines with stencil \\
+% 
+% 
+% Jigsaw puzzle problems: \\
+% - tear-out pieces do not fit together \\
+% - partially solved using inverted version of the texture \\
+% - better solution by using a two-component texture
+% \fi
+
+
 
 \subsection{Drawing the edge}
 
@@ -811,117 +915,6 @@
 % 
 % Increasing the border width scaling exponent from 0 makes the
 % border width less consistent with sloped offset.
-
-\subsection{Polygonal undistorted shapes}
-
-In the previous sections we have presented different ways of drawing
-one linear section of the envelope. 
-In this section, we consider different ways of drawing complete
-tear-out shapes with contents.
-
-Curved envelopes can be approximated by dicing to linear pieces.
-In the connected case, the sections are drawn as if they were
-rectangles of such lengths that the spines of the adjacent sections meet. 
-Projective texture mapping is used to shear together the sides of the 
-adjacent rectangles.
-In the scattered case, the sections are drawn simply 
-as overlapping rectangles, 
-but clipped along a normal of the envelope so that no part is drawn twice.
-Both of these methods yield the same set of polygons, with
-the only difference in the texture coordinates.
-
-Corners can be problematic, because the envelope must not intersect
-itself. For the scattered case, corners can be drawn by simply
-connecting the envelopes of the sides on a diagonal line.
-For the connected case, the stretching of the texture
-causes an undesireble side effect: the ripples are directed radially
-outward between the directions of the corners, making
-the ripples rotate if the tear-out shape is moved along its side.
-
-A simple solution to the problem is rounding. 
-For example, 
-a higher order ellipse can be used to obtain a rectangle 
-with rounded corners and thus more rectangular sections.
-
-If rounding is not desired, the corners can be drawn as
-intersections of torn-edged half-planes.
-The border of the intersection shape is obtained
-as a similar intersection using the half-planes corresponding to
-the outer edges of the borders.
-The intersection can be implemented using stencil operations.
-
-%by drawing the outside
-%to the stencil buffer for each side of the shape. 
-%The inside is then drawn
-%with stencil test set to discard those fragments that were
-%drawn to the stencil buffer as the outside of the shape.
-%This method works even if the tear-out shape has no corners,
-%and requires no extra passes over the inside of the shape
-%(the stencil can be cleared as the contents are drawn).
-
-When the tear-out reaches the edge of canvas, the smooth 
-canvas border should be drawn instead of the parts of the tear-out
-shape extending outside the canvas.
-This can be implemented with stencil operations:
-First the full tear-out shape including the border is drawn
-to the stencil buffer. 
-Then the canvas with its borders is drawn on screen using stencil test,
-and another bit is written to the stencil buffer for each canvas pixel
-ending up on screen.
-That stencil bit is then used to draw borders for the torn edges.
-
-% If a canvas is torn into multiple pieces, the above methods
-% produce edges that do not fit together: the edges of adjacent
-% pieces have opposing ripples.
-% The problem is partly solved by inverting (i.e., $1-f(\p)$) 
-% the ripple function for either one of each pair of facing sides.
-% But then a 180 degree rotation of a pair of fitting pieces 
-% inverts the torn shape between them, breaking the principle of
-% tying ripple shape to canvas location.
-% 
-% \if0
-% The problem can be fully solved with a vector valued ripple function 
-% $F({\p})$, $\Vert F({\p})\Vert \le 1$,
-% using $f({\p}) = (1 + N \cdot F({\p}))/2$, 
-% where $N$ is the unit normal
-% of the envelope. The dot product automatically inverts the 
-% function for a 180 degree rotation.
-% XXX: equivalent to drawing each envelope section by real 2D-offsetting 
-% of a half-plane
-% 
-% The texture shader version can directly use the vector valued ripple 
function.
-% It can also be used with the
-% pre-computed borders method by pre-computing the dot product, too.
-% However, even the connected case then requires a full 360 degree span
-% of pre-computed outer surfaces.
-% \fi
-% 
-% \if0
-% Content drawn using stencil.
-% Inside only needs to be drawn twice. ???
-% Can create ``outside'' stencil and draw inside only once.
-% 
-% Curved lines: \\
-% - dicing \\
-% - non-rectangular segments need projective texture mapping for
-%   the connected case: rectangular sections are stretched together \\
-% 
-% Corners: \\
-% - motion problem with connected edge on non-rectangular segments 
-%   on a straight line
-%   (the ripples ``rotate'' when the tearout shape moves)  \\
-% - rounded corners to make segments more rectangular \\
-% -%  possible problem with self-intersecting envelope \\
-% - could move spine to the inner edge with the spine-normal definition \\
-% - creating corners by intersecting two straight lines with stencil \\
-% 
-% 
-% Jigsaw puzzle problems: \\
-% - tear-out pieces do not fit together \\
-% - partially solved using inverted version of the texture \\
-% - better solution by using a two-component texture
-% \fi
-
 \section{Example applications}
 
 In this section, we present two of our user interface designs




reply via email to

[Prev in Thread] Current Thread [Next in Thread]