يعرف الكثير من الناس مشكلة الرسومات ثلاثية الأبعاد - عدم وجود حلول خفيفة الوزن عبر الأنظمة الأساسية في قضية إخراج النص.
تسمح لك معظم عمليات التنفيذ باستخدام الخط المحدد كنسيج. تطبق مكتبة ttf2mesh المنشورة طريقة أخرى - فهي تحول أحرف ناقلات خط تروتايب إلى كائنات الشبكة. هذا يسمح لك بعرض النص كمجموعة من المثلثات.

هذا النهج له مزايا وعيوب مهمة. جلب تعقيد المهمة الموصوفة أدناه والتفكير في الأشكال الرائعة لتصميم الخط الكثير من المتعة في التطوير. اتمنى ان تستمتع بها ايضا
الانغماس في المشكلة
على موقع stackoverflow ، قد تصادف السؤال "كيف ترسم النص باستخدام طرق OpenGL فقط؟" . تبدأ الإجابة المفصلة عليها بعبارة "لماذا تكون صعبة". سأعطي ترجمة موجزة لهذه الإجابة ، لأنها أفضل - من الصعب وصف المشكلة.
الخطوط الشائعة (مثل TrueType أو OpenType) لها تنسيق متجه لتمثيل الأحرف: يتم تعريف الخطوط العريضة لها بمجموعة من منحنيات Bezier.

— OpenGL, (, , ).
, CPU, — OpenGL- . , . :

, . , web- (CSS-sprites).
FOSDEM 2014, , :
- : . GPU . : ; O(N log N).
- . : , . Resolution independent cubic bezier drawing on GPU (Blinn/Loop)
- 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) . , . , , .. " " , , . , .
, . , :
: ; .
. "" "", .
ttf2mesh
" ". ttf2mesh — (ttf2mesh.h ttf2mesh.c) C99. , :
API. , ttf2mesh.h doxygen-. ttf_export_to_obj, Wavefront .obj. , . examples - ttf2obj.
:
- TTF- ,
- ( )
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:
UNICODEBasic 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 وهي متاحة هنا . آمل أن تكون مفيدة اجتماعيا.