Real-time parameterization of implicit surfaces

CN123015798APending Publication Date: 2026-10-30ADOBE INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202610213206.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2025-04-30
Filing Date
2026-02-13
Publication Date
2026-10-30

AI Technical Summary

Technical Problem

若不先将隐式曲面转换为显式网格表示,常规技术无法直接应用于隐式曲面——该转换过程计算成本高昂,并且会丧失隐式曲面固有的许多优势

Benefits of technology

[0004]在一个实现方式中,处理设备使用多个参考点在隐式曲面上生成多个局部参数化片,并且将这些片合并到更大的空间连贯区域中。合并涉及将UV偏移量、缩放、和/或旋转指派给每个参考点,并且基于测地线距离、使用加权函数来混合来自相邻参数化片的UV坐标。所得到的半全局参数化符合隐式曲面的几何形状,允许在3D对象的更大区域上进行更一致和连续的纹理映射。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN123015798A_ABST
    Figure CN123015798A_ABST
Patent Text Reader

Abstract

Embodiments of the application relate to real-time parameterization of implicit surfaces. In implementing real-time parameterization of implicit surfaces, a processing device receives an implicit surface representing a three-dimensional (3D) object. The processing device approximates a geodesic path between one or more query points on the implicit surface and a reference point. Using the geodesic path, the processing device generates a parameterization sheet on the implicit surface. The parameterization sheet provides a local two-dimensional (2D) coordinate system over a portion of the 3D object surface. UV coordinates are generated for the query points based on the geodesic path.
Need to check novelty before this filing date? Find Prior Art

Description

Background Technology

[0001] A digital 3D (3D) model is a computer-generated representation of an object that captures its shape, size, and appearance (e.g., color, texture). Implicit surfaces are widely used in computer graphics to represent and model objects with complex shapes. Unlike surfaces defined by polygons (e.g., triangular meshes), implicit surfaces are defined by a scalar field in 3D space, offering advantages such as smooth blending, ease of topological changes, and a compact possible representation.

[0002] However, applying 2D textures to implicit surfaces presents technical challenges due to their volumetric nature. Conventional texture mapping techniques use explicit surface representations, such as polygonal meshes, which utilize well-defined local UV coordinates to map 2D textures onto 3D surfaces. Conventional techniques cannot be directly applied to implicit surfaces without first converting the implicit surface to an explicit mesh representation—a computationally expensive process that loses many of the inherent advantages of implicit surfaces. As computer graphics applications increasingly utilize implicit surface representations for modeling, animation, and real-time rendering, applying 2D textures and details to implicit surfaces without sacrificing their topological flexibility remains challenging. Summary of the Invention

[0003] A technique and system for real-time parameterization of implicit surfaces are described. In one example, a processing device receives an implicit surface representing a 3D object and generates one or more parameterized patches on the implicit surface using corresponding reference points. Each parameterized patch provides a local 2D coordinate system on a portion of the 3D object surface. The processing device then approximates a geodesic path between a query point and a reference point for each parameterized patch on the implicit surface. The geodesic path is approximated by projecting the gradient of the Euclidean distance between the query point and the reference point onto a tangent plane of the implicit surface and using a second-order approximation to move along the surface. Based on this geodesic path, the processing device generates UV coordinates for the query point. The described technique and system enable efficient and accurate computation of UV coordinates on complex implicit surfaces.

[0004] In one implementation, the processing device generates multiple locally parametric patches on the implicit surface using multiple reference points and merges these patches into a larger, spatially coherent region. Merging involves assigning UV offsets, scaling, and / or rotation to each reference point and using a weighted function based on geodesic distance to blend UV coordinates from adjacent parametric patches. The resulting semi-global parametric conforms to the geometry of the implicit surface, allowing for more consistent and continuous texture mapping over a larger area of ​​the 3D object.

[0005] The described technique enables modeling applications to apply texture mappings to implicit surfaces using generated UV coordinates. Texture mappings can include color textures, normal mappings, shell mappings, or displacement mappings, allowing rich visual details to be added to 3D objects represented by implicit surfaces. Furthermore, the described technique is designed to be executed in real-time, for example, via shaders executed on a graphics processing unit. Therefore, parametric parameters can be dynamically updated in response to deformations or topological changes of the implicit surface, making them suitable for interactive applications and real-time rendering scenes.

[0006] This invention provides a simplified description of some concepts that will be further described in the following detailed description. Therefore, this invention is not intended to identify essential features of the claimed subject matter, nor is it intended to define the scope of the claimed subject matter. Attached Figure Description

[0007] Detailed description of the embodiments will be given with reference to the accompanying drawings. The entities shown in the drawings refer to one or more entities; therefore, the singular or plural forms of entities are used interchangeably in the discussion.

[0008] Figure 1 This is an illustration of a digital media environment in an example implementation that is operable to employ techniques and systems for real-time parameterization of implicit surfaces as described herein.

[0009] Figure 2 The system is described in an example implementation of real-time parameterized operations for implicit surfaces.

[0010] Figure 3A It shows the result of Figure 1 and Figure 2 The parameterization module generates an example logarithmic (log) map from the surface exponential map.

[0011] Figure 3B It shows Figure 1 and Figure 2 The parameterization module is used for the process of estimating geodesic paths.

[0012] Figure 4 It shows Figure 1 and Figure 2 The accumulation process of the parameterization module.

[0013] Figure 5 The flow of an example implementation for generating a logarithmic map around a reference point is described.

[0014] Figure 6 An example of generating and merging multiple parametric pieces on an implicit surface is depicted.

[0015] Figure 7An example depicting a combination of multiple UV fields.

[0016] Figure 8 The process of generating hybrid UV coordinates is described in an example implementation.

[0017] Figure 9 The flow of an example implementation of real-time parameterization of implicit surfaces is described.

[0018] Figure 10 An example system is shown, comprising various components of an example device, which can be implemented as described in the reference. Figures 1-9 Any type of computing device described and / or used to implement the various embodiments of the techniques described herein. Detailed Implementation Overview

[0019] Implicit surfaces are a common way to digitally represent and model 3D objects. Implicit surfaces typically represent objects using mathematical equations (e.g., closed-form equations), where points satisfying these equations lie on the surface, or through a scalar field in a discrete, dense mesh. Unlike explicitly defined vertices and faces (e.g., triangular meshes), implicit surfaces are defined by a scalar field in 3D space. Using implicit surfaces, modeling applications can create complex and organic shapes that are difficult to model using conventional polygon techniques. For example, implicit surfaces allow for smooth blending between shapes, ease of topological changes, and compact representation. This representation method enables more flexible and robust manipulation of 3D geometry. However, applying 2D textures to implicit surfaces presents significant technical challenges due to their volumetric properties.

[0020] Conventional texture mapping techniques use explicit surface representations with well-defined UV coordinates to map 2D textures onto 3D surfaces. These techniques cannot be directly applied to implicit surfaces; the implicit surface must first be converted to an explicit mesh representation, a computationally expensive process that loses many of the inherent advantages of implicit surfaces. As computer graphics applications increasingly utilize implicit surface representations for modeling, animation, and real-time rendering, effectively applying 2D textures and surface details to implicit surfaces while maintaining their topological flexibility remains a significant technical challenge.

