Method, device, equipment and computer program for rendering video frames

By introducing secondary rendering technology in cloud applications, terminal devices allow customization of virtual objects display parameters, solving the problem of difficulty in adjusting the display effect of virtual objects in the existing technology, and realizing the personalization and scalability of cloud applications.

JP7647008B2Active Publication Date: 2025-03-18TENCENT TECHNOLOGY (SHENZHEN) CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2023571123
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2021-08-31
Filing Date
2022-08-09
Publication Date
2025-03-18
Estimated Expiration
2042-08-09

AI Technical Summary

Technical Problem

The prior art is difficult to quickly adjust the display effect of virtual objects in cloud applications, which limits the personalization and scalability of cloud applications.

Method used

By introducing secondary rendering technology in cloud applications, terminal devices allow them to determine the display parameters of virtual objects and perform secondary rendering of video frames on the server side to generate video frames with custom display effects.

Benefits of technology

It realizes rapid personalized adjustment of virtual objects in cloud applications, expands the functionality and personalization of cloud applications, and improves the user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007647008000001
    Figure 0007647008000001
  • Figure 0007647008000002
    Figure 0007647008000002
  • Figure 0007647008000003
    Figure 0007647008000003
Patent Text Reader

Abstract

The present application discloses a method, apparatus, device and storage medium for rendering a video frame, which belongs to the field of computer technology, and includes the steps of: a server obtaining a first video frame corresponding to a first terminal, the first video frame being a video frame obtained by rendering a target virtual scene from a viewing angle of a controlled virtual object in the target virtual scene, the controlled virtual object being a virtual object controlled by the first terminal; if the first video frame displays a target virtual object of the first terminal, the server obtaining a second video frame by rendering the target virtual object in the first video frame based on a first parameter of the first terminal; and the server sending the second video frame to the first terminal, the first terminal being configured to display the second video frame.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] This application was filed on August 31, 2021, bearing application number 202111010058.0, and claims priority to a Chinese patent application entitled "Method, apparatus, device and storage medium for rendering video frames," the entire contents of which are incorporated herein by reference.

[0002] The present application relates to the field of computer technology, and in particular to a method, apparatus, device and computer program for rendering video frames. [Background technology]

[0003] With the maturity of cloud computing technology, users can use cloud computing to achieve tasks that are difficult for terminals to complete. For example, in the field of cloud games, users may use cloud computing technology to play games that originally cannot be smoothly run on terminals. All background processing related to the game is completed by the cloud game server, and the terminal only needs to send control information to the cloud game server, and the control information is used to control game objects in the game scene. The cloud game server can obtain video frames by performing background processing based on the control information, and the cloud game server sends the video frames to the terminal, and the terminal displays the video frames.

[0004] In the related art, for a certain game object in a game scene, the display effect of the game object is pre-arranged by an engineer when designing the game, for example, for a car in a game scene, the color and style of the car are both pre-arranged by an engineer. Summary of the Invention [Problem to be solved by the invention]

[0005] Embodiments of the present application provide a method, apparatus, device and computer program for rendering video frames that provides the ability to perform secondary rendering on virtual objects in cloud applications. [Means for solving the problem]

[0006] According to one aspect, there is provided a method for rendering a video frame, comprising: A step of obtaining a first video frame corresponding to a first terminal by a server, the first video frame being a video frame obtained by rendering a target virtual scene from a viewing angle of a controlled virtual object in the target virtual scene, the controlled virtual object being a virtual object controlled by the first terminal; If the first video frame displays a target virtual object of the first terminal, the server renders the target virtual object in the first video frame according to a first parameter of the first terminal to obtain a second video frame, where the target virtual object is a virtual object that needs to be re-rendered by the first terminal; The server transmitting the second video frame to the first terminal, the first terminal being configured to display the second video frame.

[0007] According to one aspect, there is provided a system for rendering video frames, comprising: a first terminal, a first server, and a second server, the first terminal, the first server, and the second server being communicatively connected; the first server is configured to obtain a first video frame corresponding to the first terminal by rendering a target virtual scene from a viewing angle of a controlled virtual object in the target virtual scene, and to send the first video frame to the second server, the controlled virtual object being a virtual object controlled by the first terminal; the second server configured to receive the first video frame; The second server is further configured to obtain a second video frame by rendering the target virtual object in the first video frame based on a first parameter of the first terminal when the first video frame displays a target virtual object of the first terminal; the second server is further configured to transmit the second video frame to the first terminal; The first terminal is configured to display the second video frame in response to receiving the second video frame.

[0008] According to one aspect, there is provided an apparatus for rendering a video frame, comprising: a first video frame acquisition module for acquiring a first video frame corresponding to a first terminal, the first video frame being a video frame obtained by rendering a target virtual scene from a viewing angle of a controlled virtual object in the target virtual scene, the controlled virtual object being a virtual object controlled by the first terminal; a rendering module for the server to obtain a second video frame by rendering the target virtual object in the first video frame according to a first parameter of the first terminal when the first video frame displays a target virtual object of the first terminal, where the target virtual object is a virtual object that needs to be re-rendered by the first terminal; A transmitting module for transmitting the second video frame to the first terminal, the first terminal configured to display the second video frame.

[0009] According to one aspect, a server is provided that includes one or more processors and one or more memories storing at least one computer program that is loaded and executed by the one or more processors to implement the method for rendering the video frames.

[0010] According to one aspect, there is provided a computer-readable storage medium having stored thereon at least one computer program which, when loaded and executed by a processor, implements the method for rendering video frames.

[0011] According to one aspect, there is provided a computer program product comprising program code which, when executed by a processor, implements said method for rendering video frames. Effect of the Invention

[0012] According to the technical solution provided in the embodiment of the present application, when a display effect of a certain virtual object is to be changed, a first parameter is determined by a first terminal for the virtual object, and a second video frame is obtained by performing secondary rendering on the video frame according to the first parameter, and compared with the first video frame, the display effect of the virtual object displayed in the second video frame is also the display effect arranged by the first terminal for the virtual object. According to this technical solution, a function of performing secondary rendering on a virtual object is provided in a cloud application, allowing a user to quickly and effectively adjust the display effect of a certain virtual object in a virtual scene, thereby expanding the functional scope of the cloud application, improving the personalization of the cloud application, and making the cloud application more widely disseminated. [Brief description of the drawings]

[0013] In order to more clearly explain the technical solutions in the embodiments of the present application, the drawings necessary for explaining the embodiments will be briefly described below. Obviously, the drawings in the following description are only some embodiments of the present application, and those skilled in the art can further obtain other drawings based on these drawings without any creative work. [Figure 1] FIG. 2 is a schematic diagram of an implementation environment of the video frame rendering method provided in an embodiment of the present application. [Diagram 2] 4 is a flowchart of a method for rendering a video frame provided in an embodiment of the present application. [Diagram 3] 4 is a flowchart of a method for rendering a video frame provided in an embodiment of the present application. [Figure 4] FIG. 2 is a schematic diagram of an interface provided in an embodiment of the present application. [Diagram 5] FIG. 2 is a schematic diagram of an interface provided in an embodiment of the present application. [Figure 6] 4 is a flowchart of a method for rendering a video frame provided in an embodiment of the present application. [Figure 7] FIG. 2 is a schematic diagram of an interface provided in an embodiment of the present application. [Figure 8] FIG. 2 is a schematic configuration diagram of a video frame rendering device provided in an embodiment of the present application. [Figure 9] FIG. 2 is a schematic diagram of a server configuration provided in an embodiment of the present application. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0014] In order to make the objectives, technical solutions and advantages of the present application clearer, the embodiments of the present application are described in more detail below with reference to the drawings.

[0015] In this application, terms such as "first" and "second" are used to distinguish between identical or similar items that have essentially the same actions and functions, and it should be understood that there is no logical or chronological dependency between "first", "second" and "nth" and that there are no limitations on the number or order of execution.

[0016] In this application, the term "at least one" refers to one or more, and "plurality" means two or more, for example, a plurality of reference facial images refers to two or more reference facial images.

[0017] Cloud applications are new applications that change the usage pattern of traditional applications, "local installation, local computing," to "on-demand" services, connecting to remote server clusters via the Internet or local area networks for operation and control to complete service logic or computing tasks. Cloud applications run on remote server clusters, but their interfaces are displayed on terminals, which can reduce terminal running costs and greatly improve work efficiency.

[0018] Cloud Gaming, also known as Gaming on Demand, is an online gaming technology based on cloud computing technology. Cloud gaming technology allows thin clients with relatively limited graphics processing and data computing capabilities to run high-quality games. In a cloud gaming scenario, games are run on cloud servers rather than on players' game terminals, and the cloud servers render game scenes into video and audio streams and transmit them to players' game terminals over a network. Players' game terminals do not need to have strong graphics computing and data processing capabilities, and only need to have basic streaming media playback capabilities and the ability to obtain players' input commands and send them to the cloud server.

[0019] A virtual scene is a virtual scene that is displayed (or provided) when an application program is executed. The virtual scene may be a simulated environment of the real world, or a semi-simulated, semi-fictional virtual environment, or a completely fictional virtual environment. The virtual scene may be any one of a 2D virtual scene, a 2.5D virtual scene, or a 3D virtual scene, and the embodiment of the present application does not limit the dimension of the virtual scene. For example, the virtual scene may include sky, land, ocean, etc., the land may include environmental elements such as desert, city, etc., and the user may control virtual objects to move within the virtual scene.

[0020] A virtual object refers to an actionable object in a virtual scene. The actionable object may be a virtual person, a virtual animal, or an animated person, such as a person, an animal, a plant, an oil barrel, a wall, a stone, etc., displayed in a virtual scene. The virtual object may be a virtual image for representing a user in the virtual scene. A virtual scene may include a plurality of virtual objects, each of which has its own shape and volume in the virtual scene and occupies a portion of the space of the virtual scene.

[0021] In some embodiments, the virtual object is a player character controlled by an operation on a client, an artificial intelligence (AI) placed in a virtual scene battle through training, or a non-player character (NPC) placed in a virtual scene. In some embodiments, the virtual object is a virtual person competing in a virtual scene. In some embodiments, the number of virtual objects participating in an interaction in the virtual scene may be preset or may be dynamically determined depending on the number of clients joining the interaction.

[0022] In the example of a shooting game, the user may control a virtual object to freely fall into the sky of the virtual scene, to fall with a parachute open, to run, jump, crawl, or walk forward, or to swim, float, or dive in the sea. The user may control a virtual object to move in a virtual scene by riding a virtual vehicle. For example, the virtual vehicle may be a virtual car, a virtual airplane, a virtual yacht, or the like. Although the above scene is merely described as an example, the embodiment of the present invention is not limited thereto. The user may control a virtual object to perform an interaction such as a confrontation with another virtual object through an interaction prop. For example, the interaction prop may be a throwing type interaction prop such as a virtual grenade, a virtual cluster mine, or a virtual sticky grenade (abbreviated as "virtual sticky bullet"), or a shooting type interaction prop such as a virtual machine gun, a virtual hand gun, or a virtual rifle, but the present application does not specifically limit the type of the interaction prop.

[0023] Android containers are packaged into container images and then distributed through standard container images. The carrier is any container shell that supports OCI (Open Container Initiative), so it can be easily maintained through k8s (kubernetes, a container management engine), and the powerful maintenance tools of k8s make it easy to deploy thousands of server clusters on the cloud.

[0024] 1 is a schematic diagram of an implementation environment of the method for rendering a video frame provided in an embodiment of the present application, and referring to FIG. 1, the implementation environment may include a first terminal 110, a client server 120, a first server 130, a game server 140, and a second server 150. In some embodiments, the first terminal 110, the client server 120, the first server 130, the game server 140, and the second server 150 are nodes in a blockchain system, and data transmitted between the first terminal 110, the client server 120, the first server 130, the game server 140, and the second server 150 is also stored in the blockchain.

[0025] The first terminal 110 is connected to the client server 120 via a wireless or wired network. Optionally, the first terminal 110 may be, but is not limited to, a smartphone, a tablet, a laptop, a desktop computer, a smart watch, etc. The first terminal 110 installs and runs a client that supports displaying a virtual scene.

[0026] The client server 120 is a server that provides services to clients, and the client server 120 may be an independent physical server, or a server cluster consisting of multiple physical servers, or a distributed system, or may provide basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, Content Delivery Network (CDN), big data, and artificial intelligence platforms. The first terminal 110 logs into the client server 120 through the client it is running, and the client server 120 provides services related to a user account, such as a service related to user account verification, or a service for determining a cloud game period corresponding to a user account, or a service for storing personalized settings corresponding to a user account, but is not limited thereto in the embodiment of the present application. That is, the client server 120 is an intermediary that connects the client running on the first terminal 110 and the first server 130.

[0027] The first server 130 is an independent physical server, or a server cluster or distributed system consisting of multiple physical servers, or a server providing basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, content delivery networks, and big data and artificial intelligence platforms. The first server 130 provides background services related to displaying virtual scenes, and the first terminal 110 and the first server 130 are connected via a wireless network or a wired network, and the first terminal 110 can send control information for controlling virtual objects in the virtual scene to the first server 130. The first server 130 renders the virtual scene based on the control information. The first server 130 and the client server 120 are connected via a wireless network or a wired network, and the first server 130 can obtain related information of a user account from the client server 120 and perform related operations such as game initialization based on the related information. Optionally, the first server 130 is a cloud server.

