Three-dimensional scene cross-platform rendering method and device and computer storage medium

By acquiring the API interfaces and performance data of the target platform, adaptively converting rendering instructions and adjusting parameters, the cross-platform problem of 3DGS scene rendering was solved, achieving efficient and stable 3D scene rendering.

CN120833428AActive Publication Date: 2025-10-24SHENZHEN XGRIDS-INNOVATION CO LTD

Patent Information

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

AI Technical Summary

Technical Problem

Existing 3DGS scene rendering technology is not universal across different platforms, mainly due to differences in API interface types and hardware performance, which makes cross-platform rendering difficult. Existing engines cannot achieve high-quality and high-efficiency rendering.

Method used

By acquiring the API interface type and performance data of the target platform, custom rendering instructions are adaptively converted into target rendering instructions, and rendering parameters are adjusted according to platform performance. Strategies such as layered loading, streaming rendering, and progressive loading are adopted to adjust rendering parameters in real time to adapt to changes in platform load.

Benefits of technology

It achieves high-performance, high-quality rendering of 3DGS scenes on different platforms, reduces the cost of porting cross-platform rendering, and maintains stable frame rate and image quality on different hardware devices.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120833428A_ABST
    Figure CN120833428A_ABST
Patent Text Reader

Abstract

The invention relates to the field of three-dimensional scene rendering, in particular to a three-dimensional scene cross-platform rendering method and device and a computer storage medium. The method comprises the following steps: acquiring an API (Application Program Interface) type and a performance parameter of a target platform, and converting a unified user-defined rendering instruction of a user into a target rendering instruction capable of running on the target platform according to the API type of the target platform; meanwhile, in order to adapt to the performance requirements of different target platforms, rendering parameters are adaptively determined according to the performance data of the target platforms, and different rendering strategies are selected on different platforms, so that the target rendering instruction can be operated on the target platforms with various performances. Furthermore, the rendering parameters can be adjusted in real time according to the change of the real-time load data of the target platform, so that the quality and the speed of three-dimensional image rendering are optimally balanced.
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 proposal of 3DGS, it has fundamentally changed the paradigm of three-dimensional scene reconstruction and rendering, and has achieved large-scale availability. 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: obtaining API interface types and performance data of a target platform; 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; determining rendering parameters corresponding to the target rendering instruction according to the performance data; rendering a target three-dimensional scene on the target platform according to the rendering parameters and the target rendering instruction; obtaining real-time load data of the target platform, and adjusting the rendering parameters according to the real-time load data.

[0006] In some embodiments, preferably, the converting the custom rendering instruction into the target rendering instruction according to the API interface type comprises: 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; the rendering the target three-dimensional scene on the target platform according to the rendering parameter and the target rendering instruction comprises: rendering the target three-dimensional scene on the target platform according to the rendering parameter and the first target rendering instruction; if the rendering of the target three-dimensional scene fails, then rolling back and rendering the target three-dimensional scene on the target platform according to the rendering parameter and the second target rendering instruction.

[0007] In some embodiments, preferably, the determining the rendering parameter corresponding to the target rendering instruction according to the performance data comprises: generating a performance level corresponding to the target platform according to the performance data; determining the rendering parameter corresponding to the target rendering instruction according to the performance level and a preset rendering rule.

[0008] 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: determining a view frustum according to the position of a rendering camera; screening out data block nodes that need to be rendered according to the view frustum; 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; adjusting the rendering parameter and the rendering time of the data block nodes that need to be rendered according to the distance.

[0009] In some embodiments, preferably, the method further comprises: 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; when the position or orientation of the rendering camera changes, then recalculating the data block nodes that need to be loaded and the LOD levels corresponding thereto.

[0010] In some embodiments, preferably, the method further comprises: loading the data block nodes within the range of the view frustum into an internal cache; When the position or orientation of the rendering camera changes, if the data block node located in the frustum range is located in the internal cache, then it is directly rendered; otherwise, it is loaded from the external memory.

[0011] In some embodiments, preferably, the adjusting the rendering parameter according to the real-time load data comprises: If the real-time load data is greater than a preset load threshold, the rendering parameter is adjusted.

[0012] In some embodiments, preferably, the adjusting the rendering parameter according to the real-time load data comprises: obtaining historical load data; determining a performance trend of the target platform according to the performance data, the historical load data and the real-time load data through a preset load prediction algorithm; adjusting the rendering parameter according to the performance trend.

[0013] 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. 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.

[0014] 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 runs on the three-dimensional scene rendering device, so that the three-dimensional scene rendering device performs the operations of the three-dimensional scene cross-platform rendering method described in the above embodiments.

