WO2022228521A1 - 渲染方法及其装置、计算机设备、存储介质 - Google Patents
渲染方法及其装置、计算机设备、存储介质 Download PDFInfo
- Publication number
- WO2022228521A1 WO2022228521A1 PCT/CN2022/089931 CN2022089931W WO2022228521A1 WO 2022228521 A1 WO2022228521 A1 WO 2022228521A1 CN 2022089931 W CN2022089931 W CN 2022089931W WO 2022228521 A1 WO2022228521 A1 WO 2022228521A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- rendering
- node
- task
- client
- similarity
- Prior art date
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 1009
- 238000000034 method Methods 0.000 title claims abstract description 74
- 238000007726 management method Methods 0.000 claims description 109
- 238000012545 processing Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 9
- 238000013500 data storage Methods 0.000 claims description 6
- 239000000463 material Substances 0.000 claims description 6
- 230000008569 process Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 9
- 230000008859 change Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 3
- 239000013067 intermediate product Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling game characters or game objects based on the game progress
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
Definitions
- the present application relates to the technical field of image rendering, and in particular, to a rendering method and device thereof, computer equipment, and storage medium.
- the rendering on the cloud refers to using rendering resources on the cloud to render the interface of the application that the terminal needs to display according to the operation according to the user's operation on the terminal when the application is running in the terminal.
- the management node on the cloud can allocate a rendering node for the client to perform the rendering task of the client in the rendering resources on the cloud according to the rendering request of the client, so that the rendering node can perform the rendering task of the client. Renders the interface of the application running in the client and sends the rendered image to the client.
- the rendering node performs the rendering task
- the management node reassigns the rendering node to the client
- the reassigned rendering node needs to re-perform the rendering operation according to the rendering requirement of the client, resulting in low rendering efficiency.
- the present application provides a rendering method and device, computer equipment, and storage medium.
- the present application can improve rendering efficiency.
- the technical solutions provided by the present application are as follows:
- the present application provides a rendering method, the rendering method includes: a first rendering node receives an instruction instructing to execute a rendering task generated by a client; the first rendering node obtains a state parameter of the rendering task, the state parameter of the rendering task Generated by the second rendering node executing the rendering task; the first rendering node continues to execute the rendering task based on the state parameter, and obtains the rendered image of the rendering task; the first rendering node sends the rendered image to the client.
- the first rendering node after receiving the instruction instructing to execute the rendering task generated by the client, the first rendering node obtains the state parameter generated by the second rendering node executing the rendering task, and continues to execute based on the state parameter. For the rendering task, the rendered image of the rendering task is obtained, and the rendered image is sent to the client.
- the state parameter is obtained by the second rendering node performing the rendering task in advance, on the one hand, the first rendering node can directly perform the subsequent rendering operation according to the state parameter, and the first rendering node does not need to send it again according to the client.
- the state parameters are obtained by rendering the rendering instruction of the first rendering node, which reduces the consumption of rendering resources of the first rendering node and improves the rendering efficiency. Scheduling of rendering nodes that perform client-side rendering tasks ensures user experience.
- the first rendering node obtains the state parameters of the rendering task, which specifically includes: the first rendering node obtains the state parameters from the state storage node, the state parameters are stored in the state storage node by the second rendering node, and the first rendering node obtains the state parameters from the state storage node.
- a rendering node and a state storage node are deployed on different hosts, and a second rendering node and a state storage node are deployed on different hosts.
- the first rendering node when the first rendering node and the second rendering node are deployed on the same host, the first rendering node obtains the state parameters of the rendering task, which specifically includes: The state parameters are obtained from the storage medium of the host.
- the first rendering node obtains the state parameters of the rendering task, which specifically includes: the first rendering node obtains the state parameters of the rendering task from the host where the second rendering node is located.
- the state parameters are obtained from the storage medium.
- the state parameter can be regarded as an intermediate product of the second rendering node from executing the rendering instruction flow to obtaining the rendered image.
- the state parameters include rendering scene configuration parameters
- the rendering scene configuration parameters include: the position of the rendering model in the rendering scene in the rendering task, material information, texture map information, light source type, light source position, camera position and One or any combination of the angle, and the data storage address of the rendered model.
- the state parameter further includes a rendering model parameter
- the rendering model parameter includes: one or any combination of the total number of vertices, the total number of triangular patches, and the color of the rendering model in the rendering task.
- the state parameters include rendering model parameters
- the storage pressure and implementation cost of the state parameters will increase, compared to the implementation method of obtaining rendering model parameters from the original storage location of rendering model parameters when the state parameters do not include rendering model parameters, Obtaining rendering model parameters from this state parameter effectively improves the efficiency of obtaining rendering model parameters.
- the present application provides a rendering method, which includes: a management node obtains description information of a rendering target in a rendering task generated by a client; the management node obtains a rendering target described by the description information and each rendering managed by the management node The similarity of the rendering target of the rendering task executed by the node; the management node indicates that the rendering node whose similarity is greater than the specified similarity threshold executes the rendering task of the client.
- the similarity between the rendering target described by the description information and the rendering target of the rendering task executed by a certain rendering node is greater than the execution similarity threshold, it means that the two need to render more of the same data.
- the rendering node executes the rendering task of the client, so that at least two rendering tasks with greater similarity can share rendering resources, and can use the same resource to implement at least part of the rendering operations in different rendering tasks, reducing repeated rendering operations.
- the consumption of rendering resources is reduced, so that the limited rendering resources can be used to provide services to more users, which helps to improve the utilization of rendering resources.
- the management node obtains the similarity between the rendering target described in the description information and the rendering target of the rendering task executed by each rendering node managed by the management node, including: The total number of identical rendering models included in the rendering target and the rendering target described by the description information; the management node determines the similarity based on the total number.
- the management node may also process the total number of identical rendering models corresponding to any rendering node according to the characteristics of the rendering model included in the rendering target, so as to more accurately evaluate the The similarity between the rendering target of the rendering task executed by the rendering node and the rendering target described by the description information.
- the management node obtains the similarity between the rendering target described by the description information and the rendering target of the rendering task executed by each rendering node managed by the management node, and further includes: the management node obtains the total number of vertices of each identical rendering model, At least one parameter of the total number of triangle patches and the size of the storage space occupied.
- the management node determines the similarity based on the total number, which specifically includes: the management node determines the similarity based on the total number and at least one parameter.
- the management node indicates the rendering nodes whose similarity is greater than the specified similarity threshold, and executes the rendering tasks of the client, including: the management node obtains the similarity greater than the specified similarity.
- the load status of the rendering node with the threshold when the load status of the rendering node with the similarity greater than the specified similarity threshold meets the specified load condition, the management node indicates the rendering node whose similarity is greater than the specified similarity threshold and executes the rendering task of the client.
- the description information includes any one of the following: information used to describe a browse file that needs to be accessed by a rendering task of the client, and information used to describe a rendering target obtained by a rendering node performing a rendering operation based on a rendering instruction of the client.
- the present application provides a rendering device, where a first rendering node is deployed, and the rendering device includes: a receiving module for receiving an instruction instructing to execute a rendering task generated by a client; a first obtaining module , used to obtain the state parameters of the rendering task, the state parameters of the rendering task are generated by the second rendering node executing the rendering task; the first processing module is used to continue to execute the rendering task based on the state parameters, and obtain the rendering image of the rendering task; the sending module , which is used to send the rendered image to the client.
- the first obtaining module is specifically configured to: obtain the state parameter from the state storage node, the state parameter is stored in the state storage node by the second rendering node, and the first rendering node and the state storage node are deployed on different hosts, And the second rendering node and the state storage node are deployed on different hosts.
- the first obtaining module is specifically configured to: obtain the state parameter from the storage medium of the host where the first rendering node is located.
- the first obtaining module is specifically configured to: obtain the state parameter from the storage medium of the host where the second rendering node is located.
- the state parameters include rendering scene configuration parameters
- the rendering scene configuration parameters include: the position of the rendering model in the rendering scene in the rendering task, material information, texture map information, light source type, light source position, camera position and angle, and rendering.
- One or any combination of data storage addresses for the model are possible.
- the state parameter further includes a rendering model parameter
- the rendering model parameter includes: one or any combination of the total number of vertices, the total number of triangular patches, and the color of the rendering model in the rendering task.
- the present application provides a rendering device, in which a management node is deployed, the rendering device includes: a second acquisition module for acquiring description information of a rendering target in a rendering task generated by a client; a second acquisition module The obtaining module is also used to obtain the similarity between the rendering target described by the description information and the rendering target of the rendering task executed by each rendering node managed by the management node; the second processing module is used to indicate the similarity greater than the specified similarity threshold. , which performs client-side rendering tasks.
- the second acquisition module is specifically used for: respectively acquiring the rendering target of the rendering task executed by each rendering node managed by the management node and the total number of identical rendering models included in the rendering target described by the description information; determining the similarity based on the total number. .
- the second obtaining module is specifically configured to: obtain at least one parameter in the total number of vertices, the total number of triangular patches, and the size of the occupied storage space of each identical rendering model; based on the total number and at least one parameter, determine the similarity Spend.
- the processing module is specifically configured to: obtain the load status of the rendering nodes whose similarity is greater than the specified similarity threshold; when the load status of the rendering nodes whose similarity is greater than the specified similarity threshold satisfies the specified load condition, indicate that the similarity is greater than The render node that specifies the similarity threshold to perform client-side rendering tasks.
- the description information includes any one of the following: information used to describe a browse file that needs to be accessed by a rendering task of the client, and information used to describe a rendering target obtained by a rendering node performing a rendering operation based on a rendering instruction of the client.
- the present application provides a computer device, the computer device includes a processor and a memory; a computer program is stored in the memory; when the processor executes the computer program, the computer device implements the rendering provided by the first aspect or the second aspect of the present application method.
- the present application provides a storage medium, which is a non-volatile computer-readable storage medium.
- a storage medium which is a non-volatile computer-readable storage medium.
- the present application provides a computer program product comprising instructions, which, when the computer program product is run on a computer, causes the computer to execute the rendering method provided in the first aspect or the second aspect of the present application.
- FIG. 1 is a schematic diagram of an implementation scenario involved in a rendering method provided by an embodiment of the present application
- FIG. 2 is a schematic diagram of an implementation scenario involved in another rendering method provided by an embodiment of the present application
- FIG. 3 is a schematic diagram of an implementation scenario involved in still another rendering method provided by an embodiment of the present application.
- FIG. 5 is a schematic diagram of a rendered picture provided by an embodiment of the present application.
- FIG. 6 is a schematic diagram of another rendered picture provided by an embodiment of the present application.
- FIG. 7 is a schematic diagram of an application scenario of a client provided by an embodiment of the present application.
- FIG. 9 is a schematic structural diagram of a rendering apparatus provided by an embodiment of the present application.
- FIG. 10 is a schematic structural diagram of another rendering apparatus provided by an embodiment of the present application.
- FIG. 11 is a schematic structural diagram of a computer device provided by an embodiment of the present application.
- the embodiment of the present application provides a rendering method.
- the first rendering node after receiving the instruction instructing to execute the rendering task generated by the client, the first rendering node obtains the state parameter generated by the second rendering node executing the rendering task, and continues to execute the rendering task based on the state parameter, Get the rendered image of the rendering task and send the rendered image to the client.
- the state parameter is obtained by the second rendering node performing the rendering task in advance, on the one hand, the first rendering node can directly perform the subsequent rendering operation according to the state parameter, and the first rendering node does not need to send it again according to the client.
- the state parameters are obtained by rendering the rendering instruction of the first rendering node, which reduces the consumption of rendering resources of the first rendering node and improves the rendering efficiency. Scheduling of rendering nodes that perform client-side rendering tasks ensures user experience.
- the rendering node is specifically the node used for rendering, usually with a graphics processing unit (GPU), and the rendering node is used to receive the rendering task sent by the client, process the rendering task according to the GPU, generate a rendering screen, and send the rendering screen. to the client.
- GPU graphics processing unit
- FIG. 1 is a schematic diagram of an implementation scenario involved in a rendering method provided by an embodiment of the present application.
- the application scenario includes: a client 01 and at least two rendering nodes 02 .
- a communication connection is established between the client 01 and each rendering node 02 .
- the overall system in which the at least two rendering nodes 02 are located may be referred to as a rendering system.
- Client 01 can be a mobile phone, tablet computer, personal computer, virtual machine, container, laptop computer, mobile phone, multimedia player, smart home appliance, artificial intelligence device, smart wearable device, e-reader, smart in-vehicle device or IoT devices, etc.
- the rendering node 02 may be implemented by a physical device such as a physical server, or a virtual instance such as a virtual machine or a container.
- the user can use the application program on the client 01, and the display screen of the application program can be rendered by performing the rendering operation.
- the client 01 can send a rendering instruction stream to the rendering node according to the operation, and the rendering instruction stream is used to instruct the client to display the screen according to the user's operation.
- the rendering node 02 may perform a corresponding rendering operation according to the rendering instruction stream, and provide the rendered rendering image to the client, so that the client displays the rendering image.
- the same rendering task of the client can be executed by different rendering nodes 02 successively, and the rendering node 02 (eg, the second rendering node) that executes the rendering task first can store the state parameters obtained by executing the rendering task after executing the rendering task.
- the rendering node 02 (such as the first rendering node) that executes the rendering task later receives the instruction instructing to execute the rendering task
- the rendering node 02 that executes the rendering task later can obtain the state parameter and continue to execute the state parameter according to the state parameter. Rendering task to get the rendered image of the rendering task.
- different rendering nodes 02 that successively execute the same rendering task of the client may be deployed on the same host, and at this time, the state parameter may be stored on the storage medium of the host.
- the storage medium may be a hard disk, a memory, or the like.
- the state parameter can be stored in the storage medium of the host where the rendering node 02 that executes the rendering task first is located.
- the state parameter may also be stored on the storage medium of the host where the rendering node 02 that executes the rendering task later is located.
- the storage medium may be a hard disk, a memory, or the like.
- the state storage node for storing state parameters can be deployed on a different host from the rendering node 02 that performs the rendering task first, and is deployed on a different host than the rendering node 02 that executes the rendering task later. on the host.
- the state storage node may be deployed on a host or cluster of hosts in the rendering system where no render node 02 is deployed.
- the rendering system further includes: a state storage node 03 .
- the state storage node 03 establishes a communication connection with each rendering node 02 .
- the state storage node 03 may be implemented by a physical server.
- the scheduling of the rendering node 02 may be implemented by a management node.
- the rendering system further includes: a management node 04 .
- the management node 04 establishes a communication connection with each rendering node 02 and the client 01 .
- the management node 04 may be implemented by a physical device such as a physical server, or a virtual instance such as a virtual machine or a container.
- the management node 04 may receive a rendering session request sent by the client 01, where the rendering session request is used to request the management node 04 to assign the rendering node 02 to the client 01 for executing the rendering task generated by the client 01.
- the management node 04 may indicate to the client 01 the rendering node 02 for executing the rendering task of the client 01 according to the rendering session request.
- the client 01 can establish a network connection with the rendering node 02 indicated by the management node 04 according to the instruction of the management node 04, and send a rendering instruction stream to the rendering node 02 indicated by the management node 04 through the network connection, so as to facilitate the
- the rendering node 02 indicated by the management node 04 executes the rendering task of the client 01 according to the rendering instruction stream.
- the rendering system may further include: a gateway node 05 , and the gateway node 05 can be connected with the client 01 , each rendering node 02 and the management node 04 .
- the gateway node 05 may be implemented by a physical device such as a switch, a network address translation gateway, or a virtual instance such as a virtual machine or a container.
- the network connection between the rendering node 02 and the client 01 can be realized through the gateway node 05 .
- the management node 04 determines to allocate the rendering node 02 for executing the rendering task of the client 01 to the client 01, the management node 04 also needs to notify the gateway node of the allocated rendering node 02.
- the instruction sent by the management node 04 to the client 01 may indicate the gateway node that the client 01 needs to connect to, and the client 01 may send a connection request to the indicated gateway node 05 according to the instruction of the management node 04, and the gateway The node 05 receives the connection request, and can connect the rendering node 02 allocated by the management node 04 to the client according to the notification from the management node 04, so as to realize the network connection between the client 01 and the rendering node 02 allocated to it.
- the gateway node 05 can also provide port mapping services. For example, the gateway node 05 can map a certain port of a certain internet protocol (IP) address of the gateway node 05 accessed from the external network to a certain IP port of the subnet where the rendering node 02 is located, so as to improve the Access security.
- IP internet protocol
- the rendering system may be deployed in multiple manners.
- the rendering system can be deployed on the public network.
- the rendering system can be deployed in a cloud platform.
- the cloud platform may be a cloud platform of a central cloud, a cloud platform of an edge cloud, or a cloud platform including a central cloud and an edge cloud, which is not specifically limited in this embodiment of the present application.
- the rendering system may be partially deployed in the cloud platform of the edge cloud and partially deployed in the cloud platform of the central cloud.
- the rendering node 02, the state storage node 03, the management node 04 and the gateway node 05 can be implemented through the resources in the cloud platform, and the resources in the cloud platform include computing resources, storage resources and network resources, etc. .
- the rendering function provided by the rendering system to the client 01 can be abstracted into a rendering cloud service by the cloud service provider on the cloud platform and provided to the user.
- the cloud platform can use the resources in the cloud computing center to perform the rendering task of the client used by the user.
- FIG. 4 is a method flowchart of a rendering method provided by an embodiment of the present application. As shown in FIG. 4 , the implementation process of the rendering method may include the following steps:
- Step 401 The client sends a first rendering session request to the management node.
- the user can use the application program on the client, and the display screen of the application program can be rendered by performing the rendering operation.
- the client uses the rendering system to render the display screen for the client, and the user performs an operation on the application
- the client can send a first rendering session request to the management node in the rendering system according to the operation, so as to request the management node to send the client to the client.
- a client allocates a render node for executing rendering tasks generated by the client.
- the first rendering session request may carry relevant information of a picture to be displayed by the application.
- the operation generated by the user on the application program may trigger the first rendering session request through an application program interface (application program interface, API) or a user interface (user interface, UI).
- the rendering task generated by the client refers to the rendering task generated by the client by running the application or accessing the browser.
- Step 402 Based on the first rendering session request, the management node instructs the second rendering node to execute the rendering task generated by the client, and notifies the client that the second rendering node executes the rendering task generated by the client.
- the management node After the management node receives the first rendering session request sent by the client, it can obtain information such as the load status of multiple rendering nodes managed by the management node, and select the multiple rendering nodes as the client according to the load status and other information.
- the assigned render node for example, the render node assigned to the client by the management node is the second render node.
- the management node may also allocate an appropriate rendering node to the client according to the relevant information.
- the management node After the management node determines to allocate the second rendering node to the client, it will notify the second rendering node so that the second rendering node can start the relevant rendering program, and the management node will also notify the client of the allocation result, so that the client can establish A network connection to the second render node.
- the management node may first authenticate the client according to the first rendering session request, and allocate a rendering node to the client when the client authentication is passed.
- the management node may allocate to the client a rendering node for executing the rendering task generated by the client according to a specified scheduling policy.
- rendering nodes may be allocated to clients according to a load balancing strategy and/or similarity strategy.
- load balancing strategy and/or similarity strategy.
- similarity strategy the implementation process of assigning rendering nodes based on the similarity strategy is described in the following content.
- the management node determines according to the first rendering session request that there is no virtual instance suitable for assigning to the client in the existing virtual instance, the management node can create a virtual instance, and Assign the created virtual instance to the client.
- the client may establish a connection request with the second rendering node to request to establish a network connection with the second rendering node.
- a related rendering program of the second rendering node can be started.
- the second rendering node starts the relevant rendering program of the second rendering node.
- the rendering program is usually applicable to a process that performs rendering operations, and the same process can use a graphics processing unit (graphics processing unit, GPU) or multiple GPUs.
- the client may send a connection request to the second rendering node, and the second rendering node may establish a network connection with the client according to the connection request.
- the client can send a connection request to the gateway node.
- the gateway node can establish a network connection with the client, determine the rendering node allocated to the client, and then establish a gateway The node's network connection to the render node assigned to this client.
- the connection request may carry a connection identifier (such as a token), and the connection identifier is used to identify the identity of the client, and even the connection identifier is also used to identify the rendering assigned to it by the client and the management node.
- the node's rendering session After the gateway node receives the connection request, it will first verify the client according to the connection identifier, and obtain the address of the rendering node assigned to the client, so as to establish a network connection with the rendering node according to the address. Optionally, the gateway node may determine the address of the rendering node according to the information of the rendering node carried in the connection identifier. Alternatively, after determining to allocate a rendering node to the client, the management node may notify the gateway node of the address of the rendering node allocated to the client.
- Step 403 The client sends a rendering instruction stream to the second rendering node.
- the client can send the rendering instruction stream to the second rendering node, so that the second rendering node can perform a corresponding rendering operation based on the rendering instruction stream.
- the rendering instruction stream carries relevant parameters for instructing to change the scene displayed in the client, for example, carries relevant parameters indicating one or more of the following changes: modifying the spatial position and angle of the camera, setting object positions, loading new objects, adding Light source and changing the spatial position of the light source, etc.
- Step 404 The second rendering node executes the rendering task generated by the client based on the rendering instruction stream, stores the state parameters of the rendering task obtained by executing the rendering task, and sends the rendered rendered image to the client.
- the second rendering node After receiving the rendering instruction stream sent by the client, the second rendering node can execute the corresponding rendering operation according to the rendering instruction stream, the rendering operation will generate the state parameters of the rendering task, and the rendering image of the rendering task will be generated according to the state parameters. , the second rendering node can send the rendered image to the client, so that the client can display the rendered image.
- the rendering system includes a gateway node
- the rendering instruction stream sent by the client can be forwarded to the second rendering node through the gateway node, and the rendered image sent by the second rendering node can be sent to the client through the gateway node.
- the rendering target in the rendering task may be the entire scene that the client needs to display, or may be a single model in the scene, that is, the second rendering node may render the entire scene or a single model in the scene.
- the embodiment does not specifically limit it.
- the state parameter can be regarded as an intermediate product of the second rendering node from executing the rendering instruction flow to obtaining the rendered image.
- the state parameter includes a rendering scene configuration parameter
- the rendering scene configuration parameter is used to indicate the configuration of the scene (such as a two-dimensional scene or a three-dimensional scene) that the client needs to display, and the rendering node can The entire rendered scene is reconstructed.
- the rendering scene configuration parameters include: the position of the rendering model in the rendering scene in the rendering task, material information, texture map information, light source type, light source position, camera position and angle, and the data storage address of the rendering model. one or any combination.
- the state parameter further includes a rendering model parameter
- the rendering model parameter is used to indicate the configuration of the rendering model
- the rendering node can reconstruct the entire rendering model according to the rendering model parameter.
- the rendering model parameters include: one or any combination of the total number of vertices, the total number of triangular patches, and the color of the rendering model in the rendering task.
- the state parameters include rendering model parameters
- the storage pressure and implementation cost of the state parameters will increase, compared to the implementation method of obtaining rendering model parameters from the original storage location of rendering model parameters when the state parameters do not include rendering model parameters, Obtaining rendering model parameters from this state parameter effectively improves the efficiency of obtaining rendering model parameters.
- the state storage node there are also multiple implementations for the storage of state parameters.
- the second rendering node may store the state parameter in the storage medium of the host where the second rendering node is located.
- the second rendering node can send the state parameter to the host. other host, so as to store the state parameter in the storage medium of the other host.
- the second rendering node can send the state parameter to the host or host cluster on which no rendering node is deployed, and The state parameter is stored in a storage medium on the host or host cluster where the render node is not deployed.
- the rendering instruction stream received by the second rendering node may include a rendering instruction stream for rendering multiple images.
- the second rendering node obtains the state parameters according to the rendering instruction stream for rendering any image, it can immediately The state parameter is stored, or the second rendering node can store the state parameter obtained within the specified duration according to the specified duration, or the second rendering node can perform all the rendering tasks after completing the rendering task.
- state parameters are stored. For example, when the rendering task needs to be scheduled from the second rendering node to the first rendering node for execution, after the second rendering node performs the rendering operation it needs to perform according to the scheduling instruction, the second rendering node can change the second rendering node to perform the rendering task. All the obtained state parameters are stored.
- the state parameters obtained by the second rendering node each time the rendering operation is performed need to be stored.
- the second rendering node may add label information to the stored state parameters, so as to use the label information to identify the timing of the state parameters, so that according to rendering different images The timing of the state parameters obtained by the render instruction stream will not be confused.
- the second rendering node may first encode the rendered image, and send the encoded rendered image to the client. Also, when the rendered image is an image frame in a video, the second rendering node also needs to encode an I frame.
- the encoding mode used by the second rendering node to encode the rendered image may be determined according to application requirements, which is not specifically limited in this embodiment of the present application.
- the frame rate of the client needs to be considered.
- the second rendering node may encode the rendered image at a fixed frame rate (eg, 30 frames per second) and send the encoded rendered image to the client, or the second rendering node may render the image according to every two adjacent frames
- a fixed frame rate eg, 30 frames per second
- the change between images determines the frame rate referenced for encoding.
- the scene in which the rendering node performs the rendering task in the embodiment of the present application includes the following at least two scenes:
- the client needs to use the rendering capabilities provided by the rendering node to provide it with images that need to be displayed during the running of the application, and, according to different operations performed by the user on the client, Customers choose different images to be displayed.
- the client needs to display different images.
- Figure 5 shows an image of the game character entering the room. This image can be used by the user to instruct the game character to enter the room in the user interface of the game application, and the client sends the rendering to the rendering node according to the instruction of entering the room.
- FIG. 6 shows an image of the game character entering the room and advancing to the vicinity of the sofa in the room. This image can be used by the user to instruct the game character to move forward in the user interface shown in FIG.
- the rendering node sends a rendering instruction stream, and the rendering node performs a rendering operation according to the rendering instruction stream to obtain it.
- the state parameter may be a rendering scene configuration parameter used to describe the game scene shown in FIG. 5 and FIG. 6 , such as a rendering scene configuration parameter describing the following rendering scene: the wall setting of the room There are two doors, both doors are open, and a coffee table and sofa are placed in the upper left corner of the room. The coffee table is placed against the wall in front of the room from the visual angle, the coffee table is placed directly against the sofa, and a squatting one is in the center of the room. Soldier, soldier holding gun in aiming gesture.
- the state parameters also include rendering model parameters, as shown in Figure 5 and Figure 6, the state parameters include the room, door, soldier, gun, sofa, coffee table, and the total number of vertices of each rendering model in the room floor, the number of triangles totals and colors.
- the user interface of the application includes at least two parts, the first part of the at least two parts displays an initial image drawn by the user, and the initial image is made locally by the client Rendering, so the definition is lower, the second part of the at least two parts shows the image with higher definition sent by the rendering node to the client and rendered according to the initial image, wherein the user performs drawing in the first part
- the client will display the relatively unclear image drawn by the drawing operation and rendered locally in the first part, and generate the rendering instruction stream according to the user's drawing operation, and then send the rendering instruction stream to the rendering node, so that The rendering node performs rendering operations according to the rendering instruction stream and feeds back to the client to obtain a clear image after rendering.
- the state parameter may be a rendering scene configuration parameter for describing the garland scene shown in FIG. 7 , such as a rendering scene configuration parameter describing the following rendering scene: multiple bouquets of flowers are connected end to end to form a garland.
- the state parameter also includes the rendering model parameter, as shown in FIG. 7 , the state parameter includes the number of flower branches enclosing the wreath, the total number of vertices in each bunch of flower branches, the total number of triangular patches and the color.
- Step 405 The management node instructs to schedule the rendering task of the client from the second rendering node to the first rendering node for execution, and notifies the first rendering node and the second rendering node.
- the management node instructs the second rendering node to execute the rendering task generated by the client, it can continue to schedule the rendering node used for executing the rendering task generated by the client to the client, for example, continue to determine the direction to the client according to the specified scheduling policy of the management node.
- the rendering node rescheduled to the client by the management node may be the same or different from the rendering node previously scheduled to the client by the management node.
- the rendering node rescheduled by the management node to the client may be the first rendering node.
- the management node may instruct the first rendering node and the second rendering node to schedule the rendering task of the client from the second rendering node to the first rendering node.
- a render node may be the first rendering node.
- the situation in which the management node reschedules the rendering node that executes the rendering task includes: first, the running load of the second rendering node is too high, and the rendering task needs to be scheduled to other rendering nodes for execution, so as to reduce the running load of the second rendering node load to ensure the running performance of the second rendering node; second, if the running load of the second rendering node is too low, all rendering tasks executed by the second rendering node can be scheduled to other rendering nodes for execution, and the second rendering node is closed, In order to improve the resource utilization of the rendering system; thirdly, the second rendering node fails, which makes it impossible to continue the rendering task, and the rendering task needs to be scheduled to other rendering nodes for execution to ensure the normal execution of the rendering task; fourth, the client The rendering instruction stream has not been sent to the second rendering node for a long time, resulting in the management node indicating that the rendering session between the second rendering node and the client is closed, and even the management node assigning the second rendering node to other clients. At this
- the network connection between the client and the rendering node needs to be switched.
- the rendering system includes a gateway node
- the switching of the network connection between the client and the rendering node can be realized through the gateway node.
- the node is switched from the second render node to the first render node.
- the management node may notify the client that the rendering node assigned to it becomes the first rendering node, so that the client switches its network connection with the rendering node to the network connection with the first rendering node.
- Step 406 The first rendering node acquires the state parameters of the rendering task.
- the first rendering node After the first rendering node receives the instruction from the management node to schedule the rendering task to the first rendering node for execution, the first rendering node may start a related rendering program and acquire the state parameters of the rendering task.
- the state storage node there are also various implementations for the first rendering node to obtain the state parameters. The following implementations are used as examples to describe them:
- the first rendering node obtains state parameters from the state storage node, for example, from the state storage node
- the state parameter is obtained from the storage medium of the host or host cluster where the node resides.
- the first rendering node may acquire the state parameter from the storage medium of the host where the first rendering node is located.
- the second rendering node may be deployed on the same host as the first rendering node.
- the first rendering node may acquire the state parameter from the storage medium of the other host.
- the first rendering node when the first rendering node and the second rendering node are deployed on different hosts, and the second rendering node stores state parameters on the host where the second rendering node is located, the first rendering node can The state parameters are obtained from the storage medium of the host.
- the first rendering node when the state parameter is stored on another host where the first rendering node and the second rendering node are not deployed, the first rendering node may acquire the state parameter from the storage medium of the other host.
- the first rendering node and the second rendering node are deployed on the same host, the first rendering node may not obtain the state parameters stored by the second rendering node. The data is restored to be available, and then the rendering task continues according to the data that is restored to be available.
- Step 407 Based on the state parameter, the first rendering node continues to perform the rendering task, obtains the rendered image of the rendering task, and sends the rendered image to the client.
- the first rendering node After acquiring the state parameters of the rendering task, the first rendering node can load model data, set model parameters and camera parameters, etc. based on the state parameters, so as to continue to perform the rendering task. Due to the large amount of data involved in this process, and when the state parameters do not include model configuration parameters, the first rendering node also needs to obtain the model configuration parameters from other storage systems, for example, the model needs to be obtained from the network file system of object storage configuration parameters, so the process may require one or more executions to complete.
- the first rendering node and the second rendering node can perform rendering tasks at the same time, and use the second rendering node to send rendered images to the client to ensure the quality of rendering services provided to the client until the first rendering node can execute stably.
- the rendering task is then switched to the first rendering node to send the rendered image to the client.
- the client may also send a newly generated rendering instruction stream to the first rendering node, and after receiving the newly generated rendering instruction stream, the first rendering node can The generated rendering instruction stream performs rendering operations to obtain the rendered image that the client needs to display.
- the first rendering node may also store the state parameters obtained in the process of performing the rendering operation for subsequent use.
- the second rendering node may first encode the rendered image, and send the encoded rendered image to the client. Also, when the rendered image is an image frame in a video, the second rendering node also needs to encode an I frame.
- the encoding mode used by the second rendering node to encode the rendered image may be determined according to application requirements, which is not specifically limited in this embodiment of the present application.
- the first rendering node after receiving the instruction instructing to execute the rendering task generated by the client, the first rendering node obtains the state parameters generated by the second rendering node executing the rendering task, and based on the state parameters, continue to execute the rendering task, obtain the rendered image of the rendering task, and send the rendered image to the client.
- the state parameter is obtained by the second rendering node performing the rendering task in advance, on the one hand, the first rendering node can directly perform the subsequent rendering operation according to the state parameter, and the first rendering node does not need to send it again according to the client.
- the state parameters are obtained by rendering the rendering instruction of the first rendering node, which reduces the consumption of rendering resources of the first rendering node and improves the rendering efficiency. Scheduling of rendering nodes that perform client-side rendering tasks ensures user experience.
- the implementation process includes the following steps:
- Step 801 The management node obtains the description information of the rendering target in the rendering task of the client.
- the description information of the rendering target is used to indicate the rendering target in the rendering task.
- description information is implemented in different ways. The following two implementation scenarios are used as examples to describe the description information of the rendering target:
- the client can instruct to access the browse-type file (also called read-only browse-type file).
- the image to be displayed in the display interface of the client is the page of the browse-type file
- the rendering task is the rendering target.
- the description information of the rendering target is information used to describe the browse file.
- the rendering target is a browse-type file
- the description information of the rendering target is the storage address of the browse-type file.
- the rendering session request sent by the client may carry the description information of the browse file, and the rendering session request is used to request the management node to assign to the client a rendering node for executing the rendering task generated by the client.
- the user's operation on the client will drive the scene to be displayed in the client to change.
- the image to be displayed on the display interface of the client is the image of the changed scene, and the client will display the scene according to the change.
- the user operation sends the rendering instruction stream, so that the rendering node performs the rendering operation according to the rendering instruction stream to obtain the scene.
- the description information of the rendering target is the information used to describe the rendered scene.
- the rendering target is the game scene of the game application running in the client
- the description information of the rendering target is the information of the game scene obtained by the rendering node performing the rendering operation according to the rendering instruction stream.
- Step 802 The management node acquires the similarity between the rendering target described in the description information and the rendering target of the rendering task executed by each rendering node managed by the management node.
- the management node obtains the similarity between the rendering target described in the description information and the rendering target of the rendering task executed by each rendering node managed by the management node, including: The total number of identical rendering models included in the rendering target and the rendering target described by the description information, and the similarity is determined based on the total number.
- the total number of identical rendering models included in the rendering target of the rendering task executed by any rendering node and the rendering target described by the description information is referred to as the total number of identical rendering models corresponding to any rendering node.
- the total number A1 of rendering models included in the rendering target of the rendering task executed by the rendering node A, and the total number A2 of the same rendering models corresponding to the rendering node A can be used to determine the description information.
- the management node may also process the total number of identical rendering models corresponding to any rendering node according to the characteristics of the rendering model included in the rendering target, so as to more accurately evaluate the The similarity between the rendering target of the rendering task executed by the rendering node and the rendering target described by the description information.
- the management node can obtain the rendering target of the rendering task executed by any rendering node and the total number of vertices, the total number of triangle patches and the storage occupied of each same rendering model included in the rendering target described by the description information.
- at least one parameter in the size of the space, and the similarity is determined based on the at least one parameter and the total number of identical rendering models corresponding to any one of the rendering nodes. For example, when determining the similarity, the at least one parameter may be used to weight the total number of identical rendering models corresponding to any one of the rendering nodes, so as to obtain a more accurate similarity.
- judging whether two models are the same rendering model can be implemented in various ways. For example, when two rendering models come from the same network storage location (for example, the uniform resource locator (URL) of the two rendering models is the same), the two rendering models can be considered to be the same and the same rendering model. Alternatively, when two rendering models have the same model identifier (eg, message digest algorithm 5 (MD5) value), the two rendering models can be considered to be the same and the same rendering model.
- MD5 message digest algorithm 5
- Step 803 The management node instructs the rendering node whose similarity is greater than the specified similarity threshold, and executes the rendering task of the client.
- the rendering node executes the rendering task of the client, so that at least two rendering tasks with greater similarity can share rendering resources, and can use the same resource to implement at least part of the rendering operations in different rendering tasks, reducing repeated rendering operations. It reduces the consumption of rendering resources, such as reducing the consumption of video memory resources and computing resources for rendering, so as to use limited rendering resources to provide services to more users, which helps to improve the utilization of rendering resources.
- the specified similarity threshold there may be multiple rendering nodes whose similarity is greater than the specified similarity threshold.
- one rendering node can be selected from the multiple rendering nodes according to the specified strategy, and the selected rendering node is instructed to execute the rendering task of the client.
- the specified policy can be set according to application requirements. For example, the rendering node with the lowest load among the multiple rendering nodes may be selected, which is not specifically limited in this embodiment of the present application.
- the specified similarity threshold can also be determined according to application requirements.
- the load status of the rendering nodes also needs to be considered.
- the management node indicates that the rendering node whose similarity is greater than the specified similarity threshold, executes the rendering task of the client, which may specifically include: the management node obtains a similarity greater than the specified similarity.
- the load status of the rendering node with the similarity threshold When the load status of the rendering node with the similarity greater than the specified similarity threshold satisfies the specified load condition, it indicates that the rendering node with the similarity greater than the specified similarity threshold executes the rendering task of the client.
- the same resource can be used to realize at least part of the rendering operations in different rendering tasks, which reduces the repeated rendering operations and reduces the cost of rendering resources. Consumption in order to use limited rendering resources to provide services to more users, which helps to improve the utilization of rendering resources.
- the present application also provides a rendering device, in which a first rendering node is deployed.
- the rendering device 90 includes:
- the receiving module 901 is configured to receive an instruction instructing to execute a rendering task generated by the client.
- the first obtaining module 902 is configured to obtain state parameters of the rendering task, and the state parameters of the rendering task are generated by the second rendering node executing the rendering task.
- the first processing module 903 is configured to continue to perform the rendering task based on the state parameter, and obtain the rendered image of the rendering task;
- the sending module 904 is configured to send the rendered image to the client.
- the first obtaining module 902 is specifically configured to: obtain a state parameter from the state storage node, the state parameter is stored in the state storage node by the second rendering node, and the first rendering node and the state storage node are deployed on different hosts , and the second rendering node and the state storage node are deployed on different hosts.
- the first obtaining module 902 is specifically configured to: obtain the state parameter from the storage medium of the host where the first rendering node is located.
- the first obtaining module 902 is specifically configured to: obtain the state parameter from the storage medium of the host where the second rendering node is located.
- the state parameters include rendering scene configuration parameters
- the rendering scene configuration parameters include: the position of the rendering model in the rendering scene in the rendering task, material information, texture map information, light source type, light source position, camera position and angle, and rendering.
- One or any combination of data storage addresses for the model are possible.
- the state parameter further includes a rendering model parameter
- the rendering model parameter includes: one or any combination of the total number of vertices, the total number of triangular patches, and the color of the rendering model in the rendering task.
- the first rendering node after receiving the instruction instructing to execute the rendering task generated by the client, the first rendering node obtains the state parameters generated by the second rendering node executing the rendering task, and based on the For the state parameter, continue to execute the rendering task, obtain the rendered image of the rendering task, and send the rendered image to the client. Since the state parameter is obtained by the second rendering node performing the rendering task in advance, on the one hand, the first rendering node can directly To perform subsequent rendering operations according to the state parameters, it is not necessary for the first rendering node to re-render the state parameters according to the rendering instructions sent by the client, which reduces the consumption of rendering resources of the first rendering node and improves the rendering efficiency. The client re-sends the rendering instruction to the first rendering node, so that the client is unaware of the scheduling of the rendering node for executing the rendering task of the client, thereby ensuring user experience.
- the present application provides a rendering device in which a management node is deployed.
- the rendering apparatus 100 includes:
- the second obtaining module 1001 is configured to obtain the description information of the rendering target in the rendering task generated by the client.
- the second obtaining module 1001 is further configured to obtain the similarity between the rendering target described by the description information and the rendering target of the rendering task executed by each rendering node managed by the management node.
- the second processing module 1002 is configured to indicate a rendering node whose similarity is greater than a specified similarity threshold, and execute the rendering task of the client.
- the second obtaining module 1001 is specifically configured to: respectively obtain the rendering target of the rendering task executed by each rendering node managed by the management node and the total number of identical rendering models included in the rendering target described by the description information; determine the similarity based on the total number. Spend.
- the second obtaining module 1001 is specifically configured to: obtain at least one parameter in the total number of vertices, the total number of triangular patches, and the size of the occupied storage space of each identical rendering model; based on the total number and at least one parameter, determine similarity.
- the second processing module 1002 is specifically configured to: obtain the load status of the rendering node whose similarity is greater than the specified similarity threshold; when the load status of the rendering node whose similarity is greater than the specified similarity threshold satisfies the specified load condition, indicating Render nodes whose similarity is greater than the specified similarity threshold perform client-side rendering tasks.
- the description information includes any one of the following: information used to describe a browse file that needs to be accessed by a rendering task of the client, and information used to describe a rendering target obtained by a rendering node performing a rendering operation based on a rendering instruction of the client.
- the same resource can be used to realize at least some rendering operations in different rendering tasks, which reduces the repeated rendering operations and reduces the rendering resources.
- it helps to improve the utilization of rendering resources.
- FIG. 11 exemplarily provides a possible architectural diagram of a computer device.
- the computer device 110 may include a processor 1101 , a memory 1102 , a communication interface 1103 and a bus 1104 .
- the number of processors 1101 may be one or more, and FIG. 11 only illustrates one of the processors 1101 .
- the processor 1101 may be a central processing unit (Central Processing Unit, CPU). If the computer device has multiple processors 1101, the multiple processors 1101 may be of different types, or may be the same. Optionally, multiple processors of the computer device may also be integrated into a multi-core processor.
- CPU Central Processing Unit
- the memory 1102 stores computer instructions and data, and the memory 1102 may store computer instructions and data required to implement the rendering method provided by the present application.
- the memory 1102 can be any one or any combination of the following storage media: non-volatile memory (such as read-only memory (Read-Only Memory, ROM), solid state disk (Solid State Disk, SSD), hard disk (Hard Disk) Drive, HDD), optical disc, etc., volatile memory.
- non-volatile memory such as read-only memory (Read-Only Memory, ROM), solid state disk (Solid State Disk, SSD), hard disk (Hard Disk) Drive, HDD), optical disc, etc., volatile memory.
- the communication interface 1103 may be any one or any combination of the following devices: a network interface (eg, an Ethernet interface), a wireless network card, and other devices with a network access function.
- the communication interface 1103 is used for data communication between the computer device and other nodes or other computer devices.
- FIG. 11 also exemplarily depicts bus 1104 .
- the bus 1104 can connect the processor 1101 with the memory 1102 and the communication interface 1103. In this way, through the bus 1104, the processor 1101 can access the memory 1102, and can also use the communication interface 1103 to perform data interaction with other nodes or other computer devices.
- the computer device executes the computer instructions in the memory 1102 to implement the function of the rendering resource recommendation device in the rendering method provided in this application. For example, receiving an instruction instructing the execution of a rendering task generated by the client; obtaining state parameters of the rendering task, which are generated by the second rendering node executing the rendering task; continuing to execute the rendering task based on the state parameters to obtain the rendering of the rendering task Image; sends the rendered image to the client.
- the implementation process of the steps of the computer device may refer to the corresponding descriptions in the foregoing method embodiments.
- Embodiments of the present application further provide a storage medium, where the storage medium is a non-volatile computer-readable storage medium, and when instructions in the storage medium are executed by a processor, the rendering method provided by the embodiments of the present application is implemented.
- the embodiments of the present application also provide a computer program product including instructions, when the computer program product is run on a computer, the computer program product enables the computer to execute the rendering method provided by the embodiments of the present application.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Image Generation (AREA)
Abstract
一种渲染方法,包括:第一渲染节点(02)接收指示执行客户端(01)产生的渲染任务的指令;第一渲染节点(02)获取渲染任务的状态参数,渲染任务的状态参数由第二渲染节点(02)执行渲染任务产生;第一渲染节点(02)基于状态参数,继续执行渲染任务,得到渲染任务的渲染图像;第一渲染节点(02)向客户端(01)发送渲染图像。还提供了一种渲染装置、计算机设备以及存储介质。该渲染方法及其装置提高了渲染效率。
Description
本申请要求于2021年04月30日提交的申请号为202110482646.8、发明名称为“渲染方法及其装置、计算机设备、存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本公开中。
本申请涉及图像渲染技术领域,特别涉及一种渲染方法及其装置、计算机设备、存储介质。
目前,采用云上渲染资源对客户端中运行的应用程序的界面进行渲染已成为了一种趋势。其中,云上渲染是指在终端中运行应用程序时,根据用户对终端的操作,采用云上渲染资源渲染终端根据该操作需要显示的应用程序的界面。
相关技术中,云上的管理节点接收到客户端发送的渲染需求后,可以根据客户端的渲染需求,在云上渲染资源中为客户端分配执行该客户端的渲染任务的渲染节点,使得该渲染节点对客户端中运行的应用程序的界面进行渲染,并向客户端发送渲染图像。
但是,在该渲染节点执行渲染任务的过程中,若管理节点为客户端重新分配了渲染节点,该重新分配的渲染节点需要重新根据客户端的渲染需求执行渲染操作,导致渲染效率较低。
发明内容
本申请提供了一种渲染方法及其装置、计算机设备、存储介质,本申请能够提高渲染效率,本申请提供的技术方案如下:
第一方面,本申请提供了一种渲染方法,该渲染方法包括:第一渲染节点接收指示执行客户端产生的渲染任务的指令;第一渲染节点获取渲染任务的状态参数,渲染任务的状态参数由第二渲染节点执行渲染任务产生;第一渲染节点基于状态参数,继续执行渲染任务,得到渲染任务的渲染图像;第一渲染节点向客户端发送渲染图像。
由上可知,在该渲染方法中,第一渲染节点在接收指示执行客户端产生的渲染任务的指令后,通过获取第二渲染节点执行渲染任务产生的状态参数,并基于该状态参数,继续执行该渲染任务,得到渲染任务的渲染图像,并向客户端发送该渲染图像。在该渲染方法中,由于状态参数由第二渲染节点预先执行渲染任务得到,这样一方面使得第一渲染节点能够直接根据状态参数执行后续的渲染操作,无需第一渲染节点再重新根据客户端发送的渲染指令渲染得到状态参数,减少了第一渲染节点的渲染资源的消耗,并提高了渲染效率,另一方面无需客户端重新向第一渲染节点发送渲染指令,使得客户端无感知对用于执行客户端的渲染任务的渲染节点的调度,保证了用户体验。
在一种可实现方式中,第一渲染节点获取渲染任务的状态参数,具体包括:第一渲染节点从状态存储节点中获取状态参数,状态参数由第二渲染节点存储在状态存储节点中,第一渲染节点和状态存储节点部署在不同主机上,且第二渲染节点和状态存储节点部署在不同主机上。
在另一种可实现方式中,当第一渲染节点和第二渲染节点部署在同一主机上时,第一渲染节点获取渲染任务的状态参数,具体包括:第一渲染节点从第一渲染节点所在主机的存储介质中获取状态参数。
在再一种可实现方式中,第一渲染节点和第二渲染节点部署在不同主机上时,第一渲染节点获取渲染任务的状态参数,具体包括:第一渲染节点从第二渲染节点所在主机的存储介质中获取状态参数。
状态参数可视为第二渲染节点从执行渲染指令流到得到渲染图像之前的中间产物。在一种可实现方式中,状态参数包括渲染场景配置参数,渲染场景配置参数包括:渲染任务中的渲染场景中渲染模型的位置、材质信息、纹理贴图信息、光源类型、光源位置、摄像位置与角度、及渲染模型的数据存储地址中的一者或任意组合。
并且,状态参数还包括渲染模型参数,渲染模型参数包括:渲染任务中的渲染模型的顶点总数、三角面片的总数和颜色中的一者或任意组合。
当状态参数包括渲染模型参数时,虽然会增加该状态参数的存储压力和实现成本,但是相对于状态参数不包括渲染模型参数时从渲染模型参数的原始存储位置中获取渲染模型参数的实现方式,从该状态参数中获取渲染模型参数有效地提高了获取渲染模型参数的效率。
第二方面,本申请提供了一种渲染方法,该渲染方法包括:管理节点获取客户端产生的渲染任务中渲染目标的描述信息;管理节点获取描述信息描述的渲染目标与管理节点管理的各个渲染节点执行的渲染任务的渲染目标的相似度;管理节点指示相似度大于指定相似度阈值的渲染节点,执行客户端的渲染任务。
当描述信息描述的渲染目标与某一渲染节点执行的渲染任务的渲染目标的相似度大于执行相似度阈值时,表示两者需要渲染的相同的数据较多,通过指示相似度大于指定相似度阈值的渲染节点执行客户端的渲染任务,使得具有较大相似度的至少两个渲染任务能够共享渲染资源,能够使用同一份资源实现不同渲染任务中的至少部分渲染操作,减少了重复的渲染操作,降低了渲染资源的消耗,以便于利用有限的渲染资源向更多的用户提供服务,有助于提高渲染资源的利用率。
可选地,管理节点获取描述信息描述的渲染目标与管理节点管理的各个渲染节点执行的渲染任务的渲染目标的相似度,包括:管理节点分别获取管理节点管理的各个渲染节点执行的渲染任务的渲染目标及描述信息描述的渲染目标中包括的相同渲染模型的总数;管理节点基于总数确定相似度。
或者,为提高获取的相似度的准确性,管理节点还可以根据渲染目标中包括的渲染模型的特征,对任一渲染节点对应的相同渲染模型的总数进行处理,以更准确地评估该任一渲染节点执行的渲染任务的渲染目标与描述信息描述的渲染目标的相似度。
作为一种可实现方式,管理节点获取描述信息描述的渲染目标与管理节点管理的各个渲染节点执行的渲染任务的渲染目标的相似度,还包括:管理节点获取每个相同渲染模型的顶点总数、三角面片的总数和占用的存储空间的大小中的至少一个参数。相应的,管理节点基于总数确定相似度,具体包括:管理节点基于总数和至少一个参数,确定相似度。
并且,在分配渲染节点时,还需要考虑渲染节点的负载状态,例如,管理节点指示相似度大于指定相似度阈值的渲染节点,执行客户端的渲染任务,包括:管理节点获取相似度大于指定相似度阈值的渲染节点的负载状态;管理节点在相似度大于指定相似度阈值的渲染节 点的负载状态满足指定负载条件时,指示相似度大于指定相似度阈值的渲染节点,执行客户端的渲染任务。
可选地,描述信息包括以下任一种:用于描述客户端的渲染任务需要访问的浏览型文件的信息,及用于描述渲染节点基于客户端的渲染指令执行渲染操作得到的渲染目标的信息。
第三方面,本申请提供了一种渲染装置,该渲染装置中部署有第一渲染节点,该渲染装置包括:接收模块,用于接收指示执行客户端产生的渲染任务的指令;第一获取模块,用于获取渲染任务的状态参数,渲染任务的状态参数由第二渲染节点执行渲染任务产生;第一处理模块,用于基于状态参数,继续执行渲染任务,得到渲染任务的渲染图像;发送模块,用于向客户端发送渲染图像。
可选地,第一获取模块,具体用于:从状态存储节点中获取状态参数,状态参数由第二渲染节点存储在状态存储节点中,第一渲染节点和状态存储节点部署在不同主机上,且第二渲染节点和状态存储节点部署在不同主机上。
可选地,当第一渲染节点和第二渲染节点部署在同一主机上时,第一获取模块,具体用于:从第一渲染节点所在主机的存储介质中获取状态参数。
可选地,第一渲染节点和第二渲染节点部署在不同主机上时,第一获取模块,具体用于:从第二渲染节点所在主机的存储介质中获取状态参数。
可选地,状态参数包括渲染场景配置参数,渲染场景配置参数包括:渲染任务中的渲染场景中渲染模型的位置、材质信息、纹理贴图信息、光源类型、光源位置、摄像位置与角度、及渲染模型的数据存储地址中的一者或任意组合。
可选地,状态参数还包括渲染模型参数,渲染模型参数包括:渲染任务中的渲染模型的顶点总数、三角面片的总数和颜色中的一者或任意组合。
第四方面,本申请提供了一种渲染装置,该渲染装置中部署有管理节点,该渲染装置包括:第二获取模块,用于获取客户端产生的渲染任务中渲染目标的描述信息;第二获取模块,还用于获取描述信息描述的渲染目标与管理节点管理的各个渲染节点执行的渲染任务的渲染目标的相似度;第二处理模块,用于指示相似度大于指定相似度阈值的渲染节点,执行客户端的渲染任务。
可选地,第二获取模块,具体用于:分别获取管理节点管理的各个渲染节点执行的渲染任务的渲染目标及描述信息描述的渲染目标中包括的相同渲染模型的总数;基于总数确定相似度。
可选地,第二获取模块,具体用于:获取每个相同渲染模型的顶点总数、三角面片的总数和占用的存储空间的大小中的至少一个参数;基于总数和至少一个参数,确定相似度。
可选地,处理模块,具体用于:获取相似度大于指定相似度阈值的渲染节点的负载状态;在相似度大于指定相似度阈值的渲染节点的负载状态满足指定负载条件时,指示相似度大于指定相似度阈值的渲染节点,执行客户端的渲染任务。
可选地,描述信息包括以下任一种:用于描述客户端的渲染任务需要访问的浏览型文件的信息,及用于描述渲染节点基于客户端的渲染指令执行渲染操作得到的渲染目标的信息。
第五方面,本申请提供了一种计算机设备,计算机设备包括处理器和存储器;存储器中存储有计算机程序;处理器执行计算机程序时,计算机设备实现本申请第一方面或第二方面提供的渲染方法。
第六方面,本申请提供了一种存储介质,该存储介质为非易失性计算机可读存储介质,当存储介质中的指令被处理器执行时,实现如本申请第一方面或第二方面提供的渲染方法。
第七方面,本申请提供了一种包含指令的计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行本申请第一方面或第二方面提供的渲染方法。
图1是本申请实施例提供的一种渲染方法涉及的实施场景示意图;
图2是本申请实施例提供的另一种渲染方法涉及的实施场景示意图;
图3是本申请实施例提供的再一种渲染方法涉及的实施场景示意图;
图4是本申请实施例提供的一种渲染方法的方法流程图;
图5是本申请实施例提供的一种渲染画面的示意图;
图6是本申请实施例提供的另一种渲染画面的示意图;
图7是本申请实施例提供的一种客户端的应用场景的示意图;
图8是本申请实施例提供的另一种渲染方法的方法流程图;
图9是本申请实施例提供的一种渲染装置的结构示意图;
图10是本申请实施例提供的另一种渲染装置的结构示意图;
图11是本申请实施例提供的一种计算机设备的结构示意图。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请实施例提供了一种渲染方法。在该渲染方法中,第一渲染节点在接收指示执行客户端产生的渲染任务的指令后,通过获取第二渲染节点执行渲染任务产生的状态参数,并基于该状态参数,继续执行该渲染任务,得到渲染任务的渲染图像,并向客户端发送该渲染图像。在该渲染方法中,由于状态参数由第二渲染节点预先执行渲染任务得到,这样一方面使得第一渲染节点能够直接根据状态参数执行后续的渲染操作,无需第一渲染节点再重新根据客户端发送的渲染指令渲染得到状态参数,减少了第一渲染节点的渲染资源的消耗,并提高了渲染效率,另一方面无需客户端重新向第一渲染节点发送渲染指令,使得客户端无感知对用于执行客户端的渲染任务的渲染节点的调度,保证了用户体验。
渲染节点具体为用于渲染的节点,通常设置有图形处理器(graphics processing unit,GPU),渲染节点用于接收客户端发送的渲染任务,根据GPU处理渲染任务,并产生渲染画面,发送渲染画面至客户端。
图1是本申请实施例提供的一种渲染方法涉及的实施场景的示意图。如图1所示,该应用场景包括:客户端01和至少两个渲染节点02。客户端01和每个渲染节点02之间建立有通信连接。该至少两个渲染节点02所在的整体系统可称为渲染系统。
客户端01可以是手机、平板电脑、个人计算机、虚拟机、容器、膝上型计算机、移动电话、多媒体播放器、智能家电、人工智能设备、智能可穿戴设备、电子阅读器、智能车载设备或物联网设备等。渲染节点02可以通过物理服务器等实体设备、虚拟机或容器等虚拟实例实现。
用户可以在客户端01上使用应用程序,该应用程序的显示画面可以通过执行渲染操作渲染得到。用户对应用程序产生操作时,客户端01可以根据该操作向渲染节点发送渲染指令流,该渲染指令流用于指示客户端根据用户的操作需要显示的画面。渲染节点02可以根据该渲染指令流执行对应的渲染操作,并将渲染得到的渲染画面提供给客户端,使得客户端显示该渲染画面。
并且,客户端的同一渲染任务可以先后由不同的渲染节点02执行,且先执行渲染任务的渲染节点02(如第二渲染节点)执行渲染任务后,可将执行渲染任务得到的状态参数进行存储。后执行渲染任务的渲染节点02(如第一渲染节点)在接收到指示执行该渲染任务的指令后,该后执行渲染任务的渲染节点02可以获取该状态参数,并根据该状态参数继续执行该渲染任务,以得到该渲染任务的渲染图像。
可选地,存储状态参数的实现方式可以有多种。下面以以下几种可实现方式为例对其进行说明:
在第一种可实现方式中,先后执行客户端的同一渲染任务的不同渲染节点02可以部署在同一主机上,此时该状态参数可以存储在该主机的存储介质上。该存储介质可以为硬盘或内存等。
在第二种可实现方式中,先后执行客户端的同一渲染任务的不同渲染节点02部署在不同的主机上,此时该状态参数可以存储在先执行渲染任务的渲染节点02所在的主机的存储介质上,或者,该状态参数也可以存储在后执行渲染任务的渲染节点02所在的主机的存储介质上。该存储介质可以为硬盘或内存等。
在第三种可实现方式中,用于存储状态参数的状态存储节点,可以与先执行渲染任务的渲染节点02部署在不同的主机上,且与后执行渲染任务的渲染节点02部署在不同的主机上。例如,该状态存储节点可以部署在渲染系统中未部署有渲染节点02的主机或主机集群上。
对应于该状态存储节点的第三种可实现方式,如图2所示,该渲染系统还包括:状态存储节点03。该状态存储节点03与每个渲染节点02均建立有通信连接。该状态存储节点03可以通过物理服务器实现。
可选地,对渲染节点02的调度可以通过管理节点实现。相应地,如图2所示,该渲染系统还包括:管理节点04。该管理节点04与每个渲染节点02、客户端01均建立有通信连接。该管理节点04可以通过物理服务器等实体设备、虚拟机或容器等虚拟实例实现。
该管理节点04可以接收客户端01发送的渲染会话请求,该渲染会话请求用于请求管理节点04向客户端01分配用于执行该客户端01产生的渲染任务的渲染节点02。管理节点04可以根据该渲染会话请求,向客户端01指示用于执行该客户端01的渲染任务的渲染节点02。客户端01可以根据该管理节点04的指示,与该管理节点04指示的渲染节点02建立网络连接,并通过该网络连接,向该管理节点04指示的渲染节点02发送渲染指令流,以便于该管理节点04指示的渲染节点02根据该渲染指令流,执行该客户端01的渲染任务。
进一步地,如图2所示,该渲染系统还可以包括:网关节点05,网关节点05能够与客户端01、每个渲染节点02和管理节点04连接。该网关节点05可以通过交换机、网络地址转换网关等实体设备、虚拟机或容器等虚拟实例实现。
渲染节点02与客户端01之间的网络连接可以通过该网关节点05实现。此时,管理节点04确定向客户端01分配用于执行该客户端01的渲染任务的渲染节点02后,管理节点04还 需要通知网关节点该分配的渲染节点02。相应的,管理节点04发送给客户端01的指示可以指示的是该客户端01需要连接的网关节点,客户端01可以根据该管理节点04的指示,向指示的网关节点05发送连接请求,网关节点05接收该连接请求,可以根据管理节点04的通知连接管理节点04向客户端分配的渲染节点02,以实现客户端01与向其分配的渲染节点02的网络连接。
并且,网关节点05还能够提供端口映射服务。例如,网关节点05可以将外网访问的网关节点05的某个网际互连协议(internet protocol,IP)地址的某个端口,映射到渲染节点02所在子网的某个IP的端口,以提高访问的安全性。
可选地,在本申请实施例中,渲染系统可以有多种部署方式。例如,该渲染系统可以部署在公网上。或者,该渲染系统可以部署在云平台中。并且,云平台可以是中心云的云平台、边缘云的云平台或包括中心云和边缘云的云平台,本申请实施例对其不做具体限定。并且,当云平台为包括中心云和边缘云的云平台时,该渲染系统可以部分部署在边缘云的云平台中,部分部署在中心云的云平台中。
当渲染系统部署在云平台中时,渲染节点02、状态存储节点03、管理节点04和网关节点05可以通过云平台中的资源实现,云平台中的资源包括计算资源、存储资源和网络资源等。此时,如图3所示,渲染系统向客户端01提供的渲染功能,能够由云服务提供商在云平台抽象成一种渲染云服务提供给用户。用户在云平台购买渲染云服务后,云平台能够利用云计算中心中的资源执行用户使用的客户端的渲染任务。
下面以图2所示的实施场景,对本申请实施例提供的一种渲染方法的实现过程进行说明。本申请实施例提供的渲染方法在其他实现场景中的实现过程,请相应参考在该图2所示的实施场景中的实现过程。图4是本申请实施例提供的一种渲染方法的方法流程图,如图4所示,该渲染方法的实现过程可以包括以下步骤:
步骤401、客户端向管理节点发送第一渲染会话请求。
用户可以在客户端上使用应用程序,该应用程序的显示画面可以通过执行渲染操作渲染得到。当客户端使用渲染系统为该客户端渲染显示画面时,用户对应用程序产生操作时,客户端可以根据该操作向渲染系统中的管理节点发送第一渲染会话请求,以请求管理节点向该客户端分配用于执行该客户端产生的渲染任务的渲染节点。可选地,为便于管理节点向该客户端分配更合适的渲染节点,该第一渲染会话请求可以携带有应用程序需要显示的画面的相关信息。其中,用户对应用程序产生的操作可以通过应用程序接口(application program interface,API)或用户界面(user interface,UI)触发第一渲染会话请求。客户端产生的渲染任务是指客户端通过运行应用程序或访问浏览器产生的渲染任务。
步骤402、管理节点基于第一渲染会话请求,指示第二渲染节点执行客户端产生渲染任务,并向客户端通知由第二渲染节点执行客户端产生的渲染任务。
管理节点接收到客户端发送的第一渲染会话请求后,可以获取该管理节点管理的多个渲染节点的负荷状态等信息,并根据该负荷状态等信息在该多个渲染节点中选择为客户端分配的渲染节点,例如管理节点向客户端分配的渲染节点为第二渲染节点。并且,当第一渲染会话请求携带有应用程序需要显示的画面的相关信息时,该管理节点还可以根据该相关信息为客户端分配合适的渲染节点。管理节点确定向客户端分配该第二渲染节点后,会通知第二渲 染节点,以便于第二渲染节点启动相关的渲染程序,且管理节点也会通知客户端该分配结果,以便于客户端建立与该第二渲染节点的网络连接。其中,管理节点接收到客户端发送的第一渲染会话请求后,可以先根据第一渲染会话请求对客户端鉴权,并在对客户端鉴权通过时,为客户端分配渲染节点。
可选地,管理节点可以根据指定调度策略,向客户端分配用于执行客户端产生的渲染任务的渲染节点。例如,可以根据负载均衡策略和/或相似度策略,向客户端分配渲染节点。为便于理解,基于相似度策略分配渲染节点的实现过程在后面内容中描述。
并且,当渲染节点通过虚拟机或容器等虚拟实例实现时,若管理节点根据第一渲染会话请求确定现有虚拟实例中不存在适合分配给客户端的虚拟实例时,管理节点可以创建虚拟实例,并向客户端分配该创建的虚拟实例。
管理节点向客户端通知由第二渲染节点执行客户端产生的渲染任务后,客户端可以建立与该第二渲染节点的连接请求,以请求与该第二渲染节点建立网络连接。第二渲染节点与客户端建立网络连接后,可以启动该第二渲染节点的相关的渲染程序。或者,第二渲染节点在接收到管理节点指示该第二渲染节点执行该客户端产生的渲染任务后,启动该第二渲染节点的相关的渲染程序。其中,渲染程序通常适用于执行渲染操作的进程,同一个进程可以使用一个图形处理器(graphics processing unit,GPU)或者多个GPU。
当渲染系统不包括网关节点时,客户端可以向第二渲染节点发送连接请求,第二渲染节点可以根据该连接请求与客户端建立网络连接。当渲染系统包括网关节点时,客户端可以向网关节点发送连接请求,网关节点接收到该连接请求后,可以建立与该客户端的网络连接,并确定向该客户端分配的渲染节点,然后建立网关节点与向该客户端分配的渲染节点的网络连接。其中,连接请求中可以携带有连接用标识(如令牌(token)),该连接用标识用于标识客户端的身份,甚至该连接用标识还用于标识客户端与管理节点向其分配的渲染节点的渲染会话。网关节点接收到连接请求后,会先根据连接用标识对客户端进行验证,并获取为该客户端分配的渲染节点的地址,以便于根据该地址建立与渲染节点的网络连接。可选地,网关节点可以根据该连接用标识中携带的渲染节点的信息,确定该渲染节点的地址。或者,管理节点在确定向客户端分配渲染节点后,可以通知该网关节点向该客户端分配的渲染节点的地址。
步骤403、客户端向第二渲染节点发送渲染指令流。
若客户端根据用户的操作产生了渲染指令流,客户端即可向第二渲染节点发送该渲染指令流,以便于第二渲染节点基于该渲染指令流执行相应的渲染操作。该渲染指令流携带有用于指示改变客户端中显示的场景的相关参数,例如携带有指示以下一个或多个改变的相关参数:修改视角摄像机空间位置与角度、设置物体位置、加载新物体、添加光源和改变光源空间位置等。
步骤404、第二渲染节点基于渲染指令流执行客户端产生的渲染任务,将执行渲染任务得到的渲染任务的状态参数进行存储,并向客户端发送渲染得到的渲染图像。
第二渲染节点接收到客户端发送的渲染指令流后,即可根据该渲染指令流执行对应的渲染操作,该渲染操作会产生渲染任务的状态参数,并根据该状态参数产生渲染任务的渲染图像,第二渲染节点可向客户端发送该渲染图像,以供客户端显示该渲染图像。当渲染系统包括网关节点时,客户端发送的渲染指令流可经网关节点转发至第二渲染节点,且第二渲染节 点发送的渲染图像可经网关节点发送至客户端。其中,渲染任务中的渲染目标可以是客户端需要显示的整个场景,也可以是场景中的单个模型,即第二渲染节点渲染的可以是整个场景,也可以是场景中的单个模型,本申请实施例对其不做具体限定。
状态参数可视为第二渲染节点从执行渲染指令流到得到渲染图像之前的中间产物。在一种可实现方式中,状态参数包括渲染场景配置参数,该渲染场景配置参数用于指示客户端需要显示的场景(如二维场景或三维场景)的配置,渲染节点根据渲染场景配置参数能够重建出整个渲染场景。可选地,该渲染场景配置参数包括:渲染任务中的渲染场景中渲染模型的位置、材质信息、纹理贴图信息、光源类型、光源位置、摄像位置与角度、及渲染模型的数据存储地址中的一者或任意组合。
进一步地,状态参数还包括渲染模型参数,该渲染模型参数用于指示渲染模型的配置,渲染节点根据该渲染模型参数能够重建处整个渲染模型。可选地,渲染模型参数包括:渲染任务中的渲染模型的顶点总数、三角面片的总数和颜色中的一者或任意组合。
当状态参数包括渲染模型参数时,虽然会增加该状态参数的存储压力和实现成本,但是相对于状态参数不包括渲染模型参数时从渲染模型参数的原始存储位置中获取渲染模型参数的实现方式,从该状态参数中获取渲染模型参数有效地提高了获取渲染模型参数的效率。
可选地,根据状态存储节点的不同实现方式,状态参数的存储方式也有多种实现方式。例如,当状态存储节点部署在第二渲染节点所在的主机上时,第二渲染节点可以将该状态参数存储在该第二渲染节点所在的主机的存储介质中。又例如,当状态存储节点未部署在第二渲染节点所在的主机上,且当该状态存储节点部署在其他部署有渲染节点的其他主机上时,第二渲染节点可以将该状态参数发送至该其他主机,以便于将该状态参数存储在该其他主机的存储介质中。又例如,当状态存储节点部署在渲染系统中未部署有渲染节点的主机或主机集群上时,第二渲染节点可将该状态参数发送至该未部署有渲染节点的主机或主机集群上,已将该状态参数存储在该未部署有渲染节点的主机或主机集群上的存储介质中。
需要说明的是,第二渲染节点接收到的渲染指令流可以包括用于渲染多个图像的渲染指令流,第二渲染节点根据用于渲染任一个图像的渲染指令流得到状态参数后,可以立即将该状态参数进行存储,或者,第二渲染节点可以按照指定时长将该指定时长内的得到的状态参数进行存储,或者,第二渲染节点可以在完成渲染任务后将执行该渲染任务得到的所有状态参数进行存储。例如,当需要将渲染任务从第二渲染节点调度至第一渲染节点执行时,第二渲染节点在根据调度指令执行其需要执行的渲染操作后,即可将改第二渲染节点执行渲染任务期间得到的状态参数全部进行存储。
其中,为了能够有效地根据状态参数继续执行渲染任务,第二渲染节点每次执行渲染操作得到的状态参数都需要被存储。并且,为了保证根据渲染不同图像的渲染指令流得到的状态参数的时序性,第二渲染节点可以向存储的状态参数添加标签信息,以使用该标签信息标识状态参数的时序,使得根据渲染不同图像的额渲染指令流得到的状态参数的时序不会被混淆。
另外,第二渲染节点在向客户端发送渲染图像之前,可以先对渲染图像进行编码,并向客户端发送编码后的渲染图像。并且,当渲染图像是视频中的图像帧时,第二渲染节点还需要编码一个I帧。其中,第二渲染节点对渲染图像进行编码使用的编码方式可以根据应用需求确定,本申请实施例对其不做具体限定。并且,第二渲染节点对渲染图像进行编码及发送 编码后的渲染图象时,需要考虑到客户端的帧率。例如,第二渲染节点可以按照固定的帧率(如每秒30帧)对渲染图像进行编码并向客户端发送编码后的渲染图像,或者,第二渲染节点可以根据每相邻两帧渲染图象之间的变化情况确定编码所参考的帧率。
其中,本申请实施例中渲染节点执行渲染任务的场景包括以下至少两个场景:
在第一个场景中,客户端中运行有应用程序,客户端需要使用渲染节点提供的渲染能力为其提供应用程序运行过程中需要显示的图像,并且,根据用户在客户端执行的不同操作,客户选需要显示的图像不同。例如,客户端中运行有某游戏应用程序,当用户在游戏应用程序的用户界面中执行不同操作时,客户端需要显示的图像不同。如图5所示,图5显示有游戏角色刚进入房间的图像,该图像可以通过用户在游戏应用程序的用户界面中指示游戏角色进入房间,客户端根据该进入房间的指示向渲染节点发送渲染指令流,渲染节点根据该渲染指令流执行渲染操作得到。如图6所示,图6显示有游戏角色进入房间并在房间中前进至沙发附近的图像,该图像可以通过用户在图5显示的用户界面中指示游戏角色前进,客户端根据该前进指示向渲染节点发送渲染指令流,渲染节点根据该渲染指令流执行渲染操作得到。
并且,如图5和图6所示,状态参数可以为用于描述该图5和图6显示的游戏场景的渲染场景配置参数,如描述以下渲染场景的渲染场景配置参数:房间的墙上设置有两扇门,两扇门均为开启状态,且房间的左上角放置有茶几和沙发,茶几背靠着房间位于视觉角度前方的墙放置,茶几正对沙发放置,且房间的中央蹲着一个士兵,士兵拿着枪做出瞄准姿势。
当状态参数还包括渲染模型参数时,如图5和图6所示,该状态参数包括房间、门、士兵、枪、沙发、茶几和房间地面中每个渲染模型的顶点总数、三角面片的总数和颜色。
在第二个场景中,客户端中运行有应用程序,应用程序的用户界面包括至少两个部分,该至少两个部分中的第一部分显示用户绘制的初始图像,该初始图像由客户端本地进行渲染,因此清晰度较低,该至少两个部分中的第二部分显示渲染节点向客户端发送的根据该初始图像渲染得到的具有较高清晰度的图像,其中,用户在第一部分中执行绘制操作后,客户端会在第一部分中显示通过绘制操作绘制出且在本地渲染好的较为不清晰的图像,并根据用户的绘制操作生成渲染指令流,然后向渲染节点发送该渲染指令流,使得渲染节点根据该渲染指令流执行渲染操作并向客户端反馈渲染得到清晰的图像。
并且,如图7所示,状态参数可以为用于描述该图7显示的花环场景的渲染场景配置参数,如描述以下渲染场景的渲染场景配置参数:多束花枝首尾相连围成花环。
当状态参数还包括渲染模型参数时,如图7所示,该状态参数包括围成花环的花枝的数量、每束花枝的顶点总数、三角面片的总数和颜色。
步骤405、管理节点指示将客户端的渲染任务从第二渲染节点调度至第一渲染节点执行,并通知第一渲染节点和第二渲染节点。
管理节点指示第二渲染节点执行客户端产生的渲染任务后,可以继续向该客户端调度用于执行该客户端产生的渲染任务的渲染节点,例如继续根据该管理节点的指定调度策略继续确定向该客户端分配的渲染节点,以优化渲染系统中的资源利用率,或者,在客户端的渲染任务因某种原因中断后,管理节点可以对该客户端产生的渲染任务进行重新调度,以便于继续执行该渲染任务。并且,管理节点向客户端重新调度的渲染节点与管理节点之前向该客户端调度的渲染节点可以相同或不同。例如,管理节点向客户端重新调度的渲染节点可以为第一渲染节点,此时,管理节点可以向第一渲染节点和第二渲染节点指示,将客户端的渲染任 务从第二渲染节点调度至第一渲染节点。
其中,管理节点对执行渲染任务的渲染节点进行重新调度的情况包括:第一,第二渲染节点的运行负载过高,需要将渲染任务调度至其他渲染节点执行,以降低第二渲染节点的运行负载,保证该第二渲染节点的运行性能;第二,第二渲染节点的运行负载过低,可以将第二渲染节点执行的所有渲染任务调度至其他渲染节点执行,并关闭第二渲染节点,以提高渲染系统的资源利用率;第三,第二渲染节点出现故障,导致无法继续执行渲染任务,需要将渲染任务调度至其他渲染节点执行,以保证渲染任务的正常执行;第四,客户端长时间未向第二渲染节点发送渲染指令流,导致管理节点指示关闭了第二渲染节点与客户端的渲染会话,甚至管理节点将第二渲染节点分配给其他客户端,此时当用户重新激活客户端的渲染会话时,需要重新为客户端调度渲染节点。
当客户端的渲染任务从第二渲染节点调度至第一渲染节点执行后,需要切换客户端与渲染节点之间的网络连接。当渲染系统包括网关节点时,客户端与渲染节点之间的网络连接的切换可以通过网关节点实现,其实现方式包括:保持网关节点与客户端之间的网络连接,将与网关节点连接的渲染节点由第二渲染节点切换为第一渲染节点。这样一来,客户端不会感知到网络连接的切换,能够在客户端无感知的情况下实现渲染节点的重新调度。当渲染系统不包括网关节点时,管理节点可以通知客户端向其分配的渲染节点变成第一渲染节点,使得客户端将其与渲染节点的网络连接切换为与第一渲染节点的网络连接。
步骤406、第一渲染节点获取渲染任务的状态参数。
第一渲染节点接收到管理节点指示将渲染任务调度至第一渲染节点执行的指示后,第一渲染节点可以启动相关的渲染程序,并获取渲染任务的状态参数。并且,根据状态存储节点的不同实现方式,第一渲染节点获取状态参数也有多种实现方式,下面以以下几种实现方式为例对其进行说明:
在第一种可实现方式中,当状态存储节点部署在渲染系统中未部署有渲染节点的主机或主机集群上时,第一渲染节点从该状态存储节点中获取状态参数,如从该状态存储节点所在的主机或主机集群的存储介质中获取该状态参数。
在第二种可实现方式中,当状态参数存储在第一渲染节点所在的主机上时,第一渲染节点可以从该第一渲染节点所在的主机的存储介质中获取该状态参数。此时,第二渲染节点可以与该第一渲染节点部署在同一主机上。
在第三种可实现方式中,当状态参数存储在未部署有第一渲染节点的其他主机上时,第一渲染节点可以从该其他主机的存储介质上获取该状态参数。例如,当第一渲染节点和第二渲染节点部署在不同主机上,且第二渲染节点将状态参数存储在该第二渲染节点所在的主机上时,第一渲染节点可以从第二渲染节点所在主机的存储介质中获取状态参数。又例如,当状态参数存储在未部署有第一渲染节点和第二渲染节点的其他主机上时,第一渲染节点可以从该其他主机的存储介质中获取该状态参数。
需要说明的是,当第一渲染节点和第二渲染节点部署在同一主机上时,第一渲染节点也可以不获取第二渲染节点存储的状态参数,第一渲染节点可以通过将其所在主机上的数据恢复可用,然后根据恢复为可用的数据继续执行渲染任务。
步骤407、第一渲染节点基于状态参数,继续执行渲染任务,得到渲染任务的渲染图像,向客户端发送渲染图像。
第一渲染节点获取渲染任务的状态参数后,可以基于该状态参数加载模型数据、设置模型参数和摄像机参数等,以继续执行渲染任务。由于该过程涉及的数据量较大,且当状态参数不包括模型配置参数时,第一渲染节点还需要从其他存储系统中获取该模型配置参数,例如需要从对象存储的网络文件系统中获取模型配置参数,因此该过程可能需要通过执行一次或多次流程才能完成。此时第一渲染节点和第二渲染节点可以同时执行渲染任务,并使用第二渲染节点向客户端发送渲染图像,以保证向客户端提供渲染服务的质量,直至第一渲染节点能够稳定地执行渲染任务,然后切换为第一渲染节点向客户端发送渲染图像。
并且,第一渲染节点执行渲染任务的过程中,客户端还可以向该第一渲染节点发送新产生的渲染指令流,第一渲染节点接收到该新产生的渲染指令流后,可以根据该新产生的渲染指令流执行渲染操作,以得到客户端需要显示的渲染图像。同时,第一渲染节点也可以对执行渲染操作的过程中得到的状态参数进行存储,以备后续使用。
另外,第二渲染节点在向客户端发送渲染图像之前,可以先对渲染图像进行编码,并向客户端发送编码后的渲染图像。并且,当渲染图像是视频中的图像帧时,第二渲染节点还需要编码一个I帧。其中,第二渲染节点对渲染图像进行编码使用的编码方式可以根据应用需求确定,本申请实施例对其不做具体限定。
由上可知,在本申请实施例提供的渲染方法中,第一渲染节点在接收指示执行客户端产生的渲染任务的指令后,通过获取第二渲染节点执行渲染任务产生的状态参数,并基于该状态参数,继续执行该渲染任务,得到渲染任务的渲染图像,并向客户端发送该渲染图像。在该渲染方法中,由于状态参数由第二渲染节点预先执行渲染任务得到,这样一方面使得第一渲染节点能够直接根据状态参数执行后续的渲染操作,无需第一渲染节点再重新根据客户端发送的渲染指令渲染得到状态参数,减少了第一渲染节点的渲染资源的消耗,并提高了渲染效率,另一方面无需客户端重新向第一渲染节点发送渲染指令,使得客户端无感知对用于执行客户端的渲染任务的渲染节点的调度,保证了用户体验。
下面对管理节点基于相似度策略分配渲染节点的实现过程进行说明。如图8所示,其实现过程包括以下步骤:
步骤801、管理节点获取客户端的渲染任务中渲染目标的描述信息。
渲染目标的描述信息用于指示渲染任务中的渲染目标。在不同实现场景中,描述信息的实现方式不同。下面以以下两种实现场景为例,对渲染目标的描述信息进行说明:
在第一种实现场景中,客户端可以指示访问浏览型文件(也称只读浏览型文件),此时客户端的显示界面中需要显示的图像为该浏览型文件的页面,渲染任务张渲染目标为该浏览行文件的页面。则在该第一种场景中,渲染目标的描述信息为用于描述该浏览型文件的信息。例如,当渲染目标为浏览型文件时,该渲染目标的描述信息为该浏览型文件的存储地址。客户端发送的渲染会话请求中可以携带该浏览型文件的描述信息,该渲染会话请求用于请求管理节点向客户端分配用于执行该客户端产生的渲染任务的渲染节点。
在第二种实现场景中,用户对客户端的操作会驱动客户端中需要显示的场景发生变化,此时客户端的显示界面种需要显示的图像为发生变化后的场景的画面,且客户端会根据用户操作发送渲染指令流,使得渲染节点根据渲染指令流执行渲染操作得到的场景。则在该第二种场景中,渲染目标的描述信息为用于描述该渲染得到的场景的信息。例如,当渲染目标为 客户端中运行的游戏应用程序的游戏场景时,该渲染目标的描述信息为渲染节点根据渲染指令流执行渲染操作得到的游戏场景的信息。
步骤802、管理节点获取描述信息描述的渲染目标与管理节点管理的各个渲染节点执行的渲染任务的渲染目标的相似度。
可选地,管理节点获取描述信息描述的渲染目标与管理节点管理的各个渲染节点执行的渲染任务的渲染目标的相似度,包括:管理节点分别获取管理节点管理的各个渲染节点执行的渲染任务的渲染目标及描述信息描述的渲染目标中包括的相同渲染模型的总数,基于该总数确定相似度。其中,为便于描述,将任一渲染节点执行的渲染任务的渲染目标及描述信息描述的渲染目标中包括的相同渲染模型的总数称为任一渲染节点对应的相同渲染模型的总数。
例如,对于管理节点管理的渲染节点A,可以根据该渲染节点A执行的渲染任务的渲染目标包括的渲染模型的总数A1,和渲染节点A对应的相同渲染模型的总数A2,确定描述信息描述的渲染目标与渲染节点A执行的渲染任务的渲染目标的相似度。
或者,为提高获取的相似度的准确性,管理节点还可以根据渲染目标中包括的渲染模型的特征,对任一渲染节点对应的相同渲染模型的总数进行处理,以更准确地评估该任一渲染节点执行的渲染任务的渲染目标与描述信息描述的渲染目标的相似度。
作为一种可实现方式,管理节点可以获取该任一渲染节点执行的渲染任务的渲染目标与描述信息描述的渲染目标包括的每个相同渲染模型的顶点总数、三角面片的总数和占用的存储空间的大小中的至少一个参数,并基于该至少一个参数和该任一渲染节点对应的相同渲染模型的总数,确定相似度。例如,在确定该相似度时,可以使用该至少一个参数,对该任一渲染节点对应的相同渲染模型的总数进行加权,以得到更准确的相似度。
可选的,判断两个模型是否为相同渲染模型可以通过多种方式实现。例如,当两个渲染模型来自于同一网络存储位置(如两个渲染模型的统一资源定位符(uniform resource locator,URL)相同),则可以认为该两个渲染模型是同一相同渲染模型。或者,当两个渲染模型具有相同的模型标识(如消息摘要算法第五版(message digest algorithm 5,MD5)值)时,则可以认为该两个渲染模型是同一相同渲染模型。
步骤803、管理节点指示相似度大于指定相似度阈值的渲染节点,执行客户端的渲染任务。
当描述信息描述的渲染目标与某一渲染节点执行的渲染任务的渲染目标的相似度大于执行相似度阈值时,表示两者需要渲染的相同的数据较多,通过指示相似度大于指定相似度阈值的渲染节点执行客户端的渲染任务,使得具有较大相似度的至少两个渲染任务能够共享渲染资源,能够使用同一份资源实现不同渲染任务中的至少部分渲染操作,减少了重复的渲染操作,降低了渲染资源的消耗,例如降低显存资源和用于渲染的计算资源的消耗,以便于利用有限的渲染资源向更多的用户提供服务,有助于提高渲染资源的利用率。
其中,相似度大于指定相似度阈值的渲染节点可能存在多个,此时可以根据指定的策略在该多个渲染节点中选择一个渲染节点,并指示选择得到的渲染节点执行客户端的渲染任务。该指定的策略可以根据应用需求进行设置。例如,可以选择多个渲染节点中负载最低的渲染节点,本申请实施例对其不做具体限定。并且,指定相似度阈值也可以根据应用需求确定。
并且,在分配渲染节点时,还需要考虑渲染节点的负载状态,例如,管理节点指示相似度大于指定相似度阈值的渲染节点,执行客户端的渲染任务,具体可以包括:管理节点获取 相似度大于指定相似度阈值的渲染节点的负载状态,在相似度大于指定相似度阈值的渲染节点的负载状态满足指定负载条件时,指示相似度大于指定相似度阈值的渲染节点,执行客户端的渲染任务。
由上可知,通过指示相似度大于指定相似度阈值的渲染节点执行客户端的渲染任务,能够使用同一份资源实现不同渲染任务中的至少部分渲染操作,减少了重复的渲染操作,降低了渲染资源的消耗,以便于利用有限的渲染资源向更多的用户提供服务,有助于提高渲染资源的利用率。
需要说明的是,本申请实施例提供的渲染方法的步骤先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减。任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本申请的保护范围之内,因此不再赘述。
本申请还提供了一种渲染装置,该渲染装置中部署有第一渲染节点。如图9所示,该渲染装置90包括:
接收模块901,用于接收指示执行客户端产生的渲染任务的指令。
第一获取模块902,用于获取渲染任务的状态参数,渲染任务的状态参数由第二渲染节点执行渲染任务产生。
第一处理模块903,用于基于状态参数,继续执行渲染任务,得到渲染任务的渲染图像;
发送模块904,用于向客户端发送渲染图像。
可选地,第一获取模块902,具体用于:从状态存储节点中获取状态参数,状态参数由第二渲染节点存储在状态存储节点中,第一渲染节点和状态存储节点部署在不同主机上,且第二渲染节点和状态存储节点部署在不同主机上。
可选地,当第一渲染节点和第二渲染节点部署在同一主机上时,第一获取模块902,具体用于:从第一渲染节点所在主机的存储介质中获取状态参数。
可选地,第一渲染节点和第二渲染节点部署在不同主机上时,第一获取模块902,具体用于:从第二渲染节点所在主机的存储介质中获取状态参数。
可选地,状态参数包括渲染场景配置参数,渲染场景配置参数包括:渲染任务中的渲染场景中渲染模型的位置、材质信息、纹理贴图信息、光源类型、光源位置、摄像位置与角度、及渲染模型的数据存储地址中的一者或任意组合。
可选地,状态参数还包括渲染模型参数,渲染模型参数包括:渲染任务中的渲染模型的顶点总数、三角面片的总数和颜色中的一者或任意组合。
综上所述,在本申请实施例提供的渲染装置中,第一渲染节点在接收指示执行客户端产生的渲染任务的指令后,通过获取第二渲染节点执行渲染任务产生的状态参数,并基于该状态参数,继续执行该渲染任务,得到渲染任务的渲染图像,并向客户端发送该渲染图像,由于状态参数由第二渲染节点预先执行渲染任务得到,这样一方面使得第一渲染节点能够直接根据状态参数执行后续的渲染操作,无需第一渲染节点再重新根据客户端发送的渲染指令渲染得到状态参数,减少了第一渲染节点的渲染资源的消耗,并提高了渲染效率,另一方面无需客户端重新向第一渲染节点发送渲染指令,使得客户端无感知对用于执行客户端的渲染任务的渲染节点的调度,保证了用户体验。
本申请提供了一种渲染装置,该渲染装置中部署有管理节点。如图10所示,该渲染装置100包括:
第二获取模块1001,用于获取客户端产生的渲染任务中渲染目标的描述信息。
第二获取模块1001,还用于获取描述信息描述的渲染目标与管理节点管理的各个渲染节点执行的渲染任务的渲染目标的相似度。
第二处理模块1002,用于指示相似度大于指定相似度阈值的渲染节点,执行客户端的渲染任务。
可选地,第二获取模块1001,具体用于:分别获取管理节点管理的各个渲染节点执行的渲染任务的渲染目标及描述信息描述的渲染目标中包括的相同渲染模型的总数;基于总数确定相似度。
可选地,第二获取模块1001,具体用于:获取每个相同渲染模型的顶点总数、三角面片的总数和占用的存储空间的大小中的至少一个参数;基于总数和至少一个参数,确定相似度。
可选地,第二处理模块1002,具体用于:获取相似度大于指定相似度阈值的渲染节点的负载状态;在相似度大于指定相似度阈值的渲染节点的负载状态满足指定负载条件时,指示相似度大于指定相似度阈值的渲染节点,执行客户端的渲染任务。
可选地,描述信息包括以下任一种:用于描述客户端的渲染任务需要访问的浏览型文件的信息,及用于描述渲染节点基于客户端的渲染指令执行渲染操作得到的渲染目标的信息。
综上所述,通过指示相似度大于指定相似度阈值的渲染节点执行客户端的渲染任务,能够使用同一份资源实现不同渲染任务中的至少部分渲染操作,减少了重复的渲染操作,降低了渲染资源的消耗,以便于利用有限的渲染资源向更多的用户提供服务,有助于提高渲染资源的利用率。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和模块的具体工作过程,可以参考前述方法实施例中的对应内容,在此不再赘述。
本申请实施例提供了一种计算机设备。该计算机设备中可以部署有第一渲染节点或管理节点。图11示例性的提供了计算机设备的一种可能的架构图。如图11所示,该计算机设备110可以包括处理器1101、存储器1102、通信接口1103和总线1104。在计算机设备中,处理器1101的数量可以是一个或多个,图11仅示意了其中一个处理器1101。可选的,处理器1101可以是中央处理器(Central Processing Unit,CPU)。若计算机设备具有多个处理器1101,多个处理器1101的类型可以不同,或者可以相同。可选的,计算机设备的多个处理器还可以集成为多核处理器。
存储器1102存储计算机指令和数据,存储器1102可以存储实现本申请提供的渲染方法所需的计算机指令和数据。存储器1102可以是以下存储介质的任一种或任一种组合:非易失性存储器(如只读存储器(Read-Only Memory,ROM)、固态硬盘(Solid State Disk,SSD)、硬盘(Hard Disk Drive,HDD)、光盘等、易失性存储器。
通信接口1103可以是以下器件的任一种或任一种组合:网络接口(如以太网接口)、无线网卡等具有网络接入功能的器件。
通信接口1103用于计算机设备与其他节点或者其他计算机设备进行数据通信。
图11还示例性地绘制出总线1104。总线1104可以将处理器1101与存储器1102、通信 接口1103连接。这样,通过总线1104,处理器1101可以访问存储器1102,还可以利用通信接口1103与其他节点或者其他计算机设备进行数据交互。
在本申请中,计算机设备执行存储器1102中的计算机指令,可以实现本申请提供的渲染方法中的渲染资源推荐设备的功能。例如,接收指示执行客户端产生的渲染任务的指令;获取渲染任务的状态参数,渲染任务的状态参数由第二渲染节点执行渲染任务产生;基于状态参数,继续执行渲染任务,得到渲染任务的渲染图像;向客户端发送渲染图像。并且,计算机设备通过执行存储器1102中的计算机指令,执行计算机设备的步骤的实现过程可以相应参考上述方法实施例中对应的描述。
本申请实施例还提供了一种存储介质,该存储介质为非易失性计算机可读存储介质,当存储介质中的指令被处理器执行时,实现如本申请实施例提供的渲染方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行本申请实施例提供的渲染方法。
Claims (24)
- 一种渲染方法,其特征在于,包括:第一渲染节点接收指示执行客户端产生的渲染任务的指令;所述第一渲染节点获取所述渲染任务的状态参数,所述渲染任务的状态参数由第二渲染节点执行所述渲染任务产生;所述第一渲染节点基于所述状态参数,继续执行所述渲染任务,得到所述渲染任务的渲染图像;所述第一渲染节点向所述客户端发送所述渲染图像。
- 根据权利要求1所述的方法,其特征在于,所述第一渲染节点获取所述渲染任务的状态参数,具体包括:所述第一渲染节点从状态存储节点中获取所述状态参数,所述状态参数由所述第二渲染节点存储在所述状态存储节点中,所述第一渲染节点和所述状态存储节点部署在不同主机上,且所述第二渲染节点和所述状态存储节点部署在不同主机上。
- 根据权利要求1所述的方法,其特征在于,当所述第一渲染节点和所述第二渲染节点部署在同一主机上时,所述第一渲染节点获取所述渲染任务的状态参数,具体包括:所述第一渲染节点从所述第一渲染节点所在主机的存储介质中获取所述状态参数。
- 根据权利要求1所述的方法,其特征在于,所述第一渲染节点和所述第二渲染节点部署在不同主机上时,所述第一渲染节点获取所述渲染任务的状态参数,具体包括:所述第一渲染节点从所述第二渲染节点所在主机的存储介质中获取所述状态参数。
- 根据权利要求1至4任一所述的方法,其特征在于,所述状态参数包括渲染场景配置参数,所述渲染场景配置参数包括:所述渲染任务中的渲染场景中渲染模型的位置、材质信息、纹理贴图信息、光源类型、光源位置、摄像位置与角度、及渲染模型的数据存储地址中的一者或任意组合。
- 根据权利要求5所述的方法,其特征在于,所述状态参数还包括渲染模型参数,所述渲染模型参数包括:所述渲染任务中的渲染模型的顶点总数、三角面片的总数和颜色中的一者或任意组合。
- 一种渲染方法,其特征在于,包括:管理节点获取客户端产生的渲染任务中渲染目标的描述信息;所述管理节点获取所述描述信息描述的渲染目标与所述管理节点管理的各个渲染节点执行的渲染任务的渲染目标的相似度;所述管理节点指示相似度大于指定相似度阈值的渲染节点,执行所述客户端的渲染任务。
- 根据权利要求7所述的方法,其特征在于,所述管理节点获取所述描述信息描述的渲染目标与所述管理节点管理的各个渲染节点执行的渲染任务的渲染目标的相似度,包括:所述管理节点分别获取所述管理节点管理的各个渲染节点执行的渲染任务的渲染目标及所述描述信息描述的渲染目标中包括的相同渲染模型的总数;所述管理节点基于所述总数确定所述相似度。
- 根据权利要求8所述的方法,其特征在于,所述管理节点获取所述描述信息描述的渲染目标与所述管理节点管理的各个渲染节点执行的渲染任务的渲染目标的相似度,还包括:所述管理节点获取每个相同渲染模型的顶点总数、三角面片的总数和占用的存储空间的 大小中的至少一个参数;所述管理节点基于所述总数确定所述相似度,具体包括:所述管理节点基于所述总数和所述至少一个参数,确定所述相似度。
- 根据权利要求7至9任一所述的方法,其特征在于,所述管理节点指示相似度大于指定相似度阈值的渲染节点,执行所述客户端的渲染任务,包括:所述管理节点获取所述相似度大于指定相似度阈值的渲染节点的负载状态;所述管理节点在所述相似度大于所述指定相似度阈值的渲染节点的负载状态满足指定负载条件时,指示所述相似度大于所述指定相似度阈值的渲染节点,执行所述客户端的渲染任务。
- 根据权利要求7至10任一所述的方法,其特征在于,所述描述信息包括以下任一种:用于描述所述客户端的渲染任务需要访问的浏览型文件的信息,及用于描述渲染节点基于所述客户端的渲染指令执行渲染操作得到的所述渲染目标的信息。
- 一种渲染装置,其特征在于,所述渲染装置中部署有第一渲染节点,所述渲染装置包括:接收模块,用于接收指示执行客户端产生的渲染任务的指令;第一获取模块,用于获取所述渲染任务的状态参数,所述渲染任务的状态参数由第二渲染节点执行所述渲染任务产生;第一处理模块,用于基于所述状态参数,继续执行所述渲染任务,得到所述渲染任务的渲染图像;发送模块,用于向所述客户端发送所述渲染图像。
- 根据权利要求12所述的装置,其特征在于,所述第一获取模块,具体用于:从状态存储节点中获取所述状态参数,所述状态参数由所述第二渲染节点存储在所述状态存储节点中,所述第一渲染节点和所述状态存储节点部署在不同主机上,且所述第二渲染节点和所述状态存储节点部署在不同主机上。
- 根据权利要求12所述的装置,其特征在于,当所述第一渲染节点和所述第二渲染节点部署在同一主机上时,所述第一获取模块,具体用于:从所述第一渲染节点所在主机的存储介质中获取所述状态参数。
- 根据权利要求12所述的装置,其特征在于,所述第一渲染节点和所述第二渲染节点部署在不同主机上时,所述第一获取模块,具体用于:从所述第二渲染节点所在主机的存储介质中获取所述状态参数。
- 根据权利要求12至15任一所述的装置,其特征在于,所述状态参数包括渲染场景配置参数,所述渲染场景配置参数包括:所述渲染任务中的渲染场景中渲染模型的位置、材质信息、纹理贴图信息、光源类型、光源位置、摄像位置与角度、及渲染模型的数据存储地址中的一者或任意组合。
- 根据权利要求16所述的装置,其特征在于,所述状态参数还包括渲染模型参数,所述渲染模型参数包括:所述渲染任务中的渲染模型的顶点总数、三角面片的总数和颜色中的一者或任意组合。
- 一种渲染装置,其特征在于,所述渲染装置中部署有管理节点,所述渲染装置包括:第二获取模块,用于获取客户端产生的渲染任务中渲染目标的描述信息;所述第二获取模块,还用于获取所述描述信息描述的渲染目标与所述管理节点管理的各个渲染节点执行的渲染任务的渲染目标的相似度;第二处理模块,用于指示相似度大于指定相似度阈值的渲染节点,执行所述客户端的渲染任务。
- 根据权利要求18所述的装置,其特征在于,所述第二获取模块,具体用于:分别获取所述管理节点管理的各个渲染节点执行的渲染任务的渲染目标及所述描述信息描述的渲染目标中包括的相同渲染模型的总数;基于所述总数确定所述相似度。
- 根据权利要求19所述的装置,其特征在于,所述第二获取模块,具体用于:获取每个相同渲染模型的顶点总数、三角面片的总数和占用的存储空间的大小中的至少一个参数;基于所述总数和所述至少一个参数,确定所述相似度。
- 根据权利要求18至20任一所述的装置,其特征在于,所述处理模块,具体用于:获取所述相似度大于指定相似度阈值的渲染节点的负载状态;在所述相似度大于所述指定相似度阈值的渲染节点的负载状态满足指定负载条件时,指示所述相似度大于所述指定相似度阈值的渲染节点,执行所述客户端的渲染任务。
- 根据权利要求18至21任一所述的装置,其特征在于,所述描述信息包括以下任一种:用于描述所述客户端的渲染任务需要访问的浏览型文件的信息,及用于描述渲染节点基于所述客户端的渲染指令执行渲染操作得到的所述渲染目标的信息。
- 一种计算机设备,其特征在于,所述计算机设备包括:处理器和存储器,所述存储器中存储有计算机程序;所述处理器执行计算机程序时,所述计算机设备实现权利要求1至11任一所述的方法。
- 一种存储介质,其特征在于,当所述存储介质中的指令被处理器执行时,实现权利要求1至11任一所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110482646.8A CN115253299A (zh) | 2021-04-30 | 2021-04-30 | 渲染方法及其装置、计算机设备、存储介质 |
CN202110482646.8 | 2021-04-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022228521A1 true WO2022228521A1 (zh) | 2022-11-03 |
Family
ID=83744939
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2022/089931 WO2022228521A1 (zh) | 2021-04-30 | 2022-04-28 | 渲染方法及其装置、计算机设备、存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115253299A (zh) |
WO (1) | WO2022228521A1 (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102088472A (zh) * | 2010-11-12 | 2011-06-08 | 中国传媒大学 | 面向广域网的动漫渲染任务分解支持方法及实现系统 |
US8436867B1 (en) * | 2009-11-06 | 2013-05-07 | Pixar | System and method for generating computer graphic images by identifying variant and invariant shader arguments |
CN103106680A (zh) * | 2013-02-16 | 2013-05-15 | 赞奇科技发展有限公司 | 基于云计算架构的三维图形渲染的实现方法及云服务系统 |
CN103699364A (zh) * | 2013-12-24 | 2014-04-02 | 四川川大智胜软件股份有限公司 | 一种基于并行绘制技术的三维图形渲染方法 |
US20140237373A1 (en) * | 2011-06-21 | 2014-08-21 | Unified Computing Limited | Method of provisioning a cloud-based render farm |
CN106296788A (zh) * | 2016-10-10 | 2017-01-04 | 深圳市彬讯科技有限公司 | 一种跨机房集群渲染部署实现系统 |
CN109242945A (zh) * | 2018-12-13 | 2019-01-18 | 深圳市彬讯科技有限公司 | 分布式渲染的智能调度方法、装置、设备及存储介质 |
CN109669673A (zh) * | 2017-10-12 | 2019-04-23 | 世熠网络科技(上海)有限公司 | 基于html5的游戏引擎装置 |
CN110020367A (zh) * | 2017-12-15 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 一种页面渲染方法及装置 |
CN111951363A (zh) * | 2020-07-16 | 2020-11-17 | 广州玖的数码科技有限公司 | 一种基于云算链的渲染方法、系统及存储介质 |
-
2021
- 2021-04-30 CN CN202110482646.8A patent/CN115253299A/zh active Pending
-
2022
- 2022-04-28 WO PCT/CN2022/089931 patent/WO2022228521A1/zh active Application Filing
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8436867B1 (en) * | 2009-11-06 | 2013-05-07 | Pixar | System and method for generating computer graphic images by identifying variant and invariant shader arguments |
CN102088472A (zh) * | 2010-11-12 | 2011-06-08 | 中国传媒大学 | 面向广域网的动漫渲染任务分解支持方法及实现系统 |
US20140237373A1 (en) * | 2011-06-21 | 2014-08-21 | Unified Computing Limited | Method of provisioning a cloud-based render farm |
CN103106680A (zh) * | 2013-02-16 | 2013-05-15 | 赞奇科技发展有限公司 | 基于云计算架构的三维图形渲染的实现方法及云服务系统 |
CN103699364A (zh) * | 2013-12-24 | 2014-04-02 | 四川川大智胜软件股份有限公司 | 一种基于并行绘制技术的三维图形渲染方法 |
CN106296788A (zh) * | 2016-10-10 | 2017-01-04 | 深圳市彬讯科技有限公司 | 一种跨机房集群渲染部署实现系统 |
CN109669673A (zh) * | 2017-10-12 | 2019-04-23 | 世熠网络科技(上海)有限公司 | 基于html5的游戏引擎装置 |
CN110020367A (zh) * | 2017-12-15 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 一种页面渲染方法及装置 |
CN109242945A (zh) * | 2018-12-13 | 2019-01-18 | 深圳市彬讯科技有限公司 | 分布式渲染的智能调度方法、装置、设备及存储介质 |
CN111951363A (zh) * | 2020-07-16 | 2020-11-17 | 广州玖的数码科技有限公司 | 一种基于云算链的渲染方法、系统及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115253299A (zh) | 2022-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11813521B2 (en) | Memory management in gaming rendering | |
CN110227259B (zh) | 一种数据处理的方法、装置、服务器和系统 | |
US10097596B2 (en) | Multiple stream content presentation | |
US10315110B2 (en) | Service for generating graphics object data | |
CN111988392B (zh) | 一种基于云业务的资源分配方法、相关装置、设备及系统 | |
US8924985B2 (en) | Network based real-time virtual reality input/output system and method for heterogeneous environment | |
US9582904B2 (en) | Image composition based on remote object data | |
US9432672B2 (en) | Image compression method and system with image compression time information | |
CN105488837A (zh) | 基于云计算的实时离屏渲染方法、装置及系统 | |
EP3076296A1 (en) | Computer, control device and data processing method | |
WO2010141522A1 (en) | Qualified video delivery | |
CN102196033B (zh) | 一种传送和接收远程呈现数据的方法和系统 | |
JP2022546145A (ja) | クラウドネイティブによる3d場面のゲーム方法及びシステム | |
WO2020238846A1 (zh) | 图像获取方法、装置、服务器及存储介质 | |
US20240296151A1 (en) | Cloud server application management method, apparatus, device, computer-readable storage medium, and computer program product | |
Deng et al. | Server allocation for multiplayer cloud gaming | |
CN117014655A (zh) | 视频渲染方法、装置、设备和存储介质 | |
WO2022228521A1 (zh) | 渲染方法及其装置、计算机设备、存储介质 | |
WO2016066056A1 (zh) | 图像远程投射方法、服务器和客户端 | |
CN115396500B (zh) | 基于专网的服务平台切换方法、系统及电子设备 | |
WO2023035619A1 (zh) | 一种场景渲染方法、装置、设备及系统 | |
CN114840159A (zh) | 一种渲染上屏方法、装置、设备及介质 | |
CN107959824A (zh) | 一种监控视频处理方法、物理服务器及存储介质 | |
JP6567032B2 (ja) | 複数のストリーム・コンテンツ提示 | |
CN107483382B (zh) | 一种云渲染方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22794991 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 22794991 Country of ref document: EP Kind code of ref document: A1 |