CN117036566A - Remote image rendering method, system, electronic device and readable storage medium - Google Patents

Remote image rendering method, system, electronic device and readable storage medium Download PDF

Info

Publication number
CN117036566A
CN117036566A CN202311094589.1A CN202311094589A CN117036566A CN 117036566 A CN117036566 A CN 117036566A CN 202311094589 A CN202311094589 A CN 202311094589A CN 117036566 A CN117036566 A CN 117036566A
Authority
CN
China
Prior art keywords
image rendering
proxy engine
engine
data packet
interface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311094589.1A
Other languages
Chinese (zh)
Inventor
刘现坤
王鲲
陈飞
邹懋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Vita Technology Beijing Co ltd
Original Assignee
Vita Technology Beijing Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Vita Technology Beijing Co ltd filed Critical Vita Technology Beijing Co ltd
Priority to CN202311094589.1A priority Critical patent/CN117036566A/en
Publication of CN117036566A publication Critical patent/CN117036566A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)

Abstract

The application discloses a remote image rendering method, a remote image rendering system, electronic equipment and a readable storage medium, and belongs to the technical field of image rendering. The method comprises the following steps: the method comprises the steps that a first proxy engine receives an instruction of calling an application program, wherein the instruction of calling the application program comprises a plurality of interface calling information, and each interface calling information comprises at least one image rendering parameter; under the condition that the preset condition is met, the first proxy engine generates an incremental data packet according to image rendering parameters in the interface calling information; the first proxy engine sends the incremental data packet to the second proxy engine; the second proxy engine synchronizes the image rendering parameters in the incremental data packets to the rendering engine so that the rendering engine generates a rendering image according to the image rendering parameters. The application solves the technical problem of low image rendering efficiency caused by data transmission when the application program calls the interface of the rendering engine every time in the prior art. The method is mainly used for remote image rendering of the scene.

Description

