PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Font Rendering unter OGL


liquid
2003-05-07, 00:08:51
Hi@All,

ich stehe mal wieder vor einem (für mich unüberwindlichen) Problem. Und zwar will ich zur Übersichtlichkeit und für Debug-Zwecke ein paar Status Angaben meiner Engine ständig auf dem Schirm haben, damit ich genau sehen kann (ohne ständig in die Log-File zu gucken) wo denn jetzt der Haken an der Sache ist.

So, jetzt bin ich so weit und habe mich dazu entschieden GLUT zu nehmen, da das F-Rendering damit recht einfach gehen soll und ich auch nich die größten Ansprüche an den F-Renderer habe. Er soll halt nur ein paar Schriften auf den Screen bringen mehr nüscht.

Von dort (http://www.opengl.org/developers/code/features/fontsurvey/) habe ich mir dann die glutfonts.zip gezogen und mal angeguckt, compiled, etc. - Ja, und es lief auch alles. Nur will ich den Code jetzt natürlich auch in mein Programm einbaun.
Frage ist, wo genau baue ich das jetzt ein und was muß ich beachten?

Also ich denke mal ich sollte erst die Geometrie rendern und dann den Text drüber rastern lassen, oder? Muss ich dafür den Z-Buffer aus haben oder darf der ruhig an bleiben?
Ich hab den Code nämlich schon soweit in meinem Programm drin, dass er sich ohne Compiler- und Linkerfehler ausführen lässt. Allerdings zeigt er nichts an, was mich traurig stimmt ;D

cya
liquid

Demirug
2003-05-07, 11:48:41
Also wenn du Statusinfos ausgeben möchtest würde ich den Z-Buffer (sowohl den test wie auch das schreiben) abschalten. Es soll ja auf jeden Fall alles ausgegeben werden was den Z-Buffer überflüssig wenn nicht sogar hinderlich macht.

liquid
2003-05-08, 10:43:58
Also es geht auch ohne Z-Buffer Abschaltung. Ich musste nur darauf achten vor dem Font Zeichnen in den Ortho2D Modus zu wechseln, sonst hat er nüscht gemalt. Dachte schon, dass es das jetzt hinter die Geometrie gepackt hat und deshalb nicht angezeigt wird, aber anscheinend funzt das ganze nur im Ortho-Mode. Naja, muß man erstmal wissen.

Jedenfalls mach ich das jetzt so. Ich wechsle erstmal in den Projection-Matrix-Mode und pushe dann die momentane Matrix auf den Stack, damit sie mir nicht verloren geht. Dann builde ich meine Ortho-Matrix mit gluOrtho2D, wechsele danach in den Modelview-Mode, mache LoadIdentity, rufe meine Font-Rendering Methoden auf, wechsele wieder in den Projection-Mode und poppe die gespeicherte Matrix vom Stack runter. Schwupps bin ich wieder im Perspective-Modus.

Zurück in den Modelview-Mode wechsele ich danach nicht mehr, da das sowieso am Anfang der Draw-Method immer gemacht wird.
Meint ihr ich sollte mir für den Ortho-Mode noch eine DList anlegen, damit das Switchen zwischen den Modes schneller geht? Ich mein, das ist ja immer nur die gleiche Matrix, die er da mit gluOrtho2D anlegt, dann kann ich die auch gleich speichern, oder?
Und natürlich beim Reshaping des Fenster kurz neuaufbauen, aber das dürfte ja nicht so oft passieren.

cya
liquid

zeckensack
2003-05-08, 22:01:20
So weit alles richtig, DL lohnt sich IMO nicht wirklich (für so 'ne klitzekleine Sache die man einmal pro Frame macht ...).

liquid
2003-05-08, 22:36:29
Jo, Danke@zeckensack

Ich habe den Font Renderer jetzt ein wenig ausgebaut. Hab jetzt einen stringstream den ich mit Daten füttern kann, die dann an einer vordefinierten Stelle auf dem Screen geprintet werden.
Wenn der stream soweit fertig ist, dann muss ich den nur noch flushen und schon leert er den auf dem Screen aus. Nächsten Frame wieder dasselbe: Füllen, Flushen (führt bei mir das Rendern gleich mit aus).
Habt ihr irgendwelche Vorschläge was man da noch verbessern könnte. Sowas wie farbige Schrift oder so? *g*

cya
liquid

Unregistered
2003-05-16, 14:45:01
nehe.gamedev.net - und schmeiss den GLUT Müll wech ;o)