WO2021190651A1 - 渲染质量调整方法以及相关设备 - Google Patents

渲染质量调整方法以及相关设备 Download PDF

Info

Publication number
WO2021190651A1
WO2021190651A1 PCT/CN2021/083467 CN2021083467W WO2021190651A1 WO 2021190651 A1 WO2021190651 A1 WO 2021190651A1 CN 2021083467 W CN2021083467 W CN 2021083467W WO 2021190651 A1 WO2021190651 A1 WO 2021190651A1
Authority
WO
WIPO (PCT)
Prior art keywords
rendering
task
platform
computing resources
cloud
Prior art date
Application number
PCT/CN2021/083467
Other languages
English (en)
French (fr)
Inventor
尹青
Original Assignee
华为技术有限公司
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
Priority claimed from CN202010449900.XA external-priority patent/CN113516774A/zh
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2021190651A1 publication Critical patent/WO2021190651A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/14Charging, metering or billing arrangements for data wireline or wireless communications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/80Actions related to the user profile or the type of traffic

Definitions

  • This application relates to image rendering, in particular to a rendering quality adjustment method and related equipment.
  • 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 real-time simulations with predetermined scripts such as movies and advertisements; real-time rendering is usually used For flight training, 3D games and interactive architectural demonstrations, real-world simulations without predetermined scripts.
  • Real-time rendering requires very high calculation speed. Taking a 3D game as an example, for a refresh rate of 30 frames per second, the time for each frame of image is about 33 milliseconds. Therefore, the rendering time of each frame of image must not exceed 33 milliseconds.
  • rasterization rendering is usually used in real-time rendering. Rasterized rendering uses a render-pipeline design. Once the rendering pipeline is started, the entire processing flow must be coherent. To improve the image quality, the original rendering pipeline must be interrupted and restarted. The new rendering pipeline, therefore, it is difficult to adjust the rendering quality.
  • the present application provides a rendering quality adjustment method and related equipment, which can adjust the rendering quality in real time as required.
  • a rendering quality adjustment method including:
  • the cloud rendering platform obtains rendering tasks
  • the cloud rendering platform receives a rendering resource request instruction sent by a user equipment
  • the cloud rendering platform allocates computing resources to the rendering task for rendering according to the rendering resource request instruction, so as to obtain a first rendered image
  • the cloud rendering platform uses the adjusted computing resources allocated for the rendering task to render the rendering task, so as to obtain a second rendered image.
  • the cloud rendering platform when the rendering resource adjustment instruction is used to improve the rendering quality of the rendering task, the cloud rendering platform adjusts the computing resources allocated to the rendering task according to the rendering resource adjustment instruction Including: increasing the computing resources allocated for the rendering task; or in the case where the rendering resource adjustment instruction is used to reduce the rendering quality of the rendering task, the cloud rendering platform adjusts to the value according to the rendering resource adjustment instruction.
  • the computing resources allocated for the rendering task include: reducing the computing resources allocated for the rendering task.
  • the method further includes:
  • the method further includes:
  • the second pricing information is calculated according to the adjusted computing resources allocated to the rendering task, where the second pricing information is the cost of rendering the second rendered image.
  • ray tracing rendering is used to render the rendering task
  • the rendering resource request instruction includes one or more of rendering indicators or resource parameters; wherein, the rendering indicators include the number of samples per pixel One or more of Spp, the number of light bounces, the number of object modeling triangles, the number of vertices and screen noise, and the frame rate.
  • the resource parameters include the number of processors, the frequency of the processors, and the size of memory And one or more of the network bandwidth.
  • the rendering task is sent by the user equipment, or sent by the management device.
  • a cloud rendering platform including: an acquisition module, a receiving module, and a rendering engine;
  • the acquisition module is used to acquire a rendering task
  • the receiving module is configured to receive a rendering resource request instruction sent by a user equipment
  • the rendering engine is configured to allocate computing resources to the rendering task for rendering according to the rendering resource request instruction, so as to obtain a first rendered image
  • the receiving module is configured to receive a rendering resource adjustment instruction sent by the user equipment
  • the rendering engine is configured to adjust the computing resources allocated to the rendering task according to the rendering resource adjustment instruction
  • the rendering engine is configured to use the adjusted computing resources allocated for the rendering task to render the rendering task, so as to obtain a second rendered image.
  • the cloud rendering platform when the rendering resource adjustment instruction is used to improve the rendering quality of the rendering task, the cloud rendering platform adjusts the computing resources allocated to the rendering task according to the rendering resource adjustment instruction Including: increasing the computing resources allocated for the rendering task; or in the case where the rendering resource adjustment instruction is used to reduce the rendering quality of the rendering task, the cloud rendering platform adjusts to the value according to the rendering resource adjustment instruction.
  • the computing resources allocated for the rendering task include: reducing the computing resources allocated for the rendering task.
  • the cloud rendering platform further includes a pricing module configured to calculate first pricing information based on allocating computing resources for the rendering task, where the first pricing information is rendering the The cost of the first rendered image;
  • the pricing module is further configured to calculate second pricing information according to the adjusted computing resources allocated to the rendering task, where the second pricing information is the cost of rendering the second rendered image.
  • the rendering task is rendered using ray tracing rendering
  • the rendering resource request instruction includes one or more of rendering indicators, resource parameters, and display parameters; wherein, the rendering indicators include every One or more of the number of pixel samples Spp, the number of light bounces, the number of object modeling triangles, the number of vertices, and the screen noise.
  • the resource parameters include the number of processors, the frequency of the processors, and the size of memory And one or more of the network bandwidth, the display parameter includes a frame rate.
  • the rendering task is sent by the user equipment, or sent by the management device.
  • a computer-readable storage medium including instructions, which when run on the computer, cause the computer to execute the method according to any one of the first aspects.
  • a computer program product is provided.
  • the method according to any one of the first aspects will be executed.
  • a rendering platform in a fifth aspect, includes at least one rendering node, and each rendering node includes a processor and a memory. The method described in one item.
  • the cloud rendering platform can adjust the computing resources in real time according to the rendering resource adjustment instruction to perform calculations, thereby dynamically adjusting the rendering quality and adapting to different needs of users.
  • FIGS. 1A to 1B are schematic diagrams of some implementation manners of ray tracing rendering in a simple scene involved in this application;
  • FIG. 2 is a schematic diagram of ray tracing rendering in a complex scene according to an embodiment of the present application
  • Figure 3 is a schematic diagram of the sawtooth effect when the number of SPPs involved in this application is low;
  • Figure 4 is a schematic diagram of overcoming the sawtooth effect when the number of SPPs involved in this application is relatively high;
  • 5A to 5A are schematic diagrams of no caustic spot formed when the number of SPPs involved in this application is low;
  • 5B is a schematic diagram of the formation of a caustic spot when the number of SPPs involved in the present application is relatively high;
  • FIG. 6 is a schematic structural diagram of a cloud rendering system according to an embodiment provided by the present application.
  • FIGS. 7A to 7B are schematic diagrams of the smart terminal improving and reducing the rendering quality of the rendered image in real time by pressing buttons;
  • 8A to 8B are schematic diagrams of real-time improvement and reduction of rendering quality by the computer through keystrokes
  • FIGS. 9A to 9B are schematic diagrams of real-time improvement and reduction of rendering quality by VR devices through buttons;
  • 10A to 10B are schematic diagrams of the mapping relationship between the increase and decrease of the number of button presses and the adjustment index, respectively;
  • 11A to 11D are schematic diagrams of some implementation manners of adjusting computing resources to perform ray tracing rendering when the rendering index is adjusted;
  • FIG. 12 is a flow interaction diagram of a rendering quality adjustment method according to an embodiment of the present application.
  • FIG. 13 is a flow interaction diagram of a rendering quality adjustment method according to another embodiment of the present application.
  • FIG. 14 is a flow interaction diagram of a rendering quality adjustment method according to another embodiment of the present application.
  • FIG. 15 is a schematic structural diagram of a cloud rendering platform proposed by this application.
  • FIG. 16 is a structural block diagram of a smart terminal in an implementation manner proposed by this application.
  • FIG. 17 is a structural block diagram of a computer in an implementation manner proposed by this application.
  • FIG. 18 is a structural block diagram of a cloud rendering platform in an implementation manner proposed by this application.
  • Ray tracing rendering is a rendering method that generates a rendered image by tracing the path of light that enters the model along the light emitted from the viewpoint of the camera (or human eye) toward each pixel of the rendered image.
  • the core idea of ray tracing rendering is to trace rays backwards from the point of view of the camera (or the human eye). Since only the light that can finally enter the camera (or the human eye) is useful, tracing the light backwards can effectively reduce the amount of data.
  • the rays in the ray tracing rendering mainly exist in two scenes: reflection and refraction, which will be described below in conjunction with specific embodiments.
  • the model has only one light source 130 and one opaque sphere 140.
  • a light ray is emitted from the viewpoint E of the camera 110, and is projected to a pixel point O 1 in the rendered image 120, and then continues to be emitted to a point P 1 of the opaque sphere 140, and then is reflected to the light source L.
  • point P 1 color determines the color of the pixel point O 1.
  • Another ray of light is emitted from the viewpoint E of the camera 110, and is projected to another pixel O 2 in the rendered image 120, and then continues to exit to a point P 2 of the opaque sphere 140, and then is reflected to the light source L, and the point There is an obstacle opaque sphere 140 between P 2 and the light source L. At this time, the point P 2 is located in the shadow of the opaque sphere 140, and the color of the pixel point O 2 is black.
  • the model has only one light source 230 and one transparent sphere 240.
  • a light ray is emitted from the viewpoint E of the camera 210 and is projected to a pixel point O 3 in the rendered image 220, and then continues to be emitted to a point P 3 of the transparent sphere 240, and then is refracted to the light source L.
  • the point P The color of 3 determines the color of pixel O 3 .
  • Figure 1A assumes that there is only one opaque sphere in the scene
  • Figure 1B assumes that there is only one transparent sphere in the scene.
  • the scene is far more complicated than Figure 1A and Figure 1B.
  • the model includes a light source 330, two transparent spheres 340 and 350, and an opaque object 360.
  • a light ray is emitted from the viewpoint E of the camera 310, projected to a pixel O 4 in the rendered image 320, and continues to be emitted to a point P 1 of the transparent sphere 340, and a shadow test line S1 is made from P 1 to the light source L, during which
  • the local light illumination model can be used to calculate the light intensity of the light source to P 1 in the direction of the line of sight E as the local light intensity of the point.
  • the light intensity in this direction is set to zero, and the tracing of the ray direction is ended.
  • the refracted ray T1 propagates inside the transparent object 340 and continues to emerge and intersect the transparent object 350 at the point P 2. Since this point is inside the transparent object 350, it can be assumed that its local light intensity is zero.
  • the reflected ray R2 and refraction are generated.
  • the light T2 in the direction of the reflected light R2 can continue to recursively track to calculate its light intensity, and it will not continue here. Refracted light continues to track T2, T2 opaque object 360 at point P 3, P 3 and the light source L for shadow testing line S3, the object is not blocked, then the calculated local light intensity thereat, since the non-transparent opaque objects 360 , then, you may continue to track the direction of the reflected light intensity R3, combined with local light intensity to obtain the light intensity at P 3.
  • the tracking of the reflected light R3 is similar to the previous process, and the algorithm can proceed recursively. Repeat the above process until the ray meets the tracing termination condition. In this way, we can get the light intensity of the pixel O 4 , which is its corresponding color value.
  • the complex scene shown in Figure 2 above is only one of the complex scenes.
  • the number of light sources, the number of transparent objects, the number of opaque objects, the position of the camera, and the position of the light source in the model can be changed, and there is no specific limitation here.
  • the rendering quality of ray tracing rendering can depend on the following rendering indicators, resource parameters, and display parameters. in,
  • Rendering indicators may include the number of samples per pixel (Sample per pixel, Spp), the number of bounces of light (Bounce), the number of triangles in the object modeling, the number of vertices, image noise, and so on. The following will take Spp and Bounce as examples for detailed introduction.
  • SPP can be defined as the number of rays sampled by each pixel.
  • the reason why the number of Spp can affect the quality of the rendered image is that if the Spp is 1 (that is, only one light passes through each pixel), then the color of the pixel may change greatly even if the light shifts slightly.
  • the following examples assume that the light will eventually be reflected to the light source, but for the sake of brevity, it will not be described in the following. Take the example shown in Figure 3, if the light passes through the pixel A, then the light will be projected on the red opaque object 1. At this time, the color value of the pixel A is determined by the projection point on the opaque object 1. , That is, the color of pixel A is red.
  • the color value of the pixel point B is determined by the projection point on the opaque object 2, that is, the color of the pixel point B Is green. Therefore, although the pixel point A and the pixel point B are adjacent pixels, the color of the pixel point A and the pixel point B will be very different, which will produce a sawtooth effect.
  • Spp is n (that is, n rays are emitted from the viewpoint to the same pixel on the rendered image)
  • these n rays of light are projected on opaque objects through the pixels.
  • the n color values of the pixel can be determined according to the n projection points, and finally, the n color values are averaged to obtain the final color value of the pixel.
  • the picture reference frame the lower the sampling noise. Therefore, the greater the number of Spp, the better the anti-aliasing effect of the rendered image, 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, as shown in FIG.
  • the first ray is emitted from the viewpoint E of the camera 410, passes through a pixel O 1 of the rendered image 420, exits to a point P 1 of the transparent object 440, and is refracted To the light point H 1 ;
  • the second ray is emitted from the viewpoint E of the camera 410, passes through a pixel O 2 of the rendered image 420, exits to a point P 2 of the transparent object 440, and is refracted to the light point H 2 ;
  • the viewpoint E of the camera 410 emits a third ray, which passes through a pixel O 3 of the rendered image 420, exits to a point P 3 of the transparent object 440, and is refracted to a light point H 3 , a light point H 1 , and a light point H 2
  • the light spot H 3 is only an isolated light spot, which cannot be gathered into a caustic spot.
  • the first ray is emitted from the viewpoint E of the camera 410, passes through a pixel O 1 of the rendered image 420, and exits to a point P 1 of the transparent object 440, and is refracted To the light point H 1 ;
  • the second ray is emitted from the viewpoint E of the camera 410, passes through a pixel O 2 of the rendered image 420, exits to a point P 2 of the transparent object 440, and is refracted to the light point H 2 ;
  • the viewpoint E of the camera 410 emits a third ray, which passes through a pixel O 3 of the rendered image 420, exits to a point P 3 of the transparent object 440, and is refracted to the light point H 3 ;
  • the fifth ray is emitted from the viewpoint E of the camera 410
  • the number of ray bounces is the sum of the maximum number of reflections and refractions for tracing the ray before the tracing of the ray is terminated.
  • the reason why the number of light bounces can affect the image 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 unlimited. However, in 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, the more effective light that can be traced, the better the refraction effect between multiple transparent objects, the more realistic, and the better the image quality.
  • the resource parameters may include one or more of the number of processors, the main frequency of the processors, the size of the memory, and the network bandwidth.
  • the processor's frequency is higher, the rendering efficiency is higher, and the frame rate of the image is higher; when the memory is larger, the rendering efficiency is higher, and the frame rate of the image is higher; when the network bandwidth is larger, the efficiency of rendering the image is transmitted.
  • the processor's frequency is higher, the rendering efficiency is higher, and the frame rate of the image is higher; when the memory is larger, the rendering efficiency is higher, and the frame rate of the image is higher; when the network bandwidth is larger, the efficiency of rendering the image is transmitted
  • the higher the value the higher the frame rate of the rendered image displayed on the user device.
  • the display parameters may include: frame rate, etc. The higher the display parameters, the higher the user experience.
  • a rendering task such as an application or a movie, includes multiple frames of rendered images.
  • the rendering quality of a rendering task includes at least one of the following two aspects: the quality of the rendered image in each frame, and the efficiency of the rendered image (that is, the frame rate).
  • the rendering quality of the rendering task can be adjusted by adjusting the rendering indicators and resource parameters.
  • the higher the rendering index the greater the amount of calculation required for ray tracing rendering, and accordingly, the more resources (computing resources, storage resources, network resources, etc.) are required.
  • the resources required for ray tracing rendering can be provided on demand through the cloud rendering platform, thereby providing rendering quality suitable for user needs on demand.
  • FIG. 6 is a schematic structural diagram of a cloud rendering system provided by the present application.
  • the cloud rendering system may be used to implement ray tracing rendering, including: a user equipment 510, a network device 520, and a cloud rendering platform 530.
  • the user device 510 may be a device that needs to display rendered images in real time, for example, it may be a virtual reality device (VR) used for flight training, a computer used for 3D games, and a smart phone used for interactive architectural demonstrations. Wait, there is no specific limitation here.
  • VR virtual reality device
  • the network device 520 is used to transmit data between the user equipment 510 and the cloud rendering platform 530 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 cloud rendering platform 530 includes multiple rendering nodes, and each rendering node includes rendering hardware, virtual machines, operating systems, rendering engines, and rendering applications 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
  • network resources can be divided into multiple network unit resources. Therefore, the cloud rendering platform can freely combine on the basis of unit resources according to the user's resource needs, so as to provide resources for the user's needs.
  • computing resources can be divided into 5u computing unit resources
  • storage resources can be divided into 10G storage unit resources
  • 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 in which the resources of multiple physical hosts are constructed into a unified resource pool through virtualization technology, and independent resources can be flexibly isolated to run users' applications according to the needs of users.
  • virtualization services may include Virtual Machine (VM) services, Bare Metal Server (BMS) services, and Container (Container) services.
  • VM Virtual Machine
  • BMS Bare Metal Server
  • Container Container
  • the VM service may be a service in which a virtual machine (Virtual Machine, VM) resource pool is virtualized on multiple physical hosts through virtualization technology to provide users with VMs 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 virtual computer simulated, that is, a logical computer.
  • BMS is an elastically scalable high-performance computing service with no difference in computing performance from traditional physical machines, and has the characteristics of safe physical isolation.
  • Container is a kernel virtualization technology that can provide lightweight virtualization to achieve the purpose of isolating user space, processes, and resources.
  • the rendering engine can be a ray tracing renderer, which is used to implement a ray tracing rendering algorithm. Commonly used ray tracing renderers can include Unity, V-ray, Unreal, RenderMan, and so on.
  • the rendering application can be used to call the rendering engine to complete the rendering of the rendered image. Common rendering applications can include: game applications, VR applications, movie special effects, animations, and so on.
  • Figures 7A to 7B, Figures 8A to 8B, and Figures 9A to 9B respectively take application scenarios where the user equipment is a smart terminal, a computer, and a VR device as examples, and describe in detail how the user can render the rendered image in real time by pressing the button The quality adjustments are introduced in detail.
  • Figures 7A to 7B take the user equipment as an intelligent terminal as an example, and describe how the user adjusts the rendering index, thereby adjusting the rendering quality of the rendered image.
  • the smart terminal is displaying the rendered image in real time.
  • the side of the smart terminal is equipped with two buttons: increase button and decrease button.
  • the user can increase or decrease the rendering quality by pressing the increase button and the decrease button.
  • FIG. 7A when the user wants to improve the rendering quality, he can press the increase button on the side of the smart terminal.
  • FIG. 7B when the user wants to reduce the rendering quality, he can press the reduction button on the side of the smart terminal.
  • the rendering quality is adjusted by adding keys and reducing keys, and adding keys and reducing keys are two different physical keys.
  • adding keys and reducing keys can be integrated into the same physical key
  • the increase button and the decrease button may be two different virtual buttons, moreover, the components of the increase button and the decrease button may not be used, but other components such as a progress bar, which are not specifically limited here.
  • Figures 8A to 8B take the user device as a computer as an example, and describe how the user adjusts the rendering index to adjust the rendering quality.
  • the smart terminal is displaying the rendered image in real time.
  • the user can set the left button of the mouse to increase the button, and the right button of the mouse to decrease the button.
  • the user can increase or decrease the rendering quality by pressing the left button of the mouse and the right button of the mouse.
  • FIG. 8A when the user wants to improve the rendering quality, he can press the left button of the mouse.
  • the more the left button of the mouse of the terminal device is pressed by the user the higher the rendering quality is improved.
  • FIG. 8B when the user wants to reduce the rendering quality, he can press the right button of the mouse.
  • the rendering quality can be adjusted by the left and right keys of the mouse. In other embodiments, the rendering quality can also be adjusted by the up and down keys of the keyboard, or the rendering quality can be adjusted by the wheel of the mouse, etc. There is no specific limitation here.
  • Figures 9A to 9B take the user equipment as a VR device as an example, and describe how the user adjusts the rendering index to adjust the rendering quality.
  • Two buttons, an increase button and a decrease button are set on the side of the VR device, and the user can increase or decrease the rendering quality by pressing the increase button and the decrease button.
  • FIG. 9A when the user wants to improve the rendering quality, he can press the increase button on the side of the VR device. The more the increase button of the VR device is pressed by the user, the higher the rendering quality is improved.
  • FIG. 9B when the user wants to reduce the rendering quality, he can press the reduce button on the side of the VR device. The more the VR device reduce button is pressed by the user, the higher the rendering quality decreases.
  • the rendering quality is adjusted by adding keys and reducing keys, and adding keys and reducing keys are two different physical keys. However, in practical applications, adding keys and reducing keys can be integrated into the same physical key Above, there is no specific limitation here.
  • the real-time adjustment of the rendering quality by the user by pressing the button on the user device mainly includes the following processes: (1) The user obtains the adjustment index and/or adjustment parameter by pressing the button on the user device. (2) The user equipment sends the adjustment indicators and/or adjustment parameters to the cloud rendering platform through the network device. (3) The cloud rendering platform adjusts computing resources according to the adjustment indicators and/or adjustment parameters to perform ray tracing rendering, so as to obtain a rendered image. (4) The cloud rendering platform sends the rendered image to the user device through the network device, and presents it to the user.
  • step (1) the user obtains the adjustment index and/or the adjustment parameter by pressing a button on the user equipment.
  • the user equipment can be preset to increase the number of button presses and the adjustment index (SPP, the number of light rebounds) and/or the mapping relationship between the adjustment parameters (main frequency and memory), and to reduce the number of button presses and Adjust the mapping relationship between the index (SPP, the number of light bounces) and/or the adjustment parameters (frequency and memory).
  • step (3) the cloud rendering platform adjusts computing resources according to the adjustment index to perform ray tracing rendering, so as to obtain a rendered image.
  • the adjustment index is used to improve the index, and computing resources need to be increased for ray tracing rendering, and the adjustment index is to reduce the index, and the calculation resources need to be reduced for ray tracing rendering.
  • the index For adjusting the index to improve the index, it is necessary to increase the computing resources for ray tracing rendering.
  • the first rendering index is SPP is 1 (the number of light transmitted per pixel is 1), and the cloud rendering platform uses threads 1 Perform ray tracing on the ray 1 passing through the pixel A, where the computing resource used by the thread 1 is the first computing resource.
  • the cloud rendering platform keeps the light 1 passing through the pixel A through thread 1 Perform ray tracing, and the newly created thread 2 of the cloud rendering platform performs ray tracing on the newly added light 2 passing through the pixel A.
  • the computing resource used by thread 2 is the newly added computing resource, and the second computing resource is equal to The sum of the first computing resource and the newly added computing resource.
  • Ray tracing is performed for the first rebound, where the computing resource used by thread 1 is the first computing resource.
  • the cloud rendering platform keeps the thread 1 pair Ray tracing is performed on the first rebound of ray 1 passing through the pixel A, and the cloud rendering platform newly created thread 2 performs ray tracing on the second rebound of ray 1 passing through the pixel A, where thread 2
  • the used computing resource is a newly added computing resource, and the second computing resource is equal to the sum of the first computing resource and the newly added computing resource.
  • the cloud rendering platform uses threads 1 Perform ray tracing on light 1 passing through pixel A, and perform ray tracing on light 2 passing through pixel A through thread 2.
  • the computing resource used by thread 1 is the first computing resource
  • the computing resource used by thread 2 is The computing resource is the first computing resource.
  • the cloud rendering platform keeps the light 1 passing through the pixel A through thread 1 Perform ray tracing, and the cloud rendering platform deletes thread 2 to perform ray tracing on the newly added ray 2 passing through the pixel A.
  • the computing resource used by thread 2 is the reduced computing resource, and the second computing resource is equal to the first The difference between computing resources and reduced computing resources.
  • the computing resource used by thread 1 is the first computing resource, and thread 2 is used
  • the computing resource of is the second computing resource.
  • the cloud rendering platform keeps the thread 1 pair Ray tracing is performed on the first bounce of ray 1 passing through the pixel A, and the cloud rendering platform deletes the thread 2 to perform ray tracing on the second bounce of ray 1 passing through the pixel A.
  • the used computing resource is a reduced computing resource, and the second computing resource is equal to the difference between the first computing resource and the reduced computing resource.
  • the number of first rendering indicators, the number of second rendering indicators, and the number of adjustment indicators are merely specific examples. In actual applications, they may also be other values, which are not specifically limited here.
  • the above examples are all triggered by the user by pressing a button, but in actual applications, the user can also be a professional with a deep technical foundation, and can directly call the Application Programming Interface (API) to trigger.
  • API Application Programming Interface
  • FIG. 12 is a flow interaction diagram of the rendering quality adjustment method according to an embodiment of the present application.
  • the rendering quality adjustment method in this embodiment may include the following steps:
  • the cloud rendering platform receives the rendering task sent by the management device.
  • the management device receives the rendering task sent by the cloud rendering platform.
  • the management device may be a third-party device.
  • the user equipment may be the equipment where the user plays the application of the 3D game
  • the management equipment may be the equipment of the game developer that provides the application of the 3D game.
  • S102 The user equipment obtains the rendering resource request instruction input by the user.
  • the rendering resource request instruction includes one or more of rendering indicators, resource parameters, and display parameters.
  • the rendering index includes one or more of the number of samples per pixel Spp, the number of light bounces, the number of object modeling triangles, the number of vertices, and picture noise.
  • SPP can be defined as the number of rays sampled by each pixel.
  • the number of ray bounces is the sum of the maximum number of reflections and refractions for tracing the ray before the tracing of the ray is terminated.
  • the higher the rendering index for example, the greater the number of Spp and the more ray bounces, the greater the amount of calculation required for ray tracing rendering. Accordingly, the required resources (computing resources, storage resources, network resources, etc.) Etc.) will be more, the better the rendering quality.
  • the resource parameter includes one or more of the number of processors, the main frequency of the processors, the size of the memory, and the network bandwidth.
  • the higher the resource parameter the more resources allocated to the rendering task, the higher the frame rate of the rendered image, and the better the user experience.
  • the display parameters may include frame rate, etc., the higher the rendering quality, the more resources (computing resources, storage resources, network resources, etc.) are required.
  • S103 The user equipment sends the rendering resource request instruction to the cloud rendering platform through the network device.
  • the cloud rendering platform receives the rendering resource request instruction sent by the user equipment through the network device.
  • the cloud rendering platform allocates computing resources to perform real-time rendering for the rendering task according to the rendering resource request instruction, so as to obtain the first rendered image.
  • S105 The cloud rendering platform sends the first rendered image to the user equipment through the network device.
  • the user equipment receives the first rendered image sent by the cloud rendering platform through the network device.
  • the cloud rendering platform calculates first pricing information based on allocating computing resources for the rendering task, where the first pricing information is the cost of rendering the first rendered image.
  • S106 The user equipment obtains the rendering resource adjustment instruction input by the user.
  • the rendering resource adjustment instruction is to improve the rendering quality, or to reduce the rendering quality.
  • S107 The user equipment sends the rendering resource adjustment instruction to the cloud rendering platform through the network device.
  • the cloud rendering platform adjusts the computing resources allocated to the rendering task according to the rendering resource adjustment instruction, and uses the adjusted computing resources allocated for the rendering task to render the rendering task, Thus, the second rendered image is obtained.
  • the cloud rendering platform adjusts the amount allocated to the rendering task according to the rendering resource adjustment instruction
  • the computing resources include: increasing computing resources allocated for the rendering task; or in the case where the rendering resource adjustment instruction is used to reduce the rendering quality of the rendering task, the cloud rendering platform adjusts according to the rendering resource adjustment instruction
  • the computing resources allocated for the rendering task include: reducing the computing resources allocated for the rendering task.
  • S109 The cloud rendering platform sends the second rendered image to the user equipment through the network device.
  • the cloud rendering platform calculates the second pricing information according to the adjusted computing resources allocated to the rendering task, where the second pricing information is the cost of rendering the second rendered image.
  • the application provider can first propose a rendering task on the cloud rendering platform, and then each user device can adjust the rendering quality according to its own needs.
  • the application provider of a 3D game can first propose rendering The task is to render the game scene of a 3D game.
  • Some gamers are willing to pay to improve the rendering quality of the game scene. They can send a rendering resource adjustment command to request the cloud rendering platform to provide more computing resources; If the image quality requirement is not high, you can send a rendering resource adjustment instruction to request the cloud rendering platform to reduce the computing resources provided and reduce the cost.
  • FIG. 13 is a flow interaction diagram of the rendering quality adjustment method according to another embodiment of the present application.
  • the rendering quality adjustment method in this embodiment may include the following steps:
  • the cloud rendering platform receives the rendering task sent by the user equipment. Correspondingly, the cloud rendering platform receives the rendering task sent by the user equipment.
  • the rendering task may be the task of rendering multi-frame images proposed by the same application program, or the task of rendering multi-frame images proposed by multiple applications separately. limited.
  • the user may have been playing the A game, then the rendering task may be a rendering task initiated by the application of the A game. The user may also play the A game first, and then play the B game. Then, the rendering task may be a rendering task initiated by the application of the A game and the application of the B game.
  • S202 The user equipment obtains the rendering resource request instruction input by the user.
  • the rendering resource request instruction includes one or more of rendering indicators, resource parameters, and display parameters.
  • the rendering index includes one or more of the number of samples per pixel Spp, the number of light bounces, the number of object modeling triangles, the number of vertices, and picture noise.
  • SPP can be defined as the number of rays sampled by each pixel.
  • the number of ray bounces is the sum of the maximum number of reflections and refractions for tracing the ray before the tracing of the ray is terminated.
  • the higher the rendering index for example, the greater the number of Spp and the more ray bounces, the greater the amount of calculation required for ray tracing rendering. Accordingly, the required resources (computing resources, storage resources, network resources, etc.) Etc.) will be more, the better the rendering quality.
  • the resource parameter includes one or more of the number of processors, the main frequency of the processors, the size of the memory, and the network bandwidth.
  • the higher the resource parameter the more resources allocated to the rendering task, the higher the frame rate of the rendered image, and the better the user experience.
  • the display parameters may include frame rate, etc., the higher the rendering quality, the more resources (computing resources, storage resources, network resources, etc.) are required.
  • S203 The user equipment sends the rendering resource request instruction to the cloud rendering platform through the network device.
  • the cloud rendering platform receives the rendering resource request instruction sent by the user equipment through the network device.
  • the cloud rendering platform allocates computing resources to perform real-time rendering for the rendering task according to the rendering resource request instruction, so as to obtain the first rendered image.
  • S205 The cloud rendering platform sends the first rendered image to the user equipment through the network device.
  • the user equipment receives the first rendered image sent by the cloud rendering platform through the network device.
  • the cloud rendering platform calculates first pricing information based on allocating computing resources for the rendering task, where the first pricing information is the cost of rendering the first rendered image.
  • S206 The user equipment obtains the rendering resource adjustment instruction input by the user.
  • the rendering resource adjustment instruction is to improve the rendering quality, or to reduce the rendering quality.
  • S207 The user equipment sends the rendering resource adjustment instruction to the cloud rendering platform through the network device.
  • the cloud rendering platform adjusts the computing resources allocated to the rendering task according to the rendering resource adjustment instruction, and uses the adjusted computing resources allocated for the rendering task to render the rendering task, Thus, the second rendered image is obtained.
  • the cloud rendering platform adjusts the amount allocated to the rendering task according to the rendering resource adjustment instruction
  • the computing resources include: increasing computing resources allocated for the rendering task; or in the case where the rendering resource adjustment instruction is used to reduce the rendering quality of the rendering task, the cloud rendering platform adjusts according to the rendering resource adjustment instruction
  • the computing resources allocated for the rendering task include: reducing the computing resources allocated for the rendering task.
  • S209 The cloud rendering platform sends the second rendered image to the user equipment through the network device.
  • the cloud rendering platform calculates the second pricing information according to the adjusted computing resources allocated to the rendering task, where the second pricing information is the cost of rendering the second rendered image.
  • FIG. 14 is a flow interaction diagram of the rendering quality adjustment method according to another embodiment of the present application.
  • the rendering quality adjustment method in this embodiment may include the following steps:
  • the cloud rendering platform receives the rendering task sent by the first user equipment. Correspondingly, the cloud rendering platform receives the rendering task sent by the first user equipment.
  • the rendering task may be the task of rendering multi-frame images proposed by the same application program, or the task of rendering multi-frame images proposed by multiple applications separately. limited.
  • the user may have been playing the A game, then the rendering task may be a rendering task initiated by the application of the A game. The user may also play the A game first, and then play the B game. Then, the rendering task may be a rendering task initiated by the application of the A game and the application of the B game.
  • S302 The first user equipment obtains the rendering resource request instruction input by the user.
  • the rendering resource request instruction includes one or more of rendering indicators, resource parameters, and display parameters.
  • the rendering index includes one or more of the number of samples per pixel Spp, the number of light bounces, the number of object modeling triangles, the number of vertices, and picture noise.
  • SPP can be defined as the number of rays sampled by each pixel.
  • the number of ray bounces is the sum of the maximum number of reflections and refractions for tracing the ray before the tracing of the ray is terminated.
  • the higher the rendering index for example, the greater the number of Spp and the more ray bounces, the greater the amount of calculation required for ray tracing rendering. Accordingly, the required resources (computing resources, storage resources, network resources, etc.) Etc.) will be more, the better the rendering quality.
  • the resource parameter includes one or more of the number of processors, the main frequency of the processors, the size of the memory, and the network bandwidth.
  • the higher the resource parameter the more resources allocated to the rendering task, the higher the frame rate of the rendered image, and the better the user experience.
  • the display parameters may include frame rate, etc., the higher the rendering quality, the more resources (computing resources, storage resources, network resources, etc.) are required.
  • S303 The first user equipment sends the rendering resource request instruction to the cloud rendering platform through the network device.
  • the cloud rendering platform receives the rendering resource request instruction sent by the first user equipment through the network device.
  • S304 The cloud rendering platform allocates computing resources to perform real-time rendering for the rendering task according to the rendering resource request instruction, so as to obtain the first rendered image.
  • S305 The cloud rendering platform sends the first rendered image to the second user equipment through the network device.
  • the second user equipment receives the first rendered image sent by the cloud rendering platform through the network device.
  • the cloud rendering platform calculates first pricing information based on allocating computing resources for the rendering task, where the first pricing information is the cost of rendering the first rendered image.
  • S306 The first user equipment obtains the rendering resource adjustment instruction input by the user.
  • the rendering resource adjustment instruction is to improve the rendering quality, or to reduce the rendering quality.
  • S307 The first user equipment sends the rendering resource adjustment instruction to the cloud rendering platform through the network device.
  • the cloud rendering platform adjusts the computing resources allocated to the rendering task according to the rendering resource adjustment instruction, and uses the adjusted computing resources allocated for the rendering task to render the rendering task, Thus, the second rendered image is obtained.
  • the cloud rendering platform adjusts the amount allocated to the rendering task according to the rendering resource adjustment instruction
  • the computing resources include: increasing computing resources allocated for the rendering task; or in the case that the rendering resource adjustment instruction is used to reduce the rendering quality of the rendering task, the cloud rendering platform adjusts according to the rendering resource adjustment instruction
  • the computing resources allocated for the rendering task include: reducing the computing resources allocated for the rendering task.
  • the cloud rendering platform sends the second rendered image to the second user equipment through the network device.
  • the cloud rendering platform calculates the second pricing information according to the adjusted computing resources allocated to the rendering task, where the second pricing information is the cost of rendering the second rendered image.
  • FIG. 15 is a cloud rendering platform according to an embodiment of the present application, which includes: an acquisition module 610, a receiving module 620, and a rendering engine 630.
  • the obtaining module 610 is used to obtain a rendering task
  • the receiving module 620 is configured to receive a rendering resource request instruction sent by a user equipment
  • the rendering engine 630 is configured to allocate computing resources to the rendering task for rendering according to the rendering resource request instruction, so as to obtain a first rendered image
  • the receiving module 620 is configured to receive a rendering resource adjustment instruction sent by the user equipment
  • the rendering engine 630 is configured to adjust the computing resources allocated to the rendering task according to the rendering resource adjustment instruction;
  • the rendering engine 630 is configured to use the adjusted computing resources allocated for the rendering task to render the rendering task, so as to obtain a second rendered image.
  • the cloud rendering system of an embodiment proposed in this application includes user equipment, network equipment, and a cloud rendering platform.
  • the user equipment can communicate with the cloud rendering platform through a network device.
  • the user equipment can be a VR device, a computer, a smart phone, and so on.
  • the cloud rendering platform includes one or more cloud rendering nodes.
  • FIG. 16 is a structural block diagram of an implementation manner of the intelligent terminal.
  • the smart terminal may include: a baseband chip 710, a memory 715, including one or more computer-readable storage media, a radio frequency (RF) module 716, and a peripheral system 717. These components may communicate on one or more communication buses 714.
  • RF radio frequency
  • the peripheral system 717 is mainly used to implement the interactive function between the smart terminal and the user/external environment, and mainly includes the input and output devices of the smart terminal.
  • the peripheral system 717 may include: a touch screen controller 718, a button controller 719, an audio controller 720, and a sensor management module 721.
  • each controller can be coupled with its corresponding peripheral devices, such as a touch screen 723, a button 724, an audio circuit 725, and a sensor 726.
  • the gesture sensor in the sensor 726 may be used to receive gesture control operations input by the user.
  • the pressure sensor in the sensor 726 can be disposed under the touch screen 723, and can be used to collect the touch pressure acting on the touch screen 723 when the user inputs a touch operation through the touch screen 723. It should be noted that the peripheral system 717 may also include other I/O peripherals.
  • the baseband chip 710 may integrate: one or more processors 711, a clock module 712, and a power management module 713.
  • the clock module 712 integrated in the baseband chip 710 is mainly used to generate a clock required for data transmission and timing control for the processor 711.
  • the power management module 713 integrated in the baseband chip 710 is mainly used to provide a stable, high-precision voltage for the processor 711, the radio frequency module 716, and peripheral systems.
  • the radio frequency (RF) module 716 is used to receive and send radio frequency signals, and mainly integrates the receiver and transmitter of the smart terminal.
  • the radio frequency (RF) module 716 communicates with the communication network and other communication devices through radio frequency signals.
  • the radio frequency (RF) module 716 may include, but is not limited to: an antenna system, an RF transceiver, one or more amplifiers, a tuner, one or more oscillators, a digital signal processor, a CODEC chip, a SIM card, and Storage media, etc.
  • the radio frequency module 716 may also include short-range wireless communication modules such as WIFI, Bluetooth, and so on.
  • the radio frequency (RF) module 716 may be implemented on a separate chip.
  • the memory 715 may include random access memory (RAM), flash memory (Flash Memory), etc., or may be RAM, read-only memory (Read-Only Memory, ROM), or hard disk (Hard Disk Drive, HDD). ) Or Solid-State Drive (SSD).
  • the memory 815 can store an operating system, a communication program, a user interface program, a browser, and a rendering application. Among them, rendering applications include game applications and other rendering applications.
  • FIG. 17 is a structural block diagram of a computer in an implementation manner.
  • the computer may include: a host 810, an output device 820, and an input device 830.
  • the host 810 may integrate: one or more processors, a clock module, and a power management module.
  • the clock module integrated in the host 810 is mainly used to generate a clock required for data transmission and timing control for the processor.
  • the power management module integrated in the host 810 is mainly used to provide a stable, high-precision voltage for the processor, the output device 820, and the input device 830.
  • the host 810 also integrates a memory for storing various software programs and/or multiple sets of instructions.
  • the memory may include a high-speed random access memory, and may also include a non-volatile memory, such as one or more magnetic disk storage devices, flash memory devices, or other non-volatile solid-state storage devices.
  • the memory can store an operating system, such as an embedded operating system such as ANDROID, IOS, WINDOWS, or LINUX.
  • the memory can also store a communication program, which can be used to communicate with one or more input devices or output devices.
  • the memory can also store a user interface program, which can vividly display the content of the browser through a graphical operation interface, and receive user control operations on the browser through input controls such as menus, dialog boxes, and buttons.
  • the memory can also store an operating system, communication programs, user interface programs, browsers, rendering applications, and so on. Among them, rendering applications include game applications and other rendering applications.
  • the output device 820 mainly includes a display, and the display may include a cathode ray tube display (Cathode Ray Tube, CRT), a plasma display (Plasma Display Panel, PDP), a liquid crystal display (Liquid Crystal Display, LCD), and so on.
  • the liquid crystal display includes a liquid crystal panel and a backlight module.
  • the liquid crystal display panel includes a polarizing film, a glass substrate, a black matrix, a color filter, a protective film, a common electrode, a calibration layer, and a liquid crystal layer (liquid crystal , Spacer, sealant), capacitor, display electrode, prism layer, light scattering layer.
  • the backlight module includes: illuminating light source, reflecting plate, light guide plate, diffuser, brightness enhancement film (prism sheet), frame and so on.
  • the input device 830 may include a keyboard and a mouse. Keyboard and mouse are the most commonly used and most important input devices. Through the keyboard, English letters, numbers, punctuation marks, etc. can be input into the computer, so as to issue commands to the computer, input data, etc., and quickly locate the vertical and horizontal coordinates through the mouse. This simplifies the operation.
  • the keyboard may include a mechanical keyboard, a plastic film keyboard (Mechanical), a conductive rubber keyboard (Membrane), a contactless electrostatic capacitor keyboard (Capacitives), etc.
  • the mouse may include a roller ball mouse, an optical mouse, and a wireless mouse.
  • FIG. 18 is a structural block diagram of a cloud rendering platform in an implementation manner.
  • the cloud rendering platform may include one or more cloud rendering nodes.
  • the cloud rendering node includes: a processing system 910, a first memory 920, an intelligent network card 930, and a bus 940.
  • the processor system 910 may adopt a heterogeneous structure, that is, include one or more general-purpose processors, and one or more special processors, such as GPU or AI chips, etc., where the general-purpose processor may be capable of processing Any type of electronic instruction equipment, including Central Processing Unit (CPU), microprocessor, microcontroller, main processor, controller, Application Specific Integrated Circuit (ASIC), etc.
  • the general-purpose processor executes various types of digital storage instructions, such as software or firmware programs stored in the first memory 920.
  • the general-purpose processor may be an x86 processor or the like.
  • the general-purpose processor sends commands to the first memory 920 through the physical interface to complete storage-related tasks.
  • the commands that the general-purpose processor can provide include read commands, write commands, copy commands, and erase commands.
  • the command may specify an operation related to a specific page and block of the first memory 920.
  • Special processors are used to complete complex operations of image rendering and so on.
  • the first memory 920 may include random access memory (RAM), flash memory (Flash Memory), etc., and may also be RAM, read-only memory (Read-Only Memory, ROM), or hard disk (Hard Disk Drive). , HDD) or Solid-State Drive (SSD).
  • RAM random access memory
  • flash Memory Flash Memory
  • the first memory 920 stores program codes that implement the rendering engine and the rendering application.
  • the smart network card 930 is also called a network interface controller, a network interface card, or a local area network (LAN) adapter. Each smart network card 930 has a unique MAC address, which is burned into the read-only memory chip by the manufacturer of the smart network card 930 during production.
  • the smart network card 930 includes a processor 931, a second memory 932, and a transceiver 933.
  • the processor 931 is similar to a general-purpose processor, but the performance requirement of the processor 931 may be lower than that of a general-purpose processor. In a specific embodiment, the processor 931 may be an ARM processor or the like.
  • the second memory 932 may also be a flash memory, HDD or SDD, and the storage capacity of the second memory 932 may be smaller than the storage capacity of the first memory 920.
  • the transceiver 933 may be used to receive and send messages, and upload the received messages to the processor 931 for processing.
  • the smart network card 930 may also include multiple ports, and the ports may be any one or more of the three interface types of a thick cable interface, a thin cable interface, and a twisted pair interface.
  • the cloud rendering system is not described in detail here.
  • the user equipment can perform the steps performed by the user equipment in the rendering quality adjustment method shown in FIG. 12 and FIG. 13, and the cloud rendering platform may perform the steps performed by the cloud rendering platform in the rendering quality adjustment method shown in FIG. 12 and FIG. step.
  • the acquiring module 610 and the receiving module 620 in FIG. 15 may be implemented by the smart network card 930 in this embodiment, and the rendering engine 630 in FIG. 15 may be executed by the processor system 910 in this embodiment to execute the program in the first memory 920 Code to achieve.
  • the cloud rendering platform can adjust the computing resources in real time according to the rendering resource adjustment instruction to perform calculations, thereby dynamically adjusting the rendering quality and adapting to different needs of users.
  • 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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本申请提供了一种云渲染平台获取渲染任务;所述云渲染平台接收用户设备发送的渲染资源请求指令;所述云渲染平台根据所述渲染资源请求指令为所述渲染任务分配计算资源以进行渲染,从而得到第一渲染图像;所述云渲染平台接收所述用户设备发送的渲染资源调整指令;所述云渲染平台根据所述渲染资源调整指令调整为所述渲染任务分配的计算资源;所述云渲染平台使用所述调整后的为所述渲染任务分配的计算资源对所述渲染任务进行渲染,从而得到第二渲染图像。上述方案能够根据需要实时调整渲染质量,满足用户的不同需求。

