Rendering method and device, equipment and storage medium

By introducing jitter parameters and velocity vector blending technology into the rendering camera, the problem of jagged visual defects in 3D models was solved, achieving high-quality rendering effects on mobile devices and improving the smoothness and continuity of rendered images.

CN121746560APending Publication Date: 2026-03-27BEIJING BAIDU NETCOM SCI & TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202511864278.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-12-10
Publication Date
2026-03-27

AI Technical Summary

Technical Problem

Existing rendering techniques are prone to jagged visual imperfections when processing 3D models, especially at the edges of the models, resulting in unnatural visual effects. Furthermore, existing anti-aliasing techniques face a balance between performance and effect on mobile devices.

Method used

A dither-based rendering camera samples the vertices of the current frame's mesh and combines this with information from historical frames. By blending velocity vectors and pixel positions, the image of the current frame is blended with that of historical frames, thus optimizing the rendering results.

Benefits of technology

It improves the smoothness and realism of rendered images, reduces or eliminates jagged edges and flicker, enhances the visual coherence of dynamic scenes, is suitable for forward rendering on mobile devices, and simplifies the historical frame processing workflow.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121746560A_ABST
    Figure CN121746560A_ABST
Patent Text Reader

Abstract

The invention provides a rendering method, device and equipment and a storage medium, relates to the technical field of artificial intelligence, in particular to the technical fields of computer vision, deep learning and the like, and can be applied to scenes such as 3D generation and the like. According to the specific implementation scheme, based on a rendering camera added with a jitter parameter, the vertex of a grid in a current frame is sampled, and the vertex position of the grid in the current frame is obtained; obtaining a speed vector corresponding to the current frame based on the position of the vertex of the grid in the current frame and the position of the vertex of the grid in the historical frame; based on the speed vector corresponding to the current frame, obtaining the position of a pixel point of the current frame in a historical frame; and based on the pixel points of the current frame and the positions of the pixel points in the historical frame, mixing the scene image of the current frame and the rendering result of the historical frame to obtain a rendering result of the current frame.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to the field of artificial intelligence technology, particularly to the fields of computer vision and deep learning, and can be applied to scenarios such as 3D generation. Background Technology

[0002] Display devices consist of a grid of countless tiny pixels, each displaying a different color. Designers often create models with continuous geometric shapes. When mapped onto this pixel grid, insufficient sampling rates can result in jagged, stepped edges. In rendering engines, anti-aliasing eliminates or mitigates these visual artifacts, enhances scene detail, and improves the texture and realism of the rendered image. Summary of the Invention

[0003] This disclosure provides a rendering method, apparatus, device, and storage medium.

[0004] According to one aspect of this disclosure, a rendering method is provided, comprising: Based on a rendering camera with added jitter parameters, the vertices of the mesh in the current frame are sampled to obtain the vertex positions of the mesh in the current frame. Based on the positions of the vertices of the mesh in the current frame and the positions of the vertices of the mesh in the historical frame, the velocity vector corresponding to the current frame is obtained; Based on the velocity vector corresponding to the current frame, the position of the pixel in the current frame in the historical frame is obtained; Based on the pixels of the current frame and their positions in the historical frames, the scene image of the current frame and the rendering results of the historical frames are blended to obtain the rendering result of the current frame.

[0005] According to another aspect of this disclosure, a rendering apparatus is provided, comprising: The sampling module is used to sample the vertices of the mesh in the current frame based on the rendering camera with added jitter parameters, and obtain the vertex positions of the mesh in the current frame. The velocity vector module is used to obtain the velocity vector corresponding to the current frame based on the positions of the vertices of the mesh in the current frame and the positions of the vertices of the mesh in the historical frame. The position module is used to obtain the position of the pixel in the current frame in the historical frames based on the velocity vector corresponding to the current frame. The blending module is used to blend the scene image of the current frame and the rendering result of the historical frame based on the pixels of the current frame and their positions in the historical frame, so as to obtain the rendering result of the current frame.

[0006] According to another aspect of this disclosure, an electronic device is provided, comprising: At least one processor; and The memory is communicatively connected to the at least one processor; wherein, The memory stores instructions that can be executed by the at least one processor to enable the at least one processor to perform any of the methods described in the present disclosure.

[0007] According to another aspect of this disclosure, a non-transitory computer-readable storage medium is provided storing computer instructions, wherein the computer instructions are used to cause the computer to perform any of the methods according to embodiments of this disclosure.

[0008] According to another aspect of this disclosure, a computer program product is provided, including a computer program that, when executed by a processor, implements any of the methods according to embodiments of this disclosure.

[0009] It should be understood that the description in this section is not intended to identify key or essential features of the embodiments of this disclosure, nor is it intended to limit the scope of this disclosure. Other features of this disclosure will become readily apparent from the following description. Attached Figure Description

[0010] The accompanying drawings are provided to better understand this solution and do not constitute a limitation of this disclosure. Wherein: Figure 1 This is a schematic flowchart of a rendering method according to an embodiment of the present disclosure; Figure 2 This is a flowchart illustrating a rendering method according to another embodiment of the present disclosure; Figure 3 This is a flowchart illustrating a rendering method according to another embodiment of the present disclosure; Figure 4 This is a flowchart illustrating a rendering method according to another embodiment of the present disclosure; Figure 5 This is a flowchart illustrating a rendering method according to another embodiment of the present disclosure; Figure 6 This is a flowchart illustrating a rendering method according to another embodiment of the present disclosure; Figure 7 This is a flowchart illustrating a rendering method according to another embodiment of the present disclosure; Figure 8 This is a flowchart illustrating a rendering method according to another embodiment of the present disclosure; Figure 9 This is a flowchart illustrating a time-based anti-aliasing solution. Figure 10 This is a schematic diagram of the structure of a rendering apparatus according to an embodiment of the present disclosure; Figure 11 This is a schematic diagram of the structure of a rendering apparatus according to another embodiment of the present disclosure; Figure 12 This is a block diagram of an electronic device used to implement the methods of the embodiments of this disclosure. Detailed Implementation

[0011] The exemplary embodiments of this disclosure are described below with reference to the accompanying drawings, including various details of the embodiments to aid understanding, and should be considered merely exemplary. Therefore, those skilled in the art will recognize that various changes and modifications can be made to the embodiments described herein without departing from the scope of this disclosure. Similarly, for clarity and brevity, descriptions of well-known functions and structures are omitted in the following description.