[0028] The game server 140 is an independent physical server, or a server cluster or distributed system consisting of multiple physical servers, or a server providing basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, content delivery networks, and big data and artificial intelligence platforms. The game server 140 and the first server 120 are connected via a wireless network or a wired network, and the game server 140 stores information about game characters, such as game character friends, address books, game character levels, game character names, and other related information. The first server 130 can obtain information about game characters from the game server 140, and one user account can correspond to multiple game characters, and the client server 120 is configured to store information about the user accounts, and the game server 140 is configured to store information about the game characters.

[0029] The second server 150 is an independent physical server, or a server cluster or distributed system consisting of multiple physical servers, or a server providing basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, content delivery networks, and big data and artificial intelligence platforms. The second server 150 provides services related to secondary rendering of virtual scenes, and the second server 150 and the first server 120 are connected via a wireless network or a wired network, and the first server 120 can send video frames of the rendered virtual scenes to the second server 150. The second server 150 performs secondary rendering on the video frames to realize user personalized processing. The second server 150 can send the video frames after secondary rendering to the first terminal 110, and the first terminal 110 displays the video frames after secondary rendering. In addition, the second server 150 and the client server 130 are connected via a wireless network or a wired network, and the second server 150 can obtain personalized settings corresponding to a user account from the client server 130, and perform secondary rendering on the video frames sent from the first server 120 based on the personalized settings to obtain the video frames after secondary rendering. In some embodiments, the second server 150 is integrated with the first server 130, and the function of the second server 150 is realized by a system running on the first server 130. Optionally, the second server 150 can be a scene management server.

[0030] Those skilled in the art will know that the number of the first terminals can be more or less. For example, the first terminals can be only one, or can be tens or hundreds or more, in which case the implementation environment further includes other first terminals. The embodiment of the present application does not limit the number and device type of the first terminals.

[0031] After describing the application scenario of the video frame rendering method provided in the embodiments of the present application, the above implementation environment will be combined to describe the application scenario of the video frame rendering method provided in the embodiments of the present application. In the following description, the first terminal is the first terminal 110 in the above implementation environment, the client server is the client server 120 in the above implementation environment, the first server is the first server 130 in the above implementation environment, the game server is the game server 140 in the above implementation environment, and the second server is the second server 150 in the above implementation environment.

[0032] The video frame rendering method provided in the embodiments of the present application may be applied to various cloud game scenes, such as First-person Shooting (FPS) games, Third-person Shooting (TPS) games, Multiplayer Online Battle Arena (MOBA), chess games, or auto battler games, but is not limited thereto in the embodiments of the present application.

[0033] Take the video frame rendering method provided in the embodiment of the present application as an example applied to an FPS game, a user launches a cloud game client on a first terminal, and logs in a user account in the cloud game client, that is, the user enters a user account and a corresponding password into the cloud game client, and clicks a login control to log in. In response to detecting a click operation on the login control, the first terminal sends a login request including the user account and the corresponding password to the client server. After receiving the login request, the client server obtains and verifies the user account and the corresponding password from the login request. After verifying the user account and the corresponding password, the client server sends login success information to the first terminal. After receiving the login success information, the first terminal sends a cloud game acquisition request including the user account to the client server. After obtaining the cloud game acquisition request, the client server queries according to the user account included in the cloud game acquisition request to acquire a plurality of cloud games corresponding to the user account, and sends identifiers of the plurality of cloud games to the first terminal, and the first terminal displays the identifiers of the plurality of cloud games on the cloud game client. A user selects an identifier of an FPS game that the user wants to play from multiple cloud game identifiers displayed on the cloud game client through the first terminal, that is, an FPS game that the user wants to play. After the user selects an FPS game in the cloud game client, the first terminal sends a game launch command to the client server, and the game launch command includes a user account, an identifier of the FPS game, and hardware information of the first terminal, and the hardware information of the first terminal includes the screen resolution of the first terminal, the model number of the first terminal, etc., but is not limited thereto in the embodiment of the present application. After receiving the game launch command, the client server sends the game launch command to the first server.After receiving the game launch command, the first server obtains the user account, the identifier of the FPS game, and the hardware information of the first terminal from the game launch command. The first server initializes the FPS game based on the hardware information of the first terminal to realize matching between the rendered game screen and the first terminal, and sends the user account to a game server corresponding to the FPS game. After receiving the user account, the game server sends information corresponding to the game account to the first server. The first server launches the FPS game based on the information corresponding to the game account. During the execution of the FPS game, the user can control a controlled virtual object in the FPS to move through the first terminal, that is, the first terminal sends control information of the controlled virtual object to the first server, and the first server renders a virtual scene of the FPS based on the control information to obtain a first video frame. The first server transmits the first video frame to the second server, and before the start of the game, the user performs personalized setting on a certain virtual object in the FPS game, for example, sets a vehicle in the FPS game to red, so that the second server can perform image recognition on the first video frame to determine whether the first video frame includes a vehicle. If the second server determines that the first video frame displays a vehicle, it obtains a first parameter of the vehicle from the client server, and the first parameter is determined by the client server based on the parameter setting of the vehicle by the user. The second server renders the vehicle in the first video frame based on the first parameter to obtain a second video frame, and transmits the second video frame to the first terminal. The user can view the second video frame through the first terminal. In the FPS game, if a technician sets the color of the vehicle to blue, the above steps can adjust the color of the vehicle to the red set by the user, thereby realizing the personalized placement of the vehicle.

[0034] Here, the above description takes the processing of a first video frame as an example. During the execution of the FPS game, there are multiple consecutive video frames, and the multiple video frames are all processed in the above manner for display by the first terminal.

[0035] In addition, MOBA games, TPS games, chess games and auto-battler games can all be processed by adopting the above steps. For example, in a MOBA game, when a user places a tree in the MOBA game on a peach blossom via a first terminal, the second server can recognize the tree from the first video frame, and perform secondary rendering of the tree on the peach blossom to obtain a second video frame, and send the second video frame to the first terminal for display.

[0036] In addition, except for the above FPS games, MOBA games, chess games, or auto battler games, the video frame rendering method provided in the embodiments of the present application may be applied to other types of cloud games, but the embodiments of the present application are not limited thereto.

[0037] After describing the implementation environment and application scenario of the video frame rendering method provided in the embodiment of the present application, the video frame rendering method provided in the embodiment of the present application will be described below.

[0038] FIG. 2 is a flowchart of a method for rendering a video frame provided in an embodiment of the present application. Referring to FIG. 2, it is taken as an example that the method is performed by a second server, and the method includes steps 201-203. At 201, a second server obtains a first video frame corresponding to a first terminal, the first video frame being a video frame obtained by rendering a target virtual scene from a viewing angle of a controlled virtual object in the target virtual scene, the controlled virtual object being a virtual object controlled by the first terminal.

[0039] Rendering a target virtual scene from the viewing angle of a controlled virtual object in the target virtual scene means rendering the screen observed by the controlled virtual object in the target virtual scene. Because the controlled virtual object is a virtual object controlled by a first terminal, the screen observed by the controlled virtual object in the target virtual scene can simulate the screen seen by a user of the first terminal in the target virtual scene.

[0040] For different first terminals, the different first terminals have different controlled virtual objects, and in the same target virtual scene, the screens observed by the different controlled virtual objects are different, so the screens displayed on the different first terminals are also different. Therefore, the target virtual scene needs to be rendered from the viewing angle of the controlled virtual object of the first terminal, and the acquired video frame corresponds to the first terminal.

[0041] Optionally, the first video frame is obtained by being rendered by a first server and sent to a second server.

[0042] At 202, if the first video frame displays a target virtual object of the first terminal, a second server obtains a second video frame by rendering the target virtual object in the first video frame based on a first parameter of the first terminal.

[0043] The target virtual object is a virtual object set by the first terminal and needs to be re-rendered by the first terminal. For example, the target virtual object is a virtual object selected by the user through the first terminal, or a virtual object selected by the first terminal based on the position of the controlled virtual object, or a virtual object set in other manners. The first parameter is a first parameter of the first terminal, for example, a first parameter determined by the user through the first terminal, or a first parameter set by the first terminal as a default. The first parameter is used to obtain the second video frame by re-rendering the target virtual object in the first video frame. Both the target virtual object and the first parameter are set through the first terminal and are not influenced by other terminals, so that the personalized configuration of the virtual scene is realized, and when the display effect of a certain virtual object in the virtual scene is to be changed, it can be directly set through the first terminal, and there is no need to contact a technician to change the basic code and files, and the efficiency is high.

[0044] At 203, the second server transmits the second video frame to the first terminal, and the first terminal is configured to display the second video frame.

[0045] Optionally, when the video frame rendering method provided in the embodiment of the present application is applied to a cloud game scene, the rendering process for the virtual scene and the video frame are both realized in the cloud, where the cloud is a collective term for the second server (e.g., the scene management server), the first server (e.g., the cloud server) and other related servers. After the second server performs secondary rendering on the first video frame, it sends the obtained second video frame to the first terminal, so that the first terminal does not need to perform background processing and can directly display the second video frame, which is highly efficient.

[0046] It should be noted that the embodiment of the present application only takes the second server to perform the method as an example, and in other embodiments, the method may be performed by another server.

[0047] According to the technical solution provided in the embodiment of the present application, when a display effect of a certain virtual object is to be changed, a first parameter is determined by a first terminal for the virtual object, and a second video frame can be obtained by performing secondary rendering on a video frame according to the first parameter. Compared with the first video frame, the display effect of the virtual object displayed in the second video frame is also the display effect arranged by the first terminal for the virtual object. According to this technical solution, a function of performing secondary rendering on a virtual object is provided in a cloud application, so that a user can quickly and effectively adjust the display effect of a certain virtual object in a virtual scene, the functional scope of the cloud application is expanded, and the personalization of the cloud application is improved, so that the cloud application is more widely propagated.

[0048] The above steps 201-203 briefly describe the embodiments of the present application, and below, several examples will be combined to more clearly describe the technical solutions provided in the embodiments of the present application, taking the method executed by a second server as an example, with reference to Fig. 3, the method includes steps 301-303. In 301, the second server obtains a first video frame corresponding to a first terminal, the first video frame is a video frame obtained by rendering a target virtual scene from a viewing angle of a controlled virtual object in the target virtual scene, and the controlled virtual object is a virtual object controlled by the first terminal.

[0049] Optionally, in the game scene, the target virtual scene is a game scene of a cloud game, and the viewing angle of the controlled virtual object is the viewing angle of the virtual camera of the controlled virtual object; in an FPS game, the virtual camera of the controlled virtual object is located at the head of the controlled virtual object, and when the user controls the controlled virtual object to move in the target virtual scene through a first terminal, the virtual camera also moves with the movement of the controlled virtual object, and the screen captured by the virtual camera is the screen observed by the controlled virtual object in the target virtual scene. In a TPS game, the virtual camera of the controlled virtual object is located above the controlled virtual object, and when the user controls the controlled virtual object to move in the target virtual scene through a first terminal, the virtual camera also moves with the movement of the controlled virtual object, and the screen captured by the virtual camera is the screen observed from above the controlled virtual object. In a cloud game scene, the screen captured by the virtual camera is rendered by a cloud game server, and since there are multiple screens that are chronologically continuous during the game, the multiple screens are also called video frames. Similarly, in other scenes, the first server may capture a screen of the target virtual scene through a virtual camera, and the captured screen is also called a video frame. Optionally, the first server is a cloud server.

[0050] In a possible embodiment, the first terminal sends control information about the controlled virtual object to the first server, and after receiving the control information, the first server determines a viewing angle of the controlled virtual object in the target virtual scene based on the control information. The first server obtains a first video frame by rendering the target virtual scene based on the viewing angle of the controlled virtual object, and the first video frame is a video frame corresponding to the first terminal. The first server sends the first video frame to the second server, and the second server obtains the first video frame. The control information of the controlled virtual object is used to change the position, orientation and behavior of the controlled virtual object in the target scene, for example, the control information may control the controlled virtual object to move forward, backward, left, right in the target virtual scene, or may control the controlled virtual object to rotate left or right in the target virtual scene, or may control the controlled virtual object to perform actions such as squatting, crawling, and using a virtual prop in the target virtual scene. Of course, when the first server controls the controlled virtual object to move or act in the target virtual scene based on the control information, the virtual camera bound to the controlled virtual object also moves with the movement of the controlled virtual object, and when the controlled virtual object moves or acts, the viewing angle at which the controlled virtual object observes the target virtual scene changes, and the virtual camera bound to the controlled virtual object can record such change. Optionally, the first server is a scene management server.

[0051] In this embodiment, control information of the controlled virtual object can be sent to the first server via the first terminal, and the first server can determine a viewing angle of the controlled virtual object in a target virtual scene based on the control information, and obtain a first video frame by rendering the target virtual scene based on the viewing angle of the controlled virtual object in the target virtual scene, thus eliminating the need for rendering by the first terminal and improving rendering efficiency, and allowing the second server to directly perform subsequent processing on the first video frame.