Description

渲染质量调整方法以及相关设备 技术领域
本申请涉及图像渲染,尤其涉及一种渲染质量调整方法以及相关设备。
背景技术
渲染是指用软件从模型生成图像的过程,其中,模型是用严格定义的语言或者数据结构对于三维物体的描述,它包括几何、视点、纹理以及照明信息。图像是数字图像或者位图图像。渲染这个术语类似于“艺术家对于场景的渲染”,另外,渲染也用于描述“计算视频编辑文件中的效果,以生成最终视频输出的过程”。渲染可以包括预渲染(pre-rendering/offline rendering)或者实时渲染(real-time rendering/online rendering),其中,预渲染通常是用于电影、广告等有预定脚本的实景仿真;实时渲染通常是用于飞行训练、3D游戏和交互式建筑演示等无预定脚本的实景仿真。
实时渲染对计算的速度要求是非常高的。以3D游戏为例,对于每秒30帧的刷新速率来说,每一帧图像的时间约为33毫秒,因此,每一帧图像的渲染时间绝对不能超过33毫秒。为了满足实时渲染的计算速度要求,实时渲染通常采用的是光栅化渲染。光栅化渲染中采用的是渲染流水线(Render-pipeline)的设计,一旦渲染流水线启动后,整个处理流程必须是连贯的,需要提升图像的画质,就必须中断原有的渲染流水线,并重新启动新的渲染流水线,因此,很难对渲染质量进行调整。
发明内容
为了解决上述问题,本申请提供了一种渲染质量调整方法以及相关设备,能够根据需要实时调整渲染质量。
第一方面,提供了一种渲染质量调整方法,包括:
云渲染平台获取渲染任务;
所述云渲染平台接收用户设备发送的渲染资源请求指令;
所述云渲染平台根据所述渲染资源请求指令为所述渲染任务分配计算资源以进行渲染,从而得到第一渲染图像;
所述云渲染平台接收所述用户设备发送的渲染资源调整指令;
所述云渲染平台根据所述渲染资源调整指令调整为所述渲染任务分配的计算资源;
所述云渲染平台使用所述调整后的为所述渲染任务分配的计算资源对所述渲染任务进行渲染,从而得到第二渲染图像。
在一些可能的设计中,在所述渲染资源调整指令用于提升所述渲染任务的渲染质量的情况下,所述云渲染平台根据所述渲染资源调整指令调整为所述渲染任务分配的计算资源包括:增加为所述渲染任务分配的计算资源;或在所述渲染资源调整指令用于降低所述渲染任务的渲染质量的情况下,所述云渲染平台根据所述渲染资源调整指令调整为所述渲染任务分配的计算资源包括:减少为所述渲染任务分配的计算资源。
在一些可能的设计中,在所述云渲染平台根据所述渲染资源请求指令为所述渲染任务分配计算资源以进行渲染,从而得到第一渲染图像之后,所述方法还包括:
根据为所述渲染任务分配计算资源计算第一计价信息,其中,所述第一计价信息为渲染所述第一渲染图像的费用;
所述云渲染平台使用所述调整后的为所述渲染任务分配的计算资源对所述渲染任务进行渲染,从而得到第二渲染图像之后,所述方法还包括:
根据调整后的为所述渲染任务分配的计算资源计算第二计价信息,其中,所述第二计价信息为渲染所述第二渲染图像的费用。
在一些可能的设计中,采用光线跟踪渲染对所述渲染任务进行渲染,所述渲染资源请求指令包括渲染指标或者资源参数中的一种或者多种;其中,所述渲染指标包括每像素采样数Spp、光线返弹次数、物体建模三角形面片数、顶点数和画面噪声、帧率中的一种或者多种,所述资源参数包括处理器的个数、处理器的主频、内存大小以及网络带宽中的一种或者多种。
在一些可能的设计中,所述渲染任务是所述用户设备发送的,或者,是管理设备发送的。
第二方面,提供了一种云渲染平台,包括:获取模块、接收模块以及渲染引擎;
所述获取模块用于获取渲染任务;
所述接收模块用于接收用户设备发送的渲染资源请求指令;
所述渲染引擎用于根据所述渲染资源请求指令为所述渲染任务分配计算资源以进行渲染,从而得到第一渲染图像;
所述接收模块用于接收所述用户设备发送的渲染资源调整指令;
所述渲染引擎用于根据所述渲染资源调整指令调整为所述渲染任务分配的计算资源;
所述渲染引擎用于使用所述调整后的为所述渲染任务分配的计算资源对所述渲染任务进行渲染,从而得到第二渲染图像。
在一些可能的设计中,在所述渲染资源调整指令用于提升所述渲染任务的渲染质量的情况下,所述云渲染平台根据所述渲染资源调整指令调整为所述渲染任务分配的计算资源包括:增加为所述渲染任务分配的计算资源;或在所述渲染资源调整指令用于降低所述渲染任务的渲染质量的情况下,所述云渲染平台根据所述渲染资源调整指令调整为所述渲染任务分配的计算资源包括:减少为所述渲染任务分配的计算资源。
在一些可能的设计中,所述云渲染平台还包括计价模块,所述计价模块用于根据为所述渲染任务分配计算资源计算第一计价信息,其中,所述第一计价信息为渲染所述第一渲染图像的费用;
所述计价模块还用于根据调整后的为所述渲染任务分配的计算资源计算第二计价信息,其中,所述第二计价信息为渲染所述第二渲染图像的费用。
在一些可能的设计中,采用光线跟踪渲染对所述渲染任务进行渲染,所述渲染资源请求指令包括渲染指标、资源参数以及显示参数中的一种或者多种;其中,所述渲染指标包括每像素采样数Spp、光线返弹次数、物体建模三角形面片数、顶点数和画面噪声中的一种或者多种,所述资源参数包括处理器的个数、处理器的主频、内存大 小以及网络带宽中的一种或者多种,所述显示参数包括帧率。
在一些可能的设计中,所述渲染任务是所述用户设备发送的,或者,是管理设备发送的。
第三方面,提供了一种计算机可读存储介质,包括指令,当所述指令在所述计算机上运行时,使得所述计算机上执行如第一方面任一项所述的方法。
第四方面,提供了一种计算机程序产品,当所述计算机程序产品被所述计算机读取并执行时,如第一方面任一项所述的方法将被执行。
第五方面,提供了一种渲染平台,所述渲染平台包括至少一个渲染节点,每个渲染节点包括处理器以及存储器,所述处理器执行所述存储器中的程序,从而执行如第一方面任一项所述的方法。
上述方案能够在用户设备发送渲染资源调整指令时,云渲染平台根据渲染资源调整指令实时调整计算资源进行计算,从而动态调整渲染质量,适应用户的不同需求。
附图说明
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
图1A至图1B是本申请涉及的简单场景下的光线跟踪渲染的一些实施方式的示意图;
图2是本申请涉及的一实施方式的复杂场景下的光线跟踪渲染的示意图;
图3是本申请涉及的SPP数量较低时产生锯齿效应的原理图;
图4是本申请涉及的SPP数量较高时克服锯齿效应的原理图;
图5A至是本申请涉及的SPP数量较低时没有形成焦散光斑的示意图;
图5B是本申请涉及的SPP数量较高时形成焦散光斑的示意图;
图6是本申请提供的一种实施方式的云渲染系统的结构示意图;
图7A至图7B分别是智能终端通过按键实时对渲染图像的渲染质量进行提高和降低的示意图;
图8A至图8B分别是电脑通过按键实时对渲染质量进行提高和降低的示意图;
图9A至图9B分别是VR设备通过按键实时对渲染质量进行提高和降低的示意图;
图10A至图10B是分别为增加按键以及减少按键的按压次数和调整指标之间的映射关系的关系示意图;
图11A至图11D是渲染指标调整时调整计算资源进行光线跟踪渲染的一些实施方式的示意图;
图12是本申请提出的一实施例的渲染质量调整方法的流程交互图;
图13是本申请提出的另一实施例的渲染质量调整方法的流程交互图;
图14是本申请提出的又一实施例的渲染质量调整方法的流程交互图;
图15是本申请提出的一种云渲染平台的结构示意图;
图16是本申请提出的一种实现方式的智能终端的结构框图;
图17是本申请提出的一种实现方式的电脑的结构框图;
图18是本申请提出的一种实现方式的云渲染平台的结构框图。
具体实施方式
光线追踪渲染(ray tracing render)是通过跟踪沿从相机(或者人眼)的视点朝着渲染图像的每个像素发射的光线入射模型的光的路径来产生渲染图像的渲染方法。光线追踪渲染的核心思想在于,从相机(或者人眼)的视点出发,逆向跟踪光线。由于只有最后能够进入相机(或者人眼)的光线才是有用的,因此,逆向跟踪光线能够有效减少数据量。光线追踪渲染中的光线主要存在反射以及折射两种场景,下面将分别结合具体的实施例进行说明。
如图1A所示的反射场景中,模型只有一个光源130以及一个不透明球体140。从相机110的视点E发出一条光线,投射到渲染图像120中的一个像素点O 1,然后,继续出射到不透明球体140的一个点P 1,然后,被反射到光源L,此时,点P 1的颜色决定了像素点O 1的颜色。从相机110的视点E发出另一条光线,投射到渲染图像120中的另一个像素点O 2,然后,继续出射到不透明球体140的一个点P 2,然后,被反射到光源L,并且,点P 2和光源L之间存在障碍物不透明球体140,此时,点P 2位于不透明球体140的阴影中,像素点O 2的颜色为黑色。
如图1B所示的折射场景中,模型只有一个光源230以及一个透明球体240。从相机210的视点E发出一条光线,投射到渲染图像220中的一个像素点O 3,然后,继续出射到透明球体240的一个点P 3,然后,被折射到光源L,此时,点P 3的颜色决定了像素点O 3的颜色。
可以理解,上述图1A中的反射场景以及图1B中的折射场景都是最简单的场景,图1A中假设场景中仅仅存在一个不透明球体,图1B中假设场景中仅仅存在一个透明球体,但是,在实际应用中,场景远远比图1A以及图1B要复杂,例如,场景中可能同时存在多个不透明物体以及多个透明物体,因此,光线会被多次反射和折射,从而导致光线的跟踪变得非常复杂。
如图2所示的复杂场景中,模型包括有一个光源330、两个透明球体340、350以及一个不透明物体360。从相机310的视点E发出一条光线,投射到渲染图像320中的一个像素点O 4,并继续出射到透明球体340的一个点P 1,从P 1向光源L作一条阴影测试线S1,其间没有遮挡的物体,于是,可以用局部光照明模型计算光源对P 1在其视线E的方向上的光强,作为该点的局部光强。同时,还要跟踪该点处反射光线R1和折射光线T1,它们也对P 1点的光强有贡献。在反射光线R1方向上,没有再与其他物体相交,那么就设该方向的光强为零,并结束这光线方向的跟踪。然后,继续对折射光线T1方向进行跟踪,来计算该光线的光强贡献。折射光线T1在透明物体340内部传播,继续出射与透明物体350相交于点P 2,由于该点在透明物体350内部,可以假设它的局部光强为零,同时,产生了反射光线R2和折射光线T2,在反射光线R2方向,可以继续递归跟踪下去计算它的光强,在这里就不再继续下去了。继续对折射光线T2进行跟踪,T2与不透明物体360交于点P 3,作P 3与光源L的阴影测试线S3,没有物体遮挡,那么计算该处的局部光强,由于不透明物体360是非透明的,那么,可以继续跟踪反射光线R3方向的光强,结合局部光强来得到P 3处的光 强。反射光线R3的跟踪与前面的过程类似,算法可以递归的进行下去。重复上面的过程,直到光线满足跟踪终止条件。这样我们就可以得到像素点O 4的光强,也就是它相应的颜色值。
可以理解,上述图2所示的复杂场景仅仅是其中一种复杂场景,在其他的复杂场景下,模型中的光源的数量、透明物体的数量,不透明物体的数量、相机的位置、光源的位置、透明物体的位置以及不透明物体的位置均可以发生变化,此处不作具体限定。
光线追踪渲染的渲染质量可以取决于以下渲染指标、资源参数以及显示参数。其中,
渲染指标可以包括每像素采样数(Sample per pixel,Spp)、光线返弹次数(Bounce)、物体建模三角形面片数、顶点数和画面噪声等等。下面将以Spp以及Bounce为例进行详细的介绍。
SPP可以定义为每个像素采样得到的光线的数量。Spp的数量可以影响到渲染图像的画质的原因在于:如果Spp为1(即每像素只有一条光线经过),那么,即使光线发生微小偏移,像素点的颜色也可能发生很大的变化。下文的例子中均假设光线最终会被反射到光源,但是,为了简便起见,下文中将不会再进行陈述。以图3所示为例,如果光线从像素点A经过,那么光线将会被投射到红色的不透明物体1上,此时,像素点A的颜色值是由不透明物体1上的投射点决定的,即,像素点A的颜色为红色的。如果光线从像素点B经过,那么光线将会被投射到绿色的不透明物体2上,此时,像素点B的颜色值是由不透明物体2上的投射点决定的,即,像素点B的颜色为绿色的。因此,尽管像素点A和像素点B是相邻像素,但是,像素点A和像素点B的颜色会相差甚远,从而产生锯齿效应。为了解决上述问题,以图4所示为例,如果Spp为n(即从视点向渲染图像上的同一像素点发射n条光线),然后,这n条光线透过像素点各自投射在不透明物体1或不透明物体2的n个投射点上,从而可以根据n个投射点分别确定该像素点的n个颜色值,最后,对这n个颜色值求平均,从而得到该像素的最终颜色值。如果该像素最终颜色值符合画面参考帧(数学期望值),则采样噪声越低。因此,Spp的数量越多,渲染图像的抗锯齿效果越好,噪声指标越低,渲染图像的质量也自然越好。另外,SPP的数量可以影响到画面的光线特效,例如透明体(玻璃球,水波纹)在光线照射下形成的焦散特效(Caustics)。当采样数量较少时,如图5A所示,从相机410的视点E发出第一条光线,经过渲染图像420的一个像素点O 1,出射到透明物体440的一个点P 1,并被折射到光点H 1;从相机410的视点E发出第二条光线,经过渲染图像420的一个像素点O 2,出射到透明物体440的一个点P 2,并被折射到光点H 2;从相机410的视点E发出第三条光线,经过渲染图像420的一个像素点O 3,出射到透明物体440的一个点P 3,并被折射到光点H 3,光点H 1,光点H 2以及光点H 3只是孤立的光点,不能聚集成焦散光斑。当采样数量多了之后,如图5B所示,从相机410的视点E发出第一条光线,经过渲染图像420的一个像素点O 1,出射到透明物体440的一个点P 1,并被折射到光点H 1;从相机410的视点E发出第二条光线,经过渲染图像420的一个像素点O 2,出射到透明物体440的一个点P 2,并被折射到光点H 2;从相机410的视点E发出第三 条光线,经过渲染图像420的一个像素点O 3,出射到透明物体440的一个点P 3,并被折射到光点H 3;从相机410的视点E发出第四条光线,经过渲染图像420的一个像素点O 4,出射到透明物体440的一个点P 4,并被折射到光点H 4;从相机410的视点E发出第五条光线,经过渲染图像420的一个像素点O 5,出射到透明物体440的一个点P 5,并被折射到光点H 5,其中,光点H 1和光点H 4组成了焦散光斑G1(估计值),光点H 3和光点H 5组成了焦散光斑G2(估计值)。因此如果SPP值较低,则无法有效生成焦散的视觉特效,往往需要采用其他的渲染方式(非光线追踪方式),追加此视觉效果。
光线返弹次数为在光线的跟踪终止前,对光线进行跟踪的最大反射次数和折射次数之和。光线返弹次数可以影响到渲染图像的图像质量的原因在于:因为在复杂场景中,光线会被多次反射和折射,理论上来说,光线被反射和折射的次数可以是无限次,但是,在实际的算法进行过程中,不可能对光线进行无穷的跟踪,因而需要给出一些跟踪的终止条件。在应用中,可以有以下的终止条件:光线在经过许多次反射和折射以后,就会产生衰减,光线对于视点的光强贡献很小;光线返弹次数即跟踪深度大于一定值。因此,光线返弹次数越多,可以被跟踪到的有效光线越多,多个透明物体之间的折射效果越好,越逼真,图像质量也就越好。
资源参数可以包括:处理器的个数、处理器的主频、内存大小以及网络带宽中的一种或者多种。当处理器的主频越高,渲染效率越高,图像的帧率越高;当内存的越大,渲染效率越高,图像的帧率越高;当网络带宽越大,传输渲染图像的效率越高,在用户设备上显示渲染图像的帧率越高。
显示参数可以包括:帧率等等,显示参数越高,用户体验越高。
一渲染任务,例如一个应用或者一部电影,包括了多帧渲染图像。一个渲染任务的渲染质量包括以下两方面中的至少一个:每一帧渲染图像的质量、渲染图像的效率(也即帧率)。
从上述记载可以看出,可以通过调整渲染指标、资源参数来调整渲染任务的渲染质量。
渲染指标越高,例如,Spp的数量越大,光线返弹次数越多,每一帧渲染图像的质量越高,则渲染质量越好。一般的,越高的渲染指标也导致光线追踪渲染要求的计算量就越大,相应地,需要的资源(计算资源、存储资源以及网络资源等等)也会越多。
显示参数越高,则渲染质量越高,需要的资源(计算资源、存储资源以及网络资源等等)也会越多。
资源参数越高,渲染图像的效率越高,图像帧率越高,渲染质量也越好。
因此,可以通过云渲染平台按需提供光线追踪渲染所需要的资源,从而按需提供适合用户需求的渲染质量。
参见图6,图6是本申请提供的一种云渲染系统的结构示意图。在本申请的具体实施方式中,云渲染系统可以用于实现光线跟踪渲染,包括:用户设备510、网络设备520以及云渲染平台530。
用户设备510可以是需要实时显示渲染图像的设备,例如,可以是用于飞行训练的虚拟现实设备(Virtual Reality,VR)、可以是用于3D游戏的电脑以及用于交互式建筑演示的智能手机等等,此处不作具体限定。
网络设备520用于在用户设备510通过任何通信机制/通信标准的通信网络与云渲染平台530之间传输数据。其中,通信网络可以是广域网、局域网、点对点连接等方式,或它们的任意组合。
云渲染平台530包括多个渲染节点,每个渲染节点自下而上包括渲染硬件、虚拟机、操作系统、渲染引擎以及渲染应用。其中,渲染硬件包括计算资源、存储资源以及网络资源。计算资源可以采用异构计算架构,例如,可以采用中央处理器(Central Processing Unit,CPU)+图形处理器(Graphics Processing Unit,GPU)架构,CPU+AI芯片,CPU+GPU+AI芯片架构等等,此处不作具体限定。存储资源可以包括内存等等。这里,计算资源可以被分成多个计算单位资源,存储资源可以被分成多个存储单位资源,网络资源可以被分成多个网络单位资源。因此,云渲染平台可以按照用户的资源需求以单位资源为基础进行自由组合,从而用户的需要提供资源。例如,计算资源可以被分成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服务以及容器服务仅仅是作为具体的事例,在实际应用中,虚拟化服务还可以其他轻量级或者重量级的虚拟化服务,此处不作具体限定。渲染引擎可以是光线跟踪渲染器,用于实现光线跟踪渲染算法,常用的光线跟踪渲染器可以包括Unity、V-ray、Unreal、RenderMan等等。渲染应用可以用于调用渲染引擎以完成渲染图像的渲染,常见的渲染应用可以包括:游戏应用、VR应用、电影特效以及动画等等。
下面的图7A至图7B、图8A至图8B、图9A至图9B分别以用户设备为智能终端、电脑以及VR设备的应用场景为例,详细介绍了用户如何通过按键实时对渲染图像的渲染质量进行调整进行了详细的介绍。
图7A至图7B以用户设备为智能终端为例,介绍了用户如何调整渲染指标,从而调整渲染图像的渲染质量。智能终端正在实时显示渲染图像。智能终端的侧面设置 了增加按键以及减少按键两种按键,用户可以通过按压增加按键以及减少按键来提升渲染质量或者减少渲染质量。具体地,如图7A所示,当用户希望提高渲染质量时,可以按压智能终端侧面的增加按键,智能终端的增加按键被用户按压的次数越多,渲染质量提升得越高。如图7B所示,当用户希望降低渲染质量时,可以按压智能终端侧面的减少按键,智能终端的减少按键被用户按压的次数越多,渲染质量下降得越高。上述实施例中是增加按键以及减少按键对渲染质量进行调整,并且,增加按键以及减少按键是两个不同的物理按键,但是,在实际应用中,增加按键以及减少按键可以集成在同一个物理按键上,或者,增加按键以及减少按键可以是两个不同的虚拟按键,更甚至,可以不采用增加按键以及减少按键这种组件,而是采用进度条等等其他组件,此处不作具体限定。
图8A至图8B以用户设备为电脑为例,介绍了用户如何调整渲染指标,从而调整渲染质量。智能终端正在实时显示渲染图像。用户可以设置鼠标的左键为增加按键,鼠标的右键为减少按键。用户可以通过按压鼠标的左键以及鼠标的右键来提升渲染质量或者减少渲染质量。具体地,如图8A所示,当用户希望提高渲染质量时,可以按压鼠标的左键,终端设备的鼠标的左键被用户按压的次数越多,渲染质量提升得越高。如图8B所示,当用户希望降低渲染质量时,可以按压鼠标的右键,鼠标的右键被用户按压的次数越多,渲染质量下降得越高。上述实施例中是通过鼠标的左右键对渲染质量进行调整,在其他实施例中,也可以通过键盘的上下键对渲染质量进行调整,或者,可以通过鼠标的滑轮对渲染质量进行调整等等,此处不作具体限定。
图9A至图9B以用户设备为VR设备为例,介绍了用户如何调整渲染指标,从而调整渲染质量。VR设备的侧面设置了增加按键以及减少按键两种按键,用户可以通过按压增加按键以及减少按键来提升渲染质量或者减少渲染质量。具体地,如图9A所示,当用户希望提高渲染质量时,可以按压VR设备侧面的增加按键,VR设备的增加按键被用户按压的次数越多,渲染质量提升得越高。如图9B所示,当用户希望降低渲染质量时,可以按压VR设备侧面的减少按键,VR设备的减少按键被用户按压的次数越多,渲染质量下降得越高。上述实施例中是增加按键以及减少按键对渲染质量进行调整,并且,增加按键以及减少按键是两个不同的物理按键,但是,在实际应用中,增加按键以及减少按键可以集成在同一个物理按键上,此处不作具体限定。
应理解,上述智能终端、电脑以及VR设备的应用场景仅仅是具体的示例,在其他的实施例中,还可以采用其他的应用场景,此处不作具体限定。
用户通过按压用户设备上的按键实时对渲染质量进行调整主要包括以下过程:(一)用户通过按压用户设备上的按键从而得到调整指标和/或调整参数。(二)用户设备通过网络设备将调整指标和/或调整参数发送给云渲染平台。(三)云渲染平台根据调整指标和/或调整参数调整计算资源进行光线跟踪渲染,从而得到渲染图像。(四)云渲染平台将渲染图像通过网络设备发送给用户设备,并呈现给用户。
在步骤(一)中,用户通过按压用户设备上的按键从而得到调整指标和/或调整参数。其中,可以在用户设备中预先设置增加按键的按压次数与调整指标(SPP,光 线返弹次数)和/或调整参数(主频以及内存)之间的映射关系,以及,减少按键的按压次数与调整指标(SPP,光线返弹次数)和/或调整参数(主频以及内存)之间的映射关系。
如图10A中的(a)所示,当用户按压增加按键的按压次数为1时,SPP的增加次数为4,当用户按压增加按键的按压次数为2时,SPP增加为8,当用户按压增加按键的按压次数为3时,SPP增加为12,当用户按压增加按键的按压次数为4时,SPP增加为16。如图10A中的(b)所示,当用户按压增加按键的按压次数为1时,光线返弹次数增加为1,当用户按压增加按键的按压次数为2时,光线返弹次数增加为2,当用户按压增加按键的按压次数为3时,光线返弹次数增加为3,当用户按压增加按键的按压次数为4时,光线返弹次数增加为4。如图10A中的(c)所示,当用户按压增加按键的按压次数为1时,处理器的主频增加为8u,当用户按压增加按键的按压次数为2时,处理器的主频增加为16u,当用户按压增加按键的按压次数为3时,处理器的主频增加为24u,当用户按压增加按键的按压次数为4时,处理器的主频增加为32u。如图10A中的(d)所示,当用户按压增加按键的按压次数为1时,存储器的内存增加为10兆(M),当用户按压增加按键的按压次数为2时,存储器的内存增加为20M,当用户按压增加按键的按压次数为3时,存储器的内存增加为30M,当用户按压增加按键的按压次数为4时,存储器的内存增加为40M。
如图10B中的(a)所示,当用户按压减少按键的按压次数为1时,SPP减少为16,当用户按压减少按键的按压次数为2时,SPP减少为12,当用户按压减少按键的按压次数为3时,SPP减少为8,当用户按压减少按键的按压次数为4时,SPP减少为4。如图10B中的(b)所示,当用户按压减少按键的按压次数为1时,光线返弹次数的减少为4,当用户按压减少按键的按压次数为2时,光线返弹次数的减少为3,当用户按压减少按键的按压次数为3时,SPP减少为2,当用户按压减少按键的按压次数为4时,SPP减少为1。如图10B中的(c)所示,当用户按压减少按键的按压次数为1时,处理器的主频减少为32u,当用户按压减少按键的按压次数为2时,处理器的主频减少为24,当用户按压减少按键的按压次数为3时,处理器的主频减少为16,当用户按压减少按键的按压次数为4时,处理器的主频减少为8。如图10B中的(d)所示,当用户按压减少按键的按压次数为1时,存储器的内存减少为40M,当用户按压减少按键的按压次数为2时,存储器的内存减少为30M,当用户按压减少按键的按压次数为3时,存储器的内存减少为20M,当用户按压减少按键的按压次数为4时,存储器的内存减少为10M。
在上述例子中增加按键的按压次数、减少按键的按压次数、SPP的增加次数、光线返弹次数的增加次数、减少按键的按压次数、SPP的减少次数、光线返弹次数的减少次数仅仅是作为具体的事例,在实际应用中,还可以是其他的数值,此处不作具体限定。另外,上述例子中是以每按压一次增加按键,同时增加SPP的次数以及光线返弹次数为例进行说明的,实际应用中,也可以第一次按压增加按键时,先增加SPP的次数,第二次按压增加按键时,再次增加光线返弹次数,依次类推。
在步骤(三)中,云渲染平台根据调整指标调整计算资源进行光线跟踪渲染,从而得到渲染图像。下面将分别以调整指标为提高指标,需要增加计算资源进行光线跟 踪渲染,以及,调整指标为降低指标,需要减少计算资源进行光线跟踪渲染分别进行详细的介绍。
对于调整指标为提高指标,需要增加计算资源进行光线跟踪渲染来说。在光线返弹次数不变,SPP增加的情况下,如图11A所示,在调整前,假设第一渲染指标为SPP为1(每像素透过的光线数量为1),云渲染平台通过线程1对透过该像素A的光线1进行光线跟踪,其中,线程1所使用的计算资源为第一计算资源。当用户将第一渲染指标(SPP为1)调整为第二渲染指标(SPP为2),即,调整指标为SPP增加1时,云渲染平台保持通过线程1对透过该像素A的光线1进行光线跟踪,并且,云渲染平台新创建线程2对新增加的透过该像素A的光线2进行光线跟踪,其中,线程2所使用的计算资源为新增的计算资源,第二计算资源等于第一计算资源与新增的计算资源之和。在SPP不变,光线返弹次数发生增加的情况下,如图11B所示,假设第一渲染指标为光线返弹次数为1,云渲染平台通过线程1对透过该像素A的光线1的第一次返弹进行光线跟踪,其中,线程1所使用的计算资源为第一计算资源。当用户将第一渲染指标(光线返弹次数1)调整为第二渲染指标(光线返弹次数为2),即,调整指标为光线返弹次数增加1时,云渲染平台保持通过线程1对透过该像素A的光线1的第一次返弹进行光线跟踪,并且,云渲染平台新创建线程2对透过该像素A的光线1的第二次返弹进行光线跟踪,其中,线程2所使用的计算资源为新增的计算资源,第二计算资源等于第一计算资源与新增的计算资源之和。
对于调整指标为减少指标,需要减少计算资源进行光线跟踪渲染来说。在光线返弹次数不变,SPP减少的情况下,如图11C所示,在调整前,假设第一渲染指标为SPP为2(每像素透过的光线数量为2),云渲染平台通过线程1对透过该像素A的光线1进行光线跟踪,通过线程2对透过该像素A的光线2进行光线跟踪,其中,线程1所使用的计算资源为第一计算资源,线程2所使用的计算资源为第一计算资源。当用户将第一渲染指标(SPP为2)调整为第二渲染指标(SPP为1),即,调整指标为SPP减少1时,云渲染平台保持通过线程1对透过该像素A的光线1进行光线跟踪,并且,云渲染平台删除线程2对新增加的透过该像素A的光线2进行光线跟踪,其中,线程2所使用的计算资源为减少的计算资源,第二计算资源等于第一计算资源与减少的计算资源之差。在SPP不变,光线返弹次数发生减少的情况下,如图11D所示,假设第一渲染指标为光线返弹次数为2,云渲染平台通过线程1对透过该像素A的光线1的第一次返弹进行光线跟踪,通过线程2对透过该像素A的光线1的第二次返弹进行光线跟踪,其中,线程1所使用的计算资源为第一计算资源,线程2所使用的计算资源为第二计算资源。当用户将第一渲染指标(光线返弹次数2)调整为第二渲染指标(光线返弹次数为1),即,调整指标为光线返弹次数减少1时,云渲染平台保持通过线程1对透过该像素A的光线1的第一次返弹进行光线跟踪,并且,云渲染平台删除线程2对透过该像素A的光线1的第二次返弹进行光线跟踪,其中,线程2所使用的计算资源为减少的计算资源,第二计算资源等于第一计算资源与减少的计算资源之差。
在上述例子中第一渲染指标的数量,第二渲染指标的数量,以及调整指标的数量仅仅是作为具体的事例,在实际应用中,还可以是其他的数值,此处不作具体限定。 另外,在上述例子中均是以用户通过按键来触发的,但是,实际应用中,用户还可以是具有深厚技术基础的专业人员,可以直接调用应用程序接口(Application Programming Interface,API)来触发,此处不作具体限定。
下面将详细介绍通过云渲染系统实现用户对渲染质量进行调整的过程,参见图12,图12是本申请提出的一实施方式的渲染质量调整方法的流程交互图。本实施例中的渲染质量调整方法可以包括如下步骤:
S101:云渲染平台接收管理设备发送的渲染任务。相应地,管理设备接收云渲染平台发送的渲染任务。
在本申请的具体实施例中,管理设备可以是第三方设备。例如,用户设备可以是用户玩3D游戏的应用程序所在的设备,管理设备可以是提供3D游戏的应用程序的游戏开发商的设备。
S102:用户设备获取用户输入的渲染资源请求指令。
在本申请的具体实施例中,所述渲染资源请求指令包括渲染指标、资源参数以及显示参数中的一种或者多种。
在本申请的具体实施例中,所述渲染指标包括每像素采样数Spp、光线返弹次数、物体建模三角形面片数、顶点数和画面噪声中的一种或者多种。其中,SPP可以定义为每个像素采样得到的光线的数量。光线返弹次数为在光线的跟踪终止前,对光线进行跟踪的最大反射次数和折射次数之和。这里,渲染指标越高,例如,Spp的数量越大,光线返弹次数越多,则光线追踪渲染要求的计算量就越大,相应地,需要的资源(计算资源、存储资源以及网络资源等等)也会越多,渲染质量越好。
在本申请的具体实施例中,所述资源参数包括处理器的个数、处理器的主频、内存大小以及网络带宽中的一种或者多种。这里,资源参数越高,分配给渲染任务的资源越多,则渲染图像的帧率越高,用户的体验也会越好。
在本申请的具体实施例中,所述显示参数可以包括帧率等等,则渲染质量越高,需要的资源(计算资源、存储资源以及网络资源等等)也会越多。
S103:用户设备通过网络设备将所述渲染资源请求指令发送给云渲染平台。相应地,云渲染平台接收用户设备通过网络设备发送的所述渲染资源请求指令。
S104:云渲染平台根据渲染资源请求指令分配计算资源为所述渲染任务进行实时渲染,从而得到第一渲染图像。
S105:云渲染平台通过网络设备将所述第一渲染图像发送给用户设备。相应地,用户设备接收云渲染平台通过网络设备发送的第一渲染图像。
在本申请的具体实施例中,云渲染平台根据为所述渲染任务分配计算资源计算第一计价信息,其中,所述第一计价信息为渲染所述第一渲染图像的费用。
S106:用户设备获取用户输入的渲染资源调整指令。
在本申请的具体实施例中,所述渲染资源调整指令是提升渲染质量,或者,是降低渲染质量。
S107:用户设备通过网络设备将渲染资源调整指令发送给云渲染平台。
S108:所述云渲染平台根据所述渲染资源调整指令调整为所述渲染任务分配的计 算资源,并,使用所述调整后的为所述渲染任务分配的计算资源对所述渲染任务进行渲染,从而得到第二渲染图像。
在本申请的具体实施例中,在所述渲染资源调整指令用于提升所述渲染任务的渲染质量的情况下,所述云渲染平台根据所述渲染资源调整指令调整为所述渲染任务分配的计算资源包括:增加为所述渲染任务分配的计算资源;或在所述渲染资源调整指令用于降低所述渲染任务的渲染质量的情况下,所述云渲染平台根据所述渲染资源调整指令调整为所述渲染任务分配的计算资源包括:减少为所述渲染任务分配的计算资源。
S109:所述云渲染平台通过所述网络设备将所述第二渲染图像发送给所述用户设备。
在本申请的具体实施例中,云渲染平台根据调整后的为所述渲染任务分配的计算资源计算第二计价信息,其中,所述第二计价信息为渲染所述第二渲染图像的费用。
在上述例子中,应用程序的提供商可以先在云渲染平台提出渲染任务,然后,各个用户设备可以根据自己的需要自行对渲染质量进行调整,例如,3D游戏的应用程序提供商可以先提出渲染任务对3D游戏的游戏场景进行渲染,有些游戏玩家愿意付费提高游戏场景的渲染质量,则可以发送渲染资源调整指令要求云渲染平台提供更多的计算资源;有些游戏玩家对3D游戏的游戏场景的画质要求不高,则可以发送渲染资源调整指令要求云渲染平台减少提供的计算资源,减少花费。
为了简便起见,此处不对渲染质量调整方法展开介绍,具体请参见图1A-图1B,图2至图4,图5A-图5B,图6,图7A-图7B,图8A-图8B,图9A-图9B,图10A-图10B,图11A-图11B以及相关描述。
下面将详细介绍通过云渲染系统实现用户对渲染质量进行调整的过程,参见图13,图13是本申请提出的另一实施方式的渲染质量调整方法的流程交互图。本实施例中的渲染质量调整方法可以包括如下步骤:
S201:云渲染平台接收用户设备发送的渲染任务。相应地,云渲染平台接收用户设备发送的渲染任务。
在本申请的具体实施例中,渲染任务可以是同一个应用程序提出的多帧图像的渲染的任务,也可以是多个应用程序分别提出的多帧图像的渲染的任务,此处不做具体限定。举例来说,用户可能一直在玩A游戏,那么,渲染任务可以是A游戏的应用程序发起的渲染任务。用户也可能先玩A游戏,后面玩B游戏,那么,渲染任务可以是A游戏的应用程序以及B游戏的应用程序发起的渲染任务。
S202:用户设备获取用户输入的渲染资源请求指令。
在本申请的具体实施例中,所述渲染资源请求指令包括渲染指标、资源参数以及显示参数中的一种或者多种。
在本申请的具体实施例中,所述渲染指标包括每像素采样数Spp、光线返弹次数、物体建模三角形面片数、顶点数和画面噪声中的一种或者多种。其中,SPP可以定义为每个像素采样得到的光线的数量。光线返弹次数为在光线的跟踪终止前,对光线进行跟踪的最大反射次数和折射次数之和。这里,渲染指标越高,例如,Spp的数 量越大,光线返弹次数越多,则光线追踪渲染要求的计算量就越大,相应地,需要的资源(计算资源、存储资源以及网络资源等等)也会越多,渲染质量越好。
在本申请的具体实施例中,所述资源参数包括处理器的个数、处理器的主频、内存大小以及网络带宽中的一种或者多种。这里,资源参数越高,分配给渲染任务的资源越多,则渲染图像的帧率越高,用户的体验也会越好。
在本申请的具体实施例中,所述显示参数可以包括帧率等等,则渲染质量越高,需要的资源(计算资源、存储资源以及网络资源等等)也会越多。
S203:用户设备通过网络设备将所述渲染资源请求指令发送给云渲染平台。相应地,云渲染平台接收用户设备通过网络设备发送的所述渲染资源请求指令。
S204:云渲染平台根据渲染资源请求指令分配计算资源为所述渲染任务进行实时渲染,从而得到第一渲染图像。
S205:云渲染平台通过网络设备将所述第一渲染图像发送给用户设备。相应地,用户设备接收云渲染平台通过网络设备发送的第一渲染图像。
在本申请的具体实施例中,云渲染平台根据为所述渲染任务分配计算资源计算第一计价信息,其中,所述第一计价信息为渲染所述第一渲染图像的费用。
S206:用户设备获取用户输入的渲染资源调整指令。
在本申请的具体实施例中,所述渲染资源调整指令是提升渲染质量,或者,是降低渲染质量。
S207:用户设备通过网络设备将渲染资源调整指令发送给云渲染平台。
S208:所述云渲染平台根据所述渲染资源调整指令调整为所述渲染任务分配的计算资源,并,使用所述调整后的为所述渲染任务分配的计算资源对所述渲染任务进行渲染,从而得到第二渲染图像。
在本申请的具体实施例中,在所述渲染资源调整指令用于提升所述渲染任务的渲染质量的情况下,所述云渲染平台根据所述渲染资源调整指令调整为所述渲染任务分配的计算资源包括:增加为所述渲染任务分配的计算资源;或在所述渲染资源调整指令用于降低所述渲染任务的渲染质量的情况下,所述云渲染平台根据所述渲染资源调整指令调整为所述渲染任务分配的计算资源包括:减少为所述渲染任务分配的计算资源。
S209:所述云渲染平台通过所述网络设备将所述第二渲染图像发送给所述用户设备。
在本申请的具体实施例中,云渲染平台根据调整后的为所述渲染任务分配的计算资源计算第二计价信息,其中,所述第二计价信息为渲染所述第二渲染图像的费用。
为了简便起见,此处不对渲染质量调整方法展开介绍,具体请参见图1A-图1B,图2至图4,图5A-图5B,图6,图7A-图7B,图8A-图8B,图9A-图9B,图10A-图10B,图11A-图11B以及相关描述。
下面将详细介绍通过云渲染系统实现用户对渲染质量进行调整的过程,参见图14,图14是本申请提出的又一实施方式的渲染质量调整方法的流程交互图。本实施例中的渲染质量调整方法可以包括如下步骤:
S301:云渲染平台接收第一用户设备发送的渲染任务。相应地,云渲染平台接收第一用户设备发送的渲染任务。
在本申请的具体实施例中,渲染任务可以是同一个应用程序提出的多帧图像的渲染的任务,也可以是多个应用程序分别提出的多帧图像的渲染的任务,此处不做具体限定。举例来说,用户可能一直在玩A游戏,那么,渲染任务可以是A游戏的应用程序发起的渲染任务。用户也可能先玩A游戏,后面玩B游戏,那么,渲染任务可以是A游戏的应用程序以及B游戏的应用程序发起的渲染任务。
S302:第一用户设备获取用户输入的渲染资源请求指令。
在本申请的具体实施例中,所述渲染资源请求指令包括渲染指标、资源参数以及显示参数中的一种或者多种。
在本申请的具体实施例中,所述渲染指标包括每像素采样数Spp、光线返弹次数、物体建模三角形面片数、顶点数和画面噪声中的一种或者多种。其中,SPP可以定义为每个像素采样得到的光线的数量。光线返弹次数为在光线的跟踪终止前,对光线进行跟踪的最大反射次数和折射次数之和。这里,渲染指标越高,例如,Spp的数量越大,光线返弹次数越多,则光线追踪渲染要求的计算量就越大,相应地,需要的资源(计算资源、存储资源以及网络资源等等)也会越多,渲染质量越好。
在本申请的具体实施例中,所述资源参数包括处理器的个数、处理器的主频、内存大小以及网络带宽中的一种或者多种。这里,资源参数越高,分配给渲染任务的资源越多,则渲染图像的帧率越高,用户的体验也会越好。
在本申请的具体实施例中,所述显示参数可以包括帧率等等,则渲染质量越高,需要的资源(计算资源、存储资源以及网络资源等等)也会越多。
S303:第一用户设备通过网络设备将所述渲染资源请求指令发送给云渲染平台。相应地,云渲染平台接收第一用户设备通过网络设备发送的所述渲染资源请求指令。
S304:云渲染平台根据渲染资源请求指令分配计算资源为所述渲染任务进行实时渲染,从而得到第一渲染图像。
S305:云渲染平台通过网络设备将所述第一渲染图像发送给第二用户设备。相应地,第二用户设备接收云渲染平台通过网络设备发送的第一渲染图像。
在本申请的具体实施例中,云渲染平台根据为所述渲染任务分配计算资源计算第一计价信息,其中,所述第一计价信息为渲染所述第一渲染图像的费用。
S306:第一用户设备获取用户输入的渲染资源调整指令。
在本申请的具体实施例中,所述渲染资源调整指令是提升渲染质量,或者,是降低渲染质量。
S307:第一用户设备通过网络设备将渲染资源调整指令发送给云渲染平台。
S308:所述云渲染平台根据所述渲染资源调整指令调整为所述渲染任务分配的计算资源,并,使用所述调整后的为所述渲染任务分配的计算资源对所述渲染任务进行渲染,从而得到第二渲染图像。
在本申请的具体实施例中,在所述渲染资源调整指令用于提升所述渲染任务的渲染质量的情况下,所述云渲染平台根据所述渲染资源调整指令调整为所述渲染任务分配的计算资源包括:增加为所述渲染任务分配的计算资源;或在所述渲染资源调整指 令用于降低所述渲染任务的渲染质量的情况下,所述云渲染平台根据所述渲染资源调整指令调整为所述渲染任务分配的计算资源包括:减少为所述渲染任务分配的计算资源。
S309:所述云渲染平台通过所述网络设备将所述第二渲染图像发送给所述第二用户设备。
在本申请的具体实施例中,云渲染平台根据调整后的为所述渲染任务分配的计算资源计算第二计价信息,其中,所述第二计价信息为渲染所述第二渲染图像的费用。
为了简便起见,此处不对渲染质量调整方法展开介绍,具体请参见图1A-图1B,图2至图4,图5A-图5B,图6,图7A-图7B,图8A-图8B,图9A-图9B,图10A-图10B,图11A-图11B以及相关描述。
参见图15,图15是本申请提出的一实施方式的云渲染平台,包括:获取模块610、接收模块620以及渲染引擎630。
所述获取模块610用于获取渲染任务;
所述接收模块620用于接收用户设备发送的渲染资源请求指令;
所述渲染引擎630用于根据所述渲染资源请求指令为所述渲染任务分配计算资源以进行渲染,从而得到第一渲染图像;
所述接收模块620用于接收所述用户设备发送的渲染资源调整指令;
所述渲染引擎630用于根据所述渲染资源调整指令调整为所述渲染任务分配的计算资源;
所述渲染引擎630用于使用所述调整后的为所述渲染任务分配的计算资源对所述渲染任务进行渲染,从而得到第二渲染图像。
为了简便起见,此处没有对云渲染平台进行详细的介绍,具体请参见图1A-图1B,图2至图4,图5A-图5B,图6,图7A-图7B,图8A-图8B,图9A-图9B,图10A-图10B,图11A-图11B以及相关描述。
本申请提出的一实施例的云渲染系统,包括用户设备、网络设备以及云渲染平台。其中,用户设备可以通过网络设备与云渲染平台进行通信。用户设备可以是VR设备、电脑以及智能手机等等。云渲染平台包括一个或者多个云渲染节点。
以用户设备为智能终端为例,图16是一种实现方式的智能终端的结构框图。如图16所示,智能终端可包括:基带芯片710、存储器715,包括一个或多个计算机可读存储介质、射频(RF)模块716、外围系统717。这些部件可在一个或多个通信总线714上通信。
外围系统717主要用于实现智能终端和用户/外部环境之间的交互功能,主要包括智能终端的输入输出装置。具体实现中,外围系统717可包括:触摸屏控制器718、按键控制器719、音频控制器720以及传感器管理模块721。其中,各个控制器可与各自对应的外围设备,例如触摸屏723、按键724、音频电路725以及传感器726,耦合。在一些实施例中,传感器726中的手势传感器可用于接收用户输入的手势控制操作。传感器726中的压力传感器可设置于触摸屏723的下方,可用于采集用 户通过触摸屏723输入触控操作时作用于触摸屏723上的触控压力。需要说明的,外围系统717还可以包括其他I/O外设。
基带芯片710可集成包括:一个或多个处理器711、时钟模块712以及电源管理模块713。集成于基带芯片710中的时钟模块712主要用于为处理器711产生数据传输和时序控制所需要的时钟。集成于基带芯片710中的电源管理模块713主要用于为处理器711、射频模块716以及外围系统提供稳定的、高精确度的电压。
射频(RF)模块716用于接收和发送射频信号,主要集成了智能终端的接收器和发射器。射频(RF)模块716通过射频信号与通信网络和其他通信设备通信。具体实现中,射频(RF)模块716可包括但不限于:天线系统、RF收发器、一个或多个放大器、调谐器、一个或多个振荡器、数字信号处理器、CODEC芯片、SIM卡和存储介质等。此外,射频模块716还可以包括WIFI,蓝牙等等短距离无线通信模块。在一些实施例中,可在单独的芯片上实现射频(RF)模块716。
存储器715可以包括是随机存取存储器(Random Access Memory,RAM)、快闪存储器(Flash Memory)等,也可以是RAM,只读存储器(Read-Only Memory,ROM)或者硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD)。存储器815可以存储操作系统、通信程序、用户界面程序、浏览器、渲染应用。其中,渲染应用包括游戏应用以及其他渲染应用。
以用户设备为电脑为例,图17是一种实现方式的电脑的结构框图。如图17所示,电脑可包括:主机810、输出设备820以及输入设备830。
主机810可集成包括:一个或多个处理器、时钟模块以及电源管理模块。集成于主机810中的时钟模块主要用于为处理器产生数据传输和时序控制所需要的时钟。集成于主机810中的电源管理模块主要用于为处理器、输出设备820以及输入设备830提供稳定的、高精确度的电压。主机810还集成了存储器,用于存储各种软件程序和/或多组指令。具体实现中,存储器可包括高速随机存取的存储器,并且也可包括非易失性存储器,例如一个或多个磁盘存储设备、闪存设备或其他非易失性固态存储设备。存储器可以存储操作系统,例如ANDROID,IOS,WINDOWS,或者LINUX等嵌入式操作系统。存储器还可以存储通信程序,该通信程序可用于与一个或多个输入设备或者输出设备进行通信。存储器还可以存储用户界面程序,该用户界面程序可以通过图形化的操作界面将浏览器的内容形象逼真的显示出来,并通过菜单、对话框以及按键等输入控件接收用户对浏览器的控制操作。存储器还可以存储操作系统、通信程序、用户界面程序、浏览器以及渲染应用等等。其中,渲染应用包括游戏应用以及其他渲染应用。
输出设备820主要包括显示器,显示器可包括阴极射线管显示器(Cathode Ray Tube,CRT),等离子显示器(Plasma Display Panel,PDP),液晶显示器(Liquid Crystal Display,LCD)等等。以显示器为LCD为例,液晶显示包括液晶面板以及背光模组,其中,液晶显示面板包括偏振膜、玻璃基板、黑色矩阵、彩色滤光片、保护膜、普通电极、校准层、液晶层(液晶、间隔、密封剂)、电容、显示电极、棱镜层、散光层。背光模组包括:照明光源、反射板、导光板、扩散片、增亮膜(棱镜片)及框架等等。
输入设备830可以包括键盘和鼠标。键盘和鼠标是最常用也是最主要的输入设备,通过键盘可以将英文字母、数字、标点符号等输入到计算机中,从而向计算机发出命令、输入数据等,通过鼠标可以快速地进行纵横坐标定位,从而简化操作。其中,键盘可以包括机械键盘、塑料薄膜式键盘(Mechanical)、导电橡胶式键盘(Membrane),无接点静电电容键盘(Capacitives)等等,鼠标可以包括滚球鼠标、光电鼠标以及无线鼠标等等。
图18是一种实现方式的云渲染平台的结构框图。云渲染平台可以包括一个或者多个云渲染节点。云渲染节点包括:处理系统910、第一存储器920、智能网卡930以及总线940。
处理器系统910可以是采用异构结构,即,包括一个或者多个通用处理器,以及,一个或者多个特殊处理器,例如,GPU或者AI芯片等等,其中,通用处理器可以是能够处理电子指令的任何类型的设备,包括中央处理器(Central Processing Unit,CPU)、微处理器、微控制器、主处理器、控制器以及专用集成电路(Application Specific Integrated Circuit,ASIC)等等。通用处理器执行各种类型的数字存储指令,例如存储在第一存储器920中的软件或者固件程序。在一具体的实施例中,通用处理器可以是x86处理器等等。通用处理器通过物理接口将命令发送给第一存储器920,以完成存储相关的任务,例如,通用处理器可以提供的命令包括读取命令、写入命令、复制命令以及擦除命令等等。所述命令可以指定与第一存储器920的特定页和块有关的操作。特殊处理器用于完成图像渲染的复杂运算等等。
第一存储器920可以包括是随机存取存储器(Random Access Memory,RAM)、快闪存储器(Flash Memory)等,也可以是RAM,只读存储器(Read-Only Memory,ROM)或者硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD)。第一存储器920存储了实现渲染引擎以及渲染应用的程序代码。
智能网卡930,还被称为网络接口控制器、网络接口卡或者局域网(Local Area Network,LAN)适配器。每块智能网卡930都有一个唯一的MAC地址,是智能网卡930厂家在生产时烧入只读存储芯片中的。智能网卡930包括处理器931、第二存储器932以及收发器933。处理器931与通用处理器相类似,但是,处理器931的性能要求可以低于通用处理器的性能要求。在一具体的实施例中,处理器931可以是ARM处理器等等。第二存储器932也可以是快闪存储器、HDD或者SDD,第二存储器932的存储容量可以小于第一存储器920的存储容量。收发器933可以用于接收和发送报文,并将接收到的报文上传给处理器931进行处理。智能网卡930还可以包括多个端口,端口可以是粗缆接口、细缆接口和双绞线接口三种接口类型中的任意一种或者多种。
为了简便起见,此处没有对云渲染系统进行详细的介绍,具体请参见图1A-图1B,图2至图4,图5A-图5B,图6,图7A-图7B,图8A-图8B,图9A-图9B,图10A-图10B,图11A-图11B以及相关描述。并且,用户设备可以执行图12以及图13所示的渲染质量调整方法中的用户设备执行的步骤,云渲染平台可以执行图12以及图13所示的渲染质量调整方法中的云渲染平台执行的步骤。此外,图15中的获取模块610以及接收模块620可以由本实施例中的智能网卡930来实现,图15中的渲 染引擎630可以由本实施例中的处理器系统910执行第一存储器920中的程序代码来实现。
上述方案能够在用户设备发送渲染资源调整指令时,云渲染平台根据渲染资源调整指令实时调整计算资源进行计算,从而动态调整渲染质量,适应用户的不同需求。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、存储盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态存储盘Solid State Disk(SSD))等。

