Rendering method, apparatus and system
Through collaborative rendering between terminal and server, rendering tasks are dynamically allocated, which solves the problem of 3D game rendering consumes a large amount of GPU resources and cloud game network dependence, and improves game fluency and stability.
Patent Information
- Application Number
- PCT/CN2024/073844
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-06-30
- Filing Date
- 2024-01-24
- Publication Date
- 2025-01-02
AI Technical Summary
Existing 3D games consume a lot of GPU computing resources during rendering, resulting in lag and frame drops. Cloud game solutions have high requirements for network quality, and network problems lead to unstable game operation.
Through the coordinated processing of rendering tasks between the terminal and the server, the terminal rendering requires areas with high real-time and fluency, and the server rendering is insensitive to delay, and the terminal cloud collaborative rendering strategy is adopted to dynamically adjust the rendering task allocation according to network quality.
It improves the fluency and stability of 3D games, reduces dependence on network quality, avoids performance bottlenecks caused by server rendering, and improves user experience.
Smart Images

Figure CN2024073844_02012025_PF_FP_ABST
Abstract
Description
Rendering method, device and system
[0001] This application claims priority to the Chinese patent application filed with the State Intellectual Property Office on June 30, 2023, with application number 202310808445.1 and application name “A rendering method, device and system”, the entire contents of which are incorporated by reference into this application. Technical Field
[0002] The embodiments of the present application relate to the field of image processing technology, and in particular to a rendering method, device, and system. Background Art
[0003] Currently, users can use terminals to experience high-definition 3D games. To enhance the realism and image quality of 3D games, developers design and add various special effects, such as lighting and shadow effects. However, this consumes a large amount of GPU computing resources when rendering the game screen, leading to lags and frame drops during 3D game execution, making it difficult to guarantee a good gaming experience.
[0004] In order to solve the problem of lag in 3D game running, some game manufacturers have provided a cloud gaming solution, which is to use cloud servers to complete the game running logic. However, this solution has high requirements on the network quality between the terminal and the cloud server. Once the network problem occurs, the 3D game cannot run normally.
[0005] Summary of the Invention
[0006] The embodiments of the present application provide a rendering method, device, and system to achieve normal operation of an application.
[0007] To achieve the above objectives, the embodiments of the present application adopt the following technical solutions.
[0008] In the first aspect, an embodiment of the present application provides a rendering method, which is applied to a terminal. The execution subject of the method can be a terminal or a component (for example, a chip, a chip system or a processor of the terminal). The following description is taken as an example in which the execution subject is a terminal. The terminal is installed with a first application, and the method includes: performing rendering on a first area of a first screen of the first application to obtain a first rendering result of the first area. The terminal sends a first rendering request to a server and obtains the second rendering result from the server. Afterwards, the terminal merges the first rendering result and the second rendering result to obtain the first screen, and displays the first screen.
[0009] The first rendering request is used to request the server to render a second area of the first picture to obtain a second rendering result; the second area is an area of the first picture other than the first area.
[0010] In this application, during the operation of the first application, the terminal and the server can collaboratively process the rendering task of the first application, avoiding the performance bottleneck caused by the server processing the rendering task alone, and ensuring that the first application can operate normally as much as possible.
[0011] In a possible design of the first aspect, the method may further include:
[0012] Performing rendering on a third area of the second screen of the first application to obtain a third rendering result of the third area;
[0013] Sending a second rendering request to the server, where the second rendering request is used to request the server to render a fourth area of the second picture to obtain a fourth rendering result; the fourth area is an area of the second picture excluding the third area;
[0014] When the fourth rendering result is not obtained from the server, the second picture is presented according to the third rendering result.
[0015] In this method, the terminal renders the third area in the game screen. In this way, even if the network quality between the terminal and the server is poor and the terminal cannot receive or cannot receive the rendering results of the server in a timely manner, it will not affect the terminal's generation of the game screen containing the third area (such as the area where the character is located), thereby meeting the demand for real-time generation and presentation of the game screen containing the third area and improving the smoothness of the game screen display.
[0016] In a possible design of the first aspect, the present invention further includes:
[0017] When the network quality between the terminal and the server recovers and meets the preset conditions, a rendering request is sent to the server. If the network quality does not meet the conditions, the terminal does not send a rendering request to the server, and the rendering is performed locally on the terminal. Subsequently, when the network quality meets the conditions, the terminal can hand over the rendering of subsequent frames to the server.
[0018] In a possible design of the first aspect, the first area is a dynamic picture area in the first picture, and the second area is a static picture area in the first picture; or, the first area is a low-order high-frequency area in the first picture, and the second area is a high-order low-frequency area in the first picture;
[0019] And / or, the third area is a dynamic picture area in the second picture, and the fourth area is a static picture area in the second picture; or, the third area is a low-order high-frequency area in the second picture, and the fourth area is a high-order low-frequency area in the second picture.
[0020] In some examples, the terminal renders the game screen in an area with higher real-time requirements (such as the area where the character is located), or it is understood that the terminal renders the game screen in an area that has a higher impact on the smoothness of the screen, user operation, or user vision. In this way, even if the network quality between the terminal and the server is poor and the terminal cannot receive or cannot receive the rendering result of the server in a timely manner, it will not affect the terminal's generation of the game screen containing this part (such as the area where the character is located), so as to meet the demand for real-time generation and presentation of the game screen containing this part, and improve the smoothness of the game screen display.
[0021] In a possible design of the first aspect, sending a first rendering request to a server includes:
[0022] Determining the network quality between the terminal and the server;
[0023] If the network quality between the terminal and the server meets a preset condition, the first rendering request is sent to the server.
[0024] If the network quality meets the conditions, it means that the network quality between the terminal and the server is good, and the server can return the rendering result of the first application's screen to the terminal as soon as possible after rendering, thereby improving the smoothness of the first application's operation.
[0025] Conversely, if the network quality does not meet the requirements, it means that the connection between the phone and the server is poor. In this case, to avoid the server performing rendering and the rendering results being delayed in returning to the terminal, the terminal can not send a rendering request to the server and perform rendering locally. Later, when the network quality meets the requirements, the terminal can hand over the rendering task of subsequent frames to the server.
[0026] In a possible design of the first aspect, the network quality between the terminal and the server meeting the preset condition includes satisfying at least one of the following conditions:
[0027] The packet loss rate between the terminal and the server is less than or equal to a first threshold, the bandwidth between the terminal and the server is greater than or equal to a second threshold, the transmission delay between the terminal and the server is less than or equal to a third threshold, and the transmission rate between the terminal and the server is greater than or equal to a fourth threshold.
[0028] In a possible design of the first aspect, the present invention further includes:
[0029] During the execution of the first application, a first operation is received;
[0030] In response to the first operation, launching a second application;
[0031] The first task is performed by the second application.
[0032] Since some tasks of the terminal (such as the first task) mostly rely on the local resources of the mobile phone, compared with the related cloud gaming technology in which the game logic is all run on the server, the server cannot directly use the corresponding resources of the terminal, and the processing efficiency of executing the first task is low. In this application, during the operation of the first application, after the terminal receives the first operation, it can directly pull up the local second application to process the first task.
[0033] In a possible design of the first aspect, the present invention further includes:
[0034] Acquire data of the first screen of the first application;
[0035] The first area and the second area in the first picture are determined according to a rendering strategy.
[0036] In a possible design of the first aspect, the rendering strategy includes: whether to start the end-cloud collaboration capability when the first application is running, the preset conditions for starting the end-cloud collaboration capability, and the screen area that needs to be rendered by the server when the first application is running.
[0037] Through the rendering strategy, the terminal can determine the screen area that needs to be rendered by the terminal and the screen area rendered by the server. In this way, through end-cloud collaborative rendering, the efficiency of the screen rendering of the first application can be improved, and the smooth display of the screen of the first application can be supported as much as possible to ensure the normal operation of the first application.
[0038] In a possible design of the first aspect, the rendering strategy is a strategy preset by a developer in the first application.
[0039] In this way, after the developer sets the rendering strategy in the first application, during the operation of the first application, end-cloud collaborative rendering can be achieved according to the rendering strategy to improve rendering efficiency.
[0040] In a possible design of the first aspect, the present invention further includes:
[0041] Determine information about a first rendering resource corresponding to the second area; the first rendering request includes the information about the first rendering resource; and the information is used by the server to search whether the first rendering resource is stored.
[0042] In this way, the server can determine whether the rendering resource has been uploaded based on the rendering resource information (such as hash value). For rendering resources that have been uploaded to the server in the past, the terminal does not need to upload the rendering resource again to reduce transmission overhead.
[0043] In a possible design of the first aspect, the first task includes a payment task, and the second application is an application with a payment function.
[0044] In this method, during the operation of the first application, tasks such as payment that rely on the support of terminal functions are processed by the terminal. Therefore, the terminal can quickly process payment tasks through the terminal functions, thereby improving the processing efficiency of payment tasks.
[0045] In a possible design of the first aspect, the first application includes a 3D application, and the 3D application includes at least one of the following applications: a 3D game application, a 3D social application, and a 3D live broadcast application.
[0046] In this way, for 3D applications that focus on interactive experience, the end-cloud collaboration can render the 3D application screen during operation, which can improve rendering efficiency and enhance the user's interactive experience with the 3D application.
[0047] In a possible design of the first aspect, performing rendering on a first area of a first screen of the first application includes:
[0048] Rendering is performed on a first area of a first screen of the first application using a graphics processor (GPU).
[0049] In a second aspect, a rendering method is provided, which is applied to a server or component (e.g., a chip, a chip system, or a processor of a server), the method comprising:
[0050] receiving a first rendering request from a terminal, wherein the first rendering request is used to request the server to render a second area of the first picture to obtain a second rendering result; the second area is an area of the first picture other than the first area;
[0051] The second rendering result is sent to the terminal; the second rendering result is used to be merged with the first rendering result obtained by the terminal rendering the first area to obtain the first picture.
[0052] In a possible design of the second aspect, the first area is a dynamic picture area in the first picture, and the second area is a static picture area in the first picture; or, the first area is a low-order high-frequency area in the first picture, and the second area is a high-order low-frequency area in the first picture.
[0053] Through the reasonable division of end-cloud computing power, tasks that need to be calculated on the cloud and tasks that need to be calculated on the end side can be allocated on demand on the end side. For example, tasks that are not sensitive to latency (such as rendering tasks in the second area) can be assigned to the cloud for execution. Even if the network is interrupted or the network quality is poor, the basic local terminal operation experience can be guaranteed.
[0054] Optionally, after the rendering resources of the static picture area are uploaded to the cloud, they can be stored by the cloud. There is no need to upload the rendering resources repeatedly in the future. Only the information of the rendering resources (such as the hash value) needs to be uploaded to realize the retrieval of the rendering resources on the cloud.
[0055] In a third aspect, a rendering method is provided, which is applied to a terminal or a corresponding component, wherein the terminal has a first application installed thereon, and the method includes:
[0056] When the network quality between the terminal and the server meets a preset condition, sending a rendering request to the server, wherein the rendering request is used to request the server to perform a first rendering task on the first picture;
[0057] receiving, from the server, a first rendering result obtained by the server executing the first rendering task;
[0058] The first picture is presented according to the first rendering result.
[0059] In a possible design of the third aspect, the preset conditions include:
[0060] The packet loss rate between the terminal and the server is less than or equal to a first threshold, the bandwidth between the terminal and the server is greater than or equal to a second threshold, the transmission delay between the terminal and the server is less than or equal to a third threshold, and the transmission rate between the terminal and the server is greater than or equal to a fourth threshold.
[0061] In a possible design of the third aspect, the first rendering task is a rendering task for a first area of the first picture; and the method further includes:
[0062] executing a second rendering task for a second area of the first picture to obtain a second rendering result for the second area; the second area is an area of the first picture other than the first area;
[0063] Presenting the first frame according to the first rendering result includes:
[0064] The first picture is presented according to the first rendering result of the first area and the second rendering result of the second area.
[0065] Among them, the first area and the second area can refer to any possible design of the first aspect or the second aspect mentioned above.
[0066] In this way, by handing over the rendering tasks of the second area (such as high computing power and insensitivity to latency) to the server, other tasks (such as rendering tasks and payment tasks in the first area) are still executed by the terminal, which can improve the screen rendering efficiency of the first application and ensure the user experience of using the first application.
[0067] In a possible design of the third aspect, the present invention further includes:
[0068] Presenting the first picture according to the first rendering result of the first area and the second rendering result of the second area includes:
[0069] If no second rendering result is received within a preset period of time, the first picture is presented according to the first rendering result.
[0070] In this way, when the end-side rendering request is uploaded to the cloud, the rendering tasks that need to be processed by the cloud and the rendering tasks processed by the end-side can be dynamically allocated according to business needs and network conditions to improve rendering efficiency.
[0071] In a possible design of the third aspect, the present invention further includes:
[0072] receiving a first operation from a user;
[0073] In response to the operation, launching a second application;
[0074] The corresponding task is executed by the second application.
[0075] In a fourth aspect, a rendering method is provided, which is applied to a terminal or a corresponding component, wherein the terminal has a first application installed thereon, and the method includes:
[0076] During the execution of the first application, receiving a first operation from a user;
[0077] In response to the operation, launching a second application;
[0078] The corresponding task is executed by the second application.
[0079] As a possible implementation manner, the second application runs on the CPU.
[0080] In a fifth aspect, a rendering device is provided, applied to a terminal or a corresponding component, wherein the terminal is installed with a first application, and the device includes:
[0081] a processing module, configured to perform rendering on a first area of a first screen of the first application to obtain a first rendering result of the first area;
[0082] a communication module, configured to send a first rendering request to a server, wherein the first rendering request is configured to request the server to render a second area of the first image to obtain a second rendering result; the second area is an area of the first image other than the first area;
[0083] The communication module is further configured to obtain the second rendering result from the server;
[0084] The processing module is further configured to fuse the first rendering result and the second rendering result to obtain the first image;
[0085] The display module is configured to display the first image.
[0086] In a possible design of the fifth aspect, the processing module is further configured to perform rendering on a third area of the second screen of the first application to obtain a third rendering result of the third area;
[0087] The communication module is further configured to send a second rendering request to the server, wherein the second rendering request is configured to request the server to render a fourth area of the second image to obtain a fourth rendering result; the fourth area is an area of the second image excluding the third area;
[0088] The display module is further configured to present the second picture according to the third rendering result when the fourth rendering result is not obtained from the server.
[0089] In a possible design of the fifth aspect, the first area is a dynamic picture area in the first picture, and the second area is a static picture area in the first picture; or, the first area is a low-order high-frequency area in the first picture, and the second area is a high-order low-frequency area in the first picture;
[0090] And / or, the third area is a dynamic picture area in the second picture, and the fourth area is a static picture area in the second picture; or, the third area is a low-order high-frequency area in the second picture, and the fourth area is a high-order low-frequency area in the second picture.
[0091] In a possible design of the fifth aspect, sending a first rendering request to a server includes:
[0092] Determining the network quality between the terminal and the server;
[0093] If the network quality between the terminal and the server meets a preset condition, the first rendering request is sent to the server.
[0094] In a possible design of the fifth aspect, the network quality between the terminal and the server meeting the preset condition includes satisfying at least one of the following conditions:
[0095] The packet loss rate between the terminal and the server is less than or equal to a first threshold, the bandwidth between the terminal and the server is greater than or equal to a second threshold, the transmission delay between the terminal and the server is less than or equal to a third threshold, and the transmission rate between the terminal and the server is greater than or equal to a fourth threshold.
[0096] In a possible design of the fifth aspect, the apparatus further includes an input module, configured to receive a first operation during execution of the first application;
[0097] The processing module is further configured to launch a second application in response to the first operation; and execute the first task through the second application.
[0098] In a possible design of the fifth aspect, the processing module is further configured to:
[0099] Acquire data of the first screen of the first application;
[0100] The first area and the second area in the first picture are determined according to a rendering strategy.
[0101] In a possible design of the fifth aspect, the rendering strategy includes: whether to start the end-cloud collaboration capability when the first application is running, the preset conditions for starting the end-cloud collaboration capability, and the screen area that needs to be rendered by the server when the first application is running.
[0102] In a possible design of the fifth aspect, the rendering strategy is a strategy preset by a developer in the first application.
[0103] In a possible design of the fifth aspect, the processing module is further configured to:
[0104] Determine information about a first rendering resource corresponding to the second area; the first rendering request includes the information about the first rendering resource; and the information is used by the server to search whether the first rendering resource is stored.
[0105] In a possible design of the fifth aspect, the first task includes a payment task, and the second application is an application with a payment function.
[0106] In a possible design of the fifth aspect, the first application includes a 3D application, and the 3D application includes at least one of the following applications: a 3D game application, a 3D social application, and a 3D live broadcast application.
[0107] In a possible design of the fifth aspect, performing rendering on a first area of a first screen of the first application includes:
[0108] Rendering is performed on a first area of a first screen of the first application using a graphics processor (GPU).
[0109] According to a sixth aspect, a rendering device is provided, comprising:
[0110] a communication module, configured to receive a first rendering request from a terminal, wherein the first rendering request is configured to request the server to render a second area of the first picture to obtain a second rendering result; the second area is an area of the first picture other than the first area;
[0111] The communication module is further used to send the second rendering result to the terminal; the second rendering result is used to be merged with the first rendering result obtained by the terminal rendering the first area to obtain the first picture.
[0112] In a possible design of the sixth aspect, the first area is a dynamic picture area in the first picture, and the second area is a static picture area in the first picture; or, the first area is a low-order high-frequency area in the first picture, and the second area is a high-order low-frequency area in the first picture.
[0113] According to a seventh aspect, a rendering device is provided, comprising:
[0114] a communication module, configured to send a rendering request to the server when the network quality between the terminal and the server meets a preset condition, wherein the rendering request is used to request the server to perform a first rendering task on the first picture;
[0115] The communication module is further configured to receive, from the server, a first rendering result obtained by the server executing the first rendering task;
[0116] The display module is configured to present the first image according to the first rendering result.
[0117] In a possible design of the seventh aspect, the preset conditions include:
[0118] The packet loss rate between the terminal and the server is less than or equal to a first threshold, the bandwidth between the terminal and the server is greater than or equal to a second threshold, the transmission delay between the terminal and the server is less than or equal to a third threshold, and the transmission rate between the terminal and the server is greater than or equal to a fourth threshold.
[0119] In a possible design of the seventh aspect, the first rendering task is a rendering task for a first area of the first picture; and the method further includes:
[0120] executing a second rendering task for a second area of the first picture to obtain a second rendering result for the second area; the second area is an area of the first picture other than the first area;
[0121] Presenting the first frame according to the first rendering result includes:
[0122] The first picture is presented according to the first rendering result of the first area and the second rendering result of the second area.
[0123] Among them, the first area and the second area can refer to any possible design of the first aspect or the second aspect mentioned above.
[0124] In a possible design of the seventh aspect, presenting the first picture according to the first rendering result of the first area and the second rendering result of the second area includes:
[0125] If no second rendering result is received within a preset period of time, the first picture is presented according to the first rendering result.
[0126] In a possible design of the seventh aspect, the device further includes an input module for receiving a first operation from a user;
[0127] The processing module is further configured to launch a second application in response to the operation; and execute a corresponding task through the second application.
[0128] According to an eighth aspect, a rendering device is provided, comprising:
[0129] An input module, configured to receive a first operation from a user during the execution of the first application;
[0130] The processing module is configured to launch a second application in response to the operation and execute a corresponding task through the second application.
[0131] As a possible implementation manner, the second application runs on the CPU.
[0132] In the ninth aspect, an embodiment of the present application provides a terminal, which includes a touch screen, a memory, a transceiver, one or more processors, multiple applications, and one or more programs; wherein the one or more programs are stored in the memory, and the transceiver is used to transmit or receive wireless signals; when the one or more processors execute the one or more programs, the terminal implements the method described in the first aspect.
[0133] In a tenth aspect, an embodiment of the present application provides a computer-readable storage medium, wherein the computer-readable storage medium includes computer instructions. When the computer instructions are executed on a computer, the computer executes the method described in any of the above aspects.
[0134] In the eleventh aspect, an embodiment of the present application provides a chip system, which includes one or more processors. When the one or more processors execute instructions, the one or more processors execute the method as described in the first aspect, or the method as described in the second aspect.
[0135] In the twelfth aspect, the present application provides a device, which terminal includes a processor and a memory, the memory is used to store computer program code, the computer program code includes computer instructions, and when the processor executes the computer instructions, it executes the method described in any possible design of any of the above aspects of the present application.
[0136] In a thirteenth aspect, an embodiment of the present application provides a computer program product, which, when executed on a computer, enables the computer to execute the method described in any aspect. BRIEF DESCRIPTION OF THE DRAWINGS
[0137] Figure 1 is a schematic diagram of a cloud gaming technology scenario;
[0138] FIG2 is a schematic diagram of a process flow for application development according to an embodiment of the present application;
[0139] FIG3 is a schematic diagram of an application screen according to an embodiment of the present application;
[0140] FIG4 is a schematic structural diagram of a rendering system provided in an embodiment of the present application;
[0141] FIG5 is a schematic structural diagram of a rendering system provided in an embodiment of the present application;
[0142] FIG6 is a schematic diagram of rendering resources provided in an embodiment of the present application;
[0143] FIG7A is a schematic diagram of the structure of a terminal provided in an embodiment of the present application;
[0144] FIG7B is a schematic diagram of the structure of a server provided in an embodiment of the present application;
[0145] FIG8 is a schematic diagram of a flow chart of a rendering method provided in an embodiment of the present application;
[0146] FIG9 is a schematic diagram of a scene of a rendering method provided in an embodiment of the present application;
[0147] FIG10A is a schematic diagram of a scene of a rendering method provided in an embodiment of the present application;
[0148] FIG10B is a schematic diagram of a flow chart of a rendering method provided in an embodiment of the present application;
[0149] FIG11 is a schematic diagram of a scene of a rendering method provided in an embodiment of the present application;
[0150] FIG12 is a schematic diagram of a flow chart of a rendering method provided in an embodiment of the present application;
[0151] FIG13 is a schematic diagram of a flow chart of a rendering method provided in an embodiment of the present application;
[0152] FIG14 is a schematic structural diagram of a rendering device provided in an embodiment of the present application;
[0153] FIG15 is a schematic structural diagram of a chip system provided in an embodiment of the present application. DETAILED DESCRIPTION
[0154] Figure 1 illustrates a cloud gaming solution in related art. In this solution, a terminal installs and runs a game application client (client), and a cloud server installs and runs the game application server (server). The server and client are used in conjunction with each other. The terminal receives control commands input by the game player and sends them to the cloud server, which then processes tasks during the game application. After processing the tasks, the cloud server generates corresponding processing results and sends them to the terminal. For example, a player moves a character in the game using the client in the terminal. The terminal receives the player's movement input and sends the movement operation to the cloud server. The cloud server renders the game screen based on the movement operation and returns the rendered game screen to the terminal, which then presents the game screen through the client. For another example, if a player wants to purchase game equipment while playing a game, they can click a purchase button on the client interface. After receiving the user's purchase operation, the terminal sends the purchase operation to the cloud server. The cloud server triggers the terminal to execute the payment process based on the user's purchase operation. For example, the cloud server sends a QR code to the terminal. After receiving the QR code, the terminal scans the QR code and jumps to the corresponding payment interface to execute the payment process.
[0155] As can be seen, in the aforementioned cloud gaming solution, the terminal is only responsible for receiving user operations related to the game application, while all game application tasks are handled by the cloud server. On the one hand, this consumes a large amount of the cloud server's computing resources, such as CPU and GPU resources, resulting in high computing costs for the cloud server. On the other hand, since the entire game application task is handled by the cloud server, and the cloud server does not have a payment application installed for payment, the cloud server cannot directly execute the payment process. Instead, it must trigger the terminal to execute the payment process through methods such as QR codes, making the payment process cumbersome.
[0156] In addition, the cloud gaming method is highly dependent on network quality. Once the network between the terminal and the cloud server is interrupted or unstable, it will lead to high packet loss rate and large latency, causing the cloud server to delay the return of the game screen to the terminal, and then the terminal display of the game screen will also be delayed and stuck, and the game application will not be able to run smoothly.
[0157] The present application provides a rendering method that can be applied to 3D application scenarios, such as 3D games, 3D digital human social networking, 3D digital human live broadcasts, etc. Alternatively, the method can also be applied to other scenarios, such as other applications with high requirements for smoothness.
[0158] FIG2 shows an example of a process for developing and using a 3D application. The process may include:
[0159] 1. Developers use a 3D engine integrated development environment (IDE) to develop 3D applications. 3D applications can be gaming applications or non-gaming 3D applications.
[0160] 2. Application development. The application development process includes the following steps:
[0161] 1) Scene development: Through the scene development process, developers can place objects in the 3D world in corresponding positions and debug their effects. For example, they can place characters and static objects in 3D applications, add lights, and add special effects.
[0162] 2) Script development: Through script development, you can obtain logic scripts (also called logic code) that describe the specific business logic of the 3D application. Script development includes but is not limited to developing backpack systems and combat systems.
[0163] 3) Debugging and development: During this process, developers can use the 3D engine IDE to debug the functions of the 3D application.
[0164] 4) Compilation and packaging: After the 3D application's functional development and debugging are completed, the developer can use the compilation and packaging function provided by the 3D engine IDE to package the entire 3D application project into an executable file, such as an APK installation package.
[0165] The compiled and packaged installation package contains the logic code developed by the script, the 3D engine runtime (Runtime), and the scene developed by the scene.
[0166] The 3D engine runtime is the specific implementation of the application programming interface (API) that the engine opens to developers. The engine runtime is decoupled from the application logic. For example, the 3D engine runtime has the capabilities of the engine framework, but is not limited to basic capabilities such as task scheduling, basic algorithm libraries, and inter-module communication. For another example, the 3D engine runtime also has capabilities such as physics simulation, animation simulation, particle simulation, and rendering engine. During the runtime phase of a 3D application, the 3D application inputs data to the engine runtime, such as input materials, game logic, and other data. The engine runtime then returns results based on the input data, such as the particle simulation results in the game screen.
[0167] Scene: A scene contains objects, and objects have corresponding resources (also called assets). Resources include but are not limited to model resources, material resources, and texture resources.
[0168] For example, the scene shown in Figure 3 includes objects such as person 202 and television 201. In Figure 3, the outline of person 202 can be represented by a 3D model resource, and the materials of different parts of person 202 can be represented by material resources. For example, the texture of the skin and clothing (such as fabric) can be represented by corresponding material resources. The pattern and texture of person 202's clothing can be represented by corresponding texture resources.
[0169] In this embodiment of the application, developers can add a new logical function to the end-cloud scheduling strategy when developing applications. The end-cloud scheduling strategy can include at least one of the following: whether to enable end-cloud collaboration, the conditions for enabling end-cloud collaboration, and tasks that need to be processed by the cloud when the 3D application is running (such as the screen area rendered by the cloud).
[0170] End-cloud collaboration refers to the collaborative processing of tasks by terminals and cloud servers (referred to as servers) to support the operation of 3D applications. In some examples, all tasks required to support the operation of 3D applications are handled by the terminal. Alternatively, some tasks are handled by the terminal and some by the server. In this way, the terminal handles at least some tasks, avoiding the problems caused by the server handling all the tasks of the 3D application and ensuring the normal operation of the 3D application as much as possible.
[0171] The conditions for enabling end-cloud collaboration include, but are not limited to, the network quality between the end and the cloud meeting the preset conditions. The network quality between the end and the cloud meeting the preset conditions includes at least one of the following conditions:
[0172] The packet loss rate between the end and the cloud is less than or equal to the first threshold, the bandwidth between the end and the cloud is greater than or equal to the second threshold, the transmission delay between the end and the cloud is less than or equal to the third threshold, and the transmission rate between the end and the cloud is greater than or equal to the fourth threshold.
[0173] Of course, the preset condition can also be other conditions, such as throughput being greater than a threshold. The embodiments of the present application do not limit the preset conditions, as long as the network quality between the end and the cloud is good enough to enable the rendering and presentation of the 3D application screen without delay, or with a small degree of delay, and the 3D application screen display is smooth.
[0174] Taking 3D games as an example, when a terminal is running a 3D game, the server renders area A (such as the background) in a frame of 3D game screen that has low latency requirements, and the terminal renders area B (such as the area where the character is located) in the frame of 3D game screen that has high latency requirements. Afterwards, the terminal merges area A and area B into a complete frame of 3D game screen and displays the frame of 3D game screen while the 3D game is running. It can be seen that this method no longer relies entirely on the server for rendering when rendering the 3D game screen, but can allow the terminal to render the screen area with high latency requirements. Therefore, the smoothness of the 3D application operation is no longer entirely dependent on the network quality between the terminal and the server, which can improve the smoothness of the 3D application operation.
[0175] As a possible implementation method, developers can configure the end-cloud scheduling strategy through the development interface of the 3D engine IDE. In some examples, buttons or controls can be set on the development interface, and developers can set the end-cloud scheduling strategy through the corresponding controls. For example, in Figure 3, taking interface 20 as an example of the development interface, a switch 203 is provided on interface 20. When switch 203 is turned on, the end-cloud collaboration capability is enabled, that is, the end-cloud collaboration capability is started. In some examples, after starting the end-cloud collaboration capability, the terminal and the server can collaborate to realize the screen rendering in the 3D application, such as rendering the screen of the scene shown in the game interface.
[0176] As another possible implementation method, developers add corresponding code to the logic code, and call this part of the code when the 3D application is running to enable end-cloud collaboration capabilities.
[0177] Similarly, developers can set the conditions for enabling end-cloud collaboration capabilities and tasks that need to be processed by the cloud through the development interface or logic code.
[0178] 3. After the developer completes the development of the 3D application, the 3D application will be put on the application market through operational activities for users to download and use.
[0179] 4. Users download the APK of the 3D application through the application market.
[0180] 5. The user opens the 3D application on a terminal (such as a mobile phone), and the terminal runs the 3D application.
[0181] After the developer configures the end-cloud scheduling policy for the 3D application, during the operation of the 3D application, the 3D application will collaborate with the server according to the configured end-cloud scheduling policy to render the 3D application screen.
[0182] Figure 4 shows a rendering system composed of a terminal and a cloud server. As shown in Figure 4, the rendering system 100 may include a cloud server 101 and at least one terminal 102. The cloud server 101 and the terminal 102 may communicate via a network.
[0183] In some embodiments, as shown in FIG5 , the terminal 102 may include an input device, a display device, a game execution logic module, a graphics rendering system, and a local GPU.
[0184] Input devices can be used to receive user input. In some examples, the input device is a component or module built into the terminal, such as a touchscreen, through which the user can input operations. In other examples, the input device can be independent of the terminal, such as a controller, keyboard, or mouse. For example, in the case of a 3D game application, a user can input control commands through a controller to control the movement of an in-game character.
[0185] The display device can be used to display the screen of a 3D application (such as a game screen). Exemplarily, the display device is a display screen.
[0186] The application execution logic module can be used to calculate tasks for 3D applications. This module can be located within a game application, within an SDK within a game application, or within a mobile phone system's game service module, allowing upper-level applications to call and execute related functions. When the application execution logic module is a mobile phone system's game service module, it can provide related service functions for multiple applications. For example, in a 3D game, the application execution logic module can calculate the rendering resources for the game screen and send rendering requests to the graphics rendering system.
[0187] Optionally, the application execution logic module may be a functional module in the CPU. Optionally, the application execution logic module may also be a software module running on the CPU. Of course, the application execution logic module may also have other forms, and the embodiments of the present application do not limit the specific implementation form of the application execution logic module.
[0188] Optionally, the application execution logic module may be included in the engine runtime of the 3D application.
[0189] The graphics rendering system, included in the engine runtime of a 3D application, can be used to process rendering tasks of the 3D application. Optionally, the graphics rendering system includes a core rendering system and a render hardware interface (RHI).
[0190] The application execution logic module calls the graphics rendering system for each game frame. The graphics rendering system prepares the rendering data for that frame through the core rendering system and loads the corresponding pipeline data. For example, there are 30 or 60 frames per second, but the specific frame rate may vary depending on the performance of the 3D application or device.
[0191] The rendering data and the corresponding pipeline data may be collectively referred to as rendering resources. The pipeline data may be used to indicate that the rendering data is used for rendering through a rendering pipeline.
[0192] Rendering data can be called Draw Packet. Rendering data contains the information required for underlying rendering and can be understood as the data required in the rendering task graph.
[0193] For example, as shown in FIG6 (a), the rendering data includes: mesh data of the 3D model, vertex buffer data, index buffer data, material data, map data, texture data, and related shader data.
[0194] The mesh data of a 3D model can be used to represent the shape of the 3D model. A 3D model can be composed of multiple triangular faces. The mesh data includes one or more pieces of information such as vertex coordinates, normals, and texture coordinates (UVs).
[0195] Shaders are used to render images. They allow you to customize the graphics card's rendering algorithms to achieve the desired effect. Shaders can include vertex shaders and pixel shaders. Vertex shaders calculate the vertices of each triangle in a 3D model, and the results are used for final pixel rendering. Pixel shaders calculate lighting, color, and other scene information on a pixel-by-pixel basis. Shader data includes the data used by shaders during image rendering.
[0196] Pipeline data, also known as a frame graph, represents a rendering task graph or pipeline. Pipeline data can be understood as configuration data. By reading this configuration data, the device can determine the passes included in the rendering process, the inputs and outputs of each pass, and the order in which the rendering data is used. The device can then use the rendering data in order through each pass for rendering.
[0197] A pass can be understood as a processing flow or a processing step. This processing step can contain multiple sub-steps. Optionally, each pass can be implemented by one or more rendering algorithms.
[0198] Optionally, pipeline data can be represented using a directed acyclic graph. For example, in a gaming application, as shown in Figure 6(b), the device processes the depth information of objects in the game screen through GbufferPass and stores the processed information in the DepthBuffer. Depth information includes, but is not limited to, the distance between the object and the camera in the scene and the occlusion between objects. The device can also obtain one or more of the following information through GbufferPass: the object's reaction to light and the object's roughness. The device can also obtain rendering data such as the object's normal through GbufferPass, and this one or more information can be stored in a Gbuffer (such as Gbuffer0-Gbuffe2). Afterwards, the device can process and calculate the object's lighting conditions through LightingPass to obtain a LightingBuffer. Afterwards, the device can perform post-processing on the information in the LightingBuffer and DepthBuffer through PostProcessPass, such as performing anti-aliasing processing if there are large jagged edges in the image. Afterwards, backup processing can be performed, and the relevant backup data can be stored in the BackBuffer.
[0199] FIG6( b ) only shows the general workflow of the channel during the rendering process, not the specific rendering process.
[0200] Typically, each GPU has its own rendering logic, and different GPUs may use different rendering logics. The RHI can be used to mask the differences in rendering logics between different GPUs and provide a universal interface layer. In this way, the core rendering system in the graphics rendering system can call the GPU of the terminal 102 for rendering through the unified interface provided by the RHI.
[0201] Optionally, the terminal 102 may be a mobile phone, tablet computer, desktop, laptop, notebook computer, ultra-mobile personal computer (UMPC), handheld computer, smart TV, netbook, virtual reality device, or other device installed with 3D applications. The specific form of the terminal is not particularly limited in the embodiments of the present application.
[0202] 5 , the cloud server 101 may include a graphics rendering system, which may include a data storage retrieval service and a RHI. The data storage retrieval service may call the GPU of the cloud server 101 through the RHI to perform rendering.
[0203] In the embodiment of the present application, part of the functions of the engine runtime on the terminal side can be deployed to the cloud side to form a graphics rendering system on the cloud side, which is equivalent to the engine runtime on the terminal side and the graphics rendering system on the cloud side forming a distributed engine. Subsequently, the graphics rendering system on the cloud side can provide a unified service for the terminal side, so that the cloud side can cooperate with the terminal side to support the normal operation of the 3D application. In addition, compared with the related art, the cloud side needs to deploy a server that matches the client on the terminal side (such as if the client of application 1 is installed on the terminal side, the cloud side needs to deploy the server of application 1; if the client of application 2 is installed on the terminal side, the cloud side needs to deploy the server of application 2), in the method of the embodiment of the present application, the graphics rendering system on the cloud side uniformly handles the related tasks of the 3D application, the graphics rendering system is decoupled from the client, and a set of standard APIs can be uniformly provided to the outside world. There is no need to deploy a server that matches the client on the terminal side on the cloud side, which can reduce the deployment complexity of the cloud side.
[0204] For example, FIG7A shows a schematic structural diagram of a device (such as terminal 102 ).
[0205] The device may include a processor 110, an external memory interface 120, an internal memory 121, a universal serial bus (USB) interface 130, a charging management module 140, a power management module 141, a battery 142, an antenna 1, an antenna 2, a mobile communication module 150, a wireless communication module 160, an audio module 170, a speaker 170A, a receiver 170B, a microphone 170C, an earphone interface 170D, a sensor module 180, a button 190, a motor 191, an indicator 192, a camera 193, a display 194, and a subscriber identification module (SIM) card interface 195, etc.
[0206] The processor 110 may include one or more processing units. For example, the processor 110 may include an application processor (AP), a modem processor, a graphics processing unit (GPU), an image signal processor (ISP), a controller, a memory, a video codec, a digital signal processor (DSP), a baseband processor, and / or a neural-network processing unit (NPU). The different processing units may be independent devices or integrated into one or more processors.
[0207] The controller is the nerve center and command center of the device. It can generate operation control signals based on instruction opcodes and timing signals to complete the control of instruction fetching and execution.
[0208] Processor 110 may also include internal memory for storing instructions and data. In some embodiments, the memory in processor 110 is a cache memory. This memory can store instructions or data that have just been used or are being recycled by processor 110. If processor 110 needs to use the same instruction or data again, it can directly access the memory. This avoids duplicate accesses, reduces processor 110 latency, and thus improves system efficiency.
[0209] The charging management module 140 is configured to receive charging input from a charger.
[0210] The power management module 141 is used to connect the battery 142, the charging management module 140 and the processor 110. The power management module 141 receives input from the battery 142 and / or the charging management module 140 to provide power to the processor 110, the display 194, the camera 193, etc.
[0211] The wireless communication function of the device can be implemented through antenna 1, antenna 2, mobile communication module 150, wireless communication module 160, modem processor and baseband processor.
[0212] The mobile communication module 150 can provide solutions for wireless communications applied to the device, including 2G / 3G / 4G / 5G. The wireless communication module 160 can provide solutions for wireless communications applied to the device, including wireless local area networks (WLAN) (such as wireless fidelity (Wi-Fi) networks) and Bluetooth (BT).
[0213] The device implements display functions through a GPU, a display screen 194, and an application processor. The GPU is a microprocessor for image processing, connecting the display screen 194 and the application processor.
[0214] The GPU is used to perform mathematical and geometric calculations for graphics rendering. The processor 110 may include one or more GPUs that execute program instructions to generate or change display information.
[0215] The display screen 194 is used to display images, videos, etc. The display screen 194 includes a display panel. In some embodiments, the device may include 1 or N display screens 194, where N is a positive integer greater than 1.
[0216] The device can implement a shooting function through an ISP, a camera 193, a video codec, a GPU, a display 194, and an application processor.
[0217] The ISP processes data fed back by camera 193. For example, when taking a photo, the shutter is opened, and light is transmitted through the lens to the camera's photosensitive element. The light signal is converted into an electrical signal, which is then passed to the ISP for processing and transformed into a visible image. The ISP can also perform algorithmic optimization on image noise, brightness, and other factors. It can also optimize parameters such as exposure and color temperature of the captured scene. In some embodiments, the ISP can be located within camera 193.
[0218] The camera 193 is used to capture still images or videos. The object generates an optical image through the lens and projects it onto the photosensitive element. The photosensitive element can be a charge coupled device (CCD) or a complementary metal-oxide-semiconductor (CMOS) phototransistor. The photosensitive element converts the light signal into an electrical signal, and then transmits the electrical signal to the ISP to be converted into a digital image signal. The ISP outputs the digital image signal to the DSP for processing. The DSP converts the digital image signal into an image signal in a standard format such as RGB, YUV, etc.
[0219] In some embodiments, the device may include 1 or N cameras 193 , where N is a positive integer greater than 1. The embodiment of the present application does not limit the specific position and form of the camera 193 .
[0220] Digital signal processors are used to process digital signals. Besides digital image signals, they can also process other digital signals. For example, when the device is selecting a frequency point, the digital signal processor performs a Fourier transform on the frequency point energy.
[0221] Video codecs are used to compress or decompress digital video. A device may support one or more video codecs, allowing it to play or record videos in various encoding formats, such as Moving Picture Experts Group (MPEG) 1, MPEG2, MPEG3, and MPEG4.
[0222] The NPU is a neural network (NN) computing processor. Drawing on the structure of biological neural networks, such as the transmission patterns between neurons in the human brain, it rapidly processes input information and can continuously self-learn. The NPU enables intelligent device recognition applications such as image recognition, face recognition, speech recognition, and text comprehension.
[0223] The external memory interface 120 can be used to connect an external memory card, such as a Micro SD card, to expand the device's storage capacity. The external memory card communicates with the processor 110 via the external memory interface 120 to implement data storage. For example, files such as music and videos can be stored on the external memory card.
[0224] The internal memory 121 can be used to store computer-executable program code, which includes instructions. The processor 110 executes various functional applications and data processing of the device by running the instructions stored in the internal memory 121 and / or instructions stored in memory provided in the processor. The internal memory 121 can be any type of memory within the device. The internal memory 121 can be a standalone module or integrated with other modules.
[0225] The device can implement audio functions such as music playback and recording through the audio module 170, speaker 170A, receiver 170B, microphone 170C, headphone jack 170D, and application processor.
[0226] The audio module 170 is used to convert digital audio data into analog audio electrical signals for output, and is also used to convert analog audio electrical signal input into digital audio data. The audio module 170 may include an analog / digital converter and a digital / analog converter. For example, the audio module 170 is used to convert the analog audio electrical signal output by the microphone 170C into digital audio data. The audio module 170 may also be used to encode and decode audio data. In some embodiments, the audio module 170 may be provided in the processor 110, or some functional modules of the audio module 170 may be provided in the processor 110.
[0227] The speaker 170A, also called a "speaker," is used to convert analog audio electrical signals into sound signals. The device can listen to music or make hands-free calls through the speaker 170A.
[0228] The receiver 170B, also called a "handset", is used to convert analog audio electrical signals into sound signals. When the device receives a call or voice message, the voice can be heard by placing the receiver 170B close to the human ear.
[0229] Microphone 170C, also known as a "microphone" or "speaker," converts sound signals into analog audio signals. When making a call or sending a voice message, a user places their mouth close to microphone 170C and speaks, inputting the sound signal into microphone 170C. Microphone 170C can be a built-in component of the device or an external accessory.
[0230] In some embodiments, the device may include one or more microphones 170C, where each microphone or multiple microphones working together can collect sound signals from all directions and convert the collected sound signals into analog audio electrical signals. It can also achieve noise reduction, sound source identification, or directional recording functions, etc.
[0231] The embodiment of the present application does not impose any specific limitation on the number of microphones 170C.
[0232] The sensor module 180 may include a pressure sensor 180A, a gyroscope sensor 180B, an air pressure sensor 180C, a magnetic sensor 180D, an acceleration sensor 180E, a distance sensor 180F, a proximity light sensor 180G, a fingerprint sensor 180H, a temperature sensor 180J, a touch sensor 180K, an ambient light sensor 180L, a bone conduction sensor 180M, etc.
[0233] It is understood that the structures illustrated in the embodiments of the present application do not constitute specific limitations on the device. In other embodiments of the present application, the device may include more or fewer components than shown, or combine or separate certain components, or arrange the components differently. The components shown in the diagram may be implemented in hardware, software, or a combination of software and hardware.
[0234] For example, Figure 7B shows another exemplary structure of the device. As shown in Figure 7B, the device includes: a processor 501, a memory 502, and a transceiver 503. The implementation of processor 501 and memory 502 can refer to the implementation of the processor and memory of the device shown in Figure 4. Transceiver 503 is used for the device to interact with other devices. Transceiver 503 can be a device based on a communication protocol such as Wi-Fi, Bluetooth, or other protocols.
[0235] In addition, the structures of other devices in the systems shown in FIG. 4 and FIG. 5 can refer to the structures of the devices shown in FIG. 7A and FIG. 7B , and will not be described in detail here.
[0236] 7A and 7B are merely possible examples of the structures of the devices (such as terminals) and other devices (such as servers) in the above system, and do not constitute a limitation on the structures of the devices and other devices in the advertising system.
[0237] The following takes a mobile phone as the above-mentioned device as an example and describes in detail the technical solution provided in the embodiments of the present application in combination with the accompanying drawings.
[0238] The rendering method provided in the embodiment of the present application is described below in conjunction with the drawings in the embodiment of the present application.
[0239] The following describes the rendering method provided by the embodiment of the present application, taking the architecture shown in Figure 5 or Figure 7A as an example. Each unit in the following embodiment may have the components shown in Figure 5 or Figure 7A, which will not be described in detail. It should be noted that the message name or number of messages or parameter names in the message exchanged between the various devices in the embodiment of the present application is only an example, and other names can also be used in the specific implementation. In addition, the actions, terms, etc. involved in the various embodiments of the present application can refer to each other without limitation.
[0240] The following is a detailed description of a rendering method provided in an embodiment of the present application. The following mainly takes a mobile phone as the terminal and a 3D game application as an example, which is described uniformly here, but does not constitute a limitation on the terminal type or application (APP) type.
[0241] This embodiment of the present application provides a rendering method that allows a terminal and a server to collaboratively process application tasks during the application's operation, avoiding performance bottlenecks caused by the server handling application tasks alone and ensuring the application's normal operation as much as possible. Taking the processing flow of a user playing a 3D game on a mobile phone as an example, as shown in Figure 8, the method includes:
[0242] S101. A display device displays the Nth frame of a game screen.
[0243] Exemplarily, the display device is a display screen of a mobile phone.
[0244] S102: The input device receives a control instruction A for the Nth frame of the game screen (referred to as the Nth frame).
[0245] Optionally, the input device may be a controller, keyboard, or mobile phone screen. For example, the mobile phone displays the Nth frame of the game screen 20 of the game application as shown in FIG3 , and the user (player) moves the character 202 in the game screen 20 , and the mobile phone receives the control instruction A for moving the character 202 .
[0246] As a possible implementation manner, after the input device receives the control instruction A input by the player, the control instruction A can be converted into a corresponding input event.
[0247] S103: The game running logic module receives control instruction A.
[0248] As a possible implementation, the input device may transmit the input event corresponding to the control instruction A to the game execution logic module. The game execution logic module may be, for example, a module in an engine of a game application.
[0249] As a possible implementation method, the game execution logic module can be implemented as a CPU, or a functional module in the CPU.
[0250] S104: The game running logic module determines the rendering resources for the N+1th frame.
[0251] The game operation logic module can perform corresponding game logic calculations based on the player's different control instructions A in order to determine the rendering resources. For example, the player moves the character 202 in the Nth frame game screen 20 as shown in Figure 3 through a movement operation, then the game operation logic module can calculate according to the duration and direction of the movement operation, and determine the position of the character 202 in the subsequent game screen (such as the N+1 frame) based on the calculation result. For another example, if the player inputs a skill release operation, the game operation logic module can perform corresponding particle simulation or animation simulation calculations based on the skill release operation and the configuration logic of the game application, and determine the rendering effect of the character 202 in the subsequent game screen based on the simulation calculation result.
[0252] Through this step, the game running logic module can determine the rendering resources required for rendering the game screen, such as determining the grid information, position information, and shader information (used to calculate the lighting conditions related to the characters) of the characters in the game screen.
[0253] S105 . The game running logic module sends a rendering request A for the N+1th frame. The rendering request A is used to indicate rendering resources for the N+1th frame.
[0254] After the game running logic module determines the rendering resources required to render the game screen, it needs to send a rendering request to the graphics rendering system in the mobile phone's game application, so that the graphics rendering system calls the GPU to perform rendering.
[0255] Exemplarily, before rendering the N+1th frame of the game screen, the game execution logic module sends a rendering request A for the N+1th frame, where the rendering request A is used to indicate rendering resources for the N+1th frame.
[0256] Optionally, rendering resources include rendering data and pipeline data. Optionally, pipeline data may vary depending on factors such as the terminal model, computing power, and the rendering requirements of the game application.
[0257] S106 : The graphics rendering system of the mobile phone determines region A and region B of the N+1th frame.
[0258] In an embodiment of the present application, if the developer configures an end-cloud scheduling strategy (rendering strategy) for the game application during the development stage of the game application, the graphics rendering system of the mobile phone will calculate the area rendered by the server (area A) and the area rendered by the mobile phone (area B) according to the end-cloud scheduling strategy, where area B is the area other than area A in the N+1 frame.
[0259] In an embodiment of the present application, if the game application is configured and the end-cloud collaboration capability is enabled, the graphics rendering system of the mobile phone can determine the area A in the N+1 frame that can be rendered by the server in combination with the business needs of the game application, so that the server can share part of the rendering task of the mobile phone, reduce the rendering amount of the mobile phone, and improve rendering efficiency.
[0260] In some embodiments, the game screen includes a static area and a dynamic area. The static area can refer to an area in the game screen where the content remains unchanged, or the degree of change of the picture content between frames is very low (such as below a certain threshold), or the area where the degree of change of the picture content between frames is very slow (such as below a certain threshold). The dynamic area can refer to an area in the game screen where the content changes, or the degree of change of the picture content between frames is very high, or the area where the degree of change of the picture content between frames is very fast. For example, the background (houses, other static objects, etc.) area of the game screen can be used as a static area, and the characters can change with the change of control instruction A, and the area where the characters are located belongs to the dynamic area.
[0261] As a possible implementation method, the graphics rendering system of the mobile phone can determine that the game screen of the dynamic area in the N+1th frame is rendered locally by the mobile phone, and the game screen of the static area in the N+1th frame is rendered by the server, that is, area A is the static area in the N+1th frame, and area B is the dynamic area in the N+1th frame. In this method, the screen content of the static area in the game screen changes little or does not change. Therefore, the screen of this area is handed over to the server for rendering. Even if the network quality between the mobile phone and the server is poor and the server does not feed back the rendering results to the mobile phone in time, the player will not have a significant perception. The screen content of the dynamic area changes or changes significantly. Therefore, the screen of this area is handed over to the mobile phone for rendering. This enables the mobile phone to immediately respond to the player's control command A to perform rendering and present the screen of the dynamic area to the player, improving the smoothness of the game operation.
[0262] In other embodiments, the game screen includes high-order low-frequency areas and low-order high-frequency areas. The rendering computing power consumption of the high-order low-frequency area is relatively high, and the player does not have high requirements for the real-time performance of the screen in this area. Even if the screen in this area is not updated in time, the player's perception is not obvious. The high-order low-frequency area can be, for example, but not limited to, a dynamic global illumination area, a light reflection area, a shadow area, etc. The rendering computing power consumption of the low-order high-frequency area is relatively low, and the player has high requirements for the real-time performance of the screen in this area. The mobile phone needs to respond and update the screen in this area immediately after the player issues the control instruction A.
[0263] As a possible implementation method, the graphics rendering system of the mobile phone can determine that the mobile phone renders the low-order high-frequency area in the N+1th frame, and the server renders the high-order low-frequency area in the N+1th frame, that is, area A is the high-order low-frequency area in the N+1th frame, and area B is the low-order high-frequency area in the N+1th frame.
[0264] S107 : The graphics rendering system of the mobile phone calls the GPU to render area B.
[0265] As a possible implementation, after the graphics rendering system of the mobile phone determines the area B that needs to be rendered by the mobile phone in the N+1th frame, it prepares the rendering data and rendering pipeline of the area B according to the rendering request A.
[0266] As a possible implementation method, after the core rendering system prepares the rendering data of area B and the rendering pipeline of area B, it calls the GPU of the mobile phone to perform rendering.
[0267] Exemplarily, as shown in FIG9 , after the mobile phone determines that the area to be rendered by the mobile phone is the area where the character is located in the N+1th frame (an example of area B), the rendering of the area where the character is located is performed.
[0268] S108. The GPU returns the rendering result of area B to the graphics rendering system of the mobile phone.
[0269] S109: The graphics rendering system of the mobile phone sends a rendering request B for area A to the server.
[0270] In some embodiments, the rendering request includes rendering data of region A in the N+1th frame.
[0271] For example, as shown in Figure 9, after the mobile phone determines that the area that needs to be rendered by the server is the area excluding the characters in the N+1 frame (an example of area A), it sends a rendering request B to the graphics rendering system of the server. The rendering request B can carry the rendering data of area A, such as the normals, vertices, maps, textures, materials and other data of objects such as the TV and sofa in area A.
[0272] S110 : The graphics rendering system of the server calls the GPU of the server to render area A in the N+1th frame.
[0273] As a possible implementation method, after receiving the rendering request B, the server starts the corresponding cloud rendering task, and the data storage retrieval service in the server's graphics rendering system calls the GPU through the RHI to perform rendering.
[0274] Continuing with the above example, let's say a rendering request B from a mobile phone carries rendering data for area A, such as the normals, vertices, textures, and materials of objects like the TV and sofa in area A. The server can render area A based on the rendering data.
[0275] S111. The GPU of the server returns the rendering result of area A.
[0276] As a possible implementation manner, the GPU of the server returns the rendering result of area A to the graphics rendering system of the server, and the graphics rendering system of the server returns the rendering result of area A to the graphics rendering system of the mobile phone.
[0277] S112 : The graphics rendering system of the mobile phone fuses the rendering results of area A and the rendering results of area B to obtain the N+1th frame (game screen).
[0278] For example, as shown in Figure 9, the mobile phone merges the locally rendered character area B (an example of the first area) with the server-rendered background area A (an example of the second area). The bottom layer is the background and the upper layer is the character, and the N+1th frame of the game screen is obtained (an example of the first screen).
[0279] For example, the phone renders the basic outlines of each object in frame N+1, and the server renders the dynamic global illumination and reflection effects in frame N+1. The phone then overlays and fuses the dynamic global illumination and reflection effects onto the basic outlines of each object to produce the game image in frame N+1.
[0280] S113. The graphics rendering system of the mobile phone sends the data of the N+1th frame to the display device.
[0281] Exemplarily, the mobile phone sends the data of the N+1th frame of the game screen obtained after fusion as shown in FIG9 to the display screen.
[0282] S114. The display device displays the N+1th frame.
[0283] Still following the above example, after the display screen receives data of the N+1 frame of game screen, it displays the N+1 frame of game screen.
[0284] The above description is based on the rendering of the N+1 frame as an example. The rendering process of other frames of the game screen can refer to the rendering process of the N+1 frame above.
[0285] In an embodiment of the present application, a flexible end-cloud collaboration strategy can be configured so that tasks during the operation of a 3D application can be assigned to the terminal and server as needed, and the terminal and server work together to support the operation of the 3D application. For example, only the rendering tasks of some high-order low-frequency areas (such as areas with global illumination, reflection and other effects) are assigned to the server. For another example, only the rendering tasks can be assigned to the server for execution, and other tasks other than the rendering tasks (such as payment, account login) are performed by the terminal. For another example, only some rendering tasks are assigned to the server for execution. In this way, the GPU and CPU resources of the terminal can be fully utilized to avoid wasting the computing resources of the terminal.
[0286] The above description uses the example of a mobile phone rendering a partial area in the N+1 frame and a server rendering another partial area in the N+1 frame. In other embodiments, the rendering task of the complete game screen of the N+1 frame can be handed over to the server for execution, and the mobile phone performs other tasks besides rendering during the game, such as performing payment tasks.
[0287] The above description uses the example of the terminal receiving the rendering result returned by the server. In other embodiments, the terminal may not receive the rendering result from the server. For example, when the network quality between the terminal and the server is poor, if the terminal does not receive the rendering result from the server within a certain period of time, the terminal can present the 3D game screen based on the local rendering result. Exemplarily, as shown in (a) of Figure 10A, the terminal renders the area where the character is located in the Mth frame of the game screen, and the terminal sends a rendering request to the server. Within a certain period of time, the terminal receives the rendering result of the background area in the Mth frame from the server, and the terminal merges the rendering result of the background area and the rendering result of the area where the character is located to obtain the Mth frame. Thereafter, as shown in (b) of Figure 10A, the terminal continues to render the area where the character is located in the M+1th frame of the game screen, and the terminal sends a rendering request to the server. Within a certain period of time, if the terminal does not receive the rendering result (an example of the fourth rendering result) of the background area (an example of the fourth area) in the M+1th frame from the server, the terminal obtains the M+1th frame based on the local rendering result (an example of the third rendering result) of the area where the character is located (an example of the third area). As a possible implementation manner, the terminal may fuse the rendering result of the background area in the Mth frame and the rendering result of the area where the person is located in the M+1th frame to obtain the M+1th frame.
[0288] In this method, the terminal renders the game screen in areas with higher real-time requirements (such as the area where the character is located), or it is understood that the terminal renders the game screen in areas that have a higher impact on screen smoothness, user operation, or user vision. In this way, even if the network quality between the terminal and the server is poor and the terminal cannot receive or cannot receive the server's rendering results in a timely manner, it will not affect the terminal's generation of the game screen containing this part (such as the area where the character is located), thereby meeting the demand for real-time generation and presentation of the game screen containing this part, and improving the smoothness of the game screen display.
[0289] The present application also provides a rendering method, wherein the mobile phone can determine whether to hand over the rendering task to the server based on the network quality. As shown in FIG10B , the method may include:
[0290] For the specific implementation of S201-S205, please refer to the above S101-S105.
[0291] S206: The graphics rendering system of the mobile phone determines that the network quality meets the conditions.
[0292] The network quality meets the preset conditions, which may mean that the network quality meets at least one of the following conditions: the packet loss rate is less than or equal to the packet loss rate threshold (first threshold), the bandwidth between the mobile phone and the server is greater than or equal to the bandwidth threshold (second threshold), the transmission delay between the terminal and the server is less than or equal to the third threshold, and the transmission rate between the mobile phone and the server is greater than or equal to the rate threshold (fourth threshold). Of course, the preset conditions can also be other conditions, such as the throughput meeting a certain threshold. The embodiments of the present application do not limit the preset conditions, as long as they can be used to judge the quality of the network and determine whether the terminal and the server are co-rendering.
[0293] In this embodiment of the present application, if the network quality meets the requirements, steps S207-S210 below can be executed, and the server will perform the rendering task of frame N+1. Meeting the requirements means that the network quality between the mobile phone and the server is good, which can ensure that the server can return the rendering results to the mobile phone in a timely manner after rendering, thereby improving the smoothness of the game.
[0294] Conversely, if the network quality does not meet the requirements, it means that the connection between the phone and the server is poor. In this case, to avoid the server performing rendering and delaying the rendering results to the phone in time, the phone does not send a rendering request to the server. Instead, the phone renders the N+1 frame locally. Later, when the network quality meets the requirements, the rendering task of subsequent frames can be handed over to the server.
[0295] S207: The graphics rendering system of the mobile phone sends a rendering request for the N+1th frame to the graphics rendering system of the server.
[0296] In some embodiments, the rendering request includes rendering data of the N+1th frame.
[0297] For example, when the bandwidth between the mobile phone and the server is high, the mobile phone sends a rendering request for the N+1 frame as shown in FIG9 to the server, and the rendering request carries rendering data of objects such as people, TV, sofa, etc. in the N+1 frame.
[0298] S208 : The graphics rendering system of the server calls the GPU of the server to render the N+1th frame.
[0299] S209: The GPU of the server returns the rendering result of the N+1th frame.
[0300] S210. The graphics rendering system of the mobile phone sends the rendering result of the N+1th frame to the display device.
[0301] S211. The display device displays the N+1th frame according to the rendering result of the N+1th frame.
[0302] In some embodiments, the method shown in FIG8 can be implemented in combination with the method shown in FIG10B . For example, before rendering the N+1 frame of the game screen, the mobile phone can first determine the network quality, as shown in FIG11 . If the network quality between the mobile phone and the server is good, the mobile phone can hand over the rendering task of part of the area (such as static area A) in the N+1 frame to the server, and the rendering task of the other part of the area (such as dynamic area B) in the N+1 frame to the mobile phone itself. Conversely, if the network quality is poor, the mobile phone renders the N+1 frame locally.
[0303] The present application also provides a rendering method. When a mobile phone uploads rendering data to a server via a rendering request, the mobile phone may only upload the index of the rendering data that has been previously uploaded to the server to reduce transmission overhead. For example, using the scheme for reducing transmission overhead in the method shown in FIG8 as an example, as shown in FIG12, the method may include:
[0304] For the specific implementation of S301-S308, please refer to the above S101-S108.
[0305] S309 : The graphics rendering system of the mobile phone sends a rendering request B for area A to the graphics rendering system of the server. The rendering request B includes an index of the rendering data of area A.
[0306] In the embodiment of the present application, the mobile phone calculates the index of the rendering data of area A and uploads the index of the rendering data to the server. As a possible implementation method, the mobile phone calculates the hash value of the rendering data and uses the hash value as the index of the rendering data.
[0307] S310: The graphics rendering system of the server determines the rendering data that has been uploaded, and obtains other rendering data that has not been uploaded to the server from the terminal.
[0308] The rendering data may include more fine-grained data. For example, the rendering data includes an action library, mesh, and texture. The action library can be used to represent the posture of an object (such as a person).
[0309] After the graphics rendering system of the server receives the index of the rendering data of area A, it determines whether the rendering data has been uploaded before based on the index of the rendering resource. If the rendering data has been uploaded before, there is no need for the mobile phone to upload the rendering data again. The server can query the corresponding rendering data in the server based on the index uploaded by the mobile phone. On the contrary, if the rendering data has not been uploaded before, the server notifies the mobile phone to upload the rendering data. Exemplarily, after receiving the rendering request, the server locally queries the hash value of the mesh of the object (such as person A) that needs to be rendered in area A. After the query, the mesh of person A has been uploaded, and the action library corresponding to the mesh is a standing posture. If the server needs to render person A in a sitting posture this time, and the mobile phone has not uploaded the action library for the sitting posture, the server can return a notification to the mobile phone, notifying the mobile phone to upload the action library for the sitting posture. After the mobile phone uploads the action library for the sitting posture according to the notification from the server, the server performs rendering on person A based on the action library for the sitting posture uploaded by the mobile phone this time, as well as the rendering data such as the mesh of person A. Only two fine-grained rendering data types, action library and mesh, are listed here. In specific implementations, the server can compare other more or fewer fine-grained rendering data and determine whether the mobile phone needs to upload the corresponding rendering data based on the hash value.
[0310] As a possible implementation, the server stores the received rendering data in a resource library, calculates a hash value for the rendering data, and stores the hash value for the rendering data. For example, Table 1 shows the rendering data stored in the server and the hash values corresponding to each rendering data. Each color block on garment 1 can correspond to a texture, which can be used on other garments. For example, texture 1 or texture 2 on a garment can be reused to describe the color of the corresponding area on other garments.
[0311] Table 1
[0312] As a possible implementation method, after the server receives the hash value of the rendering data of area A from the mobile phone, it verifies the hash value and queries the server's resource library for the rendering data corresponding to the hash value. If the rendering data corresponding to the hash value is found in the resource library, it means that the rendering data has been uploaded before and the mobile phone does not need to re-upload the rendering data.
[0313] Optionally, the rendering data of region A may be one or more rendering data. For example, the rendering data of region A includes: the background texture in the N+1th frame of the game screen. For another example, the rendering data of region A includes: the background texture in the N+1th frame of the game screen, and the rendering data of the global illumination in the background.
[0314] Optionally, the one or more rendering data may be rendering data that has been uploaded to the server in the past, or some rendering data may have been uploaded to the server, while some rendering data may not have been uploaded to the server. This embodiment of the present application does not impose any limitation on this.
[0315] In this embodiment of the present application, if rendering data A (such as the tables and chairs in the game background) has been uploaded in the past, the server can notify the mobile phone to upload rendering data other than rendering data A for area A (such as other rendering data other than the rendering data of the tables and chairs in area A). The mobile phone does not need to repeatedly upload rendering data A to the server, which can reduce upload overhead.
[0316] On the contrary, if the rendering data A has not been uploaded in the past, the server may notify the mobile phone to upload the rendering data of the area A (including the rendering data A corresponding to the upload index and other rendering data).
[0317] S311 . The graphics rendering system of the server calls the GPU of the server to render area A.
[0318] In some embodiments, if the server determines that certain rendering data required for rendering area A has been uploaded in the past, the server can retrieve the rendering data from the resource library. If the server determines that certain rendering data required for rendering area A has not been uploaded in the past, the server can request, notify, or instruct the mobile phone to upload the rendering data.
[0319] After the server obtains all the rendering data required to render area A, it performs rendering of area A.
[0320] Compared to the method where the terminal submits rendering data synchronously every time it submits a rendering request to the cloud side, which results in excessive data transmission and long upload time, the above method, on the one hand, can use the method of calculating the index to establish a globally unique index for the rendering data to be uploaded. In this way, the rendering data only needs to be uploaded for the first time to form a globally unique index on the server. In the subsequent rendering process, when the server needs the rendering data (such as a background map), the terminal only needs to notify the server of the index corresponding to the rendering data. There is no need for the terminal to repeatedly upload the rendering data. The server can find the rendering data that has been uploaded before through the index. It can be seen that if the server needs a lot of rendering data to perform rendering, this method can avoid repeated uploading of rendering data and save upload bandwidth.
[0321] For example, when the mobile phone renders the Nth frame, it uploads the background map required for the Nth frame to the server, and the server stores the background map in the resource library. Subsequently, when rendering the lower N+1 frame, since the background between the two frames does not change, the mobile phone uploads the index of the background map. The server searches the resource library for the corresponding background map based on the index and reuses the background map to render the corresponding area in the lower N+1 frame. It can be seen that in some scenarios, the server can reuse the rendering data (such as maps) that the terminal has previously uploaded, without the terminal having to repeatedly upload the rendering data.
[0322] S312-S315 can refer to the above S111-S114.
[0323] The present application also provides a rendering method that can improve the processing efficiency of cloud game-related tasks during the operation of cloud games. As shown in Figure 13, the method includes the following steps:
[0324] S401: The game application displays the game screen.
[0325] The game screen is rendered by the server. For example, when the network quality between the server and the mobile phone is good, the server rendering the game screen can reduce the rendering cost of the mobile phone without affecting rendering efficiency. Alternatively, the game screen is rendered by the server and the mobile phone in a coordinated manner. Alternatively, the game screen is rendered by the mobile phone. For example, when the network quality between the server and the mobile phone is poor, the mobile phone rendering the game screen can avoid rendering delays when the mobile phone loses network connection.
[0326] S402: The game application receives a control instruction B, where the control instruction B is used to trigger a payment task.
[0327] For example, if a player wants to purchase gaming equipment while playing a cloud game, he or she can click the purchase button in the interface (an example of the first operation).
[0328] S403: The game application sends a control instruction B to the game execution logic module.
[0329] After receiving the control instruction B from the player clicking the purchase button, the game application sends the control instruction B to the game running logic module.
[0330] S404: The game running logic module launches the payment application in response to the control instruction B.
[0331] S405: The payment application displays a payment interface.
[0332] In some embodiments, the game execution logic module responds to control instruction B and launches a local payment application (an example of a second application) on the mobile phone, which displays a payment interface. The user then makes a payment through the payment interface, and after the payment is completed, the mobile phone may display a payment completion interface.
[0333] Since most tasks such as mobile phone payments rely on local resources of the mobile phone, compared to the related art where all the game logic runs on the server, the server cannot directly use the corresponding resources of the mobile phone, and the payment task processing efficiency is low, in the embodiment of the present application, during the game running process, after the game running logic module receives the control instruction B, it can directly call the local resources of the mobile phone to process the payment task. For example, the game running logic module can directly pull up the local payment application, and players can make payments through the interface of the payment application to purchase game equipment. It can be seen that in this method, during the game running process, tasks such as payment that rely on the support of terminal functions are processed by the terminal. Therefore, the terminal can quickly process the payment task through the terminal functions, thereby improving the processing efficiency of the payment task.
[0334] Here, we take the example of a terminal directly launching a local payment application to quickly implement the payment function during the operation of a 3D game application (an example of a first application). In other embodiments, during the operation of the 3D game application, the terminal can also directly launch other local applications according to the current scenario or user needs, so as to quickly and timely implement the corresponding functions / execute the corresponding tasks.
[0335] The above method splits and decouples CPU and GPU computing logic, allowing the cloud to perform some GPU computing (such as rendering) while retaining some GPU computing functions (such as rendering) on the client side. Due to the cloud's strong computing capabilities, high-computing tasks can be offloaded to the cloud. For example, cloth simulation and fluid simulation can be performed on the cloud.
[0336] It should be noted that the above-mentioned multiple embodiments can be combined and the combined scheme can be implemented. Optionally, some operations in the process of each method embodiment are optionally combined, and / or the order of some operations is optionally changed. In addition, the execution order between the steps of each process is only exemplary and does not constitute a limitation on the execution order between the steps. There can also be other execution orders between the steps. It is not intended to indicate that the execution order is the only order in which these operations can be performed. Ordinary technicians in this field will think of many ways to reorder the operations described herein. In addition, it should be pointed out that the process details involved in a certain embodiment of this article are also applicable to other embodiments in a similar manner, or different embodiments can be used in combination.
[0337] In addition, some steps in the method embodiment may be equivalently replaced with other possible steps. Alternatively, some steps in the method embodiment may be optional and may be deleted in certain usage scenarios. Alternatively, other possible steps may be added to the method embodiment. Alternatively, the execution entities (such as functional modules) of some steps in the method embodiment may be replaced with other execution entities.
[0338] Furthermore, the above method embodiments may be implemented separately or in combination.
[0339] Other embodiments of the present application provide a device, which may be the above-mentioned terminal (such as a mobile phone, etc.) or server. The device may include: a display screen, a memory, and one or more processors. The display screen, the memory, and the processor are coupled. The memory is used to store computer program code, and the computer program code includes computer instructions. When the processor executes the computer instructions, the device can perform the various functions or steps performed by the mobile phone in the above-mentioned method embodiment. The structure of the device can refer to the device shown in Figure 3.
[0340] The core structure of the device can be represented as the structure shown in FIG14 , and the device includes: a processing module 1301 , an input module 1302 , a storage module 1303 and a display module 1304 .
[0341] Processing module 1301 may include at least one of a central processing unit (CPU), an application processor (AP), or a communication processor (CP). Processing module 1301 may perform operations or data processing related to the control and / or communication of at least one of the other components of the user device. Specifically, processing module 1301 may be used to control the content displayed on the main screen based on certain trigger conditions. Processing module 1301 may also be used to process input instructions or data and determine a display style based on the processed data.
[0342] Input module 1302 is used to obtain user input commands or data and transmit the obtained commands or data to other modules of the device. Specifically, input methods of input module 1302 may include touch, gestures, proximity to the screen, etc., or voice input. For example, the input module can be the device's screen, obtain user input operations, generate input signals based on the obtained input operations, and transmit the input signals to processing module 1301.
[0343] The storage module 1303 may include a volatile memory and / or a non-volatile memory. The storage module is used to store at least one instruction or data related to other modules of the user equipment.
[0344] The display module 1304 may include, for example, a liquid crystal display (LCD), a light emitting diode (LED) display, an organic light emitting diode (OLED) display, a microelectromechanical system (MEMS) display, or an electronic paper display, and is used to display user-viewable content (e.g., text, images, videos, icons, symbols, etc.).
[0345] Optionally, a communication module 1305 is also included to support personal devices communicating with other personal devices (via a communication network). For example, the communication module can be connected to a network via wireless communication or wired communication to communicate with other personal devices or network servers. Wireless communication can adopt at least one of cellular communication protocols, such as Long Term Evolution (LTE), Advanced Long Term Evolution (LTE-A), Code Division Multiple Access (CDMA), Wideband Code Division Multiple Access (WCDMA), Universal Mobile Telecommunications System (UMTS), Wireless Broadband (WiBro) or Global System for Mobile Communications (GSM). Wireless communication may include, for example, short-range communication. Short-range communication may include at least one of Wireless Fidelity (Wi-Fi), Bluetooth, Near Field Communication (NFC), Magnetic Stripe Transmission (MST) or GNSS.
[0346] It should be noted that each functional module of the device can execute one or more steps in the above method embodiment.
[0347] An embodiment of the present application also provides a chip system, as shown in Figure 15, which includes at least one processor 1401 and at least one interface circuit 1402. The processor 1401 and the interface circuit 1402 can be interconnected via lines. For example, the interface circuit 1402 can be used to receive signals from other devices (such as the memory of the device). For another example, the interface circuit 1402 can be used to send signals to other devices (such as the processor 1401). Exemplarily, the interface circuit 1402 can read instructions stored in the memory and send the instructions to the processor 1401. When the instructions are executed by the processor 1401, the device can execute the various steps in the above embodiments. Of course, the chip system can also include other discrete devices, which is not specifically limited in the embodiment of the present application.
[0348] An embodiment of the present application further provides a computer storage medium, which includes computer instructions. When the computer instructions are executed on the above-mentioned device, the device executes each function or step executed by the mobile phone in the above-mentioned method embodiment.
[0349] The embodiment of the present application further provides a computer program product, which, when executed on a computer, enables the computer to execute the functions or steps executed by the mobile phone in the above method embodiment.
[0350] Through the description of the above implementation methods, technical personnel in the relevant field can clearly understand that for the convenience and simplicity of description, only the division of the above-mentioned functional modules is used as an example. In actual applications, the above-mentioned functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above.
[0351] In the several embodiments provided in this application, it should be understood that the disclosed devices and methods can be implemented in other ways. For example, the device embodiments described above are only schematic. For example, the division of the modules or units is only a logical function division. There may be other division methods in actual implementation. For example, multiple units or components can be combined or integrated into another device, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.
[0352] The units described as separate components may or may not be physically separate, and the components shown as units may be one physical unit or multiple physical units, that is, they may be located in one place or distributed in multiple places. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
[0353] In addition, the functional units in the various embodiments of the present application may be integrated into a single processing unit, or each unit may exist physically separately, or two or more units may be integrated into a single unit. The aforementioned integrated units may be implemented in the form of hardware or software functional units.
[0354] If the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a readable storage medium. Based on this understanding, the technical solution of the embodiment of the present application is essentially or the part that contributes to the prior art or all or part of the technical solution can be embodied in the form of a software product, which is stored in a storage medium and includes several instructions for enabling a device (which can be a single-chip microcomputer, chip, etc.) or a processor (processor) to execute all or part of the steps of the method described in each embodiment of the present application. The aforementioned storage medium includes various media that can store program codes, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk.
[0355] The above content is only a specific embodiment of this application, but the scope of protection of this application is not limited to this. Any changes or replacements within the technical scope disclosed in this application should be included in the scope of protection of this application. Therefore, the scope of protection of this application should be based on the scope of protection of the claims.
Claims
1. A rendering method, characterized in that: Applied to a terminal, the terminal having a first application installed therein, the method comprising: Perform rendering on a first area of a first screen of the first application to obtain a first rendering result of the first area; Sending a first rendering request to a server, wherein the first rendering request is used to request the server to render a second area of the first picture to obtain a second rendering result; the second area is an area of the first picture other than the first area; Obtaining the second rendering result from the server; Merging the first rendering result and the second rendering result to obtain the first picture; The first screen is displayed.
2. The method according to claim 1, characterized in that: Also includes: Performing rendering on a third area of the second screen of the first application to obtain a third rendering result of the third area; Sending a second rendering request to the server, where the second rendering request is used to request the server to render a fourth area of the second picture to obtain a fourth rendering result; the fourth area is an area of the second picture excluding the third area; When the fourth rendering result is not obtained from the server, the second picture is presented according to the third rendering result.
3. The method according to claim 1 or 2, characterized in that: The first area is a dynamic picture area in the first picture, and the second area is a static picture area in the first picture; or, the first area is a low-order high-frequency area in the first picture, and the second area is a high-order low-frequency area in the first picture.
4. The method according to any one of claims 1 to 3, characterized in that: Send the first rendering request to the server, including: Determining the network quality between the terminal and the server; If the network quality between the terminal and the server meets a preset condition, the first rendering request is sent to the server.
5. The method according to claim 4, characterized in that The network quality between the terminal and the server meets the preset condition, which includes satisfying at least one of the following conditions: The packet loss rate between the terminal and the server is less than or equal to a first threshold, the bandwidth between the terminal and the server is greater than or equal to a second threshold, the transmission delay between the terminal and the server is less than or equal to a third threshold, and the transmission rate between the terminal and the server is greater than or equal to a fourth threshold.
6. The method according to any one of claims 1 to 5, characterized in that: Also includes: Acquire data of the first screen of the first application; According to a rendering strategy, the first area and the second area in the first picture are determined.
7. The method according to claim 6, characterized in that The rendering strategy includes: whether to enable the end-cloud collaboration capability when the first application is running, the preset conditions for enabling the end-cloud collaboration capability, and the screen area that needs to be rendered by the server when the first application is running.
8. The method according to claim 6 or 7, characterized in that: The rendering strategy is a strategy preset by a developer in the first application.
9. The method according to any one of claims 1 to 8, characterized in that: Also includes: Determine information of a first rendering resource corresponding to the second area; The first rendering request includes information about the first rendering resource; The information is used by the server to search whether the first rendering resource is stored.
10. The method according to any one of claims 1 to 9, characterized in that: The first application includes a 3D application, and the 3D application includes at least one of the following applications: a 3D game application, a 3D social application, and a 3D live broadcast application.
11. The method according to any one of claims 1 to 10, characterized in that: Performing rendering on a first area of a first screen of the first application includes: Rendering is performed on a first area of a first screen of the first application by a graphics processor GPU.
12. A rendering method, characterized in that: Applied to a server, the method comprises: receiving a first rendering request from a terminal, wherein the first rendering request is used to request the server to render a second area of the first picture to obtain a second rendering result; the second area is an area of the first picture other than the first area; The second rendering result is sent to the terminal; the second rendering result is used to be merged with the first rendering result obtained by the terminal rendering the first area to obtain the first picture.
13. The method according to claim 12, characterized in that The first area is a dynamic picture area in the first picture, and the second area is a static picture area in the first picture; or, the first area is a low-order high-frequency area in the first picture, and the second area is a high-order low-frequency area in the first picture.
14. A terminal, characterized in that: include: Processor and memory; The memory is used to store computer-executable instructions, and the processor is coupled to the memory. When the terminal is running, the processor The computer executes the computer-executable instructions stored in the memory so that the terminal performs the method according to any one of claims 1 to 11.
15. A server, characterized in that: include: Processor and memory; The memory is used to store computer-executable instructions. The processor is coupled to the memory. When the server is running, the processor executes the computer-executable instructions stored in the memory to enable the server to execute the method according to claim 12 or 13.
16. A computer-readable storage medium, characterized in that: The computer-readable storage medium includes computer instructions. When the computer instructions are executed on a computer, the computer is caused to execute the method according to any one of claims 1 to 11, or the computer is caused to execute the method according to claim 12 or 13.
17. A chip system, characterized in that: The method comprises one or more processors. When the one or more processors execute instructions, the one or more processors execute the method according to any one of claims 1 to 11, or execute the method according to claim 12 or 13.
18. A rendering system, characterized in that: It comprises the terminal as claimed in claim 14 and the server as claimed in claim 15.
Citation Information
Patent Citations
Game picture generation method and device and mobile terminal
CN111111175A
Video rendering cooperation method and device, equipment and storage medium
CN114501062A
Image rendering method, terminal and cloud equipment
CN114782485A
Live broadcast data sending method, device and system
CN116193153A
Cited By
VR rendering method and related device
CN120198564A
VR rendering method and related device
CN120198564B
Method for emitting particles based on dissipation edge
CN120726187A