Search

US-12626474-B2 - Volumetric sculpting using dual contouring

US12626474B2US 12626474 B2US12626474 B2US 12626474B2US-12626474-B2

Abstract

In implementations of techniques and systems for volumetric sculpting using dual contouring, a processing device determines and stores signed distance values of vertices in a voxel grid with multiple grid cells to represent a 3D object. The processing device also determines and stores the position and state of feature points within grid cells. The feature points indicate a geometric feature of the 3D object within a corresponding grid cell. The processing device then uses dual contouring on the signed distance values and feature points to render a mesh of the 3D object.

Inventors

  • Zhiqin Chen

Assignees

  • ADOBE INC.

Dates

Publication Date
20260512
Application Date
20240827

Claims (20)

  1. 1 . A method comprising: determining, by a processing device, signed distance values of vertices in a voxel grid to represent a three-dimensional (3D) object; determining, by the processing device, feature points within grid cells of the voxel grid that represent a geometric feature of the 3D object within a corresponding grid cell, a state value of each feature point indicating whether the feature point is on a face, an edge, or a corner of the 3D object; and rendering, by the processing device and using the signed distance values and a position and the state value of the feature points, a mesh of the 3D object.
  2. 2 . The method of claim 1 , wherein a signed distance value of a first vertex is stored for each grid cell.
  3. 3 . The method of claim 1 , wherein the position of each feature point provides spatial coordinates of the feature point.
  4. 4 . The method of claim 3 , wherein the position and the state value of each feature point are determined during generation of each primitive shape making up the 3D object.
  5. 5 . The method of claim 3 , wherein the state value of each feature point is defined as a number of continuous surfaces within the corresponding grid cell.
  6. 6 . The method of claim 1 , wherein the state value has a value of one for the face, two for the edge, or three for the corner.
  7. 7 . The method of claim 3 , wherein the position of each feature point is determined as a closest point on the face, the edge, or the corner to a center of the corresponding grid cell.
  8. 8 . The method of claim 1 , wherein the signed distance values and the feature points are updated after a geometric operation.
  9. 9 . The method of claim 8 , wherein the geometric operation includes a union operation, a subtraction operation, down-sampling, up-sampling, an affine transformation, or a buildup operation.
  10. 10 . The method of claim 8 , wherein the geometric operation is performed on the mesh rendered from the signed distance values and the feature points.
  11. 11 . The method of claim 1 , wherein dual contouring is used to render the mesh or dual marching cubes is used to render a manifold mesh of the mesh.
  12. 12 . A computing device comprising: a processing device; and a computer-readable medium storing instructions that, in response to execution by the processing device, cause the processing device to: store signed distance values of vertices in a voxel grid to represent a three-dimensional (3D) object; store feature points within grid cells of the voxel grid that represent a face, an edge, or a corner of the 3D object within a corresponding grid cell, a state value of each feature point indicating whether the feature point is on the face, the edge, or the corner of the 3D object; and render, using the signed distance values and the feature points, a mesh of the 3D object using dual contouring.
  13. 13 . The computing device of claim 12 , wherein a position of each feature point provides spatial coordinates of a corresponding feature point and the state value of each feature point is defined as a number of continuous surfaces within the corresponding grid cell.
  14. 14 . The computing device of claim 13 , wherein the position and the state value of each feature point are determined during generation of each primitive shape making up the 3D object.
  15. 15 . The computing device of claim 12 , wherein the dual contouring places a quadrilateral face on each edge of the voxel grid where a sign change in the signed distance values is detected and connects the feature points from adjacent cells of the edge to form a polygon mesh.
  16. 16 . The computing device of claim 13 , wherein the position of each feature point is determined as a closest point on the face, the edge, or the corner to a center of the corresponding grid cell.
  17. 17 . The computing device of claim 12 , wherein the computer-readable medium stores additional instructions that, in response to execution by the processing device, cause the processing device to: generate a combined 3D object by performing one or more geometric operations on multiple 3D objects; and render the mesh of the combined 3D object that preserves geometric features of the multiple 3D objects.
  18. 18 . The computing device of claim 17 , wherein the signed distance values and the feature points of the combined 3D object are updated after the one or more geometric operations.
  19. 19 . The computing device of claim 12 , wherein the computer-readable medium stores further instructions that, in response to execution by the processing device, cause the processing device to render a manifold mesh of the 3D object using dual marching cubes.
  20. 20 . A non-transitory computer-readable medium storing executable instructions, which when executed by a processing device, cause the processing device to perform operations comprising: determining signed distance values of vertices in a voxel grid to represent a three-dimensional (3D) object; determining feature points within grid cells of the voxel grid that represent a geometric feature of the 3D object within a corresponding grid cell, a state value of each feature point indicating whether the feature point is on a face, an edge, or a corner of the 3D object; and rendering, using the signed distance values, a mesh of the 3D object using dual contouring on the signed distance values and a position and the state value of the feature points.