[0015] In summary, the embodiments of the present application obtain the API interface type and performance parameters of the target platform, convert the user's unified custom rendering instruction into a target rendering instruction that can run 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 parameter is 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 instruction can run on various performance target platforms. Further, the present application can also adjust the rendering parameter in real time according to the change of the 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.

[0016] The above description is only a summary of the technical solutions of the embodiments of the present application. In order to enable the technical means of the embodiments of the present application to be more clearly understood, the embodiments of the present application can be implemented according to the content of the description, and in order to enable the above and other purposes, characteristics and advantages of the embodiments of the present application to be more apparent, the following specific embodiments of the present application are described. BRIEF DESCRIPTION OF DRAWINGS

[0017] The accompanying drawings are only used to show the embodiments, and are not considered as limitations of the present application. Moreover, the same reference signs are used to represent the same components throughout the drawings. In the drawings: Figure 1 A technical architecture diagram of a three-dimensional scene cross-platform rendering method provided by the embodiments of the present application; Figure 2 A flowchart of a three-dimensional scene cross-platform rendering method provided by the embodiments of the present application; Figure 3 A hierarchical loading diagram provided by the embodiments of the present application; Figure 4 A hierarchical loading flowchart provided by the embodiments of the present application; Figure 5 A structural diagram of a three-dimensional scene rendering device provided by the embodiments of the present application. DETAILED DESCRIPTION

[0018] 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.

[0019] 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.

[0020] 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.

[0021] 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.

[0022] 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.

[0023] 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.

[0024] 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.

[0025] 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.

[0026] 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.

[0027] 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.

[0028] 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.

[0029] 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.

[0030] 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.

[0031] 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 to ensure stable frame rate and image quality on different performance devices.

[0032] 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.

[0033] The operation platform 300 is a target platform for the cross-platform adapter 200 to run, and 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 that can run three-dimensional scene reconstruction, and different platforms have different hardware resources, software resources, bandwidth resources, and API interfaces, and the like.

[0034] 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 porting cost of cross-platform 3D Gaussian rendering is significantly reduced without relying on external third-party engines or tools.

[0035] Figure 2 A flowchart of the three-dimensional scene cross-platform rendering method proposed in the embodiments of the present application is shown, which includes: Step S100: Obtain the API interface type and performance data of the target platform; The target platform is a hardware platform that will perform 3DGS data rendering. In order to obtain the API interface type of the target platform, at runtime, the supported graphics 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.

[0036] 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 graphics 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.

[0037] 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, and the like), and 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 accurately performed, the rendering failure can be avoided, and the compatibility of the rendering is improved.

[0038] 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 an API provided by a GPU manufacturer or a system API to obtain hardware performance data such as GPU model, memory size, GPU computing power, etc. For example, GPU information is obtained using a CUDA API, GPU renderer information is obtained using a glGetString function of OpenGL, etc.

[0039] Step S200: converting the custom rendering instruction into a target rendering instruction according to the API interface type of the target platform, wherein the target rendering instruction is of the API interface type of the target platform; 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 other operations.

[0040] 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.

[0041] Step S300: determining a rendering parameter corresponding to the target rendering instruction according to the performance data; 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 the 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 the performance parameter is greater than the threshold, the target platform is considered to be a high-performance platform. When the performance parameter is less than the threshold, the target platform is considered to be a low-performance platform.

[0042] At 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, quantization, high-compression data, and no spherical harmonic coefficients are used for rendering. Thus, the hardware optimization can be optimized on different target platforms to achieve rendering of different precision and quality, and even on a low-performance platform, a relatively high rendering frame rate can be achieved.

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

[0044] Step S400: rendering a target three-dimensional scene on the target platform according to the rendering parameters and the target rendering instruction; In order to adapt to the performance of the target platform and achieve the best rendering effect, layered loading, streaming rendering, and progressive loading can be used when rendering the target three-dimensional scene.

[0045] Specifically, as shown in FIG. 1, Figure 3 FIG. 2 shows a schematic diagram of layered loading. In the rendering process, the 3DGS scene data is divided into blocks and processed by LOD (Level of Detail) layers. The 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 a commonly used optimization technology 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 the rendering load and improve the rendering performance without affecting the visual effect.

[0046] Figure 4 FIG. 3 shows a flowchart of layered loading according to an embodiment of the present application, which includes the following steps: Step S401: determining a frustum according to the position of the rendering camera; Figure 3 In the embodiment, a schematic diagram of the frustum is shown. The position of the rendering camera is taken as the center point, and the frustum is diffused at a certain angle to determine the angle range of the rendering camera.

[0047] Step S402: screening data block nodes that need to be rendered according to the frustum; 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.