[0052] For example, the first terminal displays a target virtual scene and displays a controlled virtual object in the target virtual scene. A long connection is established between the first terminal and the first server, and in response to an operation on the controlled virtual object, the first terminal transmits control information corresponding to the operation to the first server, and the long connection means that multiple data packets can be continuously transmitted on one connection, and during the connection maintenance period, if there are no data packets to transmit, both need to transmit a link detection packet. In some embodiments, the operation on the controlled virtual object includes a click operation and a drag operation, and the click operation is a click operation on the operation control, for example, a click operation on the firing control in an FPS game. The drag operation is a drag operation on the operation control or the controlled virtual object, for example, a drag operation on the skill control in an MOBA game. After receiving the control information, the first server determines a position, attitude, and motion of the controlled virtual object in the target virtual scene based on the control information. The first server determines a viewing angle of the controlled virtual object based on the position, attitude, and motion of the controlled virtual object in the target virtual scene. The first server obtains a first video frame corresponding to the first terminal by rendering the target virtual scene based on the visual angle of the controlled virtual object, and the first video frame is a video frame obtained by rendering based on the control information transmitted by the first terminal. For example, if the user's operation on the controlled virtual object is a click on a squat control, the control information transmitted from the first terminal to the first server is also used to control the controlled virtual object to squat. The first server controls the controlled virtual object to squat in the target virtual scene, and determines the visual angle of the controlled virtual object after squatting. The first video frame is obtained by rendering the target virtual scene based on the visual angle of the controlled virtual object after squatting.The first server transmits the first video frame to the second server, and the second server obtains the first video frame.

[0053] At 302, a second server performs image recognition on the first video frame to determine a type of the first video frame.

[0054] In a possible embodiment, the second server detects in the first video frame a template image of a target virtual object. In response to detecting a region in the first video frame that matches the template image of the target virtual object, the second server determines the first video frame as a first type, the first type indicating that the first video frame displays the target virtual object. In response to detecting a region in the first video frame that does not match the template image of the target virtual object, the second server determines the first video frame as a second type, the second type indicating that the first video frame does not display the target virtual object. At the start, an identifier of the target virtual object is sent from the client server to the second server, and the second server can determine the target virtual object requiring recognition based on the identifier of the target virtual object, for example, the second server queries a template image stored in correspondence with the identifier of the target virtual object, i.e., the template image of the target virtual object, based on the identifier, and then uses the template image for detection each time a video frame corresponding to the first terminal is acquired.

[0055] The target virtual object is a virtual object placed by the first terminal, and the target virtual object is any one of virtual objects in the target virtual scene. For example, the target virtual object is a virtual car in the target virtual scene, or a virtual tree in the target virtual scene, or a virtual house in the virtual scene, or a virtual gun, etc., and the embodiment of the present application is not limited thereto.

[0056] In this embodiment, the second server can determine the type of the first video frame through template matching, that is, determine whether the first video frame displays the target virtual object, and because the speed of template matching is fast, when using template matching to determine the type of the first video frame, the efficiency is also high.

[0057] The above embodiment is illustrated below by two examples.

[0058] Example 1: A second server uses a template image of the target virtual object to obtain a similarity between the template image of the target virtual object and a plurality of regions in a first video frame. In response to a presence of a region in the plurality of regions where the similarity between the template image of the target virtual object satisfies a target similarity condition, the second server determines that the region matches the template image of the target virtual object and determines the first video frame as a first type. In response to a similarity between the plurality of regions and the template image of the target virtual object not satisfying a target similarity condition, the second server determines that a region does not exist in the first video frame that matches the template image of the target virtual object and determines the first video frame as a second type.

[0059] For example, the second server uses a template image of the target virtual object to slide on the first video frame to obtain a similarity between the template image of the target virtual object and a plurality of regions on the first video frame, the plurality of regions being regions covered when the template image of the target virtual object slides on the first video frame. In some embodiments, the second server may use a similarity of color values ​​or a similarity of gradation values ​​when determining the similarity between the template image of the target virtual object and the plurality of regions, but the embodiments of the present application are not limited thereto. In response to the existence of a region in the plurality of regions having a similarity between the template image of the target virtual object equal to or greater than a similarity threshold, the second server determines that the region matches the template image of the target virtual object and determines the first video frame as a first type, that is, the first video frame displays the target virtual object. In response to the similarity between the plurality of regions and the template image of the target virtual object being less than a similarity threshold, the second server determines that no regions in the first video frame match the template image of the target virtual object and determines the first video frame as a second type, i.e., the first video frame does not display the target virtual object.

[0060] Example 2: The second server obtains template images of a target virtual object in multiple sizes by performing a zoom process on the template image of the target virtual object. The second server obtains similarities between the template image of the target virtual object and multiple regions on a first video frame based on the template images of the multiple sizes, the multiple regions including regions having different sizes. In response to a region in the multiple regions having a similarity between the template image of the target virtual object that satisfies a target similarity condition, the second server determines that the region matches the template image of the target virtual object and determines the first video frame as a first type. In response to a similarity between the multiple regions and the template image of the target virtual object not satisfying a target similarity condition, the second server determines that a region in the first video frame does not match the template image of the target virtual object and determines the first video frame as a second type.

[0061] As the controlled virtual object moves within the target virtual scene, the distance between the controlled virtual object and the target virtual object may be different in different video frames, and the size of the target virtual object may also be different in different video frames, and template matching can be performed by scaling the template image of the target virtual object to multiple sizes of template images, thereby improving the accuracy of template matching.

[0062] For example, the second server obtains template images of multiple sizes of the target virtual object by performing a zoom process on the template image of the target virtual object. The second server controls the template images of multiple sizes to slide on the first video frame, and obtains similarities between the template images of multiple sizes and multiple regions on the first video frame, and the multiple regions are regions covered when the template image of the target virtual object slides on the first video frame. In some embodiments, the second server may use similarity of color values ​​or similarity of gradation values ​​to determine the similarity between the template images of multiple sizes and the multiple regions, but the embodiments of the present application are not limited thereto. In response to the existence of a region in which the similarity between any one of the template images of the multiple sizes is equal to or greater than the similarity threshold, the second server determines that the region matches the template image of the target virtual object, and determines the first video frame as a first type, that is, the first video frame displays the target virtual object. In response to the similarity between the plurality of regions and the template image of the target virtual object being less than a similarity threshold, the second server determines that no regions in the first video frame match the template image of the target virtual object and determines the first video frame as a second type, i.e., the first video frame does not display the target virtual object.

[0063] In a possible embodiment, the second server inputs the first video frame into an image recognition model, and the second server performs feature extraction and classification on the first video frame through the image recognition model, and outputs a type of the first video frame.

[0064] The image recognition model is obtained by training based on a sample video frame set, the sample video frame set including positive sample video frames and negative sample video frames, the positive sample video frames being video frames in which a target virtual object is displayed, and the negative sample video frames being video frames in which the target virtual object is not displayed. The image recognition model obtained by training based on the sample video frame set has the ability to determine whether a target virtual object is displayed in a video frame. In some embodiments, the image recognition model is pre-trained by the second server, and the image recognition model can be directly used in the game to determine the type of the video frame.

[0065] Two examples are used below to illustrate the above embodiment.

[0066] Example 1: A second server inputs the first video frame into the image recognition model. The second server performs feature extraction and full combination processing on the first video frame through the image recognition model to obtain a probability corresponding to the first video frame, the probability being a probability that the first video frame displays the target virtual object. In response to the probability being equal to or greater than a probability threshold, the second server determines the first video frame as a first type, the first type indicating that the first video frame displays the target virtual object. In response to the probability being less than the probability threshold, the second server determines the first video frame as a second type, the second type indicating that the first video frame does not display the target virtual object.

[0067] For example, the second server inputs the first video frame into the image recognition model, and performs a convolution process on the first video frame using the image recognition model to obtain a feature map of the first video frame. The second server performs a complete combination process and a normalization process on the feature map of the first video frame using the image recognition model to obtain a probability distribution sequence corresponding to the first video frame, and the normalization process may be performed using a Sigmoid or Softmax function, but is not limited thereto in the embodiment of the present application. In response to the probability corresponding to the first type in the probability distribution sequence being equal to or greater than a probability threshold, the second server determines the first video frame as a first type, that is, the first video frame displays a target virtual object. In response to the probability corresponding to the second type in the probability distribution sequence being equal to or greater than a probability threshold, the second server determines the first video frame as a second type, that is, the first video frame does not display a target virtual object.

[0068] Example 2: A second server divides the first video frame into a plurality of image blocks and inputs the plurality of image blocks into the image recognition model. The second server performs feature extraction and complete combination processing on the plurality of image blocks using the image recognition model to obtain a plurality of probabilities corresponding to each of the plurality of image blocks, where the probabilities are probabilities that the corresponding image block includes the target virtual object. In response to any one of the plurality of probabilities being equal to or greater than a probability threshold, the second server determines the first video frame as a first type, where the first type indicates that the first video frame displays the target virtual object. In response to any one of the plurality of probabilities being less than the probability threshold, the second server determines the first video frame as a second type, where the second type indicates that the first video frame does not display the target virtual object.

[0069] For example, the second server divides the first video frame into a plurality of image blocks of the same size, inputs the plurality of image blocks into the image recognition model, and performs a convolution process on the plurality of image blocks by the image recognition model to obtain a feature map of the plurality of image blocks. The second server performs a complete combination process and a normalization process on the feature map of the plurality of image blocks by the image recognition model to obtain a plurality of probabilities corresponding to the plurality of image blocks, the probabilities being the probabilities that the target virtual object is displayed in the corresponding image blocks, and the normalization process may be performed using a Sigmoid growth curve (Sigmoid) or a Softmax function, but is not limited thereto in the embodiment of the present application. In response to any one of the probabilities being equal to or greater than a probability threshold, the second server determines the first video frame as a first type, that is, the first video frame displays the target virtual object. In response to the plurality of probabilities being smaller than a probability threshold, the second server determines the first video frame as a second type, that is, the first video frame does not display the target virtual object.

[0070] Here, after step 302, if the type indicates that the virtual object is displayed in the first video frame target, the second server performs the next step 303, and if the type indicates that the first video frame does not display the target virtual object, the second server performs the next step 304.

[0071] At 303, if the type indicates that the first video frame displays a target virtual object of the first terminal, the second server obtains a second video frame by rendering the target virtual object in the first video frame based on a first parameter of the first terminal.

[0072] In a possible embodiment, when the first video frame displays a target virtual object of the first terminal, the second server obtains first rendering parameters, the first rendering parameters being rendering parameters corresponding to a first angle and a first distance in the first rendering parameters, the first angle being an angle between the controlled virtual object and the target virtual object, and the first distance being a distance between the controlled virtual object and the target virtual object. The second server obtains the second video frame by rendering the target virtual object in the first video frame according to the first rendering parameters.

[0073] In this embodiment, when the first video frame displays a target virtual object, the second server can perform secondary rendering on the target virtual object based on the first rendering parameters to change the display effect of the target virtual object; during the game, the distance and angle between the controlled virtual object and the target virtual object may change at any time, and different distances and angles correspond to different rendering parameters, and the second server can directly obtain the first rendering parameters from the first parameters based on the first angle and the first distance, and does not need to obtain the first rendering parameters by performing secondary calculations based on the first angle and the first distance, which is efficient.

[0074] For example, when the first video frame displays a target virtual object of the first terminal, the second server obtains from the first server a first angle and a first distance between the controlled virtual object and the target virtual object. The second server sends the first angle, the first distance, and the identifier of the target virtual object to the client server. After receiving the first angle, the first distance, and the identifier of the target virtual object, the client server determines a first parameter based on the identifier of the target virtual object. The client server queries from the first parameter based on the first angle and the first distance to obtain a first rendering parameter, and sends the first rendering parameter to the second server. The second server determines target pixel values ​​of a plurality of target pixel points of the target virtual object in the first video frame based on the first rendering parameter. The second server obtains the second video frame by updating the pixel values ​​of the plurality of target pixel points in the first video frame using the target pixel values.

[0075] The target pixel point is a pixel point of the target virtual object in the first video frame, the target pixel point has a pixel value in the first video frame, and the target pixel value is a pixel value obtained by updating the target pixel point, so that the target pixel value is used to update the original pixel value of the target pixel value.

[0076] The angle between the controlled virtual object and the target virtual object may be the angle between the orientation of the controlled virtual object and the orientation of the target virtual object. For example, if the controlled virtual object is a game character holding a virtual gun in a game scene, the orientation of the controlled virtual object is the aiming direction of the virtual gun. If the target virtual object is a virtual vehicle, the orientation of the target virtual object is directly in front of the virtual vehicle. The distance between the controlled virtual object and the target virtual object is the distance between the center point of the controlled virtual object and the center point of the target virtual object.

[0077] In a possible embodiment, when the first video frame displays a target virtual object of the first terminal, the second server obtains first and second rendering parameters from the first parameters, and in the first video frame, the second server uses the first and second rendering parameters to respectively render the target virtual object and the controlled virtual object, thereby obtaining the second video frame.

[0078] In this embodiment, the first parameters are parameters of the first terminal, and the first parameters include first rendering parameters for rendering a target virtual object and second rendering parameters for rendering a controlled virtual object, so that a user can perform secondary rendering not only on the target virtual object in the virtual scene, but also on the controlled virtual object controlled by the first terminal, thereby improving personalization and playability.

