Three-dimensional scene rendering method and device, equipment and medium

By decomposing the three-dimensional scene into multiple independent rendering layers and adopting a progressive loading strategy, the problems of three-dimensional scene rendering performance optimization and user experience improvement in the existing technology are solved, and more efficient rendering and improved user experience are achieved.

CN119478191APending Publication Date: 2025-02-18BAIDU (CHINA) CO LTD
View PDF 0 Cites 5 Cited by

Patent Information

Application Number
CN202411561322.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-11-01
Publication Date
2025-02-18

AI Technical Summary

Technical Problem

The existing three-dimensional scene rendering methods have challenges in facing complex scenes, performance optimization and user experience improvement, and are prone to frame rate drops or lags, affecting the user experience.

Method used

Decompose the entire three-dimensional scene into multiple independent rendering layers, use a progressive loading strategy to render multiple rendering layers in sequence, determine the rendering priority of each rendering layer, and flexibly allocate and execute rendering tasks according to the priority.

Benefits of technology

Through layered rendering and progressive loading strategies, initial loading time is significantly reduced, performance bottlenecks are avoided, and user experience is improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119478191A_ABST
    Figure CN119478191A_ABST
Patent Text Reader

Abstract

The invention provides a three-dimensional scene rendering method and device, equipment and a medium, relates to the field of computers, in particular to the technical field of page development, and can be used for application scenes such as generative search, intelligent document editing, intelligent assistants, virtual assistants and intelligent e-commerce. The method comprises the following steps: determining a plurality of elements in a to-be-rendered three-dimensional scene; based on a preset rule, putting the plurality of elements into a plurality of independent rendering layers; determining respective rendering priorities of the plurality of rendering layers; and based on the corresponding rendering priorities, sequentially rendering the plurality of rendering layers.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of computers, and in particular to the field of page development technology. It can be used in application scenarios such as generative search, intelligent document editing, intelligent assistants, virtual assistants, and intelligent e-commerce, and specifically relates to a three-dimensional scene rendering method, a three-dimensional scene rendering device, an electronic device, a computer-readable storage medium, and a computer program product. Background Art

[0002] With the development of Web technology, rendering of 3D content and virtual characters has become more and more common in front-end applications. However, traditional rendering methods still face many challenges in dealing with complex scenes, performance optimization, and improving user experience.

[0003] The methods described in this section are not necessarily methods that have been previously conceived or employed. Unless otherwise indicated, it should not be assumed that any method described in this section is considered to be prior art simply because it is included in this section. Similarly, unless otherwise indicated, the issues mentioned in this section should not be considered to have been recognized in any prior art. Summary of the invention

[0004] The present disclosure provides a 3D scene rendering method, a 3D scene rendering device, an electronic device, a computer-readable storage medium, and a computer program product.

[0005] According to one aspect of the present disclosure, a three-dimensional scene rendering method is provided, comprising: determining multiple elements in a three-dimensional scene to be rendered; placing the multiple elements into multiple independent rendering layers based on preset rules; determining the rendering priority of each of the multiple rendering layers; and rendering the multiple rendering layers in sequence based on the corresponding rendering priorities.

[0006] According to another aspect of the present disclosure, a three-dimensional scene rendering device is provided, including: a first determination unit, configured to determine multiple elements in a three-dimensional scene to be rendered; a layering unit, configured to place the multiple elements into multiple independent rendering layers based on preset rules; a second determination unit, configured to determine the rendering priority of each of the multiple rendering layers; and a rendering unit, configured to render the multiple rendering layers in sequence based on the corresponding rendering priorities.

[0007] According to another aspect of the present disclosure, an electronic device is provided, comprising: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to execute the above method.

[0008] According to another aspect of the present disclosure, a non-transitory computer-readable storage medium storing computer instructions is provided, wherein the computer instructions are used to enable a computer to execute the above method.

[0009] According to another aspect of the present disclosure, a computer program product is provided, comprising a computer program, wherein the computer program implements the above method when executed by a processor.

[0010] According to one or more embodiments of the present disclosure, the present disclosure decomposes the entire three-dimensional scene into multiple independent rendering layers, so that rendering tasks can be more flexibly allocated and executed, avoiding the performance bottleneck of loading and rendering the entire scene at one time; and by adopting a progressive loading strategy, multiple rendering layers are rendered in sequence, which significantly reduces the initial loading time and improves the user experience.

[0011] It should be understood that the content described in this section is not intended to identify the key or important features of the embodiments of the present disclosure, nor is it intended to limit the scope of the present disclosure. Other features of the present disclosure will become easily understood through the following description. BRIEF DESCRIPTION OF THE DRAWINGS

[0012] The accompanying drawings exemplarily illustrate the embodiments and constitute a part of the specification, and together with the text description of the specification, are used to explain the exemplary implementation of the embodiments. The embodiments shown are for illustrative purposes only and do not limit the scope of the claims. In all drawings, the same reference numerals refer to similar but not necessarily identical elements.

[0013] Figure 1 A schematic diagram showing an exemplary system in which the various methods described herein may be implemented according to an embodiment of the present disclosure;

[0014] Figure 2 A flowchart of a three-dimensional scene rendering method according to an embodiment of the present disclosure is shown;

[0015] Figure 3 A flowchart of a three-dimensional scene rendering method according to an embodiment of the present disclosure is shown;

[0016] Figure 4 A structural block diagram of a three-dimensional scene rendering device according to an embodiment of the present disclosure is shown; and

[0017] Figure 5 A structural block diagram of an exemplary electronic device that can be used to implement the embodiments of the present disclosure is shown. DETAILED DESCRIPTION