[0048] 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; Step S404: adjusting the rendering parameters and rendering time of the data block nodes to be rendered according to the distance; The distance from the center point of the data block node to the center point of the camera is calculated, and the node with a short distance is rendered with a high-precision and attribute-rich LOD layer, and the node with a long distance is rendered with a low-precision and attribute-poor LOD layer. The sorting time period of the data block node can also be determined according to the distance, further reducing the hardware performance consumption and improving the performance.

[0049] Further, the embodiment of the application can also use a streaming rendering method to render the target three-dimensional scene. In the streaming rendering method, the entire complete 3DGS scene is not loaded in the initial rendering, but only the data block that needs to be rendered is loaded according to the position and orientation of the rendering camera (viewpoint), that is, the data block node and the corresponding LOD level 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 node and the corresponding LOD level that need to be loaded are recalculated. By this method, the initial loading time and memory usage can be significantly reduced.

[0050] Further, the embodiment of the application can also use a progressive rendering method to render the target three-dimensional scene. In the progressive rendering method, the data block node within the frustum range is first loaded into the internal cache, and as the rendering camera moves or rotates, the system recalculates the data block and the corresponding LOD level that need to be loaded. If the corresponding data block is in the memory, it is directly rendered; if it is not in the memory, it is loaded from the external storage. By this method, the continuity and smoothness of rendering can be ensured.

[0051] It should be noted that the above hierarchical loading method, streaming rendering method and progressive rendering method can be used alone or in combination, and can also be used in combination with traditional rendering methods such as mesh and voxel. In different scenarios, different rendering methods are adaptively used to achieve the best balance between hardware resources and rendering effects, and to ensure the rendering effect and continuity.

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

[0053] 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, which leads to the decrease of memory utilization; or the network occupation changes in different running time, which brings the change of 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 the rendering failure may occur.

[0054] In the embodiment of the present application, in order to ensure the rendering effect, the three-dimensional scene rendering device will acquire 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.

[0055] Specifically, the preset load threshold value can be used, the user sets the load threshold value 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 value, it means that the target platform has the situation of excessive load, at this time, the rendering parameters need to be adjusted, the related rendering parameters can be adjusted to ensure the normal operation of the target platform. When the real-time load data is less than the second preset load threshold value, it means that the load of the target platform is small, at this time, the rendering parameters can be adjusted, and the related rendering parameters can be adjusted to achieve better rendering effect.

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

[0057] 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 through a preset load prediction algorithm; the rendering parameters are adjusted according to the performance trend. The load prediction algorithm can use 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.

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

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

[0060] Specifically, when converting the custom rendering instruction 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 and has the best rendering effect, and is the preferred target rendering instruction. However, it can not be compatible with early hardware versions, and DirectX 11 is a lower version of rendering instruction and has better compatibility. When DirectX 12 calling fails, rendering can be performed by downgrading to DirectX 11.

[0061] When rendering, the target three-dimensional scene is first rendered on the target platform according to the rendering parameter 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 parameter 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.

[0062] In summary, the method for cross-platform rendering of a three-dimensional scene proposed in the embodiments of the present application obtains the API interface type and performance parameters of a target platform, converts the user's 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; 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 of various performances. Further, the present application can also adjust the rendering parameters in real time according to the changes 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.

[0063] In some embodiments, as shown in FIG. 1, the present application also proposes a method for cross-platform rendering of a three-dimensional scene, which can include the following steps. Figure 5 In some embodiments, as shown in FIG. 1, the present application also proposes a method for cross-platform rendering of a three-dimensional scene, which can include the following steps.

[0064] 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 makes the processor 402 execute the steps related to the method for cross-platform rendering of a three-dimensional scene proposed in the embodiments of the present application.

[0065] Specifically, the program 410 can include program code, and the program code includes computer executable instructions.

[0066] 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 the 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 processor, such as one or more CPUs; or different types of processors, such as one or more CPUs and one or more ASICs.

[0067] The memory 406 is used to store the program 410. The memory 406 can include a high-speed RAM memory, and can also include a non-volatile memory, such as at least one disk memory.

[0068] The program 410 can be specifically invoked by the processor 402 to enable the three-dimensional scene cross-platform rendering device to perform an embodiment of the three-dimensional scene cross-platform rendering method proposed in the present application, which will not be repeated here.

[0069] The present application also provides a computer readable storage medium, which stores executable instructions. When the executable instructions are run on a three-dimensional scene rendering device, the three-dimensional scene rendering device performs the three-dimensional scene cross-platform rendering method provided in any of the above embodiments.

[0070] The present application also provides a three-dimensional scene cross-platform rendering program, which is used to perform the three-dimensional scene cross-platform rendering method provided in the above embodiments.

[0071] 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 programs in accordance with the teachings herein, or it can prove convenient to construct more specialized apparatus to perform the required method steps. The required structure for a variety of these systems will be apparent from the description above. In addition, the present application is not intended to be limited to any particular programming language. It will be appreciated that there are many programming languages that can be used to implement the teachings of the present application as described herein, and any such programming language can be used in this regard.