[0079] For example, when the first video frame displays a target virtual object of the first terminal, the second server obtains from the first server a first angle and a first distance between the controlled virtual object and the target virtual object. The second server sends the first angle, the first distance, and the identifier of the target virtual object to the client server. After receiving the first angle, the first distance, and the identifier of the target virtual object, the client server determines a first parameter based on the identifier of the target virtual object. The client server queries from the first parameter based on the first angle and the first distance to obtain a first rendering parameter and a second rendering parameter, and sends the first rendering parameter and the second rendering parameter to the second server. After receiving the first rendering parameter and the second rendering parameter, the second server renders the target virtual object using the first rendering parameter and renders the controlled virtual object using the second rendering parameter in the first video frame to obtain a second video frame.

[0080] For example, if a user wants to make personalized settings for the display effect of a target virtual object, and also wants to make personalized settings for the display effect of a controlled virtual object controlled by the user when displaying the target virtual object, this can be realized by the above embodiment. Take the target virtual object as an example, if a user wants to set the color of the virtual vehicle to red, and also wants to display the virtual vehicle in the target virtual scene, the clothes of the game character (virtual object) controlled by the first terminal can be displayed as blue, and the above embodiment arranges the first rendering parameter and the second rendering parameter in the first parameter. When the first video frame displays the target virtual object, the second server can use the first rendering parameter to perform secondary rendering on the target virtual object, and can also use the first rendering parameter to perform secondary rendering on the controlled virtual object, improving personalization.

[0081] In a possible embodiment, if the first video frame displays a target virtual object of the first terminal, the second server determines a position of the controlled virtual object in the target virtual scene. If the controlled virtual object is located in a target sub-scene of the target virtual scene, the second server obtains the second video frame by rendering the target virtual object in the first video frame according to the first parameters. If the controlled virtual object is not located in a target sub-scene of the target virtual scene, the second server determines the first video frame as the second video frame.

[0082] The target virtual scene includes multiple sub-scenes, and the multiple sub-scenes constitute the target virtual scene, for example, the multiple sub-scenes are divided into a virtual social scene and a virtual battle scene, and the virtual social scene includes a virtual fishing scene, a virtual chat room, a virtual dance room, or a virtual card room, etc., and in the virtual social scene, the user controls a virtual object to communicate with other users. The virtual battle scene is a scene in which the user controls a virtual object to fight. The target sub-scene is determined by the first terminal and may be a virtual social scene or a virtual battle scene, but is not limited thereto in the embodiment of the present application.

[0083] In the above embodiment, the user can determine the first parameter through the first terminal, and can also determine the target sub-scene for rendering the target virtual object, which greatly improves the degree of personalization and enhances user viscosity.

[0084] For example, when the first video frame displays a target virtual object of the first terminal, the second server obtains the position of the controlled virtual object in the target virtual scene from the first server. That is, the second server sends a position obtainment request to the first server, and the position obtainment request includes a timestamp of the first video frame and an identifier of the controlled virtual object. After obtaining the position obtainment request, the first server obtains the timestamp of the first video frame and the identifier of the controlled virtual object from the position obtainment request, and queries according to the timestamp of the first video frame and the identifier of the controlled virtual object to obtain the position of the controlled virtual object in the target virtual scene at the time indicated by the timestamp of the first video frame. The first server sends the position of the controlled virtual object in the target virtual scene to the server, and the position is used to indicate the sub-scene in which the controlled virtual object is located in the target virtual scene. While sending the position obtainment request to the first server, the second server sends a parameter obtainment request to the client server, and the parameter obtainment request includes the identifier of the target virtual object. After receiving the parameter acquisition request, the client server acquires an identifier of the target virtual object from the parameter acquisition request. The client server queries based on the identifier of the target virtual object to acquire a first parameter corresponding to the target virtual object and an identifier of the target subscene, and sends them to the second server. The second server acquires the position sent from the first server, the first parameter sent from the client server, and the identifier of the target subscene. If the subscene indicated by the position is the target subscene, the second server acquires the second video frame by rendering the target virtual object in the first video frame using the first parameter.If the sub-scene indicated by the position is not the target sub-scene, the second server does not render the first video frame, but directly determines the first video frame as the second video frame, that is, the second server can directly send the first video frame to the first terminal, and the first terminal displays the first video frame.

[0085] For example, the target subscene is a virtual fishing scene, the target virtual object is a virtual vehicle, and when the second server determines that a first video frame displays the virtual vehicle and a controlled virtual object is located in the virtual fishing scene, the second server performs secondary rendering on the virtual vehicle using first parameters to modify the display effect of the virtual vehicle. When the second server determines that a first video frame displays the virtual vehicle but a controlled virtual object is not located in the virtual fishing scene, the second server directly determines the first video frame as a second video frame without performing secondary rendering on the first video frame using first rendering parameters.

[0086] Here, in the above step 302, in addition to determining the type of the first video frame, the second server can also determine the position of the target virtual object in the first video frame if the first video frame is of the first type. When the second server determines the type of the first video frame by a template matching method, the scene server can determine the region matching the template image of the target virtual object in the first video frame to the position of the target virtual object in the first video frame. When the second server determines the type of the first video frame using an image recognition model, the image recognition model can output a detection box from the first video frame, and the detection box is the position where the target virtual object is located in the first video frame. After determining the position of the target virtual object in the first video frame, the second server can obtain the second video frame by performing secondary rendering on the position where the target virtual object is located in the first video frame based on the first rendering parameters.

[0087] For example, when the first video frame displays a target virtual object of the first terminal, the second server sends a relative position acquisition request to the first server, where the relative position acquisition request is used to acquire a distance between the controlled virtual object and the target virtual object, and the relative position acquisition request includes an identifier of the controlled virtual object and an identifier of the target virtual object. After receiving the relative position acquisition request, the first server acquires an identifier of the controlled virtual object and an identifier of the target virtual object from the relative position acquisition request, and determines a first angle and a first distance between the controlled virtual object and the target virtual object according to the identifier of the controlled virtual object and the identifier of the target virtual object. The first server sends the first angle and the first distance between the controlled virtual object and the target virtual object to the second server. After receiving the first angle and the first distance between the controlled virtual object and the target virtual object, the second server sends a rendering parameter acquisition request to the client server, where the rendering parameter acquisition request includes the first angle, the first distance, and the identifier of the target virtual object, and sends the rendering parameter acquisition request to the client server. After receiving the rendering parameter get request, the client server obtains the first angle, the first distance, and the identifier of the target virtual object from the rendering parameter get request, and determines the first parameters based on the identifier of the target virtual object. The client server queries the first parameters based on the first angle and the first distance to obtain the first rendering parameters, and sends the first rendering parameters to the second server. The second server determines target pixel values ​​of a plurality of target pixel points of the target virtual object in the first video frame based on the first rendering parameters. The second server uses the target pixel values ​​to update pixel values ​​of the plurality of target pixel points in the first video frame to obtain the second video frame, i.e., uses the target pixel values ​​to replace pixel values ​​of the plurality of target pixel points.In some embodiments, the target pixel values ​​are also referred to as texture data.

[0088] 4 , the first server obtains a first video frame 401 by rendering a target virtual scene from the viewing angle of a controlled virtual object in the target virtual scene, where the first video frame 401 includes a virtual vehicle 402, which is a target virtual object. The second server obtains a second video frame 403 by performing secondary rendering on the virtual vehicle 402 using the first rendering parameters. As can be seen, the virtual vehicle 404 in the second video frame 403 has a different display effect from that of the first video frame 401.

[0089] In some embodiments, there is an Android container inside the first server, and the rendering technology of the Android container is the rendering technology inside the Android container, the principle of which is that the GPU (Graphics Processing Unit) can be directly accessed in the Android container, and the GPU has high concurrency computing ability, and can directly complete the rendering in the Android container, which can improve the rendering performance and greatly reduce the delay caused by multiple renderings. One Android container is one complete Android system, and the compatibility is also perfect, and the rendering of the game can be realized. When the game starts, the first server can send a rendering completion command to the client server, and the client server can record the game period information of the current user account in real time, and if the period is insufficient, the client server can notify the client to process through signaling (for example, if the period is insufficient, the period is presented in a pop-up window; if the cloud game is abnormal, the client is made to present the abnormality to the user in a pop-up window).

[0090] The following describes how the client server generates a first parameter of the target virtual object.

[0091] In a possible embodiment, the first terminal displays a placement interface of the target virtual object, and the placement interface acquires placement information of the target virtual object. In response to an operation on the placement interface, the placement information of the target virtual object is sent to the client server. The client server receives the placement information of the target virtual object, creates a three-dimensional model of the target virtual object based on the placement information of the target virtual object, and acquires a first parameter corresponding to the three-dimensional model. In some embodiments, the client server binds and stores a user account (User ID) logged in by the first terminal, an identifier (Game ID) of the target virtual scene, an identifier (Object ID) of the target virtual object, and the first parameter, so that the first parameter can be determined based on the display in the subsequent calling process, which is highly efficient.

[0092] For example, the first terminal displays a placement interface of a target cloud game, where a plurality of virtual objects in the target cloud game are displayed in the placement interface, the target cloud game is a cloud game selected by a user, and a game scene of the target cloud game is a target virtual scene. In response to a selection of a target virtual object in the plurality of virtual objects, the first terminal displays a placement interface of the target virtual object, where a plurality of placement options are displayed in the placement interface. The first terminal generates placement information of the target virtual object based on a selected option in the plurality of placement options, and transmits the placement information of the target virtual object to a client server. After receiving the placement information of the target virtual object, the client server renders an initial three-dimensional model of the target virtual object based on the placement information of the target virtual object to obtain a three-dimensional model of the target virtual object. The client server obtains rendering parameters of the virtual camera and the three-dimensional model of the target virtual object at different angles and different distances, and the rendering parameters at the different angles and different distances constitute first parameters corresponding to the three-dimensional model.

[0093] For example, the first terminal launches a cloud game client and displays an execution interface of the cloud game client, and the execution interface displays a plurality of cloud games to be selected. In response to the selection of a target cloud game from the plurality of cloud games, the first terminal displays a configuration interface of the target cloud game, and the configuration interface displays a plurality of virtual objects for personalization processing in the target cloud game, for example, the plurality of virtual objects include a virtual vehicle, a virtual tree, a virtual house, etc. In response to the selection of a target virtual object from the plurality of virtual objects, take the target virtual object as an example, referring to FIG. 5, the first terminal displays a configuration interface 501 of the virtual vehicle, and a plurality of first-level configuration options 502 are displayed in the configuration interface 501, and the first-level configuration options are used to select a type of the virtual vehicle, and in some embodiments, the first terminal uses a vehicle brand to indicate the type of the virtual vehicle. In response to a selection of any one of the plurality of first level arrangement options, the first terminal displays a plurality of second level arrangement options 503 corresponding to the first level arrangement option, the second level arrangement options being used to select a style of the virtual vehicle, and in some embodiments, the first terminal indicates the style of the virtual vehicle using a vehicle model number. In response to a selection of any one of the plurality of second level arrangement options, the first terminal displays a plurality of third level arrangement options 504 corresponding to the second level arrangement option, the third level arrangement options being used to select a color of the virtual vehicle, e.g., red, black, blue, etc.In some embodiments, in response to a selection of any one of the third level placement options, the first terminal displays a plurality of fourth level placement options 505, where the fourth level placement options select a scope of the placement information of the target virtual object, including "only visible to me", "everyone visible", "permanent use", and "one-time use", etc., where "only visible to me" instructs the second server to perform secondary rendering only on video frames corresponding to the first terminal during the game, not on video frames corresponding to other terminals. "everyone visible" instructs the second server to perform secondary rendering on all of the video frames corresponding to all terminals during the game. For example, the virtual vehicle in the target virtual scene is displayed as Type A-Style B-Red by default, and the user of the first terminal places the virtual vehicle as Type C-Style D-White through the virtual vehicle placement interface. If the user of the first terminal selects "Only me can see", the virtual vehicle will be displayed as Type C-Style D-White in the target virtual scene displayed on the first terminal during the game, and other terminals displaying the target virtual scene will still display the virtual vehicle as Type A-Style B-Red. Of course, if the user of the first terminal selects "Everyone can see", all terminals displaying the target virtual scene will display the virtual vehicle as Type C-Style D-White during the game. For the option "Permanent use", the second server determines the rendering parameters each time according to the placement information determined this time. For the option "One-time use", the second server determines the rendering parameters only for this game according to the placement information determined this time. The first terminal determines placement parameters of the target virtual object according to the first level placement option, the second level placement option, the third level placement option and the fourth level placement option, and sends the placement parameters to the client server.The client server creates a three-dimensional model of the target virtual object using a general-purpose graphics library (Open Graphics Library, OpenGL) based on the setting parameters of the target virtual object. The client server obtains rendering parameters of the virtual camera and the three-dimensional model of the target virtual object at different angles and different distances, and the rendering parameters at the different angles and different distances constitute first parameters corresponding to the three-dimensional model.

[0094] In some embodiments, for example, the target virtual scene includes a virtual vehicle. Engineers can pre-create a large number of 3D models of the virtual vehicle through the client server based on the basic information of the vehicle (such as brand CarType, style CarStyle, color CarColor, etc.), and the corresponding 3D models can be directly called up in the game, which is highly efficient.

[0095] Optionally, the second server may further perform the following steps after obtaining the second video frame: In a possible embodiment, the second server obtains a second animation and a second audio corresponding to the target virtual object; The second server obtains a seventh video frame by adding the second animation corresponding to the target virtual object to the second video frame; The second server transmits the seventh video frame and the second audio to the first terminal, and the first terminal plays the second audio while displaying the seventh video frame; The position where the second animation is added to the second video frame is determined by a user or an engineer, for example, the second animation is added to a position adjacent to the target virtual object, for example, above or beside the target virtual object, but is not limited thereto in the embodiment of the present application.

[0096] In this embodiment, the second server can obtain a second video frame by performing secondary rendering on the first video frame based on the first parameters, and then further render based on the second video frame, i.e., add a second animation corresponding to the target virtual object to the second video frame to obtain a seventh video frame. In addition, the second audio corresponding to the target virtual object can also be obtained, and the seventh video frame can be sent to the first terminal together with the second audio, and the first terminal can play the second audio while displaying the seventh video frame. Since the first parameters, the second animation, and the second audio are all determined by the user through the first terminal, the same first video frame can be rendered into different seventh video frames by the second server due to different installations, and can constitute different second audios, thereby improving personalization.

[0097] For example, the second server obtains a second animation and a second audio corresponding to a target virtual object from the client server, and the second animation and the second audio are both determined by the first terminal. That is, the second server sends a first animation obtainment request to the client server, and the first animation obtainment request includes an identifier of the target virtual object. After receiving the first animation obtainment request, the client server obtains an identifier of the target virtual object from the first animation obtainment request, queries based on the identifier of the target virtual object to obtain a second animation and a second audio corresponding to the target virtual object, and sends the second animation and the second audio to the second server. After receiving the second animation and the second audio, the second server adds the second animation, for example, the first frame of the second animation, to the second video frame to obtain a seventh video frame. The second server sends the seventh video frame and the second audio to the first terminal, and the first terminal receives the seventh video frame and the second audio, and plays the second audio while displaying the seventh video frame.

[0098] From the user's perspective, the target virtual object is a virtual vehicle, the second animation is a gradually appearing thumb, and the first parameter is to adjust the color of the virtual vehicle to red. In a seventh video frame displayed on the first terminal, the color of the virtual vehicle is red, and the second audio is played while displaying the thumb next to the virtual vehicle.

[0099] At 304, if the type indicates that the first video frame does not display the target virtual object of the first terminal, the second server is configured to send the first video frame to the first terminal, and the first terminal is configured to display the first video frame.

[0100] According to step 304, if the first video frame does not display the target virtual object, the second server does not need to perform secondary rendering on the first video frame, but directly transfers the first video frame to the first terminal, and the first terminal displays the first video frame.

[0101] At 305, the second server transmits the second video frame to the first terminal, which is configured to display the second video frame.

[0102] In step 305, when the first video frame displays a target virtual object, the second server obtains a second video frame by performing secondary rendering on the first video frame based on the first rendering parameters, and sends the second video frame to the first terminal, so that the target virtual object in the second video frame displayed on the first terminal is displayed with a display effect arranged by the first terminal, thereby realizing rapid adjustment of the display effect of the target virtual object.

[0103] Optionally, after sending the second video frames to the first terminal, the second server may further perform any one of the following steps: In a possible embodiment, the second server aggregates a plurality of the second video frames into a first video frame set, and sends the first video frame set to the first terminal, and the first terminal is configured to share the first video frame set with other terminals.

[0104] In this embodiment, the second video frame is a video frame that the second server performs secondary rendering based on the user's settings, so that the display effect of the secondary video frame is personalized, and the second server can aggregate the second video frame into a first video frame set and send the first video frame set to the first terminal, and the first terminal can share the first video frame set with other terminals, that is, the user can share his / her personalized settings for the cloud application with other users, stimulating other users to play the cloud application, and allowing the cloud application to be more widely propagated.

[0105] In some embodiments, after the first terminal obtains the first video frame set, it can share the first video frame set through a social network, so as to more effectively spread the first video frame set.

[0106] In a possible embodiment, the second server obtains a concatenated video frame by concatenating the second video frame with the first video frame, and the second server is configured to aggregate a plurality of the concatenated video frames into a second video frame set and send the second video frame set to the first terminal, and the first terminal is configured to share the second video frame set with other terminals.

[0107] In this embodiment, the second video frame is a video frame that the second server performs secondary rendering based on the user's settings, and the first video frame is a video frame that is rendered by the first server by default, and after the second video frame and the first video frame are combined into a combined video frame, the user can see the user's personalized settings more clearly by watching the combined video frame. The second server can aggregate the combined video frames into a second video frame set and send the second video frame set to the first terminal. The first terminal can share the second video frame set with other terminals, that is, the user can share his / her personalized settings for the cloud application with other users to stimulate other users to play the cloud application, so that the cloud application is more widely propagated.

[0108] Here, the above steps 301-305 are taken as an example in which the second server processes the first video frame to obtain the second video frame, and in the game, the first server renders a target scene in real time to obtain a series of video frames, all of which correspond to the first terminal, and the first video frame is one of the series of video frames, for which the second server can execute the above steps 301-305.

[0109] Optionally, if the first terminal selects “Visible to everyone”, the second server can further perform the following steps 306-308, so as to modify the display effect of the target virtual object in the virtual scene by performing secondary rendering on the video frames corresponding to other terminals.

[0110] At 306, the second server obtains a fifth video frame corresponding to the second terminal, the fifth video frame being a video frame obtained by rendering the target virtual scene from a viewing angle of the second virtual object.

[0111] The method for the second server to obtain the fifth video frame corresponding to the second terminal belongs to the same invention concept as the method for the second server to obtain the first video frame corresponding to the first terminal, and the implementation process can be referred to the relevant description of step 301 above, which is not described here in detail.

[0112] At 307, if the fifth video frame displays the target virtual object, the second server obtains a sixth video frame by performing a target process on the fifth video frame.

[0113] The method for the second server to determine whether the fifth video frame displays a target virtual object belongs to the same inventive concept as the method for the second server to determine whether the first video frame displays a target virtual object. For the implementation process, please refer to the relevant description of step 302 above, and no further description will be given here.

[0114] In a possible embodiment, if the fifth video frame displays the target virtual object, a second server obtains the sixth video frame by rendering the target virtual object in the fifth video frame based on a second parameter of the second terminal, optionally, the second parameter being determined by the second terminal.

[0115] In this case, when the second terminal sets the second parameter for the target virtual object, the second server can use the second parameter to render the target virtual object in the fifth video frame to obtain a sixth video frame, and then transmit the sixth video frame to the second terminal for display. That is, the second server can use the first parameter to perform secondary rendering on the video frame including the target virtual object, and transmit the video frame after secondary rendering to the first terminal. The second server uses the second parameter to perform secondary rendering on the video frame including the target virtual object, and transmits the video frame after secondary rendering to the second terminal. In the video frames displayed on the first terminal and the second terminal, the target virtual object may have different display effects. For example, take the target virtual object as an example, and the first parameter instructs the virtual vehicle to be rendered red, and the second parameter instructs the virtual vehicle to be rendered blue, so that in the video frame displayed on the first terminal, the virtual vehicle is red, and in the video frame displayed on the second terminal, the virtual vehicle is blue.

[0116] For example, when the second terminal determines a second parameter of the target virtual object, the second server obtains from the first server a second angle and a second distance between the second virtual object and the target virtual object when the fifth video frame displays the target virtual object. The second server sends the second angle, the second distance, and the identifier of the target virtual object to the client server. After receiving the second angle, the second distance, and the identifier of the target virtual object, the client server determines the second parameter based on the identifier of the target virtual object. The client server queries from the second parameter based on the second angle and the second distance to obtain a third rendering parameter, and sends the third rendering parameter to the second server. After receiving the third rendering parameter, the second server obtains a sixth video frame by rendering the target virtual object using the third rendering parameter in the fifth video frame.

[0117] In a possible embodiment, if the fifth video frame displays the target virtual object, a second server obtains the sixth video frame by rendering the target virtual object in the fifth video frame based on the first parameters.

[0118] In this case, if the second terminal does not set the second parameter for the target virtual object, the second server can use the first parameter to render the target virtual object in the fifth video frame to obtain a sixth video frame, and then send the sixth video frame to the second terminal for display, that is, the target virtual object has the same display effect in the video frames displayed on the first terminal and the second terminal.

[0119] For example, if the second terminal does not determine a second parameter of the target virtual object, when the fifth video frame displays the target virtual object, the server obtains from the first server a second angle and a second distance between the second virtual object and the target virtual object. The second server sends the second angle, the second distance, and the identifier of the target virtual object to the client server. After receiving the second angle, the second distance, and the identifier of the target virtual object, the client server determines the first parameter based on the identifier of the target virtual object. The client server queries from the first parameter based on the second angle and the second distance to obtain a third rendering parameter, and sends the third rendering parameter to the second server. After receiving the third rendering parameter, the second server obtains a sixth video frame by rendering the target virtual object using the third rendering parameter in the fifth video frame.

[0120] In a possible embodiment, if the fifth video frame displays the target virtual object, a second server adds a second animation corresponding to the target virtual object to the fifth video frame to obtain the sixth video frame.

[0121] In this embodiment, the second server can add a second animation corresponding to the target virtual object to the fifth video frame, thereby providing increased personalization.

[0122] In a possible embodiment, the controlled virtual object and the second virtual object are located simultaneously in a target sub-scene of the target virtual scene, and when the fifth video frame displays the target virtual object, the second server compares the virtual levels of the controlled virtual object and the second virtual object. If the virtual level of the controlled virtual object is higher than that of the second virtual object, the second server obtains the sixth video frame by rendering the target virtual object in the fifth video frame according to the first parameter. If the virtual level of the controlled virtual object is lower than that of the second virtual object, the second server obtains the sixth video frame by rendering the target virtual object in the fifth video frame according to the second parameter of the second terminal. If the virtual levels of the controlled virtual object and the second virtual object are the same, the second server obtains the sixth video frame by rendering the target virtual object in the fifth video frame according to the third parameter. Optionally, the third parameter is set by the first server.

[0123] The target virtual scene includes a plurality of sub-scenes, and the plurality of sub-scenes constitute the target virtual scene. For example, the plurality of sub-scenes are divided into a virtual social scene and a virtual battle scene, and the virtual social scene includes a virtual fishing scene, a virtual chat room, a virtual dance room, or a virtual card room, etc., and in the virtual social scene, the user controls a virtual object to communicate with other users. The virtual battle scene is a scene in which the user controls a virtual object to fight. The target sub-scene is determined by the first terminal and may be a virtual social scene or a virtual battle scene, but is not limited thereto in the embodiment of the present application. The virtual level is the level of the virtual object in the target virtual scene, and the higher the level, the stronger the combat ability of the virtual object. Or, the virtual level is the membership level of the game account corresponding to the virtual object, and the higher the membership level, the more services can be enjoyed in the cloud application.

[0124] In this embodiment, when the controlled virtual object and the second virtual object are located in the target subscene simultaneously, the second server determines to perform secondary rendering for the target virtual object using the first parameter set by the first terminal or the second parameter of the second terminal based on the virtual levels of the controlled virtual object and the second virtual object, thereby encouraging the user to improve the virtual level of the virtual object, so as to improve the user's game enthusiasm.

[0125] For example, when the controlled virtual object and the second virtual object are located in the target subscene of the target virtual scene at the same time, the second server sends a virtual level acquisition request to the client server, where the virtual level acquisition request includes an identifier of the controlled virtual object and an identifier of the second virtual object. After obtaining the virtual level acquisition request, the client server obtains the identifier of the controlled virtual object and the identifier of the second virtual object from the virtual level acquisition request, and queries according to the identifier of the controlled virtual object and the identifier of the second virtual object to obtain a first virtual level of the controlled virtual object and a second virtual level of the second virtual object. The client server sends the first virtual level of the controlled virtual object and the second virtual level of the second virtual object to the second server. After receiving the first virtual level of the controlled virtual object and the second virtual level of the second virtual object, the second server obtains a first parameter from the client server, and uses the first parameter to render the target virtual object in the fifth video frame, thereby obtaining the sixth video frame. If the first virtual level is less than the second virtual level, the second server obtains a second parameter from the client server and renders the target virtual object in the fifth video frame using the second parameter to obtain the sixth video frame. If the first virtual level is equal to the second virtual level, the second server obtains a third parameter from the client server and renders the target virtual object in the fifth video frame using the third parameter to obtain the sixth video frame. In some embodiments, the third parameter is determined based on the first virtual level.

[0126] At 308, the second server transmits the sixth video frame to the second terminal, which is configured to display the sixth video frame.

[0127] All the possible technical solutions mentioned above can be arbitrarily combined to constitute possible embodiments of the present application, and no further details are provided herein.

[0128] Here, the embodiment of the present application only takes the second server to perform the method as an example, and in other embodiments, the method may be performed by another server.

[0129] According to the technical solution provided in the embodiment of the present application, when a display effect of a virtual object is to be changed, a first parameter can be determined for the virtual object by a first terminal, and the server obtains a second video frame by performing secondary rendering on a video frame according to the first parameter, and compared with the first video frame, the display effect of the virtual object displayed in the second video frame is also the display effect arranged for the virtual object by the first terminal. According to this technical solution, a function of performing secondary rendering on a virtual object is provided in a cloud application, allowing a user to quickly and effectively adjust the display effect of a virtual object in a virtual scene, thereby expanding the functional scope of the cloud application, improving the personalization of the cloud application, and making the cloud application more widely disseminated.

[0130] Except for the above steps 301-308, the embodiment of the present application further provides another video frame rendering method, which is applied to a situation where a target event occurs in a target virtual scene. See FIG. 6 , the method includes the following steps:

[0131] At 601, a second server obtains a third video frame corresponding to the first terminal, the third video frame being a video frame obtained by rendering the target virtual scene from the viewing angle of the controlled virtual object after a target event occurs in the target virtual scene, and the target event is an event related to the controlled virtual object.

[0132] In a possible embodiment, in response to a target event occurring in the target virtual scene, the first server sends a third video frame corresponding to the first terminal to the second server, while sending presentation information bound to the third video frame to the second server, the presentation information including an identifier of the target event. The second server can obtain the third video frame and determine that a target event has occurred in the target virtual scene based on the presentation information, and trigger rendering of the subsequent third video frame.

[0133] For example, the target event is that the controlled virtual object defeats the first virtual object in the target virtual scene, where defeat means that the life value of the first virtual object is reduced to 0 due to the action of the controlled virtual object in the target virtual scene, for example, the controlled virtual object uses a virtual gun / virtual dagger / virtual grenade, etc. to attack the first virtual object, thereby reducing the life value of the first virtual object to 0, and the first virtual object is an object located in a different team from the controlled virtual object, or is an enemy virtual object to the controlled virtual object. In response to the controlled virtual object defeating the first virtual object in the target virtual scene, the first server transmits a third video frame to the second server in real time, where the third video frame is the first video frame after the first virtual object is defeated. The first server sends presentation information bound with the third video frame to the second server while sending the third video frame, where besides the identifier of the target event, the presentation information further includes a position where the first virtual object is defeated, and thereafter, the second server can determine that the controlled virtual object defeats the first virtual object in the target virtual scene based on the presentation information, and can also determine the area where the first virtual object is defeated in the third video frame. In some embodiments, in response to the target event occurring in the target virtual scene, the first server can further hook the target event using a Hook function and notify the second server of the target event, i.e., presenting information to notify the second server that the target event has occurred in the target virtual scene.

[0134] Here, the above describes the target event as an example that the controlled virtual object defeats a first virtual object in the target virtual scene. In other possible embodiments, the target event may further be the controlled virtual object picking up a target virtual prop in the target virtual scene, or the controlled virtual object launching a target virtual vehicle in the target virtual scene, or the controlled virtual object defeating multiple virtual objects in the target virtual scene in succession, etc. The target event is set by the engineer according to the actual situation, but the embodiments of the present application are not limited thereto.

[0135] At 602, the second server adds a first animation corresponding to the target event to the third video frame to obtain a fourth video frame.

[0136] In a possible embodiment, the target event is that the controlled virtual object beats a first virtual object in the target virtual scene, and the second server determines the area in the third video frame where the first virtual object is beaten. The second server adds a first animation corresponding to the target event to the area to obtain the fourth video frame. The correspondence between the target event and the animation is established by the first terminal, for example, by selecting a target event through the first terminal and selecting an animation to be bound with the target event from a plurality of animations provided by the client server, or uploading the first animation corresponding to the target event to the client server by the first terminal, and after receiving the animation uploaded by the first terminal, the client server binds the animation with the target event.

[0137] For example, the first server transmits a third video frame to the second server while transmitting presentation information bound with the third video frame. The second server obtains an identifier of the target event and a position where the first virtual object is defeated from the presentation information. The second server determines a first animation corresponding to the target event based on the identifier of the target event, and determines an area where the first virtual object is defeated based on the position where the first virtual object is defeated. The second server adds the first animation corresponding to the target event to the area and obtains the fourth video frame.

[0138] For example, the first server transmits the third video frame to the second server while also transmitting presentation information bound with the third video frame. The second server obtains an identifier of the target event and a position where the first virtual object is defeated from the presentation information. The second server transmits a second animation acquisition request to the client server, where the second animation acquisition request includes the identifier of the target event. After receiving the second animation acquisition request, the client server obtains the identifier of the target event from the second animation acquisition request, queries based on the identifier of the target event to obtain a first animation corresponding to the target event, and transmits the first animation corresponding to the target event to the second server. After receiving the first animation corresponding to the target event, the second server adds the animation to the area where the first virtual object is defeated to obtain a fourth video frame. In some embodiments, the second server can add the first frame of the animation to the third video frame to obtain a fourth video frame.

[0139] At 603, the second server transmits the fourth video frame to the first terminal, and the first terminal is configured to display the fourth video frame.

[0140] Optionally, before step 603, the second server can also obtain a first audio corresponding to the target event, where the first audio is the audio of the first terminal. The second server transmits the first audio to the first terminal, and the first terminal is configured to play the first audio while displaying the fourth video frame. The correspondence between the target event and the first audio is established by the first terminal, for example, by selecting a target event by the first terminal and selecting a first audio to be bound with the target event from a plurality of first audios provided by a client server, or uploading the first audio corresponding to the target event to the client server by the first terminal, and after receiving the first audio uploaded by the first terminal, the client server binds the first audio with the target event.

[0141] For example, the first server transmits the third video frame to the second server while also transmitting presentation information bound with the third video frame. The second server obtains an identifier of the target event from the presentation information. The second server transmits an animation and audio acquisition request to the client server, where the animation and audio acquisition request includes the identifier of the target event. After receiving the second animation acquisition request, the client server obtains the identifier of the target event from the second animation acquisition request, queries based on the identifier of the target event to obtain a first animation and a first audio corresponding to the target event, and transmits the first animation and the first audio corresponding to the target event to the second server. After receiving the first animation and the first audio corresponding to the target event, the second server adds the animation to the third video frame to obtain a fourth video frame. The second server transmits the first audio while transmitting the fourth video frame to the first terminal. After receiving the fourth video frame and the first audio, the first terminal plays the first audio while displaying the fourth video frame.

[0142] Still taking the target event as an example, the controlled virtual object defeats the first virtual object in the virtual scene, in response to the controlled virtual object defeating the first virtual object in the virtual scene, the first server sends a third video frame and presentation information bound with the given third video frame to the second server, the presentation information including an identifier of the target event and a position where the first virtual object is defeated. The second server obtains the identifier of the target event and the position where the first virtual object is defeated from the presentation information. The second server sends an animation and audio acquisition request to the client server, the animation and audio acquisition request including the identifier of the target event. After receiving the animation and audio acquisition request, the client server obtains the identifier of the target event from the animation and audio acquisition request, queries according to the identifier of the target event to obtain a first animation and a first audio corresponding to the target event, and sends the first animation and the first audio corresponding to the target event to the second server. After receiving the first animation and the first audio corresponding to the target event, the second server adds the animation to the position where the first virtual object is defeated in the third video frame to obtain a fourth video frame. The second server transmits the first audio while transmitting the fourth video frame to the first terminal. After receiving the fourth video frame and the first audio, the first terminal plays the first audio while displaying the fourth video frame. If the animation is an animation of a little person dancing, the first audio is played while playing the animation of the little person dancing at the position where the first virtual object is defeated in the fourth video frame, so that the user stimulates himself through the animation and the first audio to obtain a better expression in the game. Referring to FIG. 7, the second server adds an animation 703 to the position 702 where the first virtual object is defeated in the fourth video frame 701.

[0143] According to the technical solution provided in the embodiment of the present application, when a target event is sent in a target virtual scene, if a specified animation is to be played, a target animation can be selected by the first terminal for the target event. A second server performs secondary rendering on the video frame to obtain a fourth video frame, and the animation set by the first terminal can be displayed in the fourth video frame after comparing with the third video frame. According to this technical solution, a function of performing secondary rendering on animations is provided in the cloud application, allowing users to quickly and effectively adjust the display effect of the virtual scene, thereby expanding the functional scope of the cloud application, improving the personalization of the cloud application, and making the cloud application more widely disseminated.

[0144] In the above description, the first terminal, the client server, the first server, the second server, and the game server constitute a video frame rendering system, and FIG. 1 describes the implementation environment of the video frame rendering method and briefly describes the functions of each component part. Hereinafter, the video frame rendering system provided in the embodiment of the present application will be described in combination with the above method embodiment. Referring to FIG. 1, the system includes a first terminal, a first server, and a second server, and the first terminal, the first server, and the second server are connected to communicate with each other.

[0145] Optionally, the first server is a cloud server.

[0146] Optionally, the second server is a scene management server.

[0147] The first server is configured to obtain a first video frame corresponding to the first terminal by rendering a target virtual scene from a visual angle of a controlled virtual object in the target virtual scene, and transmit the first video frame to the second server, where the controlled virtual object is a virtual object controlled by the first terminal.

[0148] The second server receives the first video frame.

[0149] The second server is further configured to obtain a second video frame by rendering the target virtual object in the first video frame based on a first parameter of the first terminal when the first video frame displays a target virtual object of the first terminal.

[0150] The second server is further configured to transmit the second video frames to the first terminal.

[0151] In response to receiving the second video frame, the first terminal displays the second video frame.

[0152] In a possible embodiment, the first terminal is further configured to transmit control information to the first server, the control information being used to control a movement of the controlled virtual object in the target virtual scene.

[0153] The first server is further configured to determine a viewing angle of the controlled virtual object in the target virtual scene based on the control information, and obtain the first video frame by rendering the target virtual scene based on the viewing angle of the controlled virtual object in the target virtual scene.

[0154] In a possible embodiment, the system further includes a client server, communicatively coupled to each of the first terminal, the first server, and the second server.

[0155] The first terminal is further configured to display a placement interface of the target virtual object, and the placement interface is configured to obtain placement information of the target virtual object.

[0156] The first terminal is further configured to send placement information of the target virtual object to the client server in response to an operation on the placement interface.

[0157] The client server is configured to receive placement information of the target virtual object, create a three-dimensional model of the target virtual object based on the placement information of the target virtual object, and obtain the first parameter corresponding to the three-dimensional model.

[0158] In a possible embodiment, the second server is further configured to obtain first rendering parameters when the first video frame displays a target virtual object of the first terminal, the first rendering parameters being rendering parameters corresponding to a first angle and a first distance in the first parameters, the first angle being an angle between the controlled virtual object and the target virtual object, and the first distance being a distance between the controlled virtual object and the target virtual object, and obtain the second video frame by rendering the target virtual object in the first video frame based on the first rendering parameters.

[0159] In a possible embodiment, the second server is further configured to determine target pixel values ​​of a plurality of target pixel points of the target virtual object in the first video frame based on the first rendering parameters, and to update pixel values ​​of the plurality of target pixel points in the first video frame using the target pixel values ​​to obtain the second video frame.

[0160] In a possible embodiment, the second server is further configured to obtain first and second rendering parameters from the first parameters when the first video frame displays a target virtual object of the first terminal, and to obtain the second video frame by rendering the target virtual object and the controlled virtual object, respectively, in the first video frame using the first and second rendering parameters.

[0161] In a possible embodiment, the second server is further configured to: determine a position of the controlled virtual object in the target virtual scene if the first video frame displays a target virtual object of the first terminal; obtain the second video frame by rendering the target virtual object in the first video frame according to the first parameters if the controlled virtual object is located in a target sub-scene of the target virtual scene; and determine the first video frame as the second video frame if the controlled virtual object is not located in a target sub-scene of the target virtual scene.

[0162] In a possible embodiment, the second server is further configured to determine a type of the first video frame by performing image recognition on the first video frame, and if the type indicates that the first video frame displays the target virtual object, obtain the second video frame by rendering the target virtual object based on the first parameters.

[0163] In a possible embodiment, the second server is further configured to detect in the first video frame using a template image of the target virtual object: in response to detecting a presence in the first video frame of an area matching the template image of the target virtual object, determine the first video frame as a first type, the first type indicating that the first video frame displays the target virtual object; in response to detecting a lack of a region in the first video frame matching the template image of the target virtual object, determine the first video frame as a second type, the second type indicating that the first video frame does not display the target virtual object.

[0164] In a possible embodiment, the second server is further configured to input the first video frame into an image recognition model, which performs feature extraction and classification on the first video frame to output a type of the first video frame.

[0165] In a possible embodiment, the second server is further configured to divide the first video frame into a plurality of image blocks and input the plurality of image blocks to the image recognition model. The step of performing feature extraction and classification on the first video frame by the image recognition model and outputting the type of the first video frame includes performing feature extraction and full combination processing on the plurality of image blocks by the image recognition model to obtain a plurality of probabilities corresponding to each of the plurality of image blocks, the plurality of probabilities being probabilities that the corresponding image block includes the target virtual object. In response to any one of the plurality of probabilities being equal to or greater than a probability threshold, the first video frame is determined as a first type, the first type indicating that the first video frame displays the target virtual object. In response to the plurality of probabilities being smaller than the probability threshold, the first video frame is determined as a second type, the second type indicating that the first video frame does not display the target virtual object.

[0166] In a possible embodiment, the second server is further configured to obtain the first parameters from a client server, and the client server is configured to create a three-dimensional model of the target virtual object based on installation parameters for the target virtual object uploaded by the first terminal, and the first parameters include a plurality of rendering parameters of the three-dimensional model.

[0167] In a possible embodiment, the first server is further configured to obtain a third video frame corresponding to the first terminal by rendering the target virtual scene from the visual angle of the controlled virtual object, and send the third video frame to the second server in response to a target event occurring in the target virtual scene, the target event being the controlled virtual object defeating a first virtual object in the target virtual scene.

