Method, device and computer storage medium for cross-platform rendering of three-dimensional scenes

By acquiring the API interfaces and performance data of the target platform, converting rendering instructions and adaptively adjusting parameters, the problem of universality of 3DGS scene rendering across different platforms is solved, achieving efficient and stable cross-platform rendering effects.

CN120833428BActive Publication Date: 2025-11-25SHENZHEN XGRIDS-INNOVATION CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202511318682.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-09-16
Publication Date
2025-11-25
Estimated Expiration
2045-09-16

AI Technical Summary

Technical Problem

Existing 3DGS scene rendering technology is not universally compatible across different platforms, mainly due to differences in API interface types and hardware performance, resulting in low cross-platform rendering efficiency.

Method used

By acquiring the API interface type and performance data of the target platform, custom rendering instructions are converted into instructions supported by the target platform, and rendering parameters are adaptively adjusted based on the performance data to adapt to changes in platform performance in real time.

Benefits of technology

It achieves high-performance, high-quality 3DGS scene rendering on different platforms, reduces the cost and difficulty of cross-platform rendering, and ensures the stability and efficiency of rendering effects.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120833428B_ABST
    Figure CN120833428B_ABST
Patent Text Reader

Abstract

The application relates to the field of three-dimensional scene rendering, in particular to a three-dimensional scene cross-platform rendering method, equipment and computer storage medium. The method converts user-unified custom rendering instructions into target rendering instructions capable of running on a target platform by acquiring an API interface type and performance parameters of the target platform according to the API interface type of the target platform. Meanwhile, in order to adapt to the performance requirements of different target platforms, the rendering parameters are adaptively determined according to the performance data of the target platform, different rendering strategies are selected on different platforms, and thus the target rendering instructions can run on target platforms with various performances. Further, the rendering parameters can be adjusted in real time according to the change of real-time load data of the target platform, so that the quality and speed of three-dimensional image rendering reach the best balance.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] Embodiments of the present application relate to the field of three-dimensional scene rendering, and in particular to a three-dimensional scene cross-platform rendering method, device and computer storage medium. BACKGROUND

[0002] In recent years, in the field of three-dimensional scene reconstruction and rendering, 3D Gaussian Splash (hereinafter referred to as 3DGS) technology has made great progress on the basis of Neural Radiance Fields (NeRF), achieving high-fidelity details while maintaining low scene complexity, and also having high real-time rendering performance. Since the 3DGS was proposed, it has fundamentally changed the paradigm of three-dimensional scene reconstruction and rendering, and has achieved large-scale usability. Compared with traditional oblique photography Mesh reconstruction and scene point cloud, 3DGS scene has a significant advantage in detail presentation, and has good potential for extension and scalability. With more compact expression, it realizes high-fidelity real scene reconstruction and three-dimensional presentation, and gradually becomes the main technology in the field of three-dimensional reconstruction.

[0003] The present inventors have found in research that since 3DGS scene rendering requires high GPU underlying control capability and is directly related to the graphics rendering API, it needs to control the GPU directly through the GPU shader code to render normally, so the 3DGS scene renderers developed for different platforms are basically not universal and different renderers need to be developed for different platforms. SUMMARY

[0004] In view of the above problems, the embodiments of the present application provide a three-dimensional scene cross-platform rendering method, a three-dimensional scene rendering device and a computer storage medium, to solve the above technical problems existing in the prior art.

[0005] In one aspect of the embodiments of the present application, a three-dimensional scene cross-platform rendering method is provided, comprising:

[0006] obtaining API interface types and performance data of a target platform;

[0007] converting a custom rendering instruction into a target rendering instruction according to the API interface types, wherein the type of the target rendering instruction is the API interface type of the target platform;

[0008] determining a rendering parameter corresponding to the target rendering instruction according to the performance data;

[0009] rendering a target three-dimensional scene on the target platform according to the rendering parameter and the target rendering instruction;

[0010] acquire real-time load data of the target platform, and adjust the rendering parameter according to the real-time load data.

[0011] In some embodiments, preferably, the converting the custom rendering instruction into the target rendering instruction according to the API interface type comprises:

[0012] converting the custom rendering instruction into a first target rendering instruction and a second target rendering instruction according to the API interface type, wherein the compatibility of the second target rendering instruction is greater than that of the first target rendering instruction;

[0013] the rendering the target three-dimensional scene on the target platform according to the rendering parameter and the target rendering instruction comprises:

[0014] rendering the target three-dimensional scene on the target platform according to the rendering parameter and the first target rendering instruction;

[0015] if the rendering of the target three-dimensional scene fails, then falling back and rendering the target three-dimensional scene on the target platform according to the rendering parameter and the second target rendering instruction.

[0016] In some embodiments, preferably, the determining the rendering parameter corresponding to the target rendering instruction according to the performance data comprises:

[0017] generating a performance level corresponding to the target platform according to the performance data;

[0018] determining the rendering parameter corresponding to the target rendering instruction according to the performance level and a preset rendering rule.

[0019] In some embodiments, preferably, the rendering the target three-dimensional scene on the target platform according to the rendering parameter and the target rendering instruction comprises:

[0020] determining a view frustum according to the position of a rendering camera;

[0021] screening out data block nodes that need to be rendered according to the view frustum;

[0022] determining the distance from the center point of the data block nodes that need to be rendered to the center point of the rendering camera;

[0023] adjusting the rendering parameter and the rendering time of the data block nodes that need to be rendered according to the distance.

[0024] In some embodiments, preferably, the method further comprises:

[0025] determining the data block nodes that need to be loaded and the LOD levels corresponding thereto according to the position and orientation of a rendering camera.

[0026] When the position or orientation of the rendering camera changes, then the data chunk nodes and their corresponding LOD levels that need to be loaded are recalculated.

[0027] In some embodiments, preferably, the method further comprises:

[0028] loading the data chunk nodes within the frustum range into an internal cache;

[0029] When the position or orientation of the rendering camera changes, if the data chunk nodes within the frustum range are in the internal cache, then they are directly rendered; otherwise, they are loaded from the external memory.

[0030] In some embodiments, preferably, the adjusting the rendering parameters according to the real-time load data comprises:

[0031] If the real-time load data is greater than a preset load threshold, then the rendering parameters are adjusted.

[0032] In some embodiments, preferably, the adjusting the rendering parameters according to the real-time load data comprises:

[0033] obtaining historical load data;

[0034] determining a performance trend of the target platform by a preset load prediction algorithm according to the performance data, the historical load data and the real-time load data;

[0035] adjusting the rendering parameters according to the performance trend.

[0036] Another aspect of the embodiments of the present application provides a three-dimensional scene rendering device, comprising: a processor, a memory, a communication interface and a communication bus, the processor, the memory and the communication interface complete communication with each other through the communication bus;

[0037] The memory is used to store at least one program, and the program causes the processor to perform the operations of the three-dimensional scene cross-platform rendering method described in the above embodiments.

[0038] A third aspect of the embodiments of the present application also provides a computer readable storage medium, the storage medium stores at least one program, and the program causes the three-dimensional scene rendering device to perform the operations of the three-dimensional scene cross-platform rendering method described in the above embodiments when the program runs on the three-dimensional scene rendering device.

[0039] In summary, the embodiment of the present application obtains the API interface type and performance parameters of the target platform, converts the user's unified custom rendering instruction into target rendering instruction capable of running on the target platform according to the API interface type of the target platform; at the same time, in order to adapt to the performance requirements of different target platforms, the rendering parameters are also adaptively determined according to the performance data of the target platform, different rendering strategies are selected on different platforms, so that the target rendering instruction can run on various performance target platforms. Further, the present application can also adjust the rendering parameters in real time according to the change of real-time load data of the target platform, so as to achieve the best balance between the quality and speed of three-dimensional image rendering. Through a unified architecture, the 3DGS scene rendering of different platforms is realized, and high-performance and high-quality 3DGS scene rendering is realized.

[0040] The above description is only a summary of the technical scheme of the embodiment of the present application, in order to more clearly understand the technical means of the embodiment of the present application, which can be implemented according to the content of the specification, and in order to make the above and other purposes, characteristics and advantages of the embodiment of the present application more obvious and easy to understand, the following specific embodiments of the present application are described. BRIEF DESCRIPTION OF DRAWINGS

[0041] The accompanying drawings are included to provide a further understanding of the application and are incorporated herein and constitute a part of the detailed description. In the drawings:

[0042] Figure 1 A technical architecture diagram of a three-dimensional scene cross-platform rendering method provided by the embodiment of the present application;

[0043] Figure 2 A flowchart of a three-dimensional scene cross-platform rendering method provided by the embodiment of the present application;

[0044] Figure 3 A hierarchical loading diagram provided by the embodiment of the present application;

[0045] Figure 4 A hierarchical loading flowchart provided by the embodiment of the present application;

[0046] Figure 5 A structure diagram of a three-dimensional scene rendering device provided by the embodiment of the present application. DETAILED DESCRIPTION

[0047] The exemplary embodiments of the present application will be described in detail with reference to the accompanying drawings. Although the exemplary embodiments of the present application are shown in the drawings, it should be understood that the present application can be implemented in various forms and should not be limited by the embodiments described herein.

