Spectral bases for 3 D shapes representation Spectral
Spectral bases for 3 D shapes representation
Spectral bases – reminder n Last week we spoke of Fourier analysis ¡ 1 D sine/cosine bases for signals:
Spectral bases – reminder n Last week we spoke of Fourier analysis ¡ 2 D bases for 2 D signals (images)
How about 3 D shapes? n Problem: general 3 D shapes cannot be described as height functions Height function, regularly sampled above a 2 D domain General 3 D shapes
Irregular meshes n In graphics, shapes are mostly represented by triangle meshes
Irregular meshes n In graphics, shapes are mostly represented by triangle meshes n Geometry: Vertex coordinates (x 1, y 1, z 1) (x 2, y 2, z 2). . . (xn, yn, zn) n Connectivity: List of triangles (i 1, j 1, k 1) (i 2, j 2, k 2). . . (im, jm, km)
Irregular meshes n In graphics, shapes are mostly represented by triangle meshes ¡ The connectivity (the graph) can be very efficiently encoded n ¡ About 2 bits per vertex only The geometry (x, y, z) is heavy! n When stored naively, at least 12 bits per coordinate are needed, i. e. 36 bits per vertex
How to define efficient bases? n Extension of the 2 D DCT basis to a general (irregular) mesh DCT ? ? ?
Basis shapes n We need a collection of basis functions ¡ ¡ n n First basis functions will be very smooth, slowly-varying Last basis functions will be high-frequency, oscillating We will represent our shape (mesh geometry) as a linear combination of the basis functions We will induce the basis functions from the mesh connectivity! ¡ We assume that the connectivity is known to the decoder side (it is transferred first)
The Mesh Laplacian operator n Measures the local smoothness at each mesh vertex
Laplacian operator in matrix form L matrix
Laplacian matrix n n L is constructed based on the connectivity alone So, if the decoder got the connectivity first, it can construct L
Spectral bases n n L is a symmetric n n matrix Perform spectral analysis of L! 1 L = T 2 n Basis vectors Frequencies, sorted in ascending order
How to represent our mesh geometry in the spectral basis? n X, Y, Z Rn. Decompose in the spectral basis:
How to represent our mesh geometry in the spectral basis? n Decompose the mesh geometry in the spectral basis: The first components are low-frequency The last components are high-frequency
The spectral basis n First functions are smooth and slow, last oscillate a lot chain connectivity horse connectivity 2 nd basis function spectral basis of L = the DCT basis 10 th basis function 100 th basis function
Why this works? n Low-frequency basis vectors are smooth and slowly-varying: ¡ The first basis vector: ¡ It is the smoothest possible function (Laplacian is constant zero on it)
Why this works? n Low-frequency basis vectors are smooth and slowly-varying: ¡ The first basis vector: ¡ Lb 1 = 0 because all the rows of L sum to zero
Why this works? n Low-frequency basis vectors are smooth and slowly-varying: ¡ The following basis vectors: The frequency is small the Laplacian operator gives small values the shape of the function is smooth
Why this works? n High-frequency basis vectors are nonsmooth, oscillating: The frequency is large the Laplacian operator gives large values the shape of the function is less smooth!
Geometry compression As in JPEG compression, drop the high-frequency components!
Geometry compression Increasing number of participating basis vectors. The less coefficients are dropped, the less shape information is lost
Technical algorithm n The encoding side: ¡ ¡ ¡ n Compute the spectral bases from mesh connectivity Represent the shape geometry in the spectral basis and decide how many coeffs. to leave (K) Store the connectivity and the K non-zero coefficients The decoding side: ¡ ¡ Compute the first K spectral bases from the connectivity Combine them using the K received coefficients and get the shape
Challenges and trade-offs n Performing spectral decomposition of a large matrix (n>1000) is prohibitively expensive (O(n 3)) ¡ ¡ n Today’s meshes come with 50, 000 and more vertices We don’t want the decompressor to work forever! Solution: like in JPEG, work on small blocks:
Challenges and trade-offs n As in JPEG, blocking artifacts appear for low bit rates, because the compression is lossy (too much information is lost)
Further info n “Spectral Mesh Compression”, Zachi Karni and Craig Gotsman, ACM SIGGRAPH 2000 http: //www. mpi-inf. mpg. de/~karni/publications/spectral. pdf n “ 3 D Mesh compression using fixed spectral bases”, Z. Karni and C. Gotsman, Graphics Interface, 2001 http: //www. mpi-inf. mpg. de/~karni/publications/fixed. pdf
See you next time
- Slides: 27