[0072] 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 avoid obscuring the understanding of this description.

[0073] Similarly, it is to be understood that the above description is intended to be illustrative and not restrictive. Many embodiments of the present application will be apparent to those of skill in the art upon reviewing the above description, and it is therefore contemplated that the claims should be construed in light of the full scope of the disclosure and the full scope of equivalents thereof.

[0074] Those skilled in the art can understand that the modules in the device 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 the specification (including the accompanying abstract and drawings) and all processes or units of any methods or apparatuses disclosed thus can be used. Unless explicitly stated otherwise, each feature disclosed in the specification (including the accompanying abstract and drawings) can be replaced by an alternative feature providing the same, equivalent or similar purpose.

[0075] It should be noted that the foregoing examples have been provided merely for the purpose of explanation and are in no way to be construed as limiting of the present application. While the application has been described with reference to preferred embodiments and illustrations, the preferred embodiments and illustrations provided herein are not the only ways in which the present application can be implemented. Those skilled in the art will recognize that changes can be made in the preferred embodiments and illustrations without departing from the scope of the present application. Steps in the above-described embodiments, other than those necessary for their performance, should not be construed as limiting of the order in which they are performed.

Claims

1. A method for cross-platform rendering of a three-dimensional scene, the method comprising: The method comprises the following steps: acquiring API interface type and performance data of a target platform; converting custom rendering instructions into target rendering instructions according to the API interface type, wherein the target rendering instructions are of the API interface type of the target platform; determining rendering parameters corresponding to the target rendering instructions according to the performance data; rendering a target three-dimensional scene on the target platform according to the rendering parameters and the target rendering instructions; acquiring real-time load data of the target platform and adjusting the rendering parameters according to the real-time load data.

2. The method of claim 1, wherein, The step of converting custom rendering instructions into target rendering instructions according to the API interface type comprises the following steps: converting custom rendering instructions into first target rendering instructions and second target rendering instructions according to the API interface type, wherein the compatibility of the second target rendering instructions is greater than that of the first target rendering instructions. The step of rendering a target three-dimensional scene on the target platform according to the rendering parameters and the target rendering instructions comprises the following steps: rendering a target three-dimensional scene on the target platform according to the rendering parameters and the first target rendering instructions; if the rendering of the target three-dimensional scene fails, then reverting and rendering the target three-dimensional scene on the target platform according to the rendering parameters and the second target rendering instructions.

3. The method of claim 2, wherein, The step of determining rendering parameters corresponding to the target rendering instructions according to the performance data comprises the following steps: generating a performance level corresponding to the target platform according to the performance data; determining rendering parameters corresponding to the target rendering instructions according to the performance level and a preset rendering rule.

4. The method of claim 1, wherein, The step of rendering a target three-dimensional scene on the target platform according to the rendering parameters and the target rendering instructions comprises the following steps: determining a view frustum according to the position of a rendering camera; screening data block nodes that need to be rendered according to the view frustum; 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; adjusting the rendering parameters and rendering time of the data block nodes that need to be rendered according to the distance.

5. The method of claim 4, wherein, The method further comprises the following steps: determining data block nodes that need to be loaded and their corresponding LOD levels according to the position and orientation of a rendering camera; when the position or orientation of the rendering camera changes, then recalculating the data block nodes that need to be loaded and their corresponding LOD levels.

6. The method of claim 5, wherein, The method further comprises the following steps: loading data block nodes within the range of the view frustum to an internal cache; when the position or orientation of the rendering camera changes, if the data block nodes within the range of the view frustum are in the internal cache, then directly rendering them; otherwise, loading them from an external memory.

7. The method of claim 1, wherein, The step of adjusting the rendering parameters according to the real-time load data comprises the following steps: if the real-time load data is greater than a preset load threshold, then adjusting the rendering parameters.

8. The method of claim 1, wherein, The step of adjusting the rendering parameters according to the real-time load data comprises the following steps: acquiring historical load data; determining a performance trend of the target platform according to the performance data, historical load data and real-time load data through a preset load prediction algorithm; adjusting the rendering parameters according to the performance trend.

9. A three-dimensional scene rendering device, characterized by comprise: 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; the memory is used to store at least one program, and the program causes the processor to execute the operations of the three-dimensional scene cross-platform rendering method in any one of claims 1-8.

10. A computer-readable storage medium, characterized in that, the storage medium has at least one program stored therein, and the program causes the three-dimensional scene rendering device to execute the operations of the three-dimensional scene cross-platform rendering method in any one of claims 1-8 when the program runs on the three-dimensional scene rendering device.

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

Cited By

  • Data processing method and game engine framework

    CN121534395A