Text in OpenGL. Mal wieder?



  • iKartoffel schrieb:

    (Und falls ich das doch mal brauchen sollte habe ich da eine Idee: In eine Textur rendern und die dann am Ende auf den Bildschirm kleben.)

    👍 Mache ich mit statischem Text genauso. Nur bei dynamischen Text, wie als bsp. FPS oder Score rendere ich einzelne Sprites.



  • So, ich habe jetzt mal alles implementiert und es funktioniert soweit. Zumindest solange die Schrift groß ist. Mache ich sie kleiner, verwischt die leider sehr mit dem Hintergrund, bis man den Text kaum noch lesen kann. (Die Schrift ist dann in etwa so groß wie hier im Forum.)
    Irgendwelche Tipps hier? Automatische Mipmaps? Mehr Texturen? Andere Einstellungen? Tricks im Shader?

    PS:
    Ich prüfe im fragment Shader den alpha Wert und "discart;"e dann bei entsprechendem Wert. Ist das eine gute Vorgehensweise? Weil wenn ich das nicht mache, wird das einfach schwarz gerendert.



  • Wie wärs damit: Ne kleinere Schriftart verwenden statt die Textur zu verzerren 😉

    iKartoffel schrieb:

    Ich prüfe im fragment Shader den alpha Wert und "discart;"e dann bei entsprechendem Wert. Ist das eine gute Vorgehensweise? Weil wenn ich das nicht mache, wird das einfach schwarz gerendert.

    Das discard; fällt vermutlich nicht wirklich ins Gewicht. Aber wieso nicht einfach nur Alphablending und gut ist?



  • dot schrieb:

    Wie wärs damit: Ne kleinere Schriftart verwenden statt die Textur zu verzerren 😉

    Weil ich dann die gleiche Schriftart in x Größen mitliefern muss.. kann ich nicht eine große Textur benutzen und das dann runter rechnen? (Also halbwegs komfortabel)

    dot schrieb:

    Das discard; fällt vermutlich nicht wirklich ins Gewicht. Aber wieso nicht einfach nur Alphablending und gut ist?

    Ich bin auf das gestoßen und habe dem Typen erst mal blind vertraut. Keine Ahnung was ich jetzt davon verwenden werde, ist ja erst mal wohl auch unwichtig, wenn ich Performanceprobleme habe teste ich das mal. Wichtiger ist: Die obrige Frage. 😃 Ich will doch nicht ernsthaft für x Schriftgrößen die Bilder mitliefern?



  • iKartoffel schrieb:

    Ich will doch nicht ernsthaft für x Schriftgrößen die Bilder mitliefern?

    Warum nicht? Mehr als 2-3 Texturen brauchst nicht und wieviel ist das? 1MB pro Bild wenn überhaupt?
    Ich verwende btw BMFont von AngelCode. Solltest dir mal ansehen. Ein wirklich netter Generator für sowas mit nem einfachen Dateiformat.



  • iKartoffel schrieb:

    kann ich nicht eine große Textur benutzen und das dann runter rechnen? (Also halbwegs komfortabel)

    Tust du doch schon, wie das aussieht siehst du ja...natürlich kannst du dich nach nem besseren Filter umschaun...

    iKartoffel schrieb:

    dot schrieb:

    Das discard; fällt vermutlich nicht wirklich ins Gewicht. Aber wieso nicht einfach nur Alphablending und gut ist?

    Ich bin auf das gestoßen und habe dem Typen erst mal blind vertraut. Keine Ahnung was ich jetzt davon verwenden werde, ist ja erst mal wohl auch unwichtig, wenn ich Performanceprobleme habe teste ich das mal.

    Ich seh halt keinen Grund für das discard, einfaches Blending liefert in deinem Anwendungsfall genau das gleiche Ergebnis...

    iKartoffel schrieb:

    Wichtiger ist: Die obrige Frage. 😃 Ich will doch nicht ernsthaft für x Schriftgrößen die Bilder mitliefern?

    Und wieso willst du das nicht?



  • kann ich nicht eine große Textur benutzen und das dann runter rechnen? (Also halbwegs komfortabel)

    Dazu noch kurz:
    Du würdest jedes mal die gleiche Rechenoperation durchführen, die du dir mit einer kleinen Textur die du mitlieferst, sparen könntest.
    Meiner Meinung nach wäre das eine größere Verschwendung.



  • Die Rechenoperationen sind vermutlich nicht das Problem. Viel eher die Tatsache dass es nicht so gut aussieht...



  • dot schrieb:

    Die Rechenoperationen sind vermutlich nicht das Problem. Viel eher die Tatsache dass es nicht so gut aussieht...

    Sicher sind sie kein Problem, aber ich finde man sollte sich solche wiederkehrenden Rechenoperationen sparen, wenn möglich. Und hier ist es das.
    Auch wenn es möglich wäre es so runterzurechnen, dass es ordentlich ausssieht.



  • dot schrieb:

    iKartoffel schrieb:

    Wichtiger ist: Die obrige Frage. 😃 Ich will doch nicht ernsthaft für x Schriftgrößen die Bilder mitliefern?

    Und wieso willst du das nicht?

    Es ist undynamisch. Und ein echter Programmierer mag nicht undynamisch. 🤡
    (Allerdings sieht das momentan so doof aus, dass ich mich wohl besser mal von euch überzeugen lasse..)

    Scorcher24: Jo, danke für den Tipp.

    Dein Programm hat mich aber gleich zur nächsten Frage gebracht.. wie zum Henker soll man mit nicht-block-Schriftarten umgehen? Gibt es da schon Formate die für jeden Buchstaben speichern wie breit er ist? 😮



  • Scorcher24 schrieb:

    dot schrieb:

    Die Rechenoperationen sind vermutlich nicht das Problem. Viel eher die Tatsache dass es nicht so gut aussieht...

    Sicher sind sie kein Problem, aber ich finde man sollte sich solche wiederkehrenden Rechenoperationen sparen, wenn möglich.

    Natürlich. Aber ein Texturelookup ist generell eher wesentlich langsamer als ein bisschen Arithmetik 😉



  • Das Dateiformat von BMFont speichert die Maße für jeden Glyphen.

    edit: Dot du hast dazwischengepostet... 👎 🕶

    edit2:
    Hier "mein" Parser für das BMFont-Format. Die Hälfte des Codes gehört wem anders :P. Aber ich hab die Erlaubnis das zu nutzen. Wurde eh noch angepasst etc, aber vllt hilfts.
    http://code.google.com/p/nightlight2d/source/browse/NightLightDLL/NLFont.cpp



  • @iKartoffel: http://www.angelcode.com/products/bmfont/ 😉

    Edit: 😃

    Natürlich kannst du das ganze auch komplett dynamisch machen. Wird z.B. mal einen Blick auf DirectWrite oder freetype...



  • Ehem.. das ist mir jetzt etwas peinlich... aber ich finde den "export" Button nicht? Ich kann zwar die export Optionen einstellen, aber nichts exportieren? Die "speichern" Funktion speichert zwar eine Beschreibung, aber kein Bild 😕



  • Hab's geschafft. Oh mann..


Anmelden zum Antworten