[0012] Some anti-aliasing solutions for rendering engines include: 1. Multiple Sampling Anti-Aliasing (MSAA) technology ensures smooth geometric edges while maintaining performance, making it suitable for mobile devices. However, MSAA struggles to handle chromatic asymmetry, and post-processing anti-aliasing often results in a very blurry final image.

[0013] 2. Post-processing anti-aliasing techniques, represented by Fast Approximate Anti-Aliasing (FXAA), blur jagged edges through image processing methods. This offers faster processing speeds and effectively reduces the appearance of jagged edges. However, post-processing rendering results in a noticeable lag.

[0014] 3. Temporal anti-aliasing (TAA), a technique that combines information from historical frames with information from the current frame, achieves better anti-aliasing results. TAA requires complex processing of animated objects.

[0015] 4. AI-based anti-aliasing techniques, represented by Deep Learning SuperSampling (DLSS), employ pre-trained neural network models to perform super-resolution reconstruction of low-resolution images, achieving a balance between performance and quality. However, AI-based anti-aliasing techniques are rarely supported on mobile hardware devices.

[0016] Figure 1 This is a flowchart illustrating a rendering method 100 according to an embodiment of the present disclosure, the method comprising: S110. Based on the rendering camera with added jitter parameters, sample the vertices of the mesh in the current frame to obtain the position of the vertices of the mesh in the current frame. S120. Based on the positions of the vertices of the grid in the current frame and the positions of the vertices of the grid in the historical frame, obtain the velocity vector corresponding to the current frame; S130. Based on the velocity vector corresponding to the current frame, obtain the position of the pixel in the current frame in the historical frame; S140. Based on the pixels of the current frame and their positions in the historical frame, the scene image of the current frame and the rendering result of the historical frame are mixed to obtain the rendering result of the current frame.

[0017] In this embodiment, the rendering camera is a virtual geometry tool. By defining camera parameters (position, angle, field of view, and other observation parameters), it can extract the visible range from the 3D scene, forming a view frustum, and project the 3D objects within this visible range as observation data for a 2D image. The rendering engine combines materials, lighting, color, and other parameters to execute rendering algorithms to generate the 2D image. The camera's observation parameters include projection matrix, view matrix, basic state parameters, and view rule parameters. For example, basic state parameters include camera position, target point, and rotation angle; view rule parameters include projection type, view angle, clipping plane, and aspect ratio.

[0018] In this embodiment, camera shake can be applied to each frame of the rendering camera. Camera shake is a technique in the rendering field that simulates random displacement, rotation, or focal length fluctuations during real-world camera shooting. It can enhance the immersive experience of the image (e.g., games, movies), simulate handheld shooting effects (e.g., VR / AR), or hide rendering artifacts (e.g., low-resolution textures, aliasing). By fine-tuning camera parameters (e.g., viewpoint, position, rotation angle, etc.), controlled random perturbations can be applied to the camera, breaking the overly smooth feel of the rendered image and restoring the physical characteristics of real-world shooting. The shake can be a small, periodically changing random perturbation, and the change in shake can be adjusted using shake parameters. If the parameters directly bound to the projection matrix shake, it will affect the value of the projection matrix.

[0019] A mesh is the fundamental element of 3D rendering (such as characters, scene props, and terrain in a game), while a vertex is the building block of the mesh. A vertex can be understood as a coordinate point in 3D space. All vertices are connected by edges to form faces, ultimately creating a visible 3D model (or 3D shape). The current frame may contain multiple 3D models. By sampling the vertices of each mesh in the current frame of the 3D model using a rendering camera with added jitter, the positions of the vertices of each mesh can be obtained. The sampled vertex positions can include the vertex's position within the model, or its model space coordinates. The sampling and jittering in this embodiment can be at the sub-pixel level.

[0020] In this embodiment, the current frame includes a single image / data frame being processed in the rendering pipeline / data processing flow (e.g., containing timestamp T, pixel data, camera parameters, mesh vertex states, etc.); the historical frame refers to frame data that has been processed and stored before the current frame. The positions of vertices from one or more historical frames can be cached. The cached vertex positions may have a different coordinate type than the sampled vertex positions; for example, the sampled vertex positions may be model space coordinates, while the cached positions are clip space coordinates derived from the model space coordinates. An example of a transformation process includes: model space coordinates can be converted to world space coordinates, world space coordinates can be converted to camera space coordinates, and camera space coordinates can be mapped to clip space coordinates using a projection matrix. The velocity vector can include a quantified description of the motion state of the target object (e.g., pixels, mesh vertices, rigid bodies) in the current frame (timestamp T), and is a vector with direction and magnitude that can characterize the amount of position change per unit time. By combining the positions of the vertices in the current frame (e.g., spatial clipping coordinates) with the positions of the vertices in previous frames (e.g., spatial clipping coordinates), the velocity vectors of all vertices in the current frame can be calculated. Then, the velocity vectors of all pixels in the current frame, i.e., the velocity vectors corresponding to the current frame, can be obtained by interpolation based on the velocity vectors of all vertices in the current frame.

[0021] In this embodiment, the position (e.g., UV coordinates) of any pixel in the current frame can be sampled from the velocity vector corresponding to the current frame in a historical frame. Then, the color value of that pixel in the current frame is mixed with the color value of that pixel in the historical frame. This can be done by balancing the color value of a single pixel or by mixing the color values ​​of multiple pixels. For example, with a pixel in the current frame as the center, the color values ​​of multiple pixels surrounding that pixel can be obtained. After obtaining the position of that pixel in the historical frame based on the velocity vector, the color values ​​of multiple pixels surrounding that pixel in the historical frame can be obtained based on the previously mixed rendering result of the historical frame. Then, the color values ​​of these multiple pixels in the current frame are mixed with those in the historical frame. The mixing method can include average mixing, weighted mixing, etc. The final rendering result of the current frame can be obtained based on the mixed color values ​​of each sampled pixel in the current frame. The rendering result of the current frame can be stored as the rendering result of the next historical frame.

[0022] According to embodiments of this disclosure, applying jitter to the rendering camera helps improve the smoothness of object edges in the rendered image. The velocity vector obtained based on the vertex positions of the current frame and historical frames can accurately locate the position of pixels in the current frame within historical frames, thereby accurately blending the rendering results of the current and historical frames. This helps reduce or eliminate aliasing, such as geometric and shading aliasing, enhancing the realism and continuity of the image, suppressing jagged edges and flicker, reducing rendering defects, and enhancing the visual coherence of dynamic scenes. Furthermore, the temporal anti-aliasing scheme of this disclosure is suitable for mobile forward rendering. By customizing a rendering pipeline, the historical frame processing flow is simplified, providing superior image performance.