Claims (10)

  1. 一种渲染质量调整方法,其特征在于,包括:
    云渲染平台获取渲染任务;
    所述云渲染平台接收用户设备发送的渲染资源请求指令;
    所述云渲染平台根据所述渲染资源请求指令为所述渲染任务分配计算资源以进行渲染,从而得到第一渲染图像;
    所述云渲染平台接收所述用户设备发送的渲染资源调整指令;
    所述云渲染平台根据所述渲染资源调整指令调整为所述渲染任务分配的计算资源;
    所述云渲染平台使用所述调整后的为所述渲染任务分配的计算资源对所述渲染任务进行渲染,从而得到第二渲染图像。
  2. 根据权利要求1所述的方法,其特征在于,
    在所述渲染资源调整指令用于提升所述渲染任务的渲染质量的情况下,所述云渲染平台根据所述渲染资源调整指令调整为所述渲染任务分配的计算资源包括:增加为所述渲染任务分配的计算资源;或
    在所述渲染资源调整指令用于降低所述渲染任务的渲染质量的情况下,所述云渲染平台根据所述渲染资源调整指令调整为所述渲染任务分配的计算资源包括:减少为所述渲染任务分配的计算资源。
  3. 根据权利要求1或2所述的方法,其特征在于,
    在所述云渲染平台根据所述渲染资源请求指令为所述渲染任务分配计算资源以进行渲染,从而得到第一渲染图像之后,所述方法还包括:
    根据为所述渲染任务分配计算资源计算第一计价信息,其中,所述第一计价信息为渲染所述第一渲染图像的费用;
    所述云渲染平台使用所述调整后的为所述渲染任务分配的计算资源对所述渲染任务进行渲染,从而得到第二渲染图像之后,所述方法还包括:
    根据调整后的为所述渲染任务分配的计算资源计算第二计价信息,其中,所述第二计价信息为渲染所述第二渲染图像的费用。
  4. 根据权利要求1至3任一权利要求所述的方法,其特征在于,采用光线跟踪渲染对所述渲染任务进行渲染,所述渲染资源请求指令包括渲染指标、资源参数以及显示参数中的一种或者多种;其中,所述渲染指标包括每像素采样数Spp、光线返弹次数、物体建模三角形面片数、顶点数和画面噪声中的一种或者多种,所述资源参数包括处理器的个数、处理器的主频、内存大小以及网络带宽中的一种或者多种,所述显示参数包括帧率。
  5. 一种云渲染平台,其特征在于,包括:获取模块、接收模块以及渲染引擎;
    所述获取模块用于获取渲染任务;
    所述接收模块用于接收用户设备发送的渲染资源请求指令;
    所述渲染引擎用于根据所述渲染资源请求指令为所述渲染任务分配计算资源以进行渲染,从而得到第一渲染图像;
    所述接收模块用于接收所述用户设备发送的渲染资源调整指令;
    所述渲染引擎用于根据所述渲染资源调整指令调整为所述渲染任务分配的计算资源;
    所述渲染引擎用于使用所述调整后的为所述渲染任务分配的计算资源对所述渲染任务进行渲染,从而得到第二渲染图像。
  6. 根据权利要求5所述的平台,其特征在于,
    在所述渲染资源调整指令用于提升所述渲染任务的渲染质量的情况下,所述云渲染平台根据所述渲染资源调整指令调整为所述渲染任务分配的计算资源包括:增加为所述渲染任务分配的计算资源;或
    在所述渲染资源调整指令用于降低所述渲染任务的渲染质量的情况下,所述云渲染平台根据所述渲染资源调整指令调整为所述渲染任务分配的计算资源包括:减少为所述渲染任务分配的计算资源。
  7. 根据权利要求5或6所述的平台,其特征在于,所述云渲染平台还包括计价模块,
    所述计价模块用于根据为所述渲染任务分配计算资源计算第一计价信息,其中,所述第一计价信息为渲染所述第一渲染图像的费用;
    所述计价模块还用于根据调整后的为所述渲染任务分配的计算资源计算第二计价信息,其中,所述第二计价信息为渲染所述第二渲染图像的费用。
  8. 根据权利要求5至7任一权利要求所述的平台,其特征在于,采用光线跟踪渲染对所述渲染任务进行渲染,所述渲染资源请求指令包括渲染指标、资源参数以及显示参数中的一种或者多种;其中,所述渲染指标包括每像素采样数Spp、光线返弹次数、物体建模三角形面片数、顶点数和画面噪声中的一种或者多种,所述资源参数包括处理器的个数、处理器的主频、内存大小以及网络带宽中的一种或者多种,所述显示参数包括帧率。
  9. 一种渲染平台,其特征在于,所述渲染平台包括至少一个渲染节点,每个渲染节点包括处理器以及存储器,所述处理器执行所述存储器中的程序,从而执行如权利要求1至4任一权利要求所述的方法。
  10. 一种计算机可读存储介质,其特征在于,包括指令,当所述指令在计算机上运行时,使得所述计算机执行如权利要求1至4任一权利要求所述的方法。