[0018] The following is a description of exemplary embodiments of the present disclosure in conjunction with the accompanying drawings, including various details of the embodiments of the present disclosure to facilitate understanding, which should be considered as merely exemplary. Therefore, it should be recognized by those of ordinary skill in the art that various changes and modifications may be made to the embodiments described herein without departing from the scope of the present disclosure. Similarly, for the sake of clarity and conciseness, the description of well-known functions and structures is omitted in the following description.

[0019] In the present disclosure, unless otherwise specified, the use of the terms "first", "second", etc. to describe various elements is not intended to limit the positional relationship, temporal relationship, or importance relationship of these elements, and such terms are only used to distinguish one element from another element. In some examples, the first element and the second element may refer to the same instance of the element, and in some cases, based on the description of the context, they may also refer to different instances.

[0020] The terms used in the description of various examples in this disclosure are only for the purpose of describing specific examples and are not intended to be limiting. Unless the context clearly indicates otherwise, if the number of elements is not specifically limited, the element can be one or more. In addition, the term "and / or" used in this disclosure covers any one of the listed items and all possible combinations.

[0021] In the related art, the existing three-dimensional scene rendering method is prone to frame rate drop or freeze, which seriously affects the user experience.

[0022] To solve the above problems, the present invention decomposes the entire 3D scene into multiple independent rendering layers, so that rendering tasks can be more flexibly allocated and executed, avoiding the performance bottleneck of loading and rendering the entire scene at one time; and by adopting a progressive loading strategy, multiple rendering layers are rendered in sequence, which significantly reduces the initial loading time and improves the user experience.

[0023] The embodiments of the present disclosure will be described in detail below with reference to the accompanying drawings.

[0024] Figure 1 FIG. 1 is a schematic diagram of an exemplary system 100 in which various methods and apparatuses described herein may be implemented according to an embodiment of the present disclosure. Figure 1 , the system 100 includes one or more client devices 101, 102, 103, 104, 105, and 106, a server 120, and one or more communication networks 110 coupling the one or more client devices to the server 120. The client devices 101, 102, 103, 104, 105, and 106 may be configured to execute one or more applications.

[0025] In an embodiment of the present disclosure, the server 120 may run one or more services or software applications that enable execution of the methods of the present disclosure.

[0026] In some embodiments, server 120 may also provide other services or software applications, which may include non-virtualized environments and virtualized environments. In some embodiments, these services may be provided as web-based services or cloud services, such as provided to users of client devices 101, 102, 103, 104, 105, and / or 106 under a software as a service (SaaS) model.

[0027] exist Figure 1 In the configuration shown, the server 120 may include one or more components that implement the functions performed by the server 120. These components may include software components, hardware components, or a combination thereof that can be executed by one or more processors. Users operating client devices 101, 102, 103, 104, 105, and / or 106 may in turn utilize one or more client applications to interact with the server 120 to utilize the services provided by these components. It should be understood that a variety of different system configurations are possible, which may differ from the system 100. Therefore, Figure 1 is one example of a system for implementing the various methods described herein and is not intended to be limiting.

[0028] The user can use client devices 101, 102, 103, 104, 105 and / or 106 to perform human-computer interaction. The client device can provide an interface that enables the user of the client device to interact with the client device. The client device can also output information to the user via the interface. Figure 1 Only six client devices are depicted, but one skilled in the art will appreciate that the present disclosure may support any number of client devices.

[0029] Client devices 101, 102, 103, 104, 105 and / or 106 may include various types of computer devices, such as portable handheld devices, general-purpose computers (such as personal computers and laptop computers), workstation computers, wearable devices, smart screen devices, self-service terminal devices, service robots, game systems, thin clients, various messaging devices, sensors or other sensing devices, etc. These computer devices may run various types and versions of software applications and operating systems, such as MICROSOFT Windows, APPLE iOS, UNIX-like operating systems, Linux or Linux-like operating systems (such as GOOGLE Chrome OS); or include various mobile operating systems, such as MICROSOFT Windows Mobile OS, iOS, Windows Phone, Android. Portable handheld devices may include cellular phones, smart phones, tablet computers, personal digital assistants (PDAs), etc. Wearable devices may include head-mounted displays (such as smart glasses) and other devices. Game systems may include various handheld game devices, Internet-enabled game devices, etc. Client devices are capable of executing various different applications, such as various Internet-related applications, communication applications (such as email applications), short message service (SMS) applications, and may use various communication protocols.

[0030] The network 110 may be any type of network known to those skilled in the art that may support data communications using any of a variety of available protocols, including but not limited to TCP / IP, SNA, IPX, etc. By way of example only, the one or more networks 110 may be a local area network (LAN), an Ethernet-based network, a token ring, a wide area network (WAN), the Internet, a virtual network, a virtual private network (VPN), an intranet, an extranet, a blockchain network, a public switched telephone network (PSTN), an infrared network, a wireless network (e.g., Bluetooth, WIFI), and / or any combination of these and / or other networks.

