Disclosure of Invention
The present specification provides an additive manufacturing system rendering method, apparatus, storage medium, and electronic device to at least partially solve the above-mentioned problems of the prior art.
The technical scheme adopted in the specification is as follows:
the specification provides an additive manufacturing system rendering method, comprising:
acquiring a first implicit function of a model of a member to be manufactured and a second implicit function of a cell filling array filling the model;
Performing Boolean operation on the first implicit function and the second implicit function, and transitional the model and the boundary area of the cell filling array by adopting a smoothing algorithm to obtain a pending implicit function;
obtaining an objective implicit function according to the preset shell thickness of the member to be manufactured and the undetermined implicit function;
And rendering the target implicit function according to preset rendering parameters.
Optionally, obtaining a model of the component to be manufactured specifically includes:
determining a model of a member to be manufactured constructed by a user, or acquiring a three-dimensional model file which is input by the user and is used for describing the member to be manufactured.
Optionally, the first implicit function, the second implicit function, the pending implicit function, the target implicit function are distance field functions.
Optionally, obtaining an objective implicit function according to the preset shell thickness of the member to be manufactured and the predetermined implicit function, which specifically includes:
and performing shell extraction operation on the hidden function to be determined according to the preset shell thickness of the component to be manufactured, so as to obtain the target hidden function.
Optionally, the rendering parameters include at least a position, a rotation angle, a zoom size, a projection mode, a field angle, a camera position, a near clipping plane, a far clipping plane, a step value, and a minimum distance.
Optionally, rendering the target implicit function specifically includes:
determining the quantity of rays used for rendering and the initial position of each ray according to the preset resolution;
determining the direction vector of each ray according to the adopted projection mode;
according to the initial position of each ray and the rendering area, filtering rays outside the rendering area;
For each ray, continuously updating the position of the ray according to a specified stepping value, judging and recording whether the ray intersects with the model at each position, and obtaining the ray state of the ray;
Calculating the target implicit function according to the ray state of each ray to obtain normal information, and obtaining depth information according to the stepping times of each ray;
and drawing a normal map, a depth map and a color map according to the normal information and the depth information.
Optionally, the method further comprises:
Establishing a component coordinate system of the component to be manufactured by taking the center of the component to be manufactured as an origin;
rotating the member to be manufactured along each coordinate axis of the member coordinate system, and collecting images of the member to be manufactured at different angles in the rotating process to obtain a rotating image set;
determining an implicit function of the sectioning cube according to the origin and a preset sectioning position;
sequentially generating a plurality of cutting structures along each coordinate axis of the component coordinate system according to the target implicit function and the implicit function of the cutting cube at specified intervals;
rendering each split structure to obtain a split image set.
An additive manufacturing system rendering device provided in the present specification, the device comprising:
An acquisition module for acquiring a first implicit function of a model of a component to be manufactured and a second implicit function of a cell filling array filling the model;
The operation module is used for carrying out Boolean operation on the first implicit function and the second implicit function, and adopting a smoothing algorithm to transition the model and the boundary area of the cell filling array to obtain a pending implicit function;
The adjusting module is used for obtaining an objective implicit function according to the preset shell thickness of the component to be manufactured and the undetermined implicit function;
and the rendering module is used for rendering the target implicit function according to preset rendering parameters.
The present specification provides a computer readable storage medium storing a computer program which when executed by a processor implements the additive manufacturing system rendering method described above.
The present specification provides an electronic device comprising a memory, a processor and a computer program stored on the memory and executable on the processor, the processor implementing the additive manufacturing system rendering method described above when executing the program.
The above-mentioned at least one technical scheme that this specification adopted can reach following beneficial effect:
in the method for rendering the additive manufacturing system, a first implicit function of a model of a component to be manufactured and a second implicit function of a cell filling array filling the model are obtained, boolean operation is carried out on the first implicit function and the second implicit function, a smoothing algorithm is adopted to transition boundary areas of the model and the cell filling array, a pending implicit function is obtained, a target implicit function is obtained according to the preset shell thickness of the component to be manufactured and the pending implicit function, and the target implicit function is rendered according to preset rendering parameters.
When the rendering method of the additive manufacturing system provided by the specification is adopted for rendering the component, a model of the component to be manufactured and boundary areas of the cell filling array can be transited through a smoothing algorithm to obtain a pending implicit function with stronger continuity, and the pending implicit function is adjusted according to the thickness of a shell of the component to be manufactured to obtain an objective implicit function, so that the rendering task is completed. The method can solve the problems of complex geometric information, large data size and complex Boolean operation in display modeling, and solves the problem of rendering abnormality of the spherical tracking algorithm caused by unsmooth boundary region by using a smoothing algorithm in the Boolean operation. Meanwhile, by using a picture set rendering mode, the traditional mode of converting a data model into a polygonal grid is avoided, the calculation and storage expenses are reduced, and the instantaneity of the rendering process is improved.
Detailed Description
For the purposes of making the objects, technical solutions and advantages of the present specification more apparent, the technical solutions of the present specification will be clearly and completely described below with reference to specific embodiments of the present specification and corresponding drawings. It will be apparent that the described embodiments are only some, but not all, of the embodiments of the present specification. All other embodiments, which can be made by one of ordinary skill in the art without undue burden from the present disclosure, are intended to be within the scope of the present application based on the embodiments herein.
The following describes in detail the technical solutions provided by the embodiments of the present specification with reference to the accompanying drawings.
Fig. 1 is a flow chart of a rendering method of an additive manufacturing system in the present specification, specifically including the following steps:
s100, acquiring a first implicit function of a model of a member to be manufactured and a second implicit function of a cell filling array filling the model.
All steps in the additive manufacturing system rendering methods provided herein may be implemented by any electronic device having computing capabilities, such as a terminal, server, etc.
The method is mainly applied to a rendering link in the additive manufacturing technology, and based on the rendering link, a first implicit function of a model of a component to be manufactured which needs to be rendered and a second implicit function of a cell filling array adopted for filling the model can be obtained in the step.
The implicit modeling defines the shape of an object through a continuous mathematical function, so that the implicit modeling has unique advantages when processing complex geometric shapes and topological changes, and can better solve the problems of model data storage and complex Boolean operation of the display modeling.
The to-be-manufactured member is a member which is finally required to be manufactured in the additive manufacturing, and the shape, the size and other specifications of the to-be-manufactured member can be any form based on specific requirements, including any regular shape or any irregular complex structure such as a ball shape, a cylinder, a cube and the like. In obtaining a model of the component to be manufactured, two main ways are possible. In particular, a model of a member to be manufactured constructed by a user may be determined, or a three-dimensional model file describing the member to be manufactured, which is input by the user, may be acquired. In short, the model of the member to be manufactured can be designed and built by the user in the 3D modeling software on the one hand, and the three-dimensional model file of the pre-designed model, such as the STL file, can be directly input into the 3D modeling software by the user on the other hand, and the specification is not particularly limited.
A cell filling array is an array of a large number of cells in a specific arrangement and combination, which serves to fill the interior space of a model of the component to be manufactured. This approach is mainly used to simulate the process of filling a designed shape with material when manufacturing is actually performed. When the printing is actually performed, the filled cells are converted into solid parts one by one and output, and finally, a complete component is formed. The cells are also three-dimensional models, the shapes and the sizes of the cells can be freely designed according to specific requirements, and the arrangement mode, the distribution density, the connection mode and other specifications of the cells in the components need to be designed differently according to the manufactured components.
In the method, the component to be manufactured and the cell can be implicit functions in the form of pure functions or stl files. Wherein, if the stl file is at the time of cell and component, tools such as libigl library are needed to convert the stl file into discrete implicit fields. The discrete SDF fields are also converted into continuous implicit functions because a continuous directional distance field (SIGNED DISTANCE FIELD, SDF) function is required in the rendering so that the distance field value for any point can be obtained given the coordinates of that point. The specific method comprises the following steps:
Firstly, a boundary box can be determined according to the discrete distance length and the maximum and minimum coordinate point information of stl by using linear interpolation for points in a sampling range, and the symbol distance value of the points in the boundary box is calculated by using linear interpolation, and the method can be specifically processed according to the following formula:
Where pi is the grid point surrounding point p and wi is the weight.
Subsequently, points outside the samplings range, points pnearest and d closest to the bounding box are calculated, and can be processed specifically according to the following formula:
Where x, y, z denote the coordinates of the point.
Finally, the gradient field of the whole distance field can be calculated, gaussian smoothing is carried out on the gradient field, the smoothed gradient value is used for calculation, and finally the SDF value outside the sampling point range is obtained. Specifically, the method can be processed according to the following formula:
wherein smoothed denotes a smoothing process.
The process of filling the member to be manufactured with cells can be classified into uniform filling and variable density filling. And selecting proper cells for filling in a designated area according to stress field data, and smoothing and transition the edges of the two cells by using a smoothing function used by Boolean operation among the cells to finally obtain an implicit function of the cell filling array.
In this step, an implicit function of the model of the component to be manufactured, i.e. a first implicit function, is first obtained, and an implicit function of the cell filling array of the filling model, i.e. a second implicit function, is first obtained. In the early stages of design, the cell-filled array is often not perfectly fitted directly to the model of the component to be fabricated without specific calculations. Thus, implicit functions of both the model and the cell fill array need to be acquired separately and used for subsequent rendering processes.
The implicit function may be expressed in various forms, such as a distance field function, an occupied field function, a radiation field function, etc., and the corresponding specific acquisition modes of the implicit function may also be various, and a specific embodiment is provided herein for reference. Taking the implicit function as a directional distance field function as an example, in the method, the first implicit function, the second implicit function, the pending implicit function and the target implicit function which are involved in the step and can be used in the subsequent steps can be SDF. When the SDF is acquired, the SDF can be obtained by a grid isosurface extraction mode. Generally, the grid is a triangular patch for describing the shell, and the SDF from each point in the rendering space to the three-dimensional model can be further obtained by extracting the point on the triangular patch.
S102, performing Boolean operation on the first implicit function and the second implicit function, and transitional the model and the boundary area of the cell filling array by adopting a smoothing algorithm to obtain a pending implicit function.
In this step, boolean operations may be performed on the first implicit function and the second implicit function obtained in step S100. Through Boolean operation, the superposition area between the model of the component to be manufactured and the cell filling array can be calculated, and the position of the model, the position and the arrangement mode of the cell filling array can be adjusted according to the superposition area, so that the cell filling array can gradually and completely fill the model of the component to be manufactured.
At the same time, in order to ensure a more consistent and continuous between the model of the component to be manufactured and the cell filling array, a smoothing algorithm can also be used in this step to process the boundary region between the two. Among them, there are various kinds of smoothing algorithms that can be employed, such as various linear smoothing algorithms including, but not limited to, a moving average smoothing algorithm, an interpolation smoothing algorithm, a convolution smoothing algorithm, etc., which are not particularly limited in this specification.
Embodiments of the method for smoothing Boolean operations are provided herein for reference. Common boolean operations may include, for example, intersection max (a, b), union min (a, b), difference max (a, -b), and the like. For the boolean operation described above, the smoothing process may be performed according to the following formula:
Intersection with smoothing operation:
union operation with smoothing:
Difference set operation with smoothing:
Wherein m is a super parameter, and can be set according to specific requirements.
When the cell filling array is perfectly coincident with the interior space of the mold of the component to be fabricated, there is no need to make any positional adjustments to the cell filling array and the mold, which can then be considered as a whole. And according to the position of the model at the moment, a pending implicit function can be obtained again and used for the subsequent rendering process.
S104, obtaining an objective implicit function according to the preset shell thickness of the component to be manufactured and the undetermined implicit function.
Before starting rendering, the pending implicit function obtained in step S102 needs to be adjusted according to a preset shell thickness of the member to be manufactured. Specifically, according to the preset shell thickness of the member to be manufactured, the shell extraction operation can be performed on the implicit function to be determined, so as to obtain the target implicit function.
When the shell extraction operation is performed, different operations can be performed on the implicit function to be determined according to different shell thicknesses t. Specifically, three cases are classified into t >0, t <0, and t=0.
When t >0, i.e., the shell is drawn outward, it can be calculated according to the following formula:
when t <0, i.e., the inner shell is drawn, it can be calculated according to the following formula:
when t=0, the calculation can be performed according to the following formula:
Where a is a first implicit function of the component to be fabricated and b is a second implicit function of the cell fill array. The pending implicit function obtained by boolean operation of the first implicit function and the second implicit function may be obtained in step S102.
And S106, rendering the target implicit function according to preset rendering parameters.
Finally, the target implicit function can be rendered in the step, and the rendering task is completed. Among other parameters, rendering parameters may include, but are not limited to, rendering position, rotation angle, zoom size, projection mode, field angle, camera position, near clipping plane, far clipping plane, step value, minimum distance, etc.
The rendering process may be implemented by a variety of different rendering techniques, and this specification provides specific embodiments for rendering using a spherical tracking algorithm. The method comprises the steps of determining the quantity of rays used for rendering and the initial position of each ray according to a preset resolution, determining the direction vector of each ray according to an adopted projection mode, filtering rays outside a rendering area according to the initial position of each ray and the rendering area, continuously updating the position of each ray according to a designated stepping value, judging and recording whether the ray intersects with a model at each position to obtain the ray state of the ray, calculating the target implicit function according to the ray state of each ray to obtain normal information, obtaining depth information according to the stepping times of each ray, and drawing a normal map, a depth map and a color map according to the normal information and the depth information. When determining the normal information, firstly determining the SDF value of the ray intersection point position, and then calculating the normal information of the point by using a center difference method.
In actual rendering, an implicit modeling construction model is usually converted into a file in STL or OBJ format for rendering, and the model needs to store detailed information of geometric elements, so that the data size is usually large, the time is long, and the data storage and transmission are also challenges. For some explicit models, especially high resolution models, rendering and processing may require high computational costs, affecting real-time performance.
Spherical tracking algorithms, a technique for rendering curved surfaces, are a process that "travels" along a ray of light by dividing points in space. This approach is often used for volume rendering, where there is no specific surface, but rather a need to find the intersection of a ray with a surface defined by an "implicit distance" equation, which requires that the function be continuous and that the Lipschitz (Lipschitz) condition be satisfied. In the conventional method, the boolean operation of the directed distance field function may result in the resulting SDF not being an accurate SDF, and the spherical tracking algorithm may skip the surface by the SDF as a step, and the inaccurate SDF may cause the algorithm to further affect the rendering effect. In the method, a smoothing algorithm is adopted in Boolean operation, so that the problem of abnormal rendering caused by discontinuous boundaries of the model and the cell filling array is solved.
The "ray" used for rendering in the spherical tracking algorithm is represented in the form of a ray, and there are several rays in one rendering process. The specific number of rays and the initial position of each ray will be different according to the adopted resolution, in general, the higher the resolution is, the more voxels need to be rendered, and the more rays are used for rendering, and the initial positions of the rays are endpoints of the rays, and the initial positions of the rays are generally affected by the number of rays and are uniformly distributed in the rendering space. The direction of the rays is generally associated with the projection mode, for example, in orthogonal projection, all rays are parallel and all perpendicular to the projection plane, and in perspective projection, all rays diverge outwardly from a point (usually the focal point or viewpoint of the camera) and converge on the same projection plane. Therefore, the direction vector of each ray can be determined according to the projection mode adopted in the rendering. Meanwhile, different projection modes can be used simultaneously, and the determination modes of the direction vectors of all rays can not be completely unified.
After determining the initial position and direction vector of each ray, a portion of the unused rays may be filtered out based on where the rendering region is located. Specifically, the filtering of rays may be accomplished by, for example, an Axis alignment bounding box (Axis-Aligned Bounding Box, AABB) algorithm. The AABB algorithm can be realized through CUDA (Compute Unified Device Architecture) kernel functions, and the rendering area can be set according to specific conditions, such as [ -1, -1, -1] to [1, 1] and the like.
After the filtering of part of the rays is completed, the residual rays can be used for completing the rendering task. For each ray participating in rendering, the position of the ray can be continuously updated according to a preset designated stepping value, and at the same time, at each position where the ray passes, whether the ray can intersect with the model or not is judged, and the judgment result of each time is recorded. This process may continue until the ray has traversed the rendering region completely back to its original position, and all decisions recorded in this process may be noted as the ray state for this ray. The position of the ray refers to the position of the endpoint of the ray, and whether the ray intersects the model or not is that a direction vector of the ray can intersect with the shell of the model or not. The specified step value is typically associated with the target implicit function, e.g., the specified step value may be the product of the value of the target implicit function for the current position and a constant step size, SDF x step. The judgment result hit has two types of "true" representing "yes" and "false" representing "no", when the ray intersects the model, the value of the judgment result hit is "true", otherwise, the value of hit is "false".
After all rays are processed according to the process, final calculation and rendering of the target implicit function can be finally performed according to the ray states of all rays to obtain normal information, and meanwhile, depth information can be obtained according to the stepping times of all rays. And finally drawing images which can intuitively show the conditions of the components, such as a normal map, a depth map, a color map and the like, according to the obtained information, and taking the images as the final output result of rendering.
Further, the method can additionally output the rotation image and the sectioning image to provide the user with rendering information of more aspects. The method comprises the steps of taking the center of a member to be manufactured as an origin, establishing a member coordinate system of the member to be manufactured, respectively rotating the member to be manufactured along each coordinate axis of the member coordinate system, collecting images of the member to be manufactured at different angles in the rotating process to obtain a rotating image set, determining an implicit function of a cutting cube according to the origin and a preset cutting position, sequentially generating a plurality of cutting structures along each coordinate axis of the member coordinate system according to the target implicit function and the implicit function of the cutting cube at specified intervals, and rendering each cutting structure to obtain the cutting image set.
For the rotation image, a member coordinate system may be established by setting the center of the member to be manufactured as the origin, and rotation may be performed along each coordinate axis of the member coordinate system, respectively. In the rotation process, the number of times and the angle of rotation can be set according to specific requirements, a rotation image can be acquired every time of rotation, and finally a rotation image set in each axial direction can be obtained.
For the cut-off image, an arbitrary position can be preset as a cut-off position, and an implicit function of the cut-off cube is determined by taking the center of a circle adopted during rotation, namely the center of a member to be manufactured, as a rendering position. Under each coordinate axis, the difference operation can be carried out on the target implicit function of the model and the implicit function of the sectioning cube, and a plurality of sectioning structures are generated at fixed appointed intervals. Rendering each split structure body to obtain a split image set.
When the rendering method of the additive manufacturing system provided by the specification is adopted for rendering the component, a model of the component to be manufactured and boundary areas of the cell filling array can be transited through a smoothing algorithm to obtain a pending implicit function with stronger continuity, and the pending implicit function is adjusted according to the thickness of a shell of the component to be manufactured to obtain an objective implicit function, so that the rendering task is completed. The method can solve the problems of complex geometric information, large data size and complex Boolean operation in display modeling, and solves the problem of rendering abnormality of the spherical tracking algorithm caused by unsmooth boundary region by using a smoothing algorithm in the Boolean operation. Meanwhile, by using a picture set rendering mode, the traditional mode of converting a data model into a polygonal grid is avoided, the calculation and storage expenses are reduced, and the instantaneity of the rendering process is improved.
The above description provides a method for rendering an additive manufacturing system, and based on the same concept, the present description also provides a corresponding apparatus for rendering an additive manufacturing system, as shown in fig. 2.
Fig. 2 is a schematic diagram of a rendering device of an additive manufacturing system provided in the present specification, specifically including:
An acquisition module 200 for acquiring a first implicit function of a model of a component to be manufactured and a second implicit function of a cell filling array filling the model;
the operation module 202 is configured to perform boolean operation on the first implicit function and the second implicit function, and transition the boundary areas of the model and the cell filling array by using a smoothing algorithm to obtain a pending implicit function;
An adjusting module 204, configured to obtain a target implicit function according to a preset shell thickness of the member to be manufactured and the pending implicit function;
and the rendering module 206 is configured to render the target implicit function according to preset rendering parameters.
Optionally, the obtaining module 200 is specifically configured to determine a model of the member to be manufactured constructed by a user, or obtain a three-dimensional model file input by the user and used for describing the member to be manufactured.
Optionally, the first implicit function, the second implicit function, the pending implicit function, the target implicit function are distance field functions.
Optionally, the adjusting module 204 is specifically configured to perform a shell extraction operation on the predetermined implicit function according to a preset shell thickness of the member to be manufactured, so as to obtain an objective implicit function.
Optionally, the rendering parameters include at least a position, a rotation angle, a zoom size, a projection mode, a field angle, a camera position, a near clipping plane, a far clipping plane, a step value, and a minimum distance.
Optionally, the rendering module 206 is specifically configured to determine the number of rays used for rendering and the initial position of each ray according to a preset resolution, determine a direction vector of each ray according to a projection mode, filter rays outside the rendering area according to the initial position of each ray and the rendering area, continuously update the position of each ray according to a specified step value, determine and record whether the ray intersects the model at each position to obtain a ray state of the ray, calculate the target implicit function according to the ray state of each ray to obtain normal information, obtain depth information according to the stepping times of each ray, and draw a normal map, a depth map and a color map according to the normal information and the depth information.
Optionally, the device further includes an image generating module 208, specifically configured to establish a member coordinate system of the member to be manufactured with a center of the member to be manufactured as an origin, rotate the member to be manufactured along each coordinate axis of the member coordinate system, collect images of the member to be manufactured at different angles in a rotation process to obtain a rotation image set, determine an implicit function of a cutting cube according to the origin and a preset cutting position, sequentially generate a plurality of cutting structures along the coordinate axis according to the target implicit function and the implicit function of the cutting cube for each coordinate axis of the member coordinate system, and render each cutting structure according to a specified interval to obtain the cutting image set.
The present specification also provides a computer readable storage medium storing a computer program operable to perform the additive manufacturing system rendering method provided in fig. 1 above.
The present specification also provides a schematic structural diagram of the electronic device shown in fig. 3. At the hardware level, the electronic device includes a processor, an internal bus, a network interface, a memory, and a non-volatile storage, as described in fig. 3, although other hardware required by other services may be included. The processor reads the corresponding computer program from the nonvolatile memory into the memory and then runs to implement the additive manufacturing system rendering method described above with respect to fig. 1. Of course, other implementations, such as logic devices or combinations of hardware and software, are not excluded from the present description, that is, the execution subject of the following processing flows is not limited to each logic unit, but may be hardware or logic devices.
Improvements to one technology can clearly distinguish between improvements in hardware (e.g., improvements to circuit structures such as diodes, transistors, switches, etc.) and software (improvements to the process flow). However, with the development of technology, many improvements of the current method flows can be regarded as direct improvements of hardware circuit structures. Designers almost always obtain corresponding hardware circuit structures by programming improved method flows into hardware circuits. Therefore, an improvement of a method flow cannot be said to be realized by a hardware entity module. For example, a programmable logic device (Programmable Logic Device, PLD) (e.g., field programmable gate array (Field Programmable GATE ARRAY, FPGA)) is an integrated circuit whose logic functions are determined by user programming of the device. A designer programs to "integrate" a digital system onto a PLD without requiring the chip manufacturer to design and fabricate application-specific integrated circuit chips. Moreover, nowadays, instead of manually manufacturing integrated circuit chips, such programming is mostly implemented with "logic compiler (logic compiler)" software, which is similar to the software compiler used in program development and writing, and the original code before being compiled is also written in a specific programming language, which is called hardware description language (Hardware Description Language, HDL), but HDL is not just one, but a plurality of kinds, such as ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware Description Language), and VHDL (Very-High-SPEED INTEGRATED Circuit Hardware Description Language) and Verilog are currently most commonly used. It will also be apparent to those skilled in the art that a hardware circuit implementing the logic method flow can be readily obtained by merely slightly programming the method flow into an integrated circuit using several of the hardware description languages described above.
The controller may be implemented in any suitable manner, for example, the controller may take the form of, for example, a microprocessor or processor and a computer readable medium storing computer readable program code (e.g., software or firmware) executable by the (micro) processor, logic gates, switches, application SPECIFIC INTEGRATED Circuits (ASICs), programmable logic controllers, and embedded microcontrollers, examples of which include, but are not limited to, ARC 625D, atmel AT91SAM, microchip PIC18F26K20, and Silicone Labs C8051F320, and the memory controller may also be implemented as part of the control logic of the memory. Those skilled in the art will also appreciate that, in addition to implementing the controller in a pure computer readable program code, it is well possible to implement the same functionality by logically programming the method steps such that the controller is in the form of logic gates, switches, application specific integrated circuits, programmable logic controllers, embedded microcontrollers, etc. Such a controller may thus be regarded as a kind of hardware component, and means for performing various functions included therein may also be regarded as structures within the hardware component. Or even means for achieving the various functions may be regarded as either software modules implementing the methods or structures within hardware components.
The system, apparatus, module or unit set forth in the above embodiments may be implemented in particular by a computer chip or entity, or by a product having a certain function. One typical implementation is a computer. In particular, the computer may be, for example, a personal computer, a laptop computer, a cellular telephone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email device, a game console, a tablet computer, a wearable device, or a combination of any of these devices.
For convenience of description, the above devices are described as being functionally divided into various units, respectively. Of course, the functions of each element may be implemented in one or more software and/or hardware elements when implemented in the present specification.
It will be appreciated by those skilled in the art that embodiments of the present application may be provided as a method, system, or computer program product. Accordingly, the present application may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present application may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, and the like) having computer-usable program code embodied therein.
The present application is described 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 flow and/or block of the flowchart illustrations and/or block diagrams, and combinations of flows and/or blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, 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 specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
In one typical configuration, a computing device includes one or more processors (CPUs), input/output interfaces, network interfaces, and memory.
The memory may include volatile memory in a computer-readable medium, random Access Memory (RAM) and/or nonvolatile memory, such as Read Only Memory (ROM) or flash memory (flash RAM). Memory is an example of computer-readable media.
Computer readable media, including both non-transitory and non-transitory, removable and non-removable media, may implement information storage by any method or technology. The information may be computer readable instructions, data structures, modules of a program, or other data. Examples of storage media for a computer include, but are not limited to, phase change memory (PRAM), static Random Access Memory (SRAM), dynamic Random Access Memory (DRAM), other types of Random Access Memory (RAM), read Only Memory (ROM), electrically Erasable Programmable Read Only Memory (EEPROM), flash memory or other memory technology, compact disc read only memory (CD-ROM), digital Versatile Discs (DVD) or other optical storage, magnetic cassettes, magnetic tape magnetic disk storage or other magnetic storage devices, or any other non-transmission medium, which can be used to store information that can be accessed by a computing device. Computer-readable media, as defined herein, does not include transitory computer-readable media (transmission media), such as modulated data signals and carrier waves.
It should also be noted that the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising one does not exclude the presence of other like elements in a process, method, article, or apparatus that comprises an element.
It will be appreciated by those skilled in the art that embodiments of the present description may be provided as a method, system, or computer program product. Accordingly, the present specification may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present description can take the form of a computer program product on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) having computer-usable program code embodied therein.
The description may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The specification may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
In this specification, each embodiment is described in a progressive manner, and identical and similar parts of each embodiment are all referred to each other, and each embodiment mainly describes differences from other embodiments. In particular, for system embodiments, since they are substantially similar to method embodiments, the description is relatively simple, as relevant to see a section of the description of method embodiments.
The foregoing is merely exemplary of the present disclosure and is not intended to limit the disclosure. Various modifications and alterations to this specification will become apparent to those skilled in the art. Any modifications, equivalent substitutions, improvements, or the like, which are within the spirit and principles of the present description, are intended to be included within the scope of the claims of the present application.