[0048] 3D Gaussian Splatting (3DGS) is a method for three-dimensional scene reconstruction and rendering. It uses point cloud and image data to reconstruct and render high-fidelity three-dimensional scenes. 3DGS uses Gaussian ellipsoids as scene representation primitives, i.e., Gaussian primitives, and describes the relationship between Gaussian ellipsoids through Gaussian functions, thereby achieving high-fidelity reconstruction and rendering of three-dimensional scenes. In open large-scale spaces, the total number of Gaussian primitives is large, and actual large scenes often contain tens of millions to billions of Gaussian primitives, which cannot be rendered all at once and need to be rendered in layers and blocks. When rendering, the three-dimensional scene is divided into multiple spatial regions, each region being a block node. Common spatial division methods include nine-square, quadtree, octree, etc. These methods recursively divide the space into smaller sub-regions to achieve block management of the scene. Each block node can be independently rendered and operated, and each block node contains multiple Gaussian primitives. The data volume of Gaussian primitives contained in each block node needs to be controlled within a certain range to ensure rendering performance. The data volume contained in the block node is usually determined according to memory, video memory, and CPU / GPU processing capability.

[0049] Rendering a 3DGS reconstructed scene is different from traditional Mesh triangle face rendering process, and existing Mesh rendering methods cannot be directly used for rendering. Original 3DGS rendering relies on CUDA acceleration and has strong dependence on platforms. After the efforts of developers, 3DGS scenes can now be rendered and displayed on Windows platforms, Web platforms, Ubuntu platforms, Android platforms, iOS platforms, etc. However, 3DGS scene rendering requires high GPU underlying control capability and is directly related to the graphic rendering API interface, so it needs to control the GPU operation through GPU shader code to render normally. Therefore, the 3DGS scene renderers developed for each platform are basically not universal.

[0050] The present inventors found in their research that the difficulties of 3DGS cross-platform rendering are on the one hand due to the differences in API interface types of different platforms, such as DirectX / Vulkan / Metal / WebGPU, each having different API interface types and calling instructions; on the other hand, the hardware performance of platforms for 3DGS rendering varies greatly, such as high-end PCs and low-end mobile phones, with a large difference in hardware performance. These all limit the cross-platform rendering of 3DGS.

[0051] In the existing solutions for cross-platform rendering of 3DGS, mature engines with cross-platform compilation capabilities such as Unreal Engine and Unity are mainly relied on. However, even so, the engines such as Unreal Engine and Unity cannot achieve high-quality and efficient rendering for specific platforms. So far, there is no unified architecture that truly has the capability of cross-platform 3DGS scene rendering, and it is impossible to achieve very efficient rendering and display on various platforms.

[0052] Therefore, the purpose of the present application is to provide a method for completely solving the cross-platform rendering of three-dimensional scenes, to achieve the rendering of 3DGS scenes on different platforms through a unified architecture, and to achieve high-performance and high-quality 3DGS scene rendering. The three-dimensional scene cross-platform rendering method, device and readable computer storage medium provided by the embodiments of the present application start from solving the adaptation of different platform graphic API interface types and the adaptation to hardware platforms with different performance. By obtaining the API interface type and performance parameters of the target platform, the user's unified custom rendering instructions are converted into target rendering instructions that can run on the target platform according to the API interface type supported by the target platform. At the same time, in order to adapt to the performance requirements of different target platforms, the rendering parameters are also adaptively determined according to the performance data of the target platform, and different rendering strategies are selected on different platforms, so that the target rendering instructions can run on target platforms with various performance. Further, the present inventors have also considered that the performance of the target platform will change with the change of real-time load, and the embodiments of the present application can also adjust the rendering parameters in real time according to the change of real-time load data of the target platform, so as to achieve the best balance between the quality and speed of three-dimensional image rendering.

[0053] Figure 1 The technical architecture schematic diagram of the three-dimensional scene cross-platform rendering technology provided by the embodiments of the present application is shown, which includes the collected 3D Gaussian data 100, the cross-platform adapter 200 and the operation platform 300.

[0054] The 3D Gaussian data 100 is 3D Gaussian data obtained by a user collecting a three-dimensional scene through a three-dimensional scene rendering device. The three-dimensional scene rendering device can be a desktop computer, a notebook computer, a tablet computer, a mobile device, etc., or a mobile phone, smart glasses or other smart devices.

