Systems and methods for dynamic differentiated capture of three-dimensional assets for non-uniform splat generation
A system and associated methods perform a dynamic differentiated capture of a three-dimensional (3D) asset for non-uniform splat generation. The system partitions the 3D space of the 3D asset into multiple cells. The system selects a set of cells that encompass a volume of the 3D space in which one or more of the 3D asset primitives are defined. The system determines an amount of visual detail associated with the primitives in each selected cell, and positions virtual cameras in the 3D space to capture a first set of primitives that are associated with a first amount of visual detail from more perspectives than a second set of primitives that are associated with a second amount of visual detail that is less than the first amount of visual detail. The system generates images that non-uniformly capture the 3D asset from the positions of the virtual cameras.
1 . A method comprising:
receiving a three-dimensional (3D) asset comprising a plurality of primitives that are each defined with a position and visual characteristics in a 3D space;
partitioning the 3D space into a plurality of cells;
selecting a set of cells from the plurality of cells encompassing a volume of the 3D space in which one or more primitives of the plurality of primitives are defined;
calculating a value for each individual cell of the set of cells based on a number of primitives and positional or color differences between the one or more primitives in the individual cell;
positioning a plurality of virtual cameras in the 3D space to capture a first set of primitives from the plurality of primitives in a first cell of the set of cells from a first number of positions and angles based on the value calculated for the first cell and to capture a second set of primitives from the plurality of primitives in a second cell of the set of cells from a second number of positions and angles that is less than the first number of positions and angles based on the value calculated for the second cell being less than the value calculated for the first cell;
generating a plurality of images that non-uniformly capture the 3D asset based on said positioning of the plurality of virtual cameras; and
iteratively generating a non-uniform splat representation that reconstructs the 3D asset based on the non-uniform capture of the 3D asset in the plurality of images.
2 . The method of claim 1 , wherein iteratively generating the non-uniform splat representation comprises:
generating a first plurality of splats in the volume of the 3D space encompassed by the first cell and a second plurality of splats in the volume of the 3D space encompassed by the second cell, wherein the first plurality of splats have a smaller size than the second plurality of splats.
3 . The method of claim 2 further comprising:
streaming the non-uniform splat representation to a requesting device in response to a request for the 3D asset from the requesting device.
4 . The method of claim 2 , wherein the non-uniform splat representation is defined in a different 3D format than the 3D asset, and wherein the non-uniform splat representation has a smaller size than the 3D asset.
5 . The method of claim 1 , wherein calculating the value comprises:
adjusting the value for a particular cell based on a number of textures that are applied to the one or more primitives in the particular cell.
6 . The method of claim 1 further comprising:
defining a total number of virtual cameras for non-uniformly capturing the 3D asset based on the value that is calculated for each cell of the set of cells.
7 . The method of claim 1 , wherein positioning the plurality of virtual cameras comprises:
placing each particular virtual camera from the plurality of virtual cameras an equal distance from one or more of the plurality of primitives in a field-of-view of that particular virtual camera.
8 . The method of claim 1 , wherein positioning the plurality of virtual cameras comprises:
placing a first set of the plurality of virtual cameras a first distance to the first set of primitives and a second set of the plurality of virtual cameras a second distance to the second set of primitives, wherein the first distance is less than the second distance.
9 . The method of claim 1 further comprising:
determining that the first set of primitives form a first shape and that the second set of primitives form a second shape;
placing a first camera rig of the first shape around the first set of primitives and a second camera rig of the second shape around the second set of primitives; and
wherein positioning the plurality of virtual cameras comprises:
positioning a first set of the plurality of virtual cameras about the first camera rig; and
positioning a second set of the plurality of virtual cameras about the second camera rig.
10 . The method of claim 1 , wherein the first set of primitives comprises primitives that are modified by one or more textures, wherein the second set of primitives comprises primitives that are not modified by one or more textures, and wherein the one or more textures increase the value calculated for the first cell.
11 . The method of claim 1 , wherein the first set of primitives comprises neighboring primitives with a positional or visual variation that is greater than a positional or visual variation between neighboring primitives of the second set of primitives.
12 . The method of claim 1 further comprising:
providing a user interface control for adjusting a number of virtual cameras used to generate the plurality of images.
13 . The method of claim 12 further comprising:
increasing the plurality of virtual cameras from a first number of virtual cameras to a larger second number of virtual cameras in response to a user adjustment of the user interface control;
positioning the larger second number of virtual cameras at positions relative to the plurality of primitives that are different than a positioning of the first number of virtual cameras; and
generating a second plurality of images from positions of the larger second number of virtual cameras, wherein the second plurality of images capture more visual detail of the 3D asset than the plurality of images that are generated from the positioning of the first number of virtual cameras.
14 . A splat generation system comprising:
one or more hardware processors configured to:
receive a three-dimensional (3D) asset comprising a plurality of primitives that are each defined with a position and visual characteristics in a 3D space;
partition the 3D space into a plurality of cells;
select a set of cells from the plurality of cells encompassing a volume of the 3D space in which one or more primitives of the plurality of primitives are defined;
calculate a value for each individual cell of the set of cells based on a number of primitives and positional or color differences between the one or more primitives in the individual cell;
position a plurality of virtual cameras in the 3D space to capture a first set of primitives from the plurality of primitives in a first cell of the set of cells from a first number of positions and angles based on the value calculated for the first cell and to capture a second set of primitives from the plurality of primitives in a second cell of the set of cells from a second number of positions and angles that is less than the first number of positions and angles based on the value calculated for the second cell being less than the value calculated for the first cell;
generate a plurality of images that non-uniformly capture the 3D asset based on said positioning of the plurality of virtual cameras; and
iteratively generate a non-uniform splat representation that reconstructs the 3D asset based on the non-uniform capture of the 3D asset in the plurality of images.
15 . The splat generation system of claim 14 , wherein iteratively generating the non-uniform splat representation comprises:
generate a first plurality of splats in the volume of the 3D space encompassed by the first cell and a second plurality of splats in the volume of the 3D space encompassed by the second cell, wherein the first plurality of splats have a smaller size than the second plurality of splats.
16 . The splat generation system of claim 15 , wherein the one or more hardware processors are further configured to:
stream the non-uniform splat representation to a requesting device in response to a request for the 3D asset from the requesting device.
17 . The splat generation system of claim 15 , wherein the non-uniform splat representation is defined in a different 3D format than the 3D asset, and wherein the non-uniform splat representation has a smaller size than the 3D asset.
18 . The splat generation system of claim 14 , wherein calculating the value comprises:
adjusting the value for a particular cell based on a number of textures that are applied to the one or more primitives in the particular cell.
19 . The splat generation system of claim 14 , wherein the one or more hardware processors are further configured to:
define a total number of virtual cameras for non-uniformly capturing the 3D asset based on the value that is calculated for each cell of the set of cells.
20 . A non-transitory computer-readable medium storing instructions that, when executed by one or more processors of a splat generation system, cause the splat generation system to perform operations comprising:
receiving a three-dimensional (3D) asset comprising a plurality of primitives that are each defined with a position and visual characteristics in a 3D space;
partitioning the 3D space into a plurality of cells;
selecting a set of cells from the plurality of cells encompassing a volume of the 3D space in which one or more primitives of the plurality of primitives are defined;
calculating a value for each individual cell of the set of cells based on a number of primitives and positional or color differences between the one or more primitives in the individual cell;
positioning a plurality of virtual cameras in the 3D space to capture a first set of primitives from the plurality of primitives in a first cell of the set of cells from a first number of positions and angles based on the value calculated for the first cell and to capture a second set of primitives from the plurality of primitives in a second cell of the set of cells from a second number of positions and angles that is less than the first number of positions and angles based on the value calculated for the second cell being less than the value calculated for the first cell;
generating a plurality of images that non-uniformly capture the 3D asset based on said positioning of the plurality of virtual cameras; and
iteratively generating a non-uniform splat representation that reconstructs the 3D asset based on the non-uniform capture of the 3D asset in the plurality of images.