Remote image rendering method, system, electronic device and readable storage medium
Technical Field
The present application relates to the field of image rendering technologies, and in particular, to a remote image rendering method, system, electronic device, and readable storage medium.
Background
In rendering images, a rendering pipeline is typically employed. The rendering pipeline divides the image rendering process into a plurality of fixed sub-processes, each of which is responsible for a particular job. For example, the rendering process may be divided into several fixed sub-processes, an input assembly phase, a vertex shader phase, a pixel shader phase, and so on. The image rendering engine sequentially executes the divided sub-processes, and once the sub-processes are executed, the image rendering operation is completed. The final effect of each rendering operation is determined by parameters used when each sub-process in the rendering process is executed, namely, variables, scripts, textures, buffers and other data set into a video memory.
Typically, the rendering engine will provide an interface (Application Programming Interface, API) to the application program, which passes parameters used by the rendering process to the rendering engine by calling the rendering engine's interface. In remote image rendering, the rendering engine and the application are deployed on different devices, and the application transmits parameters to the rendering engine through a remote call interface. In a single image rendering process, an application program may need to call multiple interfaces, and each time the interfaces are called, data is transmitted to a rendering engine, and the efficiency of image rendering is reduced because a large amount of extra data is introduced into a data packet used in data transmission.
Disclosure of Invention
It is an object of the present application to provide a new solution for remote image rendering.
According to a first aspect of the present application, there is provided a remote image rendering method applied to a remote image rendering system including a first proxy engine provided at a client, a second proxy engine provided at a server, and a rendering engine provided at the server, the method comprising:
the first proxy engine receives an instruction of calling an application program, wherein the instruction of calling the application program comprises a plurality of interface calling information, and each interface calling information comprises at least one image rendering parameter;
under the condition that preset conditions are met, the first proxy engine generates an incremental data packet according to image rendering parameters in the interface call information;
the first proxy engine sends the incremental data packet to the second proxy engine;
the second proxy engine synchronizes the image rendering parameters in the incremental data packet to the rendering engine so that the rendering engine generates a rendering image according to the image rendering parameters.
Optionally, the generating, by the first proxy engine, an incremental data packet according to image rendering parameters in the interface call information when a preset condition is satisfied includes:
the first proxy engine stores the image rendering parameters into a cache corresponding to the first proxy engine;
and executing the step that the first proxy engine generates an incremental data packet according to the image rendering parameters in the interface calling information when the data quantity stored in the cache corresponding to the first proxy engine exceeds a threshold value.
Optionally, the generating, by the first proxy engine, an incremental data packet according to image rendering parameters in the interface call information when a preset condition is satisfied includes:
and executing the step that the first proxy engine generates an incremental data packet according to the image rendering parameters in the interface calling information under the condition that the instruction called by the application program is a rendering instruction.
Optionally, the generating, by the first proxy engine, an incremental data packet according to image rendering parameters in the interface call information when a preset condition is satisfied includes:
and executing the step of generating an incremental data packet by the first proxy engine according to the image rendering parameters in the interface calling information under the condition that the instruction called by the application program depends on the instruction called before the application program.
Optionally, the client further includes a reference state data set and a temporary state data set, wherein the reference state data set stores image rendering parameters which are sent to the second proxy engine, and the temporary state data set stores all image rendering parameters received by the first proxy engine;
after the first proxy engine receives the plurality of interface call information initiated by the application program, the method further comprises:
the first proxy engine stores the image rendering parameters in the interface call information into the temporary state data set;
the first proxy engine generates an incremental data packet according to a plurality of interface call information, and the incremental data packet comprises:
the first proxy engine generates the incremental data packet according to the reference state data set and the temporary state data set, wherein the incremental data packet comprises image rendering parameters which exist in the temporary state data set and do not exist in the reference state data set.
Optionally, after the first proxy engine sends the incremental data packet to the second proxy engine, the method further comprises:
the first proxy engine updates the baseline state dataset according to the delta data packet.
Optionally, the reference state data set and the temporary state data set comprise a plurality of parameter sets, each of the parameter sets storing the same type of image rendering parameters.
According to a second aspect of the present application, there is provided a remote image rendering system including a first proxy engine provided at a client, a second proxy engine provided at a server, and a rendering engine provided at the server;
the first proxy engine is used for receiving an instruction of calling an application program, the instruction of calling the application program comprises a plurality of interface calling information, and each interface calling information comprises at least one image rendering parameter;
the first proxy engine is used for generating an incremental data packet according to image rendering parameters in the interface call information under the condition that preset conditions are met, and sending the incremental data packet to the second proxy engine;
the second proxy engine is used for synchronizing the image rendering parameters in the incremental data packet to a rendering engine so that the rendering engine generates a rendering image according to the image rendering parameters.
According to a third aspect of the present application there is provided an electronic device comprising a processor and a memory storing a program or instructions executable on the processor, which when executed by the processor, implement the steps of the remote image rendering method according to the first aspect of the present application.
According to a fourth aspect of the present application there is provided a readable storage medium having stored thereon a program or instructions which when executed by a processor implement the steps of the remote image rendering method according to the first aspect of the present application.
According to the method and the device, the first proxy engine is arranged at the client, the plurality of interface call information of the application program is received through the first proxy engine, the incremental data packet is generated according to the image rendering parameters in the plurality of interface call information under the condition that the preset condition is met, the incremental data packet is synchronized to the second proxy engine of the server, data does not need to be sent to the server after the application program calls the interfaces each time, the number of times of data transmission between the client and the server is reduced, the number of times of data packet generation is reduced, further additional data in the data transmission process is reduced, and efficiency is improved.
Other features of the present application and its advantages will become apparent from the following detailed description of exemplary embodiments of the application, which proceeds with reference to the accompanying drawings.
Drawings
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments of the application and together with the description, serve to explain the principles of the application.
Fig. 1 is a schematic diagram of remote image rendering in the prior art.
FIG. 2 is a flow chart of a remote image rendering method in one embodiment of the application.
FIG. 3 is a schematic diagram of a remote image rendering system in an embodiment of the application.
Fig. 4 is a schematic diagram of a remote image rendering method according to another embodiment of the present application.
FIG. 5 is a schematic diagram of generating incremental data packets in accordance with an embodiment of the present application.
Fig. 6 is a schematic diagram of an electronic device in an embodiment of the application.
Detailed Description
Various exemplary embodiments of the present application will now be described in detail with reference to the accompanying drawings. It should be noted that: the relative arrangement of the components and steps, numerical expressions and numerical values set forth in these embodiments do not limit the scope of the present application unless it is specifically stated otherwise.
The following description of at least one exemplary embodiment is merely exemplary in nature and is in no way intended to limit the application, its application, or uses.
Techniques, methods, and apparatus known to one of ordinary skill in the relevant art may not be discussed in detail, but are intended to be part of the specification where appropriate.
In all examples shown and discussed herein, any specific values should be construed as merely illustrative, and not a limitation. Thus, other examples of exemplary embodiments may have different values.
It should be noted that: like reference numerals and letters denote like items in the following figures, and thus once an item is defined in one figure, no further discussion thereof is necessary in subsequent figures.
In rendering images, a rendering pipeline is typically employed. The rendering pipeline divides the image rendering process into a plurality of fixed sub-processes, each of which is responsible for a particular job. For example, the rendering process may be divided into several fixed sub-processes, an input assembly phase, a vertex shader phase, a pixel shader phase, and so on. The image rendering engine sequentially executes the divided sub-processes, and once the sub-processes are executed, the image rendering operation is completed. The final effect of each rendering operation is determined by parameters used when each sub-process in the rendering process is executed, namely, variables, scripts, textures, buffers and other data set into a video memory.
Typically, the rendering engine will provide an interface to the application program, which passes parameters used by the rendering process to the rendering engine by calling the rendering engine's interface. In remote image rendering, the rendering engine and the application are deployed on different devices, and the application transmits parameters to the rendering engine through a remote call interface. In one image rendering process, an application may need to call multiple interfaces, each time an interface is called, data is transferred to the rendering engine. As shown in fig. 1, an application program in a client side sequentially calls a plurality of interfaces in a one-time image rendering process, and after each time an interface is called, the client side sends calling information of the interface to a server side, and the server side notifies a rendering engine to execute the interface.
Typically, a rendering engine will provide hundreds or even thousands of interfaces, and the number of interfaces that need to be invoked at the time of rendering will vary depending on the needs of the client. Such as only one simple number need be rendered, then only tens of interfaces may need to be invoked. If a complex scene needs to be rendered, hundreds of interfaces may need to be invoked. During data transmission, the rendering parameters transmitted by the application program are packed into data packets, and extra data, such as check codes, time stamps and the like, beyond the rendering parameters are introduced into the data packets. Because the interface is transferred once every time, if the number of interfaces to be transferred is large, a large amount of extra data is transferred, so that the efficiency is reduced, and the running speed of the application program is slowed down. In order to solve the technical problems, the technical scheme of the application is provided.
As shown in fig. 2, the present embodiment describes a remote image rendering method, which includes steps 2100-2400. The method is applied to a remote image rendering system, as shown in fig. 3, wherein the remote image rendering system comprises a first proxy engine arranged at a client side, a second proxy engine arranged at a server side, and a rendering engine arranged at the server side.
Step 2100: the first proxy engine receives an instruction of calling an application program, wherein the instruction of calling the application program comprises a plurality of pieces of interface calling information, and each piece of interface calling information comprises at least one image rendering parameter.
The first proxy engine provides an interface for the application program, and one instruction of the application program call comprises a plurality of interface call information. The application may call an interface provided by the first proxy engine. The interface provided by the first proxy engine is the same as the interface provided by the rendering engine. For example, the rendering engine provides an interface a, when the application program calls the interface a of the rendering engine, the image rendering parameter 1 and the image rendering parameter 2 are required to be input, then the first proxy engine also provides an interface a, and when the application program calls the interface a provided by the first proxy engine, the image rendering parameter 1 and the image rendering parameter 2 are also required to be input.
The interface may be a query class interface for querying information about an object, for example an interface may be used for querying coordinate information of a specific object or for querying color information of a specific object.
The interface may be an auxiliary interface, and the setting of rendering parameters of the target is completed through a plurality of auxiliary interfaces. Such as specifying a target for which rendering parameters need to be set through one interface, while setting specific rendering parameters of the target through another interface.
When the application calls different interfaces, the image rendering parameters that need to be imported are also different. Such as application call interface a, requires an incoming image rendering parameter 1 and an image rendering parameter 2. And the application calls interface B, then the incoming image rendering parameters 3 are required. When the application program calls the interface, only one image rendering parameter can be input, a plurality of image rendering parameters can be input, and the number of the image rendering parameters to be input is determined according to the called interface.
The image rendering parameters in this embodiment refer to parameters that the rendering engine needs to use when performing image rendering. Specifically, the image rendering parameters may be texture, buffering, coordinates, and the like. The image rendering parameters may also be other parameters, not limited herein.
Step 2200: and under the condition that the preset condition is met, the first proxy engine generates an incremental data packet according to the image rendering parameters in the interface calling information.
Step 2300: the first proxy engine sends the incremental data packet to the second proxy engine.
As shown in fig. 4, the first proxy engine does not synchronize image rendering parameters included in one interface call information of an application to the second proxy engine every time the first proxy engine receives the interface call information. Only if the preset condition is satisfied, the first proxy engine performs data synchronization.
For example, the application program sequentially calls the interface a, the interface B, the interface C and the interface D, and after receiving the call request of the interface a, the first proxy engine judges that the preset condition is not satisfied, and at this time, data synchronization is not executed. After the first proxy engine receives the call request of the interface B, judging that the preset condition is met, at the moment, executing data synchronization, generating an incremental data packet according to the image rendering parameters in the call request of the interface A and the image rendering parameters in the call request of the interface B, and synchronizing the incremental data packet to the second proxy engine of the server. Then the first proxy engine receives the call request of the interface C, when the preset condition is not satisfied, synchronization is not performed. And then the first proxy engine receives the call request of the interface D, when the preset condition is met, data synchronization is executed, and the first proxy engine generates an incremental data packet according to the image rendering parameters in the call request of the interface C and the image rendering parameters in the call request of the interface D and synchronizes the incremental data packet to the second proxy engine.
Step 2400: the second proxy engine synchronizes the image rendering parameters in the incremental data packet to a rendering engine so that the rendering engine generates a rendering image according to the image rendering parameters.
After the second proxy engine receives the incremental data packet, the second proxy engine analyzes the incremental data packet to obtain image rendering parameters contained in the incremental data packet. As shown in fig. 4, the second proxy engine synchronizes the parsed image rendering parameters into the video memory, the rendering engine obtains the image rendering parameters, and the rendering engine performs image rendering according to the image rendering parameters, generates a rendered image, and transmits the rendered image back to the application program for display.
According to the method, the first proxy engine is arranged at the client, the plurality of interface call information of the application program is received through the first proxy engine, the incremental data packet is generated according to the image rendering parameters in the plurality of interface call information under the condition that the preset condition is met, the incremental data packet is synchronized to the second proxy engine of the server, data does not need to be sent to the server after the interface is called each time by the application program, the number of times of data transmission between the client and the server is reduced, the number of times of data packet generation is reduced, additional data in the data transmission process is further reduced, and efficiency is improved.
In this embodiment, step 2200 includes steps 2210-2220.
Step 2210: and the first proxy engine stores the image rendering parameters into a cache corresponding to the first proxy engine.
Step 2220: and executing the step that the first proxy engine generates an incremental data packet according to the image rendering parameters in the interface calling information when the data quantity stored in the cache corresponding to the first proxy engine exceeds a threshold value.
After receiving interface call information of an application program, the first proxy engine acquires image rendering parameters contained in the interface call information and stores the acquired image rendering parameters into a cache. And when the data quantity in the cache exceeds a threshold value, performing data synchronization between the first proxy engine and the second proxy engine, and sending the image rendering parameters stored in the cache to the second proxy engine. For example, the threshold may be 1kb, and when the amount of data stored in the cache exceeds 1kb, the image rendering parameters stored in the cache are sent to the second proxy engine. The preset condition includes that the amount of data stored in the cache exceeds a threshold.
In this embodiment, step 2200 includes: and executing the step that the first proxy engine generates an incremental data packet according to the image rendering parameters in the interface calling information under the condition that the instruction called by the application program is a rendering instruction.
Rendering instructions refer to instructions that require a rendering engine to perform image rendering operations after a call. If the instruction called by the application program is a rendering instruction, the image rendering parameter needs to be sent to the rendering engine so that the rendering engine performs image rendering according to the image rendering parameter. The preset condition includes that an instruction called by the application program is a rendering instruction.
In this embodiment, step 2200 includes: and executing the step of generating an incremental data packet by the first proxy engine according to the image rendering parameters in the interface calling information under the condition that the instruction called by the application program depends on the instruction called before the application program.
After each application program calls an instruction, the first proxy engine acquires corresponding image rendering parameters. If the instruction called by the application depends on the instruction called before the application, it is stated that the rendering engine needs to use the image rendering parameters in the instruction called before the application, in which case data synchronization is performed, the first proxy engine sends the image rendering parameters to the second proxy engine, and the image rendering parameters are synchronized to the rendering engine by the second proxy engine. The preset conditions include that the instruction called by the application depends on the instruction previously called by the application.
In this embodiment, as shown in fig. 5, the client further includes a reference state data set and a temporary state data set, where the reference state data set stores image rendering parameters that have been sent to the second proxy engine, and the temporary state data set stores all image rendering parameters received by the first proxy engine.
After the step 2100, the method further includes: the first proxy engine stores image rendering parameters in the plurality of interface call information into the temporary state dataset.
The step of generating an incremental data packet by the first proxy engine according to a plurality of interface call information comprises the following steps: the first proxy engine generates the incremental data packet according to the reference state data set and the temporary state data set, wherein the incremental data packet comprises image rendering parameters which exist in the temporary state data set and do not exist in the reference state data set.
After the first proxy engine receives the interface call information of the application program each time, the temporary state data set is updated according to the image rendering parameters in the interface call information.
Specifically, it may be to add new image rendering parameters to the temporary state dataset, such as storing parameter 1 and parameter 2 in the temporary state dataset, and the first proxy engine obtains parameter 3, and then writes parameter 3 to the temporary state dataset. The existing image rendering parameters in the temporary state data set may be updated, for example, the parameters 1 and 2 are stored in the temporary state data set, and the first proxy engine obtains the parameters 2, and then the values of the parameters 2 stored in the temporary state data set are updated according to the values of the parameters 2 obtained by the first proxy engine. Here, parameter 1, parameter 2, and parameter 3 represent different types of image rendering parameters.
In one embodiment, the reference state data set and the temporary state data set include a plurality of parameter sets, each of which stores the same type of image rendering parameters.
When the preset condition is met, the first proxy engine compares the temporary state data set with the reference state data set and generates an incremental data packet. The image rendering parameters included in the delta packet are parameters that exist in the temporary state data set and that do not exist in the reference state data set.
Specifically, the image rendering parameters included in the delta data packet may be a type of image rendering parameters newly added in the temporary state data set, which exists only in the temporary state data set and does not exist in the reference state data set. For example, the reference state data set contains only parameter 1 and parameter 2, while the temporary state data set contains parameter 1, parameter 2 and parameter 3, and the incremental data packet contains parameter 3.
The image rendering parameters included in the delta data packet may also be different values of the same type of image rendering parameters, such as including the coordinates 1 of the object a in the reference state data set, including the coordinates 2 of the object a in the temporary state data set, and including the coordinates 2 of the object a in the delta data packet because the coordinates of the object a in the temporary state data set are different from the coordinates of the object a in the reference state data set.
If the image rendering parameters in the interface call information are all used for updating the same parameters, the finally generated incremental data packet only contains the image rendering parameters in the interface call information of the last time.
For example, the first proxy engine receives information of three times of interface calls initiated by the application program, and updates the same target value in each call request. For example, the target value entered in the first interface call information is 1, the target value entered in the second interface call information is 3, and the target value entered in the third interface call information is 5. Then the target value in the temporary state dataset is updated to 1 after the first proxy engine receives the first interface call information. And the first proxy engine updates the target value in the temporary state data set to 3 after receiving the second interface call information. And after the first proxy engine receives the third interface call information, the target value in the temporary state data set is updated to 5. In the generated incremental data packet, the target value is 5. The situation that the target value is 1 and the situation that the target value is 3 are not sent to the second proxy engine, repeated parameter updating in the rendering engine is avoided, data redundancy is avoided, the data quantity required to be processed by the rendering engine is reduced, the efficiency of the rendering engine is improved, the image rendering speed is increased, and the running speed of an application program is further improved.
After the first proxy engine sends the incremental data packet to the second proxy engine, the method further comprises: the first proxy engine updates the baseline state dataset according to the delta data packet.
After the incremental data packet is sent to the second proxy engine, the reference state data set is updated, and the image rendering parameters in the incremental data packet are stored in the reference state data set. Specifically, a certain type of image rendering parameters in the reference state data set may be updated, or a new type of image rendering parameters may be written into the reference state data set.
The embodiment introduces a remote image rendering system, which comprises a first proxy engine arranged at a client, a second proxy engine arranged at a server and a rendering engine arranged at the server;
the first proxy engine is used for receiving an instruction of calling an application program, the instruction of calling the application program comprises a plurality of interface calling information, and each interface calling information comprises at least one image rendering parameter;
the first proxy engine is used for generating an incremental data packet according to image rendering parameters in the interface call information under the condition that preset conditions are met, and sending the incremental data packet to the second proxy engine;
the second proxy engine is used for synchronizing the image rendering parameters in the incremental data packet to a rendering engine so that the rendering engine generates a rendering image according to the image rendering parameters.
According to the application, the first proxy engine is arranged at the client, the plurality of interface call information of the application program is received through the first proxy engine, the incremental data packet is generated according to the image rendering parameters in the plurality of interface call information under the condition that the preset condition is met, the incremental data packet is synchronized to the second proxy engine of the server, the data does not need to be sent to the server after the interface is called each time by the application program, the number of times of data transmission between the client and the server is reduced, the number of times of data packet generation is reduced, and further, the additional data in the data transmission process is reduced, and the efficiency is improved.
Optionally, the first proxy engine is specifically configured to store the image rendering parameter into a cache corresponding to the first proxy engine;
the first proxy engine is specifically configured to generate an incremental data packet according to image rendering parameters in the plurality of interface call information when the data amount stored in the buffer corresponding to the first proxy engine exceeds a threshold.
Optionally, the first proxy engine is specifically configured to generate an incremental data packet according to image rendering parameters in the plurality of interface call information when the instruction called by the application program is a rendering instruction.
Optionally, the first proxy engine is specifically configured to generate an incremental data packet according to image rendering parameters in the interface call information when the instruction called by the application program depends on the instruction called before the application program.
Optionally, the client further includes a reference state data set and a temporary state data set, wherein the reference state data set stores image rendering parameters which are sent to the second proxy engine, and the temporary state data set stores all image rendering parameters received by the first proxy engine;
the first proxy engine is further configured to store image rendering parameters in a plurality of interface call information into the temporary state dataset after receiving the plurality of interface call information initiated by the application program;
the first proxy engine is specifically configured to generate the incremental data packet according to the reference state data set and the temporary state data set, where the incremental data packet includes an image rendering parameter that exists in the temporary state data set and does not exist in the reference state data set.
Optionally, the first proxy engine is further configured to update the reference state data set according to the incremental data packet after the first proxy engine sends the incremental data packet to the second proxy engine.
Optionally, the reference state data set and the temporary state data set comprise a plurality of parameter sets, each of the parameter sets storing the same type of image rendering parameters.
As shown in fig. 6, this embodiment describes an electronic device 600 comprising a processor 601 and a memory 602, the memory 602 storing a program or instructions executable on the processor 601, which when executed by the processor 601 implement the steps of the remote image rendering method according to any of the embodiments of the present application.
This embodiment describes a readable storage medium having stored thereon a program or instructions which when executed by a processor perform the steps of a remote image rendering method according to any of the embodiments of the present application.
The present application may be a system, method, and/or computer program product. The computer program product may include a computer readable storage medium having computer readable program instructions embodied thereon for causing a processor to implement aspects of the present application.
The computer readable storage medium may be a tangible device that can hold and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer-readable storage medium would include the following: portable computer disks, hard disks, random Access Memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static Random Access Memory (SRAM), portable compact disk read-only memory (CD-ROM), digital Versatile Disks (DVD), memory sticks, floppy disks, mechanical coding devices, punch cards or in-groove structures such as punch cards or grooves having instructions stored thereon, and any suitable combination of the foregoing. Computer-readable storage media, as used herein, are not to be construed as transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., optical pulses through fiber optic cables), or electrical signals transmitted through wires.
The computer readable program instructions described herein may be downloaded from a computer readable storage medium to a respective computing/processing device or to an external computer or external storage device over a network, such as the internet, a local area network, a wide area network, and/or a wireless network. The network may include copper transmission cables, fiber optic transmissions, wireless transmissions, routers, firewalls, switches, gateway computers and/or edge servers. The network interface card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium in the respective computing/processing device.
Computer program instructions for carrying out operations of the present application may be assembly instructions, instruction Set Architecture (ISA) instructions, machine-related instructions, microcode, firmware instructions, state setting data, or source or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, c++ or the like and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The computer readable program instructions may be executed entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any kind of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or may be connected to an external computer (for example, through the Internet using an Internet service provider). In some embodiments, aspects of the present application are implemented by personalizing electronic circuitry, such as programmable logic circuitry, field Programmable Gate Arrays (FPGAs), or Programmable Logic Arrays (PLAs), with state information for computer readable program instructions, which can execute the computer readable program instructions.
Various aspects of the present application are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the application. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer-readable program instructions.
These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable medium having the instructions stored therein includes an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer, other programmable apparatus or other devices implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present application. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions. It is well known to those skilled in the art that implementation by hardware, implementation by software, and implementation by a combination of software and hardware are all equivalent.
The foregoing description of embodiments of the application has been presented for purposes of illustration and description, and is not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the various embodiments described. The terminology used herein was chosen in order to best explain the principles of the embodiments, the practical application, or the technical improvement of the technology in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein. The scope of the application is defined by the appended claims.