[0055] The cross-platform adapter 200 is used to render the 3D Gaussian data 100 through the three-dimensional scene cross-platform rendering method provided by the embodiments of the present application, and includes a platform detector, a data adapter, a rendering controller, a Shader translator, a platform optimizer and a rendering engine. The cross-platform adapter 200 can run on a three-dimensional scene rendering device or a dedicated three-dimensional scene reconstruction server.

[0056] In the cross-platform adapter 200, the platform detector is used to detect the graphic API interface support of the target platform at runtime or compile time, and collect performance data of the platform, such as operating system information, hardware performance data, etc., including GPU computing power, memory, CPU computing power and other hardware performance indicators of the target platform. These information is used for subsequent optimization of rendering instruction conversion and data encoding and loading.

[0057] The data adapter is responsible for processing 3D Gaussian data into different precision and data compression formats according to the platform requirements, which includes adjusting the precision (such as using float precision or half precision) and quantity of Gaussian points according to the performance data of the target platform, and supporting layered loading (core layer high precision, peripheral layer low precision), streaming rendering or progressive loading, etc.

[0058] The rendering controller is used to manage platform-independent rendering instructions, i.e. user-defined rendering instructions, to ensure that these platform-independent rendering instructions can be correctly converted and executed according to the instruction types supported by the target platform. The rendering controller coordinates the work of the platform detector and the Shader translator, ensures that the rendering instructions adapt to different hardware and software environments of different platforms, manages the resources required in the rendering process, including textures, model data, shaders, etc.; the rendering controller is also used to ensure that these resources are correctly loaded and bound during the rendering process to improve rendering efficiency, and controls the entire rendering process, including data loading, shader execution, rendering output, etc.

[0059] The Shader translator is used to convert platform-independent rendering instructions into graphic API instructions (such as GLSL, HLSL, MSL, WGSL) supported by the specific target platform according to the API interface type information provided by the platform detector, and generate corresponding platform native API call sequences, which ensures that the rendering instructions can be executed correctly on different platforms.

[0060] The platform optimizer is used to adapt to the hardware and performance differences of different target platforms to ensure that the rendering instructions and resource management can run efficiently on different platforms. This includes optimizing instruction rearrangement, resource binding and other operations. And it can switch the rendering precision according to the load changes of the target platform or user settings during rendering, to pursue the best balance between rendering quality and speed, and ensure stable frame rate and image quality on different performance devices.

[0061] The rendering engine is responsible for executing specific rendering tasks, including calling optimized rendering instructions, managing rendering resources, etc. The rendering engine hides the hardware and performance differences through the cross-platform adapter, and realizes 3D GS rendering and display on different operating systems and hardware platforms.

[0062] The operation platform 300 is a target platform for the cross-platform adapter 200 to run, and the operation platform 300 includes a desktop operating system such as Windows, Linux, a mobile operating system such as iOS, Android, HarmonyOS, and the like, and can also be a web-side program and a mini-program, and the like. The operation platform 300 includes various systems capable of running three-dimensional scene reconstruction, and different platforms have different hardware resources, software resources, bandwidth resources, and API interfaces, and the like.

[0063] When the three-dimensional scene cross-platform rendering method proposed in the embodiments of the present application runs on the cross-platform adapter and the operation platform, or on the three-dimensional scene rendering device, the 3D Gaussian data can be rendered on various types of operation platforms, and various resources of the operation platform can be adaptively called, cross-platform and cross-hardware device rendering of the 3DGS scene is realized, and the method does not depend on external third-party engines or tools, and the porting cost of cross-platform 3D Gaussian rendering is significantly reduced.

[0064] Figure 2 A flowchart of the three-dimensional scene cross-platform rendering method proposed in the embodiments of the present application is shown, and the method includes the following steps:

[0065] Step S100: Obtain API interface type and performance data of a target platform;

[0066] The target platform is a hardware platform to be rendered with 3DGS data. In order to obtain the API interface type of the target platform, at runtime, the supported graphic API interface type of the current target platform can be detected through API calling or system query interface. For example, whether DirectX is supported on the Windows platform, whether Vulkan is supported on the Linux platform, and the like.

[0067] Specifically, in order to obtain the API interface type of the target platform, the system API or environment variable can be used to obtain the operating system type and version information when collecting the operating system information of the target platform. The graphic API interface type supported by the target platform can also be detected through the preprocessor macro definition or conditional compilation instruction in the compilation stage.

[0068] Further, in order to more accurately obtain the API interface type, the version information of the API interface type can also be further obtained. Different operating systems and hardware can support different versions of graphics API (such as DirectX 11, DirectX 12, Vulkan 1.1, Vulkan 1.2, etc.). It is necessary to ensure that the rendering instruction can adapt to different versions of API. In the above platform detector, the API version detection function is added, and the API version supported by the current platform is obtained through the query interface provided by the API, so that the instruction conversion can be more accurate, the rendering failure can be avoided, and the compatibility of the rendering is improved.