[0031] Server 120 may include one or more general purpose computers, dedicated server computers (e.g., PC (personal computer) servers, UNIX servers, mid-range servers), blade servers, mainframe computers, server clusters, or any other suitable arrangement and / or combination. Server 120 may include one or more virtual machines running virtual operating systems, or other computing architectures involving virtualization (e.g., one or more flexible pools of logical storage devices that may be virtualized to maintain a server's virtual storage device). In various embodiments, server 120 may run one or more services or software applications that provide the functionality described below.

[0032] The computing units in the server 120 may run one or more operating systems including any of the above operating systems and any commercially available server operating systems. The server 120 may also run any of a variety of additional server applications and / or middle-tier applications, including HTTP servers, FTP servers, CGI servers, JAVA servers, database servers, etc.

[0033] In some implementations, server 120 may include one or more applications to analyze and consolidate data feeds and / or event updates received from users of client devices 101, 102, 103, 104, 105, and / or 106. Server 120 may also include one or more applications to display data feeds and / or real-time events via one or more display devices of client devices 101, 102, 103, 104, 105, and / or 106.

[0034] In some embodiments, the server 120 may be a server of a distributed system, or a server combined with a blockchain. The server 120 may also be a cloud server, or an intelligent cloud computing server or intelligent cloud host with artificial intelligence technology. A cloud server is a host product in a cloud computing service system to solve the defects of difficult management and weak business scalability in traditional physical hosts and virtual private servers (VPS) services.

[0035] The system 100 may also include one or more databases 130. In some embodiments, these databases may be used to store data and other information. For example, one or more of the databases 130 may be used to store information such as audio files and video files. The databases 130 may reside in various locations. For example, the database used by the server 120 may be local to the server 120, or may be remote from the server 120 and may communicate with the server 120 via a network-based or dedicated connection. The databases 130 may be of different types. In some embodiments, the databases used by the server 120 may be, for example, relational databases. One or more of these databases may store, update, and retrieve data to and from the databases in response to commands.

[0036] In some embodiments, one or more of the databases 130 may also be used by applications to store application data. The databases used by the applications may be different types of databases, such as a key-value store, an object store, or a conventional store backed by a file system.

[0037] Figure 1The system 100 may be configured and operated in various ways to enable the application of various methods and apparatuses described in the present disclosure.

[0038] According to one aspect of the present disclosure, a three-dimensional scene rendering method is provided. Figure 2 As shown, the method includes: step S201, determining multiple elements in a three-dimensional scene to be rendered; step S202, based on a preset rule, placing the multiple elements into multiple independent rendering layers; step S203, determining the rendering priority of each of the multiple rendering layers; and step S204, rendering the multiple rendering layers in sequence based on the corresponding rendering priorities.

[0039] Therefore, by decomposing the entire 3D scene into multiple independent rendering layers, rendering tasks can be allocated and executed more flexibly, avoiding the performance bottleneck of loading and rendering the entire scene at one time; and by adopting a progressive loading strategy and rendering multiple rendering layers in sequence, the initial loading time is significantly reduced and the user experience is improved.

[0040] The method and device provided by the present disclosure can be used to display a three-dimensional scene on a web page in a browser.

[0041] In step S201, multiple elements in a 3D scene to be rendered may be determined. The 3D scene may include various elements, such as dynamic characters or digital humans, background elements such as sky boxes, distant mountains or background buildings, foreground elements such as trees and near-field decorations, special effect elements such as particle effects and lighting, user interface elements, and the like.

[0042] In step S202, multiple elements can be placed into multiple independent rendering layers based on preset rules. These independent rendering layers each contain one or more elements with similar features or similar rendering logic. In subsequent steps, these rendering layers are rendered in sequence based on different rendering priorities, and multiple elements in the same rendering layer are rendered simultaneously. This hierarchical management allows rendering tasks to be more flexibly allocated and executed, avoiding the performance bottleneck of loading and rendering the entire scene at one time.

[0043] Preset rules may indicate layering according to the functions of the elements.

[0044] According to some embodiments, the preset rules may include: placing elements corresponding to dynamic characters or digital humans into a character layer. The character layer may have a high rendering priority. The elements in the character layer are the core content of the three-dimensional scene and the focus of the user. Rendering the elements in the character layer with a high rendering priority enables the user to see the key content in the scene first, thereby improving the user experience. In addition to dynamic characters and digital humans, player characters, three-dimensional character models, and other similar elements may be placed in the character layer, without limitation herein.

[0045] According to some embodiments, the preset rules may include: placing static scene elements into a static layer. The static layer may have a low rendering priority. Elements in the static layer are auxiliary content in the three-dimensional scene and may be rendered later in comparison. The static layer may be further divided into a foreground layer and a background layer.

[0046] In some embodiments, the background layer may include static scene elements far away from the camera, such as a skybox, distant mountains, or background buildings. In the case of limited resources, these elements may use low-resolution models and textures. The foreground layer may include environmental elements (static scene elements) closer to the user's perspective, such as trees, near-view decorations, etc. These elements require higher resolution and details to enhance immersion.

[0047] In some embodiments, it can be determined whether to place the static scene element in the background layer or the foreground layer according to the distance between the static scene element and the camera. For example, the distance between the static scene element and the camera can be compared with a preset distance, and in response to determining that the distance between the static scene element and the camera is greater than the preset distance, the static scene element is placed in the background layer; in response to determining that the distance between the static scene element and the camera is less than the preset distance, the static scene element is placed in the foreground layer.

[0048] In step S203, the rendering priorities of the plurality of rendering layers are determined.

[0049] In some embodiments, a progressive loading strategy can be used to prioritize loading and rendering the layer that the user cares about most (such as the character layer), while the rest is progressively loaded in the background. Users can see core objects such as dynamic characters or digital humans first before waiting for the complete loading. The progressive loading strategy significantly reduces the initial loading time and improves the user experience.

[0050] According to some embodiments, the preset rules may include: placing user-interactive elements into an interactive layer. The interactive layer may have a high rendering priority. In some embodiments, the interactive layer may include user-interactive elements (such as props, buttons, doors, etc.). The rendering quality of these elements is high, and their status needs to be updated in real time. By giving priority to rendering the interactive layer, users can start interacting with the three-dimensional scene more quickly to enter the application experience, improve the interactive response speed, and reduce the user's waiting time.

[0051] In some embodiments, the preset rules may include: placing user interface (UI) elements into the user interface (UI) layer. The UI layer may have a high rendering priority. The UI elements in the UI layer do not directly affect the 3D scene rendering, but will be superimposed on the scene to provide user information. By rendering the UI layer first, the user can obtain relevant information about the three-dimensional scene through the user interface more quickly, and can complete the interaction with the three-dimensional scene through the user interface, and deepen the application experience more quickly.

[0052] In some embodiments, the preset rules may include: placing special effect elements into special effect layers. Special effect elements may include particle effects, lighting, smoke, fire, etc. Special effect layers may have low rendering priority. Special effect elements are separated into a rendering layer so as to adjust the rendering strategy according to performance requirements, as will be described below.

[0053] In step S204, multiple rendering layers may be rendered in sequence according to the rendering priorities corresponding to the multiple rendering layers. In some embodiments, rendering layers with high rendering priorities are loaded and rendered first, and the remaining layers are loaded progressively in the background in sequence.

[0054] In some exemplary embodiments, the multiple rendering layers only include a character layer and a static layer, and the character layer may be rendered first, and the static layer may be progressively loaded in the background. In embodiments where the multiple rendering layers also include an interactive layer and / or a UI layer, the interactive layer and / or the UI layer may be rendered first together with the character layer, or the interactive layer and / or the UI layer may be progressively loaded in the background when the character layer is rendered, and rendered first before the static layer.

[0055] According to some embodiments, common rendering layers or resources (elements) may be intelligently cached, and the caches may be reused where appropriate to reduce repeated loading and rendering. Step S204, based on corresponding rendering priorities, sequentially rendering multiple rendering layers may include: in response to determining that a target element to be rendered is not cached, determining a cache range of the target element based on the rendering layer where the target element is located, and caching the target element.

[0056] Since different types of resources (elements) have different usage frequencies in different scenarios (such as switching roles, switching scenes, etc.), the cache range of the target element to be rendered can be determined according to the rendering layer where the target element is located, so that the cache resources can be used more efficiently and resource waste can be avoided.

[0057] According to some embodiments, the cache scope of the elements in the static layer may be a cross-scene global cache, and the cache scope of the elements in the character layer may be a scene where the character corresponding to the element is located.

[0058] Elements in the static layer may appear multiple times in different 3D scenes, so by setting their cache range as a cross-scene global cache, they can be quickly loaded in different 3D scenes. Elements in the character layer usually only appear in the same scene, so setting their cache range as the scene where the character corresponding to the element is located allows them to be quickly loaded when the character appears again in the scene, and will not occupy cached resources for a long time after switching scenes.

[0059] In some embodiments, when the user switches scenes or loads different rendering layers, the system checks whether the corresponding resources already exist in the current cache. For the global cache, it can be directly reused in different scenes to avoid repeated loading. For example, shared textures in the scene (such as sky boxes) can be obtained directly from the global cache. For the scene cache, if the currently cached scene resources are the same as the new scene resources, they are reused directly; if they are different, they are partially cleaned up and new scene resources are loaded. For the hierarchical cache, the resources of the current rendering layer can be reused when the user's perspective changes slightly or switches to a sub-scene in a short time. For example, when switching to different sub-UI interfaces, reuse the basic UI textures and materials.

[0060] According to some embodiments, step S204, based on the corresponding rendering priorities, sequentially rendering multiple rendering layers may include: in response to determining that the target element to be rendered has been cached and a preset condition is satisfied, updating the cache of the target element. The preset condition may include at least one of the following: camera perspective movement, material change, and a preset time period from the last cache.

[0061] In some embodiments, for dynamic content (such as the material of interactive objects or content generated by real-time rendering), the module will update the cache at a specific time or state change. For dynamic material updates, such as when the character skin changes, only the difference part of the material is updated without reloading the entire model. For real-time rendering result updates, the background layer's distant view cache can be updated when the camera perspective moves, without re-rendering the entire distant view for each frame.

[0062] According to some embodiments, step S204, based on the corresponding rendering priorities, sequentially rendering multiple rendering layers may include: determining whether to update the cache of special effect elements based on the frequency of interaction between the user and the interactive layer. In this way, the pressure of special effect loading can be further reduced, rendering efficiency can be improved, and user experience can be enhanced.

[0063] In an exemplary embodiment, in response to determining that the interaction frequency is greater than a first preset interaction frequency, it may be determined to update the cache of the special effect element. The preset interaction frequency may be set according to demand.

[0064] According to some embodiments, further means may be used to optimize performance and energy consumption. Step S204, based on corresponding rendering priorities, sequentially rendering multiple rendering layers may include: determining a rendering frame rate based on scene complexity and interaction frequency.

[0065] In some embodiments, the frame rate can be adjusted according to scene complexity and user interaction. In response to determining that the interaction frequency is greater than the second preset interaction frequency, the frame rate is determined to be the first preset frame rate; in response to determining that the interaction frequency is less than the second preset interaction frequency, the frame rate is determined to be the second preset frame rate. The first preset frame rate may be greater than the second preset frame rate.

[0066] In an exemplary embodiment, the frame rate is reduced to 30 FPS or lower in a static scene, and temporarily restored to 60 FPS in a dynamic interactive scene. It is also possible to pause rendering updates when there is no obvious change in the scene, and resume updates only when the user interacts or the perspective moves.

[0067] According to some embodiments, step S204, based on corresponding rendering priorities, sequentially rendering multiple rendering layers may include: saving the rendering results of partial elements or the whole of the three-dimensional scene as a static image, and in response to determining that the camera perspective has not moved, pausing the rendering of partial elements or the whole and directly displaying the static image.

[0068] In some embodiments, for backgrounds, decorations, etc. that do not need to be updated frequently, static images are used for alternative rendering. For example, a complete background image is rendered first, and a static screenshot is directly displayed when the device is stationary, reducing the overhead of real-time rendering.

[0069] In some embodiments, a layered rendering and local update strategy may be used, that is, only the portion involved in the user operation (such as interactive buttons, characters) is updated instead of the entire scene, and the unchanged portion is replaced with a previously rendered static image.

[0070] In some embodiments, for scenes with low interaction requirements, a static replacement strategy for the entire scene can be adopted. When the user's perspective remains static, the entire 3D scene can be rendered once and the result can be saved as a static image. When the user does not operate or the perspective remains unchanged, the static image is directly displayed and the real-time rendering is suspended. For example, after the user enters a static scene without interacting, the system will capture the current frame, temporarily stop the 3D real-time rendering, and only display the static image of the frame until the user interacts again, and then resume the real-time rendering.

[0071] In some embodiments, for some high-energy-consuming dynamic objects in the scene (such as particle effects, dynamic lighting), static images can be used instead, especially when these objects are far away or inconspicuous. In an exemplary embodiment, for some distant background lighting effects, static shadows or reflection maps can be generated during the initial rendering, and the static images can be directly reused in subsequent scene updates; for some scene effects (such as smoke, fire, reflections), images rendered once can be used as replacements, especially when the overall interaction and visual effects are not affected.

[0072] The above means may be used in combination. In some embodiments, an energy consumption optimization mode may be set for a mobile device, including the above optimization means. The three-dimensional scene rendering method may include: in response to determining that the user device is a mobile device, starting the energy consumption optimization mode, the energy consumption optimization mode including at least one of the above means.

[0073] According to some embodiments, Figure 3 As shown, the 3D scene rendering method further includes: step S305, obtaining the performance parameters and network conditions of the user device; and step S306, dynamically adjusting the detail levels of the multiple rendering layers based on the performance parameters and network conditions. It can be understood that the operations and effects of steps S301 to S304 can refer to the above description of Figure 2 The description of steps S201 to S204 in the above description will not be repeated here. By dynamically adjusting the rendering effect, the best rendering effect can be achieved on various devices, avoiding inconsistent experience due to differences in device performance. In addition, by dynamically adjusting the detail level of each rendering layer, the performance and effect can be precisely controlled, further improving the user experience.

[0074] In some embodiments, the level of detail of each rendering layer is dynamically adjusted based on the performance parameters of the user device (such as GPU capabilities, memory size) and network conditions (such as bandwidth, latency). Simplified materials and low-polygon models are used on low-performance devices, while high-precision details are rendered on high-performance devices.

[0075] In some embodiments, the geometric detail (model polygon count), i.e. the number and complexity of the polygons of the model, can be adjusted. For devices of different performance levels:

[0076] High: Full model with lots of polygons and details, suitable for high-end devices.

[0077] Medium: Simplifies the model, reduces details but maintains shape accuracy, suitable for mid-range devices.

[0078] Low: A further simplified low-polygon model that retains only the basic structure, suitable for low-end devices.

[0079] In some embodiments, the texture resolution, i.e., the clarity of the texture image of the model surface material, can be adjusted. For devices of different performance levels:

[0080] High: High-resolution textures (such as 4K), suitable for close viewing and high-end devices.

[0081] Medium: Medium resolution textures (e.g. 2K), with reduced texture detail, suitable for mid-range devices.

[0082] Low: Low-resolution textures (e.g. 1K), suitable for low-end devices and situations with poor network bandwidth.

[0083] In some embodiments, the shadow effect can be adjusted, for example, including the type and resolution of the shadow. On low-performance devices, the shadow quality can be reduced or even turned off completely. For devices of different performance levels:

[0084] High: High-resolution real-time shadows and global illumination, suitable for high-end devices.

[0085] Medium: Medium resolution shadows with reduced shadow details, suitable for mid-range devices.

[0086] Low: Low-resolution shadows or turn off real-time shadows, suitable for low-end devices.

[0087] In some embodiments, lighting and reflections can be adjusted: ambient light, dynamic lighting, reflections, etc. Low-performance devices can use simplified lighting calculations to reduce the amount and accuracy of real-time lighting. For devices of different performance levels:

[0088] High: Fully dynamic lighting, multiple light sources, real-time reflections, suitable for high-end devices.

[0089] Medium: Simplified lighting, fewer light sources, uses static reflection maps, suitable for mid-end devices.

[0090] Low: Turns off complex lighting effects, uses flat lighting and static lightmaps, suitable for low-end devices.

[0091] In some embodiments, special effects (such as particles, fog, and light effects) can be adjusted. Special effects such as particle effects and fog take up a lot of resources. The intensity of special effects, the number of particles, etc. can be adjusted according to the performance of the device. For devices of different performance levels:

[0092] High: Full particle count and effects, suitable for high-end devices.

[0093] Medium: Reduces the number of particles and special effect details, suitable for mid-range devices.

[0094] Low: Simplifies particle effects or turns them off completely, suitable for low-end devices.

[0095] In some embodiments, post-processing effects (such as depth of field, anti-aliasing, motion blur) can be adjusted. Higher performance devices can render these post-processing effects, while lower performance devices can turn them off or simplify them. For devices of different performance levels:

[0096] High: Enables depth of field, anti-aliasing, motion blur, etc., suitable for high-end devices.

[0097] Medium: Enables some post-processing effects, such as mild anti-aliasing, suitable for mid-range devices.

[0098] Low: turns off all post-processing effects, suitable for low-end devices.

[0099] In some embodiments, the performance parameters and network conditions of the user device corresponding to different performance levels can be pre-set, and before rendering the three-dimensional scene, the performance level (for example, high, medium, low) is determined based on the performance parameters and network conditions of the current user device, and then the rendering is completed according to the rendering details / rendering method corresponding to the performance level.

[0100] In some embodiments, the performance parameter and network condition of the user equipment may include at least one of the following:

[0101] Graphics Processing Unit (GPU) performance. For example, WebGL can be used to obtain the GPU manufacturer and model to infer the graphics processing capabilities of the device.

[0102] Memory, for example, you can use navigator.deviceMemory to detect the memory capacity of the device and decide whether to enable high-resolution textures.

[0103] Frame rate, for example, you can monitor the current rendering frame rate (Frames Per Second, FPS) in real time, and dynamically reduce the rendering details if the frame rate is low.

[0104] Processor performance, for example, the number of cores and main frequency of the central processing unit (CPU) can be used to infer the processing power and decide whether to enable complex rendering effects.

[0105] Bandwidth detection, for example, can detect bandwidth by calculating resource loading speed, such as low-bandwidth devices can choose low-resolution textures.

[0106] Delay detection, for example, can detect data transmission delays. If the delay is high, a simple rendering effect is selected to reduce the interactive response time.

[0107] Network type. For example, you can use navigator.connection.effectiveType to detect the network type (such as 4G, 5G, Wi-Fi) and select an appropriate resource loading strategy.

[0108] According to another aspect of the present disclosure, a three-dimensional scene rendering device is provided. Figure 4 As shown, the device 400 includes: a first determination unit 410, configured to determine multiple elements in a three-dimensional scene to be rendered; a layering unit 420, configured to place the multiple elements into multiple independent rendering layers based on preset rules; a second determination unit 430, configured to determine the rendering priority of each of the multiple rendering layers; and a rendering unit 440, configured to render the multiple rendering layers in sequence based on the corresponding rendering priorities.

[0109] It is understood that the operations and effects of the units 410 to 440 in the device 400 can be referred to as Figure 2 Steps S201 to S204 in the above are not described in detail here.

[0110] According to some embodiments, the preset rules may include: placing elements corresponding to dynamic characters or digital humans into a character layer, and the character layer has a high rendering priority.

[0111] According to some embodiments, the preset rule may include: placing static scene elements into a static layer, the static layer having a low rendering priority.

[0112] According to some embodiments, the rendering unit may include: a cache creation subunit configured to, in response to determining that a target element to be rendered is not cached, determine a cache range of the target element based on a rendering layer where the target element is located, and cache the target element.

[0113] According to some embodiments, the cache scope of the elements in the static layer may be a cross-scene global cache, and the cache scope of the elements in the character layer may be a scene where the character corresponding to the element is located.

[0114] According to some embodiments, the rendering unit may include: a first cache update subunit configured to update the cache of the target element in response to determining that the target element to be rendered has been cached and a preset condition is satisfied. The preset condition may include at least one of the following: camera perspective movement, material change, and a preset time period from the last cache.

[0115] According to some embodiments, the preset rules may include: placing user-interactive elements into an interactive layer, which has a high rendering priority; and placing special effect elements into a special effect layer, which has a low rendering priority.

[0116] According to some embodiments, the rendering unit may include: a second cache updating subunit configured to determine whether to update the cache of the special effect element based on the frequency of interaction between the user and the interaction layer.

[0117] According to some embodiments, the rendering unit may include: a frame rate determination subunit configured to determine the rendering frame rate based on scene complexity and interaction frequency.

[0118] According to some embodiments, the rendering unit may include: a static image sub-unit, configured to save the rendering results of partial elements or the whole of the three-dimensional scene as a static image, and in response to determining that the camera perspective has not moved, suspend the rendering of partial elements or the whole and directly display the static image.

[0119] According to some embodiments, the three-dimensional scene rendering device may further include: an acquisition unit configured to acquire performance parameters and network conditions of a user device; and a dynamic adjustment unit configured to dynamically adjust the detail levels of each of the multiple rendering layers based on the performance parameters and network conditions.

[0120] In the technical solution of the present disclosure, the collection, storage, use, processing, transmission, provision and disclosure of user personal information involved are in compliance with the provisions of relevant laws and regulations and do not violate public order and good morals.

[0121] According to an embodiment of the present disclosure, an electronic device, a readable storage medium and a computer program product are also provided.

[0122] refer to Figure 5 , a block diagram of an electronic device 700 that can be used as a server or client of the present disclosure will now be described, which is an example of a hardware device that can be applied to various aspects of the present disclosure. The electronic device is intended to represent various forms of digital electronic computer devices, such as laptop computers, desktop computers, workbenches, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. The electronic device can also represent various forms of mobile devices, such as personal digital processing, cellular phones, smart phones, wearable devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely examples and are not intended to limit the implementation of the present disclosure described and / or required herein.

[0123] like Figure 5As shown, the electronic device 500 includes a computing unit 501, which can perform various appropriate actions and processes according to a computer program stored in a read-only memory (ROM) 502 or a computer program loaded from a storage unit 508 into a random access memory (RAM) 503. In the RAM 503, various programs and data required for the operation of the electronic device 500 can also be stored. The computing unit 501, the ROM 502, and the RAM 503 are connected to each other via a bus 504. An input / output (I / O) interface 505 is also connected to the bus 504.

[0124] Multiple components in the electronic device 500 are connected to the I / O interface 505, including: an input unit 506, an output unit 507, a storage unit 508, and a communication unit 509. The input unit 506 can be any type of device that can input information to the electronic device 500. The input unit 506 can receive input digital or character information and generate key signal input related to user settings and / or function control of the electronic device, and can include but is not limited to a mouse, a keyboard, a touch screen, a track pad, a track ball, a joystick, a microphone, and / or a remote controller. The output unit 507 can be any type of device that can present information, and can include but is not limited to a display, a speaker, a video / audio output terminal, a vibrator, and / or a printer. The storage unit 508 can include but is not limited to a disk, an optical disk. The communication unit 509 allows the electronic device 500 to exchange information / data with other devices through a computer network such as the Internet and / or various telecommunication networks, and can include but is not limited to a modem, a network card, an infrared communication device, a wireless communication transceiver, and / or a chipset, such as a Bluetooth device, an 802.11 device, a WiFi device, a WiMax device, a cellular communication device, and / or the like.

[0125] The computing unit 501 may be a variety of general and / or special processing components with processing and computing capabilities. Some examples of the computing unit 501 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various dedicated artificial intelligence (AI) computing chips, various computing units running machine learning model algorithms, digital signal processors (DSPs), and any appropriate processors, controllers, microcontrollers, etc. The computing unit 501 performs the various methods, processes, and / or processes described above. For example, in some embodiments, these methods, processes, and / or processes may be implemented as computer software programs, which are tangibly contained in a machine-readable medium, such as a storage unit 508. In some embodiments, part or all of the computer program may be loaded and / or installed on the electronic device 500 via ROM 502 and / or communication unit 509. When the computer program is loaded into RAM 503 and executed by the computing unit 501, one or more steps of the methods, processes, and / or processes described above may be performed. Alternatively, in other embodiments, the computing unit 501 may be configured to perform these methods, processes, and / or processes in any other appropriate manner (e.g., by means of firmware).

[0126] Various implementations of the systems and techniques described above herein can be implemented in digital electronic circuit systems, integrated circuit systems, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), systems on chips (SOCs), complex programmable logic devices (CPLDs), computer hardware, firmware, software, and / or combinations thereof. These various implementations can include: being implemented in one or more computer programs that can be executed and / or interpreted on a programmable system including at least one programmable processor, which can be a special purpose or general purpose programmable processor that can receive data and instructions from a storage system, at least one input device, and at least one output device, and transmit data and instructions to the storage system, the at least one input device, and the at least one output device.