Claims (10)

1. A remote image rendering method, the method being applied to a remote image rendering system including a first proxy engine provided at a client, a second proxy engine provided at a server, and a rendering engine provided at the server, the method comprising:
the first proxy engine receives an instruction of calling an application program, wherein the instruction of calling the application program comprises a plurality of interface calling information, and each interface calling information comprises at least one image rendering parameter;
under the condition that preset conditions are met, the first proxy engine generates an incremental data packet according to image rendering parameters in the interface call information;
the first proxy engine sends the incremental data packet to the second proxy engine;
the second proxy engine synchronizes the image rendering parameters in the incremental data packet to the rendering engine so that the rendering engine generates a rendering image according to the image rendering parameters.
2. The remote image rendering method according to claim 1, wherein the first proxy engine generates an incremental data packet according to image rendering parameters in the plurality of interface call information in case that a preset condition is satisfied, comprising:
the first proxy engine stores the image rendering parameters into a cache corresponding to the first proxy engine;
and executing the step that the first proxy engine generates an incremental data packet according to the image rendering parameters in the interface calling information when the data quantity stored in the cache corresponding to the first proxy engine exceeds a threshold value.
3. The remote image rendering method according to claim 1, wherein the first proxy engine generates an incremental data packet according to image rendering parameters in the plurality of interface call information in case that a preset condition is satisfied, comprising:
and executing the step that the first proxy engine generates an incremental data packet according to the image rendering parameters in the interface calling information under the condition that the instruction called by the application program is a rendering instruction.
4. The remote image rendering method according to claim 1, wherein the first proxy engine generates an incremental data packet according to image rendering parameters in the plurality of interface call information in case that a preset condition is satisfied, comprising:
and executing the step of generating an incremental data packet by the first proxy engine according to the image rendering parameters in the interface calling information under the condition that the instruction called by the application program depends on the instruction called before the application program.
5. The remote image rendering method according to claim 1, further comprising a reference state data set in which image rendering parameters that have been transmitted to the second proxy engine are stored and a temporary state data set in which all image rendering parameters received by the first proxy engine are stored in the client;
after the first proxy engine receives the plurality of interface call information initiated by the application program, the method further comprises:
the first proxy engine stores the image rendering parameters in the interface call information into the temporary state data set;
the first proxy engine generates an incremental data packet according to a plurality of interface call information, and the incremental data packet comprises:
the first proxy engine generates the incremental data packet according to the reference state data set and the temporary state data set, wherein the incremental data packet comprises image rendering parameters which exist in the temporary state data set and do not exist in the reference state data set.
6. The remote image rendering method of claim 5, wherein after the first proxy engine transmits the delta data packet to the second proxy engine, the method further comprises:
the first proxy engine updates the baseline state dataset according to the delta data packet.
7. The remote image rendering method of claim 5, wherein the reference state data set and the temporary state data set include a plurality of parameter sets, each of the parameter sets storing the same type of image rendering parameters.
8. The remote image rendering system is characterized by comprising a first proxy engine arranged at a client, a second proxy engine arranged at a server and a rendering engine arranged at the server;
the first proxy engine is used for receiving an instruction of calling an application program, the instruction of calling the application program comprises a plurality of interface calling information, and each interface calling information comprises at least one image rendering parameter;
the first proxy engine is used for generating an incremental data packet according to image rendering parameters in the interface call information under the condition that preset conditions are met, and sending the incremental data packet to the second proxy engine;
the second proxy engine is used for synchronizing the image rendering parameters in the incremental data packet to a rendering engine so that the rendering engine generates a rendering image according to the image rendering parameters.
9. An electronic device comprising a processor and a memory storing a program or instructions executable on the processor, which when executed by the processor, implement the steps of the remote image rendering method of any one of claims 1-7.
10. A readable storage medium, characterized in that it has stored thereon a program or instructions which, when executed by a processor, implement the steps of the remote image rendering method according to any of claims 1-7.
CN202311094589.1A 2023-08-28 2023-08-28 Remote image rendering method, system, electronic device and readable storage medium Pending CN117036566A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311094589.1A CN117036566A (en) 2023-08-28 2023-08-28 Remote image rendering method, system, electronic device and readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311094589.1A CN117036566A (en) 2023-08-28 2023-08-28 Remote image rendering method, system, electronic device and readable storage medium

