[249] | 1 | \chapter{Analysis of Visibility in Polygonal Scenes}
|
---|
| 2 |
|
---|
[277] | 3 | \label{chap:analysis}
|
---|
| 4 |
|
---|
[266] | 5 | This chapter provides analysis of the visibility in polygonal scenes,
|
---|
[277] | 6 | which are the input for all developed algorithms. The visibility analysis
|
---|
[266] | 7 | uncoveres the complexity of the from-region and global visibility
|
---|
| 8 | problems and thus it especially important for a good design of the
|
---|
| 9 | global visibility preprocessor. To better undestand the visibility
|
---|
| 10 | relationships in primal space we use mapping to line space, where the
|
---|
| 11 | visibility interactions can be observed easily by interactions of sets
|
---|
| 12 | of points. Additionally for the sake of clarity, we first analyze
|
---|
[277] | 13 | visibility in 2D and then extend the analysis to 3D polygonal scenes. Visibility in 3D is described using \plucker
|
---|
[249] | 14 |
|
---|
[266] | 15 | \section{Analysis of visibility in 2D}
|
---|
[249] | 16 |
|
---|
| 17 | \label{LINE_SPACE}
|
---|
| 18 |
|
---|
| 19 | The proposed visibility algorithm uses a mapping of oriented 2D lines to
|
---|
| 20 | points in 2D oriented projective space --- {\em line space}. Such a
|
---|
| 21 | mapping allows to handle sets of lines much easier than in the primal
|
---|
| 22 | space~\cite{pv-vc-93}.
|
---|
| 23 |
|
---|
| 24 | We use a 2D projection of Pl\"ucker
|
---|
| 25 | coordinates~\cite{Stolfi:1991:OPG} to parametrize lines in the plane.
|
---|
| 26 | This mapping corresponds to an ``oriented form'' of the duality
|
---|
| 27 | between points and lines in 2D. Let $l$ be an oriented line in
|
---|
| 28 | ${\mathcal R}^2$ and let $u=(u_x, u_y)$ and $v=(v_x, v_y)$ be two
|
---|
| 29 | distinct points lying on $l$. Line $l$ oriented from $u$ to $v$ can be
|
---|
| 30 | described by the following matrix:
|
---|
| 31 |
|
---|
| 32 | $$
|
---|
| 33 | M_l=\left(
|
---|
| 34 | \begin{array}{cccc}
|
---|
| 35 | u_x & u_y & 1 \\
|
---|
| 36 | v_x & v_y & 1
|
---|
| 37 | \end{array}
|
---|
| 38 | \right)
|
---|
| 39 | $$
|
---|
| 40 |
|
---|
| 41 | Pl\"ucker coordinates $l^*$ of $l$ are minors of $M_l$:
|
---|
| 42 |
|
---|
| 43 | $$
|
---|
| 44 | l^* = (l^*_x, l^*_y, l^*_z) = (u_y - v_y, v_x - u_x, u_x v_y - u_y v_x ).
|
---|
| 45 | $$
|
---|
| 46 |
|
---|
| 47 | $l^*$ can be interpreted as homogeneous coordinates of a point in 2D
|
---|
| 48 | {\em oriented projective space} ${\cal P}^2$. Two oriented lines are
|
---|
| 49 | equal if and only if their Pl\"ucker coordinates differ only by a
|
---|
| 50 | positive scale factor. $l^*$ also corresponds to coefficients of the
|
---|
| 51 | implicit equation of a line: $l'$ expressed as $l': ax + by + c= 0$
|
---|
| 52 | induces two oriented lines $l^*_1$, $l^*_2$, with Pl\"ucker
|
---|
| 53 | coordinates $l^*_1 = (a, b, c)$ and $l^*_2 = -(a,b,c)$. The \plucker
|
---|
| 54 | coordinates of 2D lines defined in this chapter are a simplified form
|
---|
[277] | 55 | of the \plucker coordinates for 3D lines, which will be discussed
|
---|
[283] | 56 | below in this chapter: \plucker coordinates of a 2D line correspond
|
---|
[249] | 57 | to the \plucker coordinates of a 3D line embedded in the $z = 0$ plane
|
---|
| 58 | after removal of redundant coordinates (equal to 0) and permutation of
|
---|
| 59 | the remaining ones (including some sign changes).
|
---|
| 60 |
|
---|
| 61 |
|
---|
| 62 | Homogeneous coordinates are often normalized, e.g. $l^*_N = (a/b, 1,
|
---|
| 63 | c/b)$. The normalization introduces a singularity --- in our example
|
---|
| 64 | vertical lines map to points at infinity. To avoid singularities we
|
---|
| 65 | treat ${\cal P}^2$ as 3D linear space and call it {\em line space}
|
---|
| 66 | denoted ${\mathcal L}$. Consequently, $l^*$ represents a halfline in
|
---|
| 67 | ${\mathcal L}$. All points on halfline $l^*$ represent the same
|
---|
| 68 | oriented line $l$.
|
---|
| 69 |
|
---|
| 70 | To sum up: an oriented line in 2D is mapped to a halfline beginning
|
---|
| 71 | at the origin in 3D. An example of the concept is depicted in
|
---|
| 72 | Figures~\ref{lines1}-(a) and ~\ref{lines1}-(b). Further in this
|
---|
| 73 | chapter we will mostly use ``projected'' 2D illustrations of line
|
---|
| 74 | space (such as in Figure~\ref{lines1}-(c)). We will still talk about
|
---|
| 75 | planes and halflines, but they will be depicted as lines and points,
|
---|
| 76 | respectively, for the sake of clarity of the presentation.
|
---|
| 77 |
|
---|
| 78 |
|
---|
| 79 | \subsection{Lines passing through a point}
|
---|
| 80 |
|
---|
| 81 | A {\em pencil of oriented lines} passing through a point $p = (p_x,
|
---|
| 82 | p_y) \in {\mathcal R}^2$ maps to an oriented plane $p^*$ in line
|
---|
| 83 | space that is expressed as:
|
---|
| 84 | $$
|
---|
| 85 | p^* = \{(x,y,z) | (x,y,z) \in {\mathcal L}, p_x x + p_y y + z = 0\}.
|
---|
| 86 | $$
|
---|
| 87 |
|
---|
| 88 | This plane subdivides ${\mathcal L}$ in two open halfspaces $p^*_+$
|
---|
| 89 | and $p^*_-$. Points in $p^*_-$ correspond to oriented lines passing
|
---|
| 90 | clockwise around $p$ (see Figure~\ref{lines1}). Points in $p^*_+$
|
---|
| 91 | correspond to oriented lines passing counterclockwise around $p$
|
---|
| 92 | (these relations depend on the orientation of the primal space). We
|
---|
| 93 | denote $-p^*$ an oriented plane opposite to $p^*$ that can be
|
---|
| 94 | expressed as:
|
---|
| 95 | $$
|
---|
| 96 | -p^* = \{(x,y,z) | (x,y,z) \in {\mathcal L}, -p_x x - p_y y - z = 0\}.
|
---|
| 97 | $$
|
---|
| 98 |
|
---|
| 99 |
|
---|
| 100 | \begin{figure*}[tb]
|
---|
| 101 | \rule{0pt}{0pt}\hfill
|
---|
| 102 | \includegraphics[width=1.0\textwidth,draft=\DRAFTFIGS]{figs/lines1}
|
---|
| 103 | \hfill\rule{0pt}{0pt}
|
---|
| 104 | \centerline{\small \hspace{0.01\textwidth}{\bf (a)}\hspace{0.3\textwidth} {\bf (b)} \hspace{0.3\textwidth} {\bf (c)}}
|
---|
| 105 | \vspace{-1.5em}
|
---|
| 106 | \caption{
|
---|
| 107 | {\bf (a)} Four oriented lines in primal space.
|
---|
| 108 | {\bf (b)} Mappings of the four lines and point p.
|
---|
| 109 | Lines intersecting p map to plane $p^*$.
|
---|
| 110 | Lines passing clockwise (counterclockwise) around $p$, map to
|
---|
| 111 | $p^*_-$ ($p^*_+$).
|
---|
| 112 | {\bf (c)} The situation after projection to a plane perpendicular to $p^*$. }
|
---|
| 113 | \label{lines1}
|
---|
| 114 | \end{figure*}
|
---|
| 115 |
|
---|
| 116 | \subsection{Lines passing through a line segment}
|
---|
| 117 |
|
---|
| 118 | Oriented lines passing through a line segment can be decomposed into
|
---|
| 119 | two sets depending on their orientation. Consider a supporting line
|
---|
| 120 | $l_S$ of a line segment $S$, that partitions the plane in open
|
---|
| 121 | halfspaces $S^+$ and $S^-$. Denote $a$ and $b$ the two endpoints of
|
---|
| 122 | $S$ and $a^*$ and $b^*$ their mappings to ${\mathcal L}$. Lines that
|
---|
| 123 | intersect $S$ and ``come from'' $S^-$ can be expressed in line space
|
---|
| 124 | as an intersection of halfspaces $a^*_+$ and $b^*_-$. The opposite
|
---|
| 125 | oriented lines intersecting $S$ are expressed as $a^*_- \cap b^*_+$
|
---|
| 126 | (see Figure~\ref{lines2}-(a,b)).
|
---|
| 127 |
|
---|
| 128 | %\begin{minipage}{\textwidth}
|
---|
| 129 |
|
---|
| 130 | \begin{figure}[htb]
|
---|
| 131 | \rule{0pt}{0pt}\hfill
|
---|
| 132 | \includegraphics[width=0.6\textwidth,draft=\DRAFTFIGS]{figs/lines2}
|
---|
| 133 | \hfill\rule{0pt}{0pt}
|
---|
| 134 | \centerline{\small
|
---|
| 135 | \hspace{0.01\textwidth}{\bf (a)}\hspace{0.2\textwidth} {\bf (b)}
|
---|
| 136 | }
|
---|
| 137 | \vspace{-1.5em}
|
---|
| 138 | \caption{ {\bf (a)} A line segment $S$ and three oriented lines that
|
---|
| 139 | intersect $S$. {\bf (b)} The situation in line space: the projection of two
|
---|
| 140 | wedges corresponding to lines intersecting $S$. Mappings of supporting
|
---|
| 141 | line $l_S$ of $S$ are two halflines that project to point
|
---|
| 142 | $l_S^*$. Line $k$ intersects point $b$ and therefore maps to plane
|
---|
| 143 | $b^*$. Lines $m$ and $n$ map to the wedge corresponding to their
|
---|
| 144 | orientation. }
|
---|
| 145 | \label{lines2}
|
---|
| 146 | \end{figure}
|
---|
| 147 |
|
---|
| 148 |
|
---|
| 149 |
|
---|
| 150 |
|
---|
| 151 | \subsection{Lines passing through two line segments}
|
---|
| 152 |
|
---|
| 153 | \label{sec:blocker_polygon}
|
---|
| 154 |
|
---|
| 155 | Consider two disjoint line segments such as those depicted in
|
---|
| 156 | Figure~\ref{lines3}-(a). The set of lines passing through the two line
|
---|
| 157 | segments can be described as an intersection of four halfspaces in
|
---|
| 158 | line space. The four halfspaces correspond to mappings of endpoints of
|
---|
| 159 | the two line segments. Since the halfspaces pass through the origin
|
---|
| 160 | of ${\mathcal L}$, their intersection is a pyramid with the apex at
|
---|
| 161 | the origin. The boundary halflines of the pyramid correspond to
|
---|
| 162 | mappings of the four {\em extremal lines} induced by the two
|
---|
| 163 | segments. Denote ${\mathcal P}(S, O)$ a line space pyramid
|
---|
| 164 | corresponding to oriented lines intersecting line segments $S$ and $O$
|
---|
| 165 | in this order. We represent the pyramid by a {\em blocker polygon}
|
---|
| 166 | $B(S, O)$ (see Figure~\ref{lines3}-(b)). Since $B(S, O)$ only
|
---|
| 167 | represents the pyramid ${\mathcal P}(S, O)$, it need not be a planar
|
---|
| 168 | polygon, i.e. its vertices may lay anywhere on the boundary halflines
|
---|
| 169 | of ${\mathcal P}(S, O)$. We normalize the vertex coordinates: they
|
---|
| 170 | correspond to an intersection of the boundary halfline of ${\mathcal
|
---|
| 171 | P}(S, O)$ and the unit sphere centered at the origin of ${\mathcal L}$.
|
---|
| 172 |
|
---|
| 173 | \begin{figure}[htb]
|
---|
| 174 | \hfill\rule{0pt}{0pt}
|
---|
| 175 | \includegraphics[width=0.7\textwidth,draft=\DRAFTFIGS]{figs/lines3}
|
---|
| 176 | \hfill\rule{0pt}{0pt}
|
---|
| 177 | \centerline{\small
|
---|
| 178 | \hspace{0.01\textwidth}{\bf (a)}\hspace{0.2\textwidth} {\bf (b)}
|
---|
| 179 | }
|
---|
| 180 | \vspace{-1.5em}
|
---|
| 181 | \caption{ {\bf (a)} Two line segments and corresponding four extremal lines
|
---|
| 182 | oriented from $S$ to $O$. Separating lines $ad$ and $bc$ bound region
|
---|
| 183 | of partial visibility of $S$ behind $O$ (penumbra). Supporting lines
|
---|
| 184 | $ac$ and $bd$ bound region where $S$ is invisible (umbra). {\bf (b)}
|
---|
| 185 | Blocker polygon $B(S,O)$ representing pyramid ${\mathcal
|
---|
| 186 | P}(S,O)$.
|
---|
| 187 | }
|
---|
| 188 | \label{lines3}
|
---|
| 189 | \end{figure}
|
---|
| 190 |
|
---|
| 191 |
|
---|
| 192 | In Figure~\ref{lines4}-(a), the supporting line of $cd$ intersects $ab$
|
---|
| 193 | at point $x$. The set of rays passing through $ab$ and $cd$ can be
|
---|
| 194 | decomposed to rays passing through $ax$ and $cd$, and through $xb$
|
---|
| 195 | and $cd$. Rays through $ax$ and $cd$ map to a pyramid that is
|
---|
| 196 | described by intersection of only three halfspaces induced by mappings
|
---|
| 197 | of $a$, $x$ and $d$. Rays through $xb$ and $cd$ can be
|
---|
| 198 | described similarly. The configuration in line space is depicted in
|
---|
| 199 | Figure~\ref{lines4}-(b).
|
---|
| 200 |
|
---|
| 201 | \begin{figure}[htb]
|
---|
| 202 | \rule{0pt}{0pt}\hfill
|
---|
| 203 | \includegraphics[width=0.7\textwidth,draft=\DRAFTFIGS]{figs/lines4}
|
---|
| 204 | \hfill\rule{0pt}{0pt}
|
---|
| 205 | \centerline{\small
|
---|
| 206 | \hspace{0.01\textwidth}{\bf (a)}\hspace{0.2\textwidth} {\bf (b)}
|
---|
| 207 | }
|
---|
| 208 | \vspace{-1.5em}
|
---|
| 209 | \caption{ {\bf (a)} Degenerate configuration of line segments: the supporting
|
---|
| 210 | line of $cd$ intersects $ab$ at point $x$. There are five extremal
|
---|
| 211 | lines. Note, that there is no umbra region. {\bf (b)} In line space the
|
---|
| 212 | configuration yields two pyramids sharing a boundary that is a
|
---|
| 213 | mapping of the oriented line $cd$.
|
---|
| 214 | }
|
---|
| 215 | \label{lines4}
|
---|
| 216 | \end{figure}
|
---|
| 217 |
|
---|
| 218 | \subsection{Lines passing through a set of line segments}
|
---|
| 219 |
|
---|
| 220 | Consider a set of $n+1$ line segments. We call one line segment the
|
---|
| 221 | {\em source} (denoted by $S$) and the other $n$ segments we call
|
---|
| 222 | occluders (denoted by $O_k$, $1 \leq k \leq n$). Further in the
|
---|
| 223 | chapter we will use the term {\em ray} as a representative of an
|
---|
| 224 | oriented line that is oriented from the source ``towards'' the
|
---|
| 225 | occluders.
|
---|
| 226 |
|
---|
| 227 | Assume that we can process all occluders in a strict front-to-back
|
---|
| 228 | order with respect to the given source. We have already processed $k$
|
---|
| 229 | occluders and we continue by processing $O_{k+1}$. $O_{k+1}$ can be
|
---|
| 230 | visible through rays that correspond to the pyramid ${\mathcal P}(S,
|
---|
| 231 | O_{k+1})$. Nevertheless some of these rays can be blocked by
|
---|
| 232 | combination of already processed occluders $O_x$ ($1\leq x \leq k$).
|
---|
| 233 | To determine if $O_{k+1}$ is visible we subtract all ${\mathcal
|
---|
| 234 | P}(S,O_x)$ from ${\mathcal P}(S,O_{k+1})$:
|
---|
| 235 |
|
---|
| 236 | $$
|
---|
| 237 | {\mathcal V}(S,O_{k+1}) = {\mathcal P}(S,O_{k+1})\ - \bigcup_{1 \leq x \leq k} {\mathcal P}(S,O_x)
|
---|
| 238 | $$
|
---|
| 239 |
|
---|
| 240 | ${\mathcal V}(S, O_{k+1})$ is a set pyramids representing rays through
|
---|
| 241 | which $O_{k+1}$ is visible from $S$. In turn, all rays corresponding
|
---|
| 242 | to ${\mathcal V}(S,O_{k+1})$ are blocked behind $O_{k+1}$. If
|
---|
| 243 | ${\mathcal V}(S, O_{k+1})$ is an empty set, occluder $O_{k+1}$ is
|
---|
| 244 | invisible. This suggest incremental construction of an arrangement of
|
---|
| 245 | pyramids ${\mathcal A}_k$ that corresponds to rays blocked by the
|
---|
| 246 | $k$ processed occluders. We determine ${\mathcal V}(S,O_{k+1})$ and
|
---|
| 247 | ${\mathcal A}_{k+1}$ (${\mathcal A}_0$ is empty):
|
---|
| 248 |
|
---|
| 249 | $$
|
---|
| 250 | {\mathcal V}(S,O_{k+1}) = {\mathcal P}(S,O_{k+1}) \ - \ {\mathcal A}_k,
|
---|
| 251 | $$
|
---|
| 252 | $$
|
---|
| 253 | {\mathcal A}_{k+1} = {\mathcal A}_k \cup {\mathcal P}(S,O_{k+1}) =
|
---|
| 254 | {\mathcal A}_k \ \cup \ {\mathcal V}(S,O_{k+1}).
|
---|
| 255 | $$
|
---|
| 256 |
|
---|
| 257 | Figures~\ref{lines5}-(a,b) depict a projection of an arrangement
|
---|
| 258 | ${\mathcal A}_3$ of a source and three occluders. Note that the
|
---|
| 259 | shorter the source line segment the narrower ($s^*_a$ and $s^*_b$ get
|
---|
| 260 | closer) are the pyramids ${\mathcal P}(S,O_k)$.
|
---|
| 261 |
|
---|
| 262 |
|
---|
| 263 |
|
---|
| 264 |
|
---|
| 265 | \begin{figure}[htb]
|
---|
| 266 | \rule{0pt}{0pt}\hfill
|
---|
| 267 | \includegraphics[width=0.6\textwidth,draft=\DRAFTFIGS]{figs/rot2new}
|
---|
| 268 | \hfill\rule{0pt}{0pt}
|
---|
| 269 | \centerline{\small
|
---|
| 270 | \hspace{0.01\textwidth}{\bf (a)}\hspace{0.2\textwidth} {\bf (b)}
|
---|
| 271 | }
|
---|
| 272 | \vspace{-1.5em}
|
---|
| 273 | \caption{ {\bf (a)} The source line segment $S$ and three
|
---|
| 274 | occluders. $Q_{1-3}$ denote unoccluded funnels. {\bf (b)} The
|
---|
| 275 | line space subdivision. For each cell, the corresponding occluder-sequence
|
---|
| 276 | is depicted. Note the cells $Q^*_1$, $Q^*_2$ and $Q^*_3$
|
---|
| 277 | corresponding to unoccluded funnels.}
|
---|
| 278 | \label{lines5}
|
---|
| 279 | \end{figure}
|
---|
| 280 |
|
---|
| 281 | Recall that the pyramid ${\mathcal P}(S,O_k)$ is represented by
|
---|
| 282 | blocker polygon $B(S,O_k)$. The construction of the arrangement
|
---|
| 283 | ${\mathcal A}_k$ resembles the from-point visibility problem, more
|
---|
| 284 | specifically the hidden surface removal applied on the blocker
|
---|
| 285 | polygons with respect to the origin of ${\mathcal L}$. The difference
|
---|
| 286 | is that the depth information is irrelevant in line space. The
|
---|
| 287 | priority of blocker polygons is either completely determined by the
|
---|
| 288 | processing order of occluders or their depth must be compared in
|
---|
| 289 | primal space. This observation is supported by the classification of
|
---|
| 290 | visibility problems presented in
|
---|
[277] | 291 | Chapter~\ref{chap:introduction}. Visibility from point in 3D and visibility
|
---|
[249] | 292 | from region in 2D induce a two-dimensional problem-relevant line
|
---|
| 293 | set. This suggests the possibility of mapping one problem to another.
|
---|
| 294 |
|
---|
| 295 | In the next section we show how the arrangement ${\mathcal A}_k$ can
|
---|
| 296 | be maintained consistently and efficiently using the occlusion tree.
|
---|
| 297 |
|
---|
| 298 |
|
---|
| 299 |
|
---|
| 300 | \section{Pl\"ucker coordinates of lines in 3D}
|
---|
| 301 |
|
---|
| 302 | \label{sec:plucker}
|
---|
| 303 |
|
---|
| 304 |
|
---|
| 305 | We will use a mapping that describes an oriented 3D line as a point
|
---|
| 306 | in a projective 5D space~\cite{Boissonnat98} by means of \plucker
|
---|
| 307 | coordinates~\cite{Teller92phd,p-rsls-97,yn-sbgtc-97,Pu98-DSGIV}. \plucker
|
---|
| 308 | coordinates allow to represent sets of lines using 5D polyhedra and to
|
---|
| 309 | compute visibility by means of polyhedra set operations in 5D.
|
---|
| 310 |
|
---|
| 311 | A line in 3D can be described by homogeneous coordinates of two
|
---|
| 312 | distinct points on that line. Let $l$ be a line in ${\cal R}^3$ and
|
---|
| 313 | let $\mbi{u}=(u_x, u_y, u_z, u_w)$ and $\mbi{v}=(v_x,v_y,v_z, v_w)$ be
|
---|
| 314 | two distinct points in homogeneous coordinates lying on $l$. A line
|
---|
| 315 | $l$ oriented from $\mbi{u}$ to $\mbi{v}$ can be described by the following matrix:
|
---|
| 316 |
|
---|
| 317 | \begin{equation}
|
---|
| 318 | l=\left(
|
---|
| 319 | \begin{array}{cccc}
|
---|
| 320 | u_{x} & u_{y} & u_{z} & u_{w} \\
|
---|
| 321 | v_{x} & v_{y} & v_{z} & v_{w}
|
---|
| 322 | \end{array}
|
---|
| 323 | \right)
|
---|
| 324 | \label{coord_cara}
|
---|
| 325 | \end{equation}
|
---|
| 326 |
|
---|
| 327 | Minors of the matrix correspond to components of the {\em \plucker
|
---|
| 328 | coordinates} $\bpi_l$ of line $l$:
|
---|
| 329 |
|
---|
| 330 | \begin{equation}
|
---|
| 331 | \begin{array}{ll}
|
---|
| 332 | \bpi_l & = (\pi_{l0}, \pi_{l1}, \pi_{l2}, \pi_{l3}, \pi_{l4}, \pi_{l5}) = \\
|
---|
| 333 | & = (\xi_{wx},\xi_{wy},\xi_{wz},\xi_{yz},\xi_{zx},\xi_{xy}),
|
---|
| 334 | \end{array}
|
---|
| 335 | \label{eq:plucker_coords_def}
|
---|
| 336 | \end{equation}
|
---|
| 337 |
|
---|
| 338 | where
|
---|
| 339 |
|
---|
| 340 | \begin{equation}
|
---|
| 341 | \xi_{rs} = det\left(
|
---|
| 342 | \begin{array}{cc}
|
---|
| 343 | u_{r} & u_{s} \\
|
---|
| 344 | v_{r} & v_{s}
|
---|
| 345 | \end{array}
|
---|
| 346 | \right).
|
---|
| 347 | \end{equation}
|
---|
| 348 |
|
---|
| 349 | Substituting $u_w=1$ and $v_w=1$ into Eq.~\ref{eq:plucker_coords_def}
|
---|
| 350 | enumerates to:
|
---|
| 351 |
|
---|
| 352 | \begin{equation}
|
---|
| 353 | \begin{array}{l}
|
---|
| 354 | \pi_{l0} = v_x - u_x\\
|
---|
| 355 | \pi_{l1} = v_y - u_y\\
|
---|
| 356 | \pi_{l2} = v_z - u_z\\
|
---|
| 357 | \pi_{l3} = u_{y}v_{z} - u_{z}v_{y}\\
|
---|
| 358 | \pi_{l4} = u_{z}v_{x} - u_{x}v_{z}\\
|
---|
| 359 | \pi_{l5} = u_{x}v_{y} - u_{y}v_{x}
|
---|
| 360 | \end{array}
|
---|
| 361 | \label{eq:plucker_coords}
|
---|
| 362 | \end{equation}
|
---|
| 363 |
|
---|
| 364 | The \plucker coordinates $\bpi_l$ can be seen as homogeneous
|
---|
| 365 | coordinates of a point in a projective five-dimensional space ${\cal
|
---|
| 366 | P}^5$. We call this point a {\em \plucker point} $\ppoint_l$ of
|
---|
| 367 | $l$. For a given oriented line $l$ the \plucker coordinates $\bpi_l$
|
---|
| 368 | are unique and they do not depend on the choice of points $p$ and $q$.
|
---|
| 369 | We will use the notation of a \plucker point $\ppoint_l$ in the case
|
---|
| 370 | when we want to stress that the corresponding \plucker coordinates
|
---|
| 371 | $\bpi_l$ are interpreted as a point in ${\cal P}^5$.
|
---|
| 372 |
|
---|
| 373 | Using the projective duality the \plucker coordinates can be
|
---|
| 374 | interpreted as coefficients of a hyperplane. The {\em \plucker
|
---|
| 375 | coefficients} $\bomega_l$ of line $l$ are given as:
|
---|
| 376 |
|
---|
| 377 |
|
---|
| 378 | \begin{equation}
|
---|
| 379 | \begin{array}{ll}
|
---|
| 380 | \bomega_l
|
---|
| 381 | & = (\omega_{l0}, \omega_{l1}, \omega_{l2}, \omega_{l3}, \omega_{l4}, \omega_{l5}) = \\
|
---|
| 382 | & = (\xi_{yz},\xi_{zx},\xi_{xy},\xi_{wx},\xi_{wy},\xi_{wz})
|
---|
| 383 | \end{array}
|
---|
| 384 | \label{eq:plucker_coef_def}
|
---|
| 385 | \end{equation}
|
---|
| 386 |
|
---|
| 387 | Substituting Eq.~\ref{eq:plucker_coords} into Eq.~\ref{eq:plucker_coef_def}
|
---|
| 388 | we get:
|
---|
| 389 |
|
---|
| 390 | \begin{equation}
|
---|
| 391 | \begin{array}{l}
|
---|
| 392 | \omega_{l0} = \pi_{l3} \\
|
---|
| 393 | \omega_{l1} = \pi_{l4}\\
|
---|
| 394 | \omega_{l2} = \pi_{l5}\\
|
---|
| 395 | \omega_{l3} = \pi_{l0}\\
|
---|
| 396 | \omega_{l4} = \pi_{l1}\\
|
---|
| 397 | \omega_{l5} = \pi_{l2}
|
---|
| 398 | \end{array}
|
---|
| 399 | \label{eq:plucker_coef}
|
---|
| 400 | \end{equation}
|
---|
| 401 |
|
---|
| 402 |
|
---|
| 403 | The \plucker coefficients $\bomega_l$ define a {\em \plucker
|
---|
| 404 | hyperplane} $\pplane_l$. We will use the notation of a \plucker
|
---|
| 405 | hyperplane $\pplane_l$ when we want to stress that the
|
---|
| 406 | corresponding \plucker coefficients $\bomega_l$ are interpreted as a
|
---|
| 407 | hyperplane in ${\cal P}^5$. In terms of \plucker points the \plucker
|
---|
| 408 | hyperplane can be expressed as:
|
---|
| 409 |
|
---|
| 410 | \begin{equation}
|
---|
| 411 | \label{hyperplane}
|
---|
| 412 | \begin{array}{l}
|
---|
| 413 | \pplane_l = \{\ppoint | \ppoint \in {\cal P}^5, \bomega_l \odot \bpi = 0\}
|
---|
| 414 | \end{array}
|
---|
| 415 | \end{equation}
|
---|
| 416 |
|
---|
| 417 | The \plucker hyperplane induces closed positive and negative halfspaces
|
---|
| 418 | given as:
|
---|
| 419 |
|
---|
| 420 | \begin{equation}
|
---|
| 421 | \begin{array}{l}
|
---|
| 422 | \pplane^{+}_l = \{\ppoint | \ppoint \in {\cal P}^{5}, \bomega_l \odot \bpi \geq 0\} \\
|
---|
| 423 | \pplane^{-}_l = \{\ppoint | \ppoint \in {\cal P}^{5}, \bomega_l \odot \bpi \leq 0\} \\
|
---|
| 424 | \end{array}
|
---|
| 425 | \label{eq:def_halfspaces}
|
---|
| 426 | \end{equation}
|
---|
| 427 |
|
---|
| 428 | These definitions of \plucker coordinates and coefficients follow the
|
---|
| 429 | ``traditional'' convention~\cite{Pu98-DSGIV}. They differ from the
|
---|
| 430 | definitions used by Teller~\cite{Teller92phd} who used a permuted
|
---|
| 431 | order of the coordinates. The traditional convention provides an
|
---|
| 432 | elegant interpretation of \plucker coordinates that will be discussed
|
---|
| 433 | in Section~\ref{sec:plucker_interp}.
|
---|
| 434 |
|
---|
| 435 | If $a$ and $b$ are two directed lines, the relation $side(a,b)$ is
|
---|
| 436 | defined as an inner product $\bomega_a \odot \bpi_b$ or permuted inner
|
---|
| 437 | product $\bpi_a \times \bpi_b$:
|
---|
| 438 |
|
---|
| 439 | \begin{equation}
|
---|
| 440 | \begin{array}{ll}
|
---|
| 441 | side(a,b) & = \bomega_a \odot \bpi_b = \\
|
---|
| 442 | & = \omega_{a0}\pi_{b0} + \omega_{a1}\pi_{b1} + \omega_{a2}\pi_{b2} +
|
---|
| 443 | \omega_{a3}\pi_{b3} + \omega_{a4}\pi_{b4} + \omega_{a5}\pi_{b5} = \\
|
---|
| 444 | & = \bpi_a \times \bpi_b = \\
|
---|
| 445 | & = \pi_{a0}\pi_{b3} + \pi_{a1}\pi_{b4} + \pi_{a2}\pi_{b5} +
|
---|
| 446 | \pi_{a3}\pi_{b0} + \pi_{a4}\pi_{b1} + \pi_{a5}\pi_{b2}
|
---|
| 447 | \end{array}
|
---|
| 448 | \label{eq:side}
|
---|
| 449 | \end{equation}
|
---|
| 450 |
|
---|
| 451 |
|
---|
| 452 | This relation can be interpreted with the right-hand rule
|
---|
| 453 | (Figure~\ref{sidepict}). If the thumb of the right hand is directed
|
---|
| 454 | along line $a$, then:
|
---|
| 455 |
|
---|
| 456 | \begin{itemize}
|
---|
| 457 | \item $side(a,b)> 0$, if line $b$ is oriented in the direction of the fingers,
|
---|
| 458 |
|
---|
| 459 | \item $side(a,b) = 0$, if lines $a$ and $b$ intersect or are parallel,
|
---|
| 460 |
|
---|
| 461 | \item $side(a,b) < 0$, if line $b$ points against the direction of the fingers.
|
---|
| 462 | \end{itemize}
|
---|
| 463 |
|
---|
| 464 | \begin{figure}[htb]
|
---|
| 465 | \centerline{
|
---|
| 466 | \includegraphics[width=0.8\textwidth,draft=\DRAFTFIGS]{figs/pldual}}
|
---|
| 467 | \caption{The $side(a,b)$, interpreted as the right-hand rule.}
|
---|
| 468 | \label{sidepict}
|
---|
| 469 | \end{figure}
|
---|
| 470 |
|
---|
| 471 |
|
---|
| 472 | \plucker coordinates have an important property: Although every
|
---|
| 473 | oriented line in ${\cal R}^3$ maps to a point in \plucker coordinates,
|
---|
| 474 | not every tuple of six real numbers corresponds to a real line. Only
|
---|
| 475 | the points $\ppoint \in {\cal P}^5$ \plucker coordinates of which
|
---|
| 476 | satisfy the condition
|
---|
| 477 |
|
---|
| 478 | \begin{equation}
|
---|
| 479 | \bpi \odot \bpi = 0 \qquad \equiv \qquad \pi_{0}\pi_{3} + \pi_{1}\pi_{4} + \pi_{2}\pi_{5} = 0,
|
---|
| 480 | \label{eq:plucker_quadric}
|
---|
| 481 | \end{equation}
|
---|
| 482 |
|
---|
| 483 | represent real lines in ${\cal R}^3$. All other points correspond to
|
---|
| 484 | lines which are said to be {\em imaginary}. The set of points in
|
---|
| 485 | ${\cal P}^5$ satisfying Eq.~\ref{eq:plucker_quadric} forms a 4D
|
---|
| 486 | hyperboloid of one sheet called the {\em \plucker quadric}, also known
|
---|
| 487 | as the {\em Klein quadric} or the {\em Grassman manifold}
|
---|
| 488 | (see Figure~\ref{quadric}).
|
---|
| 489 |
|
---|
| 490 |
|
---|
| 491 | \begin{figure}[htb]
|
---|
| 492 | \medskip
|
---|
| 493 | \centerline{
|
---|
| 494 | \includegraphics[width=0.65\textwidth,draft=\DRAFTFIGS]{figs/reallin}}
|
---|
| 495 | \caption{Real lines map on points on the Pl\"{u}cker quadric.}
|
---|
| 496 | \label{quadric}
|
---|
| 497 | \end{figure}
|
---|
| 498 |
|
---|
| 499 | The six \plucker coordinates of a real line are not
|
---|
| 500 | independent. Firstly, they describe an oriented projective space,
|
---|
| 501 | secondly, they must satisfy the
|
---|
| 502 | equation~\ref{eq:plucker_quadric}. Thus there are four degrees of
|
---|
| 503 | freedom in the description of a 3D line, which conforms with the
|
---|
[277] | 504 | classification from Chapter~\ref{chap:introduction}.
|
---|
[249] | 505 |
|
---|
| 506 | \plucker coordinates allow to detect an incidence of two lines by
|
---|
| 507 | computing an inner product of a homogeneous point (mapping of one
|
---|
| 508 | line) with a hyperplane (mapping of the other). Lines $l$ and $l'$
|
---|
| 509 | intersect or are parallel (i.e. meet at infinity) if and only if
|
---|
| 510 | $\ppoint_l \in \pplane_{l'}$, i.e. $side(l, l') = 0$. Note that according
|
---|
| 511 | to ~\ref{eq:plucker_quadric} any line always meets itself.
|
---|
| 512 |
|
---|
| 513 |
|
---|
| 514 | \subsection{Geometric interpretation of \plucker coordinates}
|
---|
| 515 | \label{sec:plucker_interp}
|
---|
| 516 |
|
---|
| 517 | For a better understanding of \plucker coordinates it is natural to
|
---|
| 518 | ask how each individual \plucker coordinate is related to the geometry
|
---|
| 519 | of the corresponding line. The \plucker coordinates of a given line
|
---|
| 520 | can be divided to the {\em directional} and the {\em locational}
|
---|
| 521 | parts. The directional part encodes the direction of the line, the
|
---|
| 522 | locational part encodes the position of the line. Given \plucker
|
---|
| 523 | coordinates $\bpi_l$ of a line $l$ we can write:
|
---|
| 524 |
|
---|
| 525 | \begin{equation}
|
---|
| 526 | \begin{array}{lll}
|
---|
| 527 | \mbi{d}_l & = (\pi_{l0}, \pi_{l1}, \pi_{l2}), \\
|
---|
| 528 | \mbi{l}_l & = (\pi_{l3}, \pi_{l4}, \pi_{l5}), \\
|
---|
| 529 | \end{array}
|
---|
| 530 | \end{equation}
|
---|
| 531 |
|
---|
| 532 | where $\mbi{d}_l$ is the {\em directional vector} of $l$ and $\mbi{l}_l$
|
---|
| 533 | is the {\em locational vector} of $l$. The \plucker coordinates
|
---|
| 534 | $\bpi_l$ and the \plucker coefficients $\bomega_l$ can be expressed as:
|
---|
| 535 |
|
---|
| 536 |
|
---|
| 537 | \begin{equation}
|
---|
| 538 | \begin{array}{ll}
|
---|
| 539 | \bpi_l &= [\mbi{d}_l; \mbi{l}_l],\\
|
---|
| 540 | \bomega_l &= [\mbi{l}_l; \mbi{d}_l].
|
---|
| 541 | \end{array}
|
---|
| 542 | \label{eq:rot3_locdir}
|
---|
| 543 | \end{equation}
|
---|
| 544 |
|
---|
| 545 |
|
---|
| 546 | \subsubsection{Extracting a point}
|
---|
| 547 |
|
---|
| 548 | Often we need to describe a line using a parametric representation by
|
---|
| 549 | means of an {\em anchor point} and a directional vector. Given a line
|
---|
| 550 | $l$ the directional vector $\mbi{d}_l$ is embedded in the \plucker
|
---|
| 551 | coordinates of $l$ (see Eq.~\ref{eq:rot3_locdir}). The anchor point
|
---|
| 552 | $\mbi{a}_l$ can be computed as:
|
---|
| 553 |
|
---|
| 554 | \begin{equation}
|
---|
| 555 | \mbi{a}_l = (a_x, a_y, a_z) = \frac{\mbi{d}_l \times \mbi{l}_l}{\parallel \mbi{d}_l \parallel ^2}.
|
---|
| 556 | \end{equation}
|
---|
| 557 |
|
---|
| 558 |
|
---|
| 559 | \subsubsection{Computing the distance}
|
---|
| 560 |
|
---|
| 561 | The distance between two lines $l$ and $l'$ can be expressed
|
---|
| 562 | using their anchor points and the directional vectors:
|
---|
| 563 |
|
---|
| 564 | \begin{equation}
|
---|
| 565 | dist(l, l') = { | (\mbi{a}_l - \mbi{a}_{l'}) \cdot (\mbi{d}_l \times
|
---|
| 566 | \mbi{d}_{l'}) | \over \parallel \mbi{d}_l \times \mbi{d}_{l'} \parallel }.
|
---|
| 567 | \end{equation}
|
---|
| 568 |
|
---|
| 569 |
|
---|
| 570 | The distance is the length of the projection of the line segment
|
---|
| 571 | $\mbi{a}_l,\mbi{a}_{l'}$ onto the direction $\mbi{d}_l \times
|
---|
| 572 | \mbi{d}_{l'}$.
|
---|
| 573 |
|
---|
| 574 |
|
---|
| 575 |
|
---|
| 576 | %%%%%%%%%%%%%%%%%%%%%%
|
---|
| 577 |
|
---|
| 578 | \section{Visual events}
|
---|
| 579 |
|
---|
| 580 | \label{sec:events}
|
---|
| 581 |
|
---|
| 582 | This section discusses visual events occurring in polygonal
|
---|
| 583 | scenes~\cite{Gigus90}. We will focus on the boundaries of visual
|
---|
| 584 | events and their relation to \plucker coordinates. The understanding
|
---|
| 585 | of the visual events helps to comprehend the complexity of the
|
---|
| 586 | from-region visibility in 3D.
|
---|
| 587 |
|
---|
| 588 | Any scene can be decomposed into regions from which the scene has a
|
---|
| 589 | topologically equivalent view~\cite{Gigus90}. Boundaries of such
|
---|
| 590 | regions correspond to {\em event surfaces}. Crossing an event surface
|
---|
| 591 | causes a {\em visual event}, i.e. a change in the topology of the view
|
---|
| 592 | (visibility map). In polygonal scenes there are three types of event
|
---|
| 593 | surfaces~\cite{Gigus90}:
|
---|
| 594 |
|
---|
| 595 | \begin{itemize}
|
---|
| 596 | \item {\em vertex-edge} (VE) events involving an edge and a vertex
|
---|
| 597 | of two distinct polygons.
|
---|
| 598 | \item {\em edge-edge-edge} (EEE) events involving three edges of
|
---|
| 599 | three distinct polygons.
|
---|
| 600 | \item {\em supporting} events corresponding to supporting planes of
|
---|
| 601 | scene polygons. The supporting event can be seen as a degenerated
|
---|
| 602 | case of VE or EEE events.
|
---|
| 603 | \end{itemize}
|
---|
| 604 |
|
---|
| 605 | The VE events correspond to planes, the EEE events in general form
|
---|
| 606 | quadratic surfaces. The definitions assume that the scene polygons are
|
---|
| 607 | in general non-degenerate position. In real world scenes the polygons
|
---|
| 608 | or their edges polygons can be variously aligned. In such a case these
|
---|
| 609 | definitions of visibility events form minimal sets of edges and
|
---|
| 610 | vertices defining an event. For example a VE event can involve a
|
---|
| 611 | vertex and several edges of scene polygons (see
|
---|
| 612 | Figure~\ref{fig:degen_event}).
|
---|
| 613 |
|
---|
| 614 | \begin{figure}[htb]
|
---|
| 615 | \centerline{
|
---|
| 616 | \includegraphics[width=0.45\textwidth,draft=\DRAFTFIGS]{figs/ve_degen}}
|
---|
| 617 | \caption{Degenerated VE event. The VE event is induced by a vertex and
|
---|
| 618 | three edges of scene polygons.}
|
---|
| 619 | \label{fig:degen_event}
|
---|
| 620 | \end{figure}
|
---|
| 621 |
|
---|
| 622 |
|
---|
| 623 | The intersections of event surfaces correspond to {\em extremal
|
---|
| 624 | lines}~\cite{Teller92phd}. An extremal line intersects four edges of
|
---|
| 625 | some scene polygons. There are four types of extremal lines:
|
---|
| 626 | vertex-vertex (VV) lines, vertex-edge-edge (VEE) lines,
|
---|
| 627 | edge-vertex-edge (EVE) and quadruple edge (4E) lines. Imagine
|
---|
| 628 | ``sliding'' an extremal line (of any type) away from its initial
|
---|
| 629 | position by relaxing exactly one of the four edge constraints
|
---|
| 630 | determining the line. The section of the event surface swept out by
|
---|
| 631 | the sliding line is called the {\em swath}. A swath is either planar
|
---|
| 632 | if it corresponds to a VE event surface or a regulus if it is embedded
|
---|
| 633 | in an EEE event surface.
|
---|
| 634 |
|
---|
| 635 | Figure~\ref{swaths}-(a) shows an extremal VV line tight on four edges
|
---|
| 636 | A,B,C, and D. Relaxing constraint C yields a VE (planar) swath defined
|
---|
| 637 | by A,B, and D. When the sliding line encounters an obstacle (edge E) it
|
---|
| 638 | terminates at a VV extremal line defined by A,B,D, and
|
---|
| 639 | E. Figure~\ref{swaths}-(b) depicts an extremal 4E line tight on the
|
---|
| 640 | mutually skew edges A,B,C, and D. Relaxing constraint A produces an EEE
|
---|
| 641 | event surface that is a regulus intersecting B,C, and D. When the
|
---|
| 642 | sliding line encounters edge E the swath terminates at an VEE extremal
|
---|
| 643 | line.
|
---|
| 644 |
|
---|
| 645 | \begin{figure}[htb]
|
---|
| 646 | \centerline{
|
---|
| 647 | \includegraphics[width=0.75\textwidth,draft=\DRAFTFIGS]{figs/swaths}}
|
---|
| 648 | \centerline{\small
|
---|
| 649 | {\bf (a)}\hspace{0.3\textwidth} {\bf (b)}
|
---|
| 650 | \hspace{0.2\textwidth}}
|
---|
| 651 | \caption{Swaths of event surfaces. (a) VE swath. (b) EEE swath. }
|
---|
| 652 | \label{swaths}
|
---|
| 653 | \end{figure}
|
---|
| 654 |
|
---|
| 655 |
|
---|
| 656 | \subsection{Visual events and \plucker coordinates}
|
---|
| 657 |
|
---|
| 658 | \plucker coordinates allow an elegant description of event surfaces.
|
---|
| 659 | An event surface can be expressed as an intersection of three \plucker
|
---|
| 660 | hyperplanes, and thus avoiding explicit treatment of quadratic
|
---|
| 661 | surfaces. The non-linear EEE surfaces correspond to curves embedded in
|
---|
| 662 | the intersection of the \plucker hyperplanes.
|
---|
| 663 |
|
---|
| 664 | Let ${\cal H}$ be an arrangement~\cite{dcg-handbook} of hyperplanes in
|
---|
| 665 | ${\cal P}^5$ that correspond to \plucker coefficients of edges of the
|
---|
| 666 | scene polygons. The intersection of the arrangement ${\cal H}$ and the
|
---|
| 667 | \plucker quadric yields all visual
|
---|
| 668 | events~\cite{Teller92phd,p-rsls-97,Pu98-DSGIV}.
|
---|
| 669 |
|
---|
| 670 | An extremal line $l$ intersects four generator edges. Consequently,
|
---|
| 671 | the corresponding \plucker point $\ppoint_l$ lies on four \plucker
|
---|
| 672 | hyperplanes. In 5D the four hyperplanes define an edge of the
|
---|
| 673 | arrangement ${\cal H}$. Thus, we can find all extremal lines of a
|
---|
| 674 | given set of polygons by examining the edges of ${\cal H}$ for
|
---|
| 675 | intersections with the \plucker quadric~\cite{Pu98-DSGIV}.
|
---|
| 676 |
|
---|
| 677 |
|
---|
| 678 | Consider the situation depicted in Figure~\ref{swaths}. In line space
|
---|
| 679 | the event surfaces correspond to curves embedded in the \plucker
|
---|
| 680 | quadric. In general these curves are conics defined by an intersection
|
---|
| 681 | of the 2D-faces of ${\cal H}$ with the \plucker quadric (see
|
---|
| 682 | Figure~\ref{5Dswaths}).
|
---|
| 683 |
|
---|
| 684 | \begin{figure}[htb]
|
---|
| 685 | \centerline{
|
---|
| 686 | \includegraphics[width=0.6\textwidth,draft=\DRAFTFIGS]{figs/ipswaths}}
|
---|
| 687 | \caption{3D swaths correspond to conics on the Pl\"ucker quadric.}
|
---|
| 688 | \label{5Dswaths}
|
---|
| 689 | \end{figure}
|
---|
| 690 |
|
---|
| 691 |
|
---|
| 692 |
|
---|
| 693 | \section{Lines intersecting a polygon}
|
---|
| 694 |
|
---|
| 695 | \label{sec:rot3d_singlepoly}
|
---|
| 696 |
|
---|
| 697 | \plucker coordinates provide a tool to map lines from primal space to
|
---|
| 698 | points in line space. This mapping allows to perform operations of
|
---|
| 699 | sets of lines using set theoretical operations on the corresponding
|
---|
| 700 | sets of points. In polygonal scenes the {\em elementary set of lines}
|
---|
| 701 | is formed by lines intersecting a given polygon.
|
---|
| 702 |
|
---|
| 703 |
|
---|
| 704 | Assume that a convex polygon $P$ is defined by edges $e_i, 0\leq i <
|
---|
| 705 | n$ that are oriented counterclockwise. The set of lines ${\cal L}_P$
|
---|
| 706 | intersecting the polygon that are oriented in the direction of the
|
---|
| 707 | polygon's normal satisfies:
|
---|
| 708 |
|
---|
| 709 |
|
---|
| 710 | \begin{equation}
|
---|
| 711 | {\cal L}_P = \{ l | l \in (R^3, R^3), side(\bpi_l, \bpi_{e_i}) \leq 0, \forall i \in \langle 0,n) \},
|
---|
| 712 | \label{eq:halfspaces}
|
---|
| 713 | \end{equation}
|
---|
| 714 |
|
---|
| 715 | where $\bpi_l$ are \plucker coordinates of line $l$ and $\bpi_{e_i}$ are
|
---|
| 716 | \plucker coordinates of $i$-th edge of the polygon. Substituting the
|
---|
| 717 | Eq.~\ref{eq:side} and rewriting the equation in terms of a set of
|
---|
| 718 | \plucker points we get:
|
---|
| 719 |
|
---|
| 720 | \begin{equation}
|
---|
| 721 | \begin{array}{ll}
|
---|
| 722 | {\cal F}_P & = \{ \ppoint | \ppoint \in {\cal P}^5, \bpi \times \bpi_{e_i} \leq 0, \forall i \in \langle 0,n) \} = \\
|
---|
| 723 | & = \{ \ppoint | \ppoint \in {\cal P}^5, \bpi \odot \bomega_{e_i} \leq 0, \forall i \in \langle 0,n) \},
|
---|
| 724 | \end{array}
|
---|
| 725 | \label{eq:feasible}
|
---|
| 726 | \end{equation}
|
---|
| 727 |
|
---|
| 728 | where ${\cal F}_P$ is a set of {\em feasible \plucker points} for
|
---|
| 729 | polygon $P$. Substituting Eq.~\ref{eq:def_halfspaces}
|
---|
| 730 | into~\ref{eq:feasible} we obtain:
|
---|
| 731 |
|
---|
| 732 | \begin{equation}
|
---|
| 733 | \begin{array}{ll}
|
---|
| 734 | {\cal F}_P & = \{ \ppoint | \ppoint \in {\cal P}^5, \bpi \in \pplane^-_{e_i}, \forall i \in \langle 0,n) \}
|
---|
| 735 | \end{array}
|
---|
| 736 | \label{eq:intersection}
|
---|
| 737 | \end{equation}
|
---|
| 738 |
|
---|
| 739 | Thus the set of feasible \plucker points is defined by an intersection
|
---|
| 740 | of halfspaces defined by the \plucker hyperplanes corresponding to edges of the
|
---|
| 741 | polygon. The set of {\em stabbers} ${\cal S}_P$ is then defined as an
|
---|
| 742 | intersection of ${\cal F}_P$ with the \plucker quadric:
|
---|
| 743 |
|
---|
| 744 | \begin{equation}
|
---|
| 745 | {\cal S}_P = \{ \ppoint | \ppoint \in {\cal F}_P, \bpi \odot \bpi = 0 \}.
|
---|
| 746 | \end{equation}
|
---|
| 747 |
|
---|
| 748 | The stabbers are \plucker points corresponding to the real lines
|
---|
| 749 | intersecting the polygon that are oriented in the direction of the
|
---|
| 750 | normal. Similarly we can define the sets of {\em reverse feasible
|
---|
| 751 | \plucker points} ${\cal F}^-_P$ and {\em reverse stabbers} ${\cal
|
---|
| 752 | S}^-_P$ that correspond to opposite oriented lines intersecting the
|
---|
| 753 | polygon:
|
---|
| 754 |
|
---|
| 755 | \begin{equation}
|
---|
| 756 | \begin{array}{ll}
|
---|
| 757 | {\cal F}^-_P & = \{ \ppoint | \ppoint \in {\cal P}^5, \ppoint \in \pplane^+_{e_i}, \forall i \in \langle 0,n) \} \\
|
---|
| 758 | {\cal S}^-_P & = \{ \ppoint | \ppoint \in {\cal F}^-_P, \bpi \odot \bpi = 0 \}.
|
---|
| 759 | \end{array}
|
---|
| 760 | \end{equation}
|
---|
| 761 |
|
---|
| 762 |
|
---|
| 763 |
|
---|
| 764 |
|
---|
| 765 | \section{Lines between two polygons}
|
---|
| 766 | \label{sec:rot3d_twopoly}
|
---|
| 767 |
|
---|
| 768 | The above presented definitions of elementary line sets allow to
|
---|
| 769 | handle visibility computations by means of set operations on the sets
|
---|
| 770 | of feasible \plucker points. Visibility between two polygons $P_j$
|
---|
| 771 | and $P_k$ can be determined by constructing an intersection of
|
---|
| 772 | feasible sets of the two polygons ${\cal F}_{P_j}$ and ${\cal
|
---|
| 773 | F}_{P_k}$ and subtracting all feasible sets of polygons lying between
|
---|
| 774 | $P_j$ and $P_k$. To obtain the set of unoccluded stabbers we intersect
|
---|
| 775 | the resulting feasible set with the \plucker quadric.
|
---|
| 776 |
|
---|
| 777 | Further in this chapter we restrict our discussion to visibility from
|
---|
| 778 | a given {\em source polygon} $P_S$. Given any {\em occluder polygon}
|
---|
| 779 | $P_j$ we first describe lines intersecting both $P_S$ and $P_j$. Lines
|
---|
| 780 | between $P_S$ and $P_j$ can be described by an intersection of their
|
---|
| 781 | feasible line sets:
|
---|
| 782 |
|
---|
| 783 | \begin{equation}
|
---|
| 784 | {\cal F}_{P_SP_j} = {\cal F}_{P_S} \cap {\cal F}_{P_j}
|
---|
| 785 | \end{equation}
|
---|
| 786 |
|
---|
| 787 | and thus
|
---|
| 788 |
|
---|
| 789 | \begin{equation}
|
---|
| 790 | {\cal S}_{P_SP_j} = {\cal S}_{P_S} \cap {\cal S}_{P_j}.
|
---|
| 791 | \end{equation}
|
---|
| 792 |
|
---|
| 793 | The feasible \plucker points are defined by an intersection of
|
---|
| 794 | halfspaces corresponding to edges of $P_S$ and $P_j$. These halfspaces
|
---|
| 795 | define a {\em blocker polyhedron} $B_{P_SP_j}$ that is described in
|
---|
| 796 | the next section.
|
---|
| 797 |
|
---|
| 798 |
|
---|
| 799 | \subsubsection{Blocker polyhedron}
|
---|
| 800 |
|
---|
| 801 | The blocker polyhedron describes lines intersecting the source
|
---|
| 802 | polygon and the given occluder. The blocker polyhedron can be seen
|
---|
[277] | 803 | as an extension of the blocker polygon discussed above for the from-region
|
---|
[249] | 804 | visibility in 3D scenes. The blocker polyhedron is a 5D polyhedron in
|
---|
| 805 | a 5D projective space. To avoid singularities in the projection from
|
---|
| 806 | ${\cal P}^5$ to ${\cal R}^5$ the polyhedron can be embedded in ${\cal
|
---|
| 807 | R}^6$ similarly to the embedding of blocker polygon in ${\cal R}^3$
|
---|
| 808 | (see Section~\ref{sec:blocker_polygon}). Then the polyhedron actually
|
---|
| 809 | represents a 6D pyramid with an apex at the origin of ${\cal R}^6$.
|
---|
| 810 |
|
---|
| 811 |
|
---|
| 812 | \subsubsection{Cap planes}
|
---|
| 813 |
|
---|
| 814 | The blocker polyhedron is defined by an intersection of halfspaces
|
---|
| 815 | defined by \plucker planes that are mappings of edges of the source
|
---|
| 816 | polygon and the occluder. As stated above the blocker polyhedron
|
---|
| 817 | represents the set of feasible \plucker points ${\cal F}_{P_SP_j}$
|
---|
| 818 | including points not intersecting the \plucker quadric that correspond
|
---|
| 819 | to imaginary lines. We bound the polyhedron by {\em cap planes}
|
---|
| 820 | aligned with the \plucker quadric so that the resulting polyhedron is
|
---|
| 821 | a tighter representation of the stabbers ${\cal S}_{P_SP_j}$. We need
|
---|
| 822 | to ensure that the resulting polyhedron fully contains the stabbers
|
---|
| 823 | ${\cal S}_{P_SP_j}$, i.e. contains the cross-section of the \plucker
|
---|
| 824 | quadric and ${\cal F}_{P_SP_j}$.
|
---|
| 825 |
|
---|
| 826 | The cap planes provide the following benefits:
|
---|
| 827 |
|
---|
| 828 | \begin{itemize}
|
---|
| 829 | \item The computation is localized to the proximity of the \plucker
|
---|
| 830 | quadric. This reduces the combinatorial complexity of data structure
|
---|
| 831 | representing an arrangement of the blocker polyhedra.
|
---|
| 832 |
|
---|
| 833 | \item The blocker polyhedron is always bounded. Although the set of
|
---|
| 834 | lines between two convex polygons is bounded, the set of feasible
|
---|
| 835 | \plucker points can be unbounded at the ``direction'' of imaginary
|
---|
| 836 | lines. Adding the cap planes we make sure that the polyhedron is
|
---|
| 837 | bounded, which allows its easier treatment. By using the cap planes
|
---|
| 838 | we avoid the handling of very oblong, almost unbounded polyhedra,
|
---|
| 839 | which improves numerical stability of a floating point
|
---|
| 840 | implementation of the algorithm.
|
---|
| 841 | \end{itemize}
|
---|
| 842 |
|
---|
| 843 |
|
---|
| 844 | We used two cap planes to bound the polyhedron, one for each side of
|
---|
| 845 | the \plucker quadric (a side is given by the sign of $\bpi \odot
|
---|
| 846 | \bpi$). The cap planes are computed as tangents to the \plucker
|
---|
| 847 | quadric at the center of the set of stabbers ${\cal S}_{P_SP_j}$. The
|
---|
| 848 | planes are translated each at the opposite direction making sure that
|
---|
| 849 | they include the whole set ${\cal S}_{P_SP_j}$.
|
---|
| 850 |
|
---|
| 851 |
|
---|
| 852 |
|
---|
| 853 | \subsection{Intersection with the \plucker quadric}
|
---|
| 854 | \label{sec:stabbers}
|
---|
| 855 |
|
---|
| 856 | Given a blocker polyhedron representing the set of feasible lines
|
---|
| 857 | ${\cal F}_{P_SP_j}$ we can compute an intersection of the edges of the
|
---|
| 858 | polyhedron with the \plucker quadric to determine the set of extremal
|
---|
| 859 | lines bounding the set of stabbers ${\cal S}_{P_SP_j}$. An
|
---|
| 860 | intersection of an edge of the blocker polyhedron with the \plucker
|
---|
| 861 | quadric results in at most two {\em extremal \plucker points} that
|
---|
| 862 | correspond extremal lines\footnote{Neglecting the case that the whole
|
---|
| 863 | edge is embedded in the \plucker quadric, which results in infinite
|
---|
| 864 | number of extremal lines.}. Given an edge of the blocker polyhedron
|
---|
| 865 | the intersection with the \plucker quadric is computed by solving the
|
---|
| 866 | quadratic equation (Eq.~\ref{eq:plucker_quadric}). A robust algorithm
|
---|
| 867 | for computing this intersection was developed by
|
---|
| 868 | Teller~\cite{TH83}.
|
---|
| 869 |
|
---|
| 870 |
|
---|
| 871 | Intersecting all edges of the blocker polyhedron with the \plucker
|
---|
| 872 | quadric yields all extremal lines of ${\cal
|
---|
| 873 | S}_{P_SP_j}$~\cite{Teller:1992:CAA,Pu98-DSGIV}. See
|
---|
| 874 | Figure~\ref{fig:rot3_visrays} for an example of extremal lines
|
---|
| 875 | computed for the given source polygon and a set of three occluders.
|
---|
| 876 |
|
---|
| 877 |
|
---|
| 878 | \begin{figure}[htb]
|
---|
| 879 | \centerline{
|
---|
| 880 | \includegraphics[width=0.5\textwidth,draft=\DRAFTIMAGES]{images/rot3_visrays}}
|
---|
| 881 | \caption{Extremal lines for the given source polygon (yellow) and three occluders.}
|
---|
| 882 | \label{fig:rot3_visrays}
|
---|
| 883 | \end{figure}
|
---|
| 884 |
|
---|
| 885 | The intersection of the 2D faces of the blocker polyhedron with the
|
---|
| 886 | \plucker quadric yields swaths of event surfaces of the set of
|
---|
| 887 | stabbers ${\cal S}_{P_SP_j}$~\cite{Teller92phd}. In general the
|
---|
| 888 | intersection results in 1D conics.
|
---|
| 889 |
|
---|
| 890 | We can avoid the explicit treatment of conics in 5D by computing the
|
---|
| 891 | local topology of the edges of the blocker polyhedron and constructing
|
---|
| 892 | the swaths in primal space between the topologically connected
|
---|
| 893 | extremal lines~\cite{Teller92phd}. The local topology of an extremal
|
---|
| 894 | \plucker point is given by connections with extremal \plucker points
|
---|
| 895 | embedded in the same 2D face of the blocker polyhedron. A 2D face of
|
---|
| 896 | the blocker polyhedron is given by three \plucker hyperplanes. Thus
|
---|
| 897 | the pairs of extremal \plucker points defined by the subset of the
|
---|
| 898 | same three \plucker hyperplanes define a swath.
|
---|
| 899 |
|
---|
| 900 |
|
---|
| 901 |
|
---|
[277] | 902 | % For solution of some from-region visibility problems (e.g. PVS
|
---|
| 903 | % computation, region-to-region visibility) the event swaths need not be
|
---|
| 904 | % reconstructed. For example the visibility culling algorithm that will
|
---|
| 905 | % be discussed in Section~\ref{sec:rot3pvs} only computes extremal
|
---|
| 906 | % \plucker points and uses them to test an existence of a set of
|
---|
| 907 | % stabbers of a given size.
|
---|
[249] | 908 |
|
---|
| 909 |
|
---|
| 910 | \subsection{Size of the set of lines}
|
---|
| 911 |
|
---|
| 912 | \label{sec:size_measure}
|
---|
| 913 |
|
---|
| 914 | Computing a size measure of a given set of lines is useful for most
|
---|
| 915 | visibility algorithms. The computed size measure can be used to drive
|
---|
| 916 | the subdivision of the given set of lines or to bound the maximal
|
---|
| 917 | error of the algorithm. An analytic algorithm can use the computed
|
---|
| 918 | size measure for thresholding by a given $\epsilon$-size to discard
|
---|
| 919 | very small line sets. A discrete algorithm can use the size measure
|
---|
| 920 | to determine the required density of sampling.
|
---|
| 921 |
|
---|
| 922 | The size of a set of lines for the from-point visibility can be
|
---|
| 923 | formulated easily: the size is given by the area of the intersection
|
---|
| 924 | of the line set with a plane. This corresponds to quantifying
|
---|
| 925 | visibility of an object according to its projected area. Such a size
|
---|
| 926 | is determined in the solution space (viewport). Alternatively we could
|
---|
| 927 | use a ``viewport independent measure'' given by a solid angle formed by
|
---|
| 928 | the visible part of an object. The size measure for the from-region
|
---|
| 929 | visibility problems is more complicated for the following reasons:
|
---|
| 930 |
|
---|
| 931 | \begin{itemize}
|
---|
| 932 | \item The domain of the solution space is four-dimensional.
|
---|
| 933 | \item The solution space of the from-region visibility algorithm
|
---|
| 934 | generally does not correspond to the solution space of the
|
---|
| 935 | application. For example, a visible surface algorithm using a
|
---|
| 936 | precomputed PVS works in a 2D domain induced by the given viewport.
|
---|
| 937 | \end{itemize}
|
---|
| 938 |
|
---|
| 939 |
|
---|
| 940 | \subsubsection{General size measure}
|
---|
| 941 |
|
---|
| 942 | A size of a set of lines for the from-region visibility can be
|
---|
| 943 | computed by evaluating a 4D integral. Using \plucker coordinates we
|
---|
| 944 | can compute a volume of the 4D hyper-surface corresponding to the
|
---|
| 945 | given set of lines. The volume however depends on a way of projecting
|
---|
| 946 | the blocker polyhedron from ${\cal P}^5$ to ${\cal R}^5$. This
|
---|
| 947 | projection has a similar role as the selection of the viewport for the
|
---|
| 948 | from-point visibility problem. We can project the blocker polyhedron
|
---|
| 949 | from ${\cal P}^5$ to ${\cal R}^5$ by projecting it to a 5D hyperplane
|
---|
| 950 | defined by certain reference direction, e.g. the ``center-line'' of
|
---|
| 951 | the given set of lines. Pu proposed a different size measure based on
|
---|
| 952 | measuring the {\em angular spread} and the {\em distance} between
|
---|
| 953 | lines~\cite{Pu98-DSGIV}. Both these quantities can be evaluated in
|
---|
| 954 | terms of \plucker coordinates of the set of extremal lines of the
|
---|
| 955 | given line set.
|
---|
| 956 |
|
---|
| 957 |
|
---|
| 958 | \subsubsection{Size measure for the PVS computation}
|
---|
| 959 |
|
---|
| 960 | It can be difficult to relate the size measures described above to
|
---|
| 961 | the domain of the result of a subsequently applied visibility
|
---|
| 962 | algorithm. We need a simple scheme that fits to the context of the
|
---|
| 963 | target application. In this section we suggest a size measure
|
---|
| 964 | designed for the PVS computation. When computing a PVS we are
|
---|
| 965 | interested in measuring the size of the set of unoccluded lines
|
---|
| 966 | (stabbers) between the source polygon $P_S$ and a given scene
|
---|
| 967 | polygon. If this size is below an $\epsilon$-threshold, we can
|
---|
| 968 | possibly exclude the polygon from the PVS. We suggest to use an
|
---|
| 969 | estimate of the minimal angle between the stabbers at a point inside
|
---|
| 970 | $P_S$. The idea is to estimate the minimal projected diameter of a
|
---|
| 971 | polygon visible through the given set of lines from any point inside
|
---|
| 972 | $P_S$. This estimate can be used to bound a maximal error of an image
|
---|
| 973 | synthesized with respect to any viewpoint inside $P_S$ for the case that
|
---|
| 974 | the corresponding set of lines is neglected.
|
---|
| 975 |
|
---|
| 976 | %% The size measure approximates the minimal spatial angle given by a
|
---|
| 977 | %% cross-section of the given set of lines parallel to the source polygon
|
---|
| 978 | %% $P_S$ and the center of $P_S$.
|
---|
| 979 |
|
---|
| 980 | Given a blocker polyhedron ${\cal F}_{P_SP_j}$ the proposed size
|
---|
| 981 | measure can be evaluated as follows:
|
---|
| 982 |
|
---|
| 983 | \begin{enumerate}
|
---|
| 984 |
|
---|
| 985 | \item
|
---|
| 986 | Compute the extremal lines of the corresponding set of stabbers ${\cal
|
---|
| 987 | S}_{P_SP_j}$ as described in Section~\ref{sec:stabbers}.
|
---|
| 988 |
|
---|
| 989 | \item For each polygon edge $e_i$ bounding the stabbers
|
---|
| 990 | determine an extremal line $l_{mi}$ with a maximal distance from the
|
---|
| 991 | edge.
|
---|
| 992 |
|
---|
| 993 | \item For each edge $e_i$ compute a shortest line segment $z_i$
|
---|
| 994 | connecting $e_i$ and $l_{mi}$. The length of this line segment is
|
---|
| 995 | then scaled according to its distance from the source polygon,
|
---|
| 996 | i.e. we compute an angle $\alpha_i$ between the lines connecting the
|
---|
| 997 | center of the source polygon and the endpoints of $z_i$.
|
---|
| 998 |
|
---|
| 999 | \item Select a minimal angle $\alpha_m$ of all $\alpha_i$ as the
|
---|
| 1000 | estimate of the size of the given line set.
|
---|
| 1001 |
|
---|
| 1002 | \end{enumerate}
|
---|
| 1003 |
|
---|
| 1004 | The evaluation of the size measure is depicted in
|
---|
| 1005 | Figure~\ref{fig:linesize}.
|
---|
| 1006 |
|
---|
| 1007 | \begin{figure}[htb]
|
---|
| 1008 | \centerline{
|
---|
| 1009 | \includegraphics[width=0.4\textwidth,draft=\DRAFTFIGS]{figs/linesize}}
|
---|
| 1010 | \caption{A 2D example of evaluation of the size of a set of lines. The three
|
---|
| 1011 | line segments
|
---|
| 1012 | $z_1$, $z_2$ and $z_3$ maximize the distance of the corresponding
|
---|
| 1013 | occluder edges from the extremal lines. The line segment $z_3$ spans
|
---|
| 1014 | a minimal angle $\alpha_m$ with respect to the center of the source
|
---|
| 1015 | polygon $P_S$.}
|
---|
| 1016 | \label{fig:linesize}
|
---|
| 1017 | \end{figure}
|
---|
| 1018 |
|
---|
| 1019 | The angle $\alpha_m$ can be related to the angular resolution of the
|
---|
| 1020 | synthesized image. Given the resolution of the image we can threshold
|
---|
| 1021 | ``small'' line sets with $\alpha_m$ below the corresponding angular
|
---|
| 1022 | threshold to achieve a sub-pixel precision of the rendering algorithm.
|
---|
| 1023 | This measure can also be applied to deal with the finite precision of
|
---|
| 1024 | the floating point arithmetics by using a small $\epsilon$-threshold
|
---|
| 1025 | to handle numerical inaccuracies.
|
---|
| 1026 |
|
---|
[266] | 1027 |
|
---|
| 1028 | \section{Summary}
|
---|
| 1029 |
|
---|
| 1030 | In this chapter we discussed the relation of sets of lines in 3D and
|
---|
| 1031 | the polyhedra in \plucker coordinates. We proposed a general size
|
---|
| 1032 | measure for a set of lines described by a blocker polyhedron and a
|
---|
| 1033 | size measure designed for the computation of PVS.
|
---|
| 1034 |
|
---|