[0023] Figure 2 This is a flowchart illustrating a rendering method 200 according to another embodiment of the present disclosure. Method 200 can be used to implement step S110 in rendering method 100. In one embodiment, method 200 includes: sampling the vertices of a mesh in the current frame based on a rendering camera with added dithering parameters, further including: S210. Sample the vertices of the mesh in the current frame to obtain the model space coordinates of the vertex; S220. Based on the projection matrix of the rendering camera after dithering in the current frame, convert the model space coordinates of the vertex into clip space coordinates. S230. Store the clipping space coordinates of each vertex of the current frame into the dynamic buffer.

[0024] In this embodiment, model space coordinates can describe the positional relationship of vertices relative to the model itself using a local coordinate system with the model's own reference point (such as the center point or vertex) as the origin, taking into account different scenes and camera parameters. By sampling each vertex of each mesh in the 3D model in the current frame of the rendering camera, the model space coordinates of the vertices of the 3D model can be obtained. If the current frame has multiple 3D models, the model space coordinates of the vertices of all 3D models can be sampled.

[0025] In this embodiment, the clipping space coordinates can include a homogeneous coordinate system obtained by transforming the model space coordinates through a four-level transformation from model to world to view to projection, used to perform camera frustum clipping. For example, the model space coordinates of a vertex can be converted to the world space coordinates of the vertex, and the world space coordinates of the vertex can be converted to the camera space coordinates of the vertex. The camera space coordinates of the vertex can be mapped to the clipping space coordinates of the vertex through the jittered projection matrix. One method for determining the jittered projection matrix includes: adding jitter parameters to the original camera parameters to obtain the jittered camera parameters. The jittered projection matrix is ​​determined based on the jittered camera parameters. Each frame can have its own jitter parameters, and each frame can obtain its own jittered camera parameters based on the original camera parameters and its own jitter parameters, thereby obtaining its own jittered projection matrix. By rendering the frustum defined by the projection matrix of the camera, meshes outside the view range of the rendering camera are removed. The frustum can determine the boundary of the visible area of ​​the camera. Objects / vertices located within this area enter the subsequent rendering pipeline (clipping, rasterization, etc.), while those outside the area can be clipped (not rendered).

[0026] In this embodiment, a dynamic vertex buffer (DVB), also known as a dynamic buffer or dynamic vertex buffer, can be created for each vertex of the current frame mesh. The clip space coordinates of vertices within the rendering camera's field of view for each frame are stored in the dynamic buffer. The dynamic buffer can store the clip space coordinates of vertices from one or more historical frames. If only the clip space coordinates of vertices from one historical frame are stored, the clip space coordinates of the current frame's vertices can be overwritten when the current frame's vertices are retrieved. If the clip space coordinates of vertices from multiple historical frames are stored, some historical frame data, such as the data from the highest-ranking historical frame, can be overwritten when the dynamic buffer is about to fill up. Using a dynamic buffer, vertex data can be updated in real time, storing vertex data that changes frequently between frames. The dynamic buffer can also store vertex position, normals, tangents, texture coordinates, and other information. The data type stored in the dynamic buffer can include Vec3 arrays or other array types.

[0027] According to embodiments of this disclosure, converting model space coordinates into clipping space coordinates using dithering parameters can optimize clipping accuracy, avoid visual defects, and synergistically improve anti-aliasing effects. Storing the clipping space coordinates of historical frames in a dynamic buffer can reduce processing time for historical frames, improve rendering efficiency, and ensure the continuity of rendering effects.

[0028] In one embodiment, the method further includes: obtaining the skeletal animation of the current frame based on interpolation processing; and / or obtaining the facial animation of the current frame based on facial expression basis coefficients; wherein the skeletal animation and / or facial animation of the current frame are used to sample the model space coordinates of the vertices of the current frame.

[0029] In this embodiment, for dynamic objects such as digital humans and virtual characters, directly sampling the model space coordinates of the vertices in the current frame may result in missing actions or expressions. Interpolation processing can be performed based on the skeletal animation of keyframes to obtain the skeletal animation of the dynamic object in the current frame. An example of interpolation processing includes: acquiring the skeletal animation, bone transformation data (translation, rotation, scaling), and inter-frame weights of adjacent keyframes in the current frame; performing interpolation on the interpolation object for each bone; fusing the interpolation results according to weights to obtain the final transformation matrix of the bones in the current frame; and applying the bone transformation matrix to the bound vertices to complete the interpolation generation of the skeletal animation in the current frame. The interpolation object may include bone rotation (Quaternion), position (Vector3), scaling (Vector3), etc. By applying the bone transformation matrix to the vertices through skinning weights, bone-driven vertex position offsets are generated, and then superimposed on the original vertices to obtain the final vertices.

[0030] In this embodiment, the facial animation of the current frame can be obtained based on the facial expression base coefficients. Facial expression bases (such as smiles and frowns) can include pre-made standard facial expression templates. Each facial expression base corresponds to a set of vertex offset data. For example, the vertex offset of a smile base is the coordinate change of the corners of the mouth rising and the cheekbones bulging. Facial expression base coefficients are adjustment parameters for the facial expression base templates. The value range of the facial expression base coefficients is typically [0,1]. A parameter of 0 indicates that the facial expression base is not enabled, a parameter of 1 indicates that it is fully enabled, and a parameter of 0.5 indicates that it is partially enabled. Facial expression base coefficients can be used to control the fusion strength of each facial expression base, also known as facial expression weights, fusion coefficients, etc. Each vertex is traversed, and the vertex offsets of all facial expression bases are weighted and summed according to the corresponding coefficients (e.g., vertex offset = smile offset × 0.8 + frown offset × 0.2) to calculate the total facial expression offset of the vertex. The original vertex positions are superimposed with the total facial expression offset to obtain the facial expression-driven vertex of the current frame. Examples of obtaining vertices based on facial animation sampling include: interpolating the blend shape data of facial expression keyframes to obtain the facial expression offset of each vertex, and then superimposing the original vertices to obtain the final vertex.

[0031] Examples of obtaining vertices based on skeletal animation and facial animation sampling include: superimposing the original vertex positions with skeletal offsets and facial offsets to obtain the final vertices of the current frame.

