WO2021249358A1 - 渲染方法、设备以及系统 - Google Patents
渲染方法、设备以及系统 Download PDFInfo
- Publication number
- WO2021249358A1 WO2021249358A1 PCT/CN2021/098742 CN2021098742W WO2021249358A1 WO 2021249358 A1 WO2021249358 A1 WO 2021249358A1 CN 2021098742 W CN2021098742 W CN 2021098742W WO 2021249358 A1 WO2021249358 A1 WO 2021249358A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- rendering
- rendered image
- image
- rendering application
- quality parameter
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
Definitions
- This application relates to image rendering, and in particular to a rendering method, device, and system.
- Rendering refers to the process of using software to generate images from a model.
- the model is a description of a three-dimensional object in a strictly defined language or data structure, which includes geometry, viewpoint, texture, and lighting information.
- the image is a digital image or a bitmap image.
- the term rendering is similar to "artist's rendering of a scene”. In addition, rendering is also used to describe "the process of calculating effects in video editing files to generate the final video output.”
- Rendering can include pre-rendering (pre-rendering/offline rendering) or real-time rendering (real-time rendering/online rendering). Among them, pre-rendering is usually used for movies, advertisements, and other real scene simulations with predetermined scripts; real-time rendering is usually used For flight training, 3D games and interactive architectural demonstrations, real-world simulations without predetermined scripts.
- the present application provides a rendering method, device, and system, which can effectively reduce the demand for communication bandwidth for remote image rendering.
- a rendering system in the first aspect, includes a rendering application server, a rendering application client, and a rendering engine.
- the rendering application client is deployed on a terminal device, and the rendering application server and the rendering engine are deployed on a remote computing node. ;
- the rendering application server is configured to receive a rendering request, call the rendering engine according to the rendering request and a first quality parameter to generate a first rendered image, and call the rendering engine to generate a first rendered image according to the rendering request and a second quality parameter A second rendered image, wherein the quality of the first rendered image is higher than that of the second rendered image; the difference data between the first rendered image and the second rendered image is acquired, and the difference data is sent To the rendering application client;
- the rendering application client is configured to generate the rendering request, and generate a third rendering image according to the rendering request and the second quality parameter; and generate a fourth rendering image according to the difference data and the third rendering image. Render the image.
- the remote rendering application server and the rendering engine use their computing capabilities to generate the first rendered image and the second rendered image, respectively, and calculate the difference between the first rendered image and the second rendered image to obtain Difference data.
- the difference data can be effectively compressed.
- the transmission bandwidth required for the compressed difference data is greatly reduced.
- the rendering application client on the terminal device side only needs to generate a third rendered image with the same image quality as the second rendered image, and can restore the same image quality as the first rendered image based on the third rendered image and the difference data obtained after decompression Or a similar fourth rendered image.
- This solution reduces the computing power consumption of the terminal device, and at the same time reduces the demand for the communication bandwidth between the terminal device and the remote rendering platform for remote rendering.
- the rendering application server is configured to calculate the pixel value of the first rendered image and the pixel value of the second rendered image pixel by pixel to obtain the difference data .
- the pixel value of the second rendered image may be subtracted from the pixel value of the second rendered image pixel by pixel to obtain the difference data.
- the pixel value of the first rendered image may be subtracted from the pixel value of the first rendered image from the pixel value of the second rendered image pixel by pixel to obtain the difference data.
- the rendering application client combines the difference data with the third rendering The pixel values of the image are summed pixel by pixel to obtain the fourth rendered image.
- the rendering application client calculates the pixel value of the third rendered image pixel by pixel Point subtracting the difference data to obtain the fourth rendered image.
- the second rendered image and the third rendered image are the same.
- the first rendered image and the fourth rendered image are the same or the similarity between the first rendered image and the fourth rendered image is higher than a threshold. Since the compressed data may be lossy compressed by the rendering application server before transmission, the fourth rendered image may be slightly different from the first rendered image.
- the rendering request includes:
- the first quality parameter and the second quality parameter used by the rendering application server are set by the rendering application provider in the rendering application server; or;
- the first quality parameter and the second quality parameter used by the rendering application server are set by the rendering application client.
- the second quality parameter used by the rendering application client is set in the rendering application client by the rendering application provider; or,
- the second quality parameter used by the rendering application client is set by the rendering application client.
- the rendering application server is configured to compress the difference data, and send the compressed difference data to the rendering application client.
- another rendering system including a management device, a rendering application server, a rendering application client, and a rendering engine.
- the rendering application client is deployed on a terminal device, the management device, and the rendering application service
- the terminal and the rendering engine are deployed on a remote computing node;
- the management device is configured to generate a rendering request, and send the rendering request to the rendering application server and the rendering application client;
- the rendering application server is configured to receive the rendering request, call the rendering engine according to the rendering request and the first quality parameter to generate a first rendered image, and call the rendering according to the rendering request and the second quality parameter
- the engine generates a second rendered image, where the quality of the first rendered image is higher than that of the second rendered image; the difference data between the first rendered image and the second rendered image is acquired, and the difference is Sending data to the rendering application client;
- the rendering application client is configured to receive the rendering request, and generate a third rendering image according to the rendering request and the second quality parameter; and generate a fourth rendering image according to the difference data and the third rendering image. Render the image.
- the rendering application server is configured to calculate the pixel value of the first rendered image and the pixel value of the second rendered image pixel by pixel to obtain the difference data .
- the second rendered image and the third rendered image are the same.
- the rendering request includes:
- the first quality parameter and the second quality parameter used by the rendering application server are set by the rendering application provider in the rendering application server; or;
- the first quality parameter and the second quality parameter used by the rendering application server are set by the rendering application client.
- the second quality parameter used by the rendering application client is set in the rendering application client by the rendering application provider; or,
- the second quality parameter used by the rendering application client is set by the rendering application client.
- the rendering application server is configured to compress the difference data, and send the compressed difference data to the rendering application client.
- the first quality parameter and the second quality parameter used by the rendering application server are set by the management device on the rendering application server; and/or
- the second quality parameter used by the rendering application client is set by the management device on the rendering application client.
- a rendering method which is applied to a rendering application client in a rendering system, the rendering system further includes a rendering application server, the rendering application client is deployed on a terminal device, and the rendering application server Deployed on a remote computing node, the method includes:
- the rendering application client obtains a rendering request, and generates a third rendered image according to the rendering request and the second quality parameter;
- the rendering application client obtains difference data from the rendering application server, where the difference data is generated by the rendering application server according to the first rendered image and the second rendered image, and the first rendered image is based on Generating the rendering request and the first rendering parameter, the second rendering image is generated according to the rendering request and the second rendering parameter, wherein the quality of the first rendering image is higher than that of the second rendering image;
- the rendering application client generates a fourth rendered image according to the difference data and the third rendered image.
- the second rendered image and the third rendered image are the same.
- the rendering request includes:
- the second quality parameter used by the rendering application client is set by the rendering application provider in the rendering application client; or;
- the second quality parameter used by the rendering application client is set by the user during the use of the rendering application client; or;
- the second quality parameter used by the rendering application client is set on the rendering application client through a management device.
- the rendering application client receives the compressed difference data obtained after the rendering application client compresses the difference data.
- a rendering method which is applied to a rendering application server in a rendering system, the rendering system further includes a rendering application client, the rendering application client is deployed on a terminal device, and the rendering application server Deployed on a remote computing node, the method includes:
- the rendering application server receives the rendering request
- the rendering application server calls a rendering engine according to the rendering request and the first quality parameter to generate a first rendered image, and calls the rendering engine according to the rendering request and the second quality parameter to generate a second rendered image, wherein the The quality of the first rendered image is higher than that of the second rendered image;
- the rendering application server acquires difference data between the first rendered image and the second rendered image, and sends the difference data to the rendering application client.
- the rendering application server will calculate the difference between the pixel value of the first rendered image and the pixel value of the second rendered image pixel by pixel to obtain the difference data.
- the second rendered image and the third rendered image are the same.
- the rendering request includes:
- the rendering application server compresses the difference data, and sends the compressed difference data to the rendering application client.
- the first quality parameter and the second quality parameter used by the rendering application server are set by the rendering application provider in the rendering application server; or,
- the first quality parameter and the second quality parameter used by the rendering application server are set by the rendering application client; or,
- the first quality parameter and the second quality parameter used by the rendering application server are set by the management device on the rendering application server.
- a rendering of the application client includes: a communication module, a rendering module, and a generation module;
- the communication module is used to obtain a rendering request
- the rendering module is configured to generate a third rendered image according to the rendering request and the second quality parameter
- the communication module is further configured to obtain difference data from the rendering application server, where the difference data is generated by the rendering application server according to the first rendering image and the second rendering image, and the first rendering The image is generated according to the rendering request and the first rendering parameter, the second rendering image is generated according to the rendering request and the second rendering parameter, wherein the quality of the first rendering image is higher than that of the second rendering image;
- the generating module is further configured to generate a fourth rendered image according to the difference data and the third rendered image.
- the second rendered image and the third rendered image are the same.
- the rendering request includes:
- the second quality parameter used by the rendering application client is set by the rendering application provider in the rendering application client; or;
- the second quality parameter used by the rendering application client is set by the user during the use of the rendering application client; or;
- the second quality parameter used by the rendering application client is set on the rendering application client through a management device.
- the communication module is further configured to receive the compressed difference data obtained by compressing the difference data by the rendering application client.
- a server for rendering the application includes: a communication module, a rendering module, and a difference module;
- the communication module is used to receive a rendering request
- the rendering module is configured to call a rendering engine according to the rendering request and a first quality parameter to generate a first rendered image, and call the rendering engine according to the rendering request and a second quality parameter to generate a second rendered image, wherein The quality of the first rendered image is higher than that of the second rendered image;
- the difference module is configured to obtain difference data between the first rendered image and the second rendered image
- the communication module is also used to send the difference data to the rendering application client.
- the difference module is also used to calculate the difference between the pixel value of the first rendered image and the pixel value of the second rendered image pixel by pixel to obtain the difference data .
- the second rendered image and the third rendered image are the same.
- the rendering request includes:
- the difference module is also used to compress the difference data, and send the compressed difference data to the rendering application client.
- the first quality parameter and the second quality parameter used by the rendering application server are set by the rendering application provider in the rendering application server; or,
- the first quality parameter and the second quality parameter used by the rendering application server are set by the rendering application client; or,
- the first quality parameter and the second quality parameter used by the rendering application server are set by the management device on the rendering application server.
- a terminal device in a seventh aspect, includes a processor and a memory, and the processor executes a program in the memory to execute the method according to any one of the third aspect.
- the rendering application client provided by the fifth aspect runs on the terminal device.
- a computing node in an eighth aspect, includes a processor and a memory, and the processor executes a program in the memory to execute the method according to any one of the fourth aspect.
- the computing node runs the rendering application server provided by the sixth aspect, and optionally, also runs the rendering engine.
- a computer-readable storage medium including instructions, which when the instructions run on a terminal device, cause the terminal device to execute the method according to any one of the third aspect, that is, cause the The terminal device runs the rendering application client provided by the sixth aspect.
- a computer-readable storage medium including instructions, which when the instructions run on a computing node, cause the computing node to execute the method according to any one of the fourth aspects, that is, cause the
- the computing node runs the rendering application server provided by the sixth aspect, and optionally, also runs the rendering engine.
- FIGS. 1A-1B are schematic structural diagrams of some rendering systems involved in this application.
- Fig. 2 is a schematic flow chart of the rendering method involved in the present application
- Fig. 3 is a schematic diagram of observing the same target scene from different angles involved in this application;
- FIG. 4 is a schematic flowchart of a rendering method proposed by this application.
- FIG. 5 is a schematic flowchart of another rendering method proposed by this application.
- Fig. 6 is a schematic structural diagram of a rendering system proposed in this application.
- FIG. 7 is a schematic diagram of the structure of a computing node proposed in this application.
- Fig. 8 is a schematic structural diagram of a terminal device proposed in this application.
- FIG. 1A is a schematic structural diagram of a rendering system related to the present application.
- the rendering system of the present application is used for a 2D image obtained by rendering a 3D model of a target scene through a rendering method, that is, a rendered image.
- the rendering method may include rasterization rendering, ray tracing rendering, and so on.
- the rendering system provided in FIG. 1A may include: multiple terminal devices 110, a network device 120, and a remote rendering platform 130.
- the remote rendering platform 130 may be specifically deployed on a public cloud.
- the remote rendering platform 130 and terminal devices are generally deployed in different data centers or even geographic regions.
- the terminal device 110 may be a device that needs to display rendered images.
- it may be a virtual reality (VR) device used for flight training, a computer used for virtual games, a smart phone used for a virtual mall, and so on.
- VR virtual reality
- the terminal device can be a device with high configuration and high performance (for example, multi-core, high frequency, large memory, etc.), or a device with low configuration and low performance (for example, single core, low frequency, small memory, etc.) equipment.
- an operating system and a rendering application client run on the terminal device 110.
- the network device 120 is used to transmit data between the terminal device 110 and the remote rendering platform 130 via a communication network of any communication mechanism/communication standard.
- the communication network can be a wide area network, a local area network, a point-to-point connection, etc., or any combination thereof.
- the remote rendering platform 130 includes multiple rendering nodes, and each rendering node includes rendering hardware, an operating system, a rendering engine, and a rendering application server from bottom to top.
- rendering hardware includes computing resources, storage resources, and network resources.
- Computing resources can adopt heterogeneous computing architecture, for example, central processing unit (CPU) + graphics processing unit (GPU) architecture, CPU+AI chip, CPU+GPU+AI chip architecture, etc.
- Storage resources can include memory and so on.
- 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. Therefore, the remote rendering platform 130 can freely combine on the basis of unit resources according to the user's resource requirements, so that the user's needs can provide resources. For example, through virtualization services, mutually independent resources can be flexibly isolated according to the needs of users to run the rendering engine and/or the rendering application server.
- virtualization services can isolate independent computing resources such as virtual machine (VM) services, bare metal server (BMS) services, and containers.
- the rendering engine can be used to implement image rendering algorithms.
- the rendering engine allows the rendering application to call the built-in rendering algorithm (pipeline) of the rendering engine according to its interface to complete image rendering.
- the rendering application server can be used to call the rendering engine to complete the rendering of the rendered image.
- the rendering application client running on the terminal device 110 and the rendering application server running on the remote rendering platform 130 respectively constitute the front end and the back end of the rendering application.
- common rendering applications may include: game applications, VR applications, movie special effects, animations, and so on.
- the rendering application can perform real-time image rendering by calling the rendering engine to obtain a rendered image.
- the rendering application server and the rendering application client may be provided by the rendering application provider, and the rendering engine may be provided by the cloud service provider.
- the rendering application can be a game application.
- the game developer of the game application installs the game application server on the remote rendering platform provided by the cloud service provider, and the game developer of the game application provides the game application client through the Internet Download it to the user and install it on the user's terminal device.
- the cloud service provider also provides a rendering engine, which can provide computing power for game applications.
- the rendering application client, the rendering application server, and the rendering engine may all be provided by a cloud service provider.
- a management device 140 is further included.
- the management device 140 may be a user's terminal device and a device provided by a third party other than the remote rendering platform 130 of the cloud service provider, or it may be deployed together with the remote rendering platform 130 on a public cloud.
- the management device 140 may be provided by a rendering application provider.
- the rendering application provider may manage the rendering application through the management device 140.
- the rendering application provider may use the management device 140 to specify the quality parameters of the initial rendered image provided by the rendering application server to the rendering application client.
- FIG. 2 is a schematic flowchart of a rendering method provided by the present application. As shown in Figure 2, the method includes the following steps:
- the rendering application client running on the terminal device generates a rendering request, and sends the rendering request to the network device.
- the network device receives the rendering request.
- S102 The network device sends the rendering request to the remote rendering platform.
- the remote rendering platform receives the rendering request.
- the remote rendering platform performs rendering according to the rendering request to obtain a rendered image.
- the remote rendering platform sends the rendered image to the network device.
- the network device receives the rendered image.
- the network device sends the rendered image to the rendering application client running on the terminal device.
- the rendering application client receives the rendered image.
- the terminal device may be connected to a remote rendering platform through a network device, and the remote rendering platform can perform complex rendering work to obtain a rendered image. Then, the rendered image is transmitted to the terminal device.
- the terminal device does not need to be responsible for the computational overhead of the rendering work.
- the remote rendering platform separates the computing overhead of the rendering work from the terminal device, and the operation of the rendering application is no longer restricted by the hardware capabilities of the terminal device, which is conducive to the development, promotion and sales of the rendering application.
- the transmission of high-quality rendered images from the remote rendering platform to the terminal device brings high transmission costs.
- the present application further proposes a rendering method, device, and system, which can effectively reduce the bandwidth required by the remote rendering platform to transmit images to the terminal device.
- the final rendered image is mainly affected by content parameters and quality parameters.
- the content parameter affects information such as which models (objects) are included in the rendered image, and the angle from which these models are viewed in the rendered image.
- the quality parameter affects the rendering fineness of each object in the rendered image.
- the information carried in the rendering request includes content parameters, and optionally may also include quality parameters; or the quality parameters may be preset in the rendering application client or the rendering engine, and the rendering request does not need to include the quality parameters.
- the content parameters may include the target scene and the angle at which the user observes the target scene.
- the target scene includes at least one light source and at least one model. It goes without saying that when the target scene changes, the screen content of the rendered image will change. When the angle at which the user observes the target scene changes, the screen content of the rendered image will also change.
- the target scene can be as shown in Figure 3 (a).
- the screen content of the rendered image obtained is shown in Figure 3(b).
- Figure 3 ( c) the screen content of the obtained rendered image.
- the screen content of the rendered image also does not change.
- the content parameters include the identification of the target scene and the angle at which the user observes the target scene.
- the terminal device and the remote rendering platform both pre-store the corresponding relationship between the identifier of the target scene and the geometric data, texture data, and material data of the target scene. Therefore, both the terminal device and the remote rendering platform can find the geometric data, texture data, and material data of the corresponding target scene through the identifier of the target scene to perform rendering.
- the geometric data may include vertex data of each mesh in the target scene, etc.
- the texture data may include the color of each mesh in the target scene, etc.
- the material data may include each mesh in the target scene.
- the material for example, metal, mirror, diffuse reflection material and so on.
- the content parameters may also directly include the geometric data, texture data, material data of the target scene, and the angle at which the user observes the target scene.
- the rendering request may include all geometric data, texture data, material data of the target scene, and the angle at which the user observes the target scene.
- the rendering request may include geometric data, texture data, material data, and the angle at which the user observes the target scene that have changed from the previous scene in the target scene.
- the rendering request may include geometric data, texture data, material data in the user's field of view in the target scene, and the angle at which the user observes the target scene.
- the rendering request may include geometric data, texture data, material data, and the angle at which the user observes the target scene that has changed in the target scene and is in the user's field of view.
- the quality parameter of the rendered image is a parameter used to measure the quality of the rendered image.
- the quality parameters can include: pixel light count (PLC), texture quality, anisotropic textures, antialiasing, soft particles, Shadows, blend weights, vsync count, LOD Bias, maximum LOD Level, particle raycast budget, etc.
- PLC pixel light count
- texture quality anisotropic textures
- antialiasing soft particles
- Shadows blend weights
- vsync count maximum LOD Level
- particle raycast budget etc.
- the quality parameters can include: the number of samples per pixel (SPP), the maximum number of light bounces (max bounces), the number of triangle faces for object modeling, and the number of vertices for object modeling , One or more of the picture noise index, etc.
- the quality of the rendered image is also relatively high.
- the lower the quality parameter is set the higher the quality of the corresponding rendered image.
- the quality parameter and the rendered image quality are positively or negatively correlated with reference to the physical meaning of the quality parameter.
- the following takes the case where all quality parameters and the rendered image quality are positively correlated as an example for further introduction. The following can be derived from the situation that all or part of the quality parameters and the rendered image quality are negatively correlated.
- using different quality parameters to render the 3D model of the target scene can obtain rendered images of different quality.
- a higher quality parameter is used to render the 3D model of the target scene
- a lower quality parameter is used to render the 3D model of the target scene
- a low-quality rendered image can be obtained.
- the quality parameter adopted by the high-quality rendered image is higher than the quality parameter adopted by the low-quality rendered image.
- the quality parameter of the first rendered image the number of pixel light sources is relatively high, the resolution of texture quality is relatively high, the level of anisotropic texture is relatively high, the level of anti-aliasing is relatively high, soft particles are used, etc.
- the first rendered image is a high-quality rendered image; in the quality parameters of the second rendered image, the number of pixel light sources is relatively low, the resolution of texture quality is low, the level of anisotropic texture is low, and the level of anti-aliasing is low , Without using soft particles, etc., the second rendered image is a low-quality rendered image. From the user's point of view, high-quality rendered images have high resolution, well-made, and rich details; low-quality rendered images have low resolution, rough production, and few details.
- the value of the quality parameter corresponding to the high-quality rendered image may be higher than the value of the quality parameter corresponding to the low-quality rendered image, and/or the types of quality parameters corresponding to the high-quality rendered image may also be more than those corresponding to the low-quality rendered image The quality parameters.
- FIG. 4 is a schematic flowchart of the first rendering method proposed in this application.
- the rendering method of the present application can be implemented on the rendering system shown in FIG. 1A, and includes the following steps:
- the rendering application server running on the remote rendering platform is set with a first quality parameter and a second quality parameter.
- the rendering application client running on the terminal device is set with a second quality parameter.
- the rendering application server is set with the first quality parameter and the second quality parameter, which can be set by the rendering application provider in advance in the rendering application server, or it can be set by the end user through the rendering application client and through the rendering application client Sent to the server of the rendering application.
- the rendering application client is set with the second quality parameter, which may be specifically set in the rendering application client by the rendering application provider in advance, or may be set by the end user on the rendering application client.
- the rendered image generated according to the first quality parameter is higher than the rendered image generated according to the second quality parameter.
- the terminal device may carry the first quality parameter and the second quality parameter in the rendering request and send to the rendering application server.
- S202 The rendering application client running on the terminal device sends a rendering request to the network device.
- the network device receives the rendering request sent by the rendering application client running on the terminal device.
- the rendering application client generates the rendering request during the running process, for example, it enters a new scene according to the user's operation.
- S203 The network device sends the rendering request to the rendering application server running on the remote rendering platform.
- the rendering application server running on the remote rendering platform receives the rendering request sent by the network device.
- the rendering application server running on the remote rendering platform calls the rendering engine according to the first quality parameter to generate the first rendered image according to the information carried in the rendering request, and according to the information carried in the rendering request, according to the second
- the quality parameter calls the rendering engine to generate a second rendered image.
- the image quality of the first rendered image is higher than the image quality of the second rendered image.
- S205 The rendering application server running on the remote rendering platform determines difference data between the first rendered image and the second rendered image.
- the remote rendering platform performs delta calculation on the first rendered image and the second rendered image to obtain the delta data.
- S206 The rendering application server running on the remote rendering platform compresses the difference data to obtain compressed difference data.
- the rendering results of some pixels of the first rendered image and the second rendered image are the same, that is, a considerable part of the difference data is zero. Therefore, the data volume of the compressed difference data will be lower than the difference data.
- S207 The rendering application server running on the remote rendering platform sends the compressed difference data to the network device.
- the network device receives the compressed difference data sent by the server of the rendering application running on the remote rendering platform.
- the network device sends the compressed difference data to the rendering application client running on the terminal device.
- the rendering application client running on the terminal device receives the compressed difference data sent by the network device.
- S209 The rendering application client running on the terminal device generates a third rendered image according to the second quality parameter according to the information carried in the rendering request.
- the rendering request can refer to either a network message transmitted on a network device, or a program instruction used inside the rendering application client.
- the second rendered image and the third rendered image are the same.
- the rendering application client running on the terminal device acquires the fourth rendered image according to the third rendered image and the difference data obtained after decompressing the compressed difference data.
- the fourth rendered image and the first rendered image may not be exactly the same, but the similarity is high.
- the terminal device may provide the third rendered image as a rendering result to the user immediately.
- the terminal device uses the fourth rendered image to refresh the third rendered image provided to the user, thereby improving the rendering speed felt by the user.
- the execution of S202 to S208 and the execution of S209 may be executed in parallel or sequentially in any order.
- the rendering application server running on the remote rendering platform generates a first rendered image according to a first quality parameter and generates a second rendered image according to a second quality parameter, as described in detail below:
- the image quality of the rendered image obtained by ray tracing rendering mainly depends on the following indicators: the number of samples per pixel (SPP), the number of ray bounces (bounce), etc., which will be detailed below. Introduction.
- SPP can be defined as the number of rays sampled by each pixel. The greater the number of SPPs, the better the anti-aliasing effect of the rendered image, and the lower the noise index, the better the quality of the rendered image will naturally be.
- the number of SPPs can affect the light effects of the screen, such as caustics formed by transparent bodies (glass balls, water ripples) under light irradiation. When the number of samples is small, only isolated light spots can be formed, and caustic light spots cannot be gathered. When the number of samples is large, the caustic spot can be effectively formed. Therefore, if the SPP value is low, caustic visual effects cannot be effectively generated, and other rendering methods (non-ray tracing methods) are often needed to add this visual effect.
- the number of ray bounces is the sum of the maximum number of reflections and the number of refractions for tracing the ray before the tracing of the ray is terminated.
- the reason why the number of light bounces can affect the quality of the rendered image is: because in a complex scene, the light will be reflected and refracted multiple times. In theory, the number of times the light is reflected and refracted can be infinite, but In the actual algorithm process, it is impossible to track the light infinitely, so some tracking termination conditions need to be given.
- the light will attenuate after many reflections and refractions, and the light contributes little to the light intensity of the viewpoint; the number of ray bounces means that the tracking depth is greater than a certain value. Therefore, the more times the light bounces back, the more effective light that can be tracked, the better the refraction effect between multiple transparent objects, the more realistic, and the better the image quality.
- the remote rendering platform When the remote rendering platform performs rendering according to the first SPP and the first number of light bounces, the first rendered image can be generated, and the second rendered image can be generated by rendering according to the second SPP and the second number of light bounces.
- the value of the first Spp is greater than the value of the second Spp
- the number of bounces of the first light is greater than the number of bounces of the second light.
- the terminal device generates the third rendered image according to the second quality parameter, which may specifically be: taking the rendering method as the ray tracing method as an example, rendering is performed on the remote rendering platform according to the second Spp and the second number of light bounces
- the terminal device performs rendering according to the second Spp and the second number of light bounces, and can generate the third rendered image.
- the rendering method is described by taking the rendering method as ray tracing rendering as an example.
- the rendering method may also be rasterization rendering, which is not specifically limited here.
- the rendering application server running on the remote rendering platform may specifically determine the difference data between the first rendered image and the second rendered image in the following manner:
- the rendering application server running on the remote rendering platform subtracts the pixel values of the pixels at the same coordinates of the first rendered image and the second rendered image to obtain difference data.
- the difference data includes the coordinates of the pixel and the pixel difference of the pixel.
- the difference data obtained in S205 may also be obtained after the coordinates of each pixel of the rendered image and the pixel difference of the pixel are obtained, the coordinate of each pixel of the rendered image and the pixel
- the pixel difference value is obtained after down-sampling processing.
- the down-sampling processing method includes: (1) The pixel value of multiple adjacent pixels is replaced by the pixel value of one pixel.
- the pixel values of multiple adjacent pixels can be replaced by the pixel value of one pixel by methods such as linear interpolation, averaging, or nearest neighbor pixel.
- the adjacent pixels in the difference data are pixel D (x-1, y-1), pixel D (x, y-1), pixel D (x+1, y-1), pixel D(x-1,y), pixel D(x,y), pixel D(x+1,y), pixel D(x-1,y+1), pixel D(x,y+ 1), pixel D (x+1, y+1), then the pixel value of nine adjacent pixels can be replaced by the pixel value of pixel D (x, y) or the average value of 9 pixels , So that the resolution is reduced to one-ninth of the original, thereby reducing the difference data.
- each pixel has three color channels of red, green and blue (RGB), and the average value of the values of the three color channels is used instead of the values of the three color channels.
- RGB red, green and blue
- the values of the green channel can be used instead of the values of the three color channels, thereby reducing the difference data.
- the rendering application client running on the terminal device obtains the fourth rendered image according to the third rendered image and the difference data obtained after decompression, specifically, in the following manner:
- the rendering application client running on the terminal device adds the third rendered image and the pixel values of the pixels at the same coordinates of the difference data obtained after decompression to obtain a fourth rendered image.
- the difference data obtained after decompression includes the coordinates of the pixel and the pixel difference of the pixel.
- the difference data obtained after decompression obtained in S210 may also be obtained after decompressing the compressed difference data and then performing upsampling processing.
- the up-sampling processing method includes: (1) The pixel value of one pixel becomes the pixel value of multiple adjacent pixels.
- the pixel value of pixel D (x, y) in the difference image is (235, 128, 25)
- pixel D (x-1, y-1), pixel D (x, y-1) Pixel point D (x+1, y-1), pixel point D (x-1, y), pixel point D (x, y), pixel point D (x+1, y), pixel point D (x -1, y+1), pixel D (x, y+1), and pixel D (x+1, y+1) have pixel values (235, 128, 25), thereby expanding the difference data.
- the value of one color channel becomes the value of three color channels. For example, if the value of the green channel is 233, then the value of the red channel and the value of the blue channel can be set to 233 to expand the difference. data.
- the remote rendering platform uses its computing capabilities to generate the first rendered image and the second rendered image, respectively, and calculates the difference between the first rendered image and the second rendered image to obtain the difference data. Since only the image quality of the first rendered image and the second rendered image are different, it means that only a small part of the content of the first rendered image and the second rendered image are different. Therefore, most of the difference data is zero, and the difference data It can be effectively compressed into compressed difference data. Therefore, when the remote rendering platform sends the compressed difference data to the terminal device, the bandwidth required for transmission can be greatly reduced.
- the terminal device only needs to generate a third rendered image with the same image quality as the second rendered image, and can determine that the image quality is the same as the first rendered image based on the third rendered image and the difference data obtained after decompression. Render the image. Since the terminal device only needs to generate the third rendered image with lower image quality, the computing capability requirement of the terminal device will be greatly reduced.
- FIG. 5 is a schematic flowchart of another rendering method proposed by the present application.
- the rendering method of the present application can be implemented on the rendering system shown in FIG. 1B, and includes the following steps:
- the rendering application server running on the remote rendering platform is set with a first quality parameter and a second quality parameter.
- the rendering application client running on the terminal device is set with a second quality parameter.
- the first quality parameter is higher than the second quality parameter.
- the rendering application server is set with the first quality parameter and the second quality parameter, which can be set by the rendering application provider in advance in the rendering application server, or it can be set by the end user through the rendering application client and through the rendering application client Sent to the server of the rendering application.
- the rendering application client is set with the second quality parameter, which may be specifically set in the rendering application client by the rendering application provider in advance, or may be set by the end user on the rendering application client.
- the first quality parameter and the second quality parameter set by the rendering application server may also be set by the management device on the rendering application server, for example, the rendering application provider In a certain update, the rendering application server is set through the management device.
- the second quality parameter set by the rendering application client may also be set by the management device on the rendering application client.
- the rendered image corresponding to the first quality parameter is higher than the rendered image corresponding to the second quality parameter.
- the management device may carry the first quality parameter and the second quality parameter in the rendering request and send it to the rendering application server, and carry the second quality parameter in the rendering request and send it to the rendering application client.
- S302 The management device sends a rendering request to the network device.
- the network device receives the rendering request sent by the management device.
- S303 The network device sends the rendering request to the rendering application server and the rendering application client.
- the rendering application server and the rendering application client receive the rendering request sent by the network device.
- the rendering application server running on the remote rendering platform calls the rendering engine according to the first quality parameter to generate the first rendered image according to the information carried in the rendering request, and according to the information carried in the rendering request, according to the second quality
- the parameters call the rendering engine to generate the second rendered image.
- the image quality of the first rendered image is higher than the image quality of the second rendered image.
- S305 The rendering application server running on the remote rendering platform determines the difference data between the first rendered image and the second rendered image.
- the remote rendering platform performs a difference calculation on the first rendered image and the second rendered image to obtain the difference data.
- S306 The rendering application server running on the remote rendering platform compresses the difference data to obtain compressed difference data.
- the rendering results of some pixels of the first rendered image and the second rendered image are the same, that is, a considerable part of the difference data is zero. Therefore, the data volume of the compressed difference data will be lower than the difference data.
- S307 The rendering application server running on the remote rendering platform sends the compressed difference data to the network device.
- the network device receives the compressed difference data sent by the rendering application server running on the remote rendering platform.
- S308 The network device sends the compressed difference data to the terminal device.
- the terminal device receives the compressed difference data sent by the network device.
- the rendering application client running on the terminal device generates a third rendered image according to the second quality parameter according to the information carried in the rendering request.
- the second rendered image and the third rendered image are the same.
- S310 The rendering application client running on the terminal device determines the fourth rendered image according to the third rendered image and the difference data obtained after decompressing the compressed data. Wherein, the image quality of the second high-quality rendered image and the first high-quality rendered image are the same.
- the fourth rendered image and the first rendered image may not be exactly the same, but the similarity is high.
- the terminal device may provide the third rendered image as a rendering result to the user immediately.
- the terminal device uses the fourth rendered image to refresh the third rendered image provided to the user, thereby improving the rendering speed felt by the user.
- S304 to S308 and the execution of S309 can be executed in parallel or sequentially in any order.
- this embodiment does not generate the first rendered image and the second rendered image for the remote rendering platform, and the process of determining the difference data according to the first rendered image and the second rendered image.
- the terminal device generates the third image.
- the process and the process of generating the fourth rendered image based on the difference data obtained after decompression and the third rendered image are introduced in detail.
- the method shown in FIG. 4 can also be executed in the rendering system shown in FIG. 1B, and the details are not repeated here.
- FIG. 6 is a schematic structural diagram of a rendering system proposed in this application.
- the rendering system includes a client device and a server device.
- the client device and the server device can communicate with each other.
- the client device 200 of this embodiment includes: a communication module 210, a rendering module 220, and a generating module 230.
- the communication module 210 is used to obtain a rendering request.
- the rendering module 220 is configured to generate a third rendered image according to the rendering request and the second quality parameter;
- the communication module 210 is further configured to obtain difference data from the rendering application server, where the difference data is generated by the rendering application server according to the first rendered image and the second rendered image, and the first The rendered image is generated according to the rendering request and the first rendering parameter, the second rendered image is generated according to the rendering request and the second rendering parameter, and the quality of the first rendered image is higher than that of the second rendering parameter.
- the generating module 230 is further configured to generate a fourth rendered image according to the difference data and the third rendered image.
- the server device 300 of this embodiment includes: a communication module 310, a rendering module 320, and a difference module 330.
- the communication module 310 is configured to receive a rendering request
- the rendering module 320 is configured to call a rendering engine according to the rendering request and first quality parameters to generate a first rendered image, and call the rendering engine according to the rendering request and second quality parameters to generate a second rendered image, wherein, The quality of the first rendered image is higher than that of the second rendered image;
- the difference module 330 is configured to obtain difference data between the first rendered image and the second rendered image
- the communication module 310 is further configured to send the difference data to the rendering application client.
- client device can execute the steps executed by the terminal device in the method shown in FIG. 4 or FIG. 5
- server device can execute the steps executed by the remote rendering platform in the method shown in FIG. 4 or FIG. Please refer to Figure 4, Figure 5 and related descriptions, which are not specifically limited here.
- FIG. 7 is a schematic structural diagram of a computing node provided by the present application.
- the computing node in this embodiment may include a processor 410, a memory 420, a network card 430, and a bus 440.
- the computing node may specifically be the rendering node in FIG. 1A or FIG. 1B.
- the processor 410 may be one or more general-purpose processors, where the general-purpose processor may be any type of device capable of processing electronic instructions, including a central processing unit (CPU), a microprocessor, a microcontroller, Main processor, controller, application specific integrated circuit (ASIC) and so on.
- the processor 410 executes various types of digital storage instructions, such as software or firmware programs stored in the memory 420.
- the processor 410 may be an x86 processor or the like.
- the processor 410 sends commands to the memory 420 through the physical interface to complete storage-related tasks.
- the memory 420 may include a read-only memory (ROM) or a hard disk drive (HDD) or a solid-state drive (SSD).
- ROM read-only memory
- HDD hard disk drive
- SSD solid-state drive
- the memory 420 may be used to store the first quality parameter, the second quality parameter, the first rendered image, the second rendered image, and difference data.
- the network card 430 is also called a network interface controller, a network interface card, or a local area network (LAN) adapter.
- LAN local area network
- the computing node may also include one or more of an input device and an output device, where the input device may be a mouse, a keyboard, and so on.
- the output device may include a display and so on.
- FIG. 7 can execute the steps executed by the remote rendering platform in the method shown in FIG. 4 or FIG. 5.
- FIG. 4 please refer to FIG. 4, FIG.
- the terminal device of this embodiment may include a processor 510, a memory 520, an input device 530, an output device 540, and a bus 550.
- the processor 510 may be one or more general-purpose processors, where the general-purpose processor may be any type of device capable of processing electronic instructions, including a CPU, a microprocessor, a microcontroller, a main processor, a controller, and an ASIC, etc. Wait.
- the processor 510 executes various types of digital storage instructions, such as software or firmware programs stored in the memory 520.
- the processor 510 may be an x86 processor or the like.
- the memory 520 may include ROM or HDD or SSD.
- the memory 520 may be used to store the second quality parameter, the third rendered image, and the fourth rendered image.
- the input device 530 may include a mouse, a keyboard, and so on.
- the user can input the first quality parameter that needs to be set by the remote rendering platform, the second quality parameter that needs to be set by the remote rendering platform and the terminal device through the input device 530, and so on.
- the output device 540 may include a display.
- the display may include a cathode ray tube display (CRT), a plasma display panel (PDP), a liquid crystal display (LCD), and so on.
- CTR cathode ray tube display
- PDP plasma display panel
- LCD liquid crystal display
- the computer program product includes one or more computer instructions.
- the computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices.
- the computer instructions may be stored in a computer-readable storage medium, 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.
- 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 usable medium may be a magnetic medium (for example, a floppy disk, a storage disk, and a magnetic tape), an optical medium (for example, a DVD), or a semiconductor medium (for example, a solid state disk (SSD)).
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Processing Or Creating Images (AREA)
Abstract
一种渲染系统,包括:渲染应用服务端、渲染应用客户端、渲染引擎,其中,渲染应用客户端部署于终端设备,渲染应用服务端和渲染引擎部署于远程计算节点。渲染应用服务端,用于接收渲染请求,根据渲染请求和第一质量参数调用渲染引擎生成第一渲染图像,根据渲染请求和第二质量参数调用渲染引擎生成第二渲染图像,其中,第一渲染图像的质量高于第二渲染图像;获取第一渲染图像和第二渲染图像的差值数据,将差值数据发送至渲染应用客户端;渲染应用客户端,用于生成渲染请求,根据渲染请求和第二质量参数生成第三渲染图像;根据差值数据和第三渲染图像,生成第四渲染图像。该系统可以有效减少远程图像渲染对通信带宽的需求。
Description
本申请涉及图像渲染,尤其涉及一种渲染方法、设备以及系统。
渲染是指用软件从模型生成图像的过程,其中,模型是用严格定义的语言或者数据结构对于三维物体的描述,它包括几何、视点、纹理以及照明信息。图像是数字图像或者位图图像。渲染这个术语类似于“艺术家对于场景的渲染”,另外,渲染也用于描述“计算视频编辑文件中的效果,以生成最终视频输出的过程”。渲染可以包括预渲染(pre-rendering/offline rendering)或者实时渲染(real-time rendering/online rendering),其中,预渲染通常是用于电影、广告等有预定脚本的实景仿真;实时渲染通常是用于飞行训练、3D游戏和交互式建筑演示等无预定脚本的实景仿真。
发明内容
本申请提供了一种渲染方法、设备以及系统,能够有效降低远程图像渲染对通信带宽的需求。
第一方面,提供了一种渲染系统,该系统包括渲染应用服务端、渲染应用客户端、渲染引擎,所述渲染应用客户端部署于终端设备,渲染应用服务端和渲染引擎部署于远程计算节点;
所述渲染应用服务端,用于接收渲染请求,根据所述渲染请求和第一质量参数调用所述渲染引擎生成第一渲染图像,根据所述渲染请求和第二质量参数调用所述渲染引擎生成第二渲染图像,其中,所述第一渲染图像的质量高于所述第二渲染图像;获取所述第一渲染图像和所述第二渲染图像的差值数据,将所述差值数据发送至所述渲染应用客户端;
所述渲染应用客户端,用于生成所述渲染请求,根据所述渲染请求和所述第二质量参数生成第三渲染图像;根据所述差值数据和所述第三渲染图像,生成第四渲染图像。
上述方案中,部署在远程的渲染应用服务端和渲染引擎利用其计算能力分别生成了第一渲染图像以及第二渲染图像,并将第一渲染图像和第二渲染图像进行差值计算,从而得到差值数据。一般第一渲染图像和第二渲染图像只有少部分内容是不相同的。因此,差值数据能够有效地被压缩。压缩后的差值数据所需的传输带宽大大降低。终端设备侧的渲染应用客户端只需要生成与第二渲染图像图像质量相同的第三渲染图像,就能根据第三渲染图像和解压缩后得到的差值数据恢复出与第一渲染图像图像质量相同或相近的第四渲染图像。该方案降低了终端设备的计算能力消耗的同时,降低了远程渲染对终端设备和远程渲染平台之间的通信带宽的需求。
在一些可能的设计中,所述渲染应用服务端,用于将逐像素点将所述第一渲染图像的像素值和所述第二渲染图像的像素值求差,以获取所述差值数据。
具体的,可以逐像素点用所述第一渲染图像的像素值减去所述第二渲染图像的像素值以获取所述差值数据。或者,可以逐像素点用所述第二渲染图像的像素值减去所述第一渲染图像的像素值以获取所述差值数据。
所述差值数据包括所述第一渲染图像的像素值减去所述第二渲染图像的像素值的数据的情况下,所述渲染应用客户端将所述差值数据和所述第三渲染图像的像素值逐像素点求和以获取所述第四渲染图像。
所述差值数据包括所述第二渲染图像的像素值减去所述第一渲染图像的像素值的数据的情况下,所述渲染应用客户端将所述第三渲染图像的像素值逐像素点减去所述差值数据以获取所述第四渲染图像。
在一些可能的设计中,所述第二渲染图像和所述第三渲染图像相同。
在一些可能的设计中,所述第一渲染图像和所述第四渲染图像相同或者所述第一渲染图像和所述第四渲染图像的相似度高于阈值。由于压缩数据在传输前可能会被渲染应用服务端有损压缩,因此,第四渲染图像可能和第一渲染图像存在细微的差别。
在一些可能的设计中,所述渲染请求包括:
目标场景的标识以及观察所述目标场景的角度;或者,
所述目标场景中的部分或者全部网格的几何数据、纹理数据、材质数据以及观察所述目标场景的角度。
在一些可能的设计中,所述渲染应用服务端使用的所述第一质量参数和所述第二质量参数是渲染应用提供商设置于所述渲染应用服务端内的;或者;
所述渲染应用服务端使用的所述第一质量参数和所述第二质量参数是通过所述渲染应用客户端设置的。
在一些可能的设计中,所述渲染应用客户端使用的所述第二质量参数是所述渲染应用提供商设置于所述渲染应用客户端内的;或者,
所述渲染应用客户端使用的所述第二质量参数是通过所述渲染应用客户端设置的。
在一些可能的设计中,所述渲染应用服务端,用于将所述差值数据压缩,将压缩后的所述差值数据发送至所述渲染应用客户端。
第二方面,提供了另一种渲染系统,包括管理设备、渲染应用服务端、渲染应用客户端、渲染引擎,所述渲染应用客户端部署于终端设备,所述管理设备、所述渲染应用服务端和所述渲染引擎部署于远程计算节点;
所述管理设备,用于生成渲染请求,将所述渲染请求发送至所述渲染应用服务端和所述渲染应用客户端;
所述渲染应用服务端,用于接收所述渲染请求,根据所述渲染请求和第一质量参数调用所述渲染引擎生成第一渲染图像,根据所述渲染请求和第二质量参数调用所述渲染引擎生成第二渲染图像,其中,所述第一渲染图像的质量高于所述第二渲染图像;获取所述第一渲染图像和所述第二渲染图像的差值数据,将所述差值数据发送至所述渲染应用客户端;
所述渲染应用客户端,用于接收所述渲染请求,根据所述渲染请求和所述第二质量参数生成第三渲染图像;根据所述差值数据和所述第三渲染图像,生成第四渲染图像。
在一些可能的设计中,所述渲染应用服务端,用于将逐像素点将所述第一渲染图像的像素值和所述第二渲染图像的像素值求差,以获取所述差值数据。
在一些可能的设计中,所述第二渲染图像和所述第三渲染图像相同。
在一些可能的设计中,所述渲染请求包括:
目标场景的标识以及观察所述目标场景的角度;或者,
所述目标场景中的部分或者全部网格的几何数据、纹理数据、材质数据以及观察所述目标场景的角度。
在一些可能的设计中,所述渲染应用服务端使用的所述第一质量参数和所述第二质量参数是渲染应用提供商设置于所述渲染应用服务端内的;或者;
所述渲染应用服务端使用的所述第一质量参数和所述第二质量参数是通过所述渲染应用客户端设置的。
在一些可能的设计中,所述渲染应用客户端使用的所述第二质量参数是所述渲染应用提供商设置于所述渲染应用客户端内的;或者,
所述渲染应用客户端使用的所述第二质量参数是通过所述渲染应用客户端设置的。
在一些可能的设计中,所述渲染应用服务端,用于将所述差值数据压缩,将压缩后的所述差值数据发送至所述渲染应用客户端。
在一些可能的设计中,所述渲染应用服务端使用的所述第一质量参数和所述第二质量参数是所述管理设备对所述渲染应用服务端设置的;和/或
所述渲染应用客户端使用的所述第二质量参数是所述管理设备对所述渲染应用客户端设置的。
第三方面,提供了一种渲染方法,应用于渲染系统中的渲染应用客户端,所述渲染系统还包括渲染应用服务端,所述渲染应用客户端部署于终端设备,所述渲染应用服务端部署于远程计算节点,所述方法包括:
所述渲染应用客户端获取渲染请求,根据所述渲染请求和第二质量参数生成第三渲染图像;
所述渲染应用客户端从所述渲染应用服务端获取差值数据,所述差值数据是所述渲染应用服务端根据第一渲染图像和第二渲染图像生成的,所述第一渲染图像根据所述渲染请求和第一渲染参数生成,所述第二渲染图像根据所述渲染请求和所述第二渲染参数生成,其中,所述第一渲染图像的质量高于所述第二渲染图像;
所述渲染应用客户端根据所述差值数据和所述第三渲染图像,生成第四渲染图像。
在一些可能的设计中,所述第二渲染图像和所述第三渲染图像相同。
在一些可能的设计中,所述渲染请求包括:
目标场景的标识以及观察所述目标场景的角度;或者,
所述目标场景中的部分或者全部网格的几何数据、纹理数据、材质数据以及观察所述目标场景的角度。
在一些可能的设计中,所述渲染应用客户端使用的所述第二质量参数是渲染应用提供商设置于所述渲染应用客户端内的;或者;
所述渲染应用客户端使用的所述第二质量参数是用户在所述渲染应用客户端的使用过程中对所述渲染应用客户端设置的;或者;
所述渲染应用客户端使用的所述第二质量参数是通过管理设备对所述渲染应用客户端设置的。
在一些可能的设计中,所述渲染应用客户端接收所述渲染应用客户端将所述差值数据压缩后得到的压缩后的所述差值数据。
第四方面,提供了一种渲染方法,应用于渲染系统中的渲染应用服务端,所述渲染系统还包括渲染应用客户端,所述渲染应用客户端部署于终端设备,所述渲染应用服务端部署于远程计算节点,所述方法包括:
所述渲染应用服务端接收渲染请求;
所述渲染应用服务端根据所述渲染请求和第一质量参数调用渲染引擎生成第一渲染图像,根据所述渲染请求和第二质量参数调用所述渲染引擎生成第二渲染图像,其中,所述第一渲染图像的质量高于所述第二渲染图像;
所述渲染应用服务端获取所述第一渲染图像和所述第二渲染图像的差值数据,将所述差值数据发送至所述渲染应用客户端。
在一些可能的设计中,所述渲染应用服务端将逐像素点将所述第一渲染图像的像素值和所述第二渲染图像的像素值求差,以获取所述差值数据。
在一些可能的设计中,所述第二渲染图像和所述第三渲染图像相同。
在一些可能的设计中,所述渲染请求包括:
目标场景的标识以及观察所述目标场景的角度;或者,
所述目标场景中的部分或者全部网格的几何数据、纹理数据、材质数据以及观察所述目标场景的角度。
在一些可能的设计中,所述渲染应用服务端将所述差值数据压缩,将压缩后的所述差值数据发送至所述渲染应用客户端。
在一些可能的设计中,所述渲染应用服务端使用的所述第一质量参数和所述第二质量参数是渲染应用提供商设置于所述渲染应用服务端内的;或者,
所述渲染应用服务端使用的所述第一质量参数和所述第二质量参数是通过所述渲染应用客户端设置的;或者,
所述渲染应用服务端使用的所述第一质量参数和所述第二质量参数是管理设备对所述渲染应用服务端设置的。
第五方面,提供了一种渲染该应用客户端,所述渲染该应用客户端包括:通信模块、渲染模块以及生成模块;
所述通信模块,用于获取渲染请求;
所述渲染模块,用于根据所述渲染请求和第二质量参数生成第三渲染图像;
所述通信模块,还用于从所述渲染应用服务端获取差值数据,所述差值数据是所述渲染应用服务端根据第一渲染图像和第二渲染图像生成的,所述第一渲染图像根据所述渲染请求和第一渲染参数生成,所述第二渲染图像根据所述渲染请求和所述第二渲染参数生成,其中,所述第一渲染图像的质量高于所述第二渲染图像;
所述生成模块还用于根据所述差值数据和所述第三渲染图像,生成第四渲染图像。
在一些可能的设计中,所述第二渲染图像和所述第三渲染图像相同。
在一些可能的设计中,所述渲染请求包括:
目标场景的标识以及观察所述目标场景的角度;或者,
所述目标场景中的部分或者全部网格的几何数据、纹理数据、材质数据以及观察所述目标场景的角度。
在一些可能的设计中,所述渲染应用客户端使用的所述第二质量参数是渲染应用提供商设置于所述渲染应用客户端内的;或者;
所述渲染应用客户端使用的所述第二质量参数是用户在所述渲染应用客户端的使用过程中对所述渲染应用客户端设置的;或者;
所述渲染应用客户端使用的所述第二质量参数是通过管理设备对所述渲染应用客户端设置的。
在一些可能的设计中,所述通信模块,还用于接收所述渲染应用客户端将所述差值数据压缩后得到的压缩后的所述差值数据。
第六方面,提供了一种渲染该应用服务端,所述渲染该应用服务端包括:通信模块、渲染模块、差值模块;
所述通信模块,用于接收渲染请求;
所述渲染模块,用于根据所述渲染请求和第一质量参数调用渲染引擎生成第一渲染图像,根据所述渲染请求和第二质量参数调用所述渲染引擎生成第二渲染图像,其中,所述第一渲染图像的质量高于所述第二渲染图像;
所述差值模块,用于获取所述第一渲染图像和所述第二渲染图像的差值数据;
所述通信模块,还用于将所述差值数据发送至所述渲染应用客户端。
在一些可能的设计中,所述差值模块,还用于将逐像素点将所述第一渲染图像的像素值和所述第二渲染图像的像素值求差,以获取所述差值数据。
在一些可能的设计中,所述第二渲染图像和所述第三渲染图像相同。
在一些可能的设计中,所述渲染请求包括:
目标场景的标识以及观察所述目标场景的角度;或者,
所述目标场景中的部分或者全部网格的几何数据、纹理数据、材质数据以及观察所述目标场景的角度。
在一些可能的设计中,所述差值模块,还用于将所述差值数据压缩,将压缩后的所述差值数据发送至所述渲染应用客户端。
在一些可能的设计中,所述渲染应用服务端使用的所述第一质量参数和所述第二质量参数是渲染应用提供商设置于所述渲染应用服务端内的;或者,
所述渲染应用服务端使用的所述第一质量参数和所述第二质量参数是通过所述渲染应用客户端设置的;或者,
所述渲染应用服务端使用的所述第一质量参数和所述第二质量参数是管理设备对所述渲染应用服务端设置的。
第七方面,提供了一种终端设备,所述终端设备包括处理器以及存储器,所述处理器执行所述存储器中的程序,从而执行如第三方面任一项所述的方法。该终端设备上运行了第五方面提供的渲染应用客户端。
第八方面,提供了一种计算节点,所述计算节点包括处理器以及存储器,所述处理器执行所述存储器中的程序,从而执行如第四方面任一项所述的方法。该计算节点 上运行了第六方面提供的渲染应用服务端,以及可选的,还运行了渲染引擎。
第九方面,提供了一种计算机可读存储介质,包括指令,当所述指令在终端设备上运行时,使得所述终端设备执行如第三方面任一项所述的方法,也即使得所述终端设备运行第六方面提供的渲染应用客户端。
第十方面,提供了一种计算机可读存储介质,包括指令,当所述指令在计算节点上运行时,使得所述计算节点执行如第四方面任一项所述的方法,也即使得该计算节点上运行了第六方面提供的渲染应用服务端,以及可选的,还运行了渲染引擎。
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
图1A-图1B是本申请涉及的一些渲染系统的结构示意图;
图2是本申请涉及的渲染方法的流程示意图;
图3是本申请涉及的从不同角度观察同一目标场景的示意图;
图4是本申请提出的一种渲染方法的流程示意图;
图5是本申请提出的另一种渲染方法的流程示意图;
图6是本申请提出的一种渲染系统的结构示意图;
图7是本申请提出的一种计算节点的结构示意图;
图8是本申请提出的一种终端设备的结构示意图。
参见图1A,图1A是本申请涉及的一种渲染系统的结构示意图。本申请的渲染系统用于通过渲染方法对目标场景的3D模型进行渲染得到的2D图像,即渲染图像。其中,渲染方法可以包括光栅化渲染以及光线跟踪渲染等等。图1A提供的渲染系统可以包括:多个终端设备110、网络设备120以及远程渲染平台130。远程渲染平台130具体可以部署在公有云上。远程渲染平台130和终端设备一般部署在不同的数据中心乃至地理区域内。
终端设备110可以是需要显示渲染图像的设备,例如,可以是用于飞行训练的虚拟现实设备(virtual reality,VR),可以是用于虚拟游戏的电脑以及用于虚拟商城的智能手机等等,此处不作具体限定。终端设备可以是高配置、高性能(例如,多核、高主频、内存大等等)的设备,也可以是低配置,低性能(例如,单核、低主频、内存小等等)的设备。在一具体的实施例中,终端设备110上运行有操作系统以及渲染应用客户端。
网络设备120用于在终端设备110通过任何通信机制/通信标准的通信网络与远程渲染平台130之间传输数据。其中,通信网络可以是广域网、局域网、点对点连接等方式,或它们的任意组合。
远程渲染平台130包括多个渲染节点,每个渲染节点自下而上包括渲染硬件、操作系统、渲染引擎以及渲染应用服务端。其中,渲染硬件包括计算资源、存储资源以及网络资源。
计算资源可以采用异构计算架构,例如,可以采用中央处理器(central processing unit,CPU)+图形处理器(graphics processing unit,GPU)架构,CPU+AI芯片,CPU+GPU+AI芯片架构等等,此处不作具体限定。存储资源可以包括内存等等。这里,计算资源可以被 分成多个计算单位资源,存储资源可以被分成多个存储单位资源,网络资源可以被分成多个网络单位资源。因此,远程渲染平台130可以按照用户的资源需求以单位资源为基础进行自由组合,从而用户的需要提供资源。例如,通过虚拟化服务按照用户的需要灵活地隔离出相互独立的资源以运行渲染引擎和/或渲染应用服务端。常见地,虚拟化服务可以隔离出虚拟机(virtual machine,VM)服务、裸金属服务器(bare metal server,BMS)服务以及容器(container)等独立的计算资源。渲染引擎可以用于实现图像渲染算法。渲染引擎允许渲染应用按照其接口调用渲染引擎内置的渲染算法(管道)来完成图像渲染。渲染应用服务端可以用于调用渲染引擎以完成渲染图像的渲染。
终端设备110上运行的渲染应用客户端和远程渲染平台130上运行的渲染应用服务端分别构成了渲染应用的前端和后端。其中,常见的渲染应用可以包括:游戏应用、VR应用、电影特效以及动画等等。渲染应用可以通过调用渲染引擎进行实时图像渲染,从而得到渲染图像。
在一具体的实施方式中,渲染应用服务端和渲染应用客户端可以是渲染应用提供商提供的,渲染引擎可以是云服务提供商提供的。举个例子说明,渲染应用可以是游戏应用,游戏应用的游戏开发商将游戏应用服务端安装在云服务提供商提供的远程渲染平台上,游戏应用的游戏开发商将游戏应用客户端通过互联网提供给用户下载,并安装在用户的终端设备上。此外,云服务提供商还提供了渲染引擎,渲染引擎可以为游戏应用提供计算能力。在另一种具体的实施方式中,渲染应用客户端、渲染应用服务端和渲染引擎可以均是云服务提供商提供的。
在图1B所示的云渲染系统中,还包括管理设备140。管理设备140上可以是用户的终端设备和云服务提供商的远程渲染平台130之外的第三方提供的设备,也可以部署和远程渲染平台130一起部署在公有云上。例如,管理设备140可以是渲染应用提供商提供的。渲染应用提供商可以通过管理设备140对渲染应用进行管理,例如,渲染应用提供商可以通过管理设备140指定渲染应用服务端向渲染应用客户端提供的初始的渲染图像的质量参数等等。
参见图2,图2是本申请提供的一种渲染方法的流程示意图。如图2所示,该方法包括如下步骤:
S101:终端设备上运行的渲染应用客户端生成渲染请求,并向网络设备发送该渲染请求。相应地,该网络设备接收该渲染请求。
S102:该网络设备向远程渲染平台发送该渲染请求。相应地,该远程渲染平台接收该渲染请求。
S103:该远程渲染平台根据该渲染请求进行渲染从而得到渲染图像。
S104:该远程渲染平台将该渲染图像发送给该网络设备。相应地,该网络设备接收该渲染图像。
S105:该网络设备将该渲染图像发送给该终端设备上运行的渲染应用客户端。相应地,该渲染应用客户端接收该渲染图像。
上述图2所示的渲染方法中,终端设备可以通过网络设备连接到远程渲染平台,借助远程渲染平台进行复杂的渲染工作从而得到渲染图像。然后,渲染图像被传输到 终端设备,在此过程中,终端设备无须负责渲染工作的计算开销。远程渲染平台将渲染工作的计算开销从终端设备分离出来,渲染应用的运行不再受制于终端设备侧的硬件能力,有利于渲染应用的开发和推广销售。但是,从远程渲染平台下行到终端设备的高质量渲染图像传输带来了高昂的传输费用。
为了解决上述问题,本申请进而提出了一种渲染方法、设备以及系统,能够有效降低远程渲染平台向终端设备传输图像所需要的带宽。
最终被渲染出的渲染图像主要受内容参数以及质量参数的影响。其中,内容参数影响了渲染图像内包括了哪些模型(物体)、渲染图像是从什么角度观察这些模型等信息。质量参数影响了渲染图像中各物体的渲染精细程度。渲染请求携带的信息包含内容参数,可选的也可以包含质量参数;或者质量参数可以预先设置于渲染应用客户端或渲染引擎,则渲染请求可以不必包含质量参数。
内容参数可以包括目标场景以及用户观察所述目标场景的角度。其中,目标场景包括至少一个光源以及至少一个模型。不言而喻,当目标场景改变时,渲染图像的画面内容会发生变化。当用户观察所述目标场景的角度改变时,渲染图像的画面内容也会发生变化,以图3所示为例,目标场景可以如图3中的(a)所示,此时,当用户通过第一角度观察目标场景时,得到的渲染图像的画面内容如图3中的(b)所示,当用户通过第二角度观察目标场景时,得到的渲染图像的画面内容如图3中的(c)所示。相反,当目标场景不变,并且,用户观察所述目标场景的角度不变时,渲染图像的画面内容也不变。
内容参数包括目标场景的标识以及用户观察所述目标场景的角度的情况下。其中,终端设备和远程渲染平台均预先存储了目标场景的标识与目标场景的几何数据、纹理数据以及材质数据之间的对应关系。所以,终端设备和远程渲染平台均可以通过目标场景的标识查找到对应的目标场景的几何数据、纹理数据以及材质数据来进行渲染。其中,所述几何数据可以包括目标场景中的各个网格的顶点数据等等,所述纹理数据可以包括目标场景中各个网格的颜色等等,所述材质数据可以包括目标场景中各个网格的材质,例如,金属、镜面以及漫反射材料等等。
内容参数也可以直接包括目标场景的几何数据、纹理数据、材质数据以及用户观察所述目标场景的角度。渲染请求可以包括目标场景的全部的几何数据、纹理数据、材质数据以及用户观察所述目标场景的角度。或者,渲染请求可以包括目标场景中相对上一场景发生变化的几何数据、纹理数据、材质数据以及用户观察所述目标场景的角度。或者,渲染请求可以包括目标场景中在用户视野内的几何数据、纹理数据、材质数据以及用户观察所述目标场景的角度。或者,渲染请求可以包括目标场景中发生变化并且在用户视野内的几何数据、纹理数据、材质数据以及用户观察所述目标场景的角度。
渲染图像的质量参数是用来衡量渲染图像的质量的参数,通常来说,渲染图像的质量参数越高,渲染图像的几何精细度越高、蕴含的信息量越多、画面越细腻、颜色对比度越丰富。当渲染方法为光栅化渲染时,质量参数可以包括:像素光源数(pixel light count,PLC)、纹理质量、各向异性纹理(anisotropic textures)、抗锯齿(antialiasing)、软粒子(soft particles)、阴影(shadows)、混合权重(blend weights)、垂直同步数 (vsync count)、LOD偏移(LOD Bias)、最高LOD等级(maximum LOD Level)、粒子光线投射预算(particle raycast budget)等等中的一个或者多个。当渲染方法为光线跟踪渲染时,质量参数可以包括:每像素采样个数(samples per pixel,SPP)、光线最大弹射次数(max bounces)、物体建模三角形面片数、物体建模的顶点数、画面噪声指标等等中的一个或者多个。
其中,PLC的数值越高,渲染图像的质量越高;纹理质量的分辨率越高,渲染图像的质量越高;各向异性纹理的级别越高,渲染图像的质量越高;抗锯齿的级别越高,渲染图像的质量越高;软粒子的使用,渲染图像的质量越高;阴影的级别越高,渲染图像的质量越高;混合权重的数量越多,渲染图像的质量越高;垂直同步数的级别越高,渲染图像的质量越高;LOD偏移的数值越高,渲染图像的质量越高;粒子光线投射预算的数量越大,渲染图像的质量越高;SPP的数量越高时,渲染图像的质量越高;光线最大弹射次数的数量越高时,渲染图像的质量越高。
因此,当这些质量参数设置的比较高时,渲染图像的质量也比较高。当然,也可能存在部分质量参数设置的越低,其对应的渲染图像质量越高的情况,质量参数和渲染图像质量是正相关还是负相关具体参考质量参数的物理含义。下文以全部质量参数和渲染图像质量为正相关的情况为例进行进一步介绍。下文以全部或部分质量参数和渲染图像质量为负相关的情况可以推导获得。
在内容参数不变的情况下,采用不同的质量参数对目标场景的3D模型进行渲染可以得到不同质量的渲染图像。当采用较高的质量参数对目标场景的3D模型进行渲染可以得到高质量渲染图像;当采用较低的质量参数对目标场景的3D模型进行渲染可以得到低质量渲染图像。换句话说,所述高质量渲染图像采用的质量参数高于所述低质量渲染图像采用的质量参数。例如,第一渲染图像的质量参数中像素光源数的数值比较高、纹理质量的分辨率较高、各向异性纹理的级别较高、抗锯齿的级别较高、使用了软粒子等等,则第一渲染图像为高质量渲染图像;第二渲染图像的的质量参数中像素光源数的数值比较低、纹理质量的分辨率较低、各向异性纹理的级别较低、抗锯齿的级别较低、没有使用软粒子等等,则第二渲染图像为低质量渲染图像。从用户的角度来看,高质量渲染图像的画面分辨率高、制作精良、细节丰富;低质量渲染图像的画面分辨率低、制作粗糙、细节不多。
本申请中,高质量渲染图像对应的质量参数的数值可以高于低质量渲染图像对应的质量参数的数值,和/或高质量渲染图像对应的质量参数的种类还可以多于低质量渲染图像对应的质量参数。
参见图4,图4是本申请提出的第一种渲染方法的流程示意图。如图4所示,本申请的渲染方法能够在图1A所示的渲染系统上实现的,包括如下步骤:
S201:远程渲染平台上运行的渲染应用服务端设置有第一质量参数和第二质量参数。终端设备上运行的渲染应用客户端设置有第二质量参数。
渲染应用服务端设置有第一质量参数和第二质量参数,具体可以是渲染应用提供商提前设置于渲染应用服务端内的,也可以是终端用户通过渲染应用客户端设置并通过渲染应用客户端发送至渲染应用服务端的。
渲染应用客户端设置有第二质量参数,具体可以是渲染应用提供商提前设置于渲染应用客户端内的,也可以是终端用户对渲染应用客户端设置的。
根据第一质量参数生成的渲染图像高于根据第二质量参数生成的渲染图像。
一种可能的实现场景中,终端设备可以将第一质量参数和第二质量参数携带在渲染请求中发送至渲染应用服务端。
S202:该终端设备上运行的渲染应用客户端向网络设备发送渲染请求。相应地,该网络设备接收该终端设备上运行的该渲染应用客户端发送的该渲染请求。
渲染应用客户端在运行的过程中会产生所述渲染请求,例如根据用户的操作进入到了新的场景。
S203:该网络设备向该远程渲染平台上运行的渲染应用服务端发送该渲染请求。相应地,该远程渲染平台上运行的渲染应用服务端接收该网络设备发送的渲染请求。
S204:该远程渲染平台上运行的渲染应用服务端根据该渲染请求携带的信息,按照该第一质量参数调用渲染引擎以生成第一渲染图像,并根据该渲染请求携带的信息,按照该第二质量参数调用该渲染引擎以生成第二渲染图像。其中,该第一渲染图像的图像质量高于该第二渲染图像的图像质量。
S205:该远程渲染平台上运行的渲染应用服务端确定该第一渲染图像和该第二渲染图像的差值数据。
远程渲染平台对所述第一渲染图像和所述第二渲染图像做差值计算(delta calculation),以获得所述差值数据。
S206:该远程渲染平台上运行的渲染应用服务端将该差值数据进行压缩,从而得到压缩后的差值数据。
一般而言,所述第一渲染图像和所述第二渲染图像的部分像素点的渲染结果相同,也即差值数据中相当一部分数据为0。因此压缩后的差值数据的数据量会低于差值数据。
S207:该远程渲染平台上运行的渲染应用服务端将该压缩后的差值数据发送给该网络设备。相应地,该网络设备接收该远程渲染平台上运行的渲染应用服务端发送的压缩后的差值数据。
S208:该网络设备将该压缩后的差值数据发送给该终端设备上运行的渲染应用客户端。相应地,该终端设备上运行的渲染应用客户端接收该网络设备发送的压缩后的差值数据。
S209:该终端设备上运行的渲染应用客户端,根据该渲染请求携带的信息,按照该第二质量参数生成第三渲染图像。
贯穿本申请各个实施例,渲染请求既可以指代在网络设备上传输的网络报文,也可以指代在渲染应用客户端内部使用的程序指令。
由于采用了相同的内容参数和质量参数,因此第二渲染图像和第三渲染图像相同。
S210:该终端设备上运行的渲染应用客户端根据第三渲染图像和对压缩后的差值数据进行解压缩后得到的差值数据获取第四渲染图像。
由于S207中的压缩以及可能采用的降采样处理可能造成差值数据的部分信息量丢失,因此第四渲染图像和第一渲染图像可能不会完全相同,但相似度高。
在本申请的实例中,终端设备在生成第三渲染图像之后,可以立刻先将第三渲染图像作为渲染结果提供给用户。在生成第四渲染图像之后,终端设备再使用第四渲染图像刷新提供给用户的第三渲染图像,从而提升用户感受到的渲染速度。
上述S202至S208的执行和S209的执行可以并行或者以任意顺序先后执行。在本申请具体的实施方式中,远程渲染平台上运行的渲染应用服务端按照第一质量参数生成第一渲染图像和按照第二质量参数生成第二渲染图像,具体如下文所述:
以光线跟踪渲染为例,光线追踪渲染得到的渲染图像的图像质量主要取决于以下指标:每像素采样数(sample per pixel,SPP)、光线返弹次数(bounce)等等,下面将分别进行详细的介绍。
SPP可以定义为每个像素采样得到的光线的数量。SPP的数量越多,渲染图像的抗锯齿效果越好,噪声指标越低,渲染图像的质量也自然越好。另外,SPP的数量可以影响到画面的光线特效,例如透明体(玻璃球,水波纹)在光线照射下形成的焦散特效(caustics)。当采样数量较少时,只能形成孤立的光点,不能聚集成焦散光斑。当采样数量多了之后,就能有效形成了焦散光斑。因此如果SPP值较低,则无法有效生成焦散的视觉特效,往往需要采用其他的渲染方式(非光线追踪方式),追加此视觉效果。
光线返弹次数为在光线的跟踪终止前,对光线进行跟踪的最大反射次数和折射次数之和。光线返弹次数可以影响到渲染图像的画质的原因在于:因为在复杂场景中,光线会被多次反射和折射,理论上来说,光线被反射和折射的次数可以是无限次,但是,在实际的算法进行过程中,不可能对光线进行无穷的跟踪,因而需要给出一些跟踪的终止条件。在应用中,可以有以下的终止条件:光线在经过许多次反射和折射以后,就会产生衰减,光线对于视点的光强贡献很小;光线返弹次数即跟踪深度大于一定值。因此,光线返弹次数越多,可以被跟踪到的有效光线越多,多个透明物体之间的折射效果越好,越逼真,图像质量也就越好
当远程渲染平台按照第一SPP以及第一光线反弹次数进行渲染,可以生成第一渲染图像,按照第二Spp以及第二光线反弹次数进行渲染,可以生成第二渲染图像。这里,第一Spp的值大于第二Spp的值,第一光线反弹次数大于第二光线反弹次数。
在本申请的实例中,终端设备按照第二质量参数生成第三渲染图像,具体可以是:以渲染方法为光线跟踪方法为例,在远程渲染平台按照第二Spp以及第二光线反弹次数进行渲染,可以生成第二渲染图像的情况下,终端设备按照第二Spp以及第二光线反弹次数进行渲染,可以生成第三渲染图像。
应理解,上述例子是以渲染方法为光线跟踪渲染为例进行说明的,在实际应用中,渲染方法也可以是光栅化渲染,此处不作具体限定。
S205中,远程渲染平台上运行的渲染应用服务端确定所述第一渲染图像和所述第二渲染图像的差值数据具体可以采用以下方式:
远程渲染平台上运行的渲染应用服务端将所述第一渲染图像和所述第二渲染图像的同坐标的像素点的像素值相减,从而得到差值数据。差值数据包括了像素点的坐标以及该像素点的像素差值。可选的,S205中获取的差值数据还可以是在获取了渲染图像的每个像素点的坐标以及该像素点的像素差值后,对渲染图像的每个像素点的坐标 以及该像素点的像素差值进行降采样处理后获得的。降采样处理的方式包括:(1)将相邻的多个像素点的像素值使用一个像素点的像素值进行代替。具体地,可以通过线性插值、取平均或者取最近邻像素等等的方法,将相邻的多个像素点的像素值使用一个像素点的像素值进行代替。假设差值数据中相邻的像素点为像素点D(x-1,y-1)、像素点D(x,y-1)、像素点D(x+1,y-1)、像素点D(x-1,y)、像素点D(x,y)、像素点D(x+1,y)、像素点D(x-1,y+1)、像素点D(x,y+1)、像素点D(x+1,y+1),那么九个相邻的像素点的像素值可以使用像素点D(x,y)的像素值或者9个像素点的平均值进行代替,从而使分辨率降为原来的九分之一,从而减少差值数据。或,(2)将多个颜色通道的数值使用一个颜色通道的数值进行代替。例如,每个像素点均具有红绿蓝(RGB)三个颜色通道,使用三个颜色通道的数值的平均值代替三个颜色通道的数值。或者,由于人眼对绿色通道最为敏感,因此,可以将使用绿色通道的数值代替三个颜色通道的数值,从而减少差值数据。
对应地,S210中,终端设备上运行的渲染应用客户端根据第三渲染图像和解压后得到的差值数据得到第四渲染图像具体可以采用以下方式:
终端设备上运行的渲染应用客户端将所述第三渲染图像和解压后得到的差值数据的同坐标的像素点的像素值相加,从而得到第四渲染图像。解压后得到的差值数据包括了像素点的坐标以及该像素点的像素差值。可选的,S210中获取的解压后得到的差值数据还可以是对压缩后的差值数据进行解压缩后进行上采样处理后获得的。上采样处理的方式包括:(1)一个像素点的像素值变成多个相邻的像素点的像素值。假设差值图像中像素点D(x,y)的像素值为(235,128,25),向上采样后,像素点D(x-1,y-1)、像素点D(x,y-1)、像素点D(x+1,y-1)、像素点D(x-1,y)、像素点D(x,y)、像素点D(x+1,y)、像素点D(x-1,y+1)、像素点D(x,y+1)、像素点D(x+1,y+1)的像素值均为(235,128,25),从而扩充差值数据。(2)一个颜色通道的数值变为三个颜色通道的数值,例如,假设绿色通道的数值为233,那么,可以将红色通道的数值以及蓝色通道的数值均设置为233,从而扩充差值数据。
上述方案中,远程渲染平台利用其计算能力分别生成了第一渲染图像以及第二渲染图像,并将第一渲染图像和第二渲染图像进行差值计算,从而得到差值数据。由于第一渲染图像和第二渲染图像只有图像质量不同,意味着第一渲染图像和第二渲染图像只有少部分内容是不相同的,因此,差值数据的大部分数据为零,差值数据能够有效地被压缩成压缩后的差值数据,于是,远程渲染平台将压缩后的差值数据发送给终端设备时,能够大大减少传输所需要的带宽。终端设备只需要生成与第二渲染图像图像质量也是相同的第三渲染图像,就能根据第三渲染图像和解压缩后得到的差值数据,从而确定出与第一渲染图像图像质量也是相同第四渲染图像。由于终端设备只需要生成图像质量较低的第三渲染图像即可,故此,终端设备的计算能力要求将大大降低。
参见图5,图5是本申请提出的另一种渲染方法的流程示意图。如图5所示,本申请的渲染方法能够在图1B所示的渲染系统上实现的,包括如下步骤:
S301:远程渲染平台上运行的渲染应用服务端设置有第一质量参数和第二质量参数。终端设备上运行的渲染应用客户端设置有第二质量参数。其中,第一质量参数高 于第二质量参数。
渲染应用服务端设置有第一质量参数和第二质量参数,具体可以是渲染应用提供商提前设置于渲染应用服务端内的,也可以是终端用户通过渲染应用客户端设置并通过渲染应用客户端发送至渲染应用服务端的。
渲染应用客户端设置有第二质量参数,具体可以是渲染应用提供商提前设置于渲染应用客户端内的,也可以是终端用户对渲染应用客户端设置的。
由于图1B提供的系统中还存在管理设备,因此,渲染应用服务端设置的第一质量参数和第二质量参数还可以是管理设备对渲染应用服务端设置的,例如渲染应用提供商在渲染应用的某次更新中,通过管理设备对渲染应用服务端设置的。同理,渲染应用客户端设置的第二质量参数还可以是管理设备对渲染应用客户端设置的。
第一质量参数对应的渲染图像高于第二质量参数对应的渲染图像。
一种可能的实现场景中,管理设备可以将第一质量参数和第二质量参数携带在渲染请求中发送至渲染应用服务端,将第二质量参数携带在渲染请求中发送至渲染应用客户端。
S302:管理设备向网络设备发送渲染请求。相应地,该网络设备接收该管理设备发送的该渲染请求。
S303:该网络设备向渲染应用服务端和该渲染应用客户端发送该渲染请求。相应地,该渲染应用服务端和该渲染应用客户端接收该网络设备发送的该渲染请求。
S304:该远程渲染平台上运行的渲染应用服务端根据该渲染请求携带的信息,按照第一质量参数调用渲染引擎以生成第一渲染图像,并根据该渲染请求携带的信息,按照该第二质量参数调用该渲染引擎以生成第二渲染图像。其中,该第一渲染图像的图像质量高于该第二渲染图像的图像质量。
S305:该远程渲染平台上运行的渲染应用服务端确定所述第一渲染图像和所述第二渲染图像的差值数据。
远程渲染平台对所述第一渲染图像和所述第二渲染图像做差值计算,以获得所述差值数据。
S306:该远程渲染平台上运行的渲染应用服务端将该差值数据进行压缩,从而得到压缩后的差值数据。
一般而言,所述第一渲染图像和所述第二渲染图像的部分像素点的渲染结果相同,也即差值数据中相当一部分数据为0。因此压缩后的差值数据的数据量会低于差值数据。
S307:该远程渲染平台上运行的渲染应用服务端将该压缩后的差值数据发送给该网络设备。相应地,该网络设备接收该远程渲染平台上运行的渲染应用服务端发送的该压缩后的差值数据。
S308:该网络设备将该压缩后的差值数据发送给该终端设备。相应地,该终端设备接收该网络设备发送的该压缩后的差值数据。
S309:该终端设备上运行的渲染应用客户端,根据渲染请求携带的信息,按照该第二质量参数生成第三渲染图像。
由于采用了相同的内容参数和质量参数,因此第二渲染图像和第三渲染图像相同。
S310:该终端设备上运行的渲染应用客户端根据第三渲染图像和对压缩数据进行解压缩后得到的差值数据确定第四渲染图像。其中,所述第二高质量渲染图像和所述第一高质量渲染图像的图像质量是相同的。
由于S307中的压缩以及可能采用的降采样处理可能造成差值数据的部分信息量丢失,因此第四渲染图像和第一渲染图像可能不会完全相同,但相似度高。
终端设备在生成第三渲染图像之后,可以立刻先将第三渲染图像作为渲染结果提供给用户。在生成第四渲染图像之后,终端设备再使用第四渲染图像刷新提供给用户的第三渲染图像,从而提升用户感受到的渲染速度。
上述S304至S308的执行和S309的执行可以并行或者以任意顺序先后执行。
为了简便起见,本实施例并没有对远程渲染平台生成第一渲染图像以及第二渲染图像的过程、根据第一渲染图像以及第二渲染图像确定差值数据的过程,终端设备生成第三图像的过程以及根据解压后得到的差值数据以及第三渲染图像生成第四渲染图像的过程进行详细的介绍,具体请参见图5所示的渲染方法的相关内容的介绍,此处不再重复赘述。同时,图1B所示的渲染系统中也可以执行图4所示的方法,具体不在赘述。
参见图6,图6是本申请提出的一种渲染系统的结构示意图。其中,所述渲染系统包括客户端装置以及服务端装置。所述客户端装置和所述服务端装置之间可以进行通信。
本实施方式的客户端装置200,包括:通信模块210、渲染模块220以及生成模块230。
所述通信模块210,用于获取渲染请求。
所述渲染模块220,用于根据所述渲染请求和第二质量参数生成第三渲染图像;
所述通信模块210,还用于从所述渲染应用服务端获取差值数据,所述差值数据是所述渲染应用服务端根据第一渲染图像和第二渲染图像生成的,所述第一渲染图像根据所述渲染请求和第一渲染参数生成,所述第二渲染图像根据所述渲染请求和所述第二渲染参数生成,其中,所述第一渲染图像的质量高于所述第二渲染图像;
所述生成模块230,还用于根据所述差值数据和所述第三渲染图像,生成第四渲染图像。
本实施方式的所述服务端装置300包括:通信模块310、渲染模块320以及差值模块330。
所述通信模块310,用于接收渲染请求;
所述渲染模块320,用于根据所述渲染请求和第一质量参数调用渲染引擎生成第一渲染图像,根据所述渲染请求和第二质量参数调用所述渲染引擎生成第二渲染图像,其中,所述第一渲染图像的质量高于所述第二渲染图像;
所述差值模块330,用于获取所述第一渲染图像和所述第二渲染图像的差值数据;
所述通信模块310,还用于将所述差值数据发送至所述渲染应用客户端。
可以理解,上述客户端装置可以执行图4或者图5所示的方法中终端设备所执行的步骤,服务端装置可以执行图4或者图5所示的方法中远程渲染平台所执行的步骤, 具体请参见图4、图5以及相关描述,此处不作具体限定。
参见图7,图7是本申请提供的一种计算节点的结构示意图。本实施方式的计算节点可以包括处理器410、存储器420、网卡430以及总线440。该计算节点具体可以是图1A或图1B中的渲染节点。
处理器410可以是一个或者多个通用处理器,其中,通用处理器可以是能够处理电子指令的任何类型的设备,包括中央处理器(central processing unit,CPU)、微处理器、微控制器、主处理器、控制器以及专用集成电路(application specific integrated circuit,ASIC)等等。处理器410执行各种类型的数字存储指令,例如存储在存储器420中的软件或者固件程序。在一具体的实施例中,处理器410可以是x86处理器等等。处理器410通过物理接口将命令发送给存储器420,以完成存储相关的任务。
存储器420可以包括只读存储器(read-only memory,ROM)或者硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)。存储器420可以用于存储第一质量参数、第二质量参数、第一渲染图像、第二渲染图像以及差值数据。
网卡430,还被称为网络接口控制器、网络接口卡或者局域网(local area network,LAN)适配器。
可选地,计算节点还可以包括输入设备以及输出设备中的一种或者多种,其中,输入设备可以是鼠标、键盘等等。输出设备可以包括显示器等等。
可以理解,图7所示的计算节点能够执行图4或者图5所示的方法中远程渲染平台所执行的步骤,具体请参见图4、图5以及相关描述,此处不作具体限定。
参见图8,图8是本申请提供的一种终端设备的结构示意图。本实施方式的终端设备可以包括处理器510、存储器520、输入设备530、输出设备540以及总线550。
处理器510可以是一个或者多个通用处理器,其中,通用处理器可以是能够处理电子指令的任何类型的设备,包括CPU、微处理器、微控制器、主处理器、控制器以及ASIC等等。处理器510执行各种类型的数字存储指令,例如存储在存储器520中的软件或者固件程序。在一具体的实施例中,处理器510可以是x86处理器等等。
存储器520可以包括ROM或者HDD或SSD。存储器520可以用于存储第二质量参数、第三渲染图像以及第四渲染图像。
输入设备530可以包括鼠标以及键盘等等。用户可以通过输入设备530输入远程渲染平台需要设置的第一质量参数、远程渲染平台和终端设备需要设置的第二质量参数等等。
输出设备540可以包括显示器。显示器可包括阴极射线管显示器(cathode ray tube,CRT),等离子显示器(plasma displaypanel,PDP),液晶显示器(liquid crystal display,LCD)等等。可以理解,图8所示的终端设备能够执行图4或者图5所示的方法中终端设备所执行的步骤,具体请参见图4、图5以及相关描述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算 机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、存储盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态存储盘Solid State Disk(SSD))等。
Claims (19)
- 一种渲染系统,其特征在于,包括渲染应用服务端、渲染应用客户端、渲染引擎,所述渲染应用客户端部署于终端设备,所述渲染应用服务端和所述渲染引擎部署于远程计算节点;所述渲染应用服务端,用于接收渲染请求,根据所述渲染请求和第一质量参数调用所述渲染引擎生成第一渲染图像,根据所述渲染请求和第二质量参数调用所述渲染引擎生成第二渲染图像,其中,所述第一渲染图像的质量高于所述第二渲染图像;获取所述第一渲染图像和所述第二渲染图像的差值数据,将所述差值数据发送至所述渲染应用客户端;所述渲染应用客户端,用于生成所述渲染请求,根据所述渲染请求和所述第二质量参数生成第三渲染图像;根据所述差值数据和所述第三渲染图像,生成第四渲染图像。
- 如权利要求1所述的渲染系统,其特征在于,所述渲染应用服务端,用于将逐像素点将所述第一渲染图像的像素值和所述第二渲染图像的像素值求差,以获取所述差值数据。
- 如权利要求1或2所述的渲染系统,其特征在于,所述第二渲染图像和所述第三渲染图像相同。
- 如权利要求1至3任一所述的渲染系统,其特征在于,所述渲染请求包括:目标场景的标识以及观察所述目标场景的角度;或者,所述目标场景中的部分或者全部网格的几何数据、纹理数据、材质数据以及观察所述目标场景的角度。
- 如权利要求1至4任一所述的渲染系统,其特征在于,所述渲染应用服务端使用的所述第一质量参数和所述第二质量参数是渲染应用提供商设置于所述渲染应用服务端内的;或者;所述渲染应用服务端使用的所述第一质量参数和所述第二质量参数是通过所述渲染应用客户端设置的。
- 如权利要求1至5任一所述的渲染系统,其特征在于,所述渲染应用客户端使用的所述第二质量参数是所述渲染应用提供商设置于所述渲染应用客户端内的;或者,所述渲染应用客户端使用的所述第二质量参数是通过所述渲染应用客户端设置的。
- 如权利要求1至6任一所述的渲染系统,其特征在于,所述渲染应用服务端,用于将所述差值数据压缩,将压缩后的所述差值数据发送至所述渲染应用客户端。
- 一种渲染系统,其特征在于,包括管理设备、渲染应用服务端、渲染应用客户端、渲染引擎,所述渲染应用客户端部署于终端设备,所述管理设备、所述渲染应用服务端和所述渲染引擎部署于远程计算节点;所述管理设备,用于生成渲染请求,将所述渲染请求发送至所述渲染应用服务端和所述渲染应用客户端;所述渲染应用服务端,用于接收所述渲染请求,根据所述渲染请求和第一质量参数调用所述渲染引擎生成第一渲染图像,根据所述渲染请求和第二质量参数调用所述 渲染引擎生成第二渲染图像,其中,所述第一渲染图像的质量高于所述第二渲染图像;获取所述第一渲染图像和所述第二渲染图像的差值数据,将所述差值数据发送至所述渲染应用客户端;所述渲染应用客户端,用于接收所述渲染请求,根据所述渲染请求和所述第二质量参数生成第三渲染图像;根据所述差值数据和所述第三渲染图像,生成第四渲染图像。
- 如权利要求8所述的渲染系统,其特征在于,所述渲染应用服务端使用的所述第一质量参数和所述第二质量参数是所述管理设备对所述渲染应用服务端设置的;和/或所述渲染应用客户端使用的所述第二质量参数是所述管理设备对所述渲染应用客户端设置的。
- 一种渲染方法,其特征在于,应用于渲染系统中的渲染应用客户端,所述渲染系统还包括渲染应用服务端,所述渲染应用客户端部署于终端设备,所述渲染应用服务端部署于远程计算节点,所述方法包括:所述渲染应用客户端获取渲染请求,根据所述渲染请求和第二质量参数生成第三渲染图像;所述渲染应用客户端从所述渲染应用服务端获取差值数据,所述差值数据是所述渲染应用服务端根据第一渲染图像和第二渲染图像生成的,所述第一渲染图像根据所述渲染请求和第一渲染参数生成,所述第二渲染图像根据所述渲染请求和所述第二渲染参数生成,其中,所述第一渲染图像的质量高于所述第二渲染图像;所述渲染应用客户端根据所述差值数据和所述第三渲染图像,生成第四渲染图像。
- 如权利要求10所述的方法,其特征在于,所述渲染应用客户端使用的所述第二质量参数是渲染应用提供商设置于所述渲染应用客户端内的;或者;所述渲染应用客户端使用的所述第二质量参数是用户在所述渲染应用客户端的使用过程中对所述渲染应用客户端设置的;或者;所述渲染应用客户端使用的所述第二质量参数是通过管理设备对所述渲染应用客户端设置的。
- 一种渲染方法,其特征在于,应用于渲染系统中的渲染应用服务端,所述渲染系统还包括渲染应用客户端,所述渲染应用客户端部署于终端设备,所述渲染应用服务端部署于远程计算节点,所述方法包括:所述渲染应用服务端接收渲染请求;所述渲染应用服务端根据所述渲染请求和第一质量参数调用渲染引擎生成第一渲染图像,根据所述渲染请求和第二质量参数调用所述渲染引擎生成第二渲染图像,其中,所述第一渲染图像的质量高于所述第二渲染图像;所述渲染应用服务端获取所述第一渲染图像和所述第二渲染图像的差值数据,将所述差值数据发送至所述渲染应用客户端。
- 如权利要求12的方法,其特征在于,所述渲染应用服务端使用的所述第一质量参数和所述第二质量参数是渲染应用提 供商设置于所述渲染应用服务端内的;或者,所述渲染应用服务端使用的所述第一质量参数和所述第二质量参数是通过所述渲染应用客户端设置的;或者,所述渲染应用服务端使用的所述第一质量参数和所述第二质量参数是管理设备对所述渲染应用服务端设置的。
- 一种渲染该应用客户端,其特征在于,所述渲染应用客户端包括:通信模块、渲染模块以及生成模块;所述通信模块,用于获取渲染请求;所述渲染模块,用于根据所述渲染请求和第二质量参数生成第三渲染图像;所述通信模块,还用于从所述渲染应用服务端获取差值数据,所述差值数据是所述渲染应用服务端根据第一渲染图像和第二渲染图像生成的,所述第一渲染图像根据所述渲染请求和第一渲染参数生成,所述第二渲染图像根据所述渲染请求和所述第二渲染参数生成,其中,所述第一渲染图像的质量高于所述第二渲染图像;所述生成模块,还用于根据所述差值数据和所述第三渲染图像,生成第四渲染图像。
- 一种渲染该应用服务端,其特征在于,所述渲染该应用服务端包括:通信模块、渲染模块、差值模块;所述通信模块,用于接收渲染请求;所述渲染模块,用于根据所述渲染请求和第一质量参数调用渲染引擎生成第一渲染图像,根据所述渲染请求和第二质量参数调用所述渲染引擎生成第二渲染图像,其中,所述第一渲染图像的质量高于所述第二渲染图像;所述差值模块,用于获取所述第一渲染图像和所述第二渲染图像的差值数据;所述通信模块,还用于将所述差值数据发送至所述渲染应用客户端。
- 一种终端设备,其特征在于,所述终端设备包括处理器以及存储器,所述处理器执行所述存储器中的程序,从而执行如权利要求10或11所述的方法。
- 一种计算节点,其特征在于,所述计算节点包括处理器以及存储器,所述处理器执行所述存储器中的程序,从而执行如权利要求12或13所述的方法。
- 一种计算机可读存储介质,其特征在于,包括指令,当所述指令在终端设备上运行时,使得所述终端设备执行如权利要求10或11所述的方法。
- 一种计算机可读存储介质,其特征在于,包括指令,当所述指令在计算节点上运行时,使得所述计算节点执行如权利要求12或13所述的方法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010511589 | 2020-06-08 | ||
CN202010511589.7 | 2020-06-08 | ||
CN202011063380.5A CN113838184A (zh) | 2020-06-08 | 2020-09-30 | 渲染方法、设备以及系统 |
CN202011063380.5 | 2020-09-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021249358A1 true WO2021249358A1 (zh) | 2021-12-16 |
Family
ID=78845314
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2021/098742 WO2021249358A1 (zh) | 2020-06-08 | 2021-06-07 | 渲染方法、设备以及系统 |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2021249358A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116361904A (zh) * | 2023-05-30 | 2023-06-30 | 中国铁路设计集团有限公司 | 一种渲染引擎下城轨工程bim模型渲染质量审查方法及系统 |
CN116524104A (zh) * | 2023-07-03 | 2023-08-01 | 腾讯科技(深圳)有限公司 | 渲染数据处理方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013097210A1 (zh) * | 2011-12-31 | 2013-07-04 | 华为技术有限公司 | 基于云应用的在线渲染方法和离线渲染方法及相关装置 |
CN103778656A (zh) * | 2014-02-12 | 2014-05-07 | 腾讯科技(深圳)有限公司 | 一种图像渲染方法、装置及电子设备 |
CN108109191A (zh) * | 2017-12-26 | 2018-06-01 | 深圳创维新世界科技有限公司 | 渲染方法及系统 |
CN110458648A (zh) * | 2019-07-09 | 2019-11-15 | 北京三快在线科技有限公司 | 对象展示方法、装置、电子设备及可读存储介质 |
-
2021
- 2021-06-07 WO PCT/CN2021/098742 patent/WO2021249358A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013097210A1 (zh) * | 2011-12-31 | 2013-07-04 | 华为技术有限公司 | 基于云应用的在线渲染方法和离线渲染方法及相关装置 |
CN103778656A (zh) * | 2014-02-12 | 2014-05-07 | 腾讯科技(深圳)有限公司 | 一种图像渲染方法、装置及电子设备 |
CN108109191A (zh) * | 2017-12-26 | 2018-06-01 | 深圳创维新世界科技有限公司 | 渲染方法及系统 |
CN110458648A (zh) * | 2019-07-09 | 2019-11-15 | 北京三快在线科技有限公司 | 对象展示方法、装置、电子设备及可读存储介质 |
Non-Patent Citations (1)
Title |
---|
EDUARDO CUERVO , ALEC WOLMAN , LANDON P. COX , KIRON LEBECK , ALI RAZEEN , STEFAN SAROIU , MADANLAL MUSUVATHI: "Kahawai: High-Quality Mobile Gaming Using GPU Offload", MOBISYS '15: PROCEEDINGS OF THE 13TH ANNUAL INTERNATIONAL CONFERENCE ON MOBILE SYSTEMS, APPLICATIONS, AND SERVICES, 18 May 2015 (2015-05-18), pages 121 - 135, XP058510677, ISBN: 978-1-4503-3358-0, DOI: 10.1145/2742647.2742657 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116361904A (zh) * | 2023-05-30 | 2023-06-30 | 中国铁路设计集团有限公司 | 一种渲染引擎下城轨工程bim模型渲染质量审查方法及系统 |
CN116361904B (zh) * | 2023-05-30 | 2023-08-22 | 中国铁路设计集团有限公司 | 一种渲染引擎下城轨工程bim模型渲染质量审查方法及系统 |
CN116524104A (zh) * | 2023-07-03 | 2023-08-01 | 腾讯科技(深圳)有限公司 | 渲染数据处理方法、装置、设备及存储介质 |
CN116524104B (zh) * | 2023-07-03 | 2023-10-03 | 腾讯科技(深圳)有限公司 | 渲染数据处理方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111033570B (zh) | 使用两个渲染计算装置从计算机图形渲染图像 | |
WO2021164150A1 (zh) | 一种结合光线跟踪的Web端实时混合渲染方法、装置及计算机设备 | |
US10776997B2 (en) | Rendering an image from computer graphics using two rendering computing devices | |
CN112840378B (zh) | 在路径追踪中使用共享光照贡献进行相互作用的全局照明 | |
CN113838184A (zh) | 渲染方法、设备以及系统 | |
CN113946402B (zh) | 基于渲染分离的云手机加速方法、系统、设备及存储介质 | |
WO2021249358A1 (zh) | 渲染方法、设备以及系统 | |
CN112669428B (zh) | 一种基于服务器和客户端协作的bim模型渲染方法 | |
CN112316433B (zh) | 游戏画面渲染方法、装置、服务器和存储介质 | |
WO2022063260A1 (zh) | 一种渲染方法、装置及设备 | |
CN114758051A (zh) | 一种图像渲染方法及其相关设备 | |
TW201842775A (zh) | 用於在視訊編碼中的順延後處理的系統及方法 | |
CN117280680A (zh) | 动态网格对齐的并行方式 | |
CN115861510A (zh) | 对象渲染方法、装置、电子设备、存储介质及程序产品 | |
US20210312704A1 (en) | Rendering using shadow information | |
Ikkala et al. | DDISH-GI: Dynamic Distributed Spherical Harmonics Global Illumination | |
WO2022135050A1 (zh) | 渲染方法、设备以及系统 | |
Tan et al. | DHR+ S: distributed hybrid rendering with realistic real-time shadows for interactive thin client metaverse and game applications | |
US12118653B2 (en) | Depth analyzer and shading rate controller | |
CN118096982B (zh) | 一种故障反演培训平台的构建方法及系统 | |
TWI854466B (zh) | 計算機圖形處理方法以及系統以及計算機可讀設備 | |
Jääskeläinen | DDISH-GI: Dynamic Distributed Spherical Harmonics Global Illumination | |
Ikkala | Scalable Parallel Path Tracing | |
CN115100346A (zh) | 头发光照渲染方法、图像处理模型训练方法、装置及设备 | |
CN114581588A (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: 21821583 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 21821583 Country of ref document: EP Kind code of ref document: A1 |