Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Problem mit glColorMask(true, true, true, false); (https://www.delphipraxis.net/181315-problem-mit-glcolormask-true-true-true-false-%3B.html)

Medium 6. Aug 2014 10:45

AW: Problem mit glColorMask(true, true, true, false);
 
Öhm, davon war ich sogar schon ausgegangen - es ging doch bisher in deinen Threads immer nur um Text und dessen "Ausstanzen" zum Rendern. Aber das passiert, wenn man seine Fragen und Problembeschreibungen immer so kurz macht ;)

luisk 6. Aug 2014 13:40

AW: Problem mit glColorMask(true, true, true, false);
 
Zitat:

Zitat von Medium (Beitrag 1267657)
Öhm, davon war ich sogar schon ausgegangen - es ging doch bisher in deinen Threads immer nur um Text und dessen "Ausstanzen" zum Rendern. Aber das passiert, wenn man seine Fragen und Problembeschreibungen immer so kurz macht ;)

damit wäre es prinzipiell auch gegangen, ohne die z-Sortierung am Ende (die ich für das übliche transparente schon hatte)
Delphi-Quellcode:
glAlphaFunc(GL_GREATER, 0.3);
 glEnable(GL_ALPHA_TEST);
      glcolor3f(1,1,1);
      glEnable(GL_TEXTURE_2D);
          glListBase(p_Textur_Schriftart.gl_List_base_gross);
          glCallLists (length(in_text), GL_UNSIGNED_BYTE, @in_text[1]);
      gldisable(GL_TEXTURE_2D);
 glDisable(GL_ALPHA_TEST);
allerdings mit ner ruppigen Glättung


Meiner Meinung nach sollte OpenGL mal gescheite Vektorschriften einführen.
das, was da vorhanden ist wird beim Verkleinern zu früh unscharf (z.b. sieht ein E schon zu früh aus wie ein F oder gedrehtes F usw.....)
.... und das im Jahr 2014 bei den Hightechgrafikkarten :(

Medium 6. Aug 2014 14:25

AW: Problem mit glColorMask(true, true, true, false);
 
OpenGL ist halt keine Engine, sondern wirklich nur das eigentliche Zeichnen an und für sich. Mehr will und soll es auch nicht sein. Es gibt dir aber durchaus die Freiheit, ein Vektor-Font-System nach deinen Wünschen damit zu implementieren. Das ist auch gleichzeitig einer der Vorteile (und Ziele) bei nackten 3D APIs: Dir wird an keiner Stelle zu fest vorgegeben wie zu verfahren ist, man kann alles auf zig Wegen lösen, eben so wie es einem selbst am besten passt. Ich sehe einen Font hier ganz klar nicht im Verantwortungsbereich der API, aber es gibt sicherlich fertige Klassen oder ganze Engines, die eine solche Funktion mit bringen.

Mit den nackten APIs arbeiten meistens ohnehin fast nur noch die Entwickler der Engines. Nahezu alle Anwendersoftware setzt auf diesen auf. Alleine schon um die Abstraktion hinzubekommen, ein und das selbe Programm auf OGL, D3D, Softwareemulation oder welcher API auch immer betreiben zu können. (Natürlich gibt es oft auch In-House Entwicklungen bzgl. der Engine, aber nicht selten ist deren entwickelnder Personenkreis ein anderer als der, der die eigentlichen Programme/Spiele schreibt.)

Edit: Probier bei deinen Font-Texturen doch mal eine andere Interpolation aus. Linear ist gerade beim Verkleinern glaube ich eher nicht so schön. Und im schlimmsten Fall ließe sich auch noch eine von Hand optimierte kleinere Version des Fonts als Textur vorhalten, und du switched je nach dem wie groß der Text wird. (Ganz grob ähnlich wie es TrueType auch macht.)

luisk 6. Aug 2014 18:31

AW: Problem mit glColorMask(true, true, true, false);
 
Zitat:

Zitat von Medium (Beitrag 1267745)
Und im schlimmsten Fall ließe sich auch noch eine von Hand optimierte kleinere Version des Fonts als Textur vorhalten, und du switched je nach dem wie groß der Text wird. (Ganz grob ähnlich wie es TrueType auch macht.)

genau das werde ich tun. Schau mal auf #12
Delphi-Quellcode:
glListBase(p_Textur_Schriftart.gl_List_base_gross);
dazu gibt es dann noch:
Delphi-Quellcode:
glListBase(p_Textur_Schriftart.gl_List_base_klein);
:thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:38 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz