Three-dimensional model rendering method and device, storage medium and electronic equipment

By using directed distance function to determine the positional relationship between each voxel and a three-dimensional model in the rendering space of the three-dimensional model, the problem of difficult to deal with implicit functions that cannot be constructed with traditional mathematical expressions in the prior art is solved, and the complexity is achieved Efficient rendering of 3D models.

CN119478194AActive Publication Date: 2025-02-18ZHEJIANG LAB

Patent Information

Application Number
CN202510051293.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-01-13
Publication Date
2025-02-18
Estimated Expiration
2045-01-13

AI Technical Summary

Technical Problem

The prior art is difficult to effectively deal with implicit functions that cannot be constructed with traditional mathematical expressions, such as implicit functions constructed based on octrees or neural networks, resulting in limited rendering efficiency and precision when processing complex three-dimensional models.

Method used

Directed distance function is used to determine the positional relationship between each voxel and the three-dimensional model in the rendering space of the three-dimensional model, and a three-dimensional model that handles complex topological changes and irregular topology by constructing a directed distance function.

Benefits of technology

It realizes simple and efficient rendering of arbitrary constructed three-dimensional models, can handle three-dimensional models that cannot be expressed in traditional mathematical formulas, and solves the problem that complex free bodies are difficult to render.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119478194A_ABST
    Figure CN119478194A_ABST
Patent Text Reader

Abstract

The invention discloses a three-dimensional model rendering method and device, a storage medium and electronic equipment. In the three-dimensional model rendering method provided by the specification, a three-dimensional model to be rendered and a rendering space where the three-dimensional model is located are obtained; constructing a directed distance function according to the three-dimensional model; determining a position relationship between each voxel contained in the rendering space and the three-dimensional model by adopting the directed distance function; and rendering the three-dimensional model for each voxel according to the position relationship. When any three-dimensional model is rendered by adopting the three-dimensional model rendering method provided by the specification, the position relationship between each voxel and the three-dimensional model can be determined by utilizing the directed distance function, and finally, the rendering is completed according to the determined position relationship. By adopting the method, not only can rendering of a conventional three-dimensional model be realized, but also efficient rendering of a three-dimensional model which cannot be expressed by a traditional mathematical expression can be realized, and the problem that a complex free body is difficult to render is effectively solved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of computer technology, and in particular to a three-dimensional model rendering method, device, storage medium and electronic device. Background Art

[0002] In the field of computer graphics, traditional 3D model representation methods mainly rely on explicit surfaces, such as triangular meshes or NURBS surfaces. These methods are relatively efficient in processing simple geometric shapes and regular topological structures, but their limitations become particularly obvious when faced with complex geometric transformations, high-precision geometric operations, and complex topological changes. For example, these methods have difficulty accurately representing and processing 3D models with complex internal structures or irregular topologies.

[0003] Implicit surface rendering methods define shapes through mathematical functions, providing a more flexible and accurate means of geometric representation. These methods can handle complex topological changes and can represent 3D shapes in a more continuous and smooth way. However, the efficiency and accuracy of implicit surface rendering methods are limited by algorithms, especially in processing complex mathematical expressions and performing efficient Boolean operations.

[0004] However, for implicit functions that cannot be constructed using traditional mathematical expressions, such as implicit functions constructed based on octrees or neural networks, existing technologies are still unable to effectively handle them.

[0005] Therefore, how to achieve simple and efficient rendering of arbitrarily constructed three-dimensional models is an urgent problem to be solved. Summary of the invention

[0006] The present specification provides a three-dimensional model rendering method, device, storage medium and electronic device to at least partially solve the above-mentioned problems existing in the prior art.

[0007] This manual adopts the following technical solutions: This specification provides a three-dimensional model rendering method, including: Obtaining a three-dimensional model to be rendered and a rendering space where the three-dimensional model is located; constructing a directed distance function according to the three-dimensional model; Determining the positional relationship between each voxel contained in the rendering space and the three-dimensional model using the signed distance function; The three-dimensional model is rendered for each voxel according to the positional relationship.

[0008] Optionally, using the signed distance function to determine the positional relationship between each voxel contained in the rendering space and the three-dimensional model specifically includes: Dividing the rendering space according to a preset rule to obtain a plurality of block spaces; For each block space, the directed distance calculation function is used to determine the positional relationship between the block space and the three-dimensional model; The positional relationship between each voxel contained in the block space and the three-dimensional model is determined according to the positional relationship between the block space and the three-dimensional model.

[0009] Optionally, determining the positional relationship between each voxel contained in the block space and the three-dimensional model according to the positional relationship between the block space and the three-dimensional model specifically includes: In response to the block space being entirely within the three-dimensional model, determining that each voxel contained in the block space is within the three-dimensional model; In response to the block space being entirely outside the three-dimensional model, determining that each voxel contained in the block space is outside the three-dimensional model; In response to the fact that the block space is not entirely within the three-dimensional model and not entirely outside the three-dimensional model, it is determined that a positional relationship between the block space and the three-dimensional model is to be determined.

[0010] Optionally, after determining that the relationship between the block space and the three-dimensional model is undetermined, the method further includes: The block space is continuously divided, and the positional relationship between the divided space and the three-dimensional model is determined until the relationship between the divided space and the three-dimensional model is not undetermined or the divided space is a single voxel.

[0011] Optionally, the directed distance function includes at least a point directed distance calculation function, an interval directed distance calculation function, and a derivative calculation function.

[0012] Optionally, using the signed distance function to determine the positional relationship between each voxel contained in the rendering space and the three-dimensional model specifically includes: The signed distance function is called by using a pre-built extension function to determine the positional relationship between each voxel contained in the rendering space and the three-dimensional model, wherein the extension function is used to determine the signed distance function that needs to be called.

[0013] Optionally, constructing a signed distance function according to the three-dimensional model specifically includes: Determining whether the contour of the three-dimensional model can be expressed by a mathematical formula; In response to the contour of the three-dimensional model being unable to be expressed by a mathematical formula, constructing a signed distance function according to the three-dimensional model; Determining the positional relationship between each voxel contained in the rendering space and the three-dimensional model by using the signed distance function specifically includes: In response to the contour of the three-dimensional model being expressible by a mathematical formula, determining a positional relationship between each voxel contained in the rendering space and the three-dimensional model according to the mathematical formula expressing the contour of the three-dimensional model; In response to the fact that the contour of the three-dimensional model cannot be expressed by a mathematical formula, the signed distance function is used to determine the positional relationship between each voxel contained in the rendering space and the three-dimensional model.

