[Top][All Lists]
[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: |
Thu, 14 Nov 2002 09:11:16 -0500 |
CVSROOT: /cvsroot/gzz
Module name: gzz
Changes by: Janne V. Kujala <address@hidden> 02/11/14 09:11:16
Modified files:
Documentation/Manuscripts/Irregu: irregu.tex
Log message:
Some notes
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/Documentation/Manuscripts/Irregu/irregu.tex.diff?tr1=1.41&tr2=1.42&r1=text&r2=text
Patches:
Index: gzz/Documentation/Manuscripts/Irregu/irregu.tex
diff -u gzz/Documentation/Manuscripts/Irregu/irregu.tex:1.41
gzz/Documentation/Manuscripts/Irregu/irregu.tex:1.42
--- gzz/Documentation/Manuscripts/Irregu/irregu.tex:1.41 Wed Nov 13
10:14:30 2002
+++ gzz/Documentation/Manuscripts/Irregu/irregu.tex Thu Nov 14 09:11:16 2002
@@ -300,6 +300,9 @@
again using a function $f(p)$ of location $p$, a given point is {\em inside}
the curve,
iff $f(p) < |p - n_C(p)|$, where $n_C(p)$ is the nearest point to $p$ on the
curve $C$.
+% XXX: the irregu_gears.jpeg issue should be addressed here, i.e., the shape
+% of the torn edge should ideally not depend on normal in/out direction.
+
Although these algorithms seem different and produce different results, there
is
actually a reasonable generalization which yields to a visual explanation.
Both algorithms can be represented as a point being inside the final curve if
@@ -315,6 +318,10 @@
parametrized by $\alpha$
with usually $0 \le \alpha \le 1$.
+% \alpha = 1 corresponds to projecting the cutting plane to the paper
+% \alpha \ne 1 requires stretching the cutting plane before projection
+% with stretch factor 1 / \alpha (i.e, \infty for \alpha = 0)
+
A suitable choice for $f$ would be
a function with noise at different frequencies, but with lower frequencies
emphasized more, such as turbulence\cite{perlin-noise-intro}.
@@ -428,10 +435,14 @@
Image-space algorithm: ... slow on NV10
-\subsubsection{Mutltitexture/access}
+\subsubsection{Mutltitexture}
-Similar to image-space algorithms: values of surrounding fragments
+Similar to multi-pass perturbed edge: values of surrounding fragments
computed in parallel for each fragment.
+With four texture units, it is possible to do the texture accesses
+corresponding to four different perturbed edges for each fragment
+and use GL\_NV\_register\_combiners to determine if any of them
+is inside the torn edge.
Attached edges: texture coordinates do not change along a
normal of the tearing line.
@@ -442,17 +453,10 @@
from the tearing line.
A fragment is inside the outer edge, if its distance from
any of the adjacent inner edge points is less than the line width.
-This computation can be carried out using GL\_NV\_register\_combiners
-or with an NV30 fragment program.
-Also, with NV30, a single texture unit can be accessed multiple
-times with displaced texture coordinates computed in the program.
-
-For sprinkled edges, one-dimensional displacements of the
-texture coordinates are not enough, because the texture slice
-mapped on the edge is two-dimensional.
-Most OpenGL hardware do not have enough texture units for this,
-but with NV30, one could compute
-XXX pixel and four surrounding pixels.
+This computation can be carried out using GL\_NV\_register\_combiners.
+
+With NV30, a single texture unit can be accessed multiple
+times with displaced texture coordinates computed in a fragment program.
\subsubsection{Optimizations}
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, (continued)
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Janne V. Kujala, 2002/11/12
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Janne V. Kujala, 2002/11/13
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Janne V. Kujala, 2002/11/13
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Tuomas J. Lukka, 2002/11/13
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Janne V. Kujala, 2002/11/13
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Janne V. Kujala, 2002/11/13
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Tuomas J. Lukka, 2002/11/13
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Tuomas J. Lukka, 2002/11/13
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Tuomas J. Lukka, 2002/11/13
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Tuomas J. Lukka, 2002/11/13
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex,
Janne V. Kujala <=
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Tuomas J. Lukka, 2002/11/15
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Janne V. Kujala, 2002/11/17
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Janne V. Kujala, 2002/11/17
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Janne V. Kujala, 2002/11/17
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Janne V. Kujala, 2002/11/18
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Janne V. Kujala, 2002/11/18
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Janne V. Kujala, 2002/11/19
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Janne V. Kujala, 2002/11/19
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Janne V. Kujala, 2002/11/19
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Janne V. Kujala, 2002/11/19