[0069] The performance data of the target platform includes, but is not limited to, GPU computing power, memory, CPU computing power, etc. The performance data can be obtained by using the API provided by the GPU manufacturer or the system API to obtain the hardware performance data such as GPU model, memory size, GPU computing power, etc. For example, the GPU information is obtained by using the CUDA API, and the GPU renderer information is obtained by using the glGetString function of OpenGL.

[0070] Step S200: converting the custom rendering instruction into a target rendering instruction according to the API interface type, wherein the type of the target rendering instruction is the API interface type of the target platform;

[0071] The custom rendering instruction is a set of platform-independent rendering instructions for customization. In the embodiments of the present application, a platform-independent graphics rendering intermediate layer can be constructed to describe platform-independent rendering processes, shader logic, resource binding, resource management, and the like.

[0072] The graphics API interface support of the target platform is detected at runtime or at compile time, and the custom rendering instruction of the graphics rendering intermediate layer is converted into a graphics API instruction supported by the specific target platform. The custom rendering instruction is adaptively converted into a specific graphics API instruction (GLSL, HLSL, MSL, WGSL) of the appropriate target platform, and a corresponding platform native API call sequence is generated, so that the platform-independent rendering instruction is executed on the specific platform.

[0073] Step S300: determining a rendering parameter corresponding to the target rendering instruction according to the performance data;

[0074] According to the performance data of the target platform obtained by the platform detector, the performance of the target platform is evaluated to generate a corresponding performance level, and a rendering parameter corresponding to the target rendering instruction is determined according to the performance level and a preset rendering rule. The rendering parameter includes data precision, quantization, compression mode, and whether to use spherical harmonic rendering, etc. The preset rendering rule can be a certain performance parameter threshold. When greater than the performance parameter threshold, the target platform is considered as a high-performance platform. When less than the performance parameter threshold, the target platform is considered as a low-performance platform.

[0075] In runtime, for a high-performance platform, high-precision data, non-quantized and compressed data, and spherical harmonic coefficients are used for rendering to achieve better rendering quality and effect. For a low-performance platform, low-precision data, quantized and highly compressed data, and no spherical harmonic coefficients are used for rendering. Thus, hardware optimization can be optimized on different target platforms, and rendering of different precision and quality can be realized, and a relatively high rendering frame rate can be achieved even on a low-performance platform.

[0076] Of course, in order to achieve higher precision control, the above-mentioned preset rendering rule can also be refined, and different rendering parameters can be formulated for different performance levels to achieve more accurate rendering control.

[0077] Step S400: rendering a target three-dimensional scene on the target platform according to the rendering parameter and the target rendering instruction;

[0078] In order to adapt to the performance of the target platform and achieve the best rendering effect when rendering the target three-dimensional scene, layered loading, streaming rendering, and progressive loading can be used.

[0079] Specifically, as shown in FIG. 4, Figure 3 As shown in FIG. 4, a schematic diagram of layered loading is shown. In the rendering process, 3DGS scene data is processed in blocks and LOD (Level of Detail) layers. Data block nodes and their corresponding LOD layers are determined according to the rendering camera frustum. The hardware performance consumption is optimized and the rendering frame rate is improved without loss of visual quality. The LOD technology is an optimization technology commonly used in three-dimensional rendering, which is used to dynamically adjust the detail level of the model according to the size of the object on the screen and the distance from the rendering camera. The core idea is to reduce the details of distant or small objects to reduce rendering load and improve rendering performance without affecting visual effects.

[0080] Figure 4 A flowchart of layered loading proposed by the embodiment of the application is shown, which includes:

[0081] Step S401: determining a frustum according to the position of a rendering camera;

[0082] Figure 3 In some embodiments, a schematic view of a frustum is shown, with the position of the rendering camera as the center point, and the view angle is spread outwards to determine the view angle range of the rendering camera.

[0083] Step S402: filtering out the data block nodes that need to be rendered according to the frustum;

[0084] The data block nodes included in the frustum are determined, and Figure 3 It can be seen that different data block nodes correspond to different LOD layers.

[0085] Step S403: determining the distance from the center point of the data block nodes that need to be rendered to the center point of the rendering camera;

[0086] Step S404: adjusting the rendering parameters and rendering time of the data block nodes to be rendered according to the distance;

