An immersive fast modeling method based on body skeleton convolution surface

Through the convolutional surface method based on body skeletons, users can draw complex models through simple brushes, solving the problem that users find it difficult to combine multiple skeletons for modeling in the prior art, realizing user-friendly three-dimensional model drawing, reducing the Modeling difficulty and enhance modeling flexibility and fun.

CN113902871BActive Publication Date: 2024-12-13ZHEJIANG UNIV
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202111149621.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-09-29
Publication Date
2024-12-13
Estimated Expiration
2041-09-29

AI Technical Summary

Technical Problem

In existing virtual reality technology, it is difficult for users to draw complex three-dimensional models through simple strokes or voxels, especially for novice users who lack professional painting experience, and it is difficult to combine multiple skeletons for modeling, resulting in complex and difficult modeling process.

Method used

Using the convolutional surface method based on the body skeleton, in the Unity3D environment, the user selects the body skeleton brush, calculates the potential energy value through the GPU, generates a new potential energy map, and uses the maching cube program to obtain the vertex, topological relationship and method of the triangle face sheet. Vectors realize the rendering and combination of models, support importing external models, erasing and undoing functions, as well as a variety of material effects.

Benefits of technology

It greatly reduces the difficulty of modeling, allows users to draw complex models through simple brushes, supports user-friendly UI interface, and easily switch functions, enhancing the flexibility and fun of modeling.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113902871B_ABST
    Figure CN113902871B_ABST
Patent Text Reader

Abstract

The present invention discloses an immersive rapid modeling method based on a body skeleton convolution surface, comprising the following steps: (1) in a Unity3D environment, a user wears an immersive virtual reality device, selects a desired body skeleton brush, determines the size, angle and position of the body skeleton brush, and uses the body skeleton brush to draw a model; (2) according to the selected body skeleton brush size, angle and position, a GPU calculates the body skeleton potential energy value, and generates a new potential energy map after the body skeleton brush is drawn; (3) the new potential energy map generated in step (2) is passed to a marching cube program, the vertex position, topological relationship and normal vector of the triangular face are obtained, and the modeling is completed by rendering. The immersive rapid modeling method based on a body skeleton convolution surface provided by the present invention proposes a body skeleton brush based on GPU parallel computing, and a user can use body skeleton brushes of different shapes to directly combine and draw a complex model.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of computer graphics and virtual reality technology, and in particular to an immersive rapid modeling method based on body skeleton convolution surface. Background Art

[0002] In recent years, with the development of computer technology and the popularization of various display devices, 3D models have provided more possibilities for people to cross the real and virtual, connect the digital and the physical, and realize imagination and creation. Therefore, they have been used in more and more fields, such as product design, environmental design, cultural entertainment, medical health, etc. However, despite the current great demand for 3D models, creating 3D models is not an easy task.

[0003] In the past, if users wanted to obtain a 3D model, they either needed to have some professional model scanning equipment or to master the use of some professional modeling software. Nowadays, the threshold for modeling has been slightly lowered, and the combination of virtual reality technology and 3D modeling enables users to directly draw simple 3D models with some simple strokes.

[0004] However, what we can see now is that the virtual reality software related to modeling is still not perfect, and most of them have certain defects: such as Tilt Brush, users can only draw some discontinuous faces with it, and these broken faces cannot form a whole model; there are also some modeling software that allow users to summarize the surface of the model by drawing curves and lines, and the system automatically fills the curve network into a closed model shell, and inexperienced users do not know how to better use curves to express the surface shape of the model; such as Brush2Model, allows users to draw models with some simple voxels. Such drawing is still a very difficult task for users who have no professional painting experience. It is difficult for them to imagine how to use basic voxels to form a complex model.

[0005] There is also an immersive rapid modeling method based on sketches and convolution surfaces in the prior art, such as the Chinese patent with publication number CN110176058B, which includes: (1) in the Unity3D environment, the user wears an immersive virtual reality device, selects the type of skeleton to be drawn, determines the positioning points of the skeleton to be drawn, and draws the skeleton shape; (2) uses the convolution surface analytical solution to generate a smooth convolution surface model, completes potential energy value calculation and effective skeleton clipping in the GPU, and generates a density map; (3) the density map generated in step (2) is passed to the marching cube program to obtain the vertices and attributes of the triangular facets, and the rendering completes the modeling; the vertices and their attributes include vertex positions, topological relationships and normal vectors.