[0127] The program code for implementing the method of the present disclosure may be written in any combination of one or more programming languages. These program codes may be provided to a processor or controller of a general-purpose computer, a special-purpose computer, or other programmable data processing device, so that the program code, when executed by the processor or controller, enables the functions / operations specified in the flow chart and / or block diagram to be implemented. The program code may be executed entirely on the machine, partially on the machine, partially on the machine and partially on a remote machine as a stand-alone software package, or entirely on a remote machine or server.

[0128] In the context of the present disclosure, a machine-readable medium may be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, device, or equipment. A machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or equipment, or any suitable combination of the foregoing. A more specific example of a machine-readable storage medium may include an electrical connection based on one or more lines, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.

[0129] To provide interaction with a user, the systems and techniques described herein can be implemented on a computer having: a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user; and a keyboard and pointing device (e.g., a mouse or trackball) through which the user can provide input to the computer. Other types of devices can also be used to provide interaction with the user; for example, the feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form (including acoustic input, voice input, or tactile input).

[0130] The systems and techniques described herein can be implemented in a computing system that includes backend components (e.g., as a data server), or a computing system that includes middleware components (e.g., an application server), or a computing system that includes frontend components (e.g., a user computer with a graphical user interface or a web browser through which a user can interact with implementations of the systems and techniques described herein), or a computing system that includes any combination of such backend components, middleware components, or frontend components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include: a local area network (LAN), a wide area network (WAN), the Internet, and a blockchain network.