PCT/CN2021/083467 2020-03-27 2021-03-27 渲染质量调整方法以及相关设备 WO2021190651A1 (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
CN202010231516 2020-03-27
CN202010231516.2 2020-03-27
CN202010351121.6 2020-04-28
CN202010351121 2020-04-28
CN202010449900.XA CN113516774A (zh) 2020-03-27 2020-05-25 渲染质量调整方法以及相关设备
CN202010449900.X 2020-05-25

Publications (1)

Publication Number Publication Date
WO2021190651A1 true WO2021190651A1 (zh) 2021-09-30

Family

ID=77891354

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/083467 WO2021190651A1 (zh) 2020-03-27 2021-03-27 渲染质量调整方法以及相关设备

Country Status (1)

Country Link
WO (1) WO2021190651A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115865518A (zh) * 2023-01-30 2023-03-28 天云融创数据科技(北京)有限公司 一种基于大数据的云平台数据处理方法及系统
CN115858177A (zh) * 2023-02-08 2023-03-28 成都数联云算科技有限公司 一种渲染机资源分配方法、装置、设备及介质
CN116560844A (zh) * 2023-05-18 2023-08-08 苏州高新区测绘事务所有限公司 一种用于云渲染的多节点资源分配方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105488837A (zh) * 2015-11-24 2016-04-13 成都赫尔墨斯科技有限公司 基于云计算的实时离屏渲染方法、装置及系统
US20160110841A1 (en) * 2013-07-05 2016-04-21 Square Enix Co., Ltd. Screen provision apparatus, screen provision system, control method and storage medium
CN109671158A (zh) * 2018-11-01 2019-04-23 苏州蜗牛数字科技股份有限公司 一种游戏画面的优化方法
CN110659103A (zh) * 2019-08-14 2020-01-07 西安万像电子科技有限公司 资源分配方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160110841A1 (en) * 2013-07-05 2016-04-21 Square Enix Co., Ltd. Screen provision apparatus, screen provision system, control method and storage medium
CN105488837A (zh) * 2015-11-24 2016-04-13 成都赫尔墨斯科技有限公司 基于云计算的实时离屏渲染方法、装置及系统
CN109671158A (zh) * 2018-11-01 2019-04-23 苏州蜗牛数字科技股份有限公司 一种游戏画面的优化方法
CN110659103A (zh) * 2019-08-14 2020-01-07 西安万像电子科技有限公司 资源分配方法及装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115865518A (zh) * 2023-01-30 2023-03-28 天云融创数据科技(北京)有限公司 一种基于大数据的云平台数据处理方法及系统
CN115865518B (zh) * 2023-01-30 2023-05-16 天云融创数据科技(北京)有限公司 一种基于大数据的云平台数据处理方法及系统
CN115858177A (zh) * 2023-02-08 2023-03-28 成都数联云算科技有限公司 一种渲染机资源分配方法、装置、设备及介质
CN115858177B (zh) * 2023-02-08 2023-10-24 成都数联云算科技有限公司 一种渲染机资源分配方法、装置、设备及介质
CN116560844A (zh) * 2023-05-18 2023-08-08 苏州高新区测绘事务所有限公司 一种用于云渲染的多节点资源分配方法和装置

Similar Documents

Publication Publication Date Title
WO2021190651A1 (zh) 渲染质量调整方法以及相关设备
US9937422B2 (en) Voxel-based, real-time acoustic adjustment
WO2021228031A1 (zh) 渲染方法、设备以及系统
CN102213996B (zh) 用于管理功率使用的技术
WO2022111400A1 (zh) 多光源场景渲染的光源采样权重确定方法及相关设备
CN110930497B (zh) 一种全局光照相交加速方法、装置及计算机存储介质
US20230186554A1 (en) Rendering method, device, and system
CN113838184A (zh) 渲染方法、设备以及系统
CN113379885B (zh) 虚拟头发的处理方法及装置、可读存储介质及电子设备
CN113516774A (zh) 渲染质量调整方法以及相关设备
WO2022022729A1 (zh) 渲染控制方法、设备以及系统
CN111275803B (zh) 3d模型渲染方法、装置、设备和存储介质
US11593990B1 (en) Storage of levels for bottom level bounding volume hierarchy
WO2022121653A1 (zh) 确定透明度的方法、装置、电子设备和存储介质
WO2021249358A1 (zh) 渲染方法、设备以及系统
CN108290071B (zh) 用于在预测游戏者的意图的情况下确定用于执行绘制的资源分配的介质、装置、系统和方法
KR102213727B1 (ko) 다수의 프리미티브들을 사용하는 그래픽 처리
CN111462269B (zh) 图像处理方法及装置、存储介质及电子设备
US20190238854A1 (en) Techniques for extrapolating image frames
CN113198179A (zh) 虚拟对象的转向控制方法及装置、存储介质、电子设备
CN112473138B (zh) 游戏的显示控制方法及装置、可读存储介质、电子设备
US11748911B2 (en) Shader function based pixel count determination
CN112967369A (zh) 一种光线展示方法和装置
US20240153159A1 (en) Method, apparatus, electronic device and storage medium for controlling based on extended reality
WO2022121654A1 (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: 21774994

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: 21774994

Country of ref document: EP

Kind code of ref document: A1