You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
However, it is very important to note that not all 3D objects can be represented using boundary representation with most common 2D mesh data structures without issues.
25
+
However, it is very important to note that representing certain 3D objects using boundary representation with the most common 2D mesh data structures can cause some issues.
26
26
The main culprits are \emph{non-manifold} objects, which have properties that make representing them ambiguous, as well as objects with holes, which need to be stored using certain techniques.
27
27
External data structures might also be needed to keep track of disconnected set of objects, since it might not be possible to have access to them otherwise.
28
28
@@ -57,10 +57,13 @@ \section{What is boundary representation?}
57
57
For our purposes, what the above theorems mean is that if we have a comprehensive method to represent a 2D surface, we can also use it to implicitly represent many 3D volumes with minimal modifications.
58
58
The specifics of these modifications depend on the data structure that we are using, but it often is as simple as adding an extra coordinate for each point (\ie\ $(x, y)$ becoming $(x, y, z)$).
59
59
60
-
\section{Objects with holes}
60
+
\section{Dealing with exceptions}
61
61
62
-
As hinted in the last paragraph, there are however some 3D volumes that are tricky to store using boundary representation.
63
-
The most obvious ones are \emph{objects with 3D holes} (\ie\ cavities)\marginnote{hole}\index{hole}\marginnote{cavity}\index{cavity}, since just like the paper sheet example described previously, they are bounded by one outer surface and possibly several inner surfaces (one per cavity).
62
+
As hinted in the last paragraph, there are however some 3D volumes that are tricky to store using boundary representation: objects with holes and non-manifolds.
63
+
64
+
\subsection{Objects with holes}
65
+
66
+
\emph{Objects with 3D holes} (\ie\ cavities)\marginnote{hole}\index{hole}\marginnote{cavity}\index{cavity} are the most obvious problematic objects, since just like the paper sheet example described previously, they are bounded by one outer surface and possibly several inner surfaces (one per cavity).
64
67
Less obviously, objects with 2D faces with holes can have exactly the same problem with certain data structures (Figure~\ref{subfig:hole}), since a surface can be bounded by an outer ring and possibly multiple inner rings.
65
68
66
69
\begin{figure}
@@ -104,7 +107,7 @@ \section{Objects with holes}
104
107
% In order to support these objects, many data structures have an explicit list of all existing objects, from which it is possible to access them.
105
108
% This list can be as simple as an array of pointers or ids, or as complex as a spatial index (\eg\ an R-Tree or $k$-d tree).
106
109
107
-
\section{Non-manifolds}
110
+
\subsection{Non-manifolds}
108
111
109
112
In addition to the above mentioned objects with holes, the other kind of objects that are tricky to store using boundary representation are \emph{non-manifolds}\marginnote{non-manifold}\index{non-manifold}.
110
113
However, in order to precisely describe what these are, we need to introduce some concepts from topology, which will allow us to describe them in terms of topological characteristics.
Moving back to the storage of 3D models using boundary representation, there are a large number of data structures that can be used for this purpose.
235
+
Moving back to the storage of 3D models using boundary representation, there are a large number of 2D mesh data structures that can be used for this purpose.
233
236
However, there are three broad approaches: (i) data structures using triangles as base elements; (ii) data structures that use edges or half-edges as base elements; and (iii) data structures that have polygons, edges and vertices as base elements.
234
237
We will show one or two characteristic examples for each approach, with the understanding that there are many possible variations of each of them.
This is often desirable because in a triangle mesh, each triangle is known to have only up to three adjacent triangles and only up to three incident vertices, whereas in a polygon it can be any number.
240
243
Because of this, a triangle-based data structures (Figure~\ref{fig:2-simplex}) can use fixed-length data structures to store all their elements (\eg\ arrays), which are more efficient.
241
244
245
+
The typical approach to obtain a triangulation of the surfaces of a 3D object is to apply the constrained Delaunay triangulation, or simply an arbitrary constrained triangulation, to each surface (polygon).
246
+
This involves transforming the 3D coordinate of the vertices of the surface to a 2D system; this coordinate system is on the plane defined by the surface.
247
+
Notice that this assumes that all input surfaces of the b-rep are roughly planar, if it is not the case then finding a projection that preserves the topology of the polygon might not be possible.
\section{Boundary representation and fields: isosurfaces}
381
+
382
+
Throughout most of this chapter, we have focussed on modelling objects using boundary representation, and indeed it is rare to find this term linked to fields.
383
+
However, it is worth noting that there is a clear equivalence between 3D objects represented by their 2D boundary and 3D fields (\ie\ trivariate fields) represented using a set of isosurfaces.
384
+
In fact, the same kinds of techniques and data structures are often used in both cases.
385
+
386
+
Given a trivariate field $f(x,y,z) = a$, an isosurface is the set of points in space where $f(x,y,z) = a_0$, where $a_0$ is a constant.
are the three-dimensional analogous concept to isolines (also called contour lines), which have been traditionally used to represent the elevation in topographic maps.
390
+
Figure~\ref{fig:isosurface} shows one concrete example.
\caption[An oceanographic dataset with three isosurfaces]{An oceanographic dataset where each point has the temperature of the water, and three isosurfaces extracted (for a value of respectively 2.0, 2.5 and 3.5) from this dataset.}%
0 commit comments