Description

BACKGROUND Creating realistic objects and characters is crucial for various applications like video animation, games, and other media. One three-dimensional (3D) modeling technique used to generate realistic objects is volumetric sculpting, which focuses on manipulating the volume of a digital object, rather than just its surface. Volumetric sculpting provides a more intuitive and organic way of modeling but also introduces various technical challenges that cause inaccuracies, visual artifacts, and inefficient use of computational resources. SUMMARY Techniques and systems for volumetric sculpting using dual contouring are described. In one example, a processing device determines a signed distance value for vertices in a voxel grid to represent a 3D object. The processing device also determines a position and a state for feature points within grid cells to represent the geometric features of the 3D object. A mesh of the 3D object is then rendered using the signed distances and feature points. For example, the processing device uses dual contouring to generate a mesh or dual marching cubes for a manifold mesh. The rendered mesh is presented to the user via a display device. This Summary introduces a simplified selection of concepts described below in the Detailed Description. As such, this Summary is not intended to identify essential features of the claimed subject matter or to aid in determining its scope. BRIEF DESCRIPTION OF THE DRAWINGS The detailed description is described with reference to the accompanying figures. Entities represented in the figures indicate one or more entities, and thus, reference is made interchangeably to single or plural forms of the entities in the discussion. FIG. 1 illustrates a digital medium environment in an example implementation that is operable to employ volumetric sculpting techniques as described herein. FIG. 2 illustrates an example of data storage and mesh generation for volumetric sculpting as described herein. FIG. 3 is a flow diagram depicting an algorithm as a step-by-step procedure in an example implementation of operations performable for accomplishing volumetric sculpting using dual contouring. FIG. 4 illustrates an example distribution of states for feature points for an object rendered using the described volumetric sculpting techniques. FIG. 5 illustrates an example object generated using volumetric sculpting with dual contouring after a geometric operation. FIG. 6 illustrates an example of objects generated using volumetric sculpting with dual contouring versus the same object generated using conventional techniques. FIG. 7 illustrates an example system including various components of an example device that can be implemented as any type of computing device as described and/or utilized with reference to the previous figures to implement embodiments of the techniques described herein. DETAILED DESCRIPTION Overview The movie industry and the visual effects community employ volumetric sculpting tools to create realistic digital objects and characters. Despite advancements in high-end modeling systems, generating 3D models with sharp features and faithful representation of geometric features remains difficult. One conventional technique stores signed distances in voxel grids and then runs a marching cubes algorithm to extract a mesh for modeled objects. A voxel, short for volumetric pixel, is the 3D equivalent of a pixel in a 2D image. Voxels are generally tiny cubes within a 3D grid that combine to create a 3D representation of a modeled object. Each voxel holds a value that represents one or more object properties (e.g., color, density, material type) and signed distances. Signed distances represent the geometry of modeled objects using a mathematical function. Instead of defining a 3D object with a set of polygons (e.g., triangles and squares), signed distances use a function that takes a point in 3D space as input and returns a value indicating the distance to the closest surface of the object. The sign of the value indicates whether the point is inside (e.g., a negative value) or outside (e.g., a positive value) the object. On the surface of the object, the value is equal to zero. Storing signed distances in voxel grids may not accurately represent geometric shape features and the generation of artifacts when performing downstream operations such as up-resolution, down-resolution, warping, and solid geometry operations (e.g., Boolean operations). The marching cubes algorithm extracts a polygonal mesh or surface from the 3D volumetric dataset contained in the voxel grids. In other words, the marching cubes algorithm takes signed distance values in the voxel grids and converts them into a collection of polygons that define the object's surface. Specifically, the marching cubes algorithm constructs triangles within each voxel grid cell that are stitched together to form the final mesh. The triangle for each voxel grid cell is selected from a set of possible