WO2022252547A1 - 渲染方法、设备以及系统 - Google Patents

渲染方法、设备以及系统 Download PDF

Info

Publication number
WO2022252547A1
WO2022252547A1 PCT/CN2021/136452 CN2021136452W WO2022252547A1 WO 2022252547 A1 WO2022252547 A1 WO 2022252547A1 CN 2021136452 W CN2021136452 W CN 2021136452W WO 2022252547 A1 WO2022252547 A1 WO 2022252547A1
Authority
WO
WIPO (PCT)
Prior art keywords
rendering
engine
physical simulation
rendering engine
physical
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/CN2021/136452
Other languages
English (en)
French (fr)
Inventor
尹青
谢坤
余洲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Cloud Computing Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Cloud Computing Technologies Co Ltd filed Critical Huawei Cloud Computing Technologies Co Ltd
Priority to EP21943899.1A priority Critical patent/EP4325423A4/en
Publication of WO2022252547A1 publication Critical patent/WO2022252547A1/zh
Priority to US18/521,304 priority patent/US20240096007A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/355Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an encoded video stream for transmitting to a mobile phone or a thin client
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/00Three-dimensional [3D] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/77Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/20Three-dimensional [3D] animation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/20Three-dimensional [3D] animation
    • G06T13/40Three-dimensional [3D] animation of characters, e.g. humans, animals or virtual beings
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Definitions

  • the present application relates to the technical field of cloud computing, and in particular to a rendering method, device and system.
  • the physics engine uses object properties (such as velocity, acceleration, momentum, etc.) to physically simulate the motion, rotation, and collision of 3D models (such as characters, animals, plants, etc.)
  • object properties such as velocity, acceleration, momentum, etc.
  • 3D models such as characters, animals, plants, etc.
  • the skeletal movement of the 3D model is physically simulated so that the movement of the 3D model in the virtual scene conforms to the physical laws of the real scene, making the picture of the virtual scene and the behavior of the virtual character more and more real.
  • Many newly developed game applications, smart city simulation applications, and military simulation applications use physics engines to realize physical simulation in virtual scenes.
  • the rendering engine After obtaining the physical simulation results, call the rendering engine to render according to the physical simulation results to obtain rendered images.
  • the physics engine is packaged in the application installation package and downloaded and installed by the user to the terminal device.
  • the physics engine will also run.
  • the processing capacity of terminal devices is limited, and the calculation of physical engines will be affected by terminal Due to the limitation of device capabilities, the running of the application may freeze or stop, which seriously affects the user experience.
  • the physical simulation results obtained by the corresponding physical engines of multiple users are not shared, resulting in multiple copies of the same physical simulation results obtained by multiple physical engines corresponding to multiple users, resulting in Waste of computing resources.
  • the present application provides a rendering method, device and system, which can solve the problem that the calculation of the physics engine is limited by the capability of the terminal device, and solve the problem that the physics simulation results obtained by multiple physics engines corresponding to multiple users are not shared.
  • a rendering method is provided, which is applied to a remote computing platform, and the remote computing platform includes a physics engine, and the method includes:
  • the physics engine obtains a physical simulation result according to an operation instruction issued by a user corresponding to the first rendering engine or a user corresponding to the second rendering engine, and the operation instruction affects at least one 3D model in the target scene, and the physical simulation result includes the at least one 3D model The physical information of the model after being affected by the operation instruction;
  • the physics engine sends the physical simulation result to the first rendering engine and the second rendering engine, so that the first rendering engine performs rendering according to the physical simulation result to obtain a first rendered image, and makes the second rendering engine render according to the physical simulation result
  • the simulation result is rendered to obtain a second rendered image.
  • the physical engine is deployed on the remote computing platform, which can solve the problem that the calculation of the physical engine will be limited by the capability of the terminal device when the physical engine is deployed on the terminal device.
  • the physics engine can obtain a physical simulation result according to the operation instruction, and send it to the first rendering engine and the second rendering engine respectively, so that the first rendering engine can render according to the physical simulation result to obtain the first rendering image, and make the second rendering engine
  • the rendering engine can render according to the physical simulation results to obtain the second rendered image, without calling two physical engines to calculate and obtain two identical physical simulation results, which can effectively save computing resources.
  • both the virtual character corresponding to the first rendering engine and the virtual character corresponding to the second rendering engine are in the target scene.
  • the physical information includes any one or more of the following: the coordinates of a point on the at least one three-dimensional model, the speed at which the point moves, the acceleration at which the point moves, the angle at which the point moves, The direction the point is moving.
  • the first rendering engine and the second rendering engine are deployed on the remote computing platform, or the first rendering engine is deployed on the first terminal device, and the second rendering engine is deployed on the second Terminal Equipment.
  • a rendering method is provided, which is applied to a rendering engine system, and the rendering engine system includes a first rendering engine and a second rendering engine, and the method includes:
  • the first rendering engine and the second rendering engine respectively receive the physical simulation results sent by the physical engine, wherein the physical simulation results are obtained by the physical engine according to an operation instruction, and the operation instruction affects at least one 3D model in the target scene, the The physical simulation result includes physical information of the at least one three-dimensional model affected by the operation instruction;
  • the first rendering engine and the second rendering engine respectively perform rendering according to the physical simulation result to obtain a first rendering image and a second rendering image.
  • the first rendering engine and the second rendering engine respectively perform rendering according to the physical simulation result to obtain a first rendering image and a second rendering image, including:
  • the first rendering engine obtains the angle of view of the first user observing the target scene, performs rendering according to the angle of view of the first user observing the target scene and the physical simulation result, and obtains the first rendered image;
  • the second rendering engine acquires the viewing angle of the second user observing the target scene, performs rendering according to the viewing angle of the second user observing the target scene and the physical simulation result, and obtains the second rendered image.
  • a rendering method which is applied to a remote computing platform, and the remote computing platform includes a rendering engine, and the method includes:
  • the rendering engine receives the physical simulation result sent by the physical engine, wherein the physical simulation result is obtained by the physical engine according to an operation instruction, the operation instruction affects at least one 3D model in the target scene, and the physical simulation result includes the at least one 3D model Physical information affected by the operation instruction;
  • the rendering engine performs rendering according to the angle of view of the first user observing the target scene and the result of the physical simulation, to obtain a first rendered image
  • the rendering engine performs rendering according to the second user's viewing angle of the target scene and the physical simulation result to obtain a second rendered image.
  • a rendering device which is applied to a remote computing platform, and is specifically applied to a physics engine included in the remote computing platform.
  • the device includes:
  • An acquisition module configured to acquire a physical simulation result according to an operation instruction, the operation instruction affects at least one 3D model in the target scene, and the physical simulation result includes physical information of the at least one 3D model affected by the operation instruction;
  • a sending module configured to send the physical simulation result to the first rendering engine and the second rendering engine, so that the first rendering engine performs rendering according to the physical simulation result to obtain a first rendered image, and make the second rendering engine render according to the The physical simulation result is rendered to obtain a second rendered image.
  • a rendering engine system includes: a first rendering engine and a second rendering engine, wherein,
  • the first rendering engine and the second rendering engine are configured to respectively receive physical simulation results sent by the physical engine, wherein the physical simulation results are obtained by the physical engine according to an operation instruction, and the operation instruction affects at least one three-dimensional object in the target scene a model, the physical simulation result includes physical information of the at least one three-dimensional model affected by the operation instruction;
  • the first rendering engine and the second rendering engine are configured to perform rendering according to the physical simulation result to obtain a first rendered image and a second rendered image.
  • a rendering device which is applied to a remote computing platform, and is specifically applied to a rendering engine included in the remote computing platform.
  • the device includes:
  • the receiving module is configured to receive the physical simulation result sent by the physical engine, wherein the physical simulation result is obtained by the physical engine according to an operation instruction, the operation instruction affects at least one three-dimensional model in the target scene, and the physical simulation result includes the at least one The physical information of the 3D model affected by the operation instruction;
  • a rendering module configured to perform rendering according to the viewing angle of the first user observing the target scene and the result of the physical simulation, to obtain a first rendered image
  • the rendering module is configured to perform rendering according to the viewing angle of the second user observing the target scene and the result of the physical simulation, to obtain a second rendered image.
  • a seventh aspect provides a rendering system, which includes the rendering device described in the fourth aspect above and the rendering engine system described in the fifth aspect above.
  • a remote computing platform includes the rendering device described in the fourth aspect above and the rendering device described in the sixth aspect above.
  • a ninth aspect provides a non-transitory computer-readable storage medium, which is characterized in that the non-transitory computer-readable storage medium stores instructions, and the instructions are used to implement any one of the above-mentioned first to third aspects the method described.
  • a computing device cluster including at least one computing device, each computing device includes a processor and a memory; the processor of the at least one computing device is used to execute instructions stored in the memory of the at least one computing device, to The computing device cluster is made to execute the method described in any one of the first aspect to the third aspect above.
  • a computer program product including a computer program.
  • the computer program is read and executed by a computing device, the computing device is made to execute the method described in any one of the first to third aspects above.
  • FIG. 1 is a schematic structural diagram of a rendering system involved in the present application
  • FIG. 2 is a schematic structural diagram of another rendering system involved in the present application.
  • FIG. 3 is a schematic diagram of viewing a target scene from multiple perspectives involved in the present application
  • FIG. 4 is a schematic diagram of a rendering process involved in the present application.
  • FIG. 5 is a schematic flowchart of a rendering method provided by the present application.
  • FIG. 6 is a schematic diagram of the perspective of the first user observing the target scene provided by the present application.
  • FIG. 7 is a schematic flowchart of a rasterization rendering method provided by the present application.
  • Fig. 8 is a schematic diagram of the transformation process of the vertex shader provided by the present application.
  • FIG. 9 is a schematic diagram of the surface subdivision technology provided by the present application.
  • FIG. 10 is a schematic structural diagram of another rendering system involved in the present application.
  • Fig. 11 is a schematic diagram of another rendering process involved in the present application.
  • FIG. 12 is a schematic flowchart of another rendering method provided by the present application.
  • FIG. 13 is a schematic flowchart of another rendering method provided by the present application.
  • FIG. 14 is a schematic structural diagram of a rendering device provided by the present application.
  • FIG. 15 is a schematic structural diagram of another rendering device provided by the present application.
  • FIG. 16 is a schematic structural diagram of a rendering engine system provided by the present application.
  • Fig. 17 is a schematic structural diagram of a computing device cluster provided by the present application.
  • FIG. 18 is a schematic structural diagram of a computing device provided by the present application.
  • first and second in the embodiments of the present application are used for description purposes only, and cannot be understood as indicating or implying relative importance or implicitly indicating the quantity of indicated technical features. Thus, a feature defined as “first” and “second” may explicitly or implicitly include one or more of these features.
  • “at least one” means one or more, and “multiple” means two or more.
  • “And/or” describes the association relationship of associated objects, indicating that there may be three types of relationships, for example, A and/or B, which can mean: A exists alone, A and B exist simultaneously, and B exists alone, where A, B can be singular or plural.
  • the character “/” generally indicates that the contextual objects are an “or” relationship.
  • “At least one of the following" or similar expressions refer to any combination of these items, including any combination of single or plural items.
  • At least one item (unit) of a, b or c can represent: a, b, c, a-b, a-c, b-c or a-b-c, wherein a, b, c can be single or multiple.
  • FIG. 1 is a schematic structural diagram of a rendering system involved in the present application.
  • the rendering system may include multiple terminal devices 110 (in FIG. device as an example), each terminal device 110 in multiple terminal devices 110 can perform physical simulation through its own physical engine to obtain the physical simulation result, and then call the rendering engine to render the virtual scene according to the physical simulation result to obtain the rendered image .
  • each terminal device 110 in multiple terminal devices 110 can perform physical simulation through its own physical engine to obtain the physical simulation result, and then call the rendering engine to render the virtual scene according to the physical simulation result to obtain the rendered image .
  • the terminal device 110 may be a device that needs to display rendered images, for example, it may be a virtual reality device (virtual reality, VR) for flight training, it may be a computer for virtual games and a smart phone for a virtual shopping mall, etc. No specific limitation is made here.
  • the operating system of the terminal device 110 may be IOS, Android, Windows, Linux, etc. Since the physics engine and the rendering engine are packaged in the installation package of the rendering application (referring to the application that needs to display the rendered image), the user downloads and installs it on the terminal device 110. Therefore, when the rendering application runs on the terminal device 110, the physics engine and the rendering engine also will run synchronously.
  • the rendering application may be a game application, a military simulation application, a smart city simulation application, and the like.
  • the physics engine is used to use object attributes (such as velocity, acceleration, momentum, impulse, force, moment, damping, torque or elasticity, etc.) to control the movement, rotation and collision of at least one 3D model in the virtual scene when the rendering application is running Perform physical simulation and physical simulation of the bone movement of the 3D model after the collision to obtain physical simulation results, such as the coordinates of points on the 3D model (such as characters, animals, plants, etc.), the speed of point movement, point The acceleration of the movement, the angle of the point movement, the direction of the point movement, etc.
  • the physics engine can even simulate complex mechanisms such as ball joints, wheels, cylinders or hinges.
  • the rendering engine may include at least one of the following pipelines: a ray tracing renderer, a rasterization rendering pipeline, and the like.
  • the rendering engine may perform rendering according to the physical simulation result sent by the physics engine, obtain a rendered image, and display the rendered image on the terminal device 110 in real time.
  • the rendering engine can also do some simple rendering itself, such as rendering the light and shadow of the virtual screen, rendering the costumes of the characters, and so on.
  • the rendering system shown in FIG. 1 is only an example.
  • the rendering system shown in FIG. 1 may further include a sound engine, etc., wherein the sound engine is used to provide sound effects for users.
  • the physical engine can be separated from the terminal device 110 and deployed on a remote computing platform (such as a personal computer, cloud server) with high computing power and storage capacity, so that the calculation of the physical engine is no longer limited Terminal device 110.
  • a remote computing platform such as a personal computer, cloud server
  • FIG. 2 is a schematic structural diagram of a rendering system that deploys a physics engine to a remote computing platform 130 according to the present application.
  • the rendering system includes: a terminal device 110, a network device 120, and Remote computing platform 130 . in,
  • the remote computing platform 130 can be a personal computer or a cloud server.
  • the remote computing platform 130 is a cloud server as an example.
  • the remote computing platform 130 includes multiple remote computing nodes, and each remote computing node includes hardware, virtualization services, physics engines, and rendering server applications from bottom to top.
  • Hardware includes computing resources, storage resources, and network resources.
  • Computing resources can adopt heterogeneous computing architecture, for example, central processing unit (central processing unit, CPU) + graphics processing unit (graphics processing unit, GPU) architecture, CPU+AI chip, CPU+GPU+AI chip architecture, etc. , not specifically limited here.
  • Storage resources may include memory, among others.
  • computing resources can be divided into multiple computing unit resources, storage resources can be divided into multiple storage unit resources, and network resources can be divided into multiple network unit resources. Based on the free combination, so as to provide resources for the needs of users.
  • computing resources can be divided into computing unit resources of 5u
  • storage resources can be divided into storage unit resources of 10G
  • the combination of computing resources and storage resources can be, 5u+10G, 5u+20G, 5u+30u,...,10u +10G, 10u+20G, 10u+30u,....
  • Virtualization service is a service that builds the resources of multiple physical hosts into a unified resource pool through virtualization technology, and flexibly isolates mutually independent resources according to user needs to run user applications.
  • the virtualization service may include a virtual machine (virtual machine, VM) service, a bare metal server (bare metal server, BMS) service, and a container (container) service.
  • the VM service may be a service in which virtual machine (virtual machine, VM) resource pools are virtualized on multiple physical hosts through a virtualization technology to provide VMs for users on demand.
  • BMS service is a service that virtualizes BMS resource pools on multiple physical hosts to provide users with BMS on demand.
  • Container Service is a service that virtualizes container resource pools on multiple physical hosts to provide users with containers on demand.
  • VM is a simulated virtual computer, that is, a logical computer.
  • BMS is an elastically scalable high-performance computing service.
  • Container is a kernel virtualization technology that can provide lightweight virtualization to achieve the purpose of isolating user space, processes and resources. It should be understood that the VM service, BMS service, and container service in the above-mentioned virtualization services are only used as specific examples. In actual applications, the virtualization service can also be other lightweight or heavyweight virtualization services, which will not be described in detail here. limited.
  • the physics engine can be used to implement physical simulation algorithms, such as Newton's law of motion, the formula of universal gravitation, the law of conservation of momentum, etc.; the rendering server application can be used to call the physics engine to complete the physical simulation to obtain the physical simulation results.
  • the rendering application server After the rendering application server obtains the physical simulation result, it can send the physical simulation result to the rendering application client on the terminal device 110 through the network device 120, and the rendering application client calls the rendering engine to render according to the physical simulation result to obtain the rendered image .
  • the rendering application client is equivalent to the intermediary between the user and the rendering application server, and the rendering application client and the rendering application server are collectively referred to as the rendering application.
  • the rendering application server and the rendering application client may be provided by the rendering application provider, and the physics engine and the rendering engine may be provided by the cloud service provider.
  • the rendering application developer installs the rendering application server on the remote computing platform 130 provided by the cloud service provider, and the rendering application developer provides the rendering application client to the user for download via the Internet, and installs it on the user's terminal on device 110.
  • the cloud service provider also provides a physics engine and a rendering engine.
  • the physics engine can provide computing capabilities for rendering applications, and the rendering engine can provide rendering capabilities for rendering applications.
  • the rendering application client, the rendering application server, the physics engine, and the rendering engine may all be provided by a cloud service provider.
  • the remote computing platform 130 may be deployed on the cloud, and the remote computing platform 130 and the terminal device 110 are generally deployed in different data centers or even geographic regions, and communicate through the network device 120 .
  • the network device 120 is used to transmit data between the terminal device 110 and the remote computing platform 130 through any communication mechanism/communication standard communication network.
  • the communication network may be a wide area network, a local area network, a point-to-point connection, etc., or any combination thereof.
  • the target scene refers to a virtual scene when the rendering application is running. If the rendering application includes a virtual scene when the rendering application is running, then the target scene is the virtual scene. If the rendering application includes a large virtual scene when it is running, and the large virtual scene includes multiple small sub-scenes, then the target scene can be the above-mentioned large virtual scene, or it can be the sub-scene included in the above-mentioned large virtual scene One or more of several small subscenes.
  • the rendering application is a game application that can create virtual rooms
  • each virtual room is a sub-scene.
  • the virtual character corresponding to user A and the virtual character corresponding to user B are both in virtual room 1 in the game application, and the virtual character corresponding to user C is in virtual room 2 in the game application.
  • the target scene that user A and user B participate in may be a sub-scene corresponding to virtual room 1, or a virtual scene including a sub-scene corresponding to virtual room 1 and a sub-scene corresponding to virtual room 2.
  • the rendering application is an application that includes different layers, and each layer is a sub-scene. If the avatar corresponding to user A and the avatar corresponding to user B are both in layer 1 in the rendering application, user C corresponds to The avatar is in layer 2 in the rendering application, then the target scene that user A and user B participate in can be the sub-scene corresponding to layer 1, or it can include the sub-scene corresponding to layer 1 and the scene corresponding to layer 2 A virtual scene for subscenes.
  • Multiple users participating in the same target scene may also be referred to as multiple users observing the same target scene, wherein the user observing the target scene means that the user's point of view is facing the target scene.
  • the target scene includes a light source and a three-dimensional model, and light generated by the light source is projected on the three-dimensional model.
  • Different users in the same target scene need to generate rendered images from different viewpoints.
  • Figure 3 assuming that the target scene is shown in the upper part of Figure 3, when the first user corresponding to the first terminal device observes the target scene from the first perspective, the rendered image to be generated is shown in the left side of Figure 3 , when the second user corresponding to the second terminal device observes the target scene from the second perspective, the rendered image that needs to be generated is shown on the right side of FIG. 3 .
  • the first terminal device and the second terminal device can independently use the resources of the remote computing platform 130 to render the target scene, so as to obtain rendered images from different angles.
  • the process is specifically:
  • the first terminal device sends an operation instruction to the remote computing platform 130 through the network, and after receiving the operation instruction, the remote computing platform 130 generates a first computing task and a second computing task according to the operating instruction, and then calls the A first physics engine corresponding to a terminal device executes a first calculation task to obtain a first physical simulation result, and after obtaining the first physical simulation result, sends the first physical simulation result to the first terminal device through the network, and the first terminal
  • the first rendering engine on the device renders the target scene from the perspective of the first user according to the first physical simulation result, so as to obtain the first rendered image corresponding to the perspective of the first user;
  • the remote computing platform 130 calls the The second physics engine corresponding to the device executes the second calculation task to obtain the second physics simulation result, and sends the second physics simulation result to the second terminal device through the network, and the second rendering engine on the second terminal device performs the second physics simulation
  • the target scene is rendered from the perspective of the second user, so as to obtain a second rendered
  • the operation instruction can affect at least one 3D model in the target scene
  • the first physical simulation result obtained by the first physics engine according to the first computing task includes the physical information of the 3D model in the target scene affected by the operation instruction
  • the second physics engine The second physical simulation result obtained by the engine according to the second calculation task also includes the physical information of the 3D model in the target scene affected by the operation instruction, therefore, the first physical simulation result is the same as the second physical simulation result, wherein, in the target scene
  • the physical information of the 3D model affected by the operation instruction may include any one or more of the following: the coordinates of the points on the 3D model affected by the operation instruction, the speed of point movement, the acceleration of point movement, the angle of point movement and The direction of point movement and so on.
  • the remote computing platform 130 does not need to deploy a physics engine for the first terminal device and the second terminal device, but can deploy a physical engine for the first terminal device and the second terminal device.
  • a shared physics engine (hereinafter referred to as a shared physics engine)
  • the remote computing platform 120 can call the shared physics engine to calculate A sharable physical simulation result, and then the shared physical engine sends the physical simulation results to the first terminal device and the second terminal device respectively, so that the first rendering engine on the first terminal device can render according to the physical simulation result to obtain the second a rendering image, and enabling the second rendering engine on the second terminal device to render according to the physical simulation results to obtain the second rendering image, without the remote computing platform 130 calling two physical engines to calculate and obtain two identical physical simulation results, The computing resources of the remote computing platform 130 can be effectively saved.
  • the rendering method provided by the present application is described in detail below in conjunction with the interactive schematic diagram shown in FIG. 5. As shown in FIG. 5, the method includes:
  • the operation instruction acquired by the shared physics engine may be the first operation instruction sent by the first terminal device, or the second operation instruction sent by the second terminal device, or a combined instruction, that is, the remote computing platform 130 receives the first operation instruction After the terminal device and the second terminal device concurrently send the first operation instruction and the second operation instruction, an instruction is obtained by combining the two operation instructions.
  • S102 The shared physics engine acquires a physics simulation result according to the operation instruction.
  • the definition of the result of the physical simulation is the same as the definition of the result of the first physical simulation above, and for details, please refer to the related description above.
  • the shared physics engine sends the physical simulation result to the first rendering engine on the first terminal device, and correspondingly, the first rendering engine on the first terminal device receives the physical simulation result sent by the shared physics engine.
  • the shared physics engine sends the physical simulation result to the second rendering engine on the second terminal device, and correspondingly, the second rendering engine on the second terminal device receives the physical simulation result sent by the shared physics engine.
  • the first rendering engine on the first terminal device performs rendering according to a physical simulation result to obtain a first rendered image.
  • the second rendering engine on the second terminal device performs rendering according to the physical simulation result to obtain a second rendered image.
  • the first rendering engine on the first terminal device can perform rendering according to the viewing angle of the first user observing the target scene and the physical simulation results to obtain the first rendered image
  • the second rendering engine on the second terminal device The rendering engine may perform rendering according to the viewing angle of the second user observing the target scene and the physical simulation result to obtain a second rendered image.
  • the viewing angle of the first user observing the target scene can be expressed as (P 1 , ⁇ 1 ), where P 1 is the vertical distance from the first user’s viewpoint E 1 to the first rendered image, and ⁇ 1 is the The angle between the line connecting the viewpoint E 1 to the center point O of the first rendered image and the horizontal line.
  • the rendering system shown in FIG. 2 also has a third terminal device and a fourth terminal device
  • the third terminal device and the fourth terminal device also need to render the target scene from different perspectives, so as to obtain the third rendered image and
  • the remote computing platform 130 only needs to calculate the physical simulation result once, and does not need to perform four separate calculations to obtain four identical physical simulation results, which can effectively reduce the waste of computing resources.
  • the execution of the above S103 to S104 may be executed in parallel or sequentially in any order, and the execution of the above S105 to S106 may be executed in parallel or sequentially in any order.
  • the first rendering engine on the first terminal device and the second rendering engine on the second terminal device may use a rasterization rendering method, a ray tracing rendering method, or a combination of a rasterization rendering method and a ray tracing rendering method.
  • Rendering is performed by a mixed method to obtain a first rendered image and a second rendered image.
  • the following takes the first rendering engine on the first terminal device to perform rendering using a rasterization rendering method as an example to describe the rendering process in detail.
  • FIG. 7 is a schematic diagram of a rasterization rendering method provided by the present application.
  • the rasterization rendering method provided in the present application generally includes an application stage, a geometry stage, and a rasterization stage. in,
  • Application stage mainly divided into three tasks: (1) Prepare scene data, such as 3D model information in the scene, lighting information, etc.; (2) In order to improve rendering performance, it is usually necessary to do a coarse-grained culling (culling) work. Objects that are not visible in the scene are eliminated, so that these objects do not need to be handed over to the geometry stage for processing; (3) Set the rendering status of each 3D model, such as the material and texture used.
  • the output of the application stage is the geometric information required for rendering, that is, the rendering primitives.
  • Each rendering primitive contains all the vertex data corresponding to the primitives.
  • the rendering primitives can be points, lines, triangles, etc. These Rendered primitives are passed to the geometry stage.
  • Geometry stage usually includes vertex specification, vertex shader, primitive assembly, tessellation, geometry shader, vertex post-processing, There are multiple stages of primitive assembly, rasterization, fragment shader, and per-sample operations.
  • Vertex specifications are commonly used to obtain vertex data.
  • the vertex data is generated according to the 3D model in the target scene, and the vertex data includes the 3D coordinates of the vertex, and the vertex data may also include the normal vector of the vertex, the color of the vertex, and the like.
  • a vertex may be a point on a 3D model, for example, where two edges of a polygon in a 3D model meet, a common endpoint of two edges in a 3D model, and so on.
  • Vertex shaders are typically used to transform the 3D coordinates of vertices from object space to screen/image space.
  • the transformation process can be: transform from model space to world space (world space), then transform from world space to view space (view space), and then transform from view space to nominal projection space ( normalized projection space), and then transform from the nominal projection space to the screen space.
  • the visual space includes the visual frustum, the space inside the visual frustum is the space that can be seen from the user's perspective, and the space outside the visual frustum is the space that cannot be seen from the user's perspective.
  • Tessellation techniques are used to dramatically increase the number of vertices in a 3D model.
  • the 3D model includes three vertices constituting a triangle, before surface subdivision, as shown on the left side of Figure 9, there are three vertices in the 3D model.
  • the number of vertices in the 3D model has changed from three to six. It can be seen that the 3D model appears rough and stiff before surface subdivision, and the 3D model appears realistic and vivid after surface subdivision.
  • Geometry shaders are used to transform one or more vertices in a 3D model into a completely different primitive, thereby generating more vertices.
  • Vertex post-processing is used to clip the primitive, that is, if the primitive is partly outside the viewing frustum and partly inside the viewing frustum, you need to perform clipping on the part of the primitive outside the viewing frustum Cropping, only keep the part inside the visual frustum.
  • Primitive assembly is usually used to assemble the vertices in the 3D model into geometric primitives.
  • This stage will generate a series of triangles, line segments and points.
  • the assembled line segments may include independent line segments, end-to-end connected but ultimately unclosed line segments, end-to-end connected and finally sealed and closed line segments, and the like.
  • Assembled triangles may include individual triangles, linear chains of consecutive triangles, fan-shaped consecutive triangles, and the like.
  • culling can also be done, i.e. removing invisible objects from the scene.
  • culling may include frustum culling, viewport culling, and occlusion culling.
  • the rasterization stage includes rasterization, fragment shader, and per-sample operation.
  • Rasterization is the process of converting vertex data into fragments. It has the function of converting the graph into an image composed of rasters. The characteristic is that each element corresponds to a pixel in the frame buffer.
  • the first part of rasterization works: deciding which integer grid regions in window coordinates are occupied by primitives; the second part works: assigning a color value and a depth value to each region.
  • the rasterization process produces a fragment, in which each point on the two-dimensional image contains color, depth and texture data, and the point and related information are called a fragment.
  • the fragment shader is used to calculate the final color output of the pixel.
  • Pixel-by-pixel processing includes depth testing and transparency handling. It is understandable that if we first draw an object that is closer, and then draw an object that is farther away, the object that is far away will cover the object that is closer because it will be drawn later. This effect is not what we want.
  • the depth test is actually to record the distance (drawing coordinates) of the pixel point from the camera in the 3D world.
  • the depth value (Z value) of each pixel point (drawn on the screen) stored in the depth buffer is larger, the distance The farther the camera is, therefore, with the depth buffer, the order of drawing objects is not so important, and they can be displayed normally according to the distance (Z value).
  • the processing order of the rasterization rendering method is: vertex shader, tessellation technology, geometry shader, vertex post-processing (including clipping), primitive assembly (including culling), rasterization, fragment shader and pixel-by-pixel processing as an example.
  • the processing order of the rasterization rendering method may change, which is not specifically limited here.
  • the principle that the second rendering engine on the second terminal device performs rendering using a rasterization rendering method is the same as the principle that the first rendering engine on the first terminal device performs rendering using a rasterization rendering method, and details will not be repeated here.
  • separating the rendering engine from the terminal device 110 and deploying it on the remote computing platform 130 can further save resources of the terminal device 110 .
  • FIG. 10 is a schematic structural diagram of a rendering system that deploys both a physics engine and a rendering engine to a remote computing platform 130 provided by the present application.
  • the rendering system includes: a terminal device 110, a network
  • the device 120 and the remote computing platform 130 include a physics engine and a rendering engine on the remote computing platform 130 .
  • the user can input operation instructions through the rendering application client, and the rendering application client sends the operation instructions to the rendering application server on the remote computing platform 130 through the network, and the rendering application server calls the physical
  • the rendering application server calls the rendering engine to render according to the physical simulation result to obtain a rendered image, and then sends the rendered image to the terminal device 110 through the network for presentation to the user.
  • the first terminal device and the second terminal device can independently use the resources of the remote computing platform 130 to render the target scene, so as to obtain rendered images from different angles.
  • the process is specifically:
  • the first terminal device sends an operation instruction to the remote computing platform 130 through the network, and after receiving the operation instruction, the remote computing platform 130 generates a first computing task and a second computing task according to the operating instruction, and then calls the The first physics engine corresponding to the first terminal device on the remote computing platform 130 executes the first computing task to obtain the first physical simulation result, and after obtaining the first physical simulation result, calls the and The first rendering engine corresponding to the first terminal device renders the target scene from the perspective of the first user according to the first physical simulation result, so as to obtain a first rendered image corresponding to the perspective of the first user; the remote computing platform 130 calls The second physical engine corresponding to the second terminal device deployed on the remote computing platform 130 executes the second computing task to obtain the second physical simulation result, and after obtaining the second physical simulation result, calls the engine deployed on the remote computing platform 130 The second rendering engine corresponding to the second terminal device renders the target scene from the perspective of the second user according to the second physical simulation result, so as to obtain a second rendered image corresponding to
  • the remote computing platform 130 does not need to deploy a physics engine for the first terminal device and the second terminal device, but can deploy a physical engine for the first terminal device and the second terminal device.
  • Shared shared physics engine when the first terminal device and the second terminal device need to generate rendering images of the same target scene from different perspectives, the remote computing platform 120 can call the shared physics engine to calculate a shareable physical simulation As a result, the shared physics engine then sends the physical simulation results to the first rendering engine deployed on the remote computing platform 130 corresponding to the first terminal device and the second rendering engine deployed on the remote computing platform 130 corresponding to the second terminal device.
  • the first rendering engine deployed on the remote computing platform 130 can render according to the first user’s viewing angle of the target scene and the physical simulation results, obtain the first rendered image and send it to the first terminal device, and make it deployed on the remote
  • the second rendering engine on the computing platform 130 can perform rendering according to the viewing angle of the second user observing the target scene and the result of the physical simulation, obtain the second rendered image and send it to the second terminal device, without the need for the remote computing platform 130 to invoke two physical engines to calculate Obtaining two identical physical simulation results can effectively save computing resources of the remote computing device platform 130 .
  • the rendering method provided by the present application is described in detail below in conjunction with the interactive schematic diagram shown in FIG. 12 .
  • the method includes:
  • S202 The shared physics engine acquires a physics simulation result according to the operation instruction.
  • S203 The shared physics engine sends the physical simulation result to the first rendering engine deployed on the remote computing platform 130.
  • the first rendering engine on the remote computing platform 130 receives the physical simulation result sent by the shared physics engine.
  • S204 The shared physics engine sends the physical simulation result to the second rendering engine deployed on the remote computing platform 130.
  • the second rendering engine on the remote computing platform 130 receives the physical simulation result sent by the shared physics engine.
  • the first rendering engine on the remote computing platform 130 performs rendering according to the physical simulation result to obtain a first rendered image.
  • the second rendering engine on the remote computing platform 130 performs rendering according to the physical simulation result to obtain a second rendered image.
  • S207 The first rendering engine on the remote computing platform 130 sends the first rendered image to the first terminal device.
  • the first rendering engine on the remote computing platform 130 can perform rendering according to the first user's viewing angle of the target scene and the physical simulation results to obtain the first rendered image
  • the second rendering engine on the remote computing platform 130 The rendering engine may perform rendering according to the second user's viewing angle of the target scene and the physical simulation result to obtain a second rendered image. Therefore, before the first rendering engine on the remote computing platform 130 renders, the first rendering engine on the remote computing platform 130 can first obtain the perspective of the first user observing the target scene, and the second rendering engine on the remote computing platform 130 Before performing rendering, the second rendering engine on the remote computing platform 130 may first obtain the viewing angle of the second user observing the target scene.
  • the manner in which the first rendering engine on the remote computing platform 130 obtains the viewing angle of the first user observing the target scene may be as follows:
  • the operation instruction is the first operation instruction sent by the first terminal device, or an instruction generated by combining the first operation instruction sent by the first terminal device and the second operation instruction sent by the second terminal device,
  • the operation instruction includes the angle of view of the first user observing the target scene. Therefore, after obtaining the operation instruction, the remote computing platform 130 sends the angle of view of the first user included in the operation instruction to the first user on the remote computing platform 130. rendering engine.
  • the operation instruction is sent by the first terminal device, or the instruction is generated by combining the first operation instruction sent by the first terminal device and the second operation instruction sent by the second terminal device.
  • the operation instruction includes The first user identifier, when the remote computing platform 130 stores multiple user identifiers, multiple user viewing angles of the target scene, and the corresponding relationship between the multiple user identifiers and the multiple user viewing angles of the target scene, the remote After the computing platform 130 receives the operation instruction, it can find out the viewpoint corresponding to the first user identifier from the perspectives of multiple users observing the target scene according to the first user identifier included in the operation instruction, and the viewpoint is the first user identifier.
  • the angle of view of the first user observing the target scene saved by the remote computing platform 130 may be carried in the first operation instruction sent by the first user to the remote computing platform 130 last time.
  • the operation instruction is the second operation instruction sent by the second terminal device.
  • the operation instruction includes the identification of the target scene or indicates the target scene.
  • the remote computing platform 130 obtains the operation instruction, it can follow the operation instruction from Locate the target scene in multiple virtual scenes, and then determine which users observe the target scene. When it is determined that the users observing the target scene include the first user, search from the perspectives of multiple users that have been saved to observe the target scene Find the viewing angle of the first user observing the target scene, and then send the found viewing angle of the first user observing the target scene to the first rendering engine on the remote computing platform 130 .
  • the manner in which the second rendering engine on the remote computing platform 130 obtains the viewing angle of the second user observing the target scene is similar to the manner in which the first rendering engine on the remote computing platform 130 obtains the viewing angle of the first user observing the target scene. Let's expand on that.
  • the execution of the above S203 to S204 may be executed in parallel or in any order, the execution of the above S205 to S206 may be executed in parallel or in any order, and the execution of the above S207 to S208 may be executed in parallel or in any order.
  • the definition of the physical simulation result is the same as the definition of the physical simulation result in the embodiment shown in FIG. 1.
  • the second rendering engine on the remote computing platform 130 performs rendering according to the physical simulation results to obtain the second rendered image.
  • the process is the same as that of the first rendering engine on the first terminal device in the embodiment shown in FIG. 5 performing rendering according to the physical simulation results.
  • the process of obtaining the first rendered image is similar, please refer to the relevant content in the embodiment shown in FIG. 5 for details, and no further description is given here.
  • the present application also provides a rendering method.
  • the remote computing platform 130 not only does not need to deploy a physics engine for each of the first terminal device and the second terminal device, but also does not need to deploy a physical engine for each of the first terminal device and the second terminal device.
  • a rendering engine which can deploy a shared physics engine that can be shared by the first terminal device and the second terminal device, and deploy a rendering engine that can be shared by the first terminal device and the second terminal device (hereinafter referred to as shared rendering engine) Engine), when the first terminal device and the second terminal device need to generate rendering images of the same target scene from different angles, the remote computing platform 120 can call the shared physics engine to calculate a shareable physical simulation result, and then The shared physics engine sends the physical simulation result to the shared rendering engine, and the shared rendering engine can perform rendering according to the perspective of the first user observing the target scene and the physical simulation result, obtain the first rendered image and send it to the first terminal device, and The second user observes the perspective of the target scene and renders the physical simulation results to obtain a second rendered image and send it to the second terminal device.
  • shared rendering engine which can deploy a shared physics engine that can be shared by the first terminal device and the second terminal device, and deploy a rendering engine that can be shared by the first terminal device and the second terminal device (her
  • this method not only does not require the remote computing platform 130 to call two physics engines to calculate and obtain two identical physical simulation results, and achieves the goal of saving computing resources of the remote computing device platform 130, but also does not require the remote computing platform 130 to call two rendering results.
  • the engine performs rendering to obtain the first rendered image and the second rendered image, which simplifies the deployment of the remote computing platform 130 .
  • the rendering method provided by the present application is described in detail below in conjunction with the interactive schematic diagram shown in FIG. 13 .
  • the method includes:
  • S302 The shared physics engine acquires a physics simulation result according to the operation instruction.
  • S303 The shared physics engine sends the physical simulation result to the shared rendering engine deployed on the remote computing platform 130.
  • the shared rendering engine on the remote computing platform 130 receives the physical simulation result sent by the shared physics engine.
  • the shared rendering engine performs rendering according to the physical simulation result to obtain a first rendered image and a second rendered image.
  • the shared rendering engine sends the first rendered image to the first terminal device, and correspondingly, the first terminal device receives the first rendered image sent by the shared rendering engine.
  • the shared rendering engine sends the second rendered image to the second terminal device, and correspondingly, the first terminal device receives the second rendered image sent by the shared rendering engine.
  • the shared rendering engine can perform rendering according to the viewing angle and physical simulation results of the first user observing the target scene to obtain the first rendered image, and the shared rendering engine can obtain the first rendered image according to the viewing angle and physical simulation results of the second user observing the target scene.
  • the simulation result is rendered to obtain a second rendered image. Therefore, before the shared rendering engine performs rendering, the shared rendering engine may first obtain the viewing angle of the first user observing the target scene and the viewing angle of the second user observing the target scene.
  • the shared rendering engine may start a first process to obtain the viewing angle of the first user observing the target scene, and start a second process to obtain the viewing angle of the second user observing the target scene.
  • the manner in which the shared rendering engine starts the first process to acquire the angle of view of the first user observing the target scene and the manner in which the second process is started to acquire the angle of view of the second user to observe the target scene is the same as that described in the embodiment shown in FIG. 12 on the remote computing platform 130.
  • the manner in which the first rendering engine obtains the viewing angle of the first user observing the target scene is similar. For details, reference may be made to the related description in the embodiment shown in FIG. 12 , which will not be repeated here.
  • the execution of the above S305 to S306 may be executed in parallel or sequentially in any order.
  • the definition of the physical simulation result is the same as the definition of the physical simulation result in the embodiment shown in FIG.
  • the first rendering engine on the first terminal device performs rendering according to the physical simulation results to obtain the first rendered image.
  • the process is similar.
  • FIG. 14 is a schematic structural diagram of a rendering device 200 provided by the present application.
  • the rendering device 200 can be applied to the remote computing platform 130 described above, and specifically applied to the remote computing platform deployed on the above-mentioned Shared physics engine on 130.
  • the rendering device 200 includes: an acquisition module 210 and a sending module 220, wherein,
  • An acquisition module 210 configured to acquire a physical simulation result according to an operation instruction, the operation instruction affects at least one 3D model in the target scene, and the physical simulation result includes physical information of the at least one 3D model affected by the operation instruction ;
  • the sending module 220 is configured to send the physical simulation result to the first rendering engine and the second rendering engine, so that the first rendering engine performs rendering according to the physical simulation result to obtain a first rendered image, and make the The second rendering engine performs rendering according to the physical simulation result to obtain a second rendered image.
  • both the virtual character corresponding to the first rendering engine and the virtual character corresponding to the second rendering engine are in the target scene.
  • the physical information includes any one or more of the following: coordinates of points on the at least one three-dimensional model, moving speed of the point, acceleration of moving the point, the The angle at which the point moves, the direction in which the point moves.
  • the first rendering engine and the second rendering engine are deployed on the remote computing platform 130, or the first rendering engine is deployed on the first terminal device, and the second The rendering engine is deployed on the second terminal device.
  • FIG. 15 is a schematic structural diagram of another rendering device 300 provided by the present application.
  • This rendering device 300 can be applied to the remote computing platform 300 described above, and specifically applied to the remote computing platform deployed in the above-mentioned A shared rendering engine on platform 130.
  • the rendering device 300 includes: a receiving module 310 and a rendering module 320, wherein,
  • the receiving module 310 is configured to receive the physical simulation result sent by the shared physics engine, wherein the physical simulation result is obtained by the shared physics engine according to an operation instruction, and the operation instruction affects at least one three-dimensional model in the target scene, the The physical simulation result includes physical information of the at least one three-dimensional model affected by the operation instruction;
  • a rendering module 320 configured to perform rendering according to the viewing angle of the first user observing the target scene and the result of the physical simulation, to obtain a first rendered image
  • the rendering module 320 is further configured to perform rendering according to the viewing angle of the second user observing the target scene and the result of the physical simulation, to obtain a second rendered image.
  • the rendering device 200 and the rendering device 300 are only an example provided by the present application, and the rendering device 200 may have more or fewer components than those shown in FIG. 14 , and two or more components may be combined. , or may be implemented with different configurations of components, the rendering apparatus 300 may have more or fewer components than those shown in FIG. 15 , may combine two or more components, or may have different configurations of components.
  • the present application also provides a rendering engine system 400, which includes: a first rendering engine 410 and a second rendering engine 420, wherein,
  • the first rendering engine 410 and the second rendering engine 420 are configured to respectively receive physical simulation results sent by the shared physics engine, wherein the physical simulation results are obtained by the shared physics engine according to an operation instruction, and the operation The instruction affects at least one three-dimensional model in the target scene, and the physical simulation result includes physical information of the at least one three-dimensional model affected by the operation instruction;
  • the first rendering engine 410 and the second rendering engine 420 are configured to respectively perform rendering according to the physical simulation results to obtain a first rendered image and a second rendered image.
  • the first rendering engine 410 and the second rendering engine 420 are deployed on the remote computing platform 130, or the first rendering engine 410 is deployed on the first terminal device, so The second rendering engine 420 is deployed on the second terminal device.
  • the present application also provides a computing device cluster 50, which can be used to deploy the rendering apparatus 200 shown in FIG. 14 to execute the steps performed by the shared physics engine in the rendering method shown in FIG.
  • the computing device cluster 50 can also be used to deploy the rendering apparatus 300 shown in FIG. 15 to execute the steps performed by the shared rendering engine in the rendering method shown in FIG. 13 .
  • the computing device cluster 50 includes at least one computing device 500 .
  • the computing device cluster 50 includes only one computing device 500, all the modules in the rendering apparatus 200 shown in FIG. Or, deploy all the modules in the rendering device 300 shown in FIG. 15 : the receiving module 310 and the rendering module 320 .
  • each computing device 500 in the plurality of computing devices 500 can be used to deploy the rendering device 200 shown in FIG. 14 and/or the rendering device 300 shown in FIG. 15 Part of the modules in, or, two or more computing devices 500 among the multiple computing devices 500 are jointly used to deploy one or more modules in the rendering apparatus 200 shown in FIG. 14 and/or the rendering device 200 shown in FIG. 15 One or more modules in the device 300.
  • multiple computing devices 500 include a computing device 500A and a computing device 500B
  • the computing device 500A can be used to deploy the acquiring module 210 and the sending module 220
  • the computing device 500B can be used to deploy the receiving module 310 and the rendering module 320
  • the acquiring module 210 and the rendering module 320 are deployed on the computing device 500A
  • the acquiring module 210, the sending module 220, the receiving module 310, and the rendering module 320 are deployed on the computing device 500B
  • multiple computing devices 500 include computing devices 500A, 500B, and 500C and 500D
  • the computing device 500A can be used to deploy the acquiring module 210
  • the computing device 500B can be used to deploy the sending module 220
  • the computing device 500C can be used to deploy the receiving module 310
  • the computing device 500D can be used to deploy the rendering module 320.
  • the computing device cluster 50 provided in this application can also be used to deploy the rendering engine system 400 shown in FIG. 16 to execute the steps performed by the first rendering engine 410 and the second rendering engine 420 in the rendering method shown in FIG. 12 .
  • the computing device cluster includes only one computing device 500, all the modules in the rendering engine system 400 shown in FIG. Engine 420.
  • each computing device 500 in the plurality of computing devices 500 may be used to deploy one or more modules in the rendering engine system 400 shown in FIG. 16 , or Two or more computing devices 500 among the plurality of devices 500 are jointly used to deploy one or more modules in the rendering engine system 400 shown in FIG. 16 .
  • At least one computing device 500 included in the computing device cluster 50 may be all terminal devices, all may be cloud servers, or partly be cloud servers and partly be terminal devices, which are not specifically limited here.
  • each computing device 500 in the computing device cluster 50 may include a processor 510, a memory 520, a communication interface 530, etc., and the memory 520 in one or more computing devices 500 in the computing device cluster 50
  • the communication interface 530 can be used to realize the communication between each computing device 500 and other devices.
  • each computing device 500 in the computing device cluster 50 may also communicate with other devices through a network connection.
  • the network may be a wide area network or a local area network or the like.
  • a computing device 500 includes: a processor 510 , a memory 520 and a communication interface 530 , where the processor 510 , the memory 520 and the communication interface 530 may be connected to each other through a bus 540 .
  • the processor 510 can read the codes stored in the memory 520, and cooperate with the communication interface 530 to execute some or all steps of the rendering method executed by the rendering device 200 in the above embodiments of the present application.
  • the processor 510 can have multiple specific implementation forms, for example, the processor 510 can be a central processing unit (central processing unit, CPU) or a graphics processing unit (graphics processing unit, GPU), and the processor 510 can also be a single-core processor or multi-core processor.
  • the processor 510 may be a combination of a CPU and a hardware chip.
  • the aforementioned hardware chip may be an application-specific integrated circuit (application-specific integrated circuit, ASIC), a programmable logic device (programmable logic device, PLD) or a combination thereof.
  • the aforementioned PLD may be a complex programmable logic device (complex programmable logic device, CPLD), a field-programmable gate array (field-programmable gate array, FPGA), a general array logic (generic array logic, GAL) or any combination thereof.
  • the processor 510 may also be implemented solely by a logic device with built-in processing logic, such as an FPGA or a digital signal processor (digital signal processing, DSP).
  • the memory 520 can store codes as well as data.
  • the code includes: the code of the acquisition module 210 and the code of the sending module 220, etc.
  • the data includes: operation instructions, physical simulation results, first rendered image and second rendered image, and so on.
  • the memory 520 can be a non-volatile memory, such as a read-only memory (read-only memory, ROM), a programmable read-only memory (programmable ROM, PROM), an erasable programmable read-only memory (erasable PROM, EPROM), electrically erasable programmable read-only memory (electrically EPROM, EEPROM) or flash memory.
  • the memory 520 can also be a volatile memory, which can be a random access memory (random access memory, RAM), which is used as an external cache.
  • the communication interface 530 may be a wired interface (such as an Ethernet interface) or a wireless interface (such as a cellular network interface or using a wireless local area network interface) for communicating with other computing nodes or devices.
  • the communication interface 530 can adopt a protocol family above the transmission control protocol/internet protocol (transmission control protocol/internet protocol, TCP/IP), for example, a remote function call (remote function call, RFC) protocol, simple object access protocol (simple object access protocol, SOAP) protocol, simple network management protocol (simple network management protocol, SNMP) protocol, common object request broker architecture (common object request broker architecture, CORBA) protocol and distributed protocol and many more.
  • TCP/IP transmission control protocol/internet protocol
  • RFC remote function call
  • simple object access protocol simple object access protocol
  • SOAP simple network management protocol
  • SNMP simple network management protocol
  • CORBA common object request broker architecture
  • the bus 540 may be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA for short) bus or the like.
  • PCI peripheral component interconnect
  • EISA extended industry standard architecture
  • the bus 540 can be divided into address bus, data bus, control bus and so on. For ease of representation, only one thick line is used in FIG. 18 , but it does not mean that there is only one bus or one type of bus.
  • the above-mentioned computing device 500 is used to execute the method in the above-mentioned rendering method embodiment, which belongs to the same idea as the above-mentioned method embodiment, and its specific implementation process is detailed in the above-mentioned method embodiment, and will not be repeated here.
  • computing device 500 is only an example provided by the embodiment of the present application, and the computing device 500 may have more or fewer components than those shown in FIG. 18 , and two or more components may be combined, or It can be realized with different configurations of components.
  • the present application also provides a remote computing platform, and the remote computing platform may include the rendering device 200 shown in FIG. 14 and the rendering device 300 shown in FIG. 15 .
  • the present application also provides a rendering system, which may include the rendering device 200 shown in FIG. 14 and the rendering engine system 400 shown in FIG. 16 .
  • the present application also provides a non-transitory computer-readable storage medium, where codes are stored in the non-transitory computer-readable storage medium, and when the code is run on a processor, part or all of the rendering methods described in the above-mentioned embodiments can be implemented. All steps.
  • all or part may be implemented by software, hardware or any combination thereof.
  • software When implemented using software, it may be implemented in whole or in part in the form of a computer program product.
  • the computer program product may comprise code.
  • the computer can be a general purpose computer, a special purpose computer, a computer network, or other programmable devices.
  • the computer instructions may be stored in or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions may be transmitted from a website, computer, server or data center Transmission to another website site, computer, server, or data center by wired (eg, coaxial cable, optical fiber, DSL) or wireless (eg, infrared, wireless, microwave, etc.) means.
  • the computer-readable storage medium may be any available medium that can be accessed by a computer, or a data storage device such as a server or a data center integrated with one or more available media.
  • the available medium may be a magnetic medium (such as a floppy disk, a hard disk, or a magnetic tape), an optical medium, or a semiconductor medium.
  • the steps in the method of the embodiment of the present application can be adjusted in order, combined or deleted according to actual needs; the units in the device of the embodiment of the present application can be divided, combined or deleted according to actual needs.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Computing Systems (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • General Business, Economics & Management (AREA)
  • Processing Or Creating Images (AREA)

Abstract

一种渲染方法、设备以及系统,其中,方法包括:远程计算平台(130)上的物理引擎根据第一渲染引擎对应的用户或者第二渲染引擎对应的用户发出的操作指令获取物理模拟结果,然后将物理模拟结果发送给第一渲染引擎和第二渲染引擎,使得第一渲染引擎根据物理模拟结果进行渲染,得到第一渲染图像,以及使得第二渲染引擎根据物理模拟结果进行渲染,得到第二渲染图像,其中,操作指令影响目标场景中的至少一个三维模型,物理模拟结果包括所述至少一个三维模型被操作指令影响后的物理信息。所述方法能够解决物理引擎的计算受到终端设备能力限制的问题,以及解决多用户对应的多个物理引擎得到的物理模拟结果没有实现共享的问题。

Description

渲染方法、设备以及系统
本申请要求于2021年5月29日提交中国专利局、申请号为202110595991.2、发明名称为“渲染方法、设备以及系统”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及云计算技术领域,尤其涉及一种渲染方法、设备以及系统。
背景技术
物理引擎使用对象属性(如速度、加速度、动量等)对虚拟场景中的三维模型(如角色、动物、植物等)的运动、旋转和碰撞等行为进行物理模拟,以及用于对发生碰撞后的三维模型的骨骼运动进行物理模拟,以使虚拟场景中的三维模型运动符合真实场景的物理定律,让虚拟场景的画面和虚拟角色的行为变得越来越真实。许多新开发的游戏应用、智慧城市仿真应用、军事仿真应用等均利用物理引擎来实现虚拟场景中的物理模拟,在得到物理模拟结果后,调用渲染引擎根据物理模拟结果进行渲染,得到渲染图像。
目前,物理引擎都是包在应用安装包内由用户下载安装到终端设备,当用户运行应用时,物理引擎也会跟着运行。然而,随着用户对虚拟画面以及虚拟角色真实感的要求越来越高,需要物理引擎进行物理模拟的数据量也越来越大,但终端设备的处理能力有限,物理引擎的计算会受到终端设备能力的限制,从而导致应用的运行出现卡顿或者停止等现象,严重影响用户的体验。另外,在多用户参与同一虚拟场景的情况下,由于多用户各自对应的物理引擎获取的物理模拟结果没有实现共享,导致多用户对应的多个物理引擎得到多份相同的物理模拟结果,造成了计算资源的浪费。
发明内容
本申请提供了一种渲染方法、设备以及系统,可以解决物理引擎的计算受到终端设备能力限制的问题,以及解决多用户对应的多个物理引擎得到的物理模拟结果没有实现共享的问题。
第一方面,提供一种渲染方法,应用于远程计算平台,该远程计算平台包括物理引擎,该方法包括:
该物理引擎根据第一渲染引擎对应的用户或者第二渲染引擎对应的用户发出的操作指令获取物理模拟结果,该操作指令影响目标场景中的至少一个三维模型,该物理模拟结果包括该至少一个三维模型被该操作指令影响后的物理信息;
该物理引擎将该物理模拟结果发送给第一渲染引擎和第二渲染引擎,使得该第一渲染引擎根据该物理模拟结果进行渲染,得到第一渲染图像,以及使得该第二渲染引擎根据该物理模拟结果进行渲染,得到第二渲染图像。
上述方案中,物理引擎部署于远程计算平台,可以解决物理引擎部署于终端设备时存在的物理引擎的计算会受到终端设备能力的限制的问题。另外,物理引擎可以根据操作指令获取一份物理模拟结果,分别发送给第一渲染引擎和第二渲染引擎,使得第一渲染引擎可以根据物理模拟结果进行渲染得到第一渲染图像,以及使得第二渲染引擎可以根据物理模拟结果 进行渲染,得到第二渲染图像,无需调用两个物理引擎计算得到两份相同的物理模拟结果,可以有效地节约计算资源。
在一种可能的实现方式中,该第一渲染引擎对应的虚拟角色和该第二渲染引擎对应的虚拟角色都处于该目标场景。
在一种可能的实现方式中,该物理信息包括如下任意一种或多种:该至少一个三维模型上的点的坐标、该点移动的速度、该点移动的加速度、该点移动的角度、该点移动的方向。
在一种可能的实现方式中,该第一渲染引擎和该第二渲染引擎部署于该远程计算平台,或者,该第一渲染引擎部署于第一终端设备,该第二渲染引擎部署于第二终端设备。
第二方面,提供一种渲染方法,应用于渲染引擎系统,该渲染引擎系统包括第一渲染引擎和第二渲染引擎,该方法包括:
该第一渲染引擎和该第二渲染引擎分别接收物理引擎发送的物理模拟结果,其中,该物理模拟结果为该物理引擎根据操作指令获取,该操作指令影响目标场景中的至少一个三维模型,该物理模拟结果包括该至少一个三维模型被该操作指令影响后的物理信息;
该第一渲染引擎和该第二渲染引擎分别根据该物理模拟结果进行渲染,得到第一渲染图像和第二渲染图像。
在一种可能的实现方式中,该第一渲染引擎和该第二渲染引擎分别根据该物理模拟结果进行渲染,得到第一渲染图像和第二渲染图像,包括:
该第一渲染引擎获取第一用户观察该目标场景的视角,根据该第一用户观察该目标场景的视角和该物理模拟结果进行渲染,得到该第一渲染图像;
该第二渲染引擎获取第二用户观察该目标场景的视角,根据该第二用户观察该目标场景的视角和该物理模拟结果进行渲染,得到该第二渲染图像。
第三方面,提供一种渲染方法,应用于远程计算平台,该远程计算平台包括渲染引擎,该方法包括:
该渲染引擎接收物理引擎发送的物理模拟结果,其中,该物理模拟结果为该物理引擎根据操作指令获取,该操作指令影响目标场景中的至少一个三维模型,该物理模拟结果包括该至少一个三维模型被该操作指令影响后的物理信息;
该渲染引擎根据第一用户观察该目标场景的视角和该物理模拟结果进行渲染,得到第一渲染图像;
该渲染引擎根据第二用户观察该目标场景的视角和该物理模拟结果进行渲染,得到第二渲染图像。
第四方面,提供一种渲染装置,应用于远程计算平台,具体应用于该远程计算平台包括的物理引擎,该装置包括:
获取模块,用于根据操作指令获取物理模拟结果,该操作指令影响目标场景中的至少一个三维模型,该物理模拟结果包括该至少一个三维模型被该操作指令影响后的物理信息;
发送模块,用于将该物理模拟结果发送给第一渲染引擎和第二渲染引擎,使得该第一渲染引擎根据该物理模拟结果进行渲染,得到第一渲染图像,以及使得该第二渲染引擎根据该物理模拟结果进行渲染,得到第二渲染图像。
第五方面,提供一种渲染引擎系统,该渲染引擎系统包括:第一渲染引擎和第二渲染引擎,其中,
该第一渲染引擎和该第二渲染引擎,用于分别接收物理引擎发送的物理模拟结果,其中,该物理模拟结果为该物理引擎根据操作指令获取,该操作指令影响目标场景中的至少一个三 维模型,该物理模拟结果包括该至少一个三维模型被该操作指令影响后的物理信息;
该第一渲染引擎和该第二渲染引擎,用于分别根据该物理模拟结果进行渲染,得到第一渲染图像和第二渲染图像。
第六方面,提供一种渲染装置,应用于远程计算平台,具体应用于该远程计算平台包括的渲染引擎,该装置包括:
接收模块,用于接收物理引擎发送的物理模拟结果,其中,该物理模拟结果为该物理引擎根据操作指令获取,该操作指令影响目标场景中的至少一个三维模型,该物理模拟结果包括该至少一个三维模型被该操作指令影响后的物理信息;
渲染模块,用于根据第一用户观察该目标场景的视角和该物理模拟结果进行渲染,得到第一渲染图像;
渲染模块,用于根据第二用户观察该目标场景的视角和该物理模拟结果进行渲染,得到第二渲染图像。
第七方面,提供一种渲染系统,该渲染系统包括上述第四方面所述的渲染装置和上述第五方面所述的渲染引擎系统。
第八方面,提供一种远程计算平台,该远程计算平台包括上述第四方面所述的渲染装置和上述第六方面所述的渲染装置。
第九方面,提供一种非瞬态计算机可读存储介质,其特征在于,该非瞬态计算机可读存储介质存储有指令,该指令用于实现如上述第一方面至第三方面任一项所述的方法。
第十方面,提供一种计算设备集群,包括至少一个计算设备,每个计算设备包括处理器和存储器;该至少一个计算设备的处理器用于执行该至少一个计算设备的存储器中存储的指令,以使得该计算设备集群执行上述第一方面至第三方面任一项所述的方法。
第十一方面,提供一种计算机程序产品,包括计算机程序,当该计算机程序被计算设备读取并执行时,使得该计算设备执行上述第一方面至第三方面任一项所述的方法。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1是本申请涉及的一种渲染系统的结构示意图;
图2是本申请涉及的另一种渲染系统的结构示意图;
图3是本申请涉及的从多个视角观看目标场景的示意图;
图4是本申请涉及的一种渲染过程的示意图;
图5是本申请提供的一种渲染方法的流程示意图;
图6是本申请提供的第一用户观察目标场景的视角的示意图;
图7是本申请提供的一种光栅化渲染方法的流程示意图;
图8是本申请提供的顶点着色器的变换的过程的示意图;
图9是本申请提供的曲面细分技术的示意图;
图10是本申请涉及的另一种渲染系统的结构示意图;
图11是本申请涉及的另一种渲染过程的示意图;
图12是本申请提供的另一种渲染方法的流程示意图;
图13是本申请提供的又一种渲染方法的流程示意图;
图14是本申请提供的一种渲染装置的结构示意图;
图15是本申请提供的另一种渲染装置的结构示意图;
图16是本申请提供的一种渲染引擎系统的结构示意图;
图17是本申请提供的一种计算设备集群的结构示意图;
图18是本申请提供的一种计算设备的结构示意图。
具体实施方式
下面结合本申请实施例中的附图对本申请实施例进行描述。
本申请实施例中的术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下中的至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a、b、c、a-b、a-c、b-c或a-b-c,其中a、b、c可以是单个,也可以是多个。
下面对本申请实施例涉及的应用场景进行简要说明。
请参阅图1,图1为本申请涉及的一种渲染系统的结构示意图,该渲染系统可以包括多个终端设备110(在图1中以多个终端设备110为第一终端设备和第二终端设备为例),多个终端设备110中的每个终端设备110可以通过自身包括的物理引擎进行物理模拟,得到物理模拟结果,然后调用渲染引擎根据物理模拟结果对虚拟场景进行渲染,得到渲染图像。其中,
终端设备110可以是需要显示渲染图像的设备,例如,可以是用于飞行训练的虚拟现实设备(virtual reality,VR)、可以是用于虚拟游戏的电脑以及用于虚拟商城的智能手机等等,此处不作具体限定。终端设备110的操作系统可以是IOS、Android、Windows、Linux等。由于物理引擎和渲染引擎是包在渲染应用(指需要显示渲染图像的应用)安装包内由用户下载安装到终端设备110,因此,渲染应用在终端设备110上运行时,物理引擎和渲染引擎也会同步运行。其中,渲染应用可以是游戏应用、军事仿真应用、智慧城市仿真应用等。
物理引擎用于在渲染应用运行时,使用对象属性(如速度、加速度、动量、冲量、力、力矩、阻尼、扭矩或者弹性等)对虚拟场景中至少一个三维模型的运动、旋转和碰撞等行为进行物理模拟,以及用于对发生碰撞后的三维模型的骨骼运动进行物理模拟,得到物理模拟结果,如三维模型(如角色、动物、植物等)上的点的坐标、点移动的速度、点移动的加速度、点移动的角度和点移动的方向等。物理引擎甚至可以模拟复杂的机械装置,如球形关节、轮子、气缸或者铰链等。
渲染引擎可以包括下述管线中的至少一种:光线跟踪渲染器、光栅化渲染管线等。渲染引擎可以根据物理引擎发送的物理模拟结果进行渲染,得到渲染图像,并将渲染图像实时显示在终端设备110上。渲染引擎除了可以根据物理模拟结果进行渲染外,自身也可以做一些简单的渲染,例如对虚拟画面的光影进行渲染、对角色的服饰进行渲染等。
可以理解,图1所示的渲染系统仅仅是作为一种示例,在具体实现中,图1所示的渲染系统还可以包括声音引擎等,其中,声音引擎用于为用户提供声音效果。
然而,随着用户审美水平的不断提高,在终端设备110上安装的渲染应用运行时,需要物理引擎计算的物理模拟结果的数据量越来越大,但终端设备110通常是体积小、计算能力以及存储能力均有限的电子设备,因此,部署于终端设备110上的物理引擎的计算必然会受到终端设备110能力的限制,导致物理引擎无法计算得到大量的物理模拟结果,从而导致渲染应用的运行出现卡顿或者停止等现象。
为了解决上述问题,可以将物理引擎从终端设备110上分离,部署到计算能力和存储能力均较高的远程计算平台(如个人计算机、云服务器)上,使得物理引擎的计算不再受限于终端设备110。
请参见图2,图2为本申请涉及的一种将物理引擎部署到远程计算平台130的渲染系统的结构示意图,如图2所示,该渲染系统包括:终端设备110、网络设备120、以及远程计算平台130。其中,
远程计算平台130可以是个人计算机,也可以是云服务器。图2以远程计算平台130是云服务器为例,远程计算平台130包括多个远程计算节点,每个远程计算节点自下而上包括硬件、虚拟化服务、物理引擎以及渲染服务端应用。
硬件包括计算资源、存储资源以及网络资源。计算资源可以采用异构计算架构,例如,可以采用中央处理器(central processing unit,CPU)+图形处理器(graphics processing unit,GPU)架构,CPU+AI芯片,CPU+GPU+AI芯片架构等等,此处不作具体限定。存储资源可以包括内存等等。这里,计算资源可以被分成多个计算单位资源,存储资源可以被分成多个存储单位资源,网络资源可以被分成多个网络单位资源,因此,远程计算平台130可以按照用户的资源需求以单位资源为基础进行自由组合,从而用户的需要提供资源。例如,计算资源可以被分成5u的计算单位资源,存储资源可以被分成10G的存储单位资源,则计算资源和存储资源的组合可以是,5u+10G,5u+20G,5u+30u,…,10u+10G,10u+20G,10u+30u,…。
虚拟化服务是通过虚拟化技术将多个物理主机的资源构建为统一的资源池,并按照用户的需要灵活地隔离出相互独立的资源以运行用户的应用程序的服务。
虚拟化服务可以包括虚拟机(virtual machine,VM)服务、裸金属服务器(bare metal server,BMS)服务以及容器(container)服务。其中,VM服务可以是通过虚拟化技术在多个物理主机上虚拟出虚拟机(virtual machine,VM)资源池以为用户按需提供VM进行使用的服务。BMS服务是在多个物理主机上虚拟出BMS资源池以为用户按需提供BMS进行使用的服务。容器服务是在多个物理主机上虚拟出容器资源池以为用户按需提供容器进行使用的服务。VM是模拟出来的一台虚拟的计算机,也即逻辑上的一台计算机。BMS是一种可弹性伸缩的高性能计算服务,计算性能与传统物理机无差别,具有安全物理隔离的特点。容器是一种内核虚拟化技术,可以提供轻量级的虚拟化,以达到隔离用户空间、进程和资源的目的。应理解,上述虚拟化服务中的VM服务、BMS服务以及容器服务仅仅是作为具体的事例,在实际应用中,虚拟化服务还可以其他轻量级或者重量级的虚拟化服务,此处不作具体限定。
物理引擎可以用于实现物理模拟算法,如牛顿运动定律、万有引力公式、动量守恒定律等等;渲染服务端应用可以用于调用物理引擎以完成物理模拟得到物理模拟结果。
渲染应用服务端在得到物理模拟结果后,可以通过网络设备120将物理模拟结果发送给终端设备110上的渲染应用客户端,由渲染应用客户端调用渲染引擎根据物理模拟结果进行渲染,得到渲染图像。可以看出,渲染应用客户端相当于用户和渲染应用服务端之间的中介,渲染应用客户端和渲染应用服务端统称为渲染应用。
在一种具体的实现方式中,渲染应用服务端和渲染应用客户端可以是渲染应用提供商提 供的,物理引擎和渲染引擎可以是云服务提供商提供的。举个例子说明,渲染应用开发商将渲染应用服务端安装在云服务提供商提供的远程计算平台130上,渲染应用开发商将渲染应用客户端通过互联网提供给用户下载,并安装在用户的终端设备110上。此外,云服务提供商还提供了物理引擎和渲染引擎,物理引擎可以为渲染应用提供计算能力,渲染引擎可以为渲染应用提供渲染能力。
在另一种具体的实现方式中,渲染应用客户端、渲染应用服务端、物理引擎和渲染引擎可以均是云服务提供商提供的。
在具体实现中,远程计算平台130可以部署在云上,远程计算平台130和终端设备110一般部署在不同的数据中心乃至地理区域内,通过网络设备120进行通信。
网络设备120用于在终端设备110通过任何通信机制/通信标准的通信网络与远程计算平台130之间传输数据。其中,通信网络可以是广域网、局域网、点对点连接等方式,或它们的任意组合。
在图2所示的渲染系统中,若多用户参与同一目标场景,为了能够让每个用户都产生置身其中的真实感,往往不同的用户需要的是从不同的视角生成同一个目标场景的渲染图像。其中,目标场景指渲染应用运行时的虚拟场景,若渲染应用运行时,其包括一个虚拟场景,那么目标场景为该虚拟场景。若渲染应用运行时,其包括一个大的虚拟场景,该大的虚拟场景中包括多个小的子场景,那么目标场景可以为上述大的虚拟场景,还可以为上述大的虚拟场景中包括的多个小的子场景中的一个或多个。
举例来讲,假设渲染应用为可以创建虚拟房间的游戏应用,每个虚拟房间为一个子场景。若用户A对应的虚拟角色和用户B对应的虚拟角色在游戏应用中均处于虚拟房间1,用户C对应的虚拟角色在游戏应用中处于虚拟房间2。那么用户A和用户B参与的目标场景可以为虚拟房间1对应的子场景,也可以为包括了虚拟房间1对应的子场景和虚拟房间2对应的子场景的虚拟场景。
又例如,假设渲染应用为包括不同图层的应用,每个图层为一个子场景,若用户A对应的虚拟角色和用户B对应的虚拟角色在渲染应用中均处于图层1,用户C对应的虚拟角色在渲染应用中处于图层2,那么用户A和用户B参与的目标场景可以为图层1对应的子场景,也可以为包括了图层1对应的子场景和图层2对应的子场景的虚拟场景。
多用户参与同一目标场景,也可以称为多用户观察同一目标场景,其中,用户观察目标场景,表示用户的视点朝向目标场景。
更具体地,目标场景包括光源以及三维模型,光源产生的光线投射在三维模型中。同一个目标场景中不同的用户需要从不同的视角生成渲染图像。如图3所示,假设目标场景如图3中的上面所示,当第一终端设备对应的第一用户从第一视角观察目标场景时,需要生成的渲染图像如图3中的左边所示,当第二终端设备对应的第二用户从第二视角观察目标场景时,需要生成的渲染图像如图3中的右边所示。
第一终端设备和第二终端设备可以分别独立地利用远程计算平台130的资源对目标场景进行渲染,从而得到不同角度的渲染图像,该过程具体为:
如图4所示,第一终端设备通过网络向远程计算平台130发送操作指令,远程计算平台130在接收到操作指令后,根据操作指令生成第一计算任务和第二计算任务,然后调用与第一终端设备对应的第一物理引擎执行第一计算任务获取第一物理模拟结果,在获取到第一物理模拟结果后,将第一物理模拟结果通过网络发送给第一终端设备,由第一终端设备上的第 一渲染引擎根据第一物理模拟结果从第一用户的视角出发对目标场景进行渲染,从而得到与第一用户的视角对应的第一渲染图像;远程计算平台130调用与第二终端设备对应的第二物理引擎执行第二计算任务获取第二物理模拟结果,将第二物理模拟结果通过网络发送给第二终端设备,由第二终端设备上的第二渲染引擎根据第二物理模拟结果从第二用户的视角出发对目标场景进行渲染,从而得到与第二用户的视角对应的第二渲染图像。
其中,操作指令可以影响目标场景中的至少一个三维模型,第一物理引擎根据第一计算任务获取的第一物理模拟结果包括目标场景中被操作指令影响后的三维模型的物理信息,第二物理引擎根据第二计算任务获取的第二物理模拟结果也包括目标场景中被操作指令影响后的三维模型的物理信息,因此,第一物理模拟结果和第二物理模拟结果相同,其中,目标场景中被操作指令影响后的三维模型的物理信息可以包括如下任意一种或多种:被操作指令影响后的三维模型上的点的坐标、点移动的速度、点移动的加速度、点移动的角度和点移动的方向等等。
可以看出,在多用户参与同一目标场景且多用户需要从不同的视角生成同一个目标场景的渲染图像的情况下,上述渲染过程由于远程计算平台130上的第一物理引擎和第二物理引擎没有共享获取的物理模拟结果,导致第一物理引擎和第二物理引擎获取了两份相同的物理模拟结果,造成了远程计算平台130的计算资源的浪费。可以理解,若有大量用户需要从不同的视角生成同一个目标场景的渲染图像,则会耗费大量的计算资源。
为了解决上述问题,本申请提供了一种渲染方法,远程计算平台130无需针对第一终端设备和第二终端设备各部署一个物理引擎,其可以部署一个可供第一终端设备和第二终端设备共享的物理引擎(以下简称为共享物理引擎),在第一终端设备和第二终端设备需要从不同的视角生成同一个目标场景的渲染图像时,远程计算平台120可以调用该共享物理引擎计算得到一份可共享的物理模拟结果,然后共享物理引擎将物理模拟结果分别发送给第一终端设备和第二终端设备,使得第一终端设备上的第一渲染引擎可以根据物理模拟结果进行渲染得到第一渲染图像,以及使得第二终端设备上的第二渲染引擎可以根据物理模拟结果进行渲染,得到第二渲染图像,无需远程计算平台130调用两个物理引擎计算得到两份相同的物理模拟结果,可以有效地节约远程计算平台130的计算资源。
为了便于更清楚地理解本申请实施例,下面结合图5所示的交互示意图对本申请提供的渲染方法进行详细描述,如图5所示,该方法包括:
S101:远程计算平台130上的共享物理引擎获取操作指令。
共享物理引擎获取的操作指令可以是第一终端设备发送的第一操作指令,也可以是第二终端设备发送的第二操作指令,还可以是合并指令,即远程计算平台130在接收到第一终端设备和第二终端设备并发发送的第一操作指令和第二操作指令后,将两个操作指令合并得到的指令。
S102:共享物理引擎根据操作指令获取物理模拟结果。
物理模拟的结果的定义与上文第一物理模拟结果的定义相同,具体可以参考上文中的相关描述。
S103:共享物理引擎将物理模拟结果发送给第一终端设备上的第一渲染引擎,相应地,第一终端设备上的第一渲染引擎接收共享物理引擎发送的物理模拟结果。
S104:共享物理引擎将物理模拟结果发送给第二终端设备上的第二渲染引擎,相应地,第二终端设备上的第二渲染引擎接收共享物理引擎发送的物理模拟结果。
S105:第一终端设备上的第一渲染引擎根据物理模拟结果进行渲染,得到第一渲染图像。
S106:第二终端设备上的第二渲染引擎根据物理模拟结果进行渲染,得到第二渲染图像。
在本申请具体的实施例中,第一终端设备上的第一渲染引擎可以根据第一用户观察目标场景的视角和物理模拟结果进行渲染,得到第一渲染图像,第二终端设备上的第二渲染引擎可以根据第二用户观察目标场景的视角和物理模拟结果进行渲染,得到第二渲染图像。如图6所示,第一用户观察目标场景的视角可以表示为(P 1,θ 1),其中,P 1为第一用户的视点E 1到第一渲染图像的垂直距离,θ 1为该视点E 1到第一渲染图像的中心点O的连线与水平线的夹角。
可以理解,如果图2所示的渲染系统还存在第三终端设备和第四终端设备,第三终端设备和第四终端设备也需要对目标场景进行不同视角的渲染,从而得到第三渲染图像和第四渲染图像,此时,远程计算平台130也只需要进行计算一次物理模拟结果即可,不需要分别进行四次计算得到四份相同的物理模拟结果,能够有效地减少计算资源的浪费。
上述S103至S104的执行可以并行或者以任意顺序先后执行,上述S105至S106的执行可以并行或者以任意顺序先后执行。
在本申请具体的实施例中,第一终端设备上的第一渲染引擎和第二终端设备上的第二渲染引擎可以采用光栅化渲染方法、光线追踪渲染方法或者光栅化渲染方法与光线追踪渲染方法混合的方法进行渲染,得到第一渲染图像和第二渲染图像。
下面以第一终端设备上的第一渲染引擎采用光栅化渲染方法进行渲染为例,对实现渲染的过程进行详细描述。
参见图7,图7是本申请提供的一种光栅化渲染方法的原理示意图,如图7所示,本申请提供的光栅化渲染方法通常包括应用阶段、几何阶段以及光栅化阶段。其中,
应用阶段:主要分三个任务:(1)准备场景数据,如场景中的三维模型的信息,光照信息等;(2)为了提高渲染性能,通常需要做一个粗粒度剔除(culling)工作,把那些在场景中不可见的物体剔除出去,这样这些物体就不需要再移交给几何阶段处理;(3)设置每个三维模型的渲染状态,如使用的材质、纹理等。应用阶段的输出是渲染所需的几何信息,即渲染图元,其中,每个渲染图元里包含了该图元所对应的所有顶点数据,渲染图元可以是点、线、三角形等,这些渲染图元将会传递到几何阶段。
几何阶段:通常包括顶点规格(vertex specification)、顶点着色器(vertex shader)、图元装配、曲面细分技术(tessellation)、几何着色器(geometry shader)、顶点后处理(vertex post-processing)、图元装配(primitive assembly)、光栅化(rasterization)、片段着色器(fragment shader)以及逐像素处理(per-sample operations)等等多个分阶段。
顶点规格通常用于获取顶点数据。其中,所述顶点数据是根据目标场景中的三维模型生成的,所述顶点数据包括顶点的三维坐标,顶点数据还可以包括顶点的法向量以及顶点的颜色等等。顶点可以是三维模型上的点,例如,三维模型中多边形两条边相交的地方、三维模型中两条边的公共端点等等。
顶点着色器通常用于将顶点的三维坐标从模型空间(object space)变换至屏幕空间(screen/image space)。如图8所示,变换的过程可以是:从模型空间变换为世界空间(world space),再从世界空间变换为视景空间(view space),再从视景空间变换为标称投影空间(normalized projection space),再从标称投影空间变换为屏幕空间。其中,视景空间中包括视椎体,视椎体内的空间是从用户的视角可以看到的空间,视椎体外的空间是从用户的视角无法看到的空间。
曲面细分技术用于将三维模型中的顶点的数量大幅增加。如图9所示,假设三维模型包 括构成三角形的三个顶点,在进行曲面细分前,如图9左边所示,三维模型中有三个顶点。在进行曲面细分后,如图9右边所示,三维模型中的顶点数量从三个变成了六个。可以看出,在曲面细分前三维模型显得粗糙而且僵硬,在曲面细分后三维模型显得逼真而且生动。
几何着色器用于将三维模型中的一个或多个顶点转变为完全不同的基本图形(primitive),从而生成更多的顶点。
顶点后处理用于对图元进行裁剪(clipping),即,如果图元部分在视椎体之外,部分在视椎体之内,则需要将该图元在视椎体之外的部分进行裁剪,只保留视椎体之内的部分。
图元装配通常用于将把三维模型中的顶点装配成几何图元,这个阶段将产生一系列的三角形、线段和点。其中,装配好的线段可以包括独立的线段、首尾相连但是最终不闭合的线段、首尾相连最终封口闭合的线段等。装配好的三角形可以包括独立的三角形、线性连续三角形串、扇形连续三角形等。在此阶段,还可以进行剔除,即,从场景中移除看不到的物体。这里,剔除可以包括视椎体剔除(frustum culling)、视口剔除以及遮挡剔除(occlusion culling)。
光栅化阶段包括光栅化、片段着色器(fragment shader)以及逐像素处理(per-sample operation)。
光栅化是把顶点数据转换为片元的过程,具有将图转化为一个个栅格组成的图像的作用,特点是每个元素对应帧缓冲区中的一个像素。因此,光栅化的第一部分工作:决定窗口坐标中的哪些整型栅格区域被图元占用;第二部分工作:分配一个颜色值和一个深度值到各个区域。光栅化过程产生的是片元(fragment),其中,二维图像上每个点都包含了颜色、深度和纹理数据,将该点和相关信息叫做一个片元。
片段着色器用于计算像素最后的颜色输出。
逐像素处理包括深度测试以及透明度处理。可以理解,如果我们先绘制一个距离较近的物体,再绘制距离较远的物体,则距离远的物体因为后绘制,会把距离近的物体覆盖掉,这样的效果并不是我们所希望的,而深度测试其实就是记录像素点在3D世界中距离摄像机的距离(绘制坐标),深度缓存中存储着每个象素点(绘制在屏幕上的)的深度值(Z值)越大,则离摄像机越远,因此,有了深度缓存以后,绘制物体的顺序就不那么重要了,都能按照远近(Z值)正常显示。
上述方案中,是以光栅化渲染方法的处理顺序为:顶点着色器、曲面细分技术、几何着色器、顶点后处理(包括裁剪)、图元装配(包括剔除)、光栅化、片段着色器以及逐像素处理为例进行介绍的,在实际应用中,光栅化渲染方法的处理顺序可以发生变化,此处不作具体限定。
第二终端设备上的第二渲染引擎采用光栅化渲染方法进行渲染的原理与上述第一终端设备上的第一渲染引擎采用光栅化渲染方法进行渲染的原理相同,此处不再展开赘述。
在考虑如何解决图1所示的渲染系统存在的问题时,将渲染引擎也从终端设备110上分离,部署到远程计算平台130上,可以进一步节省终端设备110的资源。
请参见图10,图10为本申请提供的一种将物理引擎和渲染引擎都部署到远程计算平台130的渲染系统的结构示意图,如图10所示,该渲染系统包括:终端设备110、网络设备120、以及远程计算平台130,远程计算平台130上包括物理引擎以及渲染引擎。
在图10所示的渲染系统中,用户可以通过渲染应用客户端输入操作指令,渲染应用客户端通过网络将操作指令发送给远程计算平台130上的渲染应用服务端,由渲染应用服务端调用物理引擎根据操作指令计算得到物理模拟结果后,再由渲染应用服务端调用渲染引擎根据物理模拟结果进行渲染得到渲染图像,然后将渲染图像通过网络发送至终端设备110呈现给 用户。
在图10所示的渲染系统中,若多用户参与同一目标场景,为了能够让每个用户都产生置身其中的真实感,往往不同的用户需要的也是从不同的角度生成同一个目标场景的渲染图像。
第一终端设备和第二终端设备可以分别独立地利用远程计算平台130的资源对目标场景进行渲染,从而得到不同角度的渲染图像,该过程具体为:
如图11所示,第一终端设备通过网络向远程计算平台130发送操作指令,远程计算平台130在接收到操作指令后,根据操作指令生成第一计算任务和第二计算任务,然后调用部署于远程计算平台130上的与第一终端设备对应的第一物理引擎,执行第一计算任务获取第一物理模拟结果,在获取到第一物理模拟结果后,调用部署于远程计算平台130上的与第一终端设备对应的第一渲染引擎,根据第一物理模拟结果从第一用户的视角出发对目标场景进行渲染,从而得到与第一用户的视角对应的第一渲染图像;远程计算平台130调用部署于远程计算平台130上的与第二终端设备对应的第二物理引擎,执行第二计算任务获取第二物理模拟结果,在获取到第二物理模拟结果后,调用部署于远程计算平台130上的与第二终端设备对应的第二渲染引擎,根据第二物理模拟结果从第二用户的视角出发对目标场景进行渲染,从而得到与第二用户的视角对应的第二渲染图像。
可以看出,上述渲染过程中,由于远程计算平台130上的第一物理引擎和第二物理引擎之间没有共享获取的物理模拟结果,导致第一物理引擎和第二物理引擎计算得到了两份相同的物理模拟结果,也存在浪费了远程计算平台130的计算资源的问题。
为了解决上述问题,本申请提供另一种渲染方法,远程计算平台130无需针对第一终端设备和第二终端设备各部署一个物理引擎,其可以部署一个可供第一终端设备和第二终端设备共享的共享物理引擎,在第一终端设备和第二终端设备需要从不同的视角生成同一个目标场景的渲染图像时,远程计算平台120可以调用该共享物理引擎计算得到一份可共享的物理模拟结果,然后共享物理引擎将该物理模拟结果分别发送给与第一终端设备对应的部署于远程计算平台130的第一渲染引擎和与第二终端设备对应的部署于远程计算平台130的第二渲染引擎,使得部署于远程计算平台130上的第一渲染引擎可以根据第一用户观察目标场景的视角以及物理模拟结果进行渲染,得到第一渲染图像并发送给第一终端设备,以及使得部署于远程计算平台130上的第二渲染引擎可以根据第二用户观察目标场景的视角以及物理模拟结果进行渲染,得到第二渲染图像并发送给第二终端设备,无需远程计算平台130调用两个物理引擎计算得到两份相同的物理模拟结果,可以有效地节约远程计算设备平台130的计算资源。
为了便于更清楚地理解本申请实施例,下面结合图12所示的交互示意图对本申请提供的渲染方法进行详细描述,如图12所示,该方法包括:
S201:远程计算平台130上的共享物理引擎获取操作指令。
S202:共享物理引擎根据操作指令获取物理模拟结果。
S203:共享物理引擎将物理模拟结果发送给部署于远程计算平台130上的第一渲染引擎,相应地,远程计算平台130上的第一渲染引擎接收共享物理引擎发送的物理模拟结果。
S204:共享物理引擎将物理模拟结果发送给部署于远程计算平台130上的第二渲染引擎,相应地,远程计算平台130上的第二渲染引擎接收共享物理引擎发送的物理模拟结果。
S205:远程计算平台130上的第一渲染引擎根据物理模拟结果进行渲染,得到第一渲染图像。
S206:远程计算平台130上的第二渲染引擎根据物理模拟结果进行渲染,得到第二渲染 图像。
S207:远程计算平台130上的第一渲染引擎将第一渲染图像发送给第一终端设备。
S208:远程计算平台130上的第二渲染引擎将第二渲染图像发送给第二终端设备。
在本申请具体的实施例中,远程计算平台130上的第一渲染引擎可以根据第一用户观察目标场景的视角和物理模拟结果进行渲染,得到第一渲染图像,远程计算平台130上的第二渲染引擎可以根据第二用户观察目标场景的视角和物理模拟结果进行渲染,得到第二渲染图像。因此,在远程计算平台130上的第一渲染引擎进行渲染之前,远程计算平台130上的第一渲染引擎可以先获取第一用户观察目标场景的视角,在远程计算平台130上的第二渲染引擎进行渲染之前,远程计算平台130上的第二渲染引擎可以先获取第二用户观察目标场景的视角。
在本申请具体的实施例中,远程计算平台130上的第一渲染引擎获取第一用户观察目标场景的视角的方式可以为:
可能的实现方式一、操作指令是由第一终端设备发送的第一操作指令,或者是由第一终端设备发送的第一操作指令和第二终端设备发送的第二操作指令合并生成的指令,该操作指令包括第一用户观察目标场景的视角,因此,远程计算平台130在获取到操作指令后,将操作指令中包括的第一用户观察目标场景的视角发送给远程计算平台130上的第一渲染引擎。
可能的实现方式二、操作指令是由第一终端设备发送的,或者是由第一终端设备发送的第一操作指令和第二终端设备发送的第二操作指令合并生成的指令,该操作指令包括第一用户标识,在远程计算平台130中保存有多个用户标识、多个用户观察目标场景的视角以及多个用户标识与多个用户观察目标场景的视角之间的对应关系的情况下,远程计算平台130在接收到操作指令后,可以根据操作指令中包括的第一用户标识从多个用户观察目标场景的视角中查找到与第一用户标识存在对应关系的视角,该视角即为第一用户观察目标场景的视角。其中,远程计算平台130保存的第一用户观察目标场景的视角可以为第一用户上一次向远程计算平台130发送的第一操作指令携带的。
可能的实现方式三、操作指令是由第二终端设备发送的第二操作指令,该操作指令包括目标场景的标识或者指示目标场景,远程计算平台130在获取到操作指令后,可以根据操作指令从多个虚拟场景中定位到目标场景,然后确定观察目标场景的用户有哪些,在确定观察目标场景的用户包括第一用户的情况下,从自身已经保存的多个用户观察目标场景的视角中查找到第一用户观察目标场景的视角,然后将查找到的第一用户观察目标场景的视角发送给远程计算平台130上的第一渲染引擎。
远程计算平台130上的第二渲染引擎获取第二用户观察目标场景的视角的方式与上述远程计算平台130上的第一渲染引擎获取第一用户观察目标场景的视角的方式相类似,此处不再展开赘述。
上述S203至S204的执行可以并行或者以任意顺序先后执行,上述S205至S206的执行可以并行或者以任意顺序先后执行,上述S207至S208的执行可以并行或者以任意顺序先后执行。
上述实施例中,物理模拟结果的定义与图5所示实施例中的物理模拟结果的定义对应相同,远程计算平台130上的第一渲染引擎根据物理模拟结果进行渲染得到第一渲染图像的过程、远程计算平台130上的第二渲染引擎根据物理模拟结果进行渲染得到第二渲染图像的过程均与图5所示实施例中的第一终端设备上的第一渲染引擎根据物理模拟结果进行渲染得到第一渲染图像的过程相类似,具体请参见图5所示实施例中的相关内容,此处不再展开描述。
本申请还提供一种渲染方法,在该渲染方法中,远程计算平台130不仅无需针对第一终端设备和第二终端设备各部署一个物理引擎,还无需针对第一终端设备和第二终端设备各部署一个渲染引擎,其可以部署一个可供第一终端设备和第二终端设备共享的共享物理引擎,以及部署一个可供第一终端设备和第二终端设备共享的渲染引擎(以下简称为共享渲染引擎),在第一终端设备和第二终端设备需要从不同的角度生成同一个目标场景的渲染图像时,远程计算平台120可以调用该共享物理引擎计算得到一份可共享的物理模拟结果,然后共享物理引擎将该物理模拟结果发送给共享渲染引擎,共享渲染引擎可以根据第一用户观察目标场景的视角以及物理模拟结果进行渲染,得到第一渲染图像并发送给第一终端设备,以及根据第二用户观察目标场景的视角以及物理模拟结果进行渲染,得到第二渲染图像并发送给第二终端设备。可以看出,该方法不仅无需远程计算平台130调用两个物理引擎计算得到两份相同的物理模拟结果,达到节约远程计算设备平台130的计算资源的目标,还无需远程计算平台130调用两个渲染引擎进行渲染得到第一渲染图像和第二渲染图像,简化远程计算平台130的部署。
为了便于更清楚地理解本申请实施例,下面结合图13所示的交互示意图对本申请提供的渲染方法进行详细描述,如图13所示,该方法包括:
S301:远程计算平台130上的共享物理引擎获取操作指令。
S302:共享物理引擎根据操作指令获取物理模拟结果。
S303:共享物理引擎将物理模拟结果发送给部署于远程计算平台130上的共享渲染引擎,相应地,远程计算平台130上的共享渲染引擎接收共享物理引擎发送的物理模拟结果。
S304:共享渲染引擎根据物理模拟结果进行渲染,得到第一渲染图像和第二渲染图像。
S305:共享渲染引擎将第一渲染图像发送给第一终端设备,相应地,第一终端设备接收共享渲染引擎发送的第一渲染图像。
S306:共享渲染引擎将第二渲染图像发送给第二终端设备,相应地,第一终端设备接收共享渲染引擎发送的第二渲染图像。
在本申请具体的实施例中,共享渲染引擎可以根据第一用户观察目标场景的视角和物理模拟结果进行渲染,得到第一渲染图像,共享渲染引擎可以根据第二用户观察目标场景的视角和物理模拟结果进行渲染,得到第二渲染图像。因此,在共享渲染引擎进行渲染之前,共享渲染引擎可以先获取第一用户观察目标场景的视角以及第二用户观察目标场景的视角。
在一种可能的实现方式中,共享渲染引擎可以启动第一进程获取第一用户观察目标场景的视角,以及启动第二进程获取第二用户观察目标场景的视角。
共享渲染引擎启动第一进程获取第一用户观察目标场景的视角的方式和启动第二进程获取第二用户观察目标场景的视角的方式与图12所示实施例中的描述的远程计算平台130上的第一渲染引擎获取第一用户观察目标场景的视角的方式相类似,具体可以参考图12所示实施例中的相关描述,此处不再展开赘述。
上述S305至S306的执行可以并行或者以任意顺序先后执行。
上述实施例中,物理模拟结果的定义与图5所示实施例中的物理模拟结果的定义对应相同,共享渲染引擎根据物理模拟结果进行渲染得到第一渲染图像和第二渲染图像的过程均与图5所示实施例中的第一终端设备上的第一渲染引擎根据物理模拟结果进行渲染得到第一渲染图像的过程相类似,具体请参见图5所示实施例中的相关内容,此处不再展开描述。
上文详细阐述了本申请提供的渲染方法,基于相同的发明构思,下面继续阐述本申请提供的相关设备及系统。
参见图14,图14是本申请提供的一种渲染装置200的结构示意图,该渲染装置200可以应用于上文所述的远程计算平台130,具体应用于上文所述的部署于远程计算平台130上的共享物理引擎。如图14所示,渲染装置200包括:获取模块210和发送模块220,其中,
获取模块210,用于根据操作指令获取物理模拟结果,所述操作指令影响目标场景中的至少一个三维模型,所述物理模拟结果包括所述至少一个三维模型被所述操作指令影响后的物理信息;
发送模块220,用于将所述物理模拟结果发送给第一渲染引擎和第二渲染引擎,使得所述第一渲染引擎根据所述物理模拟结果进行渲染,得到第一渲染图像,以及使得所述第二渲染引擎根据所述物理模拟结果进行渲染,得到第二渲染图像。
在一种可能的实现方式中,所述第一渲染引擎对应的虚拟角色和所述第二渲染引擎对应的虚拟角色都处于所述目标场景。
在一种可能的实现方式中,所述物理信息包括如下任意一种或多种:所述至少一个三维模型上的点的坐标、所述点移动的速度、所述点移动的加速度、所述点移动的角度、所述点移动的方向。
在一种可能的实现方式中,所述第一渲染引擎和所述第二渲染引擎部署于所述远程计算平台130,或者,所述第一渲染引擎部署于第一终端设备,所述第二渲染引擎部署于第二终端设备。
参见图15,图15是本申请提供的另一种渲染装置300的结构示意图,该渲染装置300可以应用于上文所述的远程计算平台300,具体应用于上文所述的部署于远程计算平台130上的共享渲染引擎。如图15所示,渲染装置300包括:接收模块310和渲染模块320,其中,
接收模块310,用于接收共享物理引擎发送的物理模拟结果,其中,所述物理模拟结果为所述共享物理引擎根据操作指令获取,所述操作指令影响目标场景中的至少一个三维模型,所述物理模拟结果包括所述至少一个三维模型被所述操作指令影响后的物理信息;
渲染模块320,用于根据第一用户观察所述目标场景的视角和所述物理模拟结果进行渲染,得到第一渲染图像;
渲染模块320,还用于根据第二用户观察所述目标场景的视角和所述物理模拟结果进行渲染,得到第二渲染图像。
具体地,上述渲染装置200以及渲染装置300执行各种操作的具体实现,可参照上述渲染方法实施例中相关内容中的描述,为了说明书的简洁,这里不再赘述。
应当理解,渲染装置200以及渲染装置300仅为本申请提供的一个例子,并且,渲染装置200可具有比图14示出的部件更多或更少的部件,可以组合两个或更多个部件,或者可具有部件的不同配置实现,渲染装置300可具有比图15示出的部件更多或更少的部件,可以组合两个或更多个部件,或者可具有部件的不同配置实现。
参见图16,本申请还提供一种渲染引擎系统400,所述渲染引擎系统包括:第一渲染引擎410和第二渲染引擎420,其中,
所述第一渲染引擎410和所述第二渲染引擎420,用于分别接收共享物理引擎发送的物理模拟结果,其中,所述物理模拟结果为所述共享物理引擎根据操作指令获取,所述操作指令影响目标场景中的至少一个三维模型,所述物理模拟结果包括所述至少一个三维模型被所述操作指令影响后的物理信息;
所述第一渲染引擎410和所述第二渲染引擎420,用于分别根据所述物理模拟结果进行渲染,得到第一渲染图像和第二渲染图像。
在一种可能的实现方式中,所述第一渲染引擎410和所述第二渲染引擎420部署于所述远程计算平台130,或者,所述第一渲染引擎410部署于第一终端设备,所述第二渲染引擎420部署于第二终端设备。
具体地,上述渲染引擎系统400执行各种操作的具体实现,可参照上述渲染方法实施例中相关内容中的描述,为了说明书的简洁,这里不再赘述。
本申请还提供一种计算设备集群50,所述计算设备集群50可以用于部署图14所示的渲染装置200,以执行图5所示渲染方法中由共享物理引擎所执行的步骤,所述计算设备集群50还可以用于部署图15所示的渲染装置300,以执行图13所示的渲染方法中由共享渲染引擎所执行的步骤。如图17所示,该计算设备集群50包括至少一个计算设备500。
具体地,在所述计算设备集群50仅包括一个计算设备500的情况下,可以在该一个计算设备500中部署图14所示渲染装置200中的全部模块:获取模块210和发送模块220,和/或,部署图15所示渲染装置300中的全部模块:接收模块310和渲染模块320。
在所述计算设备集群50包括多个计算设备500的情况下,多个计算设备500中的每个计算设备500可以用于部署图14所示渲染装置200和/或图15所示渲染装置300中的部分模块,或者,多个计算设备500中的两个或者两个以上的计算设备500共同用于部署图14所示渲染装置200中的一个或者多个模块和/或图15所示渲染装置300中的一个或者多个模块。
举例来讲,假设多个计算设备500包括计算设备500A和计算设备500B,则计算设备500A可以用于部署获取模块210和发送模块220,计算设备500B可以用于部署接收模块310和渲染模块320,或者,计算设备500A上部署获取模块210和渲染模块320,计算设备500B上部署获取模块210、发送模块220、接收模块310和渲染模块320;假设多个计算设备500包括计算设备500A、500B、500C和500D,则计算设备500A可以用于部署获取模块210,计算设备500B可以用于部署发送模块220,计算设备500C可以用于部署接收模块310,计算设备500D可以用于部署渲染模块320。
本申请提供的计算设备集群50还可以用于部署图16所示的渲染引擎系统400,以执行图12所示的渲染方法中由第一渲染引擎410和第二渲染引擎420所执行的步骤。具体地,在所述计算设备集群仅包括一个计算设备500的情况下,可以在该一个计算设备500中部署图16所示渲染引擎系统400中的全部模块:第一渲染引擎410和第二渲染引擎420。在所述计算设备集群50包括多个计算设备500的情况下,多个计算设备500中的每个计算设备500可以用于部署图16所示渲染引擎系统400中的一个或者多个模块,或者多个设备500中的两个或者两个以上的计算设备500共同用于部署图16所示渲染引擎系统400中的一个或者多个模块。
在具体实现中,所述计算设备集群50中包括的至少一个计算设备500可以全部是终端设备,也可以全部是云服务器,还可以部分是云服务器部分是终端设备,此处不作具体限定。
更具体地,所述计算设备集群50中的每个计算设备500可以包括处理器510、存储器520以及通信接口530等,所述计算设备集群50中的一个或者多个计算设备500中的存储器520可以存有相同的用于执行本申请提供的渲染方法的代码(也可以称为指令或者程序指令等),处理器510可以从存储器520中读取代码,并执行代码以实现本申请提供的渲染方法,通信接口530可以用于实现每个计算设备500与其他设备之间的通信。
在一些可能的实现方式中,计算设备集群50中的每个计算设备500也可以通过网络与其他设备连接进行通信。其中,所述网络可以是广域网或局域网等等。
下面以渲染装置200的全部模块部署于一个计算设备500上为例,结合图18对本申请提 供的计算设备500进行详细描述。
参见图18,计算设备500包括:处理器510、存储器520以及通信接口530,其中,处理器510、存储器520以及通信接口530之间可以通过总线540相互连接。其中,
处理器510可以读取存储器520中存储的代码,与通信接口530配合执行本申请上述实施例中由渲染装置200执行的渲染方法的部分或者全部步骤。
处理器510可以有多种具体实现形式,例如处理器510可以为中央处理器(central processing unit,CPU)或图形处理器(graphics processing unit,GPU),处理器510还可以是单核处理器或多核处理器。处理器510可以由CPU和硬件芯片的组合。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。处理器510也可以单独采用内置处理逻辑的逻辑器件来实现,例如FPGA或数字信号处理器(digital signal processing,DSP)等。
存储器520可以存储有代码以及数据。其中,代码包括:获取模块210的代码和发送模块220的代码等,数据包括:操作指令、物理模拟结果、第一渲染图像和第二渲染图像等等。
在实际应用中,存储器520可以是非易失性存储器,例如,只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。存储器520也可以是易失性存储器,易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。
通信接口530可以为有线接口(例如以太网接口)或无线接口(例如蜂窝网络接口或使用无线局域网接口),用于与其他计算节点或装置进行通信。当通信接口530为有线接口时,通信接口530可以采用传输控制协议/网际协议(transmission control protocol/internet protocol,TCP/IP)之上的协议族,例如,远程函数调用(remote function call,RFC)协议、简单对象访问协议(simple object access protocol,SOAP)协议、简单网络管理协议(simple network management protocol,SNMP)协议、公共对象请求代理体系结构(common object request broker architecture,CORBA)协议以及分布式协议等等。
总线540可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。所述总线540可以分为地址总线、数据总线、控制总线等。为便于表示,图18中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
上述计算设备500用于执行上述渲染方法实施例中的方法,与上述方法实施例属于同一构思,其具体实现过程详见上述方法实施例,这里不再赘述。
应当理解,计算设备500仅为本申请实施例提供的一个例子,并且,计算设备500可具有比图18示出的部件更多或更少的部件,可以组合两个或更多个部件,或者可具有部件的不同配置实现。
本申请还提供一种远程计算平台,所述远程计算平台可以包括图14所示的渲染装置200和图15所示的渲染装置300。
本申请还提供一种渲染系统,所述渲染系统可以包括图14所示的渲染装置200和图16所示的渲染引擎系统400。
本申请还提供一种非瞬态计算机可读存储介质,非瞬态计算机可读存储介质中存储有代 码,当其在处理器上运行时,可以实现上述实施例中记载的渲染方法的部分或者全部步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
在上述实施例中,可以全部或部分地通过软件、硬件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品可以包含代码。当计算机程序产品被计算机读取并执行时,可以实现上述方法实施例中记载的渲染方法的部分或者全部步骤。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质、或者半导体介质等。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并或删减;本申请实施例装置中的单元可以根据实际需要进行划分、合并或删减。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (14)

  1. 一种渲染方法,其特征在于,应用于远程计算平台,所述远程计算平台包括物理引擎,所述方法包括:
    所述物理引擎根据操作指令获取物理模拟结果,所述操作指令影响目标场景中的至少一个三维模型,所述物理模拟结果包括所述至少一个三维模型被所述操作指令影响后的物理信息;
    所述物理引擎将所述物理模拟结果发送给第一渲染引擎和第二渲染引擎,使得所述第一渲染引擎根据所述物理模拟结果进行渲染,得到第一渲染图像,以及使得所述第二渲染引擎根据所述物理模拟结果进行渲染,得到第二渲染图像。
  2. 根据权利要求1所述的方法,其特征在于,所述第一渲染引擎对应的虚拟角色和所述第二渲染引擎对应的虚拟角色都处于所述目标场景。
  3. 根据权利要求1或2所述的方法,其特征在于,所述物理信息包括如下任意一种或多种:
    所述至少一个三维模型上的点的坐标、所述点移动的速度、所述点移动的加速度、所述点移动的角度、所述点移动的方向。
  4. 根据权利要求1至3任一项所述的方法,其特征在于,所述第一渲染引擎和所述第二渲染引擎部署于所述远程计算平台,或者,所述第一渲染引擎部署于第一终端设备,所述第二渲染引擎部署于第二终端设备。
  5. 一种渲染方法,其特征在于,应用于渲染引擎系统,所述渲染引擎系统包括第一渲染引擎和第二渲染引擎,所述方法包括:
    所述第一渲染引擎和所述第二渲染引擎分别接收物理引擎发送的物理模拟结果,其中,所述物理模拟结果为所述物理引擎根据操作指令获取,所述操作指令影响目标场景中的至少一个三维模型,所述物理模拟结果包括所述至少一个三维模型被所述操作指令影响后的物理信息;
    所述第一渲染引擎和所述第二渲染引擎分别根据所述物理模拟结果进行渲染,得到第一渲染图像和第二渲染图像。
  6. 根据权利要求5所述的方法,其特征在于,所述第一渲染引擎和所述第二渲染引擎分别根据所述物理模拟结果进行渲染,得到第一渲染图像和第二渲染图像,包括:
    所述第一渲染引擎获取第一用户观察所述目标场景的视角,根据所述第一用户观察所述目标场景的视角和所述物理模拟结果进行渲染,得到所述第一渲染图像;
    所述第二渲染引擎获取第二用户观察所述目标场景的视角,根据所述第二用户观察所述目标场景的视角和所述物理模拟结果进行渲染,得到所述第二渲染图像。
  7. 一种渲染方法,其特征在于,应用于远程计算平台,所述远程计算平台包括渲染引擎,所述方法包括:
    所述渲染引擎接收物理引擎发送的物理模拟结果,其中,所述物理模拟结果为所述物理引擎根据操作指令获取,所述操作指令影响目标场景中的至少一个三维模型,所述物理模拟结果包括所述至少一个三维模型被所述操作指令影响后的物理信息;
    所述渲染引擎根据第一用户观察所述目标场景的视角和所述物理模拟结果进行渲染,得到第一渲染图像;
    所述渲染引擎根据第二用户观察所述目标场景的视角和所述物理模拟结果进行渲染,得到第二渲染图像。
  8. 一种渲染装置,其特征在于,应用于远程计算平台,具体应用于所述远程计算平台包括的物理引擎,所述装置包括:
    获取模块,用于根据操作指令获取物理模拟结果,所述操作指令影响目标场景中的至少一个三维模型,所述物理模拟结果包括所述至少一个三维模型被所述操作指令影响后的物理信息;
    发送模块,用于将所述物理模拟结果发送给第一渲染引擎和第二渲染引擎,使得所述第一渲染引擎根据所述物理模拟结果进行渲染,得到第一渲染图像,以及使得所述第二渲染引擎根据所述物理模拟结果进行渲染,得到第二渲染图像。
  9. 一种渲染引擎系统,其特征在于,所述渲染引擎系统包括:第一渲染引擎和第二渲染引擎,
    所述第一渲染引擎和所述第二渲染引擎,用于分别接收物理引擎发送的物理模拟结果,其中,所述物理模拟结果为所述物理引擎根据操作指令获取,所述操作指令影响目标场景中的至少一个三维模型,所述物理模拟结果包括所述至少一个三维模型被所述操作指令影响后的物理信息;
    所述第一渲染引擎和所述第二渲染引擎,用于分别根据所述物理模拟结果进行渲染,得到第一渲染图像和第二渲染图像。
  10. 一种渲染装置,其特征在于,应用于远程计算平台,具体应用于所述远程计算平台包括的渲染引擎,所述装置包括:
    接收模块,用于接收物理引擎发送的物理模拟结果,其中,所述物理模拟结果为所述物理引擎根据操作指令获取,所述操作指令影响目标场景中的至少一个三维模型,所述物理模拟结果包括所述至少一个三维模型被所述操作指令影响后的物理信息;
    渲染模块,用于根据第一用户观察所述目标场景的视角和所述物理模拟结果进行渲染,得到第一渲染图像;
    渲染模块,用于根据第二用户观察所述目标场景的视角和所述物理模拟结果进行渲染,得到第二渲染图像。
  11. 一种渲染系统,其特征在于,所述渲染系统包括如权利要求8所述的渲染装置和如权利要求9所述的渲染引擎系统。
  12. 一种远程计算平台,其特征在于,所述远程计算平台包括如权利要求8所述的渲染装置和如权利要求10所述的渲染装置。
  13. 一种非瞬态计算机可读存储介质,其特征在于,所述非瞬态计算机可读存储介质存储有指令,所述指令用于实现如权利要求1至7任一项所述的方法。
  14. 一种计算设备集群,其特征在于,包括至少一个计算设备,每个计算设备包括处理器和存储器;所述至少一个计算设备的处理器用于执行所述至少一个计算设备的存储器中存储的指令,以使得所述计算设备集群执行如权利要求1至7中任一项所述的方法。
PCT/CN2021/136452 2021-05-29 2021-12-08 渲染方法、设备以及系统 Ceased WO2022252547A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP21943899.1A EP4325423A4 (en) 2021-05-29 2021-12-08 Rendering method, device and system
US18/521,304 US20240096007A1 (en) 2021-05-29 2023-11-28 Rendering Method, Device, and System

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202110595991.2 2021-05-29
CN202110595991.2A CN115409680A (zh) 2021-05-29 2021-05-29 渲染方法、设备以及系统

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/521,304 Continuation US20240096007A1 (en) 2021-05-29 2023-11-28 Rendering Method, Device, and System

Publications (1)

Publication Number Publication Date
WO2022252547A1 true WO2022252547A1 (zh) 2022-12-08

Family

ID=84155624

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/136452 Ceased WO2022252547A1 (zh) 2021-05-29 2021-12-08 渲染方法、设备以及系统

Country Status (4)

Country Link
US (1) US20240096007A1 (zh)
EP (1) EP4325423A4 (zh)
CN (1) CN115409680A (zh)
WO (1) WO2022252547A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116012557A (zh) * 2023-01-17 2023-04-25 南方电网数字平台科技(广东)有限公司 基于三维系统的天气自然景象数据对接系统及对接方法
CN117437340A (zh) * 2023-11-13 2024-01-23 北京石境科技有限公司 一种工厂设备模型批量渲染方法和系统

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115604506B (zh) * 2022-12-01 2023-02-17 北京数原数字化城市研究中心 一种云渲染数据同步处理方法、装置及设备
CN116095134A (zh) * 2023-01-03 2023-05-09 深圳华为云计算技术有限公司 物理仿真和渲染方法、装置及存储介质
CN117036566B (zh) * 2023-08-28 2024-09-17 北京趋动智能科技有限公司 远程图像渲染方法、系统、电子设备及可读存储介质
CN117911629B (zh) * 2024-03-15 2024-07-05 深圳市七彩虹禹贡科技发展有限公司 一种虚拟屏幕的显示方法和显示系统
CN119295695B (zh) * 2024-12-10 2025-04-04 北京智汇云舟科技有限公司 一种基于三维地理编码的视口剔除方法和系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102360511A (zh) * 2011-10-26 2012-02-22 德讯科技股份有限公司 一种物理引擎在3d空间对象展现中的应用方法
CN105376244A (zh) * 2015-11-27 2016-03-02 深圳市望尘科技有限公司 一种以基于云端服务器进行人工智能和物理仿真计算的网络游戏实现方法
CN105631925A (zh) * 2015-12-29 2016-06-01 北京航天测控技术有限公司 基于osg三维渲染引擎预处理的三维场景生成方法及装置
US20190129715A1 (en) * 2016-07-18 2019-05-02 Tencent Technology (Shenzhen) Company Limited Method, apparatus and system for generating augmented reality module and storage medium
CN112164132A (zh) * 2020-10-17 2021-01-01 蔡娟 基于大数据和云计算的游戏兼容处理方法及云端计算中心

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10688399B2 (en) * 2018-02-21 2020-06-23 Roblox Corporation Group gameplay with users in proximity using a gaming platform
GB2583511B (en) * 2019-05-02 2024-01-10 Sony Interactive Entertainment Inc Method of and system for controlling the rendering of a video game instance

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102360511A (zh) * 2011-10-26 2012-02-22 德讯科技股份有限公司 一种物理引擎在3d空间对象展现中的应用方法
CN105376244A (zh) * 2015-11-27 2016-03-02 深圳市望尘科技有限公司 一种以基于云端服务器进行人工智能和物理仿真计算的网络游戏实现方法
CN105631925A (zh) * 2015-12-29 2016-06-01 北京航天测控技术有限公司 基于osg三维渲染引擎预处理的三维场景生成方法及装置
US20190129715A1 (en) * 2016-07-18 2019-05-02 Tencent Technology (Shenzhen) Company Limited Method, apparatus and system for generating augmented reality module and storage medium
CN112164132A (zh) * 2020-10-17 2021-01-01 蔡娟 基于大数据和云计算的游戏兼容处理方法及云端计算中心

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP4325423A4

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116012557A (zh) * 2023-01-17 2023-04-25 南方电网数字平台科技(广东)有限公司 基于三维系统的天气自然景象数据对接系统及对接方法
CN116012557B (zh) * 2023-01-17 2023-12-29 南方电网数字平台科技(广东)有限公司 基于三维系统的天气自然景象数据对接系统及对接方法
CN117437340A (zh) * 2023-11-13 2024-01-23 北京石境科技有限公司 一种工厂设备模型批量渲染方法和系统
CN117437340B (zh) * 2023-11-13 2024-07-16 北京石境科技有限公司 一种工厂设备模型批量渲染方法和系统

Also Published As

Publication number Publication date
EP4325423A4 (en) 2024-10-23
CN115409680A (zh) 2022-11-29
US20240096007A1 (en) 2024-03-21
EP4325423A1 (en) 2024-02-21

Similar Documents

Publication Publication Date Title
US20240096007A1 (en) Rendering Method, Device, and System
US7830388B1 (en) Methods and apparatus of sharing graphics data of multiple instances of interactive application
CN108619720B (zh) 动画的播放方法和装置、存储介质、电子装置
TWI543108B (zh) 群眾外包式(crowd-sourced)視訊顯像系統
US8463980B2 (en) Shared memory between child and parent partitions
US20110102443A1 (en) Virtualized GPU in a Virtual Machine Environment
US8654134B2 (en) Command remoting
CN112102463B (zh) 通过位置虚拟化技术操作3d应用的系统和方法
CN112316433B (zh) 游戏画面渲染方法、装置、服务器和存储介质
US20100283795A1 (en) Non-real-time enhanced image snapshot in a virtual world system
JP7245880B2 (ja) 非同期動作による加速レイトレーシング及び光線変換のためのシステム及び方法
CN119379877A (zh) 用于由计算系统执行游戏的方法
CN116958390A (zh) 一种图像渲染方法、装置、设备、存储介质及程序产品
WO2023142756A1 (zh) 直播互动方法、装置以及系统
KR20120058867A (ko) 이기종 멀티코어 환경에서의 데이터 처리 방법 및 장치
WO2023160041A1 (zh) 图像渲染方法、装置、计算机设备、计算机可读存储介质以及计算机程序产品
JP2023538127A (ja) 加速レイトレーシングのシステムおよび方法
CN114429513A (zh) 可见元素的确定方法和装置、存储介质及电子设备
CN108876925B (zh) 虚拟现实场景处理方法和装置
US12456247B2 (en) Rendering method, device, and rendering system
WO2023029424A1 (zh) 一种对应用进行渲染的方法及相关装置
CN115845363A (zh) 渲染方法、装置和电子设备
CN114327790A (zh) 基于Linux系统Android容器的渲染方法
CN115512019A (zh) 渲染方法、装置以及系统
HK40097487A (zh) 渲染方法、设备以及系统

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21943899

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2021943899

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2021943899

Country of ref document: EP

Effective date: 20231114

NENP Non-entry into the national phase

Ref country code: DE