[0131] A computer system may include a client and a server. The client and the server are generally remote from each other and usually interact through a communication network. The relationship of client and server is generated by computer programs running on respective computers and having a client-server relationship with each other. The server may be a cloud server, a server of a distributed system, or a server combined with a blockchain.

[0132] It should be understood that the various forms of processes shown above can be used to reorder, add or delete steps. For example, the steps described in this disclosure can be performed in parallel, sequentially or in different orders, as long as the desired results of the technical solutions disclosed in this disclosure can be achieved, and this document does not limit this.

[0133] Although the embodiments or examples of the present disclosure have been described with reference to the accompanying drawings, it should be understood that the above-mentioned methods, systems and devices are merely exemplary embodiments or examples, and the scope of the present invention is not limited by these embodiments or examples, but only by the claims after authorization and their equivalent scope. Various elements in the embodiments or examples can be omitted or replaced by their equivalent elements. In addition, each step can be performed in an order different from that described in the present disclosure. Further, the various elements in the embodiments or examples can be combined in various ways. It is important that with the evolution of technology, many elements described herein can be replaced by equivalent elements that appear after the present disclosure.

Claims

1. A three-dimensional scene rendering method, comprising: Determining a plurality of elements in a three-dimensional scene to be rendered; Based on a preset rule, the multiple elements are placed into multiple independent rendering layers; Determining a rendering priority of each of the plurality of rendering layers; as well as The multiple rendering layers are rendered in sequence based on corresponding rendering priorities.

