Commodity three-dimensional model real-time rendering system for e-commerce platform
Patent Information
- Application Number
- CN202511129328.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-08-13
- Publication Date
- 2025-11-21
- Estimated Expiration
- Not applicable · inactive patent
AI Technical Summary
现有技术在三维模型渲染中缺乏针对模型内部不同区域几何特征差异的识别能力,导致渲染资源分配不精细化,难以动态适应场景复杂程度和用户交互需求,导致计算负载高、画面渲染速度降低,尤其在硬件性能受限的平台下可能出现卡顿或延迟。
采用模型几何权重生成模块进行体素化处理,结合视锥剔除与LOD联动模块和指针引导焦点划分模块,通过几何重要性权重图和相机视锥参数筛选可视几何体,分级渲染区域并生成合成显示图像,实现多级渲染策略。
提高了渲染资源的利用效率,降低了计算负载,确保关键区域细节表现最佳化,同时保证画面流畅性和视觉一致性,避免了渲染效果的割裂感。
Smart Images

Figure CN120997357A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of 3D image rendering technology, and in particular to a real-time rendering system for 3D product models for e-commerce platforms. Background Technology
[0002] The field of 3D image rendering technology refers to the sum of technologies that use computer graphics and image processing methods to analyze, transform, and process data from three-dimensional scenes or models to generate realistic two-dimensional images or animation sequences.
[0003] Current technologies, in practical applications, process the entire input 3D scene or model data uniformly, lacking the ability to identify differences in geometric features between different regions within the model. They also lack targeted and refined control over rendering resource allocation, making it difficult to dynamically adapt to changes in the actual scene and user interaction needs. As scene complexity increases, rendering efficiency significantly decreases. Furthermore, in terms of viewpoint interaction, effective region-level differentiated rendering strategies are often not implemented. All model elements within the field of view are generally processed using the same level of detail, resulting in high computational load and reduced rendering speed. Especially on platforms with limited hardware performance, this can lead to stuttering or latency, directly impacting the user experience. Therefore, improvements are needed. Summary of the Invention
[0004] The purpose of this invention is to overcome the shortcomings of existing technologies and propose a real-time rendering system for 3D product models for e-commerce platforms.
[0005] To achieve the above objectives, the present invention adopts the following technical solution: a real-time rendering system for 3D product models for e-commerce platforms includes:
[0006] The model geometry weight generation module performs voxelization processing on the input 3D model of the product, retrieves the rate of change of geometric curvature, position relative to the model outline, and preset region identifier for each voxel, calculates the saliency measure of voxel structure, and establishes a geometric importance weight map.
[0007] The frustum culling and LOD linkage module performs frustum culling based on the camera frustum parameters and the geometric importance weight map. It filters the geometry to be rendered for the non-occluded parts within the frustum to obtain a dynamic set of visible geometry. It also generates a hierarchical geometric detail data stream based on the camera distance and viewing direction.
[0008] The pointer-guided focus division module obtains the screen coordinates of the user's mouse cursor or finger touch and establishes the screen focus rendering area; a transition ring is set as the near focus area around the screen focus rendering area, and the remaining part of the screen is designated as the outer area to obtain a multi-level rendering area division map.
[0009] The multi-level pipeline rendering and compositing module, based on the multi-level rendering region division map, retrieves the hierarchical geometric detail data stream, renders and outputs it to different buffers to obtain regional rendering frame buffers; reads the image content of the regional rendering frame buffers, performs smooth blending, and generates a composite display image.
[0010] Preferably, the steps for obtaining the geometric importance weight map are as follows:
[0011] The input 3D model of the product is divided into an equally spaced voxel mesh. The principal curvature of each voxel is calculated and the curvature change rate is derived. The shortest Euclidean distance from the center point of the voxel to the boundary line of the model contour is measured. The semantic region identifier is extracted and the corresponding semantic weight is queried. At the same time, the curvature change rate of all voxels is retrieved in the cubic neighborhood centered on the voxel. The curvature standard deviation in the cubic neighborhood is calculated as the local neighborhood heterogeneity index. The curvature change rate set, contour distance set, region semantic weight set and local heterogeneity set are generated.
[0012] Based on the set of curvature change rate, the set of contour distance, the set of region semantic weights, and the set of local heterogeneity, calculate the voxel structure saliency measure for each voxel;
[0013] Based on the voxel structure saliency measure, the voxel structure saliency measures of all voxels at their respective geometric locations are spatially mapped, and spatial interpolation is used to reconstruct and fuse continuous regions to generate a geometric importance weight map.
[0014] Preferably, the step of obtaining the set of dynamic visual geometry is as follows:
[0015] Based on the camera frustum parameters, obtain the camera position coordinates and camera frustum orientation vector corresponding to the current viewpoint. Retrieve the spatial position coordinates and voxel structure saliency measure of all voxels in the geometric importance weight map. Calculate the angle between the line vector connecting the voxel spatial position coordinates to the camera position coordinates and the camera frustum orientation vector. When the angle value is less than the preset maximum visible angle threshold of the frustum, mark the voxel as a visible voxel within the spatial frustum to form an initial set of visible voxels.
[0016] Based on the initial set of visible voxels, using the camera position coordinates and the spatial position coordinates of the visible voxels, it is determined whether there are other voxels occluding each visible voxel in the initial set of visible voxels and the camera. If there are no other voxels between them, the visible voxels are marked as non-occluded visible voxels, forming a set of non-occluded visible voxels.
[0017] Based on the set of unoccluded visible voxels, the voxel structure saliency measure of each unoccluded visible voxel is extracted. The voxel structure saliency measure is compared with the dynamic rendering load threshold one by one. If the voxel structure saliency measure is greater than or equal to the dynamic rendering load threshold, the corresponding unoccluded visible voxel is added to the dynamic visible geometry set. If the voxel structure saliency measure is less than the dynamic rendering load threshold, the corresponding voxel is discarded, thus obtaining the dynamic visible geometry set.
[0018] Preferably, the step of acquiring the hierarchical geometric detail data stream is as follows:
[0019] Based on the camera position coordinates and camera viewing direction, traverse each dynamic visual geometry in the set of dynamic visual geometries, calculate the Euclidean distance between the spatial centroid coordinates of the dynamic visual geometry and the camera position coordinates for each dynamic visual geometry, and calculate the angle between the spatial normal direction of the dynamic visual geometry and the camera viewing direction to form a set of camera distance values and viewing angle values for the dynamic visual geometry.
[0020] Based on the set of camera distance values and viewing angle values of the dynamic visual geometry, query all voxel structure saliency measures contained in the corresponding dynamic visual geometry, calculate the average value of all voxel structure saliency measures of each dynamic visual geometry, and compare the average voxel structure saliency measure of the dynamic visual geometry with a preset grading threshold one by one. If the average voxel structure saliency measure is greater than or equal to the preset grading threshold, the corresponding dynamic visual geometry is marked as a fine detail level state. If the average voxel structure saliency measure is less than the preset grading threshold, it is marked as a simplified detail level state, thus forming a set of detail level states of the dynamic visual geometry.
[0021] Based on the set of detail levels of the dynamic visual geometry, high-precision geometric topology data is invoked for dynamic visual geometry marked as fine detail level state, and simplified geometric topology data is invoked for dynamic visual geometry marked as simplified detail level state, generating a hierarchical geometric detail data stream.
[0022] Preferably, the step of obtaining the screen focus rendering area is as follows:
[0023] The system captures the user's mouse cursor position coordinates or finger touch position coordinates in real time through the user input device interface. It then converts the acquired mouse cursor position coordinates or finger touch position coordinates into screen coordinates in the current display screen coordinate system. Using the converted screen coordinates as the center, and based on the preset area division radius value, it draws a closed circular boundary in the screen coordinate system in pixels to form the screen focus rendering area.
[0024] Preferably, the steps for obtaining the multi-level rendering region partitioning map are as follows:
[0025] Based on the circular boundary of the screen focus rendering area, with the center of the screen focus rendering area as the center, the ring width is used to expand outward, calculate the new concentric circle boundary and draw a closed circle, and define the ring area between the newly drawn concentric circle boundary and the original circular boundary of the screen focus rendering area as the near focus rendering area, thus forming the near focus rendering area.
[0026] Based on the screen focus rendering area and the near focus rendering area, the unoccupied remaining area in the screen coordinate system is identified, and the pixel position coordinates of the remaining area are uniformly defined as the outer rendering area to generate a multi-level rendering area division map.
[0027] Preferably, the step of obtaining the region-based rendering frame buffer is as follows:
[0028] Based on the multi-level rendering region division map, the pixel position coordinates of the screen focus rendering region, near focus rendering region and peripheral rendering region are retrieved one by one. The fine detail level geometric topology data and simplified detail level geometric topology data in the hierarchical geometric detail data stream are called respectively. The geometric topology data is combined with the material property parameters of the lighting model. The physical material diffuse reflection, metallicity, roughness, normal and specular reflection intensity of the screen focus rendering region are calculated pixel by pixel. The complete shading is performed to form the screen focus region shading map.
[0029] Based on the screen focus area shading map, and taking the pixel position coordinates of the near focus rendering area as a reference, the corresponding fine detail level geometric topology data and simplified detail level geometric topology data in the hierarchical geometric detail data stream are also called. The sampling resolution of the shadow texture in the near focus rendering area is reduced, and physical material diffuse reflection and lighting calculations based on the simplified shadow map are performed to form the near focus area shading map.
[0030] Based on the near-focus area shading map, and taking the pixel position coordinates of the outer rendering area as a reference, the simplified detail level geometric topology data in the hierarchical geometric detail data stream is called to perform basic diffuse lighting calculation. The screen focus area shading map, the near-focus area shading map, and the diffuse shading map of the outer rendering area are stored independently in the corresponding video memory buffers and combined to form a regional rendering frame buffer.
[0031] Preferably, the step of acquiring the synthesized display image is as follows:
[0032] Based on the multi-level rendering region division map, extract the region type identifier of each pixel, load the screen focus rendering region image, near focus rendering region image and peripheral rendering region image respectively, take each pixel as the center, calculate the shortest distance to the focus and near focus boundary, and the shortest distance to the near focus and peripheral boundary, and calculate the color value difference of the pixel in the image on both sides of the region boundary respectively, and obtain the distance mapping matrix and color difference mapping matrix.
[0033] Based on the distance mapping matrix and the color difference mapping matrix, the dynamic transition band width of the two boundaries is calculated, and the fusion weight and synthesized color value of each pixel are calculated.
[0034] Based on the composite color value of each pixel, the corresponding pixel position is written to the frame buffer in sequence. The entire screen pixel grid is traversed to complete the image output process and generate a composite display image.
[0035] Compared with the prior art, the advantages and positive effects of the present invention are as follows:
[0036] In this invention, the input 3D product model is voxelized to obtain the rate of change of geometric curvature of the model surface and its positional relationship relative to the model contour. A saliency metric is constructed by integrating region identifiers to differentiate the importance of different regions. This allows rendering resources to be concentrated on the more critical visual feature areas of the product model, improving detail rendering while reducing resource consumption in unnecessary areas and improving resource utilization efficiency. Furthermore, the camera's frustum parameters, combined with a geometric importance weighting map, are used to perform effective frustum clipping and detail layering processing on the model. Rendering accuracy is layered based on viewing direction and distance, effectively avoiding rendering resource waste caused by areas outside the field of view or occluded areas. This significantly reduces the computational load of real-time rendering. By acquiring the position of the user's mouse cursor or touch operation in real time, multiple rendering areas are delineated around these coordinates, forming a multi-level region division strategy. This ensures that the rendering effect of details in the central area that the user cares about is optimized, while the outer areas adopt a simpler rendering strategy. This satisfies the user's needs for the visual quality of key areas while ensuring the overall smoothness of the image. For the buffered results of the image rendered in different regions, dynamic adjustment of fusion weights and smooth transition are used to perform image fusion, achieving seamless and smooth transition between regions. This ensures the consistency and visual continuity of the image and effectively avoids the sense of disjointedness caused by differences in rendering effects in different regions. Attached Figure Description
[0037] Figure 1 This is a system flowchart of the present invention. Detailed Implementation
[0038] To make the objectives, technical solutions, and advantages of this invention clearer, the invention will be further described in detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the invention.
[0039] Please see Figure 1 This invention provides a technical solution: a real-time rendering system for 3D product models on e-commerce platforms, comprising:
[0040] The model geometry weight generation module performs voxelization processing on the input 3D model of the product, retrieves the rate of change of geometric curvature, position relative to the model outline, and preset region identifier for each voxel, calculates the saliency measure of voxel structure, and establishes a geometric importance weight map.
[0041] The frustum culling and LOD linkage module performs frustum culling based on camera frustum parameters and geometric importance weight map. It filters the geometry to be rendered from the non-occluded parts within the frustum to obtain a dynamic set of visible geometry. It also generates a hierarchical geometric detail data stream based on camera distance and view direction.
[0042] The pointer-guided focus division module obtains the screen coordinates of the user's mouse cursor or finger touch and establishes the screen focus rendering area; a transition ring is set as the near focus area around the screen focus rendering area, and the remaining part of the screen is designated as the outer area to obtain a multi-level rendering area division map.
[0043] The multi-level pipeline rendering and compositing module, based on the multi-level rendering region division map, retrieves hierarchical geometric detail data streams, renders them separately, and outputs them to different buffers to obtain regional rendering frame buffers; it reads the image content of the regional rendering frame buffers, performs smooth blending, and generates a composite display image.
[0044] The steps to obtain the geometric importance weight map are as follows:
[0045] The input 3D model of the product is divided into an equally spaced voxel mesh. The principal curvature of each voxel is calculated and the curvature change rate is derived. The shortest Euclidean distance from the center point of the voxel to the boundary line of the model contour is measured. The semantic region identifier is extracted and the corresponding semantic weight is queried. At the same time, the curvature change rate of all voxels is retrieved in the cubic neighborhood centered on the voxel. The curvature standard deviation in the cubic neighborhood is calculated as the local neighborhood heterogeneity index. The curvature change rate set, contour distance set, region semantic weight set and local heterogeneity set are generated.
[0046] Based on the set of curvature change rate, contour distance, region semantic weight, and local heterogeneity, the voxel structure saliency measure for each voxel is calculated using the following formula:
[0047]
[0048] Among them, E i The significance of the voxel structure of the i-th voxel is measured. C represents the semantic weight of the region corresponding to the i-th voxel. i Let be the rate of change of curvature of the i-th voxel. σ is the mean of the rate of change of curvature of all voxels. C H represents the standard deviation of the rate of change of curvature for all voxels. i Let λ be the standard deviation of the rate of change of curvature in the neighborhood centered at the i-th voxel. C λ is the curvature influence factor. H As a heterogeneous influencing factor, D i D is the shortest distance from the i-th voxel to the model contour. max λ represents the maximum distance within the model's inner contour. D This is the contour distance attenuation coefficient;
[0049] Based on the voxel structure saliency measure, the voxel structure saliency measures of all voxels at their respective geometric locations are spatially mapped, and spatial interpolation is used to reconstruct and fuse continuous regions to generate a geometric importance weight map.
[0050] Specifically, after dividing the input 3D product model into an equally spaced voxel mesh, the principal curvature calculation is first performed for each voxel. By analyzing the local surface formed by each voxel and its directly adjacent voxels, a quadratic surface fitting technique is used to estimate the normal vector and principal curvatures k1 and k2 at that location. Then, the Gaussian curvature K = k1·k2 is used as the basic curvature value of that voxel. Subsequently, to calculate the rate of curvature change, the system retrieves the basic curvature values of all voxels within a 3x3x3 neighborhood centered on the current voxel, and calculates the average of the absolute values of the differences between the basic curvature of the current voxel and those of each neighboring voxel. This average value is defined as the rate of curvature change C. i This process iterates through all voxels within the model, processing them in parallel to improve efficiency. Next, the system measures the shortest Euclidean distance from the center point of each voxel to the model's contour boundary line. This model contour boundary line is obtained by projecting the 3D model from six orthogonal viewports (top, bottom, left, right, front, and back), extracting the 2D contour lines, and then projecting them back into 3D space to form a set of contour curves. Using the Fast Marching Method, the geodesic distance of all voxels is calculated from these contour lines into the model's interior, yielding the precise contour distance value D. i Simultaneously, the system extracts the semantic region identifier of each voxel based on the predefined component segmentation information of the model. For example, for a 3D running shoe model, its semantic region identifier may include "shoelaces," "tongue," "brand logo," and "outsole pattern," etc., and looks up the corresponding semantic weights according to a pre-defined semantic weight lookup table. This comparison table is based on the analysis of eye-tracking experiment data from 1000 consumers. The average fixation time for each region was calculated, and the region with the longest fixation time was assigned a weight of 1.0. Other regions were normalized proportionally. For example, the "brand logo" region had the longest fixation time, so its weight was 1.0; the "shoe sole pattern" region had a fixation time that was 40% of that of the "brand logo," so its weight was 0.4. Finally, to quantify the complexity of local geometry, the system again retrieved the rate of curvature change C of all voxels within a 5x5x5 cubic neighborhood centered on the current voxel and calculated the standard deviation of these values, using it as an indicator of local neighborhood heterogeneity H. i After completing the calculation of all voxels, the various indicators are stored in their respective sets to generate the curvature change rate set, the contour distance set, the region semantic weight set, and the local heterogeneity set.
[0051] formula: The advantage of this formula lies in its ability to simulate the differences in attention the human visual system pays to different regions of a three-dimensional object, such as a fine carving on a flat surface (high H). i Low C i ) or an important brand logo (high Even if its curvature is not large, it will be assigned high significance, and the standardized term in the formula will be used to determine its significance. This ensures that the curvature measurement is relative, adapting to models of varying complexity, while the exponential decay term... This effectively concentrates computational resources on the visually more important model outline areas. The final result is that the rendering system can make more refined and efficient resource allocation based on this saliency metric, reducing the rendering load while ensuring high-quality visual effects.
[0052] Let be the semantic weight of the region corresponding to the i-th voxel. This weight reflects the importance of different components of the model in commercial presentation or user interaction. It is obtained as follows: First, 20 domain experts (including product designers and market analysts) are invited to rate the importance of each predefined semantic region of the product model (such as "brand logo," "operation buttons," and "ventilation holes"), with a rating range of 1 to 10. Then, all expert ratings are collected, and the scores for each region are processed to remove extreme values (removing the highest and lowest scores). The average of the remaining scores is calculated. Finally, the average scores of all regions are normalized to obtain a weight value between 0 and 1. For example, the "brand logo" region of a certain "electric drill" model receives an average expert score of 9.2, which is the highest score among all regions. Therefore, its weight is... The average score for the "fuselage" region is 3.5, so its weight is 3.5 / 9.2≈0.38. In this example, a voxel located in the "trigger switch" region is selected, and its semantic weight is set to 1.0 after calculation.
[0053] C i Let C be the rate of curvature change of the i-th voxel. This value is directly obtained from the set of rates of curvature change generated in the preceding steps. It describes the richness of surface geometric details at the location of this voxel. In this example, a relatively high rate of curvature change is set for this voxel. i =0.85.
[0054] The mean value of the rate of curvature change of all voxels is obtained by averaging the entire set of rate of curvature change values. This value characterizes the average geometric complexity of the model as a whole. In this example, it is calculated using a drill model containing 1,200,000 voxels.
[0055] σ C σ represents the standard deviation of the rate of change of curvature for all voxels. This value is obtained by calculating the standard deviation over the entire set of rates of change of curvature, reflecting the dispersion of the model's geometric complexity distribution. In this example, σ is calculated based on the data from the same electric drill model. C =0.21.
[0056] H i The standard deviation of the rate of curvature change in the neighborhood centered on the i-th voxel is obtained from the local heterogeneity set generated in the preceding steps. This value is used to quantify the severity of texture or detail changes in a local region. For the voxel on the selected "trigger switch," the surrounding details are rich, and its H is set to... i =0.30.
[0057] D i This is the shortest distance from the i-th voxel to the model contour. This value is obtained from the contour distance set generated in the previous steps. In this example, this voxel is close to the outer surface of the model and relatively close to the contour line. Let D be the shortest distance. i =8.0 units.
[0058] D max This is the maximum distance within the model's inner contour. This value is obtained by traversing the entire set of contour distances to find the maximum value. In this example, the distance from the deepest voxel in the drill model to the contour is D. max = 64.0 units.
[0059] λ CThe curvature influence factor is used to adjust the contribution of standardized curvature to the overall significance. Its value is set with reference to a series of standard test models (including 10 typical e-commerce product models ranging from smooth surfaces to complex machines), by systematically changing λ. C The values (from 0.1 to 2.0, with a step size of 0.1) were used, and the difference between the rendered results and the offline high-quality rendered graphs was evaluated using the Multi-Scale Structural Similarity Index (MS-SSIM). The λ value that resulted in the highest average MS-SSIM score for the 10 models was selected. C The value is determined through this calibration process. C =1.2.
[0060] λ H This is a heterogeneity impact factor used to adjust the contribution of local detail heterogeneity; its setting process is similar to λ. C Similarly, the goal is to amplify the salience of areas that are generally flat but have rich local textures. Using the same calibration tests, λ is determined. H =0.6.
[0061] λ D λ is the contour distance decay coefficient, which controls the rate at which significance decays as the model deteriorates deeper. Its setting is based on a human perception experiment: 30 observers were shown different λ values. D For value-rendered models, record the minimum λ that allows them to perceive the loss of internal details. D The value was taken as the average of all observers' recorded values as the final setting. This experiment showed that visual loss was minimized when attenuation could preserve the main structures within 25% depth of the contour. Based on this, λ was calculated. D =4.0.
[0062] Substitute the above parameter values into the formula to calculate:
[0063] First, calculate each item:
[0064] Standardized curvature term:
[0065] Heterogeneity moderating terms:
[0066] Contour attenuation term:
[0067] Then substitute each item into the complete formula:
[0068] E i =0.95·(1+1.2·2.048·1.857·0.9692);
[0069] E i =0.95·(1+4.423);
[0070] E i =0.95·5.423≈5.152;
[0071] The results show that the voxel structure significance measure of the i-th voxel is 5.152, which is a relatively high value. It comprehensively reflects the characteristics of the voxel being located in an important "trigger switch" region, having a prominent geometry, rich surrounding details, and being close to the model outline. In subsequent rendering decisions, this high score will make the geometry represented by the voxel highly likely to be judged as an object that needs to be rendered in detail. The system will allocate high-polygon models and high-quality shading computing resources to it. If the calculation result of a voxel is much less than 1 (e.g., a voxel in a flat area), it may be simplified or even eliminated, thereby realizing intelligent allocation of computing resources.
[0072] Based on the voxel structure saliency metric calculated in the previous step, the system initiates a spatial mapping process to transform the discrete voxel saliency data into a continuous three-dimensional scalar field, i.e., a geometric importance weighting graph. Specifically, the system first creates a three-dimensional data structure with the same resolution as the model voxel mesh, such as a 256x256x256 floating-point array, and assigns the saliency metric E of each voxel i to the data. i The values are filled into the array corresponding to their spatial coordinates (x, y, z), thus forming a sparse saliency data grid. Since the original model surface does not fill the entire 3D mesh, only the voxel positions representing the model entities have values in this grid, while the rest are empty. In order to construct a weight map that changes continuously throughout the entire model volume, the system then uses a trilinear interpolation algorithm to reconstruct and fuse the sparse grid. For any empty position point P in the 3D array that needs to have its weight value calculated, the system will locate the eight nearest assigned voxel grid points surrounding that point, forming a cubic interpolation unit. Then, based on the relative coordinates (dx, dy, dz) of point P within the cubic unit (all values range from 0 to 1), the system will perform a weighted average of the saliency measures of these eight grid points to calculate the interpolated saliency value at point P. This process is systematically executed throughout the entire 3D data structure until all unassigned grid points located within the model bounding box are assigned a smoothly transitioning saliency value. Finally, this 3D array filled with continuous saliency values is solidified into a 3D texture. Texture), which is the final generated geometric importance weight map.
[0073] The steps to obtain a dynamic visual geometry set are as follows:
[0074] Based on the camera frustum parameters, obtain the camera position coordinates and camera frustum orientation vector corresponding to the current viewpoint. Retrieve the spatial position coordinates and voxel structure saliency measure of all voxels in the geometric importance weight map. Calculate the angle between the line vector connecting the voxel spatial position coordinates to the camera position coordinates and the camera frustum orientation vector. When the angle value is less than the preset maximum visible angle threshold of the frustum, mark the voxel as a visible voxel within the spatial frustum to form an initial set of visible voxels.
[0075] Based on the initial set of visible voxels, the camera position coordinates and the spatial position coordinates of the visible voxels are used to determine whether there are other voxels occluding each visible voxel in the initial set of visible voxels and the camera. If there are no other voxels between them, the visible voxels are marked as non-occluded visible voxels, forming a set of non-occluded visible voxels.
[0076] Based on the set of unoccluded visible voxels, the voxel structure saliency measure of each unoccluded visible voxel is extracted. The voxel structure saliency measure is compared with the dynamic rendering load threshold one by one. If the voxel structure saliency measure is greater than or equal to the dynamic rendering load threshold, the corresponding unoccluded visible voxel is added to the dynamic visible geometry set. If the voxel structure saliency measure is less than the dynamic rendering load threshold, the corresponding voxel is discarded, thus obtaining the dynamic visible geometry set.
[0077] Specifically, based on the camera frustum parameters, the system first obtains the camera position coordinates of the current frame in real time from the rendering engine's state machine, for example (10.5, 3.2, -5.8), and the normalized camera frustum orientation vector, for example (0.707, 0.0, -0.707). Simultaneously, the system loads the previously generated geometric importance weight map, which stores the spatial position coordinates of all voxels in the model and their corresponding voxel structure saliency measures. Then, the system initiates a parallel computation task, traversing each voxel in the geometric importance weight map. For the i-th voxel, its spatial position coordinates are (V... ix V iy V iz The system calculates the vector connecting the camera position to the voxel, i.e., (V ix -10.5,V iy -3.2,V iz+5.8), and normalize it. Then, calculate the dot product of this normalized connecting vector and the camera's view frustum orientation vector, and take its inverse cosine value to obtain the angle between the two. This angle value will be compared with a preset maximum visible angle threshold. This threshold is not fixed, but is directly related to the camera's current field of view (FOV). The calculation method is to take half of the current camera's diagonal field of view and add an extra 3-degree buffer angle. For example, if the current camera's horizontal field of view is 90 degrees and its vertical field of view is 59 degrees, then its diagonal field of view... The field angle is approximately 97.4 degrees, so the maximum visible angle threshold is set to 97.4 / 2+3=51.7 degrees. Any voxel with a calculated angle value less than 51.7 degrees will be initially marked as visible within the spatial frustum and added to a temporary list. This process is efficiently executed on the graphics processing unit (GPU) using a compute shader. The visibility determination of all voxels can be completed in one scheduling. Finally, after the traversal and comparison operations are completed, all voxels in the temporary list together form the initial set of visible voxels.
[0078] Based on the initial set of visible voxels, the system immediately initiates an occlusion culling process. This process uses the camera's position coordinates and the spatial coordinates of each voxel in the initial set of visible voxels to accurately determine whether occlusion exists on the view path. Specifically, the system performs a raycasting detection on each visible voxel (called the target voxel) in the initial set of visible voxels. This detection is implemented using a three-dimensional digital differential analyzer (3D-DDA) algorithm. For a target voxel, its spatial coordinates are (P... tx ,P ty ,P tz ), and the camera position coordinates are (C x C y C z The system first constructs a ray originating from the camera position and pointing towards the target voxel, with the ray's direction vector being (P). tx -C x ,P ty -C y ,P tz -C zSubsequently, the 3D-DDA algorithm proceeds along this ray direction, starting from the voxel mesh cell containing the camera position, and traverses all voxel mesh cells passed through by the ray in a step-by-step manner. At each step, when a new mesh cell is encountered, the system checks whether the cell corresponds to a valid model entity voxel (i.e., a non-empty voxel). If any other entity voxel is encountered on this ray path before reaching the mesh cell containing the target voxel, the target voxel is immediately determined to be occluded, removed from the candidate list, and the ray projection detection for the current target voxel is terminated, and the next target voxel is processed. Conversely, if the ray travels from the camera position to the mesh cell containing the target voxel without encountering any other entity voxels along the way, the target voxel is determined to be non-occluded and visible, and is retained. This process is performed one by one on all voxels in the initial set of visible voxels, and finally all the retained voxels together form the set of non-occluded visible voxels.
[0079] Based on the set of unoccluded visible voxels, the system begins the final screening based on the visual importance of the voxels. First, it extracts the voxel structural saliency metric for each unoccluded visible voxel. This metric was calculated and stored in the geometric importance weighting graph in the previous steps. Then, the system compares the structural saliency metric of each voxel with a dynamically adjusted rendering load threshold. This dynamic rendering load threshold is crucial for achieving a balance between performance and image quality; it is not a fixed value but is dynamically calculated based on the system's real-time rendering performance. Specifically, the system continuously monitors the average rendering time T over the past 120 frames. avg And set a target frame time T target For example, the target for 60 FPS is 16.67 milliseconds, and the baseline value S for the dynamic rendering load threshold is... base The threshold is set to the median of the significance measure of all voxel structures in the model, for example, 1.8. The real-time adjustment of the threshold is calculated by a proportional controller, i.e., the adjustment is equal to the performance error (T). avg -T target Multiply by a gain coefficient K p (e.g., 0.2), the final dynamic rendering load threshold S thresh equals S base +K p ·(T avg -T targetFor example, if the current average frame time is 20 milliseconds, exceeding the target by 3.33 milliseconds, the threshold will be increased to 1.8 + 0.2 * 3.33 ≈ 2.47, thus eliminating more minor voxels. If the average frame time is 15 milliseconds, lower than the target by 1.67 milliseconds, the threshold will be decreased to 1.8 + 0.2 * (-1.67) ≈ 1.47, thus revealing more details. For each non-occluded visible voxel, if its voxel structure saliency measure is greater than or equal to the currently calculated dynamic rendering load threshold, the original geometry corresponding to that voxel is determined to be rendered in the current frame and is formally added to the dynamic visible geometry set. Conversely, if its saliency measure is less than the threshold, the corresponding voxel and its geometric data are discarded in this frame and do not participate in the subsequent rendering process. After this round of comparison and screening, the final result is the dynamic visible geometry set.
[0080] The steps for obtaining hierarchical geometric detail data streams are as follows:
[0081] Based on the camera position coordinates and camera viewing direction, traverse each dynamic visual geometry in the dynamic visual geometry set, calculate the Euclidean distance between the spatial centroid coordinates of the dynamic visual geometry and the camera position coordinates for each dynamic visual geometry, and calculate the angle between the spatial normal direction of the dynamic visual geometry and the camera viewing direction to form a set of camera distance values and viewing angle values for the dynamic visual geometry.
[0082] Based on the set of camera distance values and viewing angle values of dynamic visual geometry, query all voxel structure saliency measures contained in the corresponding dynamic visual geometry, calculate the average value of all voxel structure saliency measures for each dynamic visual geometry, and compare the average voxel structure saliency measure of the dynamic visual geometry with a preset grading threshold one by one. If the average voxel structure saliency measure is greater than or equal to the preset grading threshold, the corresponding dynamic visual geometry is marked as a fine detail level state; if the average voxel structure saliency measure is less than the preset grading threshold, it is marked as a simplified detail level state, thus forming a set of detail level states of the dynamic visual geometry.
[0083] Based on the set of detail levels of dynamic visual geometry, high-precision geometric topology data is called for dynamic visual geometry marked as fine detail level state, and simplified geometric topology data is called for dynamic visual geometry marked as simplified detail level state, generating a hierarchical geometric detail data stream.
[0084] Specifically, based on the camera position coordinates and camera view direction of the current frame, the system initiates a traversal process of the previously generated set of dynamic visual geometry. For each dynamic visual geometry in the set, the system first calculates its spatial centroid coordinates. These coordinates are obtained by reading the three-dimensional coordinates of the center points of all voxels contained in the geometry and averaging the X, Y, and Z components of these coordinates. For example, for a geometry composed of 10 voxels, its centroid is the average of the coordinates of the center points of these 10 voxels. Subsequently, the system uses these centroid coordinates and the camera position coordinates obtained from the rendering engine to calculate the Euclidean distance between the two points using the method for calculating the distance between two points in three-dimensional space, i.e., calculating the square root of the sum of the squares of the differences between the two coordinates. This distance value is recorded as the camera distance value of the geometry. At the same time, the system also needs to calculate the spatial normal direction of the geometry. This normal direction is obtained by normalizing the area-weighted average of the normal vectors of all triangular facets on its surface. Then, the system calculates the angle between the spatial normal direction vector and the camera view direction vector. This calculation is done by first taking the dot product of the two normalized vectors and then taking their inverse cosine value. The resulting angle value (ranging from 0 to 180 degrees) is recorded as the view angle value. These two calculated values, namely the camera distance value and the view angle value, are associated as a data pair with the corresponding dynamic visible geometry ID and stored in a temporary data structure. This process is repeated for all members in the dynamic visible geometry set, eventually forming a set containing the camera distance values and view angle values of all visible geometries.
[0085] Based on the set of camera distance and viewing angle values of the dynamic visual geometry generated in the previous step, the system enters the Level of Detail (LOD) decision-making stage. First, the system traverses this set. For each dynamic visual geometry, the system performs a reverse lookup based on its ID, extracts the voxel structure saliency measure of all voxels constituting the geometry from the geometric importance weight graph, and calculates the average of these measures to obtain the average voxel structure saliency measure of the dynamic visual geometry. Next, the system compares this average with a preset grading threshold. This preset grading threshold is set based on the statistical analysis of the structure saliency measure values of all voxels in the entire product 3D model. Specifically, during the model loading preprocessing stage, the system calculates the structure saliency measure of all voxels, sorts these values, and assigns the values located at the 80th percentile of the distribution to the next highest value. The value is set as the preset grading threshold for the model. For example, for a drill model containing 1.2 million voxels, after arranging the saliency measure values of all voxels from low to high, the 960,000th voxel (80% of 1.2 million) has a saliency measure value of 4.2. This 4.2 is then used as the preset grading threshold for rendering the model. In the rendering loop, if the average voxel structure saliency measure of a dynamic visual geometry is greater than or equal to 4.2, the system determines that it is a visually and structurally critical part and marks it as a fine detail level state. Conversely, if its average voxel structure saliency measure is less than 4.2, it is marked as a simplified detail level state. After this comparison and marking process is completed for all dynamic visual geometries, a set of detail level states of the dynamic visual geometry is formed, which records which level of detail should be used for rendering each visual geometry.
[0086] Based on the set of detail levels of dynamic visual geometry, the system begins to construct the final instructions and data streams used for rendering. The system traverses this set of detail levels, processing each dynamic visual geometry and its corresponding detail level state marker in turn. For dynamic visual geometry marked as having a fine detail level state, the system retrieves its corresponding high-precision geometric topology data from the pre-loaded raw model database in video memory. This data contains complete vertex coordinates, high-precision normal vectors, multi-layer UV coordinates, and vertex colors, etc. The data volume is large, and the number of faces is high; for example, a fine screw may have 500 triangular faces. The system packages the pointer or offset pointing to this set of high-precision data, along with its material information, transformation matrix, and other rendering states, into a single rendering output. The system executes the instructions and pushes them into the rendering command queue of the current frame. For dynamic visual geometry marked as having a simplified level of detail, the system calls the simplified geometric topology data generated during the model preprocessing stage using mesh simplification algorithms such as quadratic error measurement. This simplified data has a significantly reduced number of vertices and faces. For example, the simplified version of the aforementioned screw may only have 50 triangles, but its general outline and shape are preserved. The system also packages the pointer or offset to this simplified data and its related rendering state into a rendering instruction and pushes it into the rendering command queue. By executing this data call and instruction encapsulation process on all visual geometry, the system finally generates an ordered sequence of rendering commands that mixes high and low precision geometric data, i.e., a hierarchical geometric detail data stream.
[0087] The steps to obtain the screen focus rendering area are as follows:
[0088] The system captures the user's mouse cursor position coordinates or finger touch position coordinates in real time through the user input device interface. It then converts the acquired mouse cursor position coordinates or finger touch position coordinates into screen coordinates in the current display screen coordinate system. Using the converted screen coordinates as the center, and based on the preset area division radius value, it draws a closed circular boundary in the screen coordinate system in pixels to form the screen focus rendering area.
[0089] Specifically, through user input device interfaces, such as the operating system's mouse event listener or the mobile device's touchscreen driver interface, the system captures the user's mouse cursor position coordinates or finger touch position coordinates in real time at a frequency of 60 times per second. These coordinates are initially based on global coordinates of the entire desktop or physical screen. The system then converts them into local coordinates within the current application's rendering window, i.e., screen coordinates in the current display screen coordinate system. For example, in a display window with a resolution of 1920x1080, the captured mouse position is (960, 540). This coordinate is used as the center of the subsequent calculation. Next, the system uses this screen coordinate as the center and calculates the coordinates based on a... A circular region is defined by a preset region division radius value. This radius value is set based on cognitive psychology research on the effective range of the foveal visual region of the human eye, and is usually set to 15% of the screen height to cover the user's high-precision visual focus at common viewing distances. For a screen with a height of 1080 pixels, this radius is 1080 × 0.15 = 162 pixels. The system then generates a Boolean mask map in the screen coordinate system with (960, 540) as the center and 162 pixels as the radius. This is done by using a midpoint circle drawing algorithm or by performing distance judgment on each pixel in the fragment shader (i.e., calculating whether the distance from the center of each pixel to the center of the circle is less than or equal to the radius). All pixels within this circular region are marked as true, and this region is defined as the screen focus rendering area.
[0090] The steps to obtain the multi-level rendering region partitioning map are as follows:
[0091] Based on the circular boundary of the screen focus rendering area, with the center of the screen focus rendering area as the center, the ring width is used to expand outward, calculate the new concentric circle boundary and draw a closed circle. The ring area between the newly drawn concentric circle boundary and the original circular boundary of the screen focus rendering area is defined as the near focus rendering area, thus forming the near focus rendering area.
[0092] Based on the screen focus rendering area and near focus rendering area, the unoccupied remaining area in the screen coordinate system is identified, and the pixel position coordinates of the remaining area are uniformly defined as the outer rendering area to generate a multi-level rendering area partition map.
[0093] Specifically, based on the circular boundary of the screen focus rendering area determined in the aforementioned steps, the system expands outward with the same center coordinates, for example (960, 540), to construct a concentric ring. The width of this ring, i.e., the preset ring width, is set based on research on the near-peripheral visual perception ability of the human eye, aiming to cover the visual range where users can perceive medium details. It is usually set to 20% of the screen height. For a screen with a height of 1080 pixels, this width is 1080 × 0.20 = 216 pixels. The system achieves this expansion by calculating a new concentric circle boundary, the radius of which is equal to the original screen focus rendering area. The radius of the domain plus the width of the ring, i.e., 162 + 216 = 378 pixels, is used by the system to draw a new concentric circle boundary with a radius of 378 pixels by using the midpoint circle drawing algorithm or by making a distance judgment in the fragment shader. Then, the system defines the ring-shaped area between these two concentric circles, i.e., the area formed by all pixels that are more than 162 pixels away from the center and less than or equal to 378 pixels away, as the near-focus rendering area. Similar to the definition process of the screen focus rendering area, the system also generates an independent Boolean mask for this ring-shaped area to mark all pixels belonging to the near-focus rendering area, thus forming the near-focus rendering area.
[0094] Based on the clearly defined screen focus rendering region and near focus rendering region, the system begins to identify all remaining unoccupied pixel regions in the screen coordinate system. Specifically, the system can utilize the Boolean mask images generated in the first two steps to perform identification through logical operations. The system creates a blank mask image of the same size as the screen resolution, initially with all pixel values set to false. Then, it performs a logical OR operation between the mask image of the screen focus rendering region and the mask image of the near focus rendering region to obtain a merged mask image containing the sum of these two regions. Next, the system performs a logical NOT operation on this merged mask image, inverting all its Boolean values. After calculation, all pixel positions marked as "true" in the resulting mask map represent the remaining parts of the screen that do not belong to the screen focus rendering area or the near focus rendering area. The system uniformly defines the coordinates of these pixel positions marked as "true" as the outer rendering area. At this point, each pixel on the screen is uniquely divided into one of the three areas: focus, near focus, or outer. The system integrates the definition information of these three areas (usually in the form of three independent Boolean mask maps, or a single index map that uses different integer values (such as 0, 1, 2) to represent different areas) to generate the final multi-level rendering area partitioning map.
[0095] The steps for obtaining the frame buffer for region-based rendering are as follows:
[0096] Based on the multi-level rendering region division map, the pixel position coordinates of the screen focus rendering region, near focus rendering region and peripheral rendering region are retrieved one by one. The corresponding fine detail level geometric topology data and simplified detail level geometric topology data in the hierarchical geometric detail data stream are called respectively. The geometric topology data is combined with the material property parameters of the lighting model. The physical material diffuse reflection, metallicity, roughness, normal and specular reflection intensity of the screen focus rendering region are calculated pixel by pixel. The complete shading is performed to form the screen focus region shading map.
[0097] Based on the screen focus area shading map, and taking the pixel position coordinates of the near focus rendering area as the reference, the corresponding fine detail level geometric topology data and simplified detail level geometric topology data in the hierarchical geometric detail data stream are also called. The sampling resolution of the shadow texture in the near focus rendering area is reduced, and physical material diffuse reflection and lighting calculations based on the simplified shadow map are performed to form the near focus area shading map.
[0098] Based on the near-focus area shading map, and using the pixel position coordinates of the outer rendering area as a reference, the simplified detail level geometric topology data in the hierarchical geometric detail data stream is called to perform basic diffuse lighting calculations. The screen focus area shading map, the near-focus area shading map, and the diffuse shading map of the outer rendering area are stored independently in their respective video memory buffers and combined to form a regional rendering frame buffer.
[0099] Specifically, based on the multi-level rendering region partitioning map, the system initiates a dedicated rendering channel for the screen's focus rendering region. This channel first activates the pixel region marked as "focus" in the multi-level rendering region partitioning map in the early stages of the graphics processing pipeline, for example, by setting the stencil buffer, while the remaining pixel regions are masked. This ensures that subsequent fragment shaders only perform calculations on pixels within the focus region. Then, for each pixel rasterized to the focus region, the system queries the detail level state of the geometry it covers from the hierarchical geometric detail data stream and calls the corresponding geometric topology data, since this region is the view... At the visual center, most geometries (e.g., those with an average voxel structure saliency metric greater than 4.2) are marked as fine detail level states. Therefore, the system retrieves their complete high-precision geometric topology data. Subsequently, the system combines this high-precision vertex data with the physically associated material properties (including base color texture, metallicity texture, roughness texture, and normal texture) loaded from the material library. In the fragment shader, a complete physically based rendering (PBR) calculation is performed for each pixel, using the Cook-Torrance bidirectional reflectance distribution function. The system uses a BRDF (Bright Radiated Radiated Radiated) model to calculate direct lighting from all light sources in the scene. Combined with image-based lighting (IBL) technology, it calculates the diffuse and specular components of indirect lighting by sampling a pre-convolutional environment cube map. Meanwhile, to obtain accurate shadows, the system samples a full-resolution (e.g., 2048x2048 pixels) shadow map and uses a high-quality percentage asymptotic filtering (PCF) algorithm (e.g., using an 8x8 Poisson disk sampling kernel) to smooth shadow edges. Finally, the color value of each pixel obtained from the complete lighting calculation is written to a dedicated floating-point color buffer to form a shading map of the screen focus area.
[0100] After rendering the screen's focal area, the system continues to process the near-focal area. Similarly, the system first configures the rendering pipeline, limiting the calculation scope to pixels marked as "near-focal" in the multi-level rendering region partitioning map by updating the stencil buffer or performing conditional checks in the fragment shader. For pixels within this region, the system still calls fine or simplified geometric topology data from the hierarchical geometric detail data stream based on their corresponding geometry. This region may contain some geometry judged to be in a simplified detail level state; the system faithfully calls the corresponding data according to this state. During the shading calculation phase, the system performs targeted performance optimizations, the most crucial of which is the simplification of shadow calculation. The system no longer samples full-resolution shadow maps, but instead samples a pre-processed full-resolution shadow map. The resolution shadow map is downsampled by 4x4 to generate a simplified shadow map with a resolution of one-quarter of the original (e.g., 512x512 pixels). Furthermore, when sampling this simplified shadow map, the sampling core of the percentage asymptotic filtering algorithm is reduced from 8x8 to 2x2. In terms of lighting calculation, although it is still based on the diffuse and specular reflection models of physically based materials, the processing of indirect lighting has been simplified. For example, the Mipmap level of the preconvolutional environment map used to calculate indirect specular highlights is forced to select a more blurred and computationally less costly level. Through these simplification measures, the system significantly reduces the computational load of this area while maintaining the basic framework of physically based rendering. The final generated color values are written into another independent color buffer to form a near-focus area shading map.
[0101] The remaining peripheral rendering area on the screen is optimized using the most aggressive strategy. First, the rendering pipeline is set to process only pixel regions marked "peripheral" in the multi-level rendering region partitioning diagram. For any geometry visible within this region, when querying the hierarchical geometric detail data stream, the system will force the invocation of its simplified level-of-detail geometry topology data, ignoring its original level-of-detail state markers, thereby minimizing vertex processing overhead. In terms of lighting calculations, the system completely abandons the complex physically based rendering model and instead performs the lowest-cost basic diffuse lighting calculations. Specifically, for each pixel, the shader only reads the material's base color (Albedo) and then multiplies it by the color from the main light source. The system calculates the light intensity and color of the source and determines the light attenuation by calculating the dot product of the surface normal (from the simplified model) and the light direction. It completely omits the calculation of metallicity, roughness, specular reflection, and all indirect lighting and shadows. This method is essentially a Lambert lighting model that does not consider any advanced optical phenomena. After completing the independent rendering of the three regions, the system stores the screen focus area shading map, the near focus area shading map generated in the first two steps, and the diffuse shading map of the peripheral rendering area generated in this step as three independent image contents as three independent texture resources in the video memory. These three textures are combined to form a regional rendering framebuffer.
[0102] The steps for obtaining the composite display image are as follows:
[0103] Extract the region type identifier of each pixel based on the multi-level rendering region division map, load the screen focus rendering region image, near focus rendering region image and peripheral rendering region image respectively, calculate the shortest distance to the focus and near focus boundaries and the shortest distance to the near focus and peripheral boundaries with each pixel as the center, and calculate the color value difference of the pixel in the images on both sides of the region boundary respectively to obtain the distance mapping matrix and the color difference mapping matrix.
[0104] Based on the distance mapping matrix and the color difference mapping matrix, the dynamic transition band width between the two boundaries is calculated, and the fusion weight and synthesized color value of each pixel are calculated. The calculation formula is as follows:
[0105]
[0106]
[0107] P final (x,y)=w F (x,y)·I F (x,y)+w N (x,y)·I N (x,y)+w P (x,y)·IP (x,y);
[0108] in, P final (x, y) represents the composite color value of the pixel in the x-th row and y-th column, I F (x,y), I N (x,y), I P (x,y) represent the pixel color values of the three regions at this location, d1(x,y) and d2(x,y) are the signed shortest distances from this pixel to the boundaries of the two regions, ΔC1(x,y) and ΔC2(x,y) are the color differences between the images on both sides of the boundary, and T base λ is the preset basic transition band width. blend γ is the color difference sensitivity coefficient, and w is a coefficient controlling the steepness of the S-curve. F (x,y), w N (x,y), w P (x, y) represent the fusion weights of the focal point, near focal point, and peripheral region of this pixel, respectively, and satisfy w F +w N +w P =1;
[0109] Based on the composite color value of each pixel, the corresponding pixel position is written to the frame buffer in sequence. The entire screen pixel grid is traversed to complete the image output process and generate a composite display image.
[0110] Specifically, after extracting the region type identifier for each pixel based on the multi-level rendering region partitioning map, the system executes two parallel calculation processes to generate the mapping matrix required for subsequent compositing. First, to calculate the signed shortest distance from each pixel to the region boundary, two floating-point textures of the same size as the screen resolution are created, namely the distance mapping matrix. One is used to store the distance d1 to the focal and near-focal boundary, and the other is used to store the distance d2 to the near-focal and outer boundary. Taking the calculation of d1 as an example, the system first generates a seed texture, in which all pixels located on the focal and near-focal boundaries are assigned a value of 0, pixels within the focal region are assigned a value of -1, and pixels in the near-focal and outer regions are assigned a value of +1. Then, the algorithm performs a series of passes on the graphics processor. In each pass, each pixel checks its neighboring pixels outside a specific step size (the step size starts at half the screen size and is halved each time until it reaches 1) and updates its own distance value. If the neighboring pixel is closer, then... By adopting the distance values of neighbors, distance information can be rapidly propagated throughout the texture. Ultimately, the precise Euclidean distance to the boundary is calculated for each pixel in logarithmic time. The distance is negative for pixels within the focal region and positive for pixels outside the focal region. The calculation of d2 follows the same process, except that the boundary is changed to the boundary between the near-focal point and the periphery. At the same time, the system calculates the color difference mapping matrix. For each pixel near the boundary, the system samples the color value at a small distance (e.g., 5 pixels) on both sides of the boundary in its normal direction. Colors are obtained from the screen focal rendering area image, the near-focal rendering area image, and the periphery rendering area image. The perceptual difference between the colors of these two sampling points is calculated using the CIEDE2000 color difference formula. This difference value is written to the corresponding position in the color difference mapping matrix, ultimately resulting in a distance mapping matrix containing all pixel distance information and a color difference mapping matrix containing boundary color difference information.
[0111] formula:
[0112]
[0113] P final (x,y)=w F (x,y)·I F (x,y)+w N (x,y)·I N (x,y)+w P (x,y)·I P (x,y),
[0114] in,
[0115] The advantage of the formula is that it fixes the basic transition bandwidth T. baseCombined with the real-time color difference ΔC on both sides of the boundary, the transition effect between areas with different rendering quality is no longer a rigid, fixed-width blur, but can be intelligently adjusted according to the local image content. When the color difference on both sides of the boundary is large and visual discontinuity is easily produced, the system increases λ. blend • The ΔC term is used to widen the transition band for a smoother blend. Conversely, when the color difference is small, the transition band is narrowed to retain more image details. This adaptability improves the visual coherence and naturalness of the final synthesized image and effectively eliminates abrupt changes in regional boundaries or flickering artifacts that may be caused by using a multi-level rendering strategy. Ultimately, a seamless and high-quality visual presentation effect is achieved without sacrificing performance.
[0116] I F (x,y), I N (x,y), I P (x, y) represent the pixel color values at this location in the screen's focus rendering area image, near-focus rendering area image, and peripheral rendering area image, respectively. These values are directly loaded from the region-specific rendering frame buffer generated in the previous step. For example, for a pixel (x, y) located near the boundary, its color values in the three images are as follows: I F (x,y)=(0.9,0.2,0.2)(bright red), I N (x,y)=(0.7,0.15,0.15)(medium red), I P (x,y)=(0.4,0.1,0.1)(dark red).
[0117] d1(x,y) and d2(x,y) are the signed shortest distances from the pixel to the boundaries of the two regions. These values are obtained from the distance mapping matrix generated in the previous step. Positive values indicate that the pixel is outside the boundary (away from the focal point), and negative values indicate that it is inside the boundary. For example, if the selected pixel is located in the near-focal point region, 8 pixels away from the focal point-near-focal point boundary, and 35 pixels away from the near-focal point-outer boundary, then d1(x,y) = 8.0 and d2(x,y) = -35.0.
[0118] ΔC1(x,y) and ΔC2(x,y) represent the color difference between the images on both sides of the boundary. These values are obtained from the color difference mapping matrix generated in the previous step. The values are calculated according to the CIEDE2000 standard, and their range is usually between 0 and 100. In this example, the color difference between the focal point and the near-focal point boundary is relatively large, ΔC1(x,y) = 25.0, while the difference between the near-focal point and the outer boundary is relatively small, ΔC2(x,y) = 12.0.
[0119] T baseTo preset the base transition band width, this value defines the minimum blending width when the color difference is zero. Its value is set based on user experience testing. In 20 typical e-commerce scenarios, 50 observers were shown the composite effects of different base transition band widths (ranging from 5 to 40 pixels, with a step size of 5), and were asked to subjectively rate the "transition naturalness" from 1 to 5. The width value with the highest average score was selected. Statistical analysis showed that when the screen resolution was 1920x1080, a width of 25 pixels achieved the highest average score of 4.6. Therefore, T was set... base =25.0.
[0120] λ blend The color difference sensitivity coefficient is used to adjust the degree of influence of color difference on the width of the transition band. Its value is determined through an automated calibration process: the system renders a set of standard test images containing various color contrasts from low to high, and for each contrast level, the system automatically adjusts λ. blend The value of λ (ranging from 0.1 to 2.0) was determined, and the multi-scale structural similarity index (MS-SSIM) of the synthesized image in the boundary region was calculated. The coefficient value that maximizes the average MS-SSIM value across all contrast levels was selected. This process determined the optimal value to be 0.8, therefore λ was set. blend =0.8.
[0121] γ is a coefficient that controls the steepness of the Sigmoid curve and determines how quickly the blending weight changes from 0 to 1. Its setting is based on visual perception experiments. Observers are shown smooth transition bands with different γ values, and the minimum γ value that they can distinguish is recorded. The average of all observer data is taken and multiplied by a safety factor of 1.5 to ensure that the transition is smooth enough. The experimental results show that when the γ value is set to 12.0, the transition effect achieves the best balance between sharpness and smoothness.
[0122] Substitute the above parameter values into the formula to calculate:
[0123] First, calculate the dynamic transition band width:
[0124] T′1(x,y)=25.0+0.8·25.0=25.0+20.0=45.0;
[0125] T′2(x,y)=25.0+0.8·12.0=25.0+9.6=34.6;
[0126] Next, calculate the Sigmoid function value:
[0127]
[0128] Then calculate the fusion weights:
[0129] w F (x,y)=1-0.894=0.106;
[0130] w P (x,y)=0.0;
[0131] w N (x,y)=1-0.106-0.0=0.894;
[0132] Finally, calculate the final synthesized color value (taking the R channel as an example):
[0133] P final,R (x,y)=0.106·0.9+0.894·0.7+0.0·0.4;
[0134] P final,R (x,y)=0.0954+0.6258+0.0=0.7212;
[0135] Performing the same calculations on the G and B channels yields the final color vector.
[0136] The results show that the final color of the pixel located in the near-focal region is mainly determined by the rendering result of the near-focal region (weight 0.894), with a slight blending of the color of the focal region (weight 0.106), and no component from the outer region. This weighting is reasonable because it is located not far outside the focal region. Through this pixel-by-pixel weighted fusion, the system can generate a final image with a smooth transition from high to low rendering quality and no obvious boundaries.
[0137] Based on the composite color values calculated for each pixel on the screen in the previous steps, the system enters the final image output stage. This process is efficiently completed through a full-screen draw call. Specifically, the system binds the rendering program in the graphics pipeline and draws a rectangle or triangle covering the entire screen. For each pixel position in the screen grid, its corresponding fragment shader is activated. The core task of this shader is to execute the aforementioned blending formula calculation. It binds three images from the regional rendering framebuffer (screen focus area shader, near focus area shader, and diffuse shader of the outer rendering area) as texture inputs, along with the calculated distance mapping matrix and color difference mapping matrix. For the currently processed pixel coordinates (x, y), the shader first samples all the parameters required for calculation from these input textures, including I... F I N I P Then, strictly following the formula logic, it calculates the dynamic transition band widths T′1 and T′2 in sequence, and then calculates the three fusion weights w.F w N and w P Finally, a weighted summation is performed to obtain the final composite color value P. final The color value (x, y) is used as the final output color of the fragment shader and is directly written to the corresponding pixel position in the back buffer of the current frame. This process starts from the first pixel in the upper left corner of the screen and traverses the entire screen pixel grid in turn until the color value of the last pixel in the lower right corner is also calculated and written. When the writing operation of all pixels is completed, a seamless final image is completely constructed in the back buffer. Finally, the system performs a buffer swap operation to present the contents of the back buffer to the screen, completing the generation and display of the composite image.
Claims
1. A real-time rendering system for 3D product models on e-commerce platforms, characterized in that, The system includes: The model geometry weight generation module performs voxelization processing on the input 3D model of the product, retrieves the rate of change of geometric curvature, position relative to the model outline, and preset region identifier for each voxel, calculates the saliency measure of voxel structure, and establishes a geometric importance weight map. The frustum culling and LOD linkage module performs frustum culling based on the camera frustum parameters and the geometric importance weight map. It filters the geometry to be rendered for the non-occluded parts within the frustum to obtain a dynamic set of visible geometry. It also generates a hierarchical geometric detail data stream based on the camera distance and viewing direction. The pointer-guided focus division module obtains the screen coordinates of the user's mouse cursor or finger touch and establishes the screen focus rendering area; a transition ring is set as the near focus area around the screen focus rendering area, and the remaining part of the screen is designated as the outer area to obtain a multi-level rendering area division map. The multi-level pipeline rendering and compositing module, based on the multi-level rendering region division map, retrieves the hierarchical geometric detail data stream, renders and outputs it to different buffers to obtain regional rendering frame buffers; reads the image content of the regional rendering frame buffers, performs smooth blending, and generates a composite display image.
2. The real-time rendering system for 3D product models for e-commerce platforms according to claim 1, characterized in that, The steps for obtaining the geometric importance weight map are as follows: The input 3D model of the product is divided into an equally spaced voxel mesh. The principal curvature of each voxel is calculated and the curvature change rate is derived. The shortest Euclidean distance from the center point of the voxel to the boundary line of the model contour is measured. The semantic region identifier is extracted and the corresponding semantic weight is queried. At the same time, the curvature change rate of all voxels is retrieved in the cubic neighborhood centered on the voxel. The curvature standard deviation in the cubic neighborhood is calculated as the local neighborhood heterogeneity index. The curvature change rate set, contour distance set, region semantic weight set and local heterogeneity set are generated. Based on the set of curvature change rate, the set of contour distance, the set of region semantic weights, and the set of local heterogeneity, calculate the voxel structure saliency measure for each voxel; Based on the voxel structure saliency measure, the voxel structure saliency measures of all voxels at their respective geometric locations are spatially mapped, and spatial interpolation is used to reconstruct and fuse continuous regions to generate a geometric importance weight map.
3. The real-time rendering system for 3D product models for e-commerce platforms according to claim 1, characterized in that, The steps for obtaining the dynamic visual geometry set are as follows: Based on the camera frustum parameters, obtain the camera position coordinates and camera frustum orientation vector corresponding to the current viewpoint. Retrieve the spatial position coordinates and voxel structure saliency measure of all voxels in the geometric importance weight map. Calculate the angle between the line vector connecting the voxel spatial position coordinates to the camera position coordinates and the camera frustum orientation vector. When the angle value is less than the preset maximum visible angle threshold of the frustum, mark the voxel as a visible voxel within the spatial frustum to form an initial set of visible voxels. Based on the initial set of visible voxels, using the camera position coordinates and the spatial position coordinates of the visible voxels, it is determined whether there are other voxels occluding each visible voxel in the initial set of visible voxels and the camera. If there are no other voxels between them, the visible voxels are marked as non-occluded visible voxels, forming a set of non-occluded visible voxels. Based on the set of unoccluded visible voxels, the voxel structure saliency measure of each unoccluded visible voxel is extracted. The voxel structure saliency measure is compared with the dynamic rendering load threshold one by one. If the voxel structure saliency measure is greater than or equal to the dynamic rendering load threshold, the corresponding unoccluded visible voxel is added to the dynamic visible geometry set. If the voxel structure saliency measure is less than the dynamic rendering load threshold, the corresponding voxel is discarded, thus obtaining the dynamic visible geometry set.
4. The real-time rendering system for 3D product models for e-commerce platforms according to claim 1, characterized in that, The steps for obtaining the hierarchical geometric detail data stream are as follows: Based on the camera position coordinates and camera viewing direction, traverse each dynamic visual geometry in the set of dynamic visual geometries, calculate the Euclidean distance between the spatial centroid coordinates of the dynamic visual geometry and the camera position coordinates for each dynamic visual geometry, and calculate the angle between the spatial normal direction of the dynamic visual geometry and the camera viewing direction to form a set of camera distance values and viewing angle values for the dynamic visual geometry. Based on the set of camera distance values and viewing angle values of the dynamic visual geometry, query all voxel structure saliency measures contained in the corresponding dynamic visual geometry, calculate the average value of all voxel structure saliency measures of each dynamic visual geometry, and compare the average voxel structure saliency measure of the dynamic visual geometry with a preset grading threshold one by one. If the average voxel structure saliency measure is greater than or equal to the preset grading threshold, the corresponding dynamic visual geometry is marked as a fine detail level state. If the average voxel structure saliency measure is less than the preset grading threshold, it is marked as a simplified detail level state, thus forming a set of detail level states of the dynamic visual geometry. Based on the set of detail levels of the dynamic visual geometry, high-precision geometric topology data is invoked for dynamic visual geometry marked as fine detail level state, and simplified geometric topology data is invoked for dynamic visual geometry marked as simplified detail level state, generating a hierarchical geometric detail data stream.
5. The real-time rendering system for 3D product models for e-commerce platforms according to claim 1, characterized in that, The steps for obtaining the screen focus rendering area are as follows: The system captures the user's mouse cursor position coordinates or finger touch position coordinates in real time through the user input device interface. It then converts the acquired mouse cursor position coordinates or finger touch position coordinates into screen coordinates in the current display screen coordinate system. Using the converted screen coordinates as the center, and based on the preset area division radius value, it draws a closed circular boundary in the screen coordinate system in pixels to form the screen focus rendering area.
6. The real-time rendering system for 3D product models for e-commerce platforms according to claim 1, characterized in that, The steps for obtaining the multi-level rendering region partitioning map are as follows: Based on the circular boundary of the screen focus rendering area, with the center of the screen focus rendering area as the center, the ring width is used to expand outward, calculate the new concentric circle boundary and draw a closed circle, and define the ring area between the newly drawn concentric circle boundary and the original circular boundary of the screen focus rendering area as the near focus rendering area, thus forming the near focus rendering area. Based on the screen focus rendering area and the near focus rendering area, the unoccupied remaining area in the screen coordinate system is identified, and the pixel position coordinates of the remaining area are uniformly defined as the outer rendering area to generate a multi-level rendering area division map.
7. The real-time rendering system for 3D product models for e-commerce platforms according to claim 1, characterized in that, The steps for obtaining the region-based rendering frame buffer are as follows: Based on the multi-level rendering region division map, the pixel position coordinates of the screen focus rendering region, near focus rendering region and peripheral rendering region are retrieved one by one. The fine detail level geometric topology data and simplified detail level geometric topology data in the hierarchical geometric detail data stream are called respectively. The geometric topology data is combined with the material property parameters of the lighting model. The physical material diffuse reflection, metallicity, roughness, normal and specular reflection intensity of the screen focus rendering region are calculated pixel by pixel. The complete shading is performed to form the screen focus region shading map. Based on the screen focus area shading map, and taking the pixel position coordinates of the near focus rendering area as a reference, the corresponding fine detail level geometric topology data and simplified detail level geometric topology data in the hierarchical geometric detail data stream are also called. The sampling resolution of the shadow texture in the near focus rendering area is reduced, and physical material diffuse reflection and lighting calculations based on the simplified shadow map are performed to form the near focus area shading map. Based on the near-focus area shading map, and taking the pixel position coordinates of the outer rendering area as a reference, the simplified detail level geometric topology data in the hierarchical geometric detail data stream is called to perform basic diffuse lighting calculation. The screen focus area shading map, the near-focus area shading map, and the diffuse shading map of the outer rendering area are stored independently in the corresponding video memory buffers and combined to form a regional rendering frame buffer.
8. The real-time rendering system for 3D product models for e-commerce platforms according to claim 1, characterized in that, The steps for obtaining the synthesized display image are as follows: Based on the multi-level rendering region division map, extract the region type identifier of each pixel, load the screen focus rendering region image, near focus rendering region image and peripheral rendering region image respectively, take each pixel as the center, calculate the shortest distance to the focus and near focus boundary, and the shortest distance to the near focus and peripheral boundary, and calculate the color value difference of the pixel in the image on both sides of the region boundary respectively, and obtain the distance mapping matrix and color difference mapping matrix. Based on the distance mapping matrix and the color difference mapping matrix, the dynamic transition band width of the two boundaries is calculated, and the fusion weight and synthesized color value of each pixel are calculated. Based on the composite color value of each pixel, the corresponding pixel position is written to the frame buffer in sequence. The entire screen pixel grid is traversed to complete the image output process and generate a composite display image.
Citation Information
Cited By
Production line equipment intelligent rendering method and system based on dynamic viewport detection
CN121280218A
Lightweight hierarchical digital twinning modeling and rendering method for large-scale scene
CN121708228A
Lightweight hierarchical digital twin modeling and rendering method for large-scale scenarios
CN121708228B