[0021] Existing methods for implicit surface texturing typically involve global parameterization or explicit representation transformations (e.g., converting to a mesh via moving cubes or dual contour techniques). Meshing is computationally expensive, limiting its use in real-time applications and potentially introducing unwanted feature smoothing and discretization artifacts. Furthermore, if the modeling application generates the mesh first and then adds surface details, the meshing process negates the advantages of implicit surfaces in real-time modeling.

[0022] Other conventional methods attempt to compute coordinates or add texture details to implicit surfaces without discretizing the surface. However, these conventional techniques impose restrictive assumptions on the surface definition equations. For example, some techniques use structured fields (e.g., using simple shapes or a series of simple shapes structured in a specific way) to compute coordinates and blend textures, add fine geometric details to the surface from noise defined on the surface, or apply displacement mappings to shapes with canonical coordinates. Because they use a large number of points to describe the shape, these methods tend to be computationally intensive in terms of sampling, encoding complex geometries, and storing coordinates at each seed point. Therefore, these conventional techniques can introduce distortion or artifacts into the resulting texture mappings, especially for complex shapes with intricate surface details.

[0023] To address these limitations, the described technique for real-time parametric mapping of implicit surfaces provides an efficient, point-by-point approach that generates semi-global UV coordinates while avoiding meshing. The technique enables the generation of point-by-point and parallelizable parametric mappings for texturing, rendering, and modeling purposes. By computing local parametric patches and enabling the merging of multiple adjacent patches into a larger, spatially coherent region consistent with the underlying geometry, the technique provides a flexible and efficient solution for implicit surface texturing.

[0024] The described technique utilizes a spherical tracing pipeline implemented in the shader, allowing users to edit UV fields with real-time visualization. An example modeling application leverages the generated parametric representations to enable users to add rendering details such as color textures, normal maps, shell maps, and displacement maps. The textured objects remain implicit and can still be used within the modeling pipeline, thus preserving the advantages of implicit surface representation in real-time operations.

[0025] In one embodiment, the real-time parametric module establishes local parametric representations and enables multiple adjacent parametric patches to be merged into a common coordinate system by moving along the surface using a second-order approximation of the shape. The real-time parametric module constructs point-by-point and parallelizable local parametric representations of the surface based on approximations of the geodesic paths between the query point and the reference point. Each parametric patch is defined on a smooth region bounded by sharp features. Merging multiple local parametric patches into a common coordinate system allows a larger portion of the surface to be parametricized while maintaining geometric continuity.

[0026] In this way, the described real-time parametric module enables users to apply color textures, normal maps, and displacement maps in a spherical tracing rendering pipeline without sacrificing the benefits of implicit surface representation. The described module can also encode complex shapes as displacements on simple implicit surfaces, thereby separating the underlying geometry from fine details. Furthermore, the evaluation of the generated parametric representations can be run in parallel and can be efficiently implemented on a graphics processing unit (GPU) to achieve real-time performance for interactive applications.

[0027] The following discussion describes an example environment employing the techniques described herein. Example processes that can be executed in both the example environment and other environments are also described. Therefore, the execution of the example processes is not limited to the example environment, and the example environment is not limited to executing the example processes. Example Environment

[0028] Figure 1 This is an illustration of a digital media environment 100 in an example implementation, operable to employ techniques and systems for real-time parameterization of implicit surfaces as described herein. The illustrated environment 100 includes a service provider system 102 and a client device 104 communicatively coupled to each other via a network 106. The computing devices implementing the service provider system 102 and the client device 104 can be configured in various ways.

[0029] For example, a computing device can be configured as a desktop computer, a laptop computer, a mobile device (e.g., a handheld configuration employing a tablet computer or mobile phone as illustrated), etc. Therefore, the range of computing devices extends from fully-resourced devices with abundant memory and processor resources (e.g., personal computers and game consoles) to low-resource devices with limited memory and / or processing resources (e.g., some mobile devices). Additionally, while a single computing device is shown and described in some examples, a computing device also refers to multiple different devices, such as... Figure 10 The described company uses multiple servers to perform "cloud" operations.

[0030] Client device 104 is shown to include a content editing system 108. The content editing system 108 is implemented at least in part in the hardware of client device 104 to process and transform digital content 110, which is shown to be stored in storage device 112 of client device 104. This processing includes creating digital content 110, modifying digital content 110, and rendering digital content 110 in a user interface for output (e.g., via a display device).

[0031] In this example, service provider system 102 is shown implementing digital service platform 114 through hardware and software resources 118 to provide digital service 116. Digital service 116 represents the functionality provided by service provider system 102 to client device 104 via network 106. In a first instance, digital service 116 includes a social networking service executable to share communications, posts, digital content, etc. In a second instance, one or more digital services 116 include inventory digital services configured to provide access to digital content (e.g., paid content) located using a digital search service.

[0032] In the example shown, digital service 116 includes a three-dimensional (3D) modeling service 120. In this example, 3D modeling service 120 is configured to operate in conjunction with content editing system 108 to support the ability to edit (e.g., create) a 3D environment 122 and 3D objects 124 set within the 3D environment 122. Although shown as one of the digital services 116 implemented at service provider system 102, this functionality could also be implemented locally at client device 104, for example, by content editing system 108 alone.

[0033] Modeling service 120 supports various functions configured to support and implement editing of 3D environment 122 and 3D object 124. An example of this functionality is represented by parametric module 126, which uses implicit surfaces 128 to represent 3D environment 122 and / or 3D object 124. As described in more detail below, parametric module 126 generates one or more local parametric patches 130 of implicit surfaces 128 and one or more merged patches 132 of local parametric patches 130 to allow users to edit real-time visualized UV fields and use parametric methods to add rendering details (e.g., texture, normal height, and displacement height).

