3D Representations: Difference between revisions

From David's Wiki
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}^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 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]]

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.

See Also