[0032] In this embodiment, after obtaining the vertex positions (e.g., model space coordinates) of the current frame, the scene of the current frame can be rasterized using the jittered camera parameters to obtain the rasterized current frame result. Based on the vertex positions calculated from the skeletal animation and facial animation of the current frame, combined with the jittered camera projection matrix, the clipping space coordinates of each vertex in the current frame can be calculated and stored in a dynamic buffer for use in the next frame.

[0033] According to embodiments of this disclosure, the vertices of the current frame are determined by skeletal animation and facial animation. Skeletal animation can reflect the overall posture of the limbs (such as running, jumping, turning the head), which is beneficial to improving the overall posture naturalness of the rendering effect; facial animation focuses on subtle changes in the face, which is beneficial to improving the realism of local details in the rendering effect.

[0034] Figure 3 This is a flowchart illustrating a rendering method 300 according to another embodiment of the present disclosure. Method 300 can be used to implement step S120 in rendering method 100. In one embodiment, method 300 includes: obtaining a velocity vector corresponding to the current frame based on the positions of the vertices of the mesh in the current frame and the positions of the vertices of the mesh in the historical frames, further including: S310. Read the clipping space coordinates of the vertices of the mesh of the historical frame from the dynamic buffer; S320. Calculate the velocity vector corresponding to the current frame based on the difference between the vertices of the current frame and the historical frame in the clipping space coordinates.

[0035] In this embodiment, the dynamic buffer can store vertex data such as normals, tangents, and clip space coordinates of one or more historical frames from the rendering camera. By reading the clip space coordinates of the vertices from the dynamic buffer and calculating the difference between the clip space coordinates of the vertices in the current frame and the historical frames, the displacement of the vertex can be obtained. Combined with the time difference between the two frames, the velocity of the vertex can be calculated. The velocities of multiple vertices can be combined to form a velocity vector of the vertex.

[0036] According to the embodiments of this disclosure, calculating the velocity vector based on the clipping space coordinates of the current frame and historical frames is beneficial for accurately obtaining inter-frame changes, and then accurately fusing the rendering results based on the inter-frame changes, thereby improving the rendering effect and rendering performance.

[0037] Figure 4 This is a flowchart illustrating a rendering method 400 according to another embodiment of the present disclosure. Method 400 can be used to implement step S320 in rendering method 300. In one embodiment, method 400 includes: calculating a velocity vector corresponding to the current frame based on the difference in clipping space coordinates of the vertices of the current frame and the historical frames, further including: S410. Correct the difference according to the jitter parameters of each frame; S420. Based on the corrected difference, calculate the velocity vector corresponding to the current frame.

[0038] In this embodiment, jitter parameters for each frame can be stored. These jitter parameters can be the same or different for each frame. Alternatively, periodic jitter parameters can be preset and changed according to a certain pattern within a certain time range. After calculating the difference in clip space coordinates of vertices between the current frame and historical frames, jitter can be removed before calculating the velocity vector. For example, the difference in clip space coordinates of the current frame's vertices can be subtracted from the current frame's jitter parameters, and then the jitter parameters from the previous frame in the historical frame can be added to correct the difference, resulting in the displacement after jitter removal. The velocity vector of the vertex can then be calculated by combining this with the time difference between the two frames. The vertex shader can process all vertices in the current frame to obtain the vertex velocity vectors. In the fragment shader, interpolation can be used to obtain the velocity vectors of all pixels in the current frame.

[0039] According to embodiments of this disclosure, by correcting the difference in the clipping space coordinates of the vertices between the current frame and historical frames using jitter parameters, the velocity vector corresponding to the current frame can be calculated more accurately, which can improve the accuracy of visual anti-aliasing and help eliminate edge jaggedness and flicker.

[0040] Figure 5 This is a flowchart illustrating a rendering method 500 according to another embodiment of the present disclosure. Method 500 can be used to implement steps S130 and S140 in rendering method 100. In one embodiment, method 500 includes: obtaining the position of a pixel in a historical frame based on the velocity vector corresponding to the current frame, further including: S510. Sample the velocity vector corresponding to the current frame to obtain the velocity of the target pixel. S520. Based on the speed of the target pixel and the rendering result of the historical frame, obtain the UV coordinates of the target pixel in the historical frame.

[0041] In one implementation, method 500 includes blending the scene image of the current frame and the rendering result of the historical frame based on the pixels of the current frame and their positions in the historical frames to obtain the rendering result of the current frame, and further includes: S530. Based on the UV coordinates of the target pixel in the historical frame, obtain the color value to be processed for the target pixel in the historical frame. S540. Mix the color values ​​of the target pixel in the current frame and the historical frame to obtain the mixed color value of the target pixel; wherein, the rendering result of the current frame includes the mixed color values ​​of all pixels in the current frame.

[0042] In this embodiment of the disclosure, the velocity of a target pixel can be sampled from the velocity vector corresponding to the current frame. The velocities of different target pixels can be the same or different. For example, during the walking process of a digital human, the velocities of the arm pixels are different from those of the head pixels. As another example, during the walking process of a digital human, the velocities of several pixels close to each other at the feet are the same.

[0043] In this embodiment, the rendering results of historical frames can be obtained. The rendering result of the first historical frame only includes its own rendered image, while the rendering results of subsequent historical frames can include the rendering result after mixing with the rendered images of previous frames. Mixing can be done with two frames or more frames. This embodiment uses the mixing of two adjacent frames as an example; the principle of multi-frame mixing is similar. By sampling the velocity vector corresponding to the current frame, the velocity of a target pixel can be obtained. Based on this velocity and the time difference between the current frame and historical frames, the UV coordinates of the target pixel in the current frame corresponding to the target pixel in the historical frame can be calculated. For example, the UV coordinates of the previous frame = the UV coordinates of the current frame - pixel velocity × frame time. UV coordinates can be used to locate texture pixels using (u,v) coordinates. The color value of the target pixel in the historical frame can be obtained using the UV coordinates of the target pixel corresponding to the target pixel in the historical frame; this color value can also be called historical color, PrevClr, Previous Color, etc. By sampling the velocity vector, the UV coordinates of pixels in the historical frame that are the same as those in the current frame can be accurately obtained, improving the accuracy of color mixing and rendering results.