Publications (1)

Publication Number Publication Date
CN117036566A true CN117036566A (en) 2023-11-10

Family

ID=88644900

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311094589.1A Pending CN117036566A (en) 2023-08-28 2023-08-28 Remote image rendering method, system, electronic device and readable storage medium

Country Status (1)

Country Link
CN (1) CN117036566A (en)

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7266616B1 (en) * 2001-08-08 2007-09-04 Pasternak Solutions Llc Method and system for digital rendering over a network
US20100118039A1 (en) * 2008-11-07 2010-05-13 Google Inc. Command buffers for web-based graphics rendering
US20130127858A1 (en) * 2009-05-29 2013-05-23 Luc Leroy Interception of Graphics API Calls for Optimization of Rendering
CN103888485A (en) * 2012-12-19 2014-06-25 华为技术有限公司 Method for distributing cloud computing resource, device thereof and system thereof
US10095669B1 (en) * 2015-12-22 2018-10-09 Amazon Technologies, Inc. Virtualized rendering
CN108765531A (en) * 2018-03-27 2018-11-06 广东欧珀移动通信有限公司 Image rendering method, device, storage medium and intelligent terminal
CN109582425A (en) * 2018-12-04 2019-04-05 中山大学 A kind of GPU service redirection system and method merged based on cloud with terminal GPU
CN110166810A (en) * 2019-04-25 2019-08-23 腾讯科技(深圳)有限公司 Video rendering engine switching method, device, equipment and readable storage medium storing program for executing
CN111399976A (en) * 2020-03-02 2020-07-10 上海交通大学 GPU virtualization implementation system and method based on API redirection technology
EP3770861A1 (en) * 2019-07-25 2021-01-27 DreamWorks Animation LLC Distributed multi-context interactive rendering
CN112882709A (en) * 2021-03-10 2021-06-01 百度在线网络技术(北京)有限公司 Rendering method, device and equipment based on container engine system and storage medium
WO2021169236A1 (en) * 2020-02-25 2021-09-02 华为技术有限公司 Rendering method and apparatus
CN113838184A (en) * 2020-06-08 2021-12-24 华为技术有限公司 Rendering method, device and system
CN115409680A (en) * 2021-05-29 2022-11-29 华为云计算技术有限公司 Rendering method, device and system
CN115757998A (en) * 2022-10-21 2023-03-07 广东电网有限责任公司 Dynamic rendering method and device for power grid data
CN116091672A (en) * 2022-12-28 2023-05-09 杭州群核信息技术有限公司 Image rendering method, computer device and medium thereof