2. The method according to claim 1, wherein: The preset rules include: Elements corresponding to dynamic characters or digital humans are put into a character layer, which has a high rendering priority.

3. The method according to claim 2, wherein: The preset rules include: Put static scene elements into static layers, which have a low rendering priority.

4. The method according to claim 3, wherein: Based on the corresponding rendering priorities, rendering the multiple rendering layers in sequence includes: In response to determining that the target element to be rendered is not cached, a cache range of the target element is determined based on the rendering layer where the target element is located, and the target element is cached.

5. The method according to claim 4, wherein: The cache scope of the elements in the static layer is a cross-scene global cache, and the cache scope of the elements in the character layer is the scene where the character corresponding to the element is located.

6. The method according to claim 4, wherein: Based on the corresponding rendering priorities, rendering the multiple rendering layers in sequence includes: In response to determining that the target element to be rendered has been cached and a preset condition is satisfied, updating the cache of the target element, The preset condition includes at least one of the following: camera angle movement, material change, and a preset time period from the last cache.

7. The method according to claim 4, wherein: The preset rules include: Putting user-interactable elements into an interactive layer, which has a high rendering priority; and Put the special effect elements into the special effect layer, which has a low rendering priority.

8. The method according to claim 7, wherein: Based on the corresponding rendering priorities, rendering the multiple rendering layers in sequence includes: Based on the frequency of interaction between the user and the interaction layer, it is determined whether to update the cache of the special effect element.

9. The method according to claim 7, wherein: Based on the corresponding rendering priorities, rendering the multiple rendering layers in sequence includes: The rendering frame rate is determined based on the scene complexity and the interaction frequency.

10. The method according to any one of claims 1 to 9, wherein: Based on the corresponding rendering priorities, rendering the multiple rendering layers in sequence includes: The rendering results of partial elements or the whole of the three-dimensional scene are saved as a static image, and in response to determining that the camera viewing angle has not moved, the rendering of the partial elements or the whole is suspended and the static image is directly displayed.

11. The method according to any one of claims 1 to 9, further comprising: Obtain performance parameters and network conditions of user equipment; as well as Based on the performance parameter and the network condition, the detail level of each of the plurality of rendering layers is dynamically adjusted.

12. A three-dimensional scene rendering device, comprising: A first determining unit is configured to determine a plurality of elements in a three-dimensional scene to be rendered; A layering unit is configured to place the plurality of elements into a plurality of independent rendering layers based on a preset rule; A second determining unit is configured to determine a rendering priority of each of the plurality of rendering layers; as well as The rendering unit is configured to render the multiple rendering layers in sequence based on corresponding rendering priorities.

13. The device according to claim 12, wherein: The preset rules include: Elements corresponding to dynamic characters or digital humans are put into a character layer, which has a high rendering priority.