[0168] The second server is further configured to obtain a first animation corresponding to the target event and a first audio corresponding to the target event, the first audio being audio of the first terminal.

[0169] The second server is further configured to determine an area in the third video frame where the first virtual object is defeated, add a first animation corresponding to the target event to the area to obtain the fourth video frame, and send the fourth video frame and the first audio to the first terminal.

[0170] The first terminal is further configured, in response to receiving the fourth video frame and the first audio, to play the first audio while displaying the fourth video frame.

[0171] In a possible embodiment, the system further includes a second terminal, the second terminal, the first server, and the second server are communicatively connected, and the second terminal is a terminal different from the first terminal.

[0172] The first server is further configured to obtain a fifth video frame corresponding to the second terminal by rendering the target virtual scene from a visual angle of a second virtual object in the target virtual scene, and send the fifth video frame to the second server, where the second virtual object is a virtual object controlled by the second terminal.

[0173] The second server is further configured to obtain a sixth video frame by performing target processing on the fifth video frame when the fifth video frame displays the target virtual object, and send the sixth video frame to the second terminal.

[0174] The second terminal is configured to display the sixth video frame in response to receiving the sixth video frame.

[0175] In a possible embodiment, the second server further comprises: If the fifth video frame displays the target virtual object, obtaining the sixth video frame by rendering the target virtual object in the fifth video frame based on a second parameter of the second terminal; if the fifth video frame displays the target virtual object, obtaining the sixth video frame by rendering the target virtual object in the fifth video frame based on the first parameters; and if the fifth video frame displays the target virtual object, adding a second animation corresponding to the target virtual object to the fifth video frame to obtain the sixth video frame.

[0176] In a possible embodiment, the second server is further configured to compare the virtual levels of the controlled virtual object and the second virtual object when the fifth video frame displays the target virtual object. If the virtual level of the controlled virtual object is higher than that of the second virtual object, the sixth video frame is obtained by rendering the target virtual object in the fifth video frame based on the first parameter. If the virtual level of the controlled virtual object is lower than that of the second virtual object, the sixth video frame is obtained by rendering the target virtual object in the fifth video frame based on the second parameter of the second terminal. If the virtual level of the controlled virtual object and the virtual level of the second virtual object are the same, the sixth video frame is obtained by rendering the target virtual object in the fifth video frame based on the third parameter.

[0177] In a possible embodiment, the second server is further configured to obtain a second animation and a second audio corresponding to the target virtual object, add the second animation corresponding to the target virtual object to the second video frame to obtain a seventh video frame, and transmit the seventh video frame and the second audio to the first terminal, which is configured to play the second audio while displaying the seventh video frame.

[0178] In a possible embodiment, the second server further comprises: aggregating the second video frames into a first video frame set and sending the first video frame set to the first terminal, the first terminal being configured to share the first video frame set with other terminals; a step of concatenating the second video frame and the first video frame to obtain a concatenated video frame, aggregating a plurality of the concatenated video frames into a second video frame set, and transmitting the second video frame set to the first terminal, wherein the first terminal is configured to share the second video frame set with other terminals.

[0179] In a possible embodiment, the second server is further configured to obtain the first parameters from a client server, and the client server is configured to create a three-dimensional model of the target virtual object based on installation parameters for the target virtual object uploaded by the first terminal, and the first parameters include a plurality of rendering parameters of the three-dimensional model.

[0180] The video frame rendering system provided in the embodiment of the present application will be described below by combining FIG. 1 and the above steps 301-308 and 601-603.

[0181] The first terminal displays a placement interface of a target virtual object, and the placement interface is configured to obtain placement information of the target virtual object. In response to an operation on the placement interface, the placement information of the target virtual object is sent to the client server. The client server receives the placement information of the target virtual object, creates a three-dimensional model of the target virtual object based on the placement information of the target virtual object, and obtains a first parameter corresponding to the three-dimensional model. Taking a game scene as an example, the first terminal launches a target cloud game, maintains a long-term connection with the client server, and sends a game launch command to the client server, the game launch command including a user account, an identifier of the target cloud game, and hardware information of the first terminal. After receiving the game launch command, the client server sends the game launch command to the first server, and after receiving the game launch command, the first server obtains the user account, the identifier of the target cloud game, and hardware information of the first terminal from the game launch command. The first server initializes the target cloud game based on the hardware information of the first terminal, realizes matching between the game screen and the first terminal by rendering, and sends the user account to a game server corresponding to the target cloud game. After receiving the user account, the game server sends information corresponding to the game account to the first server, and the first server launches the target cloud game according to the information corresponding to the game account. In the process of running the target cloud game, a target virtual scene of the target cloud game is displayed, and a controlled virtual object is displayed in the target virtual scene. The first terminal sends control information of the controlled virtual object to the first server, and after receiving the control information, the first server determines a viewing angle of the controlled virtual object in the target virtual scene according to the control information.The first server renders the target virtual scene according to the viewing angle of the controlled virtual object to obtain a first video frame, and the first video frame is a video frame corresponding to the first terminal. The first server transmits the first video frame to the second server, and before the game starts, the user performs personalized settings on a virtual object in the target cloud game, for example, sets a vehicle in the target cloud game to red, and the second server can perform image recognition on the first video frame to determine whether the first video frame includes a vehicle. If the second server determines that the first video frame displays a vehicle, it obtains a first parameter of the vehicle from the client server, and the first parameter is determined by the client server according to the parameter set by the user for the vehicle. The second server renders the vehicle in the first video frame according to the first parameter to obtain a second video frame, and transmits the second video frame to the first terminal, and the user can view the second video frame through the first terminal. In the target cloud game, if the technician sets the color of the vehicle to blue, the above steps can adjust the color of the vehicle to the red set by the user, thereby realizing a personalized configuration for the vehicle.

[0182] According to the technical solution provided in the embodiment of the present application, when a display effect of a certain virtual object is to be changed, a first parameter is determined for the virtual object by a first terminal, and the server performs secondary rendering on a video frame according to the first parameter to obtain a second video frame, and compared with the first video frame, the display effect of the virtual object displayed in the second video frame is also the display effect arranged for the virtual object by the first terminal. According to this technical solution, a function of performing secondary rendering on a virtual object is provided in a cloud application, allowing a user to quickly and effectively adjust the display effect of a certain virtual object in a virtual scene, thereby expanding the functional scope of the cloud application, improving the personalization of the cloud application, and making the cloud application more widely disseminated.

[0183] FIG. 8 is a schematic diagram of a configuration of a video frame rendering device provided in an embodiment of the present application. Referring to FIG. 8, the device includes: a first video frame acquisition module 801 for acquiring a first video frame corresponding to a first terminal, the first video frame being a video frame obtained by rendering a target virtual scene from a viewing angle of a controlled virtual object in the target virtual scene, the controlled virtual object being a virtual object controlled by the first terminal; a rendering module 802 for obtaining a second video frame by rendering the target virtual object in the first video frame according to a first parameter of the first terminal when the first video frame displays a target virtual object of the first terminal; A transmitting module 803 for transmitting the second video frame to the first terminal, the first terminal being configured to display the second video frame.

[0184] In a possible embodiment, the rendering module 802 is configured to obtain first rendering parameters when the first video frame displays a target virtual object of the first terminal, the first rendering parameters being rendering parameters corresponding to a first angle and a first distance in the first parameters, the first angle being an angle between the controlled virtual object and the target virtual object, and the first distance being a distance between the controlled virtual object and the target virtual object, and obtain the second video frame by rendering the target virtual object in the first video frame based on the first rendering parameters.

[0185] In a possible embodiment, the rendering module 802 is configured to determine target pixel values ​​for a plurality of target pixel points of the target virtual object in the first video frame based on the first rendering parameters, and to use the target pixel values ​​to update pixel values ​​of the plurality of target pixel points in the first video frame to obtain the second video frame.

[0186] In a possible embodiment, the rendering module 802 is configured to obtain first and second rendering parameters from the first parameters when the first video frame displays a target virtual object of the first terminal, and obtain the second video frame by rendering the target virtual object and the controlled virtual object, respectively, in the first video frame using the first and second rendering parameters.

[0187] In a possible embodiment, the rendering module 802 is configured to determine a position of the controlled virtual object in the target virtual scene if the first video frame displays a target virtual object of the first terminal, and obtain the second video frame by rendering the target virtual object in the first video frame based on the first parameters if the controlled virtual object is located in a target sub-scene of the target virtual scene.

[0188] In a possible embodiment, the rendering module 802 is further configured to determine the first video frame as the second video frame if the controlled virtual object is not located in a target sub-scene of the target virtual scene.

[0189] In a possible embodiment, the device comprises: an image recognition module for performing image recognition on the first video frame to determine a type of the first video frame; The rendering module 802 is configured to obtain the second video frame by rendering the target virtual object based on the first parameters if the type indicates that the first video frame displays the target virtual object.

[0190] In a possible embodiment, the image recognition module is configured to detect in the first video frame using a template image of the target virtual object, determine the first video frame as a first type in response to detecting a region in the first video frame that matches the template image of the target virtual object, the first type indicating that the first video frame displays the target virtual object, and determine the first video frame as a second type in response to detecting a region in the first video frame that does not match the template image of the target virtual object, the second type indicating that the first video frame does not display the target virtual object.

[0191] In a possible embodiment, the image recognition module is configured to input the first video frame into an image recognition model, perform feature extraction and classification on the first video frame using the image recognition model, and output a type of the first video frame.

[0192] In a possible embodiment, the image recognition module is configured to divide the first video frame into a plurality of image blocks and input the plurality of image blocks into the image recognition model, the image recognition model is configured to perform feature extraction and full combination processing on the plurality of image blocks to obtain a plurality of probabilities corresponding to each of the plurality of image blocks, the plurality of probabilities being a probability that the corresponding image block includes the target virtual object, in response to any one of the plurality of probabilities being equal to or greater than a probability threshold, the first video frame being determined as a first type, the first type indicating that the first video frame displays the target virtual object, in response to the plurality of probabilities being less than the probability threshold, the first video frame being determined as a second type, the second type indicating that the first video frame does not display the target virtual object.

[0193] In a possible embodiment, the device comprises: a third video frame acquisition module for acquiring a third video frame corresponding to the first terminal, the third video frame being a video frame obtained by rendering the target virtual scene from a viewing angle of the controlled virtual object after a target event occurs in the target virtual scene, the target event being the controlled virtual object defeating a first virtual object in the target virtual scene; The rendering module 802 is further configured to obtain a first animation corresponding to the target event and a first audio corresponding to the target event, the first audio being the first terminal audio. A first animation corresponding to the target event is added to the region to obtain the fourth video frame. The sending module 803 is further configured to send the fourth video frame and the first audio to the first terminal, and the first terminal is configured to play the first audio while displaying the fourth video frame.

[0194] In a possible embodiment, the target virtual scene further includes a second virtual object, the second virtual object being a virtual object controlled by a second terminal, the second terminal being a terminal different from the first terminal, and the device further comprises: a fifth video frame acquisition module for acquiring a fifth video frame corresponding to the second terminal, the fifth video frame being a video frame obtained by rendering the target virtual scene from a viewing angle of the second virtual object; The rendering module 802 is further configured to obtain a sixth video frame by performing a target process on the fifth video frame if the fifth video frame displays the target virtual object; The transmitting module 803 is further configured to transmit the sixth video frame to the second terminal, and the second terminal is configured to display the sixth video frame.

[0195] In a possible embodiment, the rendering module 802 further comprises: If the fifth video frame displays the target virtual object, obtaining the sixth video frame by rendering the target virtual object in the fifth video frame based on a second parameter of the second terminal; if the fifth video frame displays the target virtual object, obtaining the sixth video frame by rendering the target virtual object in the fifth video frame based on the first parameters; and if the fifth video frame displays the target virtual object, adding a second animation corresponding to the target virtual object to the fifth video frame to obtain the sixth video frame.

[0196] In a possible embodiment, the controlled virtual object and the second virtual object are located in a target sub-scene of the target virtual scene at the same time, and the rendering module 802 is further configured to compare the virtual levels of the controlled virtual object and the second virtual object when the fifth video frame displays the target virtual object. If the virtual level of the controlled virtual object is higher than that of the second virtual object, the sixth video frame is obtained by rendering the target virtual object in the fifth video frame based on the first parameter. If the virtual level of the controlled virtual object is lower than that of the second virtual object, the sixth video frame is obtained by rendering the target virtual object in the fifth video frame based on the second parameter of the second terminal. If the virtual level of the controlled virtual object and the virtual level of the second virtual object are the same, the sixth video frame is obtained by rendering the target virtual object in the fifth video frame based on the third parameter.

[0197] In a possible embodiment, the rendering module 802 is further configured to obtain a second animation and a second audio corresponding to the target virtual object, add the second animation corresponding to the target virtual object to the second video frame to obtain a seventh video frame, The transmitting module 803 is further configured to transmit the seventh video frame and the second audio to the first terminal, and the first terminal is configured to play the second audio while displaying the seventh video frame.