[0014] This specification provides a three-dimensional model rendering device, the device comprising: An acquisition module, used to acquire a three-dimensional model to be rendered and a rendering space where the three-dimensional model is located; A construction module, used for constructing a directed distance function according to the three-dimensional model; A determination module, configured to determine a positional relationship between each voxel contained in the rendering space and the three-dimensional model by using the signed distance function; A rendering module is used to render each voxel according to the position relationship.

[0015] This specification provides a computer-readable storage medium, which stores a computer program. When the computer program is executed by a processor, the above-mentioned three-dimensional model rendering method is implemented.

[0016] This specification provides an electronic device, including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements the above-mentioned three-dimensional model rendering method when executing the program.

[0017] At least one of the above technical solutions adopted in this specification can achieve the following beneficial effects: In the three-dimensional model rendering method provided in the present specification, a three-dimensional model to be rendered and a rendering space where the three-dimensional model is located are obtained; a signed distance function is constructed based on the three-dimensional model; the positional relationship between each voxel contained in the rendering space and the three-dimensional model is determined using the signed distance function; and the three-dimensional model is rendered for each voxel based on the positional relationship.

[0018] When rendering any three-dimensional model using the three-dimensional model rendering method provided in this specification, a signed distance function can be used to determine the positional relationship between each voxel and the three-dimensional model, and finally the rendering is completed according to the determined positional relationship. This method can not only realize the rendering of conventional three-dimensional models, but also realize the efficient rendering of three-dimensional models that cannot be expressed by traditional mathematical formulas, effectively solving the problem of difficult rendering of complex free bodies. BRIEF DESCRIPTION OF THE DRAWINGS

[0019] The drawings described herein are used to provide a further understanding of this specification and constitute a part of this specification. The illustrative embodiments and descriptions of this specification are used to explain this specification and do not constitute an improper limitation on this specification. In the drawings: Figure 1 A flowchart of a three-dimensional model rendering method in this specification; Figure 2 A code diagram of a feasible extension function provided in this specification; Figure 3 A schematic diagram of a specific method for determining the positional relationship between a voxel and a three-dimensional model provided in this specification; Figure 4 A schematic diagram showing the characteristics of an extended function provided in this specification in practical application; Figure 5 A schematic diagram of an operation instruction belt provided in this manual; Figure 6 A schematic diagram of the clause structure of an extended function provided in this specification; Figure 7 A schematic diagram of a process for constructing an operation instruction tape provided in this specification; Figure 8 A schematic diagram of a large-scale array cell three-dimensional model provided in this specification; Fig. 9 A schematic diagram of a three-dimensional model rendering device provided in this specification; Fig.10 The corresponding Figure 1 Schematic diagram of electronic equipment. DETAILED DESCRIPTION

[0020] In order to make the purpose, technical solutions and advantages of this specification more clear, the technical solutions of this specification will be clearly and completely described below in combination with the specific embodiments of this specification and the corresponding drawings. Obviously, the described embodiments are only part of the embodiments of this specification, not all of the embodiments. Based on the embodiments in this specification, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this application.

[0021] The technical solutions provided by the embodiments of this specification are described in detail below in conjunction with the accompanying drawings.

[0022] Figure 1 The following is a flow chart of a 3D model rendering method in this specification, which specifically includes the following steps: S100: Acquire a three-dimensional model to be rendered and a rendering space where the three-dimensional model is located.

[0023] All steps in the three-dimensional model rendering method provided in this specification can be implemented by any electronic device with computing functions, such as terminals, servers and other devices.

[0024] This method is mainly used to render a three-dimensional model of any structure, especially a three-dimensional model that cannot be expressed by a conventional mathematical formula. Therefore, in this specification, the rendering of a three-dimensional model that cannot be expressed by a conventional mathematical formula is mainly explained.

[0025] Three-dimensional model rendering, or 3D rendering, refers to the process of converting a three-dimensional computer model into a two-dimensional image. Generally, when rendering a three-dimensional model, in addition to obtaining the information of the three-dimensional model itself to be rendered, it is also necessary to determine the information of the space surrounding the three-dimensional model. Based on this, in this step, the three-dimensional model to be rendered can be first obtained, and at the same time, the rendering space where the three-dimensional model is located can be obtained. Among them, the rendering space is divided into any space containing a three-dimensional model. Normally, only one three-dimensional model is rendered in a rendering task, that is, the rendering space only contains the three-dimensional model to be rendered, so as to avoid mutual influence between different three-dimensional models.

[0026] S102: constructing a directed distance function according to the three-dimensional model.

[0027] After the three-dimensional model to be rendered is obtained in step S100, a signed distance function can be constructed according to the structure of the three-dimensional model in this step. Signed distance function (SDF) is a commonly used mathematical function used to describe the boundary of a geometric shape and the signed distance between it and a certain point. For a given point, the value of the signed distance function represents the shortest distance from the point to the geometric shape, depending on whether the point is inside or outside the geometric shape. Inside the geometric shape, the value of the signed distance function is negative; outside the geometric shape, its value is positive; the value of the signed distance function for points on the boundary of the geometric shape is zero. Common signed distance functions include implicit functions such as polynomial functions, trigonometric functions, and discrete representations based on voxel grids or point clouds.

[0028] This method supports rendering of three-dimensional models with any signed distance function, and can not only process implicit functions constructed by mathematical expressions, but also implicit functions constructed by other non-traditional methods such as octrees and neural networks, greatly expanding the scope of renderable objects. At present, the construction method of the signed distance function of the free body of complex structure is relatively mature, and the signed distance functions constructed for different three-dimensional models are different, so this manual will not go into details here.

[0029] S104: Determine the positional relationship between each voxel contained in the rendering space and the three-dimensional model using the signed distance function.