14. The device according to claim 13, wherein: The preset rules include: Put static scene elements into static layers, which have a low rendering priority.

15. The device according to claim 14, wherein: The rendering unit comprises: The cache creation subunit is configured to, in response to determining that a target element to be rendered is not cached, determine a cache range of the target element based on a rendering layer where the target element is located, and cache the target element.

16. The device according to claim 15, wherein: The cache scope of the elements in the static layer is a cross-scene global cache, and the cache scope of the elements in the character layer is the scene where the character corresponding to the element is located.

17. The device according to claim 15, wherein: The rendering unit comprises: The first cache updating subunit is configured to update the cache of the target element in response to determining that the target element to be rendered has been cached and a preset condition is satisfied, The preset condition includes at least one of the following: camera angle movement, material change, and a preset time period from the last cache.

18. The device according to claim 15, wherein: The preset rules include: Putting user-interactable elements into an interactive layer, which has a high rendering priority; and Put the special effect elements into the special effect layer, which has a low rendering priority.

19. The device according to claim 18, wherein: The rendering unit comprises: The second cache updating subunit is configured to determine whether to update the cache of the special effect element based on the frequency of interaction between the user and the interaction layer.

20. The device according to claim 18, wherein The rendering unit comprises: The frame rate determination subunit is configured to determine the rendering frame rate based on the scene complexity and the interaction frequency.

21. The device according to any one of claims 12 to 20, wherein: The rendering unit comprises: The static image subunit is configured to save the rendering results of partial elements or the whole of the three-dimensional scene as a static image, and in response to determining that the camera angle has not moved, suspend the rendering of the partial elements or the whole and directly display the static image.

22. The apparatus according to any one of claims 12 to 20, further comprising: An acquisition unit, configured to acquire performance parameters and network conditions of a user equipment; as well as The dynamic adjustment unit is configured to dynamically adjust the detail level of each of the multiple rendering layers based on the performance parameter and the network condition.

23. An electronic device, characterized in that: The electronic device comprises: at least one processor; and a memory communicatively coupled to the at least one processor; wherein The memory stores instructions that can be executed by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to perform the method according to any one of claims 1 to 11.

24. A non-transitory computer-readable storage medium storing computer instructions, characterized in that: The computer instructions are used to cause the computer to execute the method according to any one of claims 1-11.

25. A computer program product comprising a computer program, wherein: When the computer program is executed by a processor, the method according to any one of claims 1 to 11 is implemented.

Citation Information

Cited By

  • Dynamic creation and management method and device for multiple rendering scenes, equipment and medium

    CN119919558A

  • Game scene optimization method and system based on dynamic rendering

    CN120586387A

  • XR scene hierarchical space map construction method and device based on scene element features

    CN121120966A

  • Method and apparatus for constructing XR scene layered spatial maps based on scene element features

    CN121120966B

  • Television end multi-canvas step-by-step rendering method, device and equipment based on YTS engine

    CN121174003A