[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: |
Fri, 29 Nov 2002 05:38:14 -0500 |
CVSROOT: /cvsroot/gzz
Module name: gzz
Changes by: Janne V. Kujala <address@hidden> 02/11/29 05:38:13
Modified files:
Documentation/Manuscripts/Irregu: irregu.tex
Log message:
use p and q for points
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/Documentation/Manuscripts/Irregu/irregu.tex.diff?tr1=1.85&tr2=1.86&r1=text&r2=text
Patches:
Index: gzz/Documentation/Manuscripts/Irregu/irregu.tex
diff -u gzz/Documentation/Manuscripts/Irregu/irregu.tex:1.85
gzz/Documentation/Manuscripts/Irregu/irregu.tex:1.86
--- gzz/Documentation/Manuscripts/Irregu/irregu.tex:1.85 Fri Nov 29
04:11:52 2002
+++ gzz/Documentation/Manuscripts/Irregu/irregu.tex Fri Nov 29 05:38:13 2002
@@ -377,10 +377,10 @@
so as to make the movement of $A$ look natural.
There should be some maximum radius $r$ of distortion such that
-whether a point $y$ is in $B$ depends only on the set $A \cap B(y, r)$,
-where $B(y, r)$ is a ball of radius $r$ centered at $y$.
-$A \cap B(y, r) = \emptyset$ should imply $y \notin B$ and
-$A \cap B(y, r) = B(y,r)$ should imply $y \in B$.
+whether a point $y$ is in $B$ depends only on the set $A \cap B(q, r)$,
+where $B(q, r)$ is a ball of radius $r$ centered at $q \in \mathbf{R}^2$.
+$A \cap B(q, r) = \emptyset$ should imply $q \notin B$ and
+$A \cap B(q, r) = B(y,r)$ should imply $q \in B$.
Additionally, the mapping from $A$'s to $B$'s should be continuous
so that slow movement of $A$ results into smooth ``rippling'' in $B$.
Furthermore, the rippling should not be too fast.
@@ -399,12 +399,12 @@
$R \subset (\mathbf{R}^2)^2$ that identifies the points of $A$
with points in $B$:
\[
- B = \{\, y \mid \exists x \in A: x R y \,\}.
+ B = \{\, q \mid \exists p \in A: p R q \,\}.
\]
-If $\Vert x - y\Vert \le r$ for all $x R y$, the maximum distortion requirement
+If $\Vert p - q\Vert \le r$ for all $p R q$, the maximum distortion requirement
is satisfied.
-If $R$ is a continuous function, i.e., $x R y \Leftrightarrow y = G(x)$,
+If $R$ is a continuous function, i.e., $p R q \Leftrightarrow p = G(q)$,
the irregular shapes will be connected (if the original shape is connected),
but some parts of original
shape may map to overlapping parts in the irregular shape.
@@ -412,7 +412,7 @@
image of its border.
If $R$ is a continuous function in the inverse direction, i.e.,
-$x R y \Leftrightarrow F(y) = x$,
+$p R q \Leftrightarrow F(q) = p$,
there will be no overlapping.
Specifically, the edge of $A$ will map to the edge of $B$.
However, the irregular shape may be scattered, if many points
@@ -424,7 +424,7 @@
texture shading hardware:
the image of the undistorted shape can be stored in a texture and accessed
with texture coordinates read from (or offset by) another texture storing the
-inverse function (or the offset $F(y) - y$).
+inverse function (or the offset $F(q) - q$).
This is called a dependent (or offset) texture access.
The forward function cannot be efficiently implemented on fragment level,
@@ -519,6 +519,12 @@
These two algorithms correspond to one-dimensional displacement
and offset distortions, where the one dimension is in the normal direction.
+That corresponding function and inverse function are
+\begin{eqnarray}
+ G_n(p) &=& p + r n (2f(p) - 1), \\
+ F_n(q) &=& q - r n (2f(q) - 1),
+\end{eqnarray}
+where $n$ is the unit normal and $r$ the distortion radius.
Although these algorithms seem different and produce different results, there
is
actually a general formulation which yields to a visual explanation.
@@ -864,6 +870,8 @@
where ${\bf d}$ 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
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, (continued)
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Janne V. Kujala, 2002/11/28
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Janne V. Kujala, 2002/11/28
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Janne V. Kujala, 2002/11/28
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Janne V. Kujala, 2002/11/28
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Janne V. Kujala, 2002/11/28
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Janne V. Kujala, 2002/11/28
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Janne V. Kujala, 2002/11/28
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Janne V. Kujala, 2002/11/28
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Janne V. Kujala, 2002/11/29
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Janne V. Kujala, 2002/11/29
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex,
Janne V. Kujala <=
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Janne V. Kujala, 2002/11/29
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Janne V. Kujala, 2002/11/29
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Janne V. Kujala, 2002/11/29
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Tuomas J. Lukka, 2002/11/29
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Tuomas J. Lukka, 2002/11/29
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Tuomas J. Lukka, 2002/11/29
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Janne V. Kujala, 2002/11/30
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Janne V. Kujala, 2002/11/30
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Tuomas J. Lukka, 2002/11/30
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Tuomas J. Lukka, 2002/11/30