[0087] The distance from the center point of the data block nodes that need to be rendered to the center point of the camera is calculated, and nodes with short distances are rendered using high-precision and attribute-rich LOD layers, and nodes with long distances are rendered using low-precision and attribute-poor LOD layers. The sorting time period of the data block nodes can also be determined according to the distance, further reducing hardware performance consumption and improving performance.

[0088] Further, the embodiments of the present application can also use a streaming rendering method to render the target three-dimensional scene. In the initial rendering, the entire complete 3DGS scene is not loaded, but only the data blocks that need to be rendered are loaded according to the position and orientation of the rendering camera (viewpoint), i.e., the data block nodes and their corresponding LOD levels that need to be loaded are determined according to the position and orientation of the rendering camera. When the position or orientation of the rendering camera changes, the data block nodes and their corresponding LOD levels that need to be loaded are recalculated. This method can significantly reduce the initial loading time and memory usage.

[0089] Further, the embodiments of the present application can also use a progressive rendering method to render the target three-dimensional scene. The progressive rendering first loads the data block nodes within the frustum range into the internal cache, and as the rendering camera moves or rotates, the system recalculates the data blocks and corresponding LOD levels that need to be loaded. If the corresponding data blocks are already in the memory, they are directly rendered; if not, they are loaded from the external memory. This method can ensure the continuity and smoothness of rendering.

[0090] It should be pointed out that the above hierarchical loading mode, streaming rendering mode and progressive rendering mode can be used alone or in combination in actual application, and can also be used in combination with traditional rendering modes such as mesh and voxel. In different scenarios, different rendering modes are adaptively used to achieve a balance between hardware resources and rendering effects to the greatest extent, and to ensure the rendering effect and continuity.

[0091] Step S500: Obtain real-time load data of the target platform, and adjust the rendering parameters according to the real-time load data.

[0092] In the initial rendering, when determining the rendering parameters, although the performance data of the target platform is considered to some extent, and the rendering parameters are determined according to the performance data, in the actual running process, the performance of the target platform may change with the increase of running time, for example, with the increase of running time, the memory fragmentation is aggravated, resulting in the decrease of memory utilization, or the network occupancy changes in different running time, which will change the running performance of the target platform. In this case, if the rendering parameters are not adjusted in time, the rendering effect may be affected, and even rendering failure may occur.

[0093] In order to ensure the rendering effect in the embodiment of the present application, the three-dimensional scene rendering device will obtain the real-time load data of the target platform in the rendering process, and adjust the rendering parameters according to the real-time load data.

[0094] Specifically, a preset load threshold can be used. The user sets the load threshold according to the experience value or the recommended value of the target platform. When the real-time load data is greater than the first preset load threshold, it means that the target platform has a situation of excessive load, and at this time, the rendering parameters need to be adjusted. The normal operation of the target platform can be ensured by reducing the related rendering parameters. When the real-time load data is less than the second preset load threshold, it means that the load of the target platform is small, and at this time, the rendering parameters can be adjusted, and the related rendering parameters can be increased to achieve better rendering effect.

[0095] Further, in order to improve the accuracy of the adjustment of the rendering parameters, the embodiment of the present application further provides a method for adjusting the rendering parameters.

[0096] In the embodiment of the present application, the historical load data of the target platform can be acquired, and the performance trend of the target platform is determined according to the performance data, the historical load data and the real-time load data by a preset load prediction algorithm; and the rendering parameter is adjusted according to the performance trend. The load prediction algorithm can adopt linear regression analysis method or deep learning algorithm, which will not be described here. In this way, the load condition of the target platform can be more accurately predicted and judged, and the accuracy of the rendering parameter adjustment is improved.

[0097] As can be seen from the above, the three-dimensional scene cross-platform rendering method proposed in the embodiment of the present application realizes cross-platform and cross-hardware device rendering of 3DGS scene, does not depend on external third-party engine or tool, has important significance for rendering 3DGS, and significantly reduces the cross-platform 3D Gaussian rendering porting cost. Moreover, because special optimization can be performed for specific operating system platforms or software and hardware, compared with general third-party engine cross-platform, higher runtime performance can be provided, and stable frame rate and picture quality can be obtained on different performance hardware devices; such cross-platform design can also support rapid access of new hardware or platforms in the future.

[0098] Further, in the actual cross-platform rendering process, API calling failure or version compatibility problems may be encountered, for example: although the target rendering instruction adopts the same API instruction as the target platform type, due to compatibility problems, rendering failure may occur. In order to improve the robustness of the three-dimensional scene cross-platform rendering method, the embodiment of the present application further proposes a fault-tolerant processing mechanism, which increases the reliability of cross-platform rendering by increasing the exception handling mechanism.