[0034] Implicit surfaces (128) are a common way to digitally represent shapes. Implicit representation uses surfaces... M Encoded as an embedding subset in 3D space (e.g., It is defined as a scalar field. The set of zeros that satisfies: (1)

[0035] Although M It can include volumetric regions (3D), curves (1D), or isolated points (0D), but is typically represented as surfaces (2D). Scalar field Allows 3D modeling service 120 or parametric module 126 to query surfaces. M Location 。 like Simultaneously satisfying the Eikonal equation ,but This becomes a signed distance field (SDF), which implies the existence of a volumetric region. satisfy and (2)

[0036] When surface M pass SDF f During encoding, the parameterization module 126 calculates the intersection points of the ray and the surface through spherical tracing, and its algorithm is iterative. ,in The direction of the ray. For the maximum "safe" step size (e.g., not with M The step size of the intersection). If the function f Supporting parallel computing allows for significantly faster ray tracing by implementing iterative equations via the GPU in the shader language, thus enabling real-time rendering. The 3D modeling service 120 employs this spherical tracing technique to render implicit surfaces 128 because it enables 3D geometry editing and real-time visualization in a fully implicit setting.

[0037] The described technique designs a fast, point-by-point method to generate semi-global UV coordinates for texturing on an implicit surface 128 while avoiding meshing. This is achieved by using a second-order approximation of the shape along the surface. M The described technique constructs local parametric patches 130 and provides a method for merging multiple adjacent parametric patches into a common coordinate system and merging patches 132. The described technique is built into the spherical tracing renderer of the 3D modeling service 120, which runs in real-time on a resolved SDF, allowing users to edit UV fields with immediate feedback. Because the implicit surface 128 is not meshed, the final textured object remains implicit and can be used in the modeling workflow, for example, to perform topological operations, deformation operations, or utilize symmetry on the shape in real time.

[0038] In general, the functions, features, and concepts described in the examples above and below are used in the context of the example processes described in this section. Furthermore, the functions, features, and concepts described with respect to the different figures and examples in this document are interchangeable and are not limited to implementation in the context of a particular figure or process. Additionally, the boxes associated with different representative processes and corresponding figures herein can be applied together and / or combined in different ways. Therefore, individual functions, features, and concepts described herein with respect to different example environments, devices, components, figures, and processes can be used in any suitable combination and are not limited to the specific combinations represented by the examples listed in this specification. Example Environment

[0039] Figure 2 System 200 is depicted in an example implementation illustrating the operation of real-time parameterization of implicit surfaces. System 200 generates semi-global parameterizations of 3D objects represented by implicit surfaces. System 200 includes several interconnected components, including parameterization module 126 and merging module 202, which work together to process implicit surfaces and produce parameterizations for various computer graphics and modeling applications.

[0040] When using spherical tracing to render implicit surfaces, System 200 offers enhanced capabilities compared to conventional techniques. In the spherical tracing pipeline, the GPU computes in parallel the intersection points between the ray and the surface at each pixel of the screen. For each ray-surface intersection... The system 200 query retrieves additional rendering textures or attributes. (For example, color, highlights, etc.). System 200 uses a point-by-point method to derive UV coordinates, which can be implemented in a GPU renderer.

[0041] Parametric module 126 generates local parametric representations on the surface. For example, parametric module 126 creates parametric patches that provide local two-dimensional (2D) coordinate systems on portions of a 3D object surface. Parametric module 126 can utilize various mathematical techniques to generate local parametric representations, such as exponential mappings. Parametric module 126 is implemented in hardware and / or software, employing adaptive algorithms to adjust the size and shape of the parametric patches based on local surface features, curvature, or user-defined criteria. In some implementations, parametric module 126 integrates parallel processing capabilities, utilizing GPU acceleration to compute multiple parametric patches simultaneously to improve performance. Additionally, parametric module 126 may include mechanisms for detecting and handling singularities or geometrically complex regions on implicit surfaces, thereby ensuring robust parametric representations even for challenging surface topologies.

[0042] Merging module 202 is implemented in hardware and / or software to create more coherent parametricizations on the surface of a 3D object. Merging module 202 merges adjacent parametric patches into a larger, spatially coherent region consistent with the geometry of implicit surface 128. For example, merging module 202 uses various blending techniques to seamlessly connect adjacent parametric patches, such as weighted averaging, radial basis functions, or decomposition of unity. In some implementations, merging module 202 merges patches at multiple scales to create multi-resolution parametricizations that can adapt to different levels of detail on the surface. As described below, merging module 202 can also incorporate feature-aware algorithms to preserve specific geometric properties, such as sharp edges or high-curvature regions, during the merging process. The merging process also includes mechanisms for detecting and resolving conflicts or inconsistencies between adjacent patches, thereby ensuring smooth and continuous parametricization across patch boundaries.

[0043] The parameterization module 126 first receives input 204, which includes an implicit surface 128 representing a 3D object. The implicit surface 128 is typically defined by a scalar field in 3D space, where the surface is expressed as a zero-level set of that field. This representation allows for the efficient description of complex geometries and topological relationships.

[0044] The parameterization module 126 first selects a reference point 206 on the implicit surface 128. This reference point 206 ( This serves as an anchor point or seed for generating parametric patch 208. Parametric patch 208 is a local region of the surface in which a 2D coordinate system is established, allowing for efficient mapping of textures and other surface properties. Local parametric patch 208 originates from a point... of Neighborhood U arrive Mapping: (3)

[0045] To create parametric patch 208, parametric module 126 approximates reference point 206 and other points on the surface (e.g., query points) within the patch. The geodesic path 210 between () is used. The parameterization module 126 uses an approximation of the exponential mapping and an environment-heuristic algorithm to approximate the query point. With reference point The geodesic path between them is 210. A geodesic is a generalization of a straight line onto a (curved) manifold. If the curve... If the following energy levels are critical points, then the curve is a geodesic: (4) in for The standard Euclidean norm in space. Such curves can be parameterized by arc length, for example, A geodesic is a local shortest path on a curved surface. Taking a point... As the starting point and initial direction The geodesic path 210 satisfies the following initial values. Critical point: (5)

[0046] Exponential mapping any vector ν Mapping to equation (5) Solution at the location: (6) Based on arc length parameterization, point and The geodesic distance between them is: .

[0047] The geodesic path 210 is calculated using a second-order approximation of surface geometry, striking a balance between accuracy and computational efficiency. Other implementations use a first-order approximation; however, the second-order approximation allows for larger step sizes, thus enabling the movement of a fixed distance even on irregular surfaces. T Fewer evaluations are required. The second-order approximation takes into account the local curvature of the surface, ensuring that the resulting parameterization conforms to the underlying geometry.

[0048] Implicit Surface 128 M The second-order approximation of the exponential mapping is the path ,satisfy: (7) To construct this path Parameterization module 126 uses M The second-order geometric quantity. Let . express Gaussian mapping. p The shape operator at the location is defined as n Differential: (8)

[0049] eigenvalues , and its eigenvectors , yes M exist p The principal curvature and direction of principal curvature of a point. For implicit surfaces, parameterization module 126 uses the following formula from...f Calculate shape operator : (9) in Representation function f At point p The Hessian matrix at the given location. The shape operator gives the surface... M Local quadratic approximation: (10)

[0050] Solving the complete Hessian matrix in equation 10 is computationally expensive (e.g., when using the finite difference method, it requires computationally intensive calculations). f (Evaluation is performed 18 times). Parameterization module 126 only requires the use of one item. Three-point finite difference scheme, (11) Because it has already been used Only two additional calculations are required. f For surfaces with high curvature or surfaces that are differentiable but not second-order differentiable, the parameterization module 126 can perform the following operations: The approximate value is reprojected to M superior: (12)

[0051] Exponential mapping Cutting plane Mapped to surface M If an orthogonal basis is chosen... Then the parameterization module 126 can use the following methods to... Mapped to M : (13)

[0052] In a given 2D coordinate system ( u , v When the parameterization module 126 uses equation 13 to derive the surface, M 3D point position on This process describes the inverse operation of the objective expressed by Equation 3. Parameterization module 126 constructs the inverse operation of the exponential map—the logarithmic map (e.g., log), which maps in the neighborhood of point p. The upper part is locally defined: (14) Make .

[0053] Figure 3A The diagram shows Figure 1 and Figure 2 An example of the parameterization module 126 based on the logarithmic map 302 generated by the surface exponential map 304. For example... Figure 3A As shown, a fixed orthogonal frame is used. Same parameterization Logarithmic mapping 302 effectively maps U to Select a fixed orthogonal frame. At that time, the exponent maps to 304 Mapping a plane to a surface, while logarithmic mapping 302 For each neighboring point x Provides 2D coordinates.

[0054] Calculating the inverse mapping is more complex than calculating the forward mapping. Logarithmic mapping 302 receives the query point. And solve from arrive geodesic speed The parameterization module 126 solves the optimization problem by fixing boundary values: (15)

[0055] Large-scale geodesic computation methods typically employ global approaches to simultaneously explore large regions of geometry. However, the parametric module 126 avoids meshing the surface and runs queries in parallel; therefore, instead, it performs queries on each query point. x Perform local approximation of geodesics.

[0056] Similar to A-star (e.g., A The search algorithm, parameterized module 126, follows a heuristic path. It utilizes Euclidean environmental distance... The gradient flow, while closely adhering to the surface M, originates from... x arrive p Point approximation geodesic path 210: (16)

[0057] Euclidean distance The gradient has a closed form: (17) Tangent plane Projection operator on It also has a closed form. (18)

[0058] Parametric module 126 uses the exponential mapping defined in equation 10 to keep the discretized sequence on the surface: (19) in Indicates the first i The step size. The parameterization module 126 uses local geodesic tracing techniques to approximate the geodesic between two points to avoid the bisection between the initial value problem and the boundary value problem.

[0059] Based on the geodesic path 210, the parametric module 126 generates UV coordinates 212 for points within the parametric patch 208. The UV coordinates 212 form the basis of a 2D coordinate system on the surface, allowing textures and other 2D data to be mapped onto 3D objects.

[0060] Although the curve Cannot be directly converted The UV coordinates are used, but the parameterization module 126 uses polar coordinates to Cartesian coordinates for the transformation: (20) Parameterization module 126 estimation The length of, and its endpoints p Direction With fixed frame The angle between .

[0061] Figure 3B The diagram shows Figure 1 and Figure 2 The parameterization module 126 is used to estimate the geodesic path 210. Under the premise of adhering to surface constraints, the query point 306 can be obtained through gradient descent of Euclidean distance. x With reference point 206 p The approximation geodesic path 210 between them. Parameterization module 126 utilizes the curve arc length and its endpoints. p Location relative to fixed frame The coordinates are calculated using the angle of incidence.

[0062] For example, parameterization module 126 measures N bar curve Each curve in the equation, combined with equation 19 and To calculate : (twenty one)

[0063] Parameterization module 126 then uses Simpson's rule for each Approximation: (twenty two) To estimate points p Angle of incidence at point The parameterization module 126 first calculates its endpoints. Unit tangent direction at: (twenty three) Due to the standard frame As an orthonormal basis, parameterization module 126 calculates the logarithmic mapping in the UV coordinates using the following formula: (twenty four)

[0064] Compared to conventional techniques that directly estimate implicit decals, the curve-based parameterization of parameterization module 126 offers several advantages. Because parameterization module 126 travels along a curved surface, it can generate more accurate geodesic distance estimates and accumulate additional geometric information along the curve, such as reference... Figure 5 As explained.

[0065] Figure 5 The flowchart 500 describes an example implementation of generating a logarithmic mapping around a reference point. First, the parameterization module 126 receives input (box 502). The input includes implicit surface scalar field functions. F、 query point Reference points p Parametric frame ( Maximum number of iterations N Maximum distance D , and tolerance parameters ( ).

[0066] Parameterization module 126 determines whether the maximum distance has been exceeded. D (Box 504). If the maximum distance is not exceeded (e.g., determined as "No" at Box 504), then parameterization module 126 determines an adaptive time step (Box 506). The adaptive time step allows the system to adjust the size and shape of each local parameterized patch based on the local surface curvature of the implicit surface. The adaptive method is able to compute high curvature regions more efficiently while maintaining accuracy.

[0067] To ensure the continuity of local parameterization, process 500 includes the same number of steps at each query point. Consider... x and x' These are two adjacent query points. Because parameterization module 126 operates independently... x and x' Running process 500, so if parameterization module 126 is used in one case N Step in another caseN -1 step means that missing steps may introduce discontinuities in their UV coordinates. Using a fixed number of iterations with an adaptive step size helps to evenly allocate computation time to each processing component in parallel computing.

[0068] In order to utilize N In each iteration of the gradient descent, parameterization module 126 selects the step size. To maximize the approximation of geodesics And arrive at the reference Point p The probability of this is considered. If the step size is too large, the parameterization module 126 may deviate from the isosurface when the curvature of M is high; if the step size is too small, the parameterization module 126 may not be able to reach the seed point before the number of iterations is exhausted. The time step size is set such that the distance moved in each iteration is equal to the distance between the current position and the target. The Euclidean distance between them divided by the number of remaining steps: (25)

[0069] To derive the step size of the above equation, parameterization module 126 uses equation 10, where Corresponding scalar and Then, by solving... The conclusion is : (26)

[0070] When the curved surface is a plane ,therefore The parameterization module 126 can recover When the surface M is smooth, the resulting logarithmic mapping will be continuously dependent on the input because each query point uses a position-dependent step size and the number of steps is the same. When the surface is differentiable but not twice differentiable, the parameterization module 126 can reproject using Equation 12. .

[0071] Parameterization module 126 calculates the direction. : (27)

[0072] The parameterization module 126 then determines The validity of the heuristic algorithm is used to detect whether it has failed (box 508). The gradient flow of Euclidean distance may not generate query points on the surface. x With reference point p The effective curve between. Because parameterization module 126 does not perform a global search to find the optimal path, process 500 may get trapped in a local minimum. A local minimum refers to a curve that makes the path between the two points effective. p -x and n(x) Collinear points x。 However, due to the function It is a continuous function on M and has a global minimum point. p , p Every point within the attraction domain should flow along the gradient and reach p .

[0073] If the heuristic algorithm does not fail (e.g., determined to be "No" at box 508), the parameterization module 126 uses Equation 10 to construct a geodesic path (box 510). This geodesic approximates the shortest distance between the query point and the reference point on the implicit surface within the parameterized patch.

[0074] The parameterization module 126 then determines whether sharp features exist (box 512). Sharp features are detected by detecting discontinuities in the normals along the geodesic path. Discontinuities in the normals are determined by comparing adjacent normal vectors: a discontinuity is determined to exist when the angle between adjacent normal vectors exceeds a preset threshold. This detection allows the parameterized patch to be at least partially defined by one or more sharp features, thereby preserving the geometry of the implicit surface.

[0075] Models often include sharp features with discontinuous normals, such as the 90-degree edges of a box. Geodesic trackers are unstable near sharp edges and corners because of the lack of a definite tangent plane to project the distance gradient, thus preventing UV sheets from traversing these features stably. In the context of 3D design, sharp features typically divide a shape into semantically independent regions, each with its own independent UV islands. In some scenarios, sharp features also identify components made of different materials.

[0076] Since the described parameterization is based on join query points x With reference point p For geodesics, parameterization module 126 can detect sharp features by detecting discontinuities in the normal along the curve: (28) It is a tolerance value for changes in the normal. Since the detection may produce false alarms (e.g., when a smooth shape is detected as a sharp feature when it bends rapidly), the parameterization module 126 can use differentiated tolerance parameters in different regions to adapt to the geometry.

[0077] If no sharp feature is detected (e.g., determined to be "No" at box 512), the parameterization module 126 accumulates the rotation along the geodesic path (box 514).

[0078] The parameterization module 126 then determines whether the maximum distance has been exceeded, i.e., whether the verification is successful. Whether it is valid, among which (Box 516). If the maximum distance is not exceeded (e.g., determined as "No" at Box 516), then the parameterization module 126 determines the UV coordinates (Box 518). The UV coordinates provide a two-dimensional representation of the position on the implicit surface, which can be used for texture mapping and other surface operations.

[0079] After box 518, or if any previous judgment result is affirmative (e.g., "yes" is determined at boxes 504, 508, 512, or 512), process 500 proceeds to the end (box 520).

[0080] Process 500 is designed to execute in real time, dynamically updating local parametric patches in response to deformation or topological changes of implicit surfaces. This real-time capability enables interactive applications and efficient handling of evolving implicit surfaces.

[0081] Continue to refer to Figure 2 The system 200 shown allows the parametric module 126 to generate multiple local parametric patches 208 on the implicit surface 128 using multiple reference points 206. The reference points 206 are aligned with the orthogonal frame. The resulting tuples are called the seeds of each parametric patch 208. Multiple parametric patches 208 can fully cover complex surfaces, and are especially suitable for scenarios that are difficult to achieve with a single global parametric patch.

[0082] The merging module 202 combines and blends multiple seeds to reduce distortion and cover a larger area of ​​the implicit surface 128. Blending multiple seeds includes: finding the seed closest to the geodesic, determining a UV offset 214 for each reference point to align with the parametric patch 208, and applying a weighting function 216 to blend the UV coordinates of adjacent patches. In other implementations, the reference points may also be scaled and / or rotated to align with the parametric patch 208.

[0083] Figure 6 An example 600 depicts the generation and merging of multiple parametric patches on an implicit surface 602. Since a single seed (e.g., a first seed 604) is typically insufficient to parametricate a large area of ​​the implicit surface 602, and since surface curvature causes cumulative distortion in regions far from the seed, system 200 can place multiple seeds (e.g., a second seed 606, a third seed point 608, and a fourth seed point 610) to cover a larger area of ​​the implicit surface 602. However, the arrangement or generation of multiple seeds creates discontinuities between the parametric patches (e.g., a first discontinuity 612). The merging module 202 uses geodesic information between the seeds to merge the patches and generates a seamless semi-global parametricization (e.g., the effect of textureless discontinuities shown in box 614).

[0084] Figure 8The flowchart 800 describes an example implementation of generating blended UV coordinates performed by the merging module 202. First, the merging module 202 receives input (box 802). The input includes: a texture atlas. A (For example, ) 、 query point ,bandwidth Maximum number of iterations N Maximum distance D , and tolerance parameters ( ).

[0085] Merging module 202 sorts nearby seeds (box 804). [Image set] A The seeds in the query point are based on their location. x The seeds are arranged according to their geodesic distances. By prioritizing the seeds that are more likely to affect the final hybrid parameterization, this prioritization facilitates efficient processing in subsequent steps of process 800.

[0086] If it exists n Seeds Then the query point x The module can move to any seed to obtain its UV coordinates. After sorting, the merging module 202 determines the seed with the closest geodesic (box 806). For example, the merging module 202 identifies the closest query point by the distance of the geodesic on the implicit surface. x The seed. The seed closest to the geodesic line will serve as a reference for the mixing process.

[0087] Conventional techniques use the nearest seed based on Euclidean distance measurements, but these strategies can introduce significant errors because... x and p i The tiny Euclidean distance between them does not guarantee x Semantically associated with that reference point, but even that cannot be guaranteed x The surface is connected to the reference point. Merging module 202 replaces the Euclidean distance with the geodesic distance. The Voronoi cell of a seed (defined as the set of all query points that use that seed as their nearest seed) is the basis for merging module 202. The region used to calculate UV coordinates is then calculated. Using the geodesic nearest seed means segmenting the surface using connected geodesic Volonoi elements. Therefore, the merging module 202 generates coherent parameterizations on the implicit surface, and requires far fewer seeds than conventional techniques.

[0088] Since the geodesic distance is greater than the Euclidean distance, the merging module 202 can use the Euclidean distance to accelerate the subroutine in finding the nearest geodesic seed. The merging module 202 first searches for the seed closest to the query point in ascending order of Euclidean distance. Starting with the nearest Euclidean seed, the merging module 202 uses process 500 to calculate the geodesic distance between the query point and each seed. If the Euclidean distance of a particular seed is greater than the current minimum geodesic distance, then that seed cannot be closer to the query point than the current best seed. In this case, the merging module 202 can terminate the iteration early with only a few calls to process 500.

[0089] The merging module 202 then determines whether merging is required (box 808). This determination is based on factors such as the number of neighboring seeds and their distance from the query point. If merging is not required (e.g., determined to be "No" at box 808), procedure 800 ends (box 816). If merging is required (e.g., determined to be "Yes" at box 808), the merging module 202 determines the boundary weights (box 810).

[0090] To generate global or semi-global parameterizations, system 200 interpolates UV fields with different seeds. For example, merging module 202 uses the Volonoi map of the seeds to guide the interpolation. To keep the evaluation fully point-to-point, real-time, and inherently implicit, merging module 202 uses kernel-based techniques (e.g., using the distance to each seed to compute interpolation weights). However, UV field interpolation is more complex than fixed-data interpolation. Since each parameterization is based on its seed... p i Centered on the UV coordinate system, simply weighting and summing different UV fields will result in texture inconsistencies. To represent each UV field involved in the interpolation in a common coordinate system, the merging module 202 assigns an offset position to each seed in a consistent manner. u i , or UV offset 214.

[0091] Figure 7 Example 700 depicts multiple UV fields combining an implicit surface 702. The merging module combines the multiple UV fields using UV coordinates from neighboring seeds (e.g., a first UV coordinate system 704, a second UV coordinate system 706, and a third UV coordinate system 708). For example, the merging module performs a weighted average of the coordinates of neighboring seeds at query point 710. Since each logarithmic map (e.g., a first logarithmic map 712, a second logarithmic map 714, and a third logarithmic map 716) is represented using its own reference system, the merging module 202 first assigns offset coordinates to each seed in a common UV space 718. u iIn this common coordinate system, the merging module 202 can use tight-support interpolation to blend coordinates at the interface between seeds to generate a blended UV field 720.

[0092] Merge Module 202 Construction Diagram ( V, E ), where the vertex is the seed position. And if the user chooses p i and p j For merging, it includes edges. Each edge is weighted by its geodesic distance. The merging module 202 also includes the UV offset. u i Appended to each seed, forming a tuple, which is then associated with a weight. Figure 1 It is encapsulated into a graph data structure A In the atlas data structure A It is sent to the GPU or other processing device for rendering textured surfaces.

[0093] These weights are calculated based on the geodesic distance between the query point and the relevant seed. Edge weights assist the blending process by controlling the influence of each seed's parameterization on the final result. The weighting function 216 used in the merging process has specific properties that help improve the quality of the final parameterization. The function is non-zero within a finite region around each reference point, thus limiting its influence and avoiding unintended interactions between distant patches. Additionally, the weighting function 216 is continuous, which ensures that there are no abrupt changes or discontinuities in the final parameterization result.

[0094] To avoid frequent calls to process 500, merging module 202 performs merging at the Voronoi boundary (e.g., the boundary of a Voronoi cell) between the two seeds. The following equation provides an approximate result for the geodesic distance to the geodesic Voronoi boundary: (29)

[0095] The merging module 202 uses this approximate distance as a weighting function to blend the UV fields from the two seeds. Given a blending width... In this case, the merging module 202 uses a smooth blending function. To define weights: (30)

[0096] In one implementation, the merging module 202 uses However, it is also possible to use methods that satisfy [the requirements]. and Another smoothing function. In this implementation, the blending width is set to [value] for each seed pair. .

[0097] If the query point falls within the mixing region of more than two seeds, the merging module 202 applies a weight to each relevant seed and combines the weights from multiple seeds (box 812). The merging module 202 uses a continuous formula that depends on the distance to the neighboring seeds selected for mixing: (31) To efficiently implement process 800 in the shader, if p i If it is the seed closest to the query point, then the merging module 202 will target other seeds. p j Skip Equation 31 and use the following approximation: (32) This assumption makes the computational cost linearly related to the number of seeds to be mixed and avoids caching mechanisms.

[0098] If a specific seed p i It is the seed closest to the query point, and if adjacent seeds p j satisfy In this case, the merging module 202 does not calculate the logarithmic mapping of the adjacent seed, because it will not affect the final UV field at the query point. The merging module 202 omits the call to process 500 if the following conditions are met: (33)

[0099] Since two seeds with inconsistent frames can cause severe distortion in the parameterization of the merge, the merge module 202 optimizes the frame position and UV offset to minimize distortion. In one implementation, system 200 allows the user to specify the position of the seeds and the blending graph indicating which seeds to merge.

[0100] The distortion of parameterization is understood as a measure of its deviation from isometric mappings (e.g., locally rigid mappings). For example, merging module 202 measures the behavioral difference between a parameterized surface and a UV plane. This is achieved by introducing a frame vector at each seed. e 1 optimization variable t 1. The merging module 202 minimizes the blending graph. A The optimal frame is selected using the Dirichlet energy, which is weighted by the inverse squared geodesic distance to prioritize nearest-neighbor interactions and penalize distortion. (34)

[0101] If the surface is planar, then the global minimum of energy is a constant field. After calculating the optimal frame, the merging module 202 merges the frames by... Project to And normalize to set When the surface is curved, the optimal frame field changes as little as possible between two adjacent seeds.

[0102] After the frame calculation is complete, the merging module uses process 500 to calculate the UV coordinates (box 814) corresponding to each neighboring seed to be blended. If the surface is flat, the UV offset is negligible. The merging module 202 selects the UV offset, scaling, and / or rotation to minimize deviation from the following equation: (35) To eliminate redundant degrees of freedom, a single seed The UV offset is fixed as .

[0103] Both energies are quadratic terms, and the merging module 202 can minimize them by solving linear systems. The corresponding matrix is ​​the standard graph Laplacian matrix, but the frame energy matrix is ​​defined by cross-term blocks storing parallel shift matrices, similar to the discrete-connected Laplacian matrix. Since the size of the linear systems is proportional to the number of seeds in the blending graph (e.g., typically a small number), the merging module 202 can solve these systems on the fly to update the frame and UV offsets as the user changes the implicit surface.

[0104] Parallel translation refers to the movement along a curve The way the tangent vector evolves when moving from one point on the surface to another. Parameterization module 126 constructs the tangent from the seed. Aspects to the query point One of the mappings. Figure 4 It shows Figure 1 and Figure 2 The cumulative process 400 of the parameterization module 126. The parameterization module 126 can discretize parallel movements along the geodesic. The product of each rotation matrix is ​​stored in a rotation matrix.

[0105] In a classic triangular mesh, two adjacent faces and The minimum rotation matrix between them gives and The coherent discretization of parallel movements between them. This rotation is related to the surface normal. Rotate along the dihedral angle to The operation is the same, and its calculation formula is as follows: (36) in It is an antisymmetric matrix that satisfies And for any All hold true. The parameterization module 126 draws inspiration from this formula and accumulates it in each iteration. and Rotation between points to construct from the reference point p To the query point x Parallel translation matrix: (37)

[0106] When system 200 processes implicit surface 128 and merges multiple parametric patches, it generates a representation of the merged patches. This structure allows efficient access to parametric results at different scales and resolutions, which is particularly important for applications using level-of-detail rendering or multi-resolution analysis. To improve performance in subsequent operations, system 200 caches the geodesic distances associated with the calculated geodesic paths and UV coordinates in the spatial data structure. This caching mechanism accelerates the lookup of neighboring points on implicit surface 128 because the system can quickly retrieve pre-calculated values ​​instead of recalculating them for each query.

[0107] The output 218 of system 200 is a semi-global parameterization 220 of implicit surface 128. This semi-global parameterization 220 provides a comprehensive 2D coordinate system that covers the surface of a 3D object while taking into account its geometry and topology. The semi-global parameterization 220 can support a variety of applications in computer graphics and modeling.

[0108] For example, semi-global parametric 220 enables efficient deformation of implicit surfaces, allowing users to perform complex deformations and transformations on 3D objects. By applying generated UV coordinates to modify the underlying scalar field, designers can achieve smooth, continuous deformation effects while preserving the implicit properties of the surface. When rendering implicit shapes deformed by the twist operator, system 200 can calculate UV coordinates in a static pose and transfer textures to the deformed pose, thus achieving global and local deformation, providing fine-grained control over the shape processing. The ability to perform real-time twist operations while maintaining the implicit surface representation allows for dynamic and interactive shape processing, which is beneficial for digital sculpting and virtual reality modeling.

[0109] Semi-global parametric 220 also supports the application of color textures to implicit surfaces. By mapping 2D texture images to the UV coordinate system, designers can add detailed color information to surfaces without an explicit mesh representation. This color texturing method allows for high-resolution texturing of geometry conforming to implicit surfaces, preserves fine details, and ensures proper alignment at sheet boundaries.

[0110] System 200 also supports applying normals to semi-global parameterization 220. A normal map is a texture comprising three channels, with 3D coordinates of the material's normal vector at each point in the texture. Therefore, normal maps can capture sub-resolution details affecting surface light reflection. Since normals are vectors, they must be stored in a coordinate system with a fixed base. At a given location on the surface, the normal map enhances the rendered normals through local tangent vectors, bitangent vectors, and normal vectors. On implicit surfaces, the tangent frame for a specific seed and the normals are part of an atlas data structure. Therefore, System 200 passes this frame from the nearest seed to the query point to obtain the rendered normals.

[0111] Applying normal mapping to implicit surfaces allows for the addition of fine surface details without increasing the complexity of the underlying geometry. By mapping normal information to the generated UV coordinate system, designers can simulate complex surface features such as bumps, scratches, or wrinkles. This method preserves the smooth, continuous properties of implicit surfaces while providing the visual richness typically associated with high-polygon models.

[0112] Similarly, System 200 supports applying displacement mapping to implicit surfaces, thereby adding geometric details that modify the actual surface shape. By using generated UV coordinates to guide the displacement of points on the implicit surface, designers can create complex surface features such as scales, ridges, or porous structures.

[0113] An important application is to apply texture mappings to implicit surfaces using the generated UV coordinates. These texture mappings can include color textures, normal maps, shell maps, or displacement maps, thereby adding fine surface properties to 3D objects.

[0114] The real-time nature of System 200 makes it particularly suitable for interactive applications where the implicit surface 128 may undergo deformation or topological changes. The system can quickly update parametric parameters to reflect these changes, thereby maintaining a consistent mapping of texture and other surface properties. Example parameterization process

[0115] The following discussion describes feasible techniques using the systems and devices previously described. Aspects of each process can be implemented in hardware, firmware, software, or a combination thereof. These processes are shown as boxes specifying operations performed by one or more devices, and are not necessarily limited to the order shown for the operations to be performed by the respective boxes. References are made in the following sections of the discussion. Figures 1-8 .

[0116] Figure 9The flow of an example implementation of real-time parameterization of implicit surfaces is depicted. First, an implicit surface representing a 3D object is received (box 902). For example, the processing device receives an implicit surface defined by a scalar field in 3D space, such as a signed distance function or a level set function.

[0117] Subsequently, the parameterization module 126 approximates the geodesic path between the query point and the reference point on the implicit surface (box 904). For example, the processing device projects the gradient of the Euclidean distance between the query point and the reference point onto the tangent plane of the implicit surface and moves along the surface using the second-order approximation of the surface.

[0118] During path approximation, the parametric module 126 monitors sharp features on the implicit surface by detecting discontinuities in the normals along the geodesic path. Sharp features are detected by comparing adjacent normal vectors and determining when the angle between adjacent normal vectors exceeds a predetermined threshold. In some cases, the parametric patch is at least partially defined by one or more sharp features or a user-specified maximum radius.

[0119] Subsequently, the parametric module generates a parametric patch (box 906) on the implicit surface using a geodesic path. The parametric patch provides a local 2D coordinate system on a portion of the surface of the 3D object. For example, parametric module 126 generates a local coordinate system around a reference point and / or a query point.

[0120] In some implementations, multiple locally parameterized patches are generated on the implicit surface using multiple reference points. By assigning UV offsets, scaling, and / or rotations to each reference point and using a weighted function based on geodesic distance to blend UV coordinates from adjacent patches, the patches are merged into a larger, spatially coherent region consistent with the geometry of the implicit surface. The weighted function is designed to be non-zero and continuous within a finite region around each reference point. The merged patches share a common 2D coordinate system to provide semi-global parameterization of the implicit surface.

[0121] The parameterization module 126 generates the UV coordinates of the query point based on the approximate geodesic path (box 908). For example, the processing device calculates the length of the geodesic path and its angle with a reference direction to determine the UV coordinates. In some implementations, the generated UV coordinates are used to apply a texture map to an implicit surface. Texture maps include color textures, normal maps, or displacement maps.

[0122] The geodesic distance and UV coordinates associated with the geodesic path can be cached in a spatial data structure to accelerate subsequent queries to neighboring points on the implicit surface. In one implementation, process 900 is implemented in a shader that executes on the GPU to enable real-time execution and dynamically update the parameterization in response to deformation or topological changes of the implicit surface. Example systems and devices

[0123] Figure 10 An example system 1000 is illustrated, including an example computing device 1002, which represents one or more computing systems and / or devices implementing the various technologies described herein. It is illustrated by including a 3D modeling service 120 with a parametric module 126. The computing device 1002 may be configured as, for example, a server of a service provider, a device associated with a client (e.g., a client device), a system-on-a-chip, and / or any other suitable computing device or computing system.

[0124] As shown in the figure, the example computing device 1002 includes a processing system 1004 communicatively coupled to each other, one or more computer-readable media 1006, and one or more I / O interfaces 1008. Although not shown, the computing device 1002 also includes a system bus or other data and command transfer system that couples the various components from one component to another. The system bus includes any or a combination of different bus architectures, such as a memory bus or memory controller, a peripheral bus, a universal serial bus, and / or a processor bus or local bus utilizing various bus architectures. Various other examples, such as control lines and data lines, are also contemplated.

[0125] Processing system 1004 represents the functionality of using hardware to perform one or more operations. Therefore, processing system 1004 is shown as including hardware elements 1010 configurable as processors, function blocks, etc. This includes application-specific integrated circuits (ASICs) or other logic devices implemented in hardware using one or more semiconductors. Hardware elements 1010 are not limited by the materials forming them or the processing mechanisms employed therein. For example, a processor may be configured as one or more semiconductors and / or transistors (e.g., an integrated circuit (IC)). In such a context, processor-executable instructions are electronically executable instructions.

[0126] Computer-readable storage medium 1006 is shown as including memory / storage device 1012. Memory / storage device 1012 represents a memory / storage capacity associated with one or more computer-readable media. Memory / storage device 1012 includes volatile media (such as random access memory (RAM)) and / or non-volatile media (such as read-only memory (ROM), flash memory, optical disk, magnetic disk, etc.). Memory / storage device 1012 includes fixed media (e.g., RAM, ROM, fixed hard disk drive, etc.) and removable media (e.g., flash memory, removable hard disk drive, optical disk, etc.). As described below, computer-readable medium 1006 can be configured in various ways.

[0127] Multiple input / output interfaces 1008 represent the ability to allow users to input commands and information into the computing device 1002, and also allow the use of various input / output devices to present information to the user and / or other components or devices. Examples of input devices include keyboards, cursor control devices (e.g., mice), microphones, scanners, touch functionality (e.g., capacitive or other sensors configured to detect physical touch), cameras (e.g., using visible or non-visible wavelengths such as infrared frequencies to recognize non-contact gestures), etc. Examples of output devices include display devices (e.g., monitors or projectors), speakers, printers, network interface cards, haptic-responsive devices, etc. Therefore, as further described below, the computing device 1002 can be configured in various ways to support user interaction.

[0128] Various technologies are described in the general context of software, hardware components, or program modules. Typically, such modules include routines, programs, objects, elements, components, data structures, etc., that perform specific tasks or implement abstract data types. As used herein, the terms "module," "function," and "component" generally refer to software, firmware, hardware, or a combination thereof. The technologies described herein are platform-independent, meaning that the described technologies can be configured on a variety of commercial computing platforms with various processors.

[0129] The described modules and technologies are implemented on or transmitted across some form of computer-readable medium. Computer-readable medium includes various media accessed by computing device 1002. By way of example and not limitation, computer-readable medium includes "computer-readable storage medium" and "computer-readable signal medium".

[0130] "Computer-readable storage medium" refers to a medium and / or device capable of persistent and / or non-transient storage of information, unlike simple signal transmission, carrier waves, or signals themselves. Therefore, computer-readable storage medium refers to non-signal-bearing media. Computer-readable storage media include hardware such as volatile and non-volatile, removable and non-removable media, and / or storage devices implemented with methods or techniques suitable for storing information such as computer-readable instructions, data structures, program modules, logic elements / circuits, or other data. Examples of computer-readable storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technologies, CD-ROM, digital versatile disc (DVD) or other optical storage devices, hard disks, magnetic tape cassettes, magnetic tapes, disk storage devices or other magnetic storage devices, or other storage devices, tangible media, or articles of art suitable for storing desired information and accessible by a computer.

[0131] "Computer-readable signal medium" refers to a signal-bearing medium configured to transmit instructions to hardware such as computing device 1002 via a network. Signal media typically embody computer-readable instructions, data structures, program modules, or other data in modulated data signals, such as carrier waves, data signals, or other transmission mechanisms. Signal media also includes any information transmission medium. The term "modulated data signal" refers to a signal whose characteristics are set or altered in a manner that encodes information in the signal. By way of example and not limitation, communication media include wired media such as wired networks or direct wired connections, and wireless media such as acoustic, RF, infrared, and other wireless media.

[0132] As described above, hardware element 1010 and computer-readable medium 1006 represent modules, programmable device logic, and / or fixed device logic implemented in hardware form. This hardware form, in some embodiments, is used to implement at least some aspects of the techniques described herein, such as for executing one or more instructions. The hardware includes components of integrated circuits or systems-on-a-chip, application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), complex programmable logic devices (CPLDs), and other implementations in silicon-based or other hardware. In this context, the hardware operates as a processing device for executing program tasks embodied by instructions and / or logic, and as hardware storing instructions for execution (e.g., the previously described computer-readable storage medium).

[0133] The above combinations are also used to implement the various techniques described herein. Therefore, software, hardware, or executable modules are implemented as instructions and / or logic embodied on some form of computer-readable storage medium and / or implemented by one or more hardware elements 1010. The computing device 1002 is configured to implement specific instructions and / or functions corresponding to the software and / or hardware modules. Therefore, the implementation of modules executable by the computing device 1002 as software is at least partially implemented in hardware, for example, through the computer-readable storage medium and / or hardware elements 1010 of the processing system 1004. Instructions and / or functions can be executed / operated by one or more articles of art (e.g., one or more computing devices and / or processing systems 1004) to implement the techniques, modules, and examples described herein.

[0134] The techniques described herein are supported by various configurations of computing device 1002 and are not limited to specific examples of the techniques described herein. This functionality can also be implemented via distributed systems, such as on the “cloud” 1014 via platform 1016 as described below.

[0135] Cloud 1014 includes and / or represents platform 1016, which represents resource 1018. Platform 1016 abstracts the functionality of the underlying hardware (e.g., servers) and software resources of cloud 1014. Resource 1018 includes applications and / or data that can be utilized when computer processing is performed from computing device 1002 on a remote server. Resource 1018 may also include services provided via the Internet and / or via subscriber networks such as cellular or Wi-Fi networks.

[0136] Platform 1016 abstracts resources and functions to connect computing device 1002 to other computing devices. Platform 1016 also abstracts resource expansion, thereby providing a level of expansion for resources 1018 implemented via platform 1016 corresponding to the demands faced. Therefore, in interconnect device embodiments, the implementation of the functions described herein can be distributed throughout system 1000. For example, the function can be implemented partially on computing device 1002 via platform 1016, which abstracts the functions of cloud 1014.

[0137] In general, the functions, features, and concepts of the examples described in this section are embodied in the context of the examples described above and below. Furthermore, the functions, features, and concepts described herein in conjunction with different accompanying drawings are interchangeable and are not limited to implementation within the context of a specific drawing or process. Additionally, the boxes associated with different representative processes and corresponding drawings herein can be used together and / or combined in different ways. Therefore, the functions, features, and concepts described herein in conjunction with different example environments, devices, components, drawings, and processes can be used in any suitable combination and are not limited to the specific combinations represented by the examples listed in this specification.

Claims

1. A method comprising: The processing device receives the implicit surface representing the 3D object; The processing device approximates the geodesic path between the query point and the reference point on the implicit surface; The processing device generates a parametric patch on the implicit surface using the geodesic path on the implicit surface, the parametric patch providing a local two-dimensional 2D coordinate system on a portion of the surface of the 3D object; as well as The processing device generates UV coordinates for the query point based on the geodesic path.

2. The method of claim 1, wherein approximating the geodesic path comprises, for a fixed number of iterations: Project the gradient of the Euclidean distance between the query point and the reference point onto the tangent of the implicit surface; and Using a second-order approximation of the surface, move along the surface from the query point to the reference point.

3. The method according to claim 2, further comprising: Sharp features on the implicit surface are detected by testing the discontinuity of the normal along the geodesic path, wherein the discontinuity is determined by comparing adjacent normal vectors and determining when the angle between the adjacent normal vectors exceeds a preset threshold.

4. The method of claim 3, wherein the parameterized patch is at least partially defined by one or more sharp features or a user-specified maximum radius.

5. The method according to claim 1, further comprising: Multiple local parameterized patches are generated on the implicit surface using multiple reference points; as well as Adjacent parametric patches are merged into a larger, spatially coherent region that conforms to the geometry of the implicit surface.

6. The method of claim 5, wherein merging the adjacent parameterized slices comprises: Assign the UV offset to each reference point; as well as Based on geodesic distance, a weighted function is used to blend the UV coordinates from adjacent patches.

7. The method of claim 6, wherein the weighting function is non-zero and continuous over a finite region around each reference point.

8. The method according to claim 1, further comprising: The texture mapping is applied to the implicit surface using the UV coordinates, and the texture mapping includes at least one of the following: color texture, normal mapping, shell mapping, or displacement mapping.

9. The method according to claim 1, further comprising: Perform a parallel shift of the tangent vector along the geodesic path to enable the application of normal mapping on the implicit surface.

10. The method of claim 1, wherein: The processing device includes a graphics processing unit; and The method is implemented in the shader executed on the graphics processing unit.

11. The method according to claim 1, further comprising: The geodesic distance associated with the geodesic path and the UV coordinates is cached in the spatial data structure to accelerate subsequent queries for neighboring points on the implicit surface.

12. A system comprising: Memory components; as well as One or more processing devices coupled to the memory component, the one or more processing devices performing operations including: Receive implicit surfaces representing 3D objects; Multiple locally parametric patches are generated on the implicit surface using corresponding reference points, each parametric patch providing a local 2D coordinate system on a portion of the surface of the 3D object; and The multiple locally parameterized patches are merged into a common 2D coordinate system to create a semi-global parameterization of the implicit surface.

13. The system of claim 12, wherein generating each local parametric patch includes adaptively adjusting the size and shape of the local parametric patch based on the curvature of the local surface of the implicit surface.

14. The system of claim 12, wherein the one or more processing devices are further configured to dynamically update the plurality of locally parameterized patches in real time in response to deformation or topological change of the implicit surface.

15. The system of claim 12, wherein the one or more processing devices are further configured to: generate a representation of the merged plurality of locally parameterized slices.

16. The system of claim 12, wherein the one or more processing devices are configured to merge adjacent parameterized slices by: Assign UV offsets to each reference point; and Based on geodesic distance, a weighted function is used to mix UV coordinates from adjacent patches.

17. The system of claim 12, wherein the one or more processing devices are further configured to apply a texture mapping to the implicit surface using the common 2D coordinate system, the texture mapping comprising at least one of the following: color texture, normal mapping, or displacement mapping.

18. A non-transitory computer-readable storage medium storing executable instructions that, when executed by a processing device, cause the processing device to perform an operation, comprising: It receives implicit surfaces that are defined by scalar fields in three-dimensional 3D space and represent 3D objects; The implicit surface is parametrically generated using reference points on the implicit surface, the parametric providing a local 2D coordinate system on the surface of the 3D object; and The parameterization is used to apply a two-dimensional texture to the implicit surface.

19. The non-transient computer-readable storage medium of claim 18, wherein generating the parameterization comprises: Multiple local parametric patches are generated on the implicit surface using corresponding reference points, and these patches are then merged into a common coordinate system.

20. The non-transient computer-readable storage medium according to claim 18, wherein: The two-dimensional texture includes at least one of the following: color texture, normal mapping, shell mapping, or displacement mapping; as well as When executed by the processing device, the executable instructions also cause the processing device to dynamically update the parameterization in real time in response to deformation or topological changes of the implicit surface.