[0006] Although the above patent application provides a method for drawing a three-dimensional model, it requires the user to combine multiple different skeletons for modeling, which is a difficult task for novice users who lack drawing experience. Summary of the invention

[0007] In order to solve the problems existing in the prior art, the present invention provides an immersive rapid modeling method based on body skeleton convolution surface. Users can draw a variety of models using a body skeleton brush, and a complex model can be obtained by combining multiple models, which greatly reduces the difficulty of modeling.

[0008] An immersive rapid modeling method based on body skeleton convolution surface includes the following steps:

[0009] (1) In the Unity3D environment, the user wears an immersive virtual reality device, selects a desired body skeleton brush, determines the size, angle, and position of the body skeleton brush, and uses the body skeleton brush to draw a model;

[0010] (2) Based on the selected body skeleton brush size, angle, and position, the GPU calculates the body skeleton potential energy value and generates a new potential energy map after the body skeleton brush is drawn;

[0011] (3) The new potential energy map generated in step (2) is passed to the marching cube program to obtain the vertex positions, topological relationships, and normal vectors of the triangles, and then rendered to complete the modeling.

[0012] Specifically, an external model can be imported in step 1, and the imported model is calculated into an implicit surface through steps (2) and (3). The user can continue to draw the model based on this model.

[0013] The specific steps of calculating the body skeleton potential energy value by the GPU in step (2) are as follows:

[0014] (2-1) Divide the entire drawing space into a 128×128×128 cubic grid, and use a global potential energy diagram to record the potential energy values ​​of the grid vertices of the currently drawn scene;

[0015] (2-2) Create a temporary potential energy map and set the initial potential energy value of each cube mesh vertex. The initial potential energy value is recorded as 0.

[0016] voxelize the model shape corresponding to the body skeleton brush, and record the temporary potential energy map as the potential energy map corresponding to the voxelized model;

[0017] (2-3) performing three-dimensional convolution smoothing on the potential energy map corresponding to the voxelized model in step (2-2) to obtain a new potential energy value for each mesh vertex, and recording the new potential energy value into the potential energy map corresponding to the voxelized model to obtain a potential energy map corresponding to the model after three-dimensional convolution smoothing;

[0018] (2-4) After adding the potential energy value of the potential energy map corresponding to the three-dimensional convolution smoothed model obtained in step (2-3) to the global potential energy map in the current scene, a new potential energy map drawn by the body skeleton brush is obtained.

[0019] In step (2-2), the specific steps of voxelizing the model shape corresponding to the body skeleton brush are as follows:

[0020] Call ComputeShader to determine the intersection of each triangle in the model corresponding to the body skeleton brush with the cube mesh.

[0021] If a cube mesh intersects with a triangle patch, the potential energy values ​​of all vertices of the cube mesh are recorded on the temporary potential energy map by adding one to the initial value, that is, recorded as 1.

[0022] The specific process of performing three-dimensional convolution smoothing on the potential energy map corresponding to the voxelized model in step (2-3) is as follows:

[0023] Call ComputeShader and use a three-dimensional Gaussian kernel function to perform convolution calculation on the potential energy value of the cube grid, so that the potential energy value of each grid vertex is affected by the potential energy value of the surrounding vertices.

[0024] Specifically, the radius of the Gaussian kernel function is 1, and the potential energy value of each mesh vertex is calculated as the average value of the potential energy values ​​of the surrounding mesh vertices within a 3×3×3 range.

[0025] In step (3), using the marching cube program, the steps to render and complete the modeling are as follows:

[0026] (3-1) The marching cube program extracts the corresponding triangular facets in each cube mesh according to the potential energy value of each cube mesh vertex;

[0027] (3-2) The extracted triangle information is stored in a ComputeBuffer, and Unity's DrawProceduralIndirect function is called to select the corresponding shader to render the model.

[0028] Preferably, the model drawn in step (3) is saved. When saving, the marching cube program reads the triangle face vertex data from the buffer back to the memory, and then processes the obtained vertex array and the corresponding index array to obtain the model mesh data, thereby completing the model saving.