[0030] The rendering of the three-dimensional model is actually the rendering of the voxels in the rendering space. After constructing the signed distance function for the three-dimensional model in step S102, the constructed signed distance function can be used in this step to determine the positional relationship between each voxel contained in the rendering space to be rendered and the three-dimensional model. As introduced in step S102, the signed distance function can determine the signed distance from a point to the surface of the three-dimensional model. When the determined signed distance is negative, it indicates that the point is inside the three-dimensional model; if the signed distance is positive, it indicates that the point is outside the three-dimensional model; if the signed distance is 0, it indicates that the point is on the surface of the three-dimensional model.

[0031] However, it should be considered that a rendering space contains a large number of voxels. Therefore, when rendering, the interval division method can be used to reduce the number of times the positional relationship between the voxels and the three-dimensional model needs to be calculated. Specifically, the rendering space can be divided according to a preset rule to obtain a number of block spaces; for each block space, the directed distance calculation function is used to determine the positional relationship between the block space and the three-dimensional model; and the positional relationship between each voxel contained in the block space and the three-dimensional model is determined based on the positional relationship between the block space and the three-dimensional model.

[0032] When dividing the rendering space, various pre-set rules can be used for division, such as dividing according to a fixed space size or a selected position, etc. The number and size of the divided block spaces can be set according to needs, and this specification does not impose specific restrictions on this. After the block spaces are divided, for each block space, the positional relationship between all voxels contained in the block space and the three-dimensional model can be directly determined by determining the positional relationship between the block space and the three-dimensional model.

[0033] Specifically, in response to the block space being entirely inside the three-dimensional model, it can be determined that each voxel contained in the block space is inside the three-dimensional model; in response to the block space being entirely outside the three-dimensional model, it can be determined that each voxel contained in the block space is outside the three-dimensional model; in response to the block space being neither entirely inside the three-dimensional model nor entirely outside the three-dimensional model, it can be determined that the positional relationship between the block space and the three-dimensional model is to be determined.

[0034] Generally speaking, the relationship between a block space and a 3D model can be generally divided into three types: the block space is inside the 3D model, the block space is outside the 3D model, and neither of the above two situations, that is, undetermined. Among them, the first two situations are relatively easy to understand and easy to judge. When it is determined that a block space is completely inside the 3D model, then it can be determined that all voxels in this block space are inside the 3D model; the same applies if the inside in the above situation is replaced by the outside.

[0035] As for the last case, that is, when it is pending, it means that it is impossible to determine whether the block space is completely inside or outside the three-dimensional model. At this time, it is possible that part of the block space is inside the three-dimensional model and part is outside the three-dimensional model. For this case, it is not possible to directly and simply judge the specific situation of each voxel in the block space. Therefore, the unclear block space can be further divided. Specifically, the block space can be continuously divided, and the positional relationship between the divided space and the three-dimensional model can be determined until the relationship between the divided space and the three-dimensional model is not pending or the divided space is a single voxel.

[0036] For a block space that cannot be clearly determined whether it is completely inside or outside the three-dimensional model, the block space can be further divided to obtain smaller spaces. For each smaller space, the positional relationship between it and the three-dimensional model can be determined using a directed distance function. If it can be determined that the positional relationship between the smaller space and the three-dimensional model is completely inside or outside, then the positional relationship between all voxels contained in the smaller space and the three-dimensional model can be determined. If it is still uncertain, then continue to divide the smaller space and determine the positional relationship, and repeat this process until it can be determined that the positional relationship between all divided spaces and the three-dimensional model is completely inside or completely outside, or the space finally divided is already a single voxel. For a single voxel, it is certain that its positional relationship with the three-dimensional model is inside, outside, or on the surface.

[0037] For a single voxel, the positional relationship between it and the three-dimensional model can be easily determined by using a signed distance function. For a block space, the positional relationship between it and the three-dimensional model can actually be determined by a signed distance function. Specifically, it is only necessary to determine the corner points of the block space and use the signed distance function to determine the positional relationship between each corner point and the three-dimensional model, so as to further determine the positional relationship between the entire block interval and the three-dimensional model. When all the corner points of a block space are inside or outside the three-dimensional model, then correspondingly, this block space is also inside or outside the three-dimensional model; conversely, when all the corner points of a block space meet at least any two of the three conditions that some corner points are inside the three-dimensional model, some corner points are outside the three-dimensional model, and some corner points are on the surface of the three-dimensional model, the positional relationship between this block space and the three-dimensional model can be determined to be undetermined. The selection of corner points can be selected according to the specific situation of the block space, and it is only necessary to ensure that the closed space formed by the selected corner point connection line can fully cover the block space.

[0038] Based on the above method, in the 3D model rendering method provided in this specification, the provided directed distance function may include at least three types, a point directed distance calculation function, an interval directed distance calculation function, and a derivative calculation function. Among them, the point-to-point distance calculation function is the same as the ordinary directed distance function, which is used to calculate the directed distance from a point to the 3D model; the interval directed distance calculation function is used to calculate the directed distance from an interval to the 3D model based on the above method; the derivative calculation function is used to output a normal map as part of the rendering result.

[0039] Since different signed distance functions are used in different situations, in this method, an extension function for calling different signed distance functions can be additionally constructed. Therefore, when determining the positional relationship between a voxel and a three-dimensional model, the pre-constructed extension function can be specifically used to call the signed distance function to determine the positional relationship between each voxel contained in the rendering space and the three-dimensional model, wherein the extension function is used to determine the signed distance function that needs to be called.

[0040] In this method, the extended function is used to determine which signed distance function needs to be called according to the input. For example, when the input is the point coordinates of a single voxel, the point signed distance extreme function can be called; when the input is the coordinates of an interval range, the interval signed distance calculation function can be called. In the case of using the extended function, each signed distance function can be used as an interface function of the extended function. Figure 2 A code diagram of a feasible extension function provided in this specification is as follows: Figure 2As shown in the figure, this manual provides executable extension function codes for two different operating environments, namely, the central processing unit (CPU) and the graphics processing unit (GPU). The two versions of the code can achieve the same functions and are essentially the same, except that the definitions of the input parameters and return values ​​need to be adapted to the corresponding units, and there are some restrictions on the kernel functions running on the GPU.

[0041] S106: Rendering each voxel according to the positional relationship.

