Ttf2mesh рд▓рд╛рдЗрдмреНрд░реЗрд░реА - рдЯреНрд░реВ рдЯрд╛рдЗрдк рдлрд╝реЙрдиреНрдЯ рдХреЛ рдЧреНрд░рд┐рдб рдореЗрдВ рдмрджрд▓реЗрдВ

рдХрдИ рд▓реЛрдЧ рддреНрд░рд┐-рдЖрдпрд╛рдореА рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ - рдкрд╛рда рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдореБрджреНрджреЗ рдореЗрдВ рд╣рд▓реНрдХреЗ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рдХрдореАред


рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЖрдкрдХреЛ рдЪрдпрдирд┐рдд рдлрд╝реЙрдиреНрдЯ рдХреЛ рдмрдирд╛рд╡рдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдкреНрд░рдХрд╛рд╢рд┐рдд ttf2mesh рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рд▓рд╛рдЧреВ рдХрд░рддреА рд╣реИ - рдпрд╣ рдЯреНрд░реВ рдЯрд╛рдЗрдк рдлрд╝реЙрдиреНрдЯ рд╡реЗрдХреНрдЯрд░ рдХреИрд░реЗрдХреНрдЯрд░ рдХреЛ рдЧреНрд░рд┐рдб рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдкрд╛рда рдХреЛ рддреНрд░рд┐рдХреЛрдг рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред


рдЫрд╡рд┐


рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдлрд╛рдпрджреЗ рдФрд░ рдиреБрдХрд╕рд╛рди рджреЛрдиреЛрдВ рд╣реИрдВред рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рдХрд╛рд░реНрдп рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдФрд░ рдлрд╝реЙрдиреНрдЯ рдбрд┐рдЬрд╛рдЗрди рдХреЗ рд╢рд╛рдирджрд╛рд░ рд░реВрдкреЛрдВ рдХреЗ рдЪрд┐рдВрддрди рдиреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдмрд╣реБрдд рдЖрдирдВрдж рд▓рд╛рдпрд╛ред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдЖрдкрдХреЛ рднреА рдордЬрд╛ рдЖрдПрдЧрд╛ред


рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рдбреВрдмрдирд╛


рд╕реНрдЯреИрдХрдУрд╡рд░рдлрд╝реНрд▓реЛ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░, рдЖрдк рдЗрд╕ рд╕рд╡рд╛рд▓ рдкрд░ рдЖ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ "рдХреЗрд╡рд▓ рдУрдПрдирдЬреАрд╕реАрдПрд▓ рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╛рда рдХреИрд╕реЗ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░реЗрдВ?" ред рдЗрд╕рдХрд╛ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдЬрд╡рд╛рдм "рдХреНрдпреЛрдВ рдпрд╣ рдХрдард┐рди рд╣реИ" рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдореИрдВ рдЗрд╕ рдЙрддреНрддрд░ рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЕрдиреБрд╡рд╛рдж рджреВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмреЗрд╣рддрд░ рд╣реИ - рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рд╢рд╛рдпрдж рд╣реА рд╕рдВрднрд╡ рд╣реЛред


рд╕рд╛рдорд╛рдиреНрдп рдлрд╝реЙрдиреНрдЯ (рдЬреИрд╕реЗ рдЯреНрд░реВ рдЯрд╛рдЗрдк рдпрд╛ рдУрдкрди рдЯрд╛рдЗрдк) рдореЗрдВ рдкрд╛рддреНрд░реЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реЗрдХреНрдЯрд░ рдкреНрд░рд╛рд░реВрдк рд╣реЛрддрд╛ рд╣реИ: рдЙрдирдХреА рд░реВрдкрд░реЗрдЦрд╛ рдмреЗрдЬрд┐рдпрд░ рдШрдЯрддрд╛ рдХреЗ рдПрдХ рд╕реЗрдЯ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИред


рдЫрд╡рд┐


тАФ OpenGL, (, , ).


, CPU, тАФ OpenGL- . , . :


рдЫрд╡рд┐


, . , web- (CSS-sprites).


FOSDEM 2014, , :


  1. : . GPU . : ; O(N log N).
  2. . : , . Resolution independent cubic bezier drawing on GPU (Blinn/Loop)
  3. OpenVG. : API , (. OpenGL, OpenVG. Draw text OpenVG implementation)

, 3d- 2016 . .. "Distance fields" ( , . ). .


FreeType


FreeType . FTGL, API, "Distance fields" .
тАФ libgdx.



github.com/nothings/stb/blob/master/stb_truetype.h
www.angelcode.com/products/bmfont


, . (DDS, PNG) . тАФ .


FOSDEM 2014 .



: тАФ ? 6000 ( Ubuntu ):


рдЫрд╡рд┐


2.5 (Times New Roman , 15000 ).


, , ( )? ( , , , GPU ), .


O(N log N)
, , . , ( ) тАФ . log(N) . , . , , .. " " , O(N2), O(N). , O(N).


, . , :


  • (, 3d-)

: ; .


. "" "", .


ttf2mesh


" ". ttf2mesh тАФ (ttf2mesh.h ttf2mesh.c) C99. , :


ttf_list_fonts ttf_list_system_fontsttf_free_list
ttf_load_from_file ttf_load_from_memttf_free
ttf_glyph2meshttf_free_mesh

API. , ttf2mesh.h doxygen-. ttf_export_to_obj, Wavefront .obj. , . examples - ttf2obj.


:


  1. TTF- ,
  2. ( )

  3. 5.1.
    5.2. ( )
    5.3.
    5.4.

TTF-


Microsoft (OpenType specification). OpenType- (.otf) тАФ TrueType- (.ttf), , . , , TTF, , OTF TTC.


. ( ELF ) TrueType тАж . тАж , , .


TTF- Windows 7 font list Ubuntu 18.04.4 LTS ( 500 TTF ).
TrueType тАФ . .



тАФ , . outline quality .


рдЫрд╡рд┐


.


ttf2mesh . TTF_QUALITY_LOW, TTF_QUALITY_NORMAL TTF_QUALITY_HIGH. . .


рдЫрд╡рд┐


"Q" 76, 97 175 .



, . тАФ . . , . . :



  • .

, , U+2592 (тЦТ). . , , Ctrl+V. тАж : , .
, ( ), EPSILON.


тАФ .
. , . , - , . . ?


тАФ .
Microsoft Apple. . , Microsoft Apple (. Overlapping contours) .


, ( , ?). тАФ , . , even-odd , nonzero.


, 0.1% Windows 7. 497931 680 UNICODE:


UNICODE

Basic Latin тАФ 14 errors
Latin-1 Supplement тАФ 9 errors
Latin Extended-A тАФ 2 errors
Greek and Coptic тАФ 2 errors
Thai тАФ 11 errors
Letterlike Symbols тАФ 1 errors
Mathematical Operators тАФ 1 errors
Block Elements тАФ 1 errors
Geometric Shapes тАФ 1 errors
Hiragana тАФ 1 errors
Enclosed CJK Letters and Months тАФ 1 errors
CJK Unified Ideographs Extension A тАФ 74 errors
CJK Unified Ideographs тАФ 555 errors
Private Use Area тАФ 3 errors
CJK Compatibility Ideographs тАФ 4 errors


, 36 497931 ( 0.01%). "Basic Latin", : IrisUPC, KodchiangUPC, LilyUPC, Footlight MT Light, Kunstler Script, Papyrus, Parchment Viner Hand ITC. UPC (Unity Progress Company).


, . , .



. "B", , 3 : - . "" 1 -. - . .


рдЫрд╡рд┐


, , . U+00A2 тАФ (), , ().


) рдЫрд╡рд┐ ) рдЫрд╡рд┐


. тАФ , . тАж . , . тАФ "/" "C". . тАФ , - "" .



, , . . . .


рдЫрд╡рд┐


1) (y). p19, p15 .
2) . . , advancing front, . . .
3) , , 2 . , .
4) .3 , . p2.
5) . , . p5.


( Point event) , 2008 V. Domiter & B. ┼╜alik "SweepтАРline algorithm for constrained Delaunay triangulation" (DOI: 10.1080/13658810701492241).


( ) , . , , . .


. , .


рдЫрд╡рд┐


( X тАФ , Y тАФ ).


, , ( ) O(N). , O(N log N) , , . .


, , 2000 . "Tibetan Machine Uni" U+0FC7 (Tibetan Symbol Rdo Rje Rgya Gram) :


:


рдЫрд╡рд┐


OpenGL MSAA:


рдЫрд╡рд┐


...



. ( , , ) . , . .


ttf2mesh , . OBJ . , SVG , , PostScript.


. тАФ , .


рдЫрд╡рд┐


Ttf2mesh рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ MIT рд▓рд╛рдЗрд╕реЗрдВрд╕ рд╣реИ рдФрд░ рдпрд╣рд╛рдБ рдЙрдкрд▓рдмреНрдз рд╣реИ ред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рд╕рд╛рдорд╛рдЬрд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред


All Articles