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: Janne V. Kujala
Subject: [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex
Date: Wed, 13 Nov 2002 02:57:14 -0500

CVSROOT:        /cvsroot/gzz
Module name:    gzz
Changes by:     Janne V. Kujala <address@hidden>        02/11/13 02:57:13

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

Log message:
        explain outer surfaces

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

Patches:
Index: gzz/Documentation/Manuscripts/Irregu/irregu.tex
diff -u gzz/Documentation/Manuscripts/Irregu/irregu.tex:1.32 
gzz/Documentation/Manuscripts/Irregu/irregu.tex:1.33
--- gzz/Documentation/Manuscripts/Irregu/irregu.tex:1.32        Tue Nov 12 
11:33:08 2002
+++ gzz/Documentation/Manuscripts/Irregu/irregu.tex     Wed Nov 13 02:57:13 2002
@@ -299,7 +299,7 @@
 \subsection{Drawing the shape}
 
 Recall that the torn shape is defined as the intersection
-of a surface $(x,y,f(x))$ and a cutting plane, rotated and
+of a surface $(x,y,f(x,y))$ and a cutting plane, rotated and
 stretched around the tearing line to match desired bounds on the paper.
 
 Because the rotation and stretching are affine operations, 
@@ -379,10 +379,48 @@
 Pre-computed edge width: interpolated between
 3 or 4 stored angles.
 
+A circle (or ellipse, depending on how much the cutting plane is 
+stretched on screen) is moved inside the cutting plane so that
+it always touches the surface, but never crosses it. 
+The center of the circle draws the outer edge of the border.
+The radius of the circle determines the line width.
+
+If the cutting plane is then moved (without rotating it) 
+around the surface, the outer edges corresponding to each
+position of the cutting plane draw a complete surface over
+the original surface.
+The same algorithm that draws the inner edge can then be 
+used to draw the outer edge by using a texture storing the new surface.
+However, the outer edge surface is different for different
+orientations of the cutting plane and for different line widths.
+
+An application generally uses only one or a few different 
+slopes of the cutting plane so there is no problem in storing
+these discrete choices in different textures.
+However, the tearout shape can rotate, requiring surfaces
+for all tearing directions in the paper. 
+We compute the outer surfaces for a small number of different 
+tearing directions (45 or 60 degress apart) and store them
+in the components of a texture. 
+The surface corresponding to a a tearing direction between 
+two stored angles is computed 
+by linearly interpolating between the two components of the
+texture using a dot product with GL\_NV\_register\_combiners.
+
+The interpolation works better for non-vertical cutting planes.
+For a vertical cutting plane, the circle may fit in a narrow valley
+only in a certain angle, making large changes in the outer surface
+over small changes of angle. On the other hand, when the cutting
+plane is closer to horizontal, there can be no such gaps,
+because the surface is defined as a displacement from a horizontal plane.
+
+
 Non-photorealistic line-width through mip-mapping.
 %Pyramidal parametrics, Lance Williams (mipmap) ref.
 cite rip-maps
 
+
+
 Magnification
 
 
@@ -408,8 +446,12 @@
 Curved lines: \\
 - dicing \\
 - projective texture mapping (may need to increase dicing to
-  prevent discontinuities between segments)
-
+  prevent discontinuities between segments).
+  XXX: if curvature is not continuous (e.g., a quarter circle corner
+  on straight edges) dicing the tearing line does not prevent discontinuities:
+  straight lines have no perspective, but all circle sections have 
+  perspective distortion relative to the ratio of outer and inner radii.
+  
 
 \section{Example applications}
 




reply via email to

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