Skip to content

Commit 6fb62a5

Browse files
committed
merged conversion chapter
1 parent 3c59cfa commit 6fb62a5

17 files changed

+110
-256
lines changed

3dbook.tex

+1-2
Original file line numberDiff line numberDiff line change
@@ -233,8 +233,7 @@
233233
\include{3dcm/3dcm} %- 10
234234
\include{bim/bim} %- 11
235235
\include{LoD2recon/LoD2recon} %- 12
236-
\include{conversion/conversion} %- 13
237-
\include{apps/apps} %- 14
236+
\include{apps/apps} %- 13
238237
%----------------------------------------------------------------------------------------
239238

240239

brep/brep.tex

+49-8
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
\graphicspath{{brep/}}
66
% \renewcommand*{\thelesson}{1.2}
77

8-
\chapter{Boundary representation}%
8+
\chapter{Boundary representation, surfaces and meshes}%
99
\label{chap:brep}
1010

1111
In the first chapter, we discussed how 3D modelling is done through a series of abstractions of the real world.
@@ -22,7 +22,7 @@ \chapter{Boundary representation}%
2222
\label{fig:cube}
2323
\end{marginfigure}
2424

25-
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.
2626
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.
2727
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.
2828

@@ -57,10 +57,13 @@ \section{What is boundary representation?}
5757
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.
5858
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)$).
5959

60-
\section{Objects with holes}
60+
\section{Dealing with exceptions}
6161

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).
6467
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.
6568

6669
\begin{figure}
@@ -104,7 +107,7 @@ \section{Objects with holes}
104107
% 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.
105108
% 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).
106109

107-
\section{Non-manifolds}
110+
\subsection{Non-manifolds}
108111

109112
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}.
110113
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.
@@ -227,9 +230,9 @@ \section{Topological concepts}
227230
\label{fig:mobius}
228231
\end{figure}
229232

230-
\section{Data structures for meshes}
233+
\section{Data structures for 2D meshes}
231234

232-
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.
233236
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.
234237
We will show one or two characteristic examples for each approach, with the understanding that there are many possible variations of each of them.
235238

@@ -239,6 +242,10 @@ \subsection{Triangle-based structures}
239242
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.
240243
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.
241244

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.
248+
242249
\begin{figure}
243250
\centering
244251
\begin{subfigure}[b]{0.27\linewidth}
@@ -370,6 +377,40 @@ \subsection{Incidence graphs}
370377
\label{fig:incidencegraph}
371378
\end{figure}
372379

380+
\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.
387+
Isosurfaces, also called \emph{level sets},
388+
\marginnote{isosurface}\index{isosurface}\marginnote{level set}\index{level set}
389+
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.
391+
\begin{figure*}
392+
\centering
393+
\begin{subfigure}[b]{0.28\linewidth}
394+
\centering
395+
\includegraphics[width=\textwidth]{figs/isosurface2}
396+
\caption{}
397+
\end{subfigure}%
398+
\qquad
399+
\begin{subfigure}[b]{0.28\linewidth}
400+
\centering
401+
\includegraphics[width=\textwidth]{figs/isosurface25}
402+
\caption{}
403+
\end{subfigure}
404+
\qquad
405+
\begin{subfigure}[b]{0.28\linewidth}
406+
\centering
407+
\includegraphics[width=\textwidth]{figs/isosurface3}
408+
\caption{}
409+
\end{subfigure}
410+
\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.}%
411+
\label{fig:isosurface}
412+
\end{figure*}
413+
373414
%%%
374415
%
375416
\section{Exercises}
File renamed without changes.
File renamed without changes.
File renamed without changes.

conversion/conversion.tex

-183
This file was deleted.
-285 KB
Binary file not shown.

0 commit comments

Comments
 (0)