Text ausgeben: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
()
 
(Schrift aus Texturen: umgeschrieben)
Zeile 22: Zeile 22:
 
<br>
 
<br>
 
== Schrift aus Texturen ==
 
== Schrift aus Texturen ==
 +
(Sogenannte Bitmapfonts)
  
Benötigt wird für diese Technik eine Textur, auf dem alle 256 Zeichen in 16 Spalten und 16 Zeilen untergebracht sind. Die Textur [[Matrix]] wird dann mit  [[glScale]] und [[glTranslate]] so manipuliert das das mit [[glBegin]],[[glTexCoord]] und [[glVertex]] gezeichnete Rechteck immer nur ein Zeichen enthält.  
+
Benötigt wird für diese Technik eine Textur, auf dem alle 256 Zeichen untergebracht sind. Die Anordnung der Zeichen ist prinzipiell beliebig, nur sollte man dies so tun, dass man nachher leicht die Position der einzelnen Zeichen auf der Textur herausfindet. (z.B. indem man die Zeichen als 16x16 Zeichen Matrix anordnet)<br>
 +
Die Textur [[Matrix]] wird dann mit  [[glScale]] und [[glTranslate]] so manipuliert das das mit [[glBegin]], [[glTexCoord]] und [[glVertex]] gezeichnete Rechteck immer nur ein Zeichen enthält.  
 +
('''glScale''' ist eigentlich nicht nötig, da ein mit [[glTexCoord]] abgesteckter Texturabschnitt automatisch auf die Größe des unterligenden Polygons (gezeichnet mit [[glBegin]]-[[glEnd]] und [[glVertex]]) gedehnt wird.)
  
Um nur die Buchstaben und nicht den Hintergrund sollte das [[Blending]] aktivert werden.
+
Um nur die Buchstaben ohne den Hintergrund (der Textur) zu sehen sollte mittels [[Blending]] dieser heraus gefiltert werden.
  
 
=== Position ===
 
=== Position ===
Die Position wird mit der Modelview Matrix festgelegt.  
+
Das '''Wo''' wird über die Koordinaten der [[Eckpunkte]] des unterliegenden Polygons geregelt. Welches Zeichen tatsächlich ausgegeben wird, bestimmen die Texturkoordinaten (übergeben mit [[glTexCoord]]).
  
 
=== Farbe ===
 
=== Farbe ===
Die Farbe der Textur sollte weiß sein damit man mit [[glColor]] alle Farben anzeigen lassen kann.
+
Die Farbe der Schrift auf der Textur sollte weiß sein damit man mit [[glColor]] die Textur einfärben und damit alle Farben anzeigen lassen kann.
  
 
Falls der Text nicht im 3 demensionalen Raum angezeigt werden soll, empfiehlt es sich den [[Tiefen Test]] zu deaktivieren und die Projektions Matrix mit [[gluOrtho2D]] neu einzustellen.
 
Falls der Text nicht im 3 demensionalen Raum angezeigt werden soll, empfiehlt es sich den [[Tiefen Test]] zu deaktivieren und die Projektions Matrix mit [[gluOrtho2D]] neu einzustellen.
  
 
<br>
 
<br>
 +
 
==Siehe auch==
 
==Siehe auch==
 
[[glBegin]], [[glColor]], [[glScale]], [[glTranslate]], [[glTexCoord]], [[glVertex]]
 
[[glBegin]], [[glColor]], [[glScale]], [[glTranslate]], [[glTexCoord]], [[glVertex]]
  
 
[[Kategorie:Anleitung]]
 
[[Kategorie:Anleitung]]

Version vom 8. September 2004, 01:07 Uhr

Anleitung- Wie gebe ich mit OpenGL Text aus.

Allen Möglichkeiten gemein ist das die Buchstaben in Listen gespeichert werden um so per glCallLists den Text ausgeben zu können.

Buchstaben aus Pixeln

Die primitivste Art Buchtaben auszugeben besteht darin einfach glBitmap aufzurufen.

Falls das Betriebssystem Windows ist, kann mit wglUseFontBitmaps aus einer Windows Schrift glBitmap Befehle generiert, und in einer Liste abgespeichert werden.

Position festlegen

Die Position der Ausgabe erfolgt durch glRasterPos, oder besser falls verfügbar durch glWindowPos.

Farbe

Die Farbe der Schrift wird zum Zeitpunkt des letzen glRasterPos Aufrufes festgelegt.


3D Schriften mit Windows

Per wglUseFontOutlines wird aus einer Windows Schrift für jeden Buchstaben eine Liste erstellt, welche die entsprechenden Polygone enthält.


Schrift aus Texturen

(Sogenannte Bitmapfonts)

Benötigt wird für diese Technik eine Textur, auf dem alle 256 Zeichen untergebracht sind. Die Anordnung der Zeichen ist prinzipiell beliebig, nur sollte man dies so tun, dass man nachher leicht die Position der einzelnen Zeichen auf der Textur herausfindet. (z.B. indem man die Zeichen als 16x16 Zeichen Matrix anordnet)
Die Textur Matrix wird dann mit glScale und glTranslate so manipuliert das das mit glBegin, glTexCoord und glVertex gezeichnete Rechteck immer nur ein Zeichen enthält. (glScale ist eigentlich nicht nötig, da ein mit glTexCoord abgesteckter Texturabschnitt automatisch auf die Größe des unterligenden Polygons (gezeichnet mit glBegin-glEnd und glVertex) gedehnt wird.)

Um nur die Buchstaben ohne den Hintergrund (der Textur) zu sehen sollte mittels Blending dieser heraus gefiltert werden.

Position

Das Wo wird über die Koordinaten der Eckpunkte des unterliegenden Polygons geregelt. Welches Zeichen tatsächlich ausgegeben wird, bestimmen die Texturkoordinaten (übergeben mit glTexCoord).

Farbe

Die Farbe der Schrift auf der Textur sollte weiß sein damit man mit glColor die Textur einfärben und damit alle Farben anzeigen lassen kann.

Falls der Text nicht im 3 demensionalen Raum angezeigt werden soll, empfiehlt es sich den Tiefen Test zu deaktivieren und die Projektions Matrix mit gluOrtho2D neu einzustellen.


Siehe auch

glBegin, glColor, glScale, glTranslate, glTexCoord, glVertex