[0029] Preferably, the body skeleton brush is further provided with an erase mode, and the erase mode is used to erase unnecessary model shapes.

[0030] Using the brush's erasing mode is to perform erasing calculations on the model. Traditional convolution surface drawing uses the accumulation of potential energy values, while in erasing calculations, we use the global potential energy map to subtract the change in potential energy value in the erasing calculation.

[0031] In addition, the drawing of the membrane model can be undone. The specific undo steps are: before drawing the volume model, record the current global potential energy diagram as a backup potential energy diagram. After drawing the volume model, if undo is required, use the recorded backup potential energy diagram to overwrite the newly calculated potential energy diagram.

[0032] Preferably, each body skeleton brush corresponds to a model; a body skeleton brush with a matching shape is selected for drawing according to the shape of the model to be drawn.

[0033] Specifically, each complex model that needs to be drawn can be decomposed into many parts, and each part can be drawn with the body skeleton brush, and they will automatically merge into a complete manifold model.

[0034] In addition, a variety of different materials can be set in the system. When the material is selected to display the model, the model will dynamically change color and vertices to achieve better visual effects.

[0035] Compared with the prior art, the present invention is beneficial in that:

[0036] (1) A body skeleton brush based on GPU parallel computing is proposed. Users can use body skeleton brushes of different shapes and directly combine them to draw complex models.

[0037] (2) Support users to import customized models and continue drawing based on the models.

[0038] (3) Supports erase and undo functions, making it easier for users to draw more model details.

[0039] (4) Provide a variety of different model material effects to increase the user's modeling fun.

[0040] (5) A user-friendly UI interface is designed so that users can easily switch functions and complete modeling. BRIEF DESCRIPTION OF THE DRAWINGS

[0041] Figure 1 A schematic diagram of the process flow when a user uses the present invention;

[0042] Figure 2 Another flow chart of the user using the present invention. DETAILED DESCRIPTION

[0043] The present invention will be further described below in conjunction with the accompanying drawings and specific embodiments.

[0044] like Figure 1 As shown, the immersive fast modeling method based on body skeleton convolution surface includes the following steps:

[0045] (1) In the Unity3D environment, the user wears an immersive virtual reality device, selects the desired body skeleton brush, determines the size, angle and position of the body skeleton brush, and uses the body skeleton brush to draw the model; the model drawn using the body skeleton brush is automatically merged into the model that has already been drawn;

[0046] (2) Based on the selected body skeleton brush size, angle, and position, the GPU calculates the body skeleton potential energy value and generates a new potential energy map after the body skeleton brush is drawn;

[0047] (2-1) Divide the entire drawing space into a 128×128×128 cubic grid, and use a global potential energy diagram to record the potential energy values ​​of the grid vertices of the currently drawn scene;

[0048] (2-2) Create a temporary potential energy map and set the initial potential energy value of each mesh vertex to 0;

[0049] Voxelize the model shape corresponding to the body skeleton brush, call ComputeShader, and determine the intersection of each triangle face in the model corresponding to the body skeleton brush with the cube mesh.

[0050] If a cube mesh intersects with a triangle patch, the potential energy values ​​of all vertices of the cube mesh are recorded as 1 on the temporary potential energy map, and the potential energy map corresponding to the voxelized model is obtained;

[0051] (2-3) Perform three-dimensional convolution smoothing on the potential energy map corresponding to the voxelized model in step (2-2), call ComputeShader, and use a three-dimensional Gaussian kernel function with a radius of 1 to perform convolution calculation on the potential energy value of the cube grid. The potential energy value of each grid vertex is calculated as the average value of the potential energy values ​​of the grid vertices within the surrounding 3×3×3 range, and the potential energy map corresponding to the model after three-dimensional convolution smoothing is obtained;

[0052] (2-4) After adding the potential energy value in the potential energy map corresponding to the model after three-dimensional convolution smoothing obtained in step (2-3) to the global potential energy map in the current scene, a new potential energy map after the body skeleton brush is obtained.

[0053] If you need to undo the drawn model, just overwrite the global energy map before drawing with the global energy map after drawing; if you need to erase the model, use the erase mode of the body skeleton brush.

[0054] (3) The new potential energy map generated in step (2) is passed to the marching cube program to obtain the vertex positions, topological relationships, and normal vectors of the triangles, and then rendered to complete the modeling.