[0099] Specifically, when the custom rendering instruction is converted into a target rendering instruction according to the API interface type, a primary and backup mode is adopted to increase the compatibility of the target rendering instruction. That is, the custom rendering instruction is converted into a first target rendering instruction and a second target rendering instruction according to the API interface type, wherein the compatibility of the second target rendering instruction is greater than that of the first target rendering instruction, the first target rendering instruction has better rendering effect and is the preferred target rendering instruction, and the second target rendering instruction has better platform compatibility and is the backup target rendering instruction. For example: DirectX 12 is the latest version of rendering instruction, has the best rendering effect, and is the preferred target rendering instruction. However, it may not be compatible with early hardware versions, and DirectX 11 is a lower version of rendering instruction, has better compatibility, and can be used for rendering when DirectX 12 calling fails.

[0100] When rendering, first, the target three-dimensional scene is rendered on the target platform according to the rendering parameters and the first target rendering instruction; if the target three-dimensional scene fails to be rendered, fallback is performed, and the target three-dimensional scene is rendered on the target platform according to the rendering parameters and the second target rendering instruction. In this way, the success rate of cross-platform rendering is greatly improved, the compatibility of rendering is increased, and stable operation of the rendering process can be ensured.

[0101] In summary, the method for cross-platform rendering of a three-dimensional scene provided in the embodiments of the present application acquires the API interface type and performance parameters of a target platform, converts user-unified custom rendering instructions into target rendering instructions that can run on the target platform according to the API interface type of the target platform, and simultaneously, to adapt to the performance requirements of different target platforms, also determines rendering parameters adaptively according to the performance data of the target platform, selects different rendering strategies on different platforms, so that the target rendering instructions can run on target platforms of various performances. Further, the present application can also adjust the rendering parameters in real time according to the changes in real-time load data of the target platform, so as to achieve the best balance between the quality and speed of three-dimensional image rendering. Through a unified architecture, the 3DGS scene rendering of different platforms is realized, and high-performance and high-quality 3DGS scene rendering is realized.

[0102] In some other embodiments, as shown in Figure 5 The embodiments of the present application also provide a three-dimensional scene rendering device for running the method for cross-platform rendering of a three-dimensional scene provided in the above embodiments. The three-dimensional scene rendering device can include a processor 402, a memory 406, a communication interface 404, and a communication bus 408.

[0103] The processor 402, the memory 406, and the communication interface 404 can communicate with each other through the communication bus 408. The memory 406 is used to store at least one program 410, and the program 410 causes the processor 402 to perform the steps related to the method for cross-platform rendering of a three-dimensional scene provided in the embodiments of the present application.

[0104] Specifically, the program 410 can include program code including computer executable instructions.

[0105] The processor 402 can be a central processing unit CPU, or an application specific integrated circuit ASIC, or one or more integrated circuits configured to implement one or more embodiments of the present application. The one or more processors included in the unmanned aerial vehicle direction determination device can be the same type of processors, such as one or more CPUs; or can be different types of processors, such as one or more CPUs and one or more ASICs.

[0106] Memory 406, for storing programs 410. Memory 406 can include both a high speed RAM memory and also a non-volatile memory, for example at least one disk memory.

[0107] The programs 410 can specifically be invoked by the processor 402 to cause the three-dimensional scene cross-platform rendering device to perform an embodiment of the three-dimensional scene cross-platform rendering method according to the embodiments of the present application, which will not be described herein again.

[0108] The embodiments of the present application also provide a computer readable storage medium, the storage medium storing executable instructions, the executable instructions causing the three-dimensional scene rendering device to perform the three-dimensional scene cross-platform rendering method according to any of the embodiments described above when the executable instructions are run on the three-dimensional scene rendering device.

[0109] The embodiments of the present application also provide a three-dimensional scene cross-platform rendering program, the three-dimensional scene cross-platform rendering program being used to perform the three-dimensional scene cross-platform rendering method according to the embodiments described above.

[0110] The algorithms and displays presented herein are not inherently related to any particular computer, virtual system, or other apparatus. Various general purpose systems can be used with these teachings, or with modifications thereto. The construction and form of these systems as well as other instrumentalities can be dependent on the requirements of the particular application. In addition, the embodiments of the present application are not described with reference to any particular programming language. It will be appreciated that a variety of programming languages can be used to implement the teachings of the application as described herein, and any references below to specific languages are provided for disclosure of enablement only.

[0111] In the description provided herein, numerous specific details are set forth. However, it is understood that embodiments of the application can be practiced without these specific details. In some instances, well-known methods, structures and techniques have not been described in detail in order to not obscure the understanding of this description.