[0198] In a possible embodiment, the device comprises: aggregating the second video frames into a first video frame set and transmitting the first video frame set to the first terminal, the first terminal being configured to share the first video frame set with other terminals; and a video frame set generation module configured to perform one of the steps of: concatenating the second video frame and the first video frame to obtain a concatenated video frame; aggregating a plurality of the concatenated video frames into a second video frame set; and transmitting the second video frame set to the first terminal, wherein the first terminal is configured to share the second video frame set with other terminals.

[0199] In a possible embodiment, the device comprises: The terminal further includes a parameter acquisition module for acquiring the first parameters from a client server, and the client server creates a three-dimensional model of the target virtual object based on the installation parameters for the target virtual object uploaded by the first terminal, and the first parameters include a plurality of rendering parameters of the three-dimensional model.

[0200] Here, the video frame rendering device provided in the above embodiment is only described as an example of dividing the above functional modules when performing secondary rendering on a video frame, but in actual application, the above functions can be allocated to be completed by different functional modules as needed, i.e., the internal structure of the server can be divided into different functional modules to complete all or part of the functions described above. In addition, the video frame rendering device provided in the above embodiment belongs to the same concept as the video frame rendering method embodiment, and the specific implementation process can be referred to the method embodiment, and will not be described in detail here.

[0201] According to the technical solution provided in the embodiment of the present application, when a display effect of a certain virtual object is to be changed, a first parameter is determined for the virtual object by a first terminal, and the server obtains a second video frame by performing secondary rendering on a video frame according to the first parameter, and compared with the first video frame, the display effect of the virtual object displayed in the second video frame is also the display effect arranged for the virtual object by the first terminal. According to this technical solution, a function of performing secondary rendering on a virtual object is provided in a cloud application, so that a user can quickly and effectively adjust the display effect of a certain virtual object in a virtual scene, thereby expanding the functional scope of the cloud application, improving the personalization of the cloud application, and making the cloud application more widely disseminated.

[0202] The structure of the server will be described below. Figure 9 is a schematic diagram of the structure of the server provided in the embodiment of the present application. The processor 900 may have relatively large differences due to differences in configuration or performance, and may include one or more processors (Central Processing Units, CPU) 901 and one or more memories 902, where at least one computer program is stored in the memory 902, and the at least one computer program is loaded and executed by the one or more processors 901 to realize the methods provided in the above embodiment of the method. Of course, the server 900 may further include components such as a wired or wireless network interface, a keyboard, and an input / output interface for input / output, and the server 900 may further include components for realizing other device functions, and detailed description thereof will be omitted here.

[0203] In an exemplary embodiment, a computer-readable storage medium, such as a memory including a computer program, is further provided, and the computer program is executed by a processor to complete the method for rendering video frames in the above embodiment. For example, the computer-readable storage medium may be a read-only memory (ROM), a random access memory (RAM), a compact disc read-only memory (CD-ROM), a magnetic tape, a floppy disk, an optical data storage device, etc.

[0204] In an exemplary embodiment, a computer program product or a computer program is further provided, the computer program product or the computer program comprising: a program code, the program code being stored in a computer-readable storage medium, and a processor of a computing device reading the program code from the computer-readable storage medium and executing the program code, thereby causing the computing device to perform the above method for rendering a video frame, i.e., the program code, when executed by the processor, realizes the above method for rendering a video frame.

[0205] In some embodiments, a computer program according to an embodiment of the present application may be arranged to be executed on one computer device, or on multiple computer devices located at one location, or on multiple computer devices distributed across multiple locations and connected to each other via a communications network, and multiple computer devices may be distributed across multiple locations and connected to each other via a communications network, which may constitute a blockchain system.

[0206] Those skilled in the art can understand that the realization of all or part of the steps of the above embodiments may be completed by hardware, or may be realized by instructing relevant hardware by a program, and the program may be stored in a computer-readable recording medium, and the above-mentioned storage medium may be a read-only memory, a magnetic disk, an optical disk, etc.

[0207] The above are only preferred embodiments of the present invention, and are not intended to limit the present application. Any modifications, equivalent replacements, improvements, etc. made without departing from the spirit and principles of the present application should be included within the protection scope of the present application.

Claims

1. 1. A method for rendering a video frame, comprising the steps of: A step of obtaining a first video frame corresponding to a first terminal by a server, the first video frame being a video frame obtained by rendering a target virtual scene from a viewing angle of a controlled virtual object in the target virtual scene, the controlled virtual object being a virtual object controlled by the first terminal; If the first video frame displays a target virtual object of the first terminal, the server renders the target virtual object in the first video frame based on a first parameter of the first terminal to obtain a second video frame, where the target virtual object is a virtual object that needs to be re-rendered by the first terminal; the server transmitting the second video frame to the first terminal, the first terminal being configured to display the second video frame; When the first video frame displays a target virtual object of the first terminal, the step of obtaining a second video frame by the server rendering the target virtual object in the first video frame based on a first parameter of the first terminal includes: When the first video frame displays a target virtual object of the first terminal, the server acquires first rendering parameters, the first rendering parameters being rendering parameters corresponding to a first angle and a first distance in the first parameters, the first angle being an angle between the controlled virtual object and the target virtual object, and the first distance being a distance between the controlled virtual object and the target virtual object; and the server renders the target virtual object in the first video frame based on the first rendering parameters to obtain the second video frame. Rendering method.

2. The step of obtaining the second video frame by rendering the target virtual object in the first video frame based on the first rendering parameters by the server includes: determining, by the server, target pixel values ​​for a plurality of target pixel points of the target virtual object in the first video frame based on the first rendering parameters; and the server uses the target pixel values ​​to update pixel values ​​of the target pixel points in the first video frame to obtain the second video frame. The rendering method of claim 1 .

3. A method for rendering a video frame, comprising the steps of: A step of obtaining a first video frame corresponding to a first terminal by a server, the first video frame being a video frame obtained by rendering a target virtual scene from a viewing angle of a controlled virtual object in the target virtual scene, the controlled virtual object being a virtual object controlled by the first terminal; If the first video frame displays a target virtual object of the first terminal, the server renders the target virtual object in the first video frame based on a first parameter of the first terminal to obtain a second video frame, where the target virtual object is a virtual object that needs to be re-rendered by the first terminal; the server transmitting the second video frame to the first terminal, the first terminal being configured to display the second video frame; When the first video frame displays a target virtual object of the first terminal, the step of obtaining a second video frame by the server rendering the target virtual object in the first video frame based on a first parameter of the first terminal includes: When the first video frame displays a target virtual object of the first terminal, the server obtains a first rendering parameter and a second rendering parameter from the first parameter; and the server renders the target virtual object and the controlled virtual object using the first rendering parameters and the second rendering parameters in the first video frame, respectively, to obtain the second video frame. Rendering method.

4. When the first video frame displays a target virtual object of the first terminal, the server renders the target virtual object in the first video frame according to a first parameter of the first terminal to obtain a second video frame, When the first video frame displays a target virtual object of the first terminal, the server determines a position of the controlled virtual object in the target virtual scene; and if the controlled virtual object is located in a target sub-scene of the target virtual scene, the server renders the target virtual object in the first video frame based on the first parameters to obtain the second video frame. The rendering method of claim 1 .

5. If the controlled virtual object is not located in a target sub-scene of the target virtual scene, the server determines the first video frame as the second video frame.

5. The rendering method of claim 4.

6. If the first video frame displays a target virtual object of the first terminal, before obtaining a second video frame, the server renders the target virtual object in the first video frame based on a first parameter of the first terminal; The method further includes the step of: determining a type of the first video frame by performing image recognition on the first video frame by the server; When the first video frame displays a target virtual object of the first terminal, the server renders the target virtual object in the first video frame based on a first parameter to obtain a second video frame, if the type indicates that the first video frame displays the target virtual object, the server obtains the second video frame by rendering the target virtual object based on the first parameters. Rendering method according to claim 1 or 3.

7. acquiring a third video frame corresponding to the first terminal by the server, the third video frame being a video frame obtained by rendering the target virtual scene from a viewing angle of the controlled virtual object after a target event occurs in the target virtual scene, the target event being the controlled virtual object defeating a first virtual object in the target virtual scene; The server obtains a first animation corresponding to the target event and a first audio corresponding to the target event, the first audio being an audio of the first terminal; the server determining an area in the third video frame where the first virtual object is defeated; the server adds a first animation corresponding to the target event to the region to obtain a fourth video frame; the server transmitting the fourth video frame and the first audio to the first terminal, the first terminal being configured to play the first audio while displaying the fourth video frame. Rendering method according to claim 1 or 3.

8. The target virtual scene further includes a second virtual object, the second virtual object being a virtual object controlled by a second terminal, the second terminal being a terminal different from the first terminal; obtaining a fifth video frame corresponding to the second terminal by the server, the fifth video frame being a video frame obtained by rendering the target virtual scene from a viewing angle of the second virtual object; If the fifth video frame displays the target virtual object, the server performs target processing on the fifth video frame to obtain a sixth video frame; the server transmitting the sixth video frame to the second terminal, the second terminal being configured to display the sixth video frame. Rendering method according to claim 1 or 3.

9. When the fifth video frame displays the target virtual object, the step of obtaining a sixth video frame by performing target processing on the fifth video frame by the server includes: If the fifth video frame displays the target virtual object, the server renders the target virtual object in the fifth video frame according to a second parameter of the second terminal to obtain the sixth video frame; if the fifth video frame displays the target virtual object, the server renders the target virtual object in the fifth video frame based on the first parameters to obtain the sixth video frame; and if the fifth video frame displays the target virtual object, the server adds a second animation corresponding to the target virtual object to the fifth video frame to obtain the sixth video frame.

9. The rendering method of claim 8.

10. When the controlled virtual object and the second virtual object are located in a target sub-scene of the target virtual scene at the same time, and the fifth video frame displays the target virtual object, the server performs target processing on the fifth video frame, and the step of obtaining a sixth video frame includes: if the fifth video frame displays the target virtual object, the server comparing a virtual level of the controlled virtual object with the second virtual object; if a virtual level of the controlled virtual object is higher than a virtual level of the second virtual object, the server renders the target virtual object in the fifth video frame according to the first parameter to obtain the sixth video frame; When the virtual level of the controlled virtual object is lower than the virtual level of the second virtual object, the server renders the target virtual object in the fifth video frame according to a second parameter of the second terminal to obtain the sixth video frame; and if the virtual level of the controlled virtual object and the virtual level of the second virtual object are the same, the server renders the target virtual object in the fifth video frame according to a third parameter to obtain the sixth video frame.

9. The rendering method of claim 8.

11. When the first video frame displays a target virtual object of the first terminal, after the server obtains a second video frame by rendering the target virtual object in the first video frame according to a first parameter of the first terminal, the server obtaining a second animation and a second audio corresponding to the target virtual object; the server adding a second animation corresponding to the target virtual object to the second video frame to obtain a seventh video frame; the server transmitting the seventh video frame and the second audio to the first terminal, the first terminal being configured to play the second audio while displaying the seventh video frame. Rendering method according to claim 1 or 3.

12. after the step of transmitting the second video frame to the first terminal, the first terminal being configured to display the second video frame; the server aggregating a plurality of the second video frames into a first video frame set and sending the first video frame set to the first terminal, the first terminal being configured to share the first video frame set with other terminals; the server concatenating the second video frame and the first video frame to obtain a concatenated video frame, aggregating a plurality of the concatenated video frames into a second video frame set, and sending the second video frame set to the first terminal, wherein the first terminal is configured to share the second video frame set with other terminals. Rendering method according to claim 1 or 3.

13. 1. A system for rendering video frames, comprising: a first terminal, a first server, and a second server, the first terminal, the first server, and the second server being communicatively connected; the first server is configured to obtain a first video frame corresponding to the first terminal by rendering a target virtual scene from a viewing angle of a controlled virtual object in the target virtual scene, and to transmit the first video frame to the second server, the controlled virtual object being a virtual object controlled by the first terminal; the second server configured to receive the first video frames; The second server is further configured to obtain a second video frame by rendering the target virtual object in the first video frame based on a first parameter of the first terminal when the first video frame displays a target virtual object of the first terminal; The second server is further configured to transmit the second video frame to the first terminal; the first terminal is configured to, in response to receiving the second video frame, display the second video frame; The second server comprises: When the first video frame displays a target virtual object of the first terminal, acquiring first rendering parameters, the first rendering parameters being rendering parameters corresponding to a first angle and a first distance in the first parameters, the first angle being an angle between the controlled virtual object and the target virtual object, and the first distance being a distance between the controlled virtual object and the target virtual object; and obtaining the second video frame by rendering the target virtual object in the first video frame based on the first rendering parameters; or When the first video frame displays a target virtual object of the first terminal, obtaining a first rendering parameter and a second rendering parameter from the first video frame; and Rendering the target virtual object and the controlled virtual object using the first rendering parameters and the second rendering parameters in the first video frame, respectively, to obtain the second video frame. Rendering system.

14. one or more processors; and one or more memories storing at least one computer program which is loaded and executed by said one or more processors to implement the rendering method according to claim 1 or 3. server.

15. A program for causing a computer to execute the rendering method according to claim 1 or 3.

Citation Information

Patent Citations

  • Game running method, device and equipment, medium and cloud game platform

    CN111214828A

  • Virtual object rendering method and device, mobile terminal and storage medium

    CN112891936A

  • Drawing device, its drawing method, program and recording medium

    JP2016536654A

  • Systems and methods for cloud processing and overlaying of content on streaming video frames of remotely processed applications

    JP2018023767A