[0042] After determining the positional relationship between each voxel in the rendering space and the three-dimensional model, each voxel in the rendering space can be rendered according to the positional relationship between the voxel and the three-dimensional model. The output of the rendering can be set according to specific needs, including but not limited to a height map, a normal map, etc., and this specification does not make specific restrictions on this.

[0043] When rendering any three-dimensional model using the three-dimensional model rendering method provided in this specification, a signed distance function can be used to determine the positional relationship between each voxel and the three-dimensional model, and finally the rendering is completed according to the determined positional relationship. This method can not only realize the rendering of conventional three-dimensional models, but also realize the efficient rendering of three-dimensional models that cannot be expressed by traditional mathematical formulas, effectively solving the problem of difficult rendering of complex free bodies.

[0044] Additionally, the above content of this specification is mainly explained by taking a three-dimensional model that cannot be expressed by a traditional mathematical formula as an example, and for a three-dimensional model that can be expressed by a traditional mathematical formula, this method can also complete efficient rendering. Specifically, when receiving a three-dimensional model that needs to be rendered, it can be first determined whether the outline of the three-dimensional model can be expressed by a mathematical formula; in response to the outline of the three-dimensional model not being expressed by a mathematical formula, a signed distance function is constructed according to the three-dimensional model; thus, when determining the relationship between a voxel and a three-dimensional model, in response to the outline of the three-dimensional model being expressed by a mathematical formula, the positional relationship between each voxel contained in the rendering space and the three-dimensional model is determined according to the mathematical formula expressing the outline of the three-dimensional model; in response to the outline of the three-dimensional model not being expressed by a mathematical formula, the signed distance function is used to determine the positional relationship between each voxel contained in the rendering space and the three-dimensional model.

[0045] If the contour of the three-dimensional model can be expressed mathematically, there is no need to construct a signed distance function. The positional relationship between any point in the rendering space and the three-dimensional model can be directly determined by directly using the mathematical expression of the three-dimensional model.

[0046] In view of the two situations that the three-dimensional model can be expressed by a mathematical formula and cannot be expressed by a mathematical formula, this specification provides a specific implementation example for reference. Figure 3 A schematic diagram of a specific method for determining the positional relationship between a voxel and a three-dimensional model provided in this specification, such as Figure 3 As shown, based on the two situations that the three-dimensional model cannot be expressed by mathematical formulas and can be expressed by mathematical formulas, Figure 3 It is divided into two parts in the form of a mathematical tree. The upper part uses the extended function extend to call the directed distance function to calculate the distance, and the lower part uses the mathematical expression of the three-dimensional model to calculate the distance. The inputs of the two parts are the same, which are the three-dimensional coordinates of the voxel whose distance from the three-dimensional model needs to be determined, that is, (X, Y, Z). In practical applications, the upper and lower parts are usually not used at the same time. When the three-dimensional model can be expressed by mathematical formulas, the lower part can be used directly; when the three-dimensional model cannot be expressed by mathematical formulas, the directed distance function of the upper part is used.

[0047] Figure 4 This is a schematic diagram of the characteristics of the extended functions provided in this manual in practical applications. Figure 4 As shown, the use of the extended function depends on the variable leaf nodes X, Y, and Z. In order not to destroy the overall tree structure, this operation requires additional slots to store the inputs X, Y, and Z, and a slot to store OUT. At the same time, the context function bound to the extended function may also need to rely on additional data fields in order to calculate the directed distance function, so a pointer to store the data object is also required.

[0048] When using the extended function, the input coordinates will determine which signed distance function to call. For example, when the input coordinates are single voxel coordinates, the extended function will call the point signed distance calculation function and the derivative calculation function; when the input coordinates are a range of coordinates, the extended function will call the interval signed distance calculation function. When determining the distance between a voxel and a 3D model based on a mathematical formula, Figure 3 The figure shows the expansion of the mathematical formula for determining the distance into a step-by-step mathematical tree. Figure 3 The mathematical formula when the three-dimensional model is a hollow sphere is shown. The inner radius of the hollow sphere is 0.5 and the outer radius is 1. In the mathematical tree, LHS represents the left operand, RHS represents the right operand, SQUARE represents the square operation, ADD represents the addition operation, SQRT represents the square root uniform velocity, SUB represents the subtraction operation, and MAX represents the maximum value. The mathematical tree in the lower part can be expressed as the following formula:

[0049] The above formula can determine the specific relationship between the voxel and the hollow sphere three-dimensional model, and then determine the positional relationship. Of course, the above embodiment is only an example when the three-dimensional model is a hollow sphere. For three-dimensional models constructed by other mathematical formulas, the specific formula for determining the relationship between the voxel and the three-dimensional model will also change accordingly.

[0050] Additionally, in practical applications, the constructed mathematical tree can be converted into an executable operation instruction band. Figure 5 A schematic diagram of an operation instruction band provided in this manual, such as Figure 5 As shown, the instructions on the operation instruction belt are based on Figure 4 Each row in the operation instruction band represents an operation instruction, wherein opcode represents the operation to be performed, lhs represents the left operand, rhs represents the right operand, out represents the output, and slot represents the slot of the operation.

[0051] In addition, this specification also provides the clause structure design when the extended function is applied. Figure 6 The following is a schematic diagram of the clause structure of the extended function provided in this manual, such as Figure 6 As shown, the extended operation is represented by two clauses. The first clause records the storage slots of input X, Y, and Z and the storage slots where the output results are stored; the second clause records the memory address of the data object that the context function to be called depends on. Combined with the cluase structure of the extended function, this specification also provides a process diagram for constructing an operation instruction band.

