Graphics Reference
In-Depth Information
images, the domain of n can correspond to the x - and y -coordinates,
. Similar to the
case in range images, other 2D parameterizations of the domain can be used with the normal
map representation such as the spherical (angle-based,
X × Y
)
domain. A suitable data structure for a normal map representation N is a three-channel matrix
(i.e., N
×
) or the cylindrical (
× Y
3). As in the case of range images, the horizontal and vertical matrix
indices correspond to the domain. Equally, the normal vectors N ij can be computed from the
positions of the 3D points and their neighbors while the surface is in a point cloud, a 3D mesh,
or a range image representation.
For a 3D mesh representation, a normal vector is computed at each polygonal facet f i by
taking the (normalized to unit length) cross product of any two edges of f i that are incident to
a common vertex ( e 1 =
+
1
×
M
+
1
×
( v 1 ,
,
e 2 =
( v 2 ,
v c )) as shown in Equation 2.11. Depending on the
right hand rule of the cross product the normal can point inward or outward from the surface,
where the latter is more appropriate for 3D surface representation.
v c )
( v 1
v c )
×
( v 2
v c )
n i
.
(2.11)
( v 1
v c )
×
( v 2
v c )
The normals at the mesh vertices can be estimated from the facet normals (located the at
centroids of the facets) using a weighted sum (according to the distances between the facet
centroids and vertices) of all the normals of the facets incident to the vertex or using any other
interpolation technique. A normal map can then be computed from the vertex normals in a
similar manner to the (previously discussed) conversion from point clouds to range images,
with the difference that the normals are used instead of the range values. The normal maps are
also used with 3D meshes (typically in computer graphics) where they are referenced from
the mesh elements (similar to the case of texture maps as explained earlier).
The normal map can reliably be computed from an XY -based range image representation,
R . The normal n ij is the normalized cross product between [1
,
,
x R ij ]
,
,
y R ij ]
0
and [0
1
is shown in Equation 2.12.
1
x ,
R ij
R ij
y ,
1
n ij =
.
(2.12)
R ij
x ,
R ij
y ,
All that is needed to compute the normals is the gradient of the range image,
R .A
sound approach (which is less prone to noise) for finding the gradient of R is to con-
volve it with kernels of partial derivatives of the Gaussian function G ( x
,
y
), that is,
( ( G R )
x
, ( G R )
y
( R
x , R
( G
x
, G
y
R ).
The normals of a 3D surface vary when the surface is transformed, although translation and
rigid scaling do not affect the orientation of the normals. Instead of recalculating the normals,
the original normals can be transformed accordingly. Let M be a linear 3
R
=
y )
)
=
R
3 transformation
matrix (not involving translation). It can be shown that the transformed surface normal equals
to the multiplication of the transposed inverse of M by the original normal, that is, n =
×
M 1 n .
The linear transformations are discussed in subsection 2.1.2.
Search WWH ::




Custom Search