[go: up one dir, main page]

CN114627212B - A texture-based triangle character representation and instantiation rendering method and system - Google Patents

A texture-based triangle character representation and instantiation rendering method and system Download PDF

Info

Publication number
CN114627212B
CN114627212B CN202210250365.4A CN202210250365A CN114627212B CN 114627212 B CN114627212 B CN 114627212B CN 202210250365 A CN202210250365 A CN 202210250365A CN 114627212 B CN114627212 B CN 114627212B
Authority
CN
China
Prior art keywords
character
vertex
texture
triangle
ordered
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210250365.4A
Other languages
Chinese (zh)
Other versions
CN114627212A (en
Inventor
束禹承
温永宁
乐松山
陈旻
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Normal University
Original Assignee
Nanjing Normal University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing Normal University filed Critical Nanjing Normal University
Priority to CN202210250365.4A priority Critical patent/CN114627212B/en
Publication of CN114627212A publication Critical patent/CN114627212A/en
Application granted granted Critical
Publication of CN114627212B publication Critical patent/CN114627212B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/109Font handling; Temporal or kinetic typography
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/126Character encoding
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/40Analysis of texture
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/90Determination of colour characteristics

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Generation (AREA)

Abstract

The invention relates to a triangle zone character representation and instantiation rendering method and system based on texture, which relate to the technical field of character drawing. The vertex coordinates are then encoded into texels and saved as textures using an encoder. And secondly, transferring textures into a video memory in a character instantiation rendering process, extracting texel information in a vertex shader by using a sampler, and decoding the texel into coordinate data under the coordinates of standardized equipment by using a decoder. Finally, the drawing of the characters is completed. The invention always takes texture as the medium for transferring data in hardware, ensures the consistency of the storage form of character data in CPU and GPU, and adopts triangle belt character description and redefined instantiation rendering method to make it possible to draw all characters required by single frame in single drawing call. The method of the invention realizes the efficient and correct drawing of characters while allowing the large-scale multiplexing of fonts.

Description

Triangle belt character representation and instantiation rendering method and system based on texture
Technical Field
The invention relates to the technical field of character drawing, in particular to a triangle belt character representation and instantiation rendering method and system based on textures.
Background
The characters are important marks of human civilization, and supporting the visualization of the characters is a problem that computer graphics must face and have to be solved. The characters produced in the human history are various, and fonts have different measurement and use standards according to different requirements of practicability and artistry, so that the effective description and rendering of the characters is a complex problem.
In the development of computer graphics, character visualization mainly includes early classical Bitmap Font (Bitmap Font) description and 2D block rendering methods, and modern vector Font description and lattice filling rendering methods.
Modern vector fonts, such as TrueType fonts, describe the outline of a character in a manner of key points and mathematical curves, connect the key points to generate the outline of the character during rendering, and draw the character in a manner of filling a dot matrix in the outline. The method can express the outline characteristics of the character very well due to the combination of the B-spline curve and the straight line. In addition, thanks to the mathematical description mode, the method has vector characteristics and does not have scaling problems. But the rendering is similar to the common GPU drawing scheme and classical bitmap fonts, and the essence is to generate dot matrix data and realize text rendering in a mapping mode. This causes the character data to lose vector characteristics and return to pixel mode, thus presenting scaling and rotation problems. Specifically, in an application scenario such as map annotation symbol display, scaling rotation lattice data may not be completely matched with device pixels, so that font features are unreasonably drawn, and problems such as font distortion and display blurring occur.
Therefore, a technical solution for realizing efficient and correct drawing of characters while meeting the requirement of large-scale multiplexing of fonts is needed in the art.
Disclosure of Invention
The invention aims to provide a triangle belt character representation and instantiation rendering method and system based on texture, which always takes the texture as a medium for transmitting data in hardware, ensures consistency of storage forms of character data in a CPU and a GPU, and effectively solves the problems of unreasonable drawing of font characteristics, such as font distortion, display blurring and the like caused by incomplete matching with equipment pixels when scaling and rotating dot matrix data in the prior art by adopting the triangle belt character description and redefined instantiation rendering method.
In order to achieve the above object, the present invention provides the following solutions:
A texture-based triangle ribbon character representation and instantiation rendering method, the method comprising:
Acquiring the outline of a character to be drawn;
Converting the outline of each character into an ordered vertex sequence by utilizing a triangle strip;
encoding the ordered vertex sequences into textures by using a tree splitting method, and recording row indexes of each ordered vertex sequence in the textures;
transmitting the texture and the line index to a video memory;
Writing a decoder according to the corresponding relation between the texture and the ordered vertex sequence;
acquiring textures of specified characters, wherein the specified characters are characters with display requirements;
Decoding textures of the appointed characters by using the decoder to obtain an ordered vertex sequence;
and displaying the appointed character according to the ordered vertex sequence.
In some embodiments, the acquiring the outline of the character to be drawn specifically includes:
loading a font file, and generating all characters in the font file according to a designated font size;
The outline of each character is acquired.
In some embodiments, the converting the outline of each character into an ordered vertex sequence by using a triangle strip specifically includes:
Performing cam-band-based surface subdivision on each part forming the outline to obtain a plurality of cam bands;
Connecting the head and tail of the triangular bands by using a degenerate triangular method to obtain triangular band representations of the outlines, namely, single triangular bands representing each outline;
And forming each vertex of the single triangular belt into an ordered vertex sequence according to the inherent sequence of the triangular belt.
In some embodiments, after the converting the outline of each character into the triangle band primitive, the method further includes:
and carrying out standardization processing on each vertex coordinate of the ordered vertex sequence.
In some embodiments, the encoding the ordered vertex sequences into textures by using a tree splitting method, and recording a row index of each ordered vertex sequence specifically includes:
coding each vertex coordinate into RGBA color information by using a tree splitting method;
and storing all vertexes of the single character to a designated row in the texture bitmap, and recording row indexes of the designated row to obtain textures and row indexes.
In some embodiments, the displaying the specified character according to the ordered vertex sequence specifically includes:
And according to the ordered vertex sequence, applying coordinate transformation and color matching schemes required by drawing, and completing character drawing by using a triangle strip drawing method of the GPU.
The invention also provides a texture-based triangle tape character representation and instantiation rendering system, the system comprising:
a contour obtaining unit for obtaining the contour of the character to be drawn;
an ordered vertex sequence acquisition unit for converting the outline of each character into an ordered vertex sequence by using a triangle strip;
the encoding unit is used for encoding the ordered vertex sequences into textures by using a tree splitting method and recording row indexes of each ordered vertex sequence in the textures;
the transmission unit is used for transmitting the texture and the line index to a video memory;
a decoder writing unit, configured to write a decoder according to a correspondence between the texture and the ordered vertex sequence;
the appointed character texture acquisition unit is used for acquiring textures of appointed characters, wherein the appointed characters are characters with display requirements;
The decoding unit is used for decoding textures of the appointed characters by utilizing the decoder to obtain an ordered vertex sequence;
and the display unit is used for displaying the appointed character according to the ordered vertex sequence.
In some embodiments, the converting the outline of each character into an ordered vertex sequence by using a triangle strip specifically includes:
performing cam-band-based surface subdivision on each part forming the outline to obtain a plurality of cam bands;
Connecting the head and tail of the triangular bands by using a degenerate triangular method to obtain triangular band representations of the outlines, namely, single triangular bands representing each outline;
And forming each vertex of the single triangular belt into an ordered vertex sequence according to the inherent sequence of the triangular belt.
In some embodiments, the encoding the ordered vertex sequences into textures by using a tree splitting method, and recording a row index of each ordered vertex sequence specifically includes:
coding each vertex coordinate into RGBA color information by using a tree splitting method;
and storing all vertexes of the single character to a designated row in the texture bitmap, and recording row indexes of the designated row to obtain textures and row indexes.
In some embodiments, the displaying the specified character according to the ordered vertex sequence specifically includes:
And according to the ordered vertex sequence, applying coordinate transformation and color matching schemes required by drawing, and completing character drawing by using a triangle strip drawing method of the GPU.
According to the specific embodiment provided by the invention, the invention discloses the following technical effects:
The invention discloses a triangle belt character representation and instantiation rendering method and a triangle belt character representation and instantiation rendering system based on textures. The vertex coordinates are then encoded into textures using an encoder. And transferring the texture to a video memory, and decoding the texture into coordinate data under the coordinate of standardized equipment by a decoder to finish drawing the character. The texture is always used as a medium for transferring data in hardware, so that consistency of storage forms of character data in a CPU and a GPU is ensured, and the problems that font characteristics are unreasonably drawn, such as font distortion, display blurring and the like, caused by incomplete matching between the triangle belt character description and equipment pixels when scaling and rotating dot matrix data in the prior art are effectively solved by adopting a triangle belt character description and redelivery instantiation rendering method.
Drawings
In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings that are needed in the embodiments will be briefly described below, and it is obvious that the drawings in the following description are only some embodiments of the present invention, and other drawings may be obtained according to these drawings without inventive effort for a person skilled in the art.
FIG. 1 is a flow chart of a texture-based triangle ribbon character representation and an exemplary rendering method according to an embodiment of the present invention.
Fig. 2 is an overall schematic diagram of a texture-based triangle ribbon character representation and an exemplary rendering method according to an embodiment of the present invention.
Fig. 3 is a schematic diagram of a degradation triangle method according to a first embodiment of the present invention.
Fig. 4 is a schematic diagram showing an effect of drawing a character represented by a single triangle strip in a line frame mode according to the first embodiment of the present invention.
Fig. 5 is a schematic diagram of an encoder designed by tree splitting according to a first embodiment of the present invention.
Fig. 6 is a schematic diagram of a converted intra-color data storage structure according to a first embodiment of the present invention.
FIG. 7 is a schematic diagram of a texture sample of encoded data according to an embodiment of the present invention.
Fig. 8 is a schematic diagram of data stored in a memory according to an embodiment of the invention.
Fig. 9 is a schematic diagram of the effect of character drawing under different zoom and rotation conditions according to the first embodiment of the present invention.
FIG. 10 is a block diagram of a texture-based delta character representation and instantiation rendering system provided in accordance with a second embodiment of the present invention.
Detailed Description
The following description of the embodiments of the present invention will be made clearly and completely with reference to the accompanying drawings, in which it is apparent that the embodiments described are only some embodiments of the present invention, but not all embodiments. All other embodiments, which can be made by those skilled in the art based on the embodiments of the invention without making any inventive effort, are intended to be within the scope of the invention.
The invention aims to provide a triangle belt character representation and instantiation rendering method and system based on texture, which always takes the texture as a medium for transmitting data in hardware, ensures consistency of storage forms of character data in a CPU and a GPU, and effectively solves the problems of unreasonable drawing of font characteristics, such as font distortion, display blurring and the like caused by incomplete matching with equipment pixels when scaling and rotating dot matrix data in the prior art by adopting the triangle belt character description and redefined instantiation rendering method.
Bitmap fonts were first proposed in the article "a Simple OpenGL-based API for Texture Mapped Text" (MARK KILGARD, 1997) in an effort to solve the problem that OpenGL does not have native character rendering APIs. The method takes texture as a carrier, all characters are loaded into a bitmap in the form of texture, the texture range of the character to be sampled is determined in a mode of specifying texture coordinates, and the extracted texture colors are painted on a preset 2D square, so that the text is rendered. Bitmap fonts, while simple to implement and possessing good performance because the text has been pre-described as texture, have limited flexibility due to their resolution-dependent nature, in which corresponding bitmap data must be generated for different scaling situations. It is proposed hereafter in the article Improved Alpha-Tested Magnification for Vector Textures AND SPECIAL effects (GREEN, 2007) to replace bitmap characters with a directed distance field (SIGNED DISTANCE FIELD, SDF) method which, while efficient, still suffers from aliasing problems when the resolution is very high.
Modern vector fonts, such as TrueType fonts, describe the outline of a character in a manner of key points and mathematical curves, connect the key points to generate the outline of the character during rendering, and draw the character in a manner of filling a dot matrix in the outline. The method can express the outline characteristics of the character very well due to the combination of the B-spline curve and the straight line. In addition, thanks to the mathematical description mode, the method has vector characteristics and does not have scaling problems. But the rendering is similar to the common GPU drawing scheme and classical bitmap fonts, and the essence is to generate dot matrix data and realize text rendering in a mapping mode. This causes the character data to lose vector characteristics and return to pixel mode, thus presenting scaling and rotation problems. Specifically, in an application scenario such as map annotation symbol display, scaling rotation lattice data may not be completely matched with device pixels, so that font features are unreasonably drawn, and problems such as font distortion and display blurring occur.
The problem of mismatch of data and device pixels should be avoided in an effort to properly represent glyph features in a wider range of application scenarios. The ideal character drawing method is to always make the vector state of the data throughout the rendering process, but the related expressions and rendering are difficult to realize good balance in terms of multiplexing and efficiency. Therefore, how to ensure that the requirement of large-scale multiplexing of fonts is met and simultaneously achieve efficient and correct drawing of characters is a problem to be solved in the process of applying electronic maps.
The invention discloses a triangle belt character representation and instantiation rendering method based on texture, which comprises the following steps: the vector font is first converted into a corresponding ordered array of vertices according to the primitive, triangle strip. The vertex coordinates are then encoded into texels and saved as textures using an encoder. And secondly, transferring textures into a video memory in a character instantiation rendering process, extracting texel information in a vertex shader by using a sampler, and decoding the texel into coordinate data under the coordinates of standardized equipment by using a decoder. Finally, the drawing of the characters is completed. The invention always takes texture as the medium for transferring data in hardware, ensures the consistency of the storage form of character data in CPU and GPU, and adopts triangle belt character description and redefined instantiation rendering method to make it possible to draw all characters required by single frame in single drawing call. The method of the invention realizes the efficient and correct drawing of characters while allowing the large-scale multiplexing of fonts.
In order that the above-recited objects, features and advantages of the present invention will become more readily apparent, a more particular description of the invention will be rendered by reference to the appended drawings and appended detailed description.
Embodiment one:
As shown in fig. 1, the present embodiment provides a texture-based triangle ribbon character representation and instantiation rendering method, which includes:
s1, acquiring the outline of a character to be drawn.
Firstly, loading a font file, designating a font size by an application scene and an application requirement, generating all characters in the font file according to the designated font size, and then acquiring the outline of each character.
S2, converting the outline of each character into an ordered vertex sequence by utilizing the triangle belt graphic primitive.
Firstly, carrying out cam-band-based surface subdivision on each part forming the outline to obtain a plurality of cam bands;
Connecting the head and tail of the triangular bands by using a degenerate triangular method to obtain triangular band representations of the outlines, namely, single triangular bands representing each outline;
And forming each vertex of the single triangular belt into an ordered vertex sequence according to the inherent sequence of the triangular belt.
As an alternative embodiment, the font size in step S1 is in units of "Point" in the typesetting printing, and the font size rule is identical to the character printing typesetting rule. The method for acquiring the profile array in the step S1 is characterized in that the mathematical description of characters in a font file is extracted, the profile line expression under the specified font size is calculated, the number of the profile lines is naturally divided into profile arrays with the number of elements being more than or equal to 1, the profile lines are traversed by utilizing a line turning point method to finish data filling of profile array elements, the triangle band array is a method for storing triangle band vertex data in an array mode, each vertex of a triangle band vertex sequence is an element of the array, the vertex element is composed of two floating point type (float) numbers and is used for representing the space coordinates of the vertices (x and y), a degenerated triangle (DEGENERATE TRIANGLE) is a special triangle formed when three vertexes forming the triangle are collinear, the triangle has the characteristic of 0 area, a display card can be utilized for rendering a transitional triangle connecting two triangle strips by utilizing the characteristic, the head and tail of the triangle strip refers to the first vertex and the last vertex of the orderly vertex sequence determined by the triangle strip, the manufacturing method for connecting each triangle band vertex is that the vertex of the triangle strip to be connected is duplicated, the vertex of the front triangle strip to be connected, the vertex of the triangle strip to be connected, and the vertex of the triangle strip to be connected.
S3, encoding the ordered vertex sequences into textures by using a tree splitting method, and recording row indexes of each ordered vertex sequence in the textures.
Normalization of each vertex coordinate of the ordered vertex sequence is required prior to encoding. And then, all vertexes of the single character are stored to a designated row in the texture bitmap, and the row index of the designated row is recorded to obtain textures and row indexes.
As an alternative implementation, after the (x, y) coordinate value range of the normalization processing is interval [0.0,1.0], the normalization processing is amplified to the subset range where the texture color component of a single byte can represent the data interval (the amplified coordinate value range is [0.0,255.0 ]), the integer part becomes an unsigned integer which can be represented and stored by 1 byte, the value range of the decimal part of the amplified (x, y) coordinate is interval [0.0,1.0], the integer part of the amplified (x, y) coordinate is also equal to the unsigned integer which can be represented and stored by 1 byte, the last color is filled to the maximum width pixel by pixel, and a degenerate triangle method is used for forcing the invalid area of a new triangle generated after the valid vertex of the triangle to be 0 so as to cancel the influence of the invalid vertex on the drawing result.
S4, transmitting the texture and the line index to a video memory.
S5, compiling a decoder according to the corresponding relation between the texture and the ordered vertex sequence.
The decoding process of the decoder is actually the inverse of the encoding process, and the corresponding decoder is written according to the encoding and storing process of the ordered vertex sequence in the texture.
An embodiment of the method comprises the steps of designing an instantiation method sampler and decoder for character textures in a GPU rendering process, if textures need to be analyzed in a geometry loader, transmitting texture row indexes of characters to be rendered into a shader as vertex attributes, setting the vertex attributes to be changed into the next numerical value after each instantiation, determining row coordinates of the characters to be rendered in the textures by the row index vertex attributes appointed by the instantiation rendering, determining character texture column coordinates by the unique appointed vertex IDs in the single instantiation process, sampling the textures based on the row and column coordinates to obtain corresponding vertex color values, reading the texture data file generated in the step 2 by a CPU and transmitting the texture data file to a display memory when font display requirements exist, finding out the corresponding texture colors of the appointed character vertices by the sampler, designing the decoder to convert the corresponding texture colors of the appointed characters into vertex coordinate data, calculating standardization and coordinates, and finishing decoding of vertex (x and y) coordinate values.
Further, the sample and decoder for the character texture instantiation method in the GPU rendering process of step 3 may be completed during the vertex computation or primitive assembly stage of the rendering pipeline. Specifically, the sampling and decoding of the character texture may be implemented in a vertex loader or a geometry loader. For the vertex loader, extracting the texture color corresponding to each vertex through single instantiation of the unique appointed vertex ID and instantiation of the vertex attribute line index, and for the geometry loader, directly reading the texture, sequentially decoding and constructing the triangle band primitive.
The line index vertex attribute appointed by the instantiation rendering is updated once per instantiation, the relevant attribute is kept unchanged in the single instantiation process, the fact that different vertexes point to the same line in the texture in the single instantiation is guaranteed, the vertex ID uniquely appointed by the single instantiation is the unique identification of single vertex data in the single instantiation process, the identification guarantees that different vertexes point to different columns in the texture in the single instantiation process of the texture sampler, if a texture color component representation interval is automatically represented according to a value range [0.0,1.0] in a display card, the encoding and decoding processes are not completely reciprocal, x or y coordinates are standardized, namely the coordinate value range is modified to be [ -1.0,1.0] from the interval [0.0,1.0 ].
S6, obtaining textures of specified characters, wherein the specified characters are characters with display requirements.
After the texture is transferred into the video memory in the character instantiation rendering process, the vertex color information can be collected in the vertex shader through the instantiation vertex attribute and the vertex ID control sampler.
S7, decoding textures of the appointed characters by using the decoder to obtain an ordered vertex sequence.
As an alternative implementation, the color information is decoded into vertex data in standardized device coordinates by a decoder in this embodiment. And finally, assembling all the vertex data subjected to the rest calculation into a triangle band primitive and rendering a final font.
S8, displaying the appointed character according to the ordered vertex sequence.
Firstly, according to the ordered vertex sequence, coordinate transformation and color matching schemes required by drawing are applied, and character drawing is completed by using a triangle strip drawing method of the GPU.
In general, referring to fig. 2, fig. 2 is a schematic diagram of the method of the present invention. Firstly, preprocessing font data, loading a font file of a designated font and designating font size information, calculating and extracting a contour array of each character according to the font and the font size, traversing the array, carrying out curved surface subdivision based on a triangle band on each element, and linking the triangle band array into a triangle band through a degenerate triangle method, so that vector fonts such as TrueType and the like are described as triangle band vertex coordinate data. And then, carrying out texture coding on the triangle belt vertex data, standardizing and calculating the triangle belt vertex coordinates to obtain a single-precision floating point array with a value range of interval [0.0,1.0], coding vertex (x, y) coordinates into RGBA color information by utilizing a tree splitting mode, storing all vertexes of single characters into a designated row in a texture bitmap, filling the residual color by the last vertex color if the number of the vertexes does not reach the maximum width, and storing the texture file when the number of the coded vertexes reaches the maximum height of the texture. And secondly, transferring textures into a video memory in a character instantiation rendering process, collecting vertex color information in a vertex shader through an instantiation vertex attribute and vertex ID control sampler, and decoding the color information into vertex data under the coordinates of standardized equipment by using a decoder. And finally, assembling all the vertex data subjected to the rest calculation into a triangle band primitive and rendering a final font.
In the preprocessing process, the triangle band primitive has better information compression capability compared with the common triangle primitive because the triangle band primitive utilizes n+2 vertexes to represent the characteristics of n triangles, and repeated vertex calculation amount can be reduced when the vertex shader calculates the vertexes, so that the rendering efficiency is improved. Considering the need for textures to store characters in rows in subsequent steps, a single character must be described in terms of a triangle strip. However, it is difficult to describe a branched or separated polygon by a single triangle, which is a common occurrence in characters, particularly chinese characters, and for this reason, there is necessarily a case where a plurality of triangle strips are constructed in the triangle-based tessellation process. In this regard, it is necessary to efficiently link the triangular bands in a single character. The triangle strip linking method in the invention adopts a degenerate triangle method, as shown in fig. 3, for two independent triangle strips, the link is realized by copying the last vertex at the tail end of the first strip and copying the first vertex at the head end of the second strip, thereby constructing 4 degenerate triangles with the area of 0. Fig. 4 shows the effect of drawing a character represented by a single triangle in a line box mode. The unnatural connecting line appearing in each character is the effect presented after the degradation triangle links each triangle belt.
In order to facilitate texture-based encoding and decoding of the character triangle data, the triangle vertex data is normalized, and the range of values of the (x, y) coordinate values is mapped to the interval [0.0,1.0]. In the mapping process, attention is paid to several types of characteristic relations, namely (1) the proportional characteristic between the x axis and the y axis is required to be reserved so as to ensure that the scaling of the vertexes in the directions of all axes is correct, (2) the local coordinate characteristic in the bounding box is required to be reserved so as to ensure that the relationship between the coordinates of the vertexes of the triangular bands of the single character is correct, and (3) the global coordinate characteristic outside the bounding box is required to be reserved so as to ensure that the size and the position relationship between the characters are correct.
Texture-based encoding and decoding of character triangle strip data is critical in that conversion of 2 single precision floating point data and 4 single byte color component data (i.e., RGBA) is accomplished in a relatively simple and fast manner. The invention designs the encoder by using a tree splitting mode, as shown in fig. 5, by amplifying standardized coordinates (taking x coordinates as an example in the figure) to a section [0.0,255.0], the integer part of the numerical value is positioned on the sections [0,255], so that the integer part can be stored by color component data of 1byte, the decimal part of the amplified coordinates is positioned on the sections [0.0, 1.0), and the decimal part is positioned in the section [0.0,255.0] by amplifying again, and the integer part of the decimal part can be also stored by the color component data of 1byte after being taken. The above-mentioned process is the coding process of converting coordinates into color components, and the converted intra-color data storage structure is schematically shown in fig. 6, where I represents an integer part of the amplified coordinates and D represents a fractional part of the amplified coordinates. The encoded texture sample is shown, for example, in fig. 7.
The process of decoding the texture color to vertex coordinates can be essentially seen as the inverse of the encoding process. It should be noted, however, that in most programmable rendering pipeline usage scenarios, the color values are automatically converted by the GPU to single precision floating point type data with values in the range of [0.0,1.0], for which a scaling operation from interval [0.0,255.0] to [0.0,1.0] can be done at least once during decoding, whereby the implementation of the decoder can be further simplified by (1) extracting the fractional color component values and dividing by 255.0, (2) adding the integer color component values, and (3) mapping the values to intervals [ -1.0,1.0]. Standardized device coordinate data for the vertices may thus be obtained.
The invention discloses a coding and decoding process based on a tree splitting mode, which is essentially that 32-bit single-precision floating point data and 16-bit double-color components are subjected to inter-conversion operation, and the problem of information accuracy is necessarily existed in the conversion process. The bi-color component of the method can represent 65536 uniquely determined coordinates, and if the upper limit of the width of the coordinate acceptable value exceeds the value, the representation of the bi-color component has the problem of losing precision. The invention provides a feasible solving method, which uses tree splitting characteristic to reuse the discarded decimal part of the amplified coordinate data decimal part when amplifying again, amplifies and picks up the integer part, stores a new color component, and the like until the precision meets the application requirement.
After the character data is encoded into texture and transferred into the memory, the present invention expects to map out all the characters required for a single frame in a single Draw Call for performance. According to the invention, by combining the instantiation rendering characteristics and the GPU programmable rendering pipeline characteristics, the instantiation rendering function is redefined, and an efficient instantiation-based texture sampler is designed so as to complete the function of drawing characters in batches by a single frame and a single Draw Call. Instantiation of the render book is designed for realizing batch rendering of a single model, and the batch repeated rendering of the model is realized by specifying model data and the repetition times. The invention adopts the instantiation rendering method as well, but after redefinition, the direct appointed rendering data is changed into the indirect appointed texture line index, and the repetition number is interpreted as the total number of characters drawn in the Draw Call.
The data that must be transferred into the memory includes the character texture and the line index of the character to be drawn. The data is schematically shown in fig. 8. The line index is used as an instantiation vertex attribute, and the content of the line index is updated after the one-time instantiation process is finished, so that the vertex attribute is unchanged in the single instantiation process, and the line number of the texture pointed by the character drawn by the current instantiation is always represented. In the single instantiation process of the programmable rendering pipeline, different vertexes are assigned unique ID identification by hardware, the sequential increment characteristic of the vertexes is consistent with the meaning of the column numbers of the texture colors at the sequence expression level, and therefore the corresponding column numbers in the texture can be directly represented by vertex IDs. Based on the above, the present invention realizes the mapping relationship between the vertex and the texture color coordinates by instantiating the vertex attribute to represent the row number and the vertex ID in a single instantiation to represent the column number. The row coordinate value is directly obtained by the built-in variable and the video memory without any additional calculation, so that the constructed sampler does not generate possible performance loss when the mapping relation is established.
The effect of character rendering under different zoom and rotation conditions is given in fig. 9. The resolution of the test window is 800x600, a font with the size of 120 is used as a test data source for drawing, (a), (c) the characters are not rotated, (b), (d) the characters are rotated by 60 degrees, (a), (b) the characters are obtained by scaling 0.2 times according to the standard equipment coordinates, and (c) the characters are obtained by scaling 0.03 times according to the standard equipment coordinates (the picture is magnified for displaying clearly). As can be seen from the figure, when the character is large, there is little difference in rendering effect regardless of rotation. And even when the character is scaled to be very small, the whole character shape can still be correctly displayed after 60-degree rotation. The linear saw tooth phenomenon caused by inclination can be solved by setting a specific anti-saw tooth algorithm according to the use environment.
Compared with the prior art, the method combines the performance advantage of the texture carrier and the scaling advantage of the vector font description method, avoids the problem that the texture is inflexible in the scaling process and the vector font characteristics cannot penetrate through the whole process of the programmable rendering pipeline, and reduces the conditions of font blurring and distortion caused by rotation and other operations of characters. By adopting the triangle description character and the paraphrase instantiation rendering method, all characters required by drawing a single frame in a single drawing call are possible, and the character loading and drawing efficiency and effect are improved.
Embodiment two:
as shown in FIG. 10, the present invention provides a texture-based delta character representation and instantiation rendering system comprising:
A contour obtaining unit M1 for obtaining a contour of a character to be drawn;
An ordered vertex sequence obtaining unit M2, configured to convert the outline of each character into an ordered vertex sequence by using a triangle belt;
a coding unit M3, configured to code the ordered vertex sequences into textures by using a tree splitting method, and record a row index of each ordered vertex sequence in the textures;
A transmission unit M4, configured to transmit the texture and the line index to a video memory;
a decoder writing unit M5, configured to write a decoder according to a correspondence between the texture and the ordered vertex sequence;
a specified character texture acquisition unit M6 for acquiring textures of specified characters, wherein the specified characters are characters with display requirements;
a decoding unit M7, configured to decode the texture of the specified character by using the decoder, to obtain an ordered vertex sequence;
And a display unit M8, configured to display the specified character according to the ordered vertex sequence.
The method for converting the outline of each character into an ordered vertex sequence by utilizing a triangle strip specifically comprises the following steps:
performing cam-band-based surface subdivision on each part forming the outline to obtain a plurality of cam bands;
Connecting the head and tail of the triangular bands by using a degenerate triangular method to obtain triangular band representations of the outlines, namely, single triangular bands representing each outline;
And forming each vertex of the single triangular belt into an ordered vertex sequence according to the inherent sequence of the triangular belt.
The method for encoding the ordered vertex sequences into textures by using a tree splitting method, and recording the row index of each ordered vertex sequence specifically comprises the following steps:
coding each vertex coordinate into RGBA color information by using a tree splitting method;
and storing all vertexes of the single character to a designated row in the texture bitmap, and recording row indexes of the designated row to obtain textures and row indexes.
The displaying the appointed character according to the ordered vertex sequence specifically comprises the following steps:
And according to the ordered vertex sequence, applying coordinate transformation and color matching schemes required by drawing, and completing character drawing by using a triangle strip drawing method of the GPU.
Embodiment III:
the embodiment provides a triangle belt character representation and instantiation rendering method based on texture, which comprises the following steps:
Step 1, loading outline description data of characters to be drawn, converting outline expressions of each character into one or more triangular belts equivalent to the outline expressions of the characters, linking the triangular belts, and forming an independent single triangular belt expression by each character.
And 2, traversing each character triangle strip vertex for the triangle strip expression of the character formed in the step 1, coding each vertex (x, y) coordinate into a texel equivalent to the vertex, and sequentially forming a texel row sequence representing the character triangle strip expression. And forming a texture image data according to the sequence of the texel lines corresponding to each character, and recording the line index of the texture line sequence corresponding to each character in the texture image.
And step 3, transmitting the texture data formed in the step 2 to a video memory. A character decoding renderer for the character texel representation is written using the general GPU loader language. And for each character to be drawn, the character decoding and drawing device takes out a corresponding character texel sequence according to a texture line index corresponding to the character, decodes and restores each texel to a corresponding triangle strip vertex coordinate, applies coordinate transformation and color matching schemes required by drawing, and finishes character drawing by using a triangle strip drawing method of the GPU.
The specific steps of constructing the single triangular belt in the step1 are as follows:
and 1.1, loading character outline description data, generating a font outline according to a specified font size, and extracting an outline array.
And 1.2, performing tessellation based on the triangle band primitives for each element in the profile array to obtain the triangle band primitive array.
And step 1.3, linking the head and the tail of each triangle by using a degenerate triangle method to obtain single triangle data of the character.
The specific step of encoding the vertex (x, y) coordinates into texels in step 2 is:
And 2.1, specifying the maximum width and the maximum height of the texture of the character data, encoding the vertex coordinate values into texels by using a mathematical method, and storing the texels into the texture according to the vertex sequence according to rows so as to realize the encoding of the vertex data.
The digital coding method in step 2.1 comprises the following specific steps:
Step 2.1.1, amplifying the value range of the x coordinate or the y coordinate to a subset of the interval range which can be represented by a single texel component, and storing an integer part of the subset into a certain unfilled component;
Step 2.1.2, amplifying the value range of the residual fraction part to a subset of the interval range which can be represented by a single texel component, and storing an integer part of the subset into a certain unfilled component;
And 2.1.3, copying the last texel for the rows with the texels smaller than the maximum width, and filling the rows to the maximum width.
The specific steps of creating the instantiation method sampler in the step 3 are as follows:
step 3.1, the texture line index of the character to be rendered is used as a vertex attribute to be transmitted into a shader, and the attribute is set to be updated once per instantiation;
step 3.2, determining texture row coordinates of the vertexes by the row index vertex attributes, determining texture column coordinates by the unique designated vertex IDs in the single instantiation process, and constructing a mapping relation between the character vertexes and the texel positions;
and 3.3, sampling the texture based on the mapping relation to obtain the vertex corresponding texel.
The specific steps for creating the decoder in step 3 are:
step 3.4, acquiring a texel component by adopting a specified method according to the characteristics of the sampler;
Step 3.5, reducing the component value of the fractional part of the stored vertex coordinates to an initial interval to obtain the fractional part of the coordinates;
And 3.6, adding a decimal part to the component value of the integer part of the stored vertex coordinates, and reducing the component value to an initial interval to calculate a standardized coordinate value.
As some alternative embodiments:
And in the step 1.1, the word size takes a Point (Point) in the conventional typesetting as a unit, and the word size rule is consistent with the conventional typesetting.
The degenerate triangle connecting each triangle in step 1.3 is a triangle with area of 0, the manufacturing method is to copy the tail vertex of the former triangle to be connected and the head vertex element of the latter triangle in turn, and then merge the two triangle vertex sets according to the sequence of the vertex element of the former triangle and the copy and the latter triangle, so as to finish the link of the two triangle.
And 2.2.3, copying the last texel to be filled to the maximum width, and using a degenerate triangle method to force the area of a new triangle generated after the effective vertexes of the triangle to be 0 so as to cancel the influence of the ineffective vertexes on the drawing result.
The row index vertex attributes specified by the instantiation rendering in step 3.2 have the property that the value remains unchanged within one instantiation, thus ensuring that the texture sampler always points to a certain row of the texture in a single instantiation.
The vertex ID uniquely specified by the single instantiation in step 3.2 is a unique identifier of each vertex during the single instantiation, which ensures that the texture sampler directs different vertices to different columns of the texture within the single instantiation.
The remaining fraction is encoded as described in step 2.2.2, and the fraction is discarded after re-amplification while the integer fraction is retained. In this case, the two single-byte texel components can store 65536 different vertex coordinates at maximum, and if an application scene exceeding the description capability of the method exists, the new component can be used to store the expanded integer part of the discarded decimal part, so as to push the whole part until the requirement is met.
Embodiment four:
the embodiment provides a triangle belt character representation and instantiation rendering method based on texture, which comprises the following steps:
step 1, loading a font file, designating a font size by an application scene and an application requirement, generating all characters in the file to obtain a corresponding contour array, carrying out surface subdivision on contour array elements according to a triangle belt which is a basic primitive for constructing a graph to obtain a triangle belt array;
Furthermore, in the step 1, the character size takes a Point (Point) in typesetting printing as a unit, and the character size rule is consistent with the character printing typesetting rule; the method for acquiring the profile array in the step 1 is characterized in that the mathematical description of characters in a font file is extracted, the profile line expression under the specified font size is calculated, the profile array with the number of elements being greater than or equal to 1 is naturally divided by the number of the profile lines, the profile line traversing is carried out by a line turning Point method, the data filling of the profile array elements is completed, the triangle array is a method for storing triangle strip vertex data in an array mode, each vertex of the triangle strip vertex sequence is an element of the array, the vertex element is composed of two floating Point type (float) numbers and used for representing the space coordinates of the vertices (x and y), a degenerate triangle (DEGENERATE TRIANGLE) is a special triangle formed when three vertices forming the triangle are collinear, the triangle has the characteristic of 0 area, the characteristic can be used for avoiding the rendering of a transitional triangle connecting two triangle strips by a graphics card, the head and tail of the triangle strip refers to the first vertex and the last vertex of the ordered vertex sequence determined by the triangle strip, the manufacturing method for connecting each triangle strip vertex by using the degenerate triangle strip is that the vertex of the previous triangle strip to be connected, the vertex of the triangle strip to be copied and the vertex of the triangle strip to be connected, and the vertex of the triangle strip to be connected between the vertex of the triangle strip to be used as the vertex of the triangle strip.
Step 2, traversing each vertex of the character triangle strip vector data, carrying out standardized processing on vertex coordinates to establish a standardized vertex array of a single character, designating the maximum width and the height of textures of the character data, traversing each vertex element in the standardized vertex array, disassembling and storing the vertex elements into texture color components, filling the last color pixel by pixel to the maximum width for rows with colors which are not filled to the maximum width, and carrying out the operation of step 2 on the next triangle strip vector data so as to push until the number of the characters is equal to the maximum height of the textures or storing all the characters, thereby realizing the encoding of a plurality of characters and generating texture data files.
Further, the normalized (x, y) coordinate value range in step 2 is interval [0.0,1.0], after the normalized (x, y) coordinate value range is amplified to the subset range where the single byte texture color component can represent the data interval (the amplified coordinate value range is [0.0,255.0 ]), the integer part becomes an unsigned integer which can be represented and stored by 1 byte, the value range of the decimal part of the amplified (x, y) coordinate is interval [0.0,1.0], the integer part is amplified in the same way and becomes an unsigned integer which can be represented and stored by 1 byte, the last color is filled to the maximum width pixel by pixel, and a degenerate triangle method is used to force the new triangle area generated after the valid vertex of the triangle band to be 0 so as to cancel the influence of the invalid vertex on the drawing result.
Step 3, designing an instantiation method sampler and a decoder aiming at character textures in a GPU rendering process, if textures need to be analyzed in a geometry loader, then a texture row index of the character to be rendered can be used as a vertex attribute to be transmitted into a shader, the vertex attribute is set to be changed into the next numerical value after each instantiation, row coordinates of the character to be rendered in the textures are determined according to the row index vertex attribute appointed by the instantiation rendering, character texture column coordinates are determined according to vertex IDs uniquely appointed in a single instantiation process, textures are sampled based on the row coordinates to obtain corresponding vertex color values, when a font display requirement exists, the texture data file generated in the step 2 is read in by a CPU and transmitted to a display memory, the texture color corresponding to the appointed character vertex is found out by the sampler, the texture color corresponding to the appointed character is designed to be converted into vertex coordinate data by the decoder, and the vertex coordinate values are calculated to be standardized and coordinates, and decoding of vertex (x and y) coordinate values is completed.
Further, the sample and decoder for the character texture instantiation method in the GPU rendering process of step 3 may be completed during the vertex computation or primitive assembly stage of the rendering pipeline. Specifically, the sampling and decoding of the character texture may be implemented in a vertex loader or a geometry loader. For the vertex loader, extracting the texture color corresponding to each vertex through single instantiation of the unique appointed vertex ID and instantiation of the vertex attribute line index, and for the geometry loader, directly reading the texture, sequentially decoding and constructing the triangle band primitive.
Further, the line index vertex attribute specified by the instantiation rendering in step 3 is updated once for each instantiation, the relevant attribute remains unchanged during the single instantiation, so that the texture sampler can enable different vertices to point to the same line in the texture in the single instantiation, the vertex ID uniquely specified by the single instantiation is the unique identification of single vertex data during the single instantiation, the identification ensures that the texture sampler can enable different vertices to point to different columns in the texture in the single instantiation, the texture color component represents that if an interval is automatically represented according to a value range [0.0,1.0] in a display card, the encoding and decoding processes are not completely reciprocal, and x or y coordinates are standardized, namely, the coordinate value range is modified to be [ -1.0,1.0] from the interval [0.0 ].
And 4, assembling the single triangle zone primitives according to the vertex sequence decoded by the decoder, and rasterizing and coloring the triangle zones to complete the final display effect.
Fifth embodiment:
the modern vector font description method and lattice filling rendering method which are based on TrueType cannot meet the requirement of enabling the vector characteristics of characters to penetrate through the whole rendering process. The reason for this is that the storage form of character data in the CPU and the GPU is very different. The embodiment designs a special texture carrier which is used as a medium for transmitting data in hardware, and ensures the consistency of data storage forms of characters in a CPU and a GPU. The use and storage of data is accomplished by the codec form, and thus no changes are made to the storage form.
Based on the texture carrier, the embodiment directly designs a CPU-texture color data encoder and a GPU-vertex coordinate data decoder, and simultaneously derives an instantiation vertex and texture mapping sampler before character data triangle belt preprocessing and decoding before encoding. The character data is processed and operated through the content, so that the large-scale multiplexing of the characters is realized, and meanwhile, the efficient drawing of the characters with vector characteristics penetrating through the rendering flow is realized.
The following are embodiments of the invention given using OpenGL GLSL:
(1) CPU-texture color data encoder
(2) Instantiating vertex and texture mapping sampler (sampler 2 DRect)
(3) Instantiating vertex and texture mapping sampler (sampler 2D sampler)
(4) GPU-vertex coordinate data decoder
In the present specification, each embodiment is described in a progressive manner, and each embodiment is mainly described in a different point from other embodiments, and identical and similar parts between the embodiments are all enough to refer to each other. For the system disclosed in the embodiment, since it corresponds to the method disclosed in the embodiment, the description is relatively simple, and the relevant points refer to the description of the method section.
The principles and embodiments of the present invention have been described herein with reference to specific examples, which are intended to facilitate an understanding of the principles and concepts of the invention and are to be varied in scope and detail by persons of ordinary skill in the art based on the teachings herein. In view of the foregoing, this description should not be construed as limiting the invention.

Claims (3)

1. A texture-based triangle ribbon character representation and instantiation rendering method, the method comprising:
Acquiring the outline of a character to be drawn;
Converting the outline of each character into an ordered vertex sequence by utilizing a triangle strip;
encoding the ordered vertex sequences into textures by using a tree splitting method, and recording row indexes of each ordered vertex sequence in the textures;
transmitting the texture and the line index to a video memory;
Writing a decoder according to the corresponding relation between the texture and the ordered vertex sequence;
acquiring textures of specified characters, wherein the specified characters are characters with display requirements;
Decoding textures of the appointed characters by using the decoder to obtain an ordered vertex sequence;
Displaying the appointed character according to the ordered vertex sequence;
the step of acquiring the outline of the character to be drawn specifically comprises the following steps:
loading a font file, and generating all characters in the font file according to a designated font size;
Acquiring the outline of each character;
the method for converting the outline of each character into an ordered vertex sequence by utilizing a triangle strip specifically comprises the following steps:
performing cam-band-based surface subdivision on each part forming the outline to obtain a plurality of cam bands;
Connecting the head and tail of the triangular bands by using a degenerate triangular method to obtain triangular band representations of the outlines, namely, single triangular bands representing each outline;
Each vertex of the single triangular belt is formed into an ordered vertex sequence according to the inherent sequence of the triangular belt;
The method for encoding the ordered vertex sequences into textures by using a tree splitting method, and recording the row index of each ordered vertex sequence specifically comprises the following steps:
Coding each vertex coordinate of the ordered vertex sequence into RGBA color information by using a tree splitting method;
storing all vertexes of a single character to a designated row in a texture bitmap, and recording row indexes of the designated row to obtain textures and row indexes;
the displaying the appointed character according to the ordered vertex sequence specifically comprises the following steps:
And according to the ordered vertex sequence, applying coordinate transformation and color matching schemes required by drawing, and completing character drawing by using a triangle strip drawing method of the GPU.
2. The texture-based triangle tape character representation and instantiation rendering method of claim 1, further comprising, after said converting the outline of each character to an ordered vertex sequence using a triangle tape:
and carrying out standardization processing on each vertex coordinate of the ordered vertex sequence.
3. A texture-based triangle ribbon character representation and instantiation rendering system, the system comprising:
a contour obtaining unit for obtaining the contour of the character to be drawn;
the step of acquiring the outline of the character to be drawn specifically comprises the following steps:
loading a font file, and generating all characters in the font file according to a designated font size;
Acquiring the outline of each character;
an ordered vertex sequence acquisition unit for converting the outline of each character into an ordered vertex sequence by using a triangle strip;
the method for converting the outline of each character into an ordered vertex sequence by utilizing a triangle strip specifically comprises the following steps:
performing cam-band-based surface subdivision on each part forming the outline to obtain a plurality of cam bands;
Connecting the head and tail of the triangular bands by using a degenerate triangular method to obtain triangular band representations of the outlines, namely, single triangular bands representing each outline;
Each vertex of the single triangular belt is formed into an ordered vertex sequence according to the inherent sequence of the triangular belt;
the encoding unit is used for encoding the ordered vertex sequences into textures by using a tree splitting method and recording row indexes of each ordered vertex sequence in the textures;
The method for encoding the ordered vertex sequences into textures by using a tree splitting method, and recording the row index of each ordered vertex sequence specifically comprises the following steps:
Coding each vertex coordinate of the ordered vertex sequence into RGBA color information by using a tree splitting method;
storing all vertexes of a single character to a designated row in a texture bitmap, and recording row indexes of the designated row to obtain textures and row indexes;
the transmission unit is used for transmitting the texture and the line index to a video memory;
a decoder writing unit, configured to write a decoder according to a correspondence between the texture and the ordered vertex sequence;
the appointed character texture acquisition unit is used for acquiring textures of appointed characters, wherein the appointed characters are characters with display requirements;
The decoding unit is used for decoding textures of the appointed characters by utilizing the decoder to obtain an ordered vertex sequence;
a display unit configured to display the specified character according to the ordered vertex sequence;
the displaying the appointed character according to the ordered vertex sequence specifically comprises the following steps:
And according to the ordered vertex sequence, applying coordinate transformation and color matching schemes required by drawing, and completing character drawing by using a triangle strip drawing method of the GPU.
CN202210250365.4A 2022-03-15 2022-03-15 A texture-based triangle character representation and instantiation rendering method and system Active CN114627212B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210250365.4A CN114627212B (en) 2022-03-15 2022-03-15 A texture-based triangle character representation and instantiation rendering method and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210250365.4A CN114627212B (en) 2022-03-15 2022-03-15 A texture-based triangle character representation and instantiation rendering method and system

Publications (2)

Publication Number Publication Date
CN114627212A CN114627212A (en) 2022-06-14
CN114627212B true CN114627212B (en) 2025-04-22

Family

ID=81902639

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210250365.4A Active CN114627212B (en) 2022-03-15 2022-03-15 A texture-based triangle character representation and instantiation rendering method and system

Country Status (1)

Country Link
CN (1) CN114627212B (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115270032B (en) * 2022-08-10 2023-04-25 上海图客科技有限公司 Dynamic high-definition text display method and system based on WebGL
CN115272535B (en) * 2022-08-19 2024-07-05 上海新迪数字技术有限公司 Method and system for drawing consistency of DWG drawing fonts under Web
CN116245999A (en) * 2023-05-09 2023-06-09 小米汽车科技有限公司 Text rendering method and device, electronic equipment and readable storage medium
CN117011178B (en) * 2023-08-08 2025-06-10 北京茵沃汽车科技有限公司 Image rendering method and device, electronic device and storage medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101689203A (en) * 2007-06-29 2010-03-31 佳能株式会社 Image processing apparatus, image processing method, and computer program
CN103415872A (en) * 2011-03-09 2013-11-27 想象技术有限公司 Compression of a tessellated primitive index list in a tile rendering system

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106056661B (en) * 2016-05-31 2018-08-28 钱进 Three-dimensional graphics renderer engine based on Direct3D 11
CN113177172B (en) * 2021-04-26 2024-09-27 上海新迪数字技术有限公司 WebGL-based method for efficiently displaying large-batch three-dimensional characters

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101689203A (en) * 2007-06-29 2010-03-31 佳能株式会社 Image processing apparatus, image processing method, and computer program
CN103415872A (en) * 2011-03-09 2013-11-27 想象技术有限公司 Compression of a tessellated primitive index list in a tile rendering system

Also Published As

Publication number Publication date
CN114627212A (en) 2022-06-14

Similar Documents

Publication Publication Date Title
CN114627212B (en) A texture-based triangle character representation and instantiation rendering method and system
US8786606B2 (en) Point containment for quadratic Bèzier strokes
US7872648B2 (en) Random-access vector graphics
Sen et al. Shadow silhouette maps
JP4101275B2 (en) Depth tracking method in scan line based raster image processor
US8717366B2 (en) Method and apparatus for rendering a stroked curve
US7609263B2 (en) Drawing processing apparatus and method for compressing drawing data
US8379025B1 (en) Methods and apparatus for rendering vector art on graphics hardware
US8018460B2 (en) Vector graphics shape data generation apparatus, rendering apparatus, method, and program
US20060044312A1 (en) Rendering outline fonts
JP2005100177A (en) Image processor and its method
KR102666054B1 (en) Graphics processing systems
Nehab et al. Random-access rendering of general vector graphics
US20100097383A1 (en) Graphics processing systems
US10540789B2 (en) Line stylization through graphics processor unit (GPU) textures
JP2005100176A (en) Image processor and its method
US20230082839A1 (en) Rendering scalable raster content
US20230081389A1 (en) Rendering scalable multicolored vector content
Yao et al. Resolution independent real-time vector-embedded mesh for animation
Sanzharov et al. Vector Textures Implementation in Photorealistic Rendering System on GPU
Santina Resolution independent nurbs curves rendering using programmable graphics pipeline
Nehab el Progra

Legal Events

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