[0052] Figure 7 A schematic diagram of the process of constructing an operation instruction belt provided in this manual, such as Figure 7 As shown, the construction of the operation instruction belt can be carried out according to the following steps: 1. Traverse the nodes on the tree, use map to record the last time the data of each node was referenced by other nodes, and record the ID of the last Extend node; 2. Pre-allocate three storage slots from the free slot pool for the three variables X, Y, and Z, assemble the initial Clause, name it START, leave the OPCODE field empty, fill the OUT, LHS, and RHS fields with the storage slots corresponding to X, Y, and Z respectively, and update the reference relationship between X, Y, and Z in the map to the ID of the last Extend node; 3. Traverse the nodes on the tree again and assemble the Clause according to the current operation of the node. If it is an Extend node, assemble the first Clause and fill the slot numbers of X, Y, and Z in the 3rd, 4th, and 5th byte positions respectively; 4. Get the data bound to the node, construct the second Clause, allocate memory space on the GPU for the data stored in the Extend node that the context method depends on when running on the GPU, make a deep copy from the CPU to the GPU, and store the pointer address on the GPU in the 8-byte space of the second Clause; 5. Based on the last reference relationship in the map, determine whether the left and right operands LHS / RHS are referenced for the last time in this calculation operation. If so, whether the slots where the left and right operands are located are added to the free slot pool; 6. Allocate a new storage slot from the free slot pool for the calculation result OUT of this operation; 7. Add the assembled Clause to the instruction list.

[0053] The above steps can complete the construction of the operation instruction band.

[0054] Additionally, the present specification provides an embodiment for rendering a three-dimensional model of a complex periodically repeated large-scale array cell that cannot be expressed by mathematical formulas. Figure 8 The schematic diagram of the large-scale array cell three-dimensional model provided in this specification can be implemented according to the following code to render the three-dimensional model: struct CylinderSdfDeviceOracle : public BaseDeviceOracle { public: typedef float (CylinderSdfDeviceOracle::*FunctionPointer)(float,float, float); __device__ CylinderSdfDeviceOracle() { func =&CylinderSdfDeviceOracle::sdf; }; / / Add a no-argument constructor __device__ CylinderSdfDeviceOracle(FunctionPointer f) { func = f; }; __device__ CylinderSdfDeviceOracle(CadModelCommonParam other) { cadModelCommonParam.radius = other.radius; cadModelCommonParam.thinkness = other.thinkness; for (int i = 0; i<other.num_points; i++) { cadModelCommonParam.points[i] = other.points[i]; / / Simple copy } }; __device__ float sdf(float a, float b, float c) { vec3 p; p.x = a; p.y = b; p.z = c; float result = computeCylinderSdf(cadModelCommonParam.size,cadModelCommonParam.points, p, cadModelCommonParam.radius); return result; }; __device__ inline float my_fmod(float x, float y) { return x - y * floorf(x / y); } __device__ inline float computeCylinderSdf(const float *size,constvec3 *points,const vec3 p, float r) { float x_size=size[0]; float y_size=size[1]; float z_size=size[2]; vec3 modifiedP = p; if(x_size<99999){ modifiedP.x = my_fmod(fabs(p.x + x_size / 2), x_size) - x_size / 2; modifiedP.y = my_fmod(fabs(p.y + y_size / 2), y_size) - y_size / 2; / / y coordinate periodicity modifiedP.z = my_fmod(fabs(p.z + z_size / 2), z_size) - z_size / 2; / / z coordinate periodicity } vec3 a = points[0]; vec3 b = points[1]; vec3 ba = vec3Subtract(b, a); vec3 pa = vec3Subtract(modifiedP, a); float baba = vec3Dot(ba, ba); float paba = vec3Dot(pa, ba); float x = vec3Length(vec3Scale(pa, baba) - vec3Scale(ba, paba)) - r *baba; float y = fabsf(paba - baba * 0.5f) - baba * 0.5f; float x2 = x * x; float y2 = y * y * baba; float d = (fmaxf(x, y)<0.0f)? -fminf(x2, y2) : ((x>0.0f)? x2 :0.0f) + ((y>0.0f)? y2 : 0.0f); return sign(d) * sqrtf(fabsf(d)) / baba; / / return 1.0f; } __device__ inline float2 evalPoint(const float2&x, const float2&y,const float2&z) override { / / Extract the float value from float2 float x0 = xx; / / Here we assume that the x component of x is used as the x0 value float y0 = yx; / / Here we assume that the x component of y is used as the y0 value float z0 = zx; / / Here we assume that the x component of z is used as the z0 value / / Call func and store the result in result float result0 = (this->*func)(x0, y0, z0); / / printf("result0 is %f\n", result0); float x1 = xy; / / Here we assume that the x component of x is used as the value of x1 float y1 = yy; / / Here we assume that the y component of y is used as the y1 value float z1 = zy; / / Here we assume that the y component of z is used as the z1 value float result1 = (this->*func)(x1, y1, z1); / / printf("result1 is %f\n", result1); / / Implement specific logic return make_float2(result0, result1); / / Example return value }; __device__ inline Interval evalInterval(const Interval&x, constInterval&y, const Interval&z) override { vec3 lower = {x.lower(),y.lower(),z.lower()}; vec3 upper = {x.upper(), y.upper(), z.upper()} / / Switch to interval calculation Interval interval = evalCylinderInterval(cadModelCommonParam.size, cadModelCommonParam. points, lower, upper, cadModelCommonParam.radius); return interval; }; __device__ inline float signedDistanceToCylinder(const vec3& point, const vec3& p0, const vec3& p1, float r) { vec3 ab = p1 - p0; vec3 ap = point - p0; float abLength = ab.length(); vec3 abUnit = ab / abLength; float t = dot(ap, abUnit); if (t < 0.0f) t = 0.0f; else if (t > abLength) t = abLength; vec3 p = p0 + abUnit * t; vec3 pp = point - p; float distSq = dot(pp, pp); float dist = sqrtf(distSq); return dist - r; } __device__ inline float distanceFromFaceToLine(const vec3&faceNormal, const vec3&facePoint, const vec3&p0, const vec3&p1, float r) { vec3 ab = p1 - p0; vec3 p0_to_facePoint = facePoint - p0; float t = dot(p0_to_facePoint, ab) / dot(ab, ab); t = clamp(t, 0.0f, 1.0f); / / Limit t to between 0 and 1 vec3 p = p0 + ab * t; vec3 facePoint_to_p = facePoint - p; return facePoint_to_p.length() - r; } __device__ inline Interval evalCylinderInterval(const float *size,const vec3 *points, const vec3&lower0, const vec3&upper0, float r) { float x_size = size[0]; float y_size = size[1]; float z_size = size[2]; vec3 lower = lower0; / / todo determines whether upper0 and lower0 are in the same period. If any of x, y, and z are not in the same period, return Interval(-1, 1); if( floorf((upper0.x+x_size / 2) / x_size) != floorf((lower0.y+x_size / 2) / x_size)) { return Interval(-MAX_SIZE, MAX_SIZE); } if( floorf((upper0.y+y_size / 2) / y_size) != floorf((lower0.y+y_size / 2) / y_size)) { return Interval(-MAX_SIZE, MAX_SIZE); } if( floorf((upper0.z+z_size / 2) / z_size) != floorf((lower0.z+z_size / 2) / z_size)) { return Interval(-MAX_SIZE, MAX_SIZE); } lower.x = my_fmod(fabs(lower0.x + x_size / 2), x_size) - x_size / 2; lower.y = my_fmod(fabs(lower0.y + y_size / 2), y_size) - y_size / 2; / / y coordinate periodicity lower.z = my_fmod(fabs(lower0.z + z_size / 2), z_size) - z_size / 2; / / z coordinate periodicity vec3 upper = upper0; upper.x = my_fmod(fabs(upper0.x + x_size / 2), x_size) - x_size / 2; upper.y = my_fmod(fabs(upper0.y + y_size / 2), y_size) - y_size / 2; / / y coordinate periodicity upper.z = my_fmod(fabs(upper0.z + z_size / 2), z_size) - z_size / 2; / / z coordinate periodicity vec3 p0 = points[0]; vec3 p1 = points[1]; vec3 axis = p1 - p0; float axisLength = axis.length(); vec3 axisUnit = axis / axisLength; / / Calculate the shortest distance from each face of the bounding box to the axis of the cylinder float minDistance = FLT_MAX; vec3 facePoints[6] = { lower, upper, / / two diagonal vertices vec3(lower.x, lower.y, upper.z), vec3(lower.x, upper.y, lower.z), / / Four side vertices vec3(upper.x, lower.y, lower.z), vec3(upper.x, upper.y, upper.z)}; vec3 faceNormals[6] = { vec3(1, 0, 0), vec3(-1, 0, 0), vec3(0, 1, 0), vec3(0, -1, 0), vec3(0,0, 1), vec3(0, 0, -1)}; for (int i = 0; i<6; ++i) { float dist = distanceFromFaceToLine(faceNormals[i], facePoints[i],p0, p1, r); minDistance = fminf(minDistance, dist); } / / Check if the bounding box intersects the cylinder bool intersects = (minDistance<0.0f); if (!intersects) { / / printf("interval external valid skip"); return Interval(minDistance, MAX_SIZE); / / The bounding box does not intersect the cylinder} return Interval(-MAX_SIZE, MAX_SIZE); } __device__ inline float distanceToLine(const vec3&p, const vec3&a,const vec3&b) { vec3 ap = p - a; vec3 ab = b - a; vec3 abp = ap - ab * dot(ap, ab) / dot(ab, ab); return abp.length(); } __device__ inline float clamp(float value, float min, float max) { return fmaxf(min, fminf(max, value)); } __device__ inline float dot(const vec3&a, const vec3&b) { return a.x * b.x + a.y * b.y + a.z * b.z; } __device__ inline Deriv evalDerivs(const Deriv&x,const Deriv&y,constDeriv&z) override { const float EPSILON = 1e-4; / / const float EPSILON = 1e-12; / / 定义一个小的epsilon值,用于计算导数。

[0055] float center, dx, dy, dz; center = (this->*func)(x.value(),y.value(), z.value()); dx = (this->*func)(x.value()+EPSILON,y.value(),z.value()); dy = (this->*func)(x.value(),y.value()+EPSILON,z.value()); dz = (this->*func)(x.value(),y.value(), z.value()+EPSILON); / / Implement specific logic / / return Deriv(center,dx,dy,dz); / / / / return Deriv(center,dx,dy,dz); / / / / printf("Derv x:%f,y:%f,z:%f,value:%f",x.value(),y.value(),z.value(),center); return Deriv(center,(dx-center) / EPSILON,(dy-center) / EPSILON,(dz-center) / EPSILON); }; FunctionPointer func; CadModelCommonParam cadModelCommonParam; }; For other embodiments, the rendering of the three-dimensional model using this method can be achieved according to the same idea, and this specification will not go into details here.

