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}^2 \to \mathbb{R}</math> where the value at each position <math>(x,y,z)</math> corresponds to a density.
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]]