3D Representations: Difference between revisions
No edit summary |
|||
(11 intermediate revisions by the same user not shown) | |||
Line 7: | Line 7: | ||
===Light Field=== | ===Light Field=== | ||
This is similar to a collection of images. | {{main | Light field}} | ||
However, instead of thinking of it as a set of images, each pixel represents the color along a ray in 3D space. | This is similar to a collection of images.<br> | ||
However, instead of thinking of it as a set of images, each pixel represents the color along a ray in 3D space.<br> | |||
Thus, light fields are collections of rays in 3D space which can be modeled using the plenoptic function <math>F: \mathbb{R}^5 \to \mathbb{R}</math>.<br> | |||
3-dimensions for the starting point of the ray and 2 dimensions for the direction of the ray.<br> | |||
Typically we assume the rays lie in an empty/transparent space until they hit a surface thus rays can be models as lines which can be defined with 4 dimensions.<br> | |||
===Volume=== | ===Volume=== | ||
A volume is a dense 3D dataset <math>F: \mathbb{R}^ | A volume is a dense 3D dataset <math>F: \mathbb{R}^3 \to \mathbb{R}</math> where the value at each position <math>(x,y,z)</math> corresponds to a density.<br> | ||
Volume rendering is used project a 3D volume into a 2D image by sampling the volume along a ray for each pixel in the 2D image. | Volume rendering is used project a 3D volume into a 2D image by sampling the volume along a ray for each pixel in the 2D image.<br> | ||
Also known as a radiance field. These can be encoded as explicit functions or neural networks. | |||
===Signed Distance Field=== | ===Signed Distance Field=== | ||
Line 26: | Line 31: | ||
A list of vertices (<math>N \times 3</math>) and triangles (<math>N \times 3</math>). | A list of vertices (<math>N \times 3</math>) and triangles (<math>N \times 3</math>). | ||
The current standard representation used in real-time 3D applications. | The current standard representation used in real-time 3D applications. | ||
===CAD Models=== | |||
These are vector representations with relationships between objects. | |||
E.g. Object A is left of Object B by 5 centimeters. | |||
==Conversions== | ==Conversions== | ||
===Volume rendering=== | ===Volume rendering=== | ||
Volume rendering converts volumes to 2D images. | Volume rendering converts volumes to 2D images.<br> | ||
Differentiable volume rendering (NeRF) can convert posed 2D images to neural volumes. | |||
===Ray marching=== | ===Ray marching=== | ||
Ray marching converts signed distance fields to 2D images. | Ray marching converts signed distance fields to 2D images. | ||
===Rasterization=== | |||
Rasterization converts meshes to 2D images. | |||
===Marching cubes=== | ===Marching cubes=== | ||
Marching cubes converts volumes to meshes. | Marching cubes converts volumes or signed distance fields to meshes. | ||
===Reconstruction=== | |||
Structure from motion and multi view stereo methods can build point clouds from 2D images.<br> | |||
Meshing, or [[Surface Reconstruction]], works on converting this point clouds into meshes. | |||
==See Also== | ==See Also== | ||
* [[Image-based rendering]] | * [[Image-based rendering]] |
Latest revision as of 16:05, 6 March 2024
Ways to represent 3D objects and scenes.
Representations
Collection of images
Just a set of 2D images. Videos may also fall under this category.
Images may or may not have depth and may or may not be posed.
Light Field
This is similar to a collection of images.
However, instead of thinking of it as a set of images, each pixel represents the color along a ray in 3D space.
Thus, light fields are collections of rays in 3D space which can be modeled using the plenoptic function \(\displaystyle F: \mathbb{R}^5 \to \mathbb{R}\).
3-dimensions for the starting point of the ray and 2 dimensions for the direction of the ray.
Typically we assume the rays lie in an empty/transparent space until they hit a surface thus rays can be models as lines which can be defined with 4 dimensions.
Volume
A volume is a dense 3D dataset \(\displaystyle F: \mathbb{R}^3 \to \mathbb{R}\) where the value at each position \(\displaystyle (x,y,z)\) corresponds to a density.
Volume rendering is used project a 3D volume into a 2D image by sampling the volume along a ray for each pixel in the 2D image.
Also known as a radiance field. These can be encoded as explicit functions or neural networks.
Signed Distance Field
A signed distance field is a dense 3D dataset \(\displaystyle F: \mathbb{R}^2 \to \mathbb{R}\) where each position represents a distance to the nearest surface.
Positive values represent a point on the exterior of an object whereas negative values represent a point on the interior.
Ray marching is used to render signed distance fields into 2D images.
Point-clouds
A list of points in 3D (\(\displaystyle N \times 3\)). Points may also have color or other values.
Typically points are not semantically labeled so points are entirely unrelated to each other.
Mesh
A list of vertices (\(\displaystyle N \times 3\)) and triangles (\(\displaystyle N \times 3\)).
The current standard representation used in real-time 3D applications.
CAD Models
These are vector representations with relationships between objects.
E.g. Object A is left of Object B by 5 centimeters.
Conversions
Volume rendering
Volume rendering converts volumes to 2D images.
Differentiable volume rendering (NeRF) can convert posed 2D images to neural volumes.
Ray marching
Ray marching converts signed distance fields to 2D images.
Rasterization
Rasterization converts meshes to 2D images.
Marching cubes
Marching cubes converts volumes or signed distance fields to meshes.
Reconstruction
Structure from motion and multi view stereo methods can build point clouds from 2D images.
Meshing, or Surface Reconstruction, works on converting this point clouds into meshes.