[0056] The above is the 3D model rendering method provided in this specification. Based on the same idea, this specification also provides a corresponding 3D model rendering device, such as Fig. 9 shown.

[0057] Fig. 9 A schematic diagram of a three-dimensional model rendering device provided in this specification specifically includes: An acquisition module 200 is used to acquire a three-dimensional model to be rendered and a rendering space where the three-dimensional model is located; A construction module 202, configured to construct a directed distance function according to the three-dimensional model; A determination module 204, configured to determine a positional relationship between each voxel contained in the rendering space and the three-dimensional model using the signed distance function; The rendering module 206 is used to render the voxels according to the position relationship.

[0058] Optionally, the determination module 204 is specifically used to divide the rendering space according to preset rules to obtain a number of block spaces; for each block space, use the directed distance calculation function to determine the positional relationship between the block space and the three-dimensional model; based on the positional relationship between the block space and the three-dimensional model, determine the positional relationship between each voxel contained in the block space and the three-dimensional model.

[0059] Optionally, the determination module 204 is specifically used to determine that each voxel contained in the block space is inside the three-dimensional model in response to the block space being entirely inside the three-dimensional model; to determine that each voxel contained in the block space is outside the three-dimensional model in response to the block space being entirely outside the three-dimensional model; and to determine that the positional relationship between the block space and the three-dimensional model is to be determined in response to the block space being neither entirely inside the three-dimensional model nor entirely outside the three-dimensional model.

[0060] Optionally, the determination module 204 is further used to continue dividing the block space and determine the positional relationship between the divided space and the three-dimensional model until the relationship between the divided space and the three-dimensional model is not to be determined or the divided space is a single voxel.

[0061] Optionally, the directed distance function includes at least a point directed distance calculation function, an interval directed distance calculation function, and a derivative calculation function.

[0062] Optionally, the determination module 204 is specifically used to use a pre-built extension function to call the signed distance function to determine the positional relationship between each voxel contained in the rendering space and the three-dimensional model, wherein the extension function is used to determine the signed distance function that needs to be called.

