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]] | ||