[0112] Similarly, it is to be understood that the above description is intended to be illustrative only of the embodiments of the application, and is not intended to be limiting in any way. Thus, while various aspects of the present application have been described above, various modifications can be made without departing from the spirit and scope of the application, and the scope of the application should be determined from the appended claims.

[0113] Those skilled in the art can understand that the modules in the devices in the embodiments can be adaptively changed and arranged in one or more devices different from the embodiments. The modules or units or components in the embodiments can be combined into one module or unit or component, and can be divided into multiple sub-modules or sub-units or sub-components. Except that at least some of such features and / or processes or units are mutually exclusive, all combinations of all features disclosed in this specification (including the accompanying abstract and drawings) and all processes or units of any methods or apparatuses disclosed herein can be adopted. Unless explicitly stated otherwise, each feature disclosed in this specification (including the accompanying abstract and drawings) can be replaced by an alternative feature providing the same, equivalent or similar purpose.

[0114] It should be noted that the above-mentioned embodiments illustrate rather than limit the application, and that those skilled in the art will be able to design many alternative embodiments without departing from the scope of the application. The steps in the above-mentioned embodiments should not be understood as being limited to the order, unless otherwise specified.

Claims

1. A cross-platform rendering method for 3D scenes, characterized in that, include: Obtain the API interface type and performance data of the target platform; The custom rendering instruction is converted into a target rendering instruction based on the API interface type, wherein the type of the target rendering instruction is the API interface type of the target platform; The rendering parameters corresponding to the target rendering instruction are determined based on the performance data. The target 3D scene is rendered on the target platform according to the rendering parameters and the target rendering instructions; Obtain the real-time load data of the target platform, and adjust the rendering parameters based on the real-time load data; The step of rendering the target 3D scene on the target platform according to the rendering parameters and the target rendering instructions includes: The view frustum is determined based on the location of the rendering camera; Based on the view frustum, the data block nodes to be rendered and their corresponding LOD levels are selected; Determine the distance from the center point of the data block node to be rendered to the center point of the rendering camera; The rendering parameters and rendering time are adjusted according to the distance to the data block node to be rendered; When the position or orientation of the rendering camera changes, the data chunk nodes that need to be loaded and their corresponding LOD levels are recalculated.

2. The method according to claim 1, characterized in that, The step of converting custom rendering instructions into target rendering instructions based on the API interface type includes: According to the API interface type, the custom rendering instruction is converted into a first target rendering instruction and a second target rendering instruction, wherein the second target rendering instruction has greater compatibility than the first target rendering instruction; The step of rendering the target 3D scene on the target platform according to the rendering parameters and the target rendering instructions includes: The target 3D scene is rendered on the target platform according to the rendering parameters and the first target rendering instruction; If rendering of the target 3D scene fails, the process rolls back and renders the target 3D scene on the target platform according to the rendering parameters and the second target rendering instruction.

3. The method according to claim 2, characterized in that, Determining the rendering parameters corresponding to the target rendering instruction based on the performance data includes: Generate the performance level corresponding to the target platform based on the performance data; The rendering parameters corresponding to the target rendering instruction are determined based on the performance level and the preset rendering rules.

4. The method according to claim 1, characterized in that, The method further includes: Load the data block nodes located within the view frustum into the internal cache; When the position or orientation of the rendering camera changes, if the data block node within the view frustum is located in the internal cache, it is rendered directly; otherwise, it is loaded from external memory.

5. The method according to claim 1, characterized in that, The step of adjusting the rendering parameters based on the real-time load data includes: If the real-time load data is greater than the preset load threshold, the rendering parameters are adjusted.

6. The method according to claim 1, characterized in that, The step of adjusting the rendering parameters based on the real-time load data includes: Obtain historical load data; The performance trend of the target platform is determined by a preset load prediction algorithm based on the performance data, historical load data, and real-time load data. The rendering parameters are adjusted based on the performance trend.

7. A three-dimensional scene rendering device, characterized in that, include: The processor, memory, communication interface, and communication bus are provided, wherein the processor, memory, and communication interface communicate with each other via the communication bus. The memory is used to store at least one program that causes the processor to perform the operation of the cross-platform rendering method for three-dimensional scenes as described in any one of claims 1-6.

8. A computer-readable storage medium, characterized in that, The storage medium stores at least one program, which, when run on a 3D scene rendering device, causes the 3D scene rendering device to perform the operation of the 3D scene cross-platform rendering method as described in any one of claims 1-6.

Citation Information

Patent Citations

  • Cross-platform three-dimensional visualization engine construction system and method, terminal and storage medium

    CN112070871A

  • Three-dimensional scene rendering method and engine system

    CN115239863A