[0055] (3-1) The marching cube program extracts the corresponding triangular facets in each cube mesh according to the potential energy value of each cube mesh vertex;

[0056] (3-2) The extracted triangle information is stored in a ComputeBuffer, and Unity's DrawProceduralIndirect function is called to select the corresponding shader to render the model.

[0057] The model drawn in step (3) is saved. When saving, the marching cube program reads the triangle vertex data from the buffer back to the memory, and then processes the obtained vertex array and the corresponding index array to obtain the model mesh data, thus completing the model saving.

[0058] Repeat the above steps, select different body skeleton brushes to draw different parts of the model, and merge the models of each part to form the model you want to draw.

[0059] like Figure 2 As shown, the body skeleton brush can be used in conjunction with the point skeleton brush, line skeleton brush, and face skeleton brush in the previous inventions for modeling.

[0060] In order to draw creative and complex 3D models, users can choose a variety of different body skeleton brushes and freely combine them during the specific drawing process.

Claims

1. An immersive rapid modeling method based on body skeleton convolution surface, characterized in that: The steps include: (1) In the Unity3D environment, the user wears an immersive virtual reality device, selects a desired body skeleton brush, determines the size, angle, and position of the body skeleton brush, and uses the body skeleton brush to draw a model; (2) Based on the selected body skeleton brush size, angle and position, the GPU is used to calculate the body skeleton potential energy value to generate a new potential energy map after the body skeleton brush is drawn. The specific steps are as follows: (2-1) Divide the entire drawing space into a 128×128×128 cubic grid, and use a global potential energy diagram to record the potential energy values ​​of the grid vertices of the currently drawn scene; (2-2) Create a temporary potential energy map and set the initial potential energy value of each cube mesh vertex; The model shape corresponding to the body skeleton brush is voxelized, and the temporary potential energy map is recorded as the potential energy map corresponding to the voxelized model. The specific steps of voxelizing the model shape corresponding to the body skeleton brush are as follows: Call ComputeShader to determine the intersection of each triangle in the model corresponding to the body skeleton brush with the cube mesh. If a cube mesh intersects with a triangle patch, the potential energy values ​​of all vertices of the cube mesh are recorded on the temporary potential energy map by adding 1 to the initial value; (2-3) Perform three-dimensional convolution smoothing on the potential energy map corresponding to the voxelized model in step (2-2) to obtain a new potential energy value for each mesh vertex, and record the new potential energy value in the potential energy map corresponding to the voxelized model to obtain a potential energy map corresponding to the model after three-dimensional convolution smoothing. The specific process of performing three-dimensional convolution smoothing on the potential energy map corresponding to the voxelized model is as follows: Call ComputeShader and use a three-dimensional Gaussian kernel function to perform convolution calculation on the potential energy value of the cube grid, so that the potential energy value of each grid vertex is affected by the potential energy values ​​of the surrounding vertices; (2-4) adding the potential energy value of the potential energy map corresponding to the three-dimensional convolution smoothed model obtained in step (2-3) to the global potential energy map in the current scene to obtain a new potential energy map drawn by the body skeleton brush; (3) The new potential energy diagram generated in step (2) is passed to the marching cube program. After the marching cube program obtains the vertex positions, topological relationships and normal vectors of the triangular face, it renders and completes the modeling. The model drawn in step (3) is saved. When saving, the marching cube program reads the triangular face vertex data from the buffer back to the memory, and then processes the obtained vertex array and the corresponding index array to obtain the model mesh data, and completes the model saving; The steps to complete the modeling using marching cube program rendering are as follows: (3-1) The marching cube program extracts the corresponding triangular facets in each cube mesh according to the potential energy value of each cube mesh vertex; (3-2) The extracted triangle information is stored in a ComputeBuffer, and Unity's DrawProceduralIndirect function is called to select the corresponding shader to render the model.

2. The immersive rapid modeling method based on body skeleton convolution surface according to claim 1 is characterized in that: The body skeleton brush is also provided with an erase mode, and the erase mode is used to erase unnecessary parts of the model.

3. The immersive rapid modeling method based on body skeleton convolution surface according to claim 1, characterized in that: Each body skeleton brush corresponds to a model shape.