A rendering processing method, terminal and server
By collecting and splitting point cloud data, uploading rendering tasks to the server, and using the load balancing characteristics of the cluster server for rendering processing, the problems of low rendering efficiency and insufficient light and shadow effects of the existing cloud game rendering system are solved, and efficient rendering and high-quality lighting effects are achieved.
Patent Information
- Application Number
- CN202110250835.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-03-08
- Publication Date
- 2025-03-21
- Estimated Expiration
- 2041-03-08
AI Technical Summary
The existing cloud game rendering system is difficult to achieve significant rendering efficiency improvement when handling highly complex rendering work, and the rasterization method has serious shortcomings in simulating light and shadow effects.
By collecting point cloud data of objects, splitting them into multiple rendering tasks, and uploading them to the server. The server uses the load balancing characteristics of the cluster server to render and selects ray tracing or rasterization to generate rendering results based on the number of intersections between rays and objects or the size of ray coverage area.
The server load balancing is realized, rendering efficiency is improved, and the rasterized lighting effect is compensated for by hybrid rendering technology, and the global lighting effect is improved.
Smart Images

Figure CN115049778B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of information processing technology, and in particular to a rendering processing method, a terminal and a server. Background Art
[0002] At present, technologies such as virtual reality and augmented reality are developing rapidly. The low latency and large bandwidth characteristics of 5G networks bring huge opportunities for the in-depth development of the cloud XR (extended reality) industry. Cloud XR will become an inevitable trend of future development. As a highly interactive cloud VR (virtual reality) business in the virtual reality industry, VR games use VR technology to allow different users to have an immersive audio-visual experience in the virtual game world, and can interact in real time through various methods such as body movement and handle control, giving users an immersive experience.
[0003] In the existing cloud game rendering system, the rendering of the game screen runs on the server side. The server compresses the rendered screen and then transmits it to the user through the network. Since the server needs to handle highly complex rendering work, relying on a single machine cannot significantly improve the rendering efficiency. In the existing cloud game rendering solution, in order to reduce the complexity and latency of rendering, a low-complexity rasterization operation is used. The rasterization method splits the complex scene content into relatively independent computing units composed of several pixels. This method cannot simulate the propagation law of light in reality, resulting in serious deficiencies in simulating light and shadow effects. Summary of the invention
[0004] The technical problem to be solved by the present invention is how to provide a rendering processing method, a terminal and a server so that the server can achieve load balancing.
[0005] In order to solve the above technical problems, the technical solution of the present invention is as follows:
[0006] A rendering processing method, applied to a terminal, comprising:
[0007] Collect point cloud data of objects;
[0008] Splitting the point cloud data to obtain multiple rendering tasks;
[0009] The rendering task is uploaded to the server.
[0010] Optionally, the point cloud data includes at least one of the following:
[0011] The three-dimensional position coordinates of the data points on the surface of the object;
[0012] The color of the surface of the object;
[0013] The light intensity value on the surface of the object;
[0014] Collection time.
[0015] Optionally, the point cloud data is split to obtain multiple rendering tasks, including:
[0016] The point cloud data is split according to rendering index parameters to obtain multiple rendering tasks.
[0017] Optionally, the point cloud data is split according to rendering index parameters to obtain multiple rendering tasks, including:
[0018] According to at least one of the rendering resolution, the frame rate and the performance requirement for the graphics processor GPU, the point cloud data is evenly split according to the workload of point cloud data processing to obtain a plurality of rendering tasks.
[0019] An embodiment of the present invention further provides a rendering processing method, which is applied to a server, and the method includes:
[0020] Receive multiple rendering tasks uploaded by the terminal;
[0021] Performing rendering processing on the multiple rendering tasks to obtain rendering results;
[0022] The rendering result is sent to the terminal.
[0023] Optionally, rendering processing is performed on the multiple rendering tasks to obtain rendering results, including:
[0024] Determine and save reusable to-be-rendered data according to the multiple rendering tasks;
[0025] While saving the reusable data to be rendered, obtain the number of intersections of light rays and object collisions in the space or the size of the area covered by the light rays;
[0026] According to the number of intersections or the size of the area covered by the light, ray tracing rendering processing is performed on the object or rasterization processing is performed on the object to obtain a rendering result.
[0027] Optionally, determining and saving reusable to-be-rendered data according to the multiple rendering tasks includes:
[0028] Determining, according to the plurality of rendering tasks, data to be rendered that can be reused;
[0029] Obtain angle and depth data of different user fields of view based on the reusable data to be rendered;
[0030] According to the difference in depth data of different user fields of view and angle information, a rendering result that can be reused is cached, where the rendering result is a rendering result obtained by rendering the data to be rendered.
[0031] Optionally, based on the difference in depth data and angle information of different user views, cache reusable rendering results, including:
[0032] If the difference in the depth data of the different user fields of view is within a preset range, after the angle conversion is performed according to the angle information, a rendering result that can be reused is cached.
[0033] Optionally, the rendering processing method further includes: if the difference in the depth data of the different user fields of view is not within the preset range, zooming in or out the rendering picture according to the depth data.
[0034] Optionally, according to the number of intersections or the size of the light coverage area, ray tracing rendering processing is performed on the object or rasterization processing is performed on the object to obtain a rendering result, including:
[0035] For objects whose number of intersections or light coverage area is greater than a preset threshold, ray tracing rendering processing is performed to obtain a ray tracing rendering processing result; otherwise, rasterization processing is performed on the object to obtain a rasterization processing result;
[0036] The ray tracing rendering result and the rasterization processing result are mixed to obtain a mixed rendering result.
[0037] An embodiment of the present invention further provides a rendering processing device, applied to a terminal, comprising:
[0038] A collection module, used to collect point cloud data of objects;
[0039] A splitting module, used for splitting the point cloud data to obtain multiple rendering tasks;
[0040] The transmission module is used to upload the rendering task to the server.
[0041] An embodiment of the present invention further provides a terminal, including:
[0042] A processor, used for collecting point cloud data of an object, and splitting the point cloud data to obtain multiple rendering tasks;
[0043] A transceiver is used to upload the rendering task to a server.
[0044] An embodiment of the present invention further provides a rendering processing device, which is applied to a server, and the device includes:
[0045] The transceiver module is used to receive multiple rendering tasks uploaded by the terminal;
[0046] A processing module, used for performing rendering processing on the plurality of rendering tasks to obtain rendering results;
[0047] The transceiver module is also used to send the rendering result to the terminal.
[0048] An embodiment of the present invention further provides a server, comprising:
[0049] A transceiver, used to receive multiple rendering tasks uploaded by the terminal;
[0050] A processor, configured to perform rendering processing on the plurality of rendering tasks to obtain rendering results;
[0051] The transceiver is also used to send the rendering result to the terminal.
[0052] An embodiment of the present invention further provides an information processing device, comprising: a processor and a memory storing a computer program, wherein when the computer program is executed by the processor, the method described above is executed.
[0053] An embodiment of the present invention further provides a computer-readable storage medium storing instructions, which, when executed on a computer, enable the computer to execute the method described above.
[0054] The above solution of the present invention includes at least the following beneficial effects:
[0055] By collecting point cloud data of an object, splitting the point cloud data to obtain multiple rendering tasks, and uploading the rendering tasks to a server, the server can fully utilize the load balancing characteristics of the cluster server to achieve load balancing. BRIEF DESCRIPTION OF THE DRAWINGS
[0056] Figure 1 is a flowchart of a rendering processing method on the terminal side of an embodiment of the present invention;
[0057] Figure 2 is a schematic flow chart of a rendering processing method on the server side according to an embodiment of the present invention;
[0058] Figure 3 is a schematic diagram of a cloud cluster rendering system according to an embodiment of the present invention;
[0059] Figure 4 is a schematic diagram of a hybrid rendering method according to an embodiment of the present invention;
[0060] Figure 5 is a schematic block diagram of a module of a rendering processing device on a terminal side according to an embodiment of the present invention;
[0061] Figure 6 It is a module block diagram of a rendering processing device on the server side of an embodiment of the present invention. DETAILED DESCRIPTION
[0062] The exemplary embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although the exemplary embodiments of the present disclosure are shown in the accompanying drawings, it should be understood that the present disclosure can be implemented in various forms and should not be limited by the embodiments set forth herein. On the contrary, these embodiments are provided to enable a more thorough understanding of the present disclosure and to fully convey the scope of the present disclosure to those skilled in the art.
[0063] like Figure 1 As shown, an embodiment of the present invention provides a rendering processing method, which is applied to a terminal and includes:
[0064] Step 11, collecting point cloud data of the object;
[0065] Step 12, splitting the point cloud data to obtain multiple rendering tasks;
[0066] Step 13: Upload the rendering task to the server.
[0067] In this embodiment, the terminal has an acquisition function and a lightweight feature. It can perform simple motion capture and screen display. It also includes a VR game rendering system, which can realize rendering functions with lower processing power. The cloud has a cluster server with a high operating rate, which can migrate the workload from an overloaded computer to other computers in the cluster. It can perform computationally intensive three-dimensional reconstruction and screen rendering operations in the cloud. By collecting the point cloud data of the object; splitting the point cloud data to obtain multiple rendering tasks; uploading the rendering tasks to the server. This allows the server to make full use of the load balancing characteristics of the cluster server to achieve load balancing.
[0068] In an optional embodiment of the present invention, the point cloud data includes at least one of the following: three-dimensional position coordinates of data points on the surface of the object; color of the surface of the object; light intensity value of the surface of the object; acquisition time.
[0069] The collection of point cloud data on the surface of an object collected by the terminal may include not only three-dimensional position coordinates, but also rich information such as color, intensity value, and time.
[0070] In an optional embodiment of the present invention, step 12 may include: splitting the point cloud data according to rendering index parameters to obtain multiple rendering tasks.
[0071] Specifically, the point cloud data may be evenly split according to the workload of processing the point cloud data according to at least one of the rendering resolution, frame rate, and performance requirements for the graphics processor GPU to obtain multiple rendering tasks. Of course, the rendering index parameters may also include other parameters for rendering.
[0072] In this embodiment, the terminal collects point cloud data, and then splits the collected point cloud data according to rendering index parameters, and uploads the split rendering tasks to the cluster server in the cloud for three-dimensional reconstruction and rendering operations. The splitting operation can make full use of the load balancing characteristics of the cluster server.
[0073] like Figure 2 As shown, an embodiment of the present invention further provides a rendering processing method, which is applied to a server, and the method includes:
[0074] Step 21, receiving multiple rendering tasks uploaded by the terminal;
[0075] Step 22, performing rendering processing on the multiple rendering tasks to obtain rendering results;
[0076] Step 23: Send the rendering result to the terminal.
[0077] In this embodiment, the server may be a cluster server in the cloud. The cluster server performs rendering processing based on the rendering tasks uploaded by the terminal. The workload may be migrated from an overloaded computer to other computers in the cluster, thereby realizing the load balancing feature of the cluster server.
[0078] In an optional embodiment of the present invention, step 22 may include:
[0079] Step 221, determining and saving the reusable to-be-rendered data according to the multiple rendering tasks;
[0080] Step 222, in the case of saving the reusable data to be rendered, obtaining the number of intersections of light rays and objects colliding in the space or the size of the area covered by the light rays;
[0081] Step 223 , performing ray tracing rendering processing on the object or rasterizing processing on the object according to the number of intersections or the size of the light coverage area, to obtain a rendering result.
[0082] Since cluster servers have limited processing capabilities and high costs, and the amount of data to be rendered is very large, it is very necessary to improve the resource utilization of cloud cluster servers.
[0083] In an optional embodiment of the present invention, step 221 may include:
[0084] Step 2211, determining the to-be-rendered data that can be reused according to the multiple rendering tasks;
[0085] Step 2212, obtaining angle and depth data of different user fields of view according to the reusable data to be rendered;
[0086] Step 2213, based on the difference in depth data of different user fields of view and angle information, cache a reusable rendering result, wherein the rendering result is a rendering result obtained by rendering the data to be rendered.
[0087] Here, based on the differences in depth data and angle information of different user fields of view, the reusable rendering results are cached, including:
[0088] If the difference in depth data of different user views is within a preset range, after performing angle conversion according to the angle information, a reusable rendering result is cached. The preset range here can be a range between 0 and a preset value. When it is 0, it means that the depth data of different user views are the same.
[0089] Furthermore, the rendering processing method also includes: if the difference in the depth data of the different user fields of view is not within the preset range, zooming in or out on the rendered image according to the depth data to adapt to the field of view requirements of different users' immersive experience.
[0090] In this embodiment, for example, in a multiplayer VR (virtual reality) game scene, the fields of view seen by different users may be the same, with only a difference in angle. Therefore, the server can first determine the data to be rendered that can be reused, and save the angle and depth differences of the fields of view of different users. When the depth information of different users is the same, the rendering result of one user is cached, and after a suitable angle transformation, the processing result is reused in other user views. For users at different depths, the rendered picture can also be enlarged or reduced according to the depth information to adapt to the field of view requirements of different users' immersive experience. The reuse of rendering resources can reduce the memory consumption of cloud cluster servers and reduce the cost of using cloud cluster servers.
[0091] In an optional embodiment of the present invention, step 223 may include:
[0092] For objects whose number of intersections or light coverage area is greater than a preset threshold, ray tracing rendering processing is performed to obtain a ray tracing rendering processing result; otherwise, rasterization processing is performed on the object to obtain a rasterization processing result;
[0093] The ray tracing rendering result and the rasterization processing result are mixed to obtain a mixed rendering result.
[0094] In this embodiment, after the rendering content is reused, the rendering load of the cluster server is reduced. When the cluster server is in a low consumption state, a ray tracing operation can be performed on the rendering texture.
[0095] Here, the rasterization method splits the complex scene content into relatively independent computing units consisting of several pixels.
[0096] Furthermore, ray tracing technology can be used for some objects or scenes. The ray tracing calculation is based on the real law of light propagation. First, the intersection of the light and the object collision in space is determined, and then the number or area of the intersection between the light and the object collision part is determined to decide whether to perform ray tracing processing on the object.
[0097] Ray tracing is performed on objects with a large number of intersections and a large coverage area; rasterization is performed on objects with a small number of intersections and a small coverage area. If the processing power of the cluster server meets the requirements, hybrid rendering can make up for the shortcomings of rasterization lighting effects and improve the global lighting effect.
[0098] like Figure 3 and Figure 4 As shown, the process of a specific implementation example of the above method of the present invention includes:
[0099] The terminal collects point cloud data of the object;
[0100] The terminal splits the point cloud data into multiple rendering tasks and uploads them to the cloud server;
[0101] After receiving multiple rendering tasks to be rendered, the server obtains the number of intersections of light rays and objects in the space or the size of the area covered by the light rays;
[0102] If the processing capacity of the server can meet the conditions for processing the current rendering task, then for the objects whose number of intersections or light coverage area is greater than a preset threshold, ray tracing rendering processing is performed to obtain ray tracing rendering processing results; otherwise, rasterization processing is performed on the objects to obtain rasterization processing results;
[0103] The server performs mixed processing on the ray tracing rendering processing result and the rasterization processing result to obtain a mixed rendering result, and returns it to the terminal.
[0104] Here, the ray tracing rendering process includes: tracing in the opposite direction of the light reaching the viewpoint, passing through each pixel on the screen, finding the surface point of the object that intersects the line of sight, and continuing to track to find all light sources that affect the light intensity of the surface point, thereby calculating the precise light intensity at the surface point of the object.
[0105] The rasterization process involves determining which integer grid regions in window coordinates are occupied by primitives and assigning a color value and a depth value to each region.
[0106] The above-mentioned embodiment of the present invention splits the rendering task according to the rendering index parameter, and uploads the rendering task to the cloud cluster server for rendering. The splitting operation can make full use of the load balancing characteristics of the cluster server.
[0107] Furthermore, the server caches the rendering results of a user and saves the angle and depth differences of different users' views. When the depth information of different users is the same, the processing results are reused in other users' views after appropriate angle transformation. For users at different depths, the rendering content is enlarged or reduced according to the depth information to improve the quality of the user's immersive experience. The reuse of rendering resources can reduce the memory consumption of cloud cluster servers and reduce the cost of using cloud cluster servers.
[0108] Furthermore, the server determines the intersection of light rays and objects in space, performs ray tracing on objects with a large number of intersections and a large coverage area, and performs rasterization on objects with a small number of intersections and a small coverage area. If the processing power of the cluster server meets the requirements, hybrid rendering can make up for the shortcomings of rasterization lighting effects and improve global lighting effects.
[0109] like Figure 5 As shown, an embodiment of the present invention further provides a rendering processing device 50, which is applied to a terminal and includes:
[0110] A collection module 51, used to collect point cloud data of an object;
[0111] A splitting module 52, used for splitting the point cloud data to obtain multiple rendering tasks;
[0112] The transmission module 53 is used to upload the rendering task to the server.
[0113] Optionally, the point cloud data includes at least one of the following:
[0114] The three-dimensional position coordinates of the data points on the surface of the object;
[0115] The color of the surface of the object;
[0116] The light intensity value on the object surface;
[0117] Collection time.
[0118] Optionally, the point cloud data is split to obtain multiple rendering tasks, including:
[0119] The point cloud data is split according to rendering index parameters to obtain multiple rendering tasks.
[0120] Optionally, the point cloud data is split according to rendering index parameters to obtain multiple rendering tasks, including:
[0121] According to at least one of the rendering resolution, the frame rate and the performance requirement for the graphics processor GPU, the point cloud data is evenly split according to the workload of point cloud data processing to obtain a plurality of rendering tasks.
[0122] It should be noted that the device may also include a display module for displaying the rendering result returned by the server and showing it to the user. Figure 1 The device corresponding to the method on the terminal side shown, all implementation methods in the above method embodiments are applicable to the embodiments of the device, and can also achieve the same technical effect.
[0123] An embodiment of the present invention further provides a terminal, including:
[0124] A processor, used for collecting point cloud data of an object, and splitting the point cloud data to obtain multiple rendering tasks;
[0125] A transceiver is used to upload the rendering task to a server.
[0126] Optionally, the point cloud data includes at least one of the following:
[0127] The three-dimensional position coordinates of the data points on the surface of the object;
[0128] The color of the surface of the object;
[0129] The light intensity value on the surface of the object;
[0130] Collection time.
[0131] Optionally, the point cloud data is split to obtain multiple rendering tasks, including:
[0132] The point cloud data is split according to rendering index parameters to obtain multiple rendering tasks.
[0133] Optionally, the point cloud data is split according to rendering index parameters to obtain multiple rendering tasks, including:
[0134] According to at least one of the rendering resolution, the frame rate and the performance requirement for the graphics processor GPU, the point cloud data is evenly split according to the workload of point cloud data processing to obtain a plurality of rendering tasks.
[0135] It should be noted that this terminal is Figure 1 The terminal corresponds to the method on the terminal side shown, and all implementation methods in the above method embodiments are applicable to the embodiments of the terminal, and can also achieve the same technical effects.
[0136] like Figure 6As shown, an embodiment of the present invention further provides a rendering processing device 60, which is applied to a server, and the device 60 includes:
[0137] The transceiver module 61 is used to receive multiple rendering tasks uploaded by the terminal;
[0138] The processing module 62 is used to perform rendering processing on the multiple rendering tasks to obtain rendering results;
[0139] The transceiver module 61 is further configured to send the rendering result to the terminal.
[0140] Optionally, rendering processing is performed on the multiple rendering tasks to obtain rendering results, including:
[0141] Determine and save reusable to-be-rendered data according to the multiple rendering tasks;
[0142] While saving the reusable data to be rendered, obtain the number of intersections of light rays and object collisions in the space or the size of the area covered by the light rays;
[0143] According to the number of intersections or the size of the area covered by the light, ray tracing rendering processing is performed on the object or rasterization processing is performed on the object to obtain a rendering result.
[0144] Optionally, determining and saving reusable to-be-rendered data according to the multiple rendering tasks includes:
[0145] Determining, according to the plurality of rendering tasks, data to be rendered that can be reused;
[0146] Obtain angle and depth data of different user fields of view based on the reusable data to be rendered;
[0147] According to the difference in depth data of different user fields of view and angle information, a rendering result that can be reused is cached, where the rendering result is a rendering result obtained by rendering the data to be rendered.
[0148] Optionally, based on the difference in depth data and angle information of different user views, cache reusable rendering results, including:
[0149] If the difference in the depth data of the different user fields of view is within a preset range, after the angle conversion is performed according to the angle information, a rendering result that can be reused is cached.
[0150] Optionally, if the difference in the depth data of the fields of view of different users is not within the preset range, the rendered image is enlarged or reduced according to the depth data to adapt to the field of view requirements of different users for immersive experience.
[0151] Optionally, according to the number of intersections or the size of the light coverage area, ray tracing rendering processing is performed on the object or rasterization processing is performed on the object to obtain a rendering result, including:
[0152] For objects whose number of intersections or light coverage area is greater than a preset threshold, ray tracing rendering processing is performed to obtain a ray tracing rendering processing result; otherwise, rasterization processing is performed on the object to obtain a rasterization processing result;
[0153] The ray tracing rendering result and the rasterization processing result are mixed to obtain a mixed rendering result.
[0154] It should be noted that Figure 3 The image processing module and rendering module shown in the figure can be part of the processing module in the device, and the device is the same as the above-mentioned Figure 2 The device corresponding to the method on the terminal side shown, all implementation methods in the above method embodiments are applicable to the embodiments of the device, and can also achieve the same technical effect.
[0155] An embodiment of the present invention further provides a server, comprising:
[0156] A transceiver, used to receive multiple rendering tasks uploaded by the terminal;
[0157] A processor, configured to perform rendering processing on the plurality of rendering tasks to obtain rendering results;
[0158] The transceiver is also used to send the rendering result to the terminal.
[0159] Optionally, rendering processing is performed on the multiple rendering tasks to obtain rendering results, including:
[0160] Determine and save reusable to-be-rendered data according to the multiple rendering tasks;
[0161] While saving the reusable data to be rendered, obtain the number of intersections of light rays and object collisions in the space or the size of the area covered by the light rays;
[0162] According to the number of intersections or the size of the area covered by the light, ray tracing rendering processing is performed on the object or rasterization processing is performed on the object to obtain a rendering result.
[0163] Optionally, determining and saving reusable to-be-rendered data according to the multiple rendering tasks includes:
[0164] Determining, according to the plurality of rendering tasks, data to be rendered that can be reused;
[0165] Obtain angle and depth data of different user fields of view based on the reusable data to be rendered;
[0166] According to the difference in depth data of different user fields of view and angle information, a rendering result that can be reused is cached, where the rendering result is a rendering result obtained by rendering the data to be rendered.
[0167] Optionally, based on the difference in depth data and angle information of different user views, cache reusable rendering results, including:
[0168] If the difference in the depth data of the different user fields of view is within a preset range, after the angle conversion is performed according to the angle information, a rendering result that can be reused is cached.
[0169] Optionally, if the difference in the depth data of the fields of view of different users is not within the preset range, the rendered image is enlarged or reduced according to the depth data to adapt to the field of view requirements of different users for immersive experience.
[0170] Optionally, according to the number of intersections or the size of the light coverage area, ray tracing rendering processing is performed on the object or rasterization processing is performed on the object to obtain a rendering result, including:
[0171] For objects whose number of intersections or light coverage area is greater than a preset threshold, ray tracing rendering processing is performed to obtain a ray tracing rendering processing result; otherwise, rasterization processing is performed on the object to obtain a rasterization processing result;
[0172] The ray tracing rendering result and the rasterization processing result are mixed to obtain a mixed rendering result.
[0173] It should be noted that this server is Figure 2 For the server corresponding to the method shown, all implementation methods in the above method embodiments are applicable to the embodiments of the server and can achieve the same technical effects.
[0174] The embodiment of the present invention further provides an information processing device, comprising: a processor and a memory storing a computer program, wherein when the computer program is executed by the processor, the method described above is executed. All implementations in the above method embodiment are applicable to this embodiment and can achieve the same technical effect.
[0175] The embodiment of the present invention further provides a computer-readable storage medium, including instructions, which, when executed on a computer, enable the computer to execute the method described above. All implementations in the above method embodiment are applicable to this embodiment and can achieve the same technical effect.
[0176] Those skilled in the art will appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of the present invention.
[0177] Those skilled in the art can clearly understand that, for the convenience and brevity of description, the specific working processes of the systems, devices and units described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.
[0178] In the embodiments provided by the present invention, it should be understood that the disclosed devices and methods can be implemented in other ways. For example, the device embodiments described above are only schematic. For example, the division of the units is only a logical function division. There may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.
[0179] The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
[0180] In addition, each functional unit in each embodiment of the present invention may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
[0181] If the functions are implemented in the form of software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present invention, or the part that contributes to the prior art, or the part of the technical solution, can be embodied in the form of a software product. The computer software product is stored in a storage medium, including several instructions for a computer device (which can be a personal computer, server, or network device, etc.) to perform all or part of the steps of the method described in each embodiment of the present invention. The aforementioned storage medium includes: various media that can store program codes, such as USB flash drives, mobile hard disks, ROM, RAM, magnetic disks, or optical disks.
[0182] In addition, it should be noted that in the apparatus and method of the present invention, it is obvious that each component or each step can be decomposed and / or recombined. These decompositions and / or recombinations should be regarded as equivalent schemes of the present invention. Moreover, the steps of performing the above-mentioned series of processing can naturally be performed in chronological order according to the order of description, but it is not necessary to perform them in chronological order, and some steps can be performed in parallel or independently of each other. For those of ordinary skill in the art, it is understood that all or any steps or components of the method and apparatus of the present invention can be implemented in any computing device (including processors, storage media, etc.) or a network of computing devices in hardware, firmware, software or a combination thereof, which can be achieved by those of ordinary skill in the art using their basic programming skills after reading the description of the present invention.
[0183] Therefore, the purpose of the present invention can also be achieved by running a program or a group of programs on any computing device. The computing device can be a well-known general device. Therefore, the purpose of the present invention can also be achieved by simply providing a program product containing a program code that implements the method or device. That is to say, such a program product also constitutes the present invention, and the storage medium storing such a program product also constitutes the present invention. Obviously, the storage medium can be any well-known storage medium or any storage medium developed in the future. It should also be pointed out that in the device and method of the present invention, it is obvious that each component or each step can be decomposed and / or recombined. These decompositions and / or recombinations should be regarded as equivalent schemes of the present invention. In addition, the steps of performing the above-mentioned series of processing can naturally be performed in chronological order according to the order of description, but it is not necessary to perform them in chronological order. Some steps can be performed in parallel or independently of each other.
[0184] The above is a preferred embodiment of the present invention. It should be pointed out that for ordinary technicians in this technical field, several improvements and modifications can be made without departing from the principles of the present invention. These improvements and modifications should also be regarded as the scope of protection of the present invention.
Claims
1. A rendering processing method, characterized in that: Applied to terminals, including: Collect point cloud data of objects; Splitting the point cloud data to obtain multiple rendering tasks; The rendering task is uploaded to a server, and the server is used to render the multiple rendering tasks to obtain a rendering result; wherein, the rendering process for the multiple rendering tasks to obtain a rendering result includes: determining and saving the reusable data to be rendered according to the multiple rendering tasks; while saving the reusable data to be rendered, obtaining the number of intersections of light rays and objects colliding in space or the size of the area covered by the light rays; and performing ray tracing rendering on the object or rasterizing the object according to the number of intersections or the size of the area covered by the light rays to obtain a rendering result.
2. The rendering processing method according to claim 1, characterized in that: The point cloud data includes at least one of the following: The three-dimensional position coordinates of the data points on the surface of the object; The color of the surface of the object; The light intensity value on the surface of the object; Collection time.
3. The rendering processing method according to claim 1, characterized in that: The point cloud data is split to obtain multiple rendering tasks, including: The point cloud data is split according to rendering index parameters to obtain multiple rendering tasks.
4. The rendering processing method according to claim 3, characterized in that: The point cloud data is split according to the rendering index parameters to obtain multiple rendering tasks, including: According to at least one of the rendering resolution, the frame rate and the performance requirement for the graphics processor GPU, the point cloud data is evenly split according to the workload of point cloud data processing to obtain a plurality of rendering tasks.
5. A rendering processing method, characterized in that: Applied to a server, the method comprises: Receive multiple rendering tasks uploaded by the terminal; Performing rendering processing on the multiple rendering tasks to obtain rendering results; Sending the rendering result to the terminal; The rendering process is performed on the plurality of rendering tasks to obtain rendering results, including: Determine and save reusable to-be-rendered data according to the multiple rendering tasks; While saving the reusable data to be rendered, obtain the number of intersections of light rays and object collisions in the space or the size of the area covered by the light rays; According to the number of intersections or the size of the area covered by the light, ray tracing rendering processing is performed on the object or rasterization processing is performed on the object to obtain a rendering result.
6. The rendering method according to claim 5, characterized in that: Determining and saving reusable to-be-rendered data according to the multiple rendering tasks includes: Determining, according to the plurality of rendering tasks, data to be rendered that can be reused; Obtain angle and depth data of different user fields of view based on the reusable data to be rendered; According to the difference in depth data of different user fields of view and angle information, a rendering result that can be reused is cached, where the rendering result is a rendering result obtained by rendering the data to be rendered.
7. The rendering method according to claim 6, characterized in that: Based on the differences in depth data and angle information of different user fields of view, the rendering results that can be reused are cached, including: If the difference in the depth data of the different user fields of view is within a preset range, after the angle conversion is performed according to the angle information, a rendering result that can be reused is cached.
8. The rendering method according to claim 7, characterized in that: Also includes: If the difference in the depth data of the different user fields of view is not within the preset range, the rendering picture is enlarged or reduced according to the depth data.
9. The rendering method according to claim 5, characterized in that: According to the number of intersections or the size of the light coverage area, ray tracing rendering processing is performed on the object or rasterization processing is performed on the object to obtain a rendering result, including: For objects whose number of intersections or light coverage area is greater than a preset threshold, ray tracing rendering processing is performed to obtain a ray tracing rendering processing result; otherwise, rasterization processing is performed on the object to obtain a rasterization processing result; The ray tracing rendering result and the rasterization processing result are mixed to obtain a mixed rendering result.
10. A rendering processing device, characterized in that: Applied to terminals, including: A collection module, used to collect point cloud data of objects; A splitting module, used for splitting the point cloud data to obtain multiple rendering tasks; A transmission module is used to upload the rendering task to a server, and use the server to render the multiple rendering tasks to obtain rendering results; wherein, rendering the multiple rendering tasks to obtain rendering results includes: determining and saving reusable data to be rendered based on the multiple rendering tasks; while saving the reusable data to be rendered, obtaining the number of intersections of light rays and objects in space or the size of the area covered by the light rays; and performing ray tracing rendering or rasterizing on the object based on the number of intersections or the size of the area covered by the light rays to obtain rendering results.
11. A terminal, characterized in that: include: A processor, used for collecting point cloud data of an object, and splitting the point cloud data to obtain multiple rendering tasks; A transceiver is used to upload the rendering task to a server, and use the server to render the multiple rendering tasks to obtain rendering results; wherein, rendering the multiple rendering tasks to obtain rendering results includes: determining and saving the reusable data to be rendered according to the multiple rendering tasks; while saving the reusable data to be rendered, obtaining the number of intersections of light rays and objects in space or the size of the area covered by the light rays; and performing ray tracing rendering processing on the object or rasterizing the object according to the number of intersections or the size of the area covered by the light rays to obtain the rendering results.
12. A rendering processing device, characterized in that: Applied to a server, the device comprises: The transceiver module is used to receive multiple rendering tasks uploaded by the terminal; A processing module, used for performing rendering processing on the plurality of rendering tasks to obtain rendering results; The transceiver module is also used to send the rendering result to the terminal; The rendering process is performed on the plurality of rendering tasks to obtain rendering results, including: Determine and save reusable to-be-rendered data according to the multiple rendering tasks; While saving the reusable data to be rendered, obtain the number of intersections of light rays and object collisions in the space or the size of the area covered by the light rays; According to the number of intersections or the size of the area covered by the light, ray tracing rendering processing is performed on the object or rasterization processing is performed on the object to obtain a rendering result.
13. A server, characterized in that: include: A transceiver, used to receive multiple rendering tasks uploaded by the terminal; A processor, configured to perform rendering processing on the plurality of rendering tasks to obtain rendering results; The transceiver is also used to send the rendering result to the terminal; The rendering process is performed on the plurality of rendering tasks to obtain rendering results, including: Determine and save reusable to-be-rendered data according to the multiple rendering tasks; While saving the reusable data to be rendered, obtain the number of intersections of light rays and object collisions in the space or the size of the area covered by the light rays; According to the number of intersections or the size of the area covered by the light, ray tracing rendering processing is performed on the object or rasterization processing is performed on the object to obtain a rendering result.
14. An information processing device, characterized in that: include: A processor and a memory storing a computer program, wherein when the computer program is executed by the processor, the method according to any one of claims 1 to 4 or the method according to any one of claims 5 to 9 is executed.
15. A computer-readable storage medium, characterized in that: Instructions are stored, and when the instructions are executed on a computer, the computer is caused to execute the method according to any one of claims 1 to 4 or the method according to any one of claims 5 to 9.
Citation Information
Patent Citations
Real 3D real-time mixed rendering method
CN107256574A
Method, server and system for intelligently distributing rendering tasks and storage medium
CN110955504A
Point cloud rendering method and device
CN111617480A