[0044] In this embodiment, the color values ​​of the target pixel in the current frame and the previous frame can be mixed according to the weights of the current frame and the previous frame to obtain the mixed color value of the target pixel. The mixing method can be, for example, mixing with fixed weights, mixing with weights adjusted according to the brightness of the color value, or mixing with weights adjusted according to the pixel's velocity vector. The mixed color values ​​of all target pixels are rendered as the rendering result of the current frame. The rendering result of the current frame is saved to the vertex buffer for use as the rendering result of the previous frame when processing the pixels of the next frame.

[0045] According to embodiments of this disclosure, mixing the color values ​​of the target pixel in the current frame and the historical frame as the rendering result can eliminate edge jaggedness and dynamic flicker, thereby eliminating inter-frame discontinuity and improving the continuity of dynamic effects.

[0046] Figure 6 This is a flowchart illustrating a rendering method 600 according to another embodiment of the present disclosure. Method 600 can be used to implement step S530 in rendering method 500. In one embodiment, method 600 includes: a method for obtaining the color value to be processed of the target pixel, further including: S610. In the frame where the target pixel is located, obtain the color values ​​of multiple pixels centered on the target pixel; wherein the frame where the target pixel is located includes the current frame or the historical frame; S620. Perform convolution kernel filtering on the color values ​​of the multiple pixels to obtain the color value to be processed for the target pixel.

[0047] In this embodiment, the color value to be processed for the target pixel can include only the color value of the target pixel itself, or it can be obtained by combining the color values ​​of the target pixel and several surrounding pixels. For example, in the current frame, the color values ​​of multiple pixels centered on the target pixel, such as 5 or 9 pixels, are obtained. These color values ​​are then filtered using a Catmull-Rom Convolution Filter (CatRom) to obtain the color value to be processed for the target pixel in the current frame. Similarly, in a historical frame, the color values ​​of multiple pixels centered on the target pixel, such as 5 or 9 pixels, are obtained and filtered using a convolution kernel to obtain the color value to be processed for the target pixel in the historical frame. The entire calculation process can be implemented in the YCoCg color space. YCoCg is a color space that separates luminance and chrominance. It decomposes traditional RGB color into three independent components, achieving decoupling of luminance and chrominance processing. The three independent channels are: Y (Luminance): the luminance channel, corresponding to the brightness perceived by the human eye, carrying the main details and contrast of the image; Co (Chrominance Orange): the orange chrominance channel, describing the degree of orange-blue bias in the color; and Cg (Chrominance Green): the green chrominance channel, describing the degree of green-magenta bias in the color.

[0048] According to embodiments of this disclosure, applying convolution kernel filtering to multiple adjacent pixels based on Catmull-Rom can make the color values ​​of the target pixels smoother, reduce shading jagged edges, and improve rendering effects.

[0049] Figure 7 This is a flowchart illustrating a rendering method 700 according to another embodiment of the present disclosure. In one embodiment, it further includes: S710. Create the color bounding box for the target pixel in the current frame; S720. Constrain the color value of the target pixel in the historical frame within the color bounding box.

[0050] In this embodiment, a color bounding box for the target pixel in the current frame can be created based on the color value of the target pixel, such as its RGB value. A preset number of pixels, for example nine pixels, centered on the target pixel in the current frame are obtained. After filtering with a convolutional kernel, the color value to be processed for the target pixel in the current frame is obtained. The color bounding box for the target pixel is created based on the color value to be processed for the target pixel in the current frame. The color bounding box is a multi-dimensional rectangular boundary constructed in a specific color space (such as RGB, YCoCg, HSV) by defining the extreme value range of color components. It is used to define the range, classify and filter, or compress and optimize the target color set. For example, by adding a small tolerance to each color component of the target pixel, the color bounding box of that pixel can contain color values ​​similar to or including the target pixel. It is determined whether the color value to be processed for the target pixel in a historical frame is within the color bounding box of the target pixel. For example, if the color value to be processed for the target pixel in a historical frame (referred to as the historical color) is outside the color bounding box of the target pixel, the nearest intersection point of the historical color with the color bounding box can be obtained. Using this intersection point, the color value of the target pixel in the historical frame can be modified to fall within the range of the color bounding box. If the historical color is already within the target pixel's color bounding box, no adjustment is needed.

[0051] According to embodiments of this disclosure, by constraining the color values ​​of historical frames to be processed by color bounding boxes, color drift can be suppressed, image purity can be improved, color stability of dynamic scenes can be enhanced, and inter-frame flicker can be eliminated.

[0052] Figure 8 This is a flowchart illustrating a rendering method 800 according to another embodiment of the present disclosure. Method 800 can be used to implement step S140 in rendering method 100. In one embodiment, method 800 includes: mixing the unprocessed color values ​​of the target pixel in the current frame and the historical frame to obtain a mixed color value of the target pixel, further including: S810. Based on the brightness of the color value to be processed of the target pixel or the speed of the target pixel, obtain the mixed weight of the target pixel in the current frame and the historical frame. S820. According to the mixing weight, the color values ​​to be processed of the pixel in the current frame and the historical frame are mixed to obtain the mixed color value of the pixel.

[0053] In this embodiment of the disclosure, the mixing weight of the target pixel in the current frame and historical frames can be set according to the brightness of the color value to be processed in different frames. For example, the mixing weight can be dynamically allocated through the brightness component (such as the Y component in the YCoCg space). The weight of the brighter pixel is set to be smaller.

[0054] In this embodiment of the disclosure, the mixing weight of the target pixel in the current frame and the historical frame can be set according to the speed of the target pixel. For example, the mixing ratio can be dynamically allocated using the pixel motion state (speed magnitude / direction). The higher the pixel speed in the current frame (such as a fast-moving character or a rapidly rotating camera), the greater the weight assigned to the current frame, and the smaller the weight assigned to the historical frame.

[0055] According to embodiments of this disclosure, by setting a blending weight for the target pixel and adjusting the color values ​​to be processed by blending the current frame and historical frames according to the blending weight, the blended color value of the pixel can be obtained, which can improve the smoothness of static areas, eliminate inter-frame flicker, and thus accurately optimize edge sharpness and anti-aliasing effect.

[0056] Considering the application scenarios, anti-aliasing methods aim to improve performance as much as possible while maintaining quality. This disclosure presents a rendering method, including a temporal anti-aliasing (TAA) scheme suitable for mobile forward rendering. This scheme simplifies the historical frame processing flow by defining a custom rendering pipeline, providing superior image quality.

[0057] TAA is a highly efficient anti-aliasing technique in computer graphics (3D rendering field). It eliminates jagged edges, flickering, and texture flickering in the image by fusing rendering data from adjacent frames. It can use redundant information in the temporal dimension to replace the high sampling rate in the spatial dimension, achieving image quality close to that of supersampling anti-aliasing (SSAA) with lower performance overhead.

[0058] This disclosure, based on TAA technology, optimizes the processing flow and proposes a temporal anti-aliasing scheme suitable for mobile forward rendering. It simplifies the processing of dynamic objects, optimizes the effects accordingly, and provides high-quality mobile screen performance, with effects significantly better than traditional anti-aliasing schemes such as MSAA and FXAA on mobile devices.

[0059] Mobile devices use multisampling to reduce aliasing, which effectively eliminates jagged edges caused by geometric structures, but it is ineffective against jagged edges caused by lighting and shading, thus having certain limitations. Temporal anti-aliasing is complex to handle, and although it produces good results, it is generally not suitable for mobile forward rendering. This disclosure provides a temporal anti-aliasing solution that is more compatible with mobile forward rendering by using a custom rendering pipeline. The specific flowchart is as follows. Figure 9 As shown: S901. Add camera shake. Temporal anti-aliasing distributes the multisampling process across multiple frames, ensuring that the position of each pixel's sample varies slightly over several consecutive frames, thus eliminating jagged edges. This is achieved by applying a small, periodically varying shake to the rendering camera for the current frame. This shake can be subpixel level, and an additional offset can be added when calculating the projection matrix, resulting in subtle differences between each frame.

[0060] S902. Render the current scene. Create a dynamic vertex buffer (e.g., a Vec3 array) for all vertices of the mesh in the scene, and cull meshes outside the view frustum using view frustum. For dynamic objects, interpolate the skeletal animation of the current frame and the facial animation calculated based on the facial expression base coefficients to determine the positions of all vertices in the mesh. Rasterize the current scene using the jittered camera parameters to obtain the current frame result.

[0061] S903. Read the vertex positions of the previous frame from the dynamic buffer and calculate the velocity vector. Read the vertex clipping space coordinates of the previous frame from the dynamic buffer (obtained from step S904 of the previous frame), and calculate the difference with the clipping space coordinates of the current frame to obtain the full-screen velocity vector result. Because the camera jitter applied in the two frames is different, the difference in jitter needs to be eliminated to obtain the accurate velocity vector.

[0062] S904. Calculate the vertex positions of the current frame and store them in the dynamic buffer. Using the vertex positions calculated by the skeletal animation and facial animation in step S902, combined with the jittered camera projection matrix, calculate the clipping space coordinates of each vertex and store them in the dynamic buffer for use in the next frame. The timing of S904 and S903 in each frame can be interchanged, and there are no specific restrictions.

[0063] S905. Blend the current frame with the final image of the previous frame. For each pixel, obtain the color values ​​of multiple pixels centered on that pixel in the current frame, for example, 9 pixels, and filter them using a CatRom convolution kernel to obtain the color value CurClr (the color value to be processed) used for blending in the current frame. Furthermore, create a three-channel color bounding box ClrAABB to correct the colors of historical frames. The velocity value of the current pixel is obtained by upsampling the velocity vector result. Based on this velocity value, the UV coordinates of the pixel in the previous frame can be calculated, and thus the color value PrevClr used for blending in the previous frame can be obtained. This process can also obtain the pixel from the previous frame and filter it using a CatRom convolution kernel, resulting in a smoother result. Modify the value of PrevClr to constrain it to the color bounding box ClrAABB of the current pixel. All of the above processes are calculated in the YCoCg color space, which helps reduce flicker and suppress ghosting problems of dynamic objects. The blending weights can be preset values, for example, 0.1 for the current frame and 0.9 for the previous frame. Weights can also be set according to the brightness of the color values, with brighter values ​​receiving a smaller weight. The weights can also be adjusted based on the velocity vector of each pixel. For example, when the velocity is too high, the weight of the current frame can be increased appropriately to reduce blurring and ghosting issues.

[0064] S906. Save the final result of the mixing in the current frame of step S905 separately for use in the next frame when performing the mixing operation in step S905.

[0065] The rendering method of this disclosure is applicable to temporal anti-aliasing schemes for mobile devices. Compared to traditional mobile solutions, it can effectively handle geometric and shading aliasing. Compared to the limitations of traditional temporal schemes that rely more on deferred rendering, this disclosure simplifies the historical frame information processing process for the forward rendering pipeline on mobile devices, providing better performance and high-quality rendered image output.

[0066] Figure 10 This is a schematic diagram of a rendering apparatus 1000 according to an embodiment of the present disclosure. The apparatus 1000 may include: The sampling module 1010 is used to sample the vertices of the mesh in the current frame based on the rendering camera with added jitter parameters, so as to obtain the vertex positions of the mesh in the current frame. The velocity vector module 1020 is used to obtain the velocity vector corresponding to the current frame based on the position of the vertices of the grid in the current frame and the position of the vertices of the grid in the historical frame. The position module 1030 is used to obtain the position of the pixel in the current frame in the historical frame based on the velocity vector corresponding to the current frame; The blending module 1040 is used to blend the scene image of the current frame and the rendering result of the historical frame based on the pixels of the current frame and their positions in the historical frame to obtain the rendering result of the current frame.

[0067] Figure 11 This is a schematic diagram of a rendering apparatus 1100 according to another embodiment of the present disclosure. The apparatus 1100 includes: a sampling module 1110, a velocity vector module 1120, a position module 1130, and a blending module 1140. The functions of the above modules are the same as those of the modules in the rendering apparatus of the above embodiment. In one embodiment, the sampling module 1110 can be used to sample the vertices of the mesh in the current frame to obtain the model space coordinates of the vertex; and convert the model space coordinates of the vertex into clip space coordinates according to the projection matrix of the rendering camera after dithering of the current frame. Store the clipping space coordinates of each vertex of the current frame into the dynamic buffer.

[0068] In one embodiment, the device further includes: Skeletal animation module 1150 is used to obtain the skeletal animation of the current frame based on interpolation processing; and / or The facial animation module 1160 is used to obtain the facial animation of the current frame based on the facial expression base coefficient; The skeletal animation and / or facial animation of the current frame are used to sample the model space coordinates of the vertices of the current frame.

[0069] In one embodiment, the device further includes a dynamic buffer 1170 for storing the clipping space coordinates of the vertices of the grid in historical frames.

[0070] In one implementation, the sampling module 1110 is used to read the clipping space coordinates of the vertices of the mesh of the historical frame from the dynamic buffer; and calculate the velocity vector corresponding to the current frame based on the difference between the clipping space coordinates of the vertices of the current frame and the historical frame.

[0071] In one implementation, the velocity vector module 1120 is used to correct the difference according to the jitter parameters of each frame; and to calculate the velocity vector corresponding to the current frame based on the corrected difference.

[0072] In one embodiment, the position module 1130 is used to sample the velocity vector corresponding to the current frame to obtain the velocity of the target pixel; based on the velocity of the target pixel and the rendering result of the historical frame, the UV coordinates of the target pixel in the historical frame are obtained.

[0073] In one embodiment, the mixing module 1140 is used to obtain the color value to be processed of the target pixel in the historical frame based on the UV coordinates of the target pixel in the historical frame; and to mix the color values ​​to be processed of the target pixel in the current frame and the historical frame to obtain the mixed color value of the target pixel; wherein the rendering result of the current frame includes the mixed color values ​​of all pixels in the current frame.

[0074] In one embodiment, the device further includes a color processing module 1180 for acquiring the color value to be processed of the target pixel. The specific acquisition method includes: acquiring the color values ​​of multiple pixels centered on the target pixel within the frame containing the target pixel; wherein the frame containing the target pixel includes the current frame or the historical frame; and performing convolution kernel filtering on the color values ​​of the multiple pixels to obtain the color value to be processed of the target pixel.

[0075] In one embodiment, the device further includes: The color constraint module 1190 is used to create a color bounding box for the target pixel in the current frame and to constrain the color value to be processed of the target pixel in the historical frame within the color bounding box.

[0076] In one embodiment, the color constraint module 1190 is used to obtain the mixing weight of the target pixel in the current frame and the historical frame based on the brightness of the color value to be processed of the target pixel or the speed of the target pixel; and to mix the color values ​​to be processed of the pixel in the current frame and the historical frame according to the mixing weight to obtain the mixed color value of the pixel.

[0077] The specific functions and examples of each module and submodule of the apparatus in this disclosure can be found in the relevant descriptions of the corresponding steps in the above method embodiments, and will not be repeated here.

[0078] The acquisition, storage, and application of user personal information involved in the technical solution disclosed herein comply with the provisions of relevant laws and regulations and do not violate public order and good morals.

[0079] According to embodiments of this disclosure, this disclosure also provides an electronic device, a readable storage medium, and a computer program product.

[0080] Figure 12A schematic block diagram of an example electronic device 1200 that can be used to implement embodiments of the present disclosure is shown. The electronic device is intended to represent various forms of digital computers, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. The electronic device may also represent various forms of mobile devices, such as personal digital assistants, cellular phones, smartphones, wearable devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely illustrative and are not intended to limit the implementation of the present disclosure described and / or claimed herein.

[0081] like Figure 12 As shown, device 1200 includes a computing unit 1201, which can perform various appropriate actions and processes according to a computer program stored in read-only memory (ROM) 1202 or a computer program loaded from storage unit 1208 into random access memory (RAM) 1203. The RAM 1203 may also store various programs and data required for the operation of device 1200. The computing unit 1201, ROM 1202, and RAM 1203 are interconnected via bus 1204. Input / output (I / O) interface 1205 is also connected to bus 1204.

[0082] Multiple components in device 1200 are connected to I / O interface 1205, including: input unit 1206, such as keyboard, mouse, etc.; output unit 1207, such as various types of monitors, speakers, etc.; storage unit 1208, such as disk, optical disk, etc.; and communication unit 1209, such as network card, modem, wireless transceiver, etc. Communication unit 1209 allows device 1200 to exchange information / data with other devices through computer networks such as the Internet and / or various telecommunications networks.

[0083] The computing unit 1201 can be a variety of general-purpose and / or special-purpose processing components with processing and computing capabilities. Some examples of the computing unit 1201 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various special-purpose artificial intelligence (AI) computing chips, various computing units running machine learning model algorithms, a digital signal processor (DSP), and any suitable processor, controller, microcontroller, etc. The computing unit 1201 performs the various methods and processes described above, such as rendering methods. For example, in some embodiments, the rendering method may be implemented as a computer software program tangibly contained in a machine-readable medium, such as storage unit 1208. In some embodiments, part or all of the computer program may be loaded and / or installed on device 1200 via ROM 1202 and / or communication unit 1209. When the computer program is loaded into RAM 1203 and executed by the computing unit 1201, one or more steps of the rendering method described above may be performed. Alternatively, in other embodiments, the computing unit 1201 may be configured to perform the rendering method by any other suitable means (e.g., by means of firmware).

[0084] Various embodiments of the systems and techniques described above herein can be implemented in digital electronic circuit systems, integrated circuit systems, field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), application-specific standard products (ASSPs), systems-on-a-chip (SoCs), payload-programmable logic devices (CPLDs), computer hardware, firmware, software, and / or combinations thereof. These various embodiments may include implementations in one or more computer programs that can be executed and / or interpreted on a programmable system including at least one programmable processor, which may be a dedicated or general-purpose programmable processor, capable of receiving data and instructions from a storage system, at least one input device, and at least one output device, and transmitting data and instructions to the storage system, the at least one input device, and the at least one output device.

[0085] The program code used to implement the methods of this disclosure may be written in any combination of one or more programming languages. This program code may be provided to a processor or controller of a general-purpose computer, special-purpose computer, or other programmable data processing apparatus, such that when executed by the processor or controller, the program code causes the functions / operations specified in the flowcharts and / or block diagrams to be implemented. The program code may be executed entirely on a machine, partially on a machine, as a standalone software package partially on a machine and partially on a remote machine, or entirely on a remote machine or server.

[0086] In the context of this disclosure, a machine-readable medium can be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, apparatus, or device. A machine-readable medium can be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium can be, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing. More specific examples of machine-readable storage media include electrical connections based on one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the foregoing.

[0087] To provide interaction with a user, the systems and techniques described herein can be implemented on a computer having: a display device for displaying information to the user (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor); and a keyboard and pointing device (e.g., a mouse or trackball) through which the user provides input to the computer. Other types of devices can also be used to provide interaction with the user; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form (including sound input, voice input, or tactile input).

[0088] The systems and technologies described herein can be implemented in computing systems that include backend components (e.g., as a data server), or computing systems that include middleware components (e.g., an application server), or computing systems that include frontend components (e.g., a user computer with a graphical user interface or web browser through which a user can interact with implementations of the systems and technologies described herein), or any combination of such backend, middleware, or frontend components. The components of the system can be interconnected via digital data communication of any form or medium (e.g., a communication network). Examples of communication networks include local area networks (LANs), wide area networks (WANs), and the Internet.

[0089] Computer systems can include clients and servers. Clients and servers are generally located far apart and typically interact via communication networks. Client-server relationships are created by computer programs running on the respective computers and having a client-server relationship with each other. Servers can be cloud servers, servers in distributed systems, or servers incorporating blockchain technology.

[0090] It should be understood that the various forms of processes shown above can be used to rearrange, add, or delete steps. For example, the steps described in this disclosure can be executed in parallel, sequentially, or in different orders, as long as the desired result of the technical solution disclosed in this disclosure can be achieved, and this is not limited herein.

[0091] The specific embodiments described above do not constitute a limitation on the scope of protection of this disclosure. Those skilled in the art should understand that various modifications, combinations, sub-combinations, and substitutions can be made according to design requirements and other factors. Any modifications, equivalent substitutions, and improvements made within the principles of this disclosure should be included within the scope of protection of this disclosure.

Claims

1. A rendering method, comprising: Based on a rendering camera with added jitter parameters, the vertices of the mesh in the current frame are sampled to obtain the vertex positions of the mesh in the current frame; Based on the positions of the vertices of the grid in the current frame and the positions of the vertices of the grid in the historical frames, the velocity vector corresponding to the current frame is obtained; Based on the velocity vector corresponding to the current frame, the position of the pixel in the current frame in the historical frame is obtained; Based on the pixels of the current frame and their positions in the historical frames, the scene image of the current frame and the rendering results of the historical frames are blended to obtain the rendering result of the current frame.

2. The method according to claim 1, wherein, Based on a rendering camera with added jitter parameters, the vertices of the mesh in the current frame are sampled, including: The vertices of the mesh in the current frame are sampled to obtain the model space coordinates of the vertices; Based on the projection matrix of the rendering camera after dithering in the current frame, the model space coordinates of the vertex are converted into clip space coordinates; Store the clipping space coordinates of each vertex of the current frame into the dynamic buffer.

3. The method according to claim 2, further comprising: The skeletal animation of the current frame is obtained based on interpolation processing; and / or The facial animation of the current frame is obtained based on the facial expression base coefficient; The skeletal animation and / or facial animation of the current frame are used to sample the model space coordinates of the vertices of the current frame.

4. The method according to claim 1, wherein, Based on the positions of the vertices of the grid in the current frame and the positions of the vertices of the grid in the historical frames, the velocity vector corresponding to the current frame is obtained, including: Read the clipping space coordinates of the vertices of the mesh from the dynamic buffer; The velocity vector corresponding to the current frame is calculated based on the difference in the clipping space coordinates of the vertices of the current frame and the historical frames.

5. The method according to claim 4, wherein, Based on the difference in the vertices' clipping space coordinates between the current frame and the historical frames, the velocity vector corresponding to the current frame is calculated, including: The difference is corrected according to the jitter parameters of each frame; Based on the corrected difference, the velocity vector corresponding to the current frame is calculated.

6. The method according to claim 1, wherein, Based on the velocity vector corresponding to the current frame, the position of the pixel in the current frame in the historical frame is obtained, including: The velocity of the target pixel is obtained by sampling the velocity vector corresponding to the current frame; Based on the velocity of the target pixel and the rendering result of the historical frame, the UV coordinates of the target pixel in the historical frame are obtained.

7. The method according to claim 6, wherein, Based on the pixels of the current frame and their positions in the historical frames, the scene image of the current frame and the rendering results of the historical frames are blended to obtain the rendering result of the current frame, including: Based on the UV coordinates of the target pixel in the historical frame, the color value to be processed of the target pixel in the historical frame is obtained. The target pixel's color values ​​are mixed in the current frame and the historical frame to obtain the mixed color value of the target pixel; wherein, the rendering result of the current frame includes the mixed color values ​​of all pixels in the current frame.

8. The method according to claim 7, wherein, The method for obtaining the color value to be processed of the target pixel includes: In the frame where the target pixel is located, the color values ​​of multiple pixels centered on the target pixel are obtained; wherein, the frame where the target pixel is located includes the current frame or the historical frame; The color values ​​of the multiple pixels are filtered by a convolution kernel to obtain the color value to be processed for the target pixel.

9. The method according to claim 7 or 8, further comprising: Create the color bounding box of the target pixel in the current frame; The target pixel's color value to be processed in the historical frame is constrained within the color bounding box.

10. The method according to any one of claims 7 to 9, wherein, The target pixel's color values ​​are mixed in the current frame and the historical frame to obtain the mixed color value of the target pixel, including: Based on the brightness of the color value to be processed of the target pixel or the speed of the target pixel, the mixed weight of the target pixel in the current frame and the historical frame is obtained; According to the mixing weight, the color values ​​of the pixel in the current frame and the historical frame are mixed to obtain the mixed color value of the pixel.

11. A rendering apparatus, comprising: The sampling module is used to sample the vertices of the mesh in the current frame based on the rendering camera with added jitter parameters, so as to obtain the vertex positions of the mesh in the current frame. The velocity vector module is used to obtain the velocity vector corresponding to the current frame based on the positions of the vertices of the grid in the current frame and the positions of the vertices of the grid in the historical frames. The position module is used to obtain the position of the pixel in the current frame in the historical frame based on the velocity vector corresponding to the current frame; The blending module is used to blend the scene image of the current frame and the rendering results of the historical frames based on the pixels of the current frame and their positions in the historical frames to obtain the rendering result of the current frame.

12. An electronic device, comprising: At least one processor; as well as A memory communicatively connected to the at least one processor; wherein, The memory stores instructions executable by the at least one processor, which, when executed by the at least one processor, enables the at least one processor to perform the method of any one of claims 1-10.

13. A non-transitory computer-readable storage medium storing computer instructions, wherein, The computer instructions are used to cause the computer to perform the method according to any one of claims 1-10.

14. A computer program product comprising a computer program that, when executed by a processor, implements the method according to any one of claims 1-10.