True Type Font(.TTF) Parsing and rendering in OpenGL from scratch

  Переглядів 14,179

Myvar

Myvar

4 роки тому

In this brand new series we start writing our own text editor/IDE. We will start with an illustration followed by implementing True Type Font(.TTF) Parsing and rendering in opengl from scratch and ending with font raterization.
GitHub:
github.com/Myvar/MyvarEdit
Website:
myvar.cloud

КОМЕНТАРІ: 32
@doot2359
@doot2359 2 роки тому
Wow! You sumed up the whole Apple's and MSDN's documentation combined in that intro.
@Myvar
@Myvar 2 роки тому
thx
@killymxi
@killymxi 2 роки тому
"If you wish to make an apple pie from scratch, you must first invent the universe." I've got this in my UKposts feed somehow. While I'm not necessarily agree with the motivation, I think it's going to be a great journey.
@tadeohepperle7514
@tadeohepperle7514 3 місяці тому
I am not sure about using such a high number of triangles for each glyph, especially when rendering hundreds of them to the screen in a text editor with different positions etc... But it surely is an interesting approach.
@user-pm4vd6ij8i
@user-pm4vd6ij8i Рік тому
AWESOME! This video is AWESOME! You are suck a great teacher. Thank you!
@unknownuser457gll4
@unknownuser457gll4 Рік тому
Thank you so much for the vid. Ill add you in my prayers.
@augnix888
@augnix888 5 місяців тому
Wow nice work!
@Myvar
@Myvar 5 місяців тому
Thx
@RainDropsMusic
@RainDropsMusic 2 роки тому
Great video, I really learned a lot.
@jaysistar2711
@jaysistar2711 Місяць тому
Was there any reason that you didn't want to use a multichannel signed distanc field? Using bilinear filtering and an MSDF shader gives you perfect scaling.
@colly6022
@colly6022 4 місяці тому
great video! btw, bezier is pronounced "bez-zee-ay", but native english speakers will still understand what you mean by "biz-zee-er". the word comes from french, which is why its pronounced like that.
@NoNameAtAll2
@NoNameAtAll2 2 місяці тому
so... english speakers should just start writing the name as bezieh
@louis-alexandremonfette4491
@louis-alexandremonfette4491 Рік тому
What algorithm do you use to convert the points (shapes) into triangles? Do you use a lib? Or do you do it yourself?
@Myvar
@Myvar Рік тому
I Use a lib
@CL-pg6iu
@CL-pg6iu Рік тому
Hi, i was wondering how you generated the triangles from the points extracted from the ttf glyphs? Does the algorithm that you used have a name?
@Rice7th
@Rice7th Рік тому
I think it is called Delaunay Triangulation. Have a look at this: en.wikipedia.org/wiki/Delaunay_triangulation
@tobihendrix1324
@tobihendrix1324 2 місяці тому
If you really desire pure performance, you should not render the Text frame by frame with open gl like that. Better use your procedure and store the renderered Glyphs into a Texture, or a TextureArray. Then address the right glyph via an index in the shader. And also keep culling in mind even when printing simple text - Opening large files could be painfull otherwise. But great approach!
@vernongrant4710
@vernongrant4710 Рік тому
Fantastic, are you South African?
@Myvar
@Myvar Рік тому
thx, I am from SA yes
@vernongrant4710
@vernongrant4710 Рік тому
@@Myvar Nice, I'm moving down to Cape Town later this year and I'm quite excited about it. Anyway... thanks for the helpful videos and have a good one!
@r.faj.5636
@r.faj.5636 6 місяців тому
Ay lekker to see fellow south african's. I also live in Cape Town lol. Very happy that the bokke won the WRC. Thanks for the true type explanation. Very concise and well explained.
@Myvar
@Myvar 5 місяців тому
@@r.faj.5636 Cool dude lekker
@joseloeza371
@joseloeza371 Місяць тому
It a excellent video. But the lack of information and many things like what libraries and algorithms etc etc makes so difficult to achieve for beginners. You can remake and do more smoothly with more details about regarding tools.... Thanks
@timtreichel3161
@timtreichel3161 Рік тому
Wait, why are your rendering the character with a bunch of triangles. I thought the normal (and probably way faster) way to do this is to convert the character into a texture and then draw a quad, with the character as texture. I think the only downside to this is, that when you resize your characters, at some point you probably have to recalculate your textures, because the resolution is to low/high, for its size. But that way you would only need 2 Triangles for every character and I think it will be much faster to render text. That said, I'm not an expert, I've never done something like this, so maybe all I'm saying is wrong.
@dustinsmith842
@dustinsmith842 Рік тому
probably because no
@brendensmart2928
@brendensmart2928 Рік тому
thats bitmap rendering
@ooodummy
@ooodummy Рік тому
You’re correct
@youtubehandlesux
@youtubehandlesux Рік тому
Don't even need the recalculate part if you really want to, just use mipmapping and trilinear filtering, most game engines use this technique, but browsers use recalculation I think
@boywithacoin
@boywithacoin Рік тому
i guess it depends on the use-case. If you're trying to render fonts for in-game, applying texture on a quad mesh works.
@Dogoeu
@Dogoeu Рік тому
Sup man i am your teamate from valorant (neon)
@Myvar
@Myvar 5 місяців тому
Hahaha
The Math Behind Font Rasterization | How it Works
16:07
GamesWithGabe
Переглядів 168 тис.
Legendary Font Rendering
1:08:46
Tsoding Daily
Переглядів 19 тис.
Артем Пивоваров х Klavdia Petrivna - Барабан
03:16
Artem Pivovarov
Переглядів 4,3 млн
Bro smelt it & passed out 😂 #comedy
00:10
MrTalalaa
Переглядів 7 млн
ISSEI funny story😂😂😂Strange World | Magic Lips💋
00:36
ISSEI / いっせい
Переглядів 19 млн
Coding Challenge 166: ASCII Text Images
22:42
The Coding Train
Переглядів 1,1 млн
I promise this story about fonts is interesting
29:35
struthless
Переглядів 1,5 млн
Introduction to shaders: Learn the basics!
34:50
Barney Codes
Переглядів 251 тис.
host ALL your AI locally
24:20
NetworkChuck
Переглядів 160 тис.
What are Fonts and Typefaces?
6:05
Techquickie
Переглядів 147 тис.
I tried coding my own graphics engine
4:23
Garbaj
Переглядів 177 тис.
The Math behind (most) 3D games - Perspective Projection
13:20
Brendan Galea
Переглядів 354 тис.
ALL OF THE UI! // Hazel Dev Log
20:22
The Cherno
Переглядів 36 тис.
The FASTEST Cycles Renders you can get in Blender!
17:03
Kaizen
Переглядів 140 тис.
Something Strange Happens When You Follow Einstein's Math
37:03
Veritasium
Переглядів 6 млн
Samsung or iPhone
0:19
rishton_vines😇
Переглядів 531 тис.
Распаковка айфона под водой!💦(🎥: @saken_kagarov on IG)
0:20
Взрывная История
Переглядів 10 млн
Клавиатура vs геймпад vs руль
0:47
Balance
Переглядів 550 тис.
Самый маленький игровой ПК
0:46
ITMania - Сборка ПК
Переглядів 580 тис.