Istnieje wiele pytań dotyczących renderowania czcionek OpenGL, wiele z nich jest zadowolonych z atlasów tekstur (szybko, ale źle) lub tekstur tekstur (tylko tekst stały).Renderowanie tekstu/czcionki w OpenGLES 2 (iOS - CoreText?) - opcje i najlepsza praktyka?
Jednak te podejścia są słabe i wydają się być przestarzałe (a co z używaniem shaderów do robienia tego lepiej/szybciej?). OpenGL 4.1 jest to doskonałe pytanie, patrząc na "co należy użyć dzisiaj?":
What is state-of-the-art for text rendering in OpenGL as of version 4.1?
Więc co powinniśmy używać 2 dzisiaj na iOS GL ES?
Jestem rozczarowany, że wydaje się, że nie ma rozwiązania open source (lub nawet komercyjnego). Wiem, że wiele drużyn łapie to i spędza tygodnie czasu na dev wymyślaniu tego koła, stopniowo ucząc się, jak kern i przestrzeń itd. (Ugh) - ale musi istnieć lepszy sposób niż ponowne pisanie całych "czcionek" od zera?
O ile widzę, istnieją dwie części to:
- jaki sposób renderowania tekstu przy użyciu czcionek?
- Jak wyświetlić dane wyjściowe?
Za 1 (jak renderować), Apple zapewnia WIELU sposobów na uzyskanie "poprawnego" renderowanego wyjścia - ale te "łatwe" nie obsługują OpenGL (być może niektóre z nich to robią - np. Czy istnieje prosty sposób mapowania wyjścia CoreText do OpenGL?).
Dla 2 (jak do wyświetlania), mamy shadery, mamy VBOs mamy glifów-faktur, mamy odnośników-faktur i innych tecniques (np OpenGL 4.1 rzeczy związane powyżej?)
Tutaj są dwa wspólne OpenGL zbliża znam:
- texture atlas (wykonywali wszystkie glify raz, a następnie renderowanie 1 x teksturą quad na znak, ze wspólnego tekstury)
- to jest złe, chyba że” ponownie używają "czcionki bitmapowej" z lat 80. (a nawet wtedy: atlas tekstury wymaga więcej pracy, niż mogłoby się wydawać, jeśli potrzebujesz jej do nietrywialnych czcionek). farbowanie, waga, atlasy itp texture fail)
- Stały ciąg (użyj dowolnej klasy firmy Apple do renderowania poprawnie, a następnie screenshot tworzenie kopii obrazu-dane i przesłać jako tekstury)
- w kategoriach ludzkich, to jest szybkie. W renderowaniu ramek jest to bardzo, bardzo powolne.Jeśli zrobisz to z dużo zmieniającym tekst, współczynnik rama przechodzi przez podłogę
- Technicznie, to w większości poprawne (nie do końca: można stracić trochę informacji w ten sposób), ale niezwykle nieefektywne
I Wcześniej też widział, ale słyszał zarówno dobre i złe rzeczy o:
- Wyobraźnia/PowerVR «Print3D» (Link złamane) (od facetów które produkują GPU ale ich witryna została przeniesiona/usunął stronę renderowania tekstu!)
- FreeType (wymaga wstępnego przetwarzania, interpretacji, dużej ilości kodu, dodatkowych bibliotek?)
- ... i/lub FTGL http://sourceforge.net/projects/ftgl/ (pogłoski: wolne? powozik? nie aktualizowana od dłuższego czasu?)
- Font-Stash http://digestingduck.blogspot.co.uk/2009/08/font-stash.html (wysoka jakość, ale bardzo wolno?) 1.
obrębie własnych OS/standardowych bibliotek Apple'a, wiem z kilku źródeł renderowania tekstu. NB: Użyłem większość z nich szczegółowo na 2D renderowania projektów, moje wypowiedzi na temat ich wyprowadzanie inny renderowania są oparte na bezpośrednim doświadczeniu
- CoreGraphics z NSString
- najprostszych wszystko: render „w CGRect”
- wydają się być nieco szybsza wersja«stałe string»ludzie podchodzą polecam (choć można się spodziewać, że będzie tak samo)
- UILabel i UITextArea ze zwykłym tekstem
- Uwaga: NIE są takie same! Nieznaczne różnice w jaki czynią one tekst smae
- NSAttributedString, świadczonych jednemu z powyższym
- jeszcze: renderuje różnie (różnice znam są dość subtelne i klasyfikowane jako „pluskwy”, różne SO pytania o tym)
- CATextLayer
- hybryda pomiędzy czcionkami iOS i starych C renderowania. Wykorzystuje "nie do końca" toll-free-zmostkowane CFFont/UIFont, który wykazuje pewne różnice bardziej renderowania/obcość
- CoreText
- ... najlepsze rozwiązanie? Ale bestia z własnej ...
Czy dokonano postępu? podążam twoim śladem. ale ... –
Mam to działa, z kilkoma błędami. Obsługuję niektóre bardzo fantazyjne czcionki i glify wieloliterowe, ale wciąż mam kilka drobnych błędów. Zapisuję je jako posty na blogu krok po kroku, ale część z tekstem nie będzie gotowa do świąt Bożego Narodzenia 2013 lub wiosny 2014, przepraszam. Blog pod adresem http://t-machine.org/index.php/2013/09/08/opengl-es-2-basic-drawing/ – Adam
Tak, chętnie usłyszę o twoim układzie tekstu. Czy do tej pory działało tak dobrze, jak powinno? – kamziro