Patent Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7266616B1 (en) * 2001-08-08 2007-09-04 Pasternak Solutions Llc Method and system for digital rendering over a network
US20100118039A1 (en) * 2008-11-07 2010-05-13 Google Inc. Command buffers for web-based graphics rendering
US20130127858A1 (en) * 2009-05-29 2013-05-23 Luc Leroy Interception of Graphics API Calls for Optimization of Rendering
CN103888485A (en) * 2012-12-19 2014-06-25 华为技术有限公司 Method for distributing cloud computing resource, device thereof and system thereof
US10095669B1 (en) * 2015-12-22 2018-10-09 Amazon Technologies, Inc. Virtualized rendering
CN108765531A (en) * 2018-03-27 2018-11-06 广东欧珀移动通信有限公司 Image rendering method, device, storage medium and intelligent terminal
CN109582425A (en) * 2018-12-04 2019-04-05 中山大学 A kind of GPU service redirection system and method merged based on cloud with terminal GPU
CN110166810A (en) * 2019-04-25 2019-08-23 腾讯科技(深圳)有限公司 Video rendering engine switching method, device, equipment and readable storage medium storing program for executing
US20210027516A1 (en) * 2019-07-25 2021-01-28 Dreamworks Animation Llc Distributed multi-context interactive rendering
EP3770861A1 (en) * 2019-07-25 2021-01-27 DreamWorks Animation LLC Distributed multi-context interactive rendering
WO2021169236A1 (en) * 2020-02-25 2021-09-02 华为技术有限公司 Rendering method and apparatus
CN111399976A (en) * 2020-03-02 2020-07-10 上海交通大学 GPU virtualization implementation system and method based on API redirection technology
CN113838184A (en) * 2020-06-08 2021-12-24 华为技术有限公司 Rendering method, device and system
CN112882709A (en) * 2021-03-10 2021-06-01 百度在线网络技术(北京)有限公司 Rendering method, device and equipment based on container engine system and storage medium
CN115409680A (en) * 2021-05-29 2022-11-29 华为云计算技术有限公司 Rendering method, device and system
CN115757998A (en) * 2022-10-21 2023-03-07 广东电网有限责任公司 Dynamic rendering method and device for power grid data
CN116091672A (en) * 2022-12-28 2023-05-09 杭州群核信息技术有限公司 Image rendering method, computer device and medium thereof

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
WANG SHANDONG;MA ZIYANG;LIU XUEHUI;CHEN YANYUN;WU ENHUA;: "Coherence-enhancing line drawing for color images", SCIENCE CHINA(INFORMATION SCIENCES), no. 11, 1 November 2013 (2013-11-01) *
张忆楠;严正;姚莉;: "实时渲染引擎架构", 中兴通讯技术, no. 03, 18 April 2013 (2013-04-18) *

Similar Documents

Publication Publication Date Title
US10289659B2 (en) Delivery and display of page previews using shadow DOM
US20160156732A1 (en) Web Page Pre-loading Optimization
US20180232916A1 (en) Dynamic interaction graphs with probabilistic edge decay
US9529873B2 (en) Enhancing performance of extract, transform, and load (ETL) jobs
US11003579B2 (en) Method, device and computer program product for managing distributed system
US11086668B2 (en) Method, electronic device and computer program product for processing task
CN111782229B (en) Method and device for starting small program and electronic equipment
CN113453073B (en) Image rendering method and device, electronic equipment and storage medium
US11294651B2 (en) Code execution method, device, and rendering apparatus
CN113312032A (en) Front-end project resource updating method and device, electronic equipment and storage medium
CN115617420A (en) Application program generation method, device, equipment and storage medium
CN113870399A (en) Expression driving method and device, electronic equipment and storage medium
CN110795328A (en) Interface testing method and device
CN114443076A (en) Mirror image construction method, device, equipment and storage medium
CN112069137B (en) Method, device, electronic equipment and computer readable storage medium for generating information
US11556401B2 (en) Method, device and computer program product for optimizing remote call
US11379201B2 (en) Wrapping method, registration method, device, and rendering apparatus
CN117036566A (en) Remote image rendering method, system, electronic device and readable storage medium
CN110288523B (en) Image generation method and device
CN110389857B (en) Method, apparatus and non-transitory computer storage medium for data backup
JP2024513062A (en) Method, apparatus and computer program for splitting and merging multidimensional media data into multidimensional media segments
CN107315970B (en) Sensitive data interaction method and device
CN112214287B (en) Service control method and device of application software and electronic equipment
KR102567132B1 (en) Network data chaining apparatus, and control method thereof
CN112051974A (en) Electronic price tag information transmission method and system, electronic price tag and server

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination