3D Representations: Difference between revisions
Created page with "Ways to represent 3D objects and scenes. ===Collection of images=== Just a set of 2D images. Videos may also fall under this category. Images may or may not have depth and..." |
|||
| (12 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
Ways to represent 3D objects and scenes. | Ways to represent 3D objects and scenes. | ||
==Representations== | |||
===Collection of images=== | ===Collection of images=== | ||
Just a set of 2D images. Videos may also fall under this category. | Just a set of 2D images. Videos may also fall under this category. | ||
| Line 6: | 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 25: | 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== | |||
===Volume rendering=== | |||
Volume rendering converts volumes to 2D images.<br> | |||
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.<br> | |||
Meshing, or [[Surface Reconstruction]], works on converting this point clouds into meshes. | |||
==See Also== | ==See Also== | ||
* [[Image-based rendering]] | * [[Image-based rendering]] | ||