[0063] Optionally, the construction module 202 is specifically configured to determine whether the contour of the three-dimensional model can be expressed by a mathematical formula; in response to the contour of the three-dimensional model not being expressed by a mathematical formula, construct a signed distance function according to the three-dimensional model; The determination module 204 is specifically used to determine the positional relationship between each voxel contained in the rendering space and the three-dimensional model according to the mathematical formula expressing the contour of the three-dimensional model in response to the contour of the three-dimensional model being expressible by a mathematical formula; and to determine the positional relationship between each voxel contained in the rendering space and the three-dimensional model by using the signed distance function in response to the contour of the three-dimensional model being unable to be expressed by a mathematical formula.

[0064] This specification also provides a computer-readable storage medium, which stores a computer program, which can be used to execute the above Figure 1 Provides 3D model rendering methods.

[0065] This manual also provides Fig.10 The schematic structure diagram of the electronic device shown in FIG. Fig.10 As mentioned above, at the hardware level, the electronic device includes a processor, an internal bus, a network interface, a memory, and a non-volatile memory, and may also include other hardware required for the business. The processor reads the corresponding computer program from the non-volatile memory into the memory and then runs it to achieve the above Figure 1 Of course, in addition to the software implementation, this specification does not exclude other implementations, such as logic devices or a combination of software and hardware, etc., that is, the execution subject of the following processing flow is not limited to each logic unit, but can also be hardware or logic devices.

[0066] For the improvement of a technology, it can be clearly distinguished whether it is a hardware improvement (for example, improvement of the circuit structure of diodes, transistors, switches, etc.) or a software improvement (improvement of the method flow). However, with the development of technology, many improvements of the method flow today can be regarded as direct improvements of the hardware circuit structure. Designers almost always obtain the corresponding hardware circuit structure by programming the improved method flow into the hardware circuit. Therefore, it cannot be said that the improvement of a method flow cannot be implemented with a hardware entity module. For example, a programmable logic device (PLD) (such as a field programmable gate array (FPGA)) is such an integrated circuit whose logical function is determined by the user's programming of the device. Designers can "integrate" a digital system on a PLD by programming themselves, without having to ask chip manufacturers to design and make dedicated integrated circuit chips. Moreover, nowadays, instead of manually making integrated circuit chips, this kind of programming is mostly implemented by "logic compiler" software, which is similar to the software compiler used when developing and writing programs, and the original code before compilation must also be written in a specific programming language, which is called hardware description language (HDL). There is not only one kind of HDL, but many kinds, such as ABEL (Advanced Boolean Expression Language), AHDL (Altera Hardware Description Language), Confluence, CUPL (Cornell University Programming Language), HDCal, JHDL (Java Hardware Description Language), Lava, Lola, MyHDL, PALASM, RHDL (Ruby Hardware Description Language), etc. The most commonly used ones are VHDL (Very-High-Speed ​​Integrated Circuit Hardware Description Language) and Verilog. Those skilled in the art should also know that it is only necessary to program the method flow slightly in the above-mentioned hardware description languages ​​and program it into the integrated circuit, and then it is easy to obtain the hardware circuit that implements the logic method flow.

[0067] The controller may be implemented in any suitable manner, for example, the controller may take the form of a microprocessor or processor and a computer-readable medium storing a computer-readable program code (such as software or firmware) executable by the (micro)processor, a logic gate, a switch, an application-specific integrated circuit (ASIC), a programmable logic controller, and an embedded microcontroller. Examples of controllers include, but are not limited to, the following microcontrollers: ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20, and Silicone Labs C8051F320. The memory controller may also be implemented as part of the control logic of the memory. It is also known to those skilled in the art that, in addition to implementing the controller in a purely computer-readable program code manner, the controller may be implemented in the form of a logic gate, a switch, an application-specific integrated circuit, a programmable logic controller, and an embedded microcontroller by logically programming the method steps. Therefore, such a controller may be considered as a hardware component, and the devices for implementing various functions included therein may also be considered as structures within the hardware component. Or even, the devices for implementing various functions may be considered as both software modules for implementing the method and structures within the hardware component.

[0068] The systems, devices, modules or units described in the above embodiments may be implemented by computer chips or entities, or by products with certain functions. A typical implementation device is a computer. Specifically, the computer may be, for example, a personal computer, a laptop computer, a cellular phone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email device, a game console, a tablet computer, a wearable device, or a combination of any of these devices.

[0069] For the convenience of description, the above device is described in various units according to their functions. Of course, when implementing this specification, the functions of each unit can be implemented in the same or multiple software and / or hardware.

[0070] Those skilled in the art will appreciate that the embodiments of the present application may be provided as methods, systems, or computer program products. Therefore, the present application may adopt the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware. Moreover, the present application may adopt the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program codes.

[0071] The present application is described with reference to the flowcharts and / or block diagrams of the methods, devices (systems), and computer program products according to the embodiments of the present application. It should be understood that each process and / or box in the flowchart and / or block diagram, as well as the combination of the processes and / or boxes in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to generate a machine, so that the instructions executed by the processor of the computer or other programmable data processing device generate instructions for implementing the processes in the flowchart and / or block diagram. Figure 1 A process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.

[0072] These computer program instructions may also be stored in a computer-readable memory capable of directing a computer or other programmable data processing device to operate in a specific manner, so that the instructions stored in the computer-readable memory produce an article of manufacture comprising an instruction device, which implements the process Figure 1 A process or multiple processes and / or boxes Figure 1 A function specified in one or more boxes.

[0073] These computer program instructions can also be loaded onto a computer or other programmable data processing device so that a series of operating steps are executed on the computer or other programmable device to produce a computer-implemented process, thereby providing instructions for implementing the process. Figure 1 A process or multiple processes and / or boxes Figure 1 The steps for the functions specified in one or more boxes.

[0074] In a typical configuration, a computing device includes one or more processors (CPU), input / output interfaces, network interfaces, and memory.

[0075] The memory may include non-permanent storage in a computer-readable medium, random access memory (RAM) and / or non-volatile memory in the form of read-only memory (ROM) or flash RAM. The memory is an example of a computer-readable medium.

[0076] Computer readable media include permanent and non-permanent, removable and non-removable media that can be implemented by any method or technology to store information. Information can be computer readable instructions, data structures, program modules or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, compact disk read-only memory (CD-ROM), digital versatile disk (DVD) or other optical storage, magnetic cassettes, magnetic tape magnetic disk storage or other magnetic storage devices or any other non-transmission media that can be used to store information that can be accessed by a computing device. As defined herein, computer readable media does not include temporary computer readable media (transitory media), such as modulated data signals and carrier waves.

[0077] It should also be noted that the terms "include", "comprises" or any other variations thereof are intended to cover non-exclusive inclusion, so that a process, method, commodity or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, commodity or device. In the absence of more restrictions, the elements defined by the sentence "comprises a ..." do not exclude the existence of other identical elements in the process, method, commodity or device including the elements.

[0078] It should be understood by those skilled in the art that the embodiments of this specification may be provided as methods, systems or computer program products. Therefore, this specification may take the form of a complete hardware embodiment, a complete software embodiment or an embodiment combining software and hardware. Moreover, this specification may take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.

[0079] This specification may be described in the general context of computer-executable instructions executed by a computer, such as program modules. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform specific tasks or implement specific abstract data types. This specification may also be practiced in distributed computing environments where tasks are performed by remote processing devices connected through a communication network. In a distributed computing environment, program modules may be located in local and remote computer storage media, including storage devices.

[0080] Each embodiment in this specification is described in a progressive manner, and the same or similar parts between the embodiments can be referred to each other, and each embodiment focuses on the differences from other embodiments. In particular, for the system embodiment, since it is basically similar to the method embodiment, the description is relatively simple, and the relevant parts can be referred to the partial description of the method embodiment.

[0081] The above description is only an embodiment of this specification and is not intended to limit this specification. For those skilled in the art, this specification may have various changes and variations. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of this specification should be included in the scope of the claims of this application.

Claims

1. A three-dimensional model rendering method, characterized in that: include: Obtaining a three-dimensional model to be rendered and a rendering space where the three-dimensional model is located; constructing a directed distance function according to the three-dimensional model; Determining the positional relationship between each voxel contained in the rendering space and the three-dimensional model using the signed distance function; The three-dimensional model is rendered for each voxel according to the positional relationship.

2. The method according to claim 1, characterized in that Determining the positional relationship between each voxel contained in the rendering space and the three-dimensional model by using the signed distance function specifically includes: Dividing the rendering space according to a preset rule to obtain a plurality of block spaces; For each block space, the directed distance calculation function is used to determine the positional relationship between the block space and the three-dimensional model; The positional relationship between each voxel contained in the block space and the three-dimensional model is determined according to the positional relationship between the block space and the three-dimensional model.

3. The method according to claim 2, characterized in that Determining the positional relationship between each voxel contained in the block space and the three-dimensional model according to the positional relationship between the block space and the three-dimensional model specifically includes: In response to the block space being entirely within the three-dimensional model, determining that each voxel contained in the block space is within the three-dimensional model; In response to the block space being entirely outside the three-dimensional model, determining that each voxel contained in the block space is outside the three-dimensional model; In response to the fact that the block space is not entirely within the three-dimensional model and is not entirely outside the three-dimensional model, it is determined that a positional relationship between the block space and the three-dimensional model is to be determined.

4. The method according to claim 3, characterized in that After determining that the relationship between the block space and the three-dimensional model is undetermined, the method further includes: The block space is continuously divided, and the positional relationship between the divided space and the three-dimensional model is determined until the relationship between the divided space and the three-dimensional model is not undetermined or the divided space is a single voxel.

5. The method according to claim 1, characterized in that The directed distance function at least includes a point directed distance calculation function, an interval directed distance calculation function, and a derivative calculation function.

6. The method according to claim 2, characterized in that Determining the positional relationship between each voxel contained in the rendering space and the three-dimensional model by using the signed distance function specifically includes: The signed distance function is called by using a pre-built extension function to determine the positional relationship between each voxel contained in the rendering space and the three-dimensional model, wherein the extension function is used to determine the signed distance function that needs to be called.

7. The method according to claim 1, characterized in that Constructing a directed distance function according to the three-dimensional model specifically includes: Determining whether the contour of the three-dimensional model can be expressed by a mathematical formula; In response to the contour of the three-dimensional model being unable to be expressed by a mathematical formula, constructing a signed distance function according to the three-dimensional model; Determining the positional relationship between each voxel contained in the rendering space and the three-dimensional model by using the signed distance function specifically includes: In response to the contour of the three-dimensional model being expressible by a mathematical formula, determining a positional relationship between each voxel contained in the rendering space and the three-dimensional model according to the mathematical formula expressing the contour of the three-dimensional model; In response to the fact that the contour of the three-dimensional model cannot be expressed by a mathematical formula, the signed distance function is used to determine the positional relationship between each voxel contained in the rendering space and the three-dimensional model.

8. A three-dimensional model rendering device, characterized in that: include: An acquisition module, used to acquire a three-dimensional model to be rendered and a rendering space where the three-dimensional model is located; A construction module, used for constructing a directed distance function according to the three-dimensional model; A determination module, configured to determine a positional relationship between each voxel contained in the rendering space and the three-dimensional model by using the signed distance function; A rendering module is used to render each voxel according to the position relationship.

9. A computer-readable storage medium, characterized in that: The storage medium stores a computer program, and when the computer program is executed by a processor, the method described in any one of claims 1 to 7 is implemented.

10. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that: When the processor executes the program, the method described in any one of claims 1 to 7 is implemented.

Citation Information

Patent Citations

  • Three-dimensional surface reconstruction method and device and electronic equipment

    CN111402422A

  • Mechanical arm and three-dimensional reconstruction method and device thereof

    CN111540045A

  • System and method for hierarchical implicit representation of three-dimensional modeled octree

    CN116490899A

  • Reconstruction method, device and equipment of three-dimensional entity model, medium and program product

    CN117409144A

  • Directed distance field storage method, system, equipment and medium

    CN118608719A

Cited By

  • Three-dimensional model generation method and device, storage medium and electronic equipment

    CN119850873A