AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Textausgabe in OpenGL

Textausgabe in OpenGL

Ein Thema von erniepb · begonnen am 28. Aug 2004 · letzter Beitrag vom 29. Aug 2004
Antwort Antwort
erniepb

Registriert seit: 8. Jun 2002
Ort: Berlin
96 Beiträge
 
Delphi 7 Enterprise
 
#1

Textausgabe in OpenGL

  Alt 28. Aug 2004, 12:49
Hallo liebe leuts

Ich hätte da mal n wahrscheinlich ganz einfach Frage: Aber wie kann ich in OpenGL an einer Koordinate (x,y,z) einen Text ausgeben?

Mfg ..
  Mit Zitat antworten Zitat
Jörn

Registriert seit: 5. Sep 2003
Ort: Helmstedt
312 Beiträge
 
#2

Re: Textausgabe in OpenGL

  Alt 29. Aug 2004, 00:09
Kann man so direkt gar nicht. Man kann nur Quads im Orthogonalen Modus anzeigen lassen, wo die Schrift als Textur drauf ist. Schau mal nach delphigl.com, die haben da Templates für OGL 1.5, da steht das auch drin.
  Mit Zitat antworten Zitat
Benutzerbild von Mr_T
Mr_T

Registriert seit: 7. Jun 2002
Ort: Eilsum
136 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Textausgabe in OpenGL

  Alt 29. Aug 2004, 09:10
Das ist so nicht ganz richtig!
Man kann durchaus Text in OpenGL darstellen, sogar als 3D-Text mit Tiefe, usw.
Dazu muss man an sich zunächst mal eine Displayliste mit alles Buchstaben drin erzeugen, welches etwa so aussieht:

Delphi-Quellcode:
procedure BuildFont; // Build Our Font
var font: HFONT; // Windows Font ID
gmf : array [0..255] of GLYPHMETRICSFLOAT; // Address Buffer For Font Storage
begin
displayliste := glGenLists(256); // Storage For Characters
font := CreateFont(12, // Height Of Font
0, // Width Of Font
0, // Angle Of Escapement
0, // Orientation Angle
0, // Schrift Fett? Nein!
0, // Schrift Kursiv? Nein!
0, // Auch nicht unterstrichen….
0, // … oder gar durchgestrichen
ANSI_CHARSET, // Character Set Identifier
OUT_TT_PRECIS, // Output Precision
CLIP_DEFAULT_PRECIS, // Clipping Precision
ANTIALIASED_QUALITY, // Output Quality
FF_DONTCARE or DEFAULT_PITCH, // Family And Pitch
'Arial Black'); // Font Name
SelectObject(form1.myDC, font); // Die Schriftart Wählen
wglUseFontOutlines( form1.myDC, // Der Aktuelle DC
0, // Der erste “Buchstabe”
255, // Die gesamte Anzahl der Buchstaben
displayliste, // Die Displayliste
0.0, // Deviation From The True Outlines
0.3, // Die “Dicke” der Schrift in Z-Richtung
WGL_FONT_POLYGONS, // Wir wollen ganze Polygone, keine Linien
@gmf); // Unserer Puffer
end;
Dieser Code erzeugt in eine Displayliste den Font "Arial Black" in Schriftgröße 12 mit ansonsten Normalen Attributen.
Darstellen kann man den Text dann so:

Delphi-Quellcode:
procedure glPrint(text : pchar); // Custom GL "Print" Routine
begin
if (text = '') then // If There's No Text
Exit; // Do Nothing
glPushAttrib(GL_LIST_BIT); // Pushes The Display List Bits
glListBase(displayliste); // Sets The Base Character
glCallLists(length(text), GL_UNSIGNED_BYTE, text); // Draws The Display List Text
glPopAttrib(); // Pops The Display List Bits
end;
So, damit hat man denn auch schon alles zusammen (die erste Prozedur muss ganz am Anfang einmal ausgeführt worden sein... dazu braucht es noch eine globale Variable vom Typ "tglint", welche unsere Displayliste speichert). Nun kann man während des Renderns relativ leicht einen beliebeigen Text darstellen:

Delphi-Quellcode:
gltranslatef(-3,0,-9);
glcolor3f(0,0,1);
glprint('OGL mit Mr_T ;-)');
Aussehen tut das ganze denn (in diesem Falle) so, wie auf dem Bild, welches hier im Anhang ist.

Nähere Informationen, sowie ein kleines Beispielprogramm gibts auf meiner HP ... Kursteil 12 - 6 (Also 6. Kapitel des Kursteiles 12) müsste das sein
Miniaturansicht angehängter Grafiken
ogl_text.jpg  
Mein neuer, 13 Teiliger Open GL - Kurs (Samples in Delphi):
www.dcw-group.net
Neu! Ein großer Teil der Demos nach Kylix übersetzt!
Neu! Teil 2b: Initialisierung von OpenGL unter Kylix ist fertig!
  Mit Zitat antworten Zitat
Jörn

Registriert seit: 5. Sep 2003
Ort: Helmstedt
312 Beiträge
 
#4

Re: Textausgabe in OpenGL

  Alt 29. Aug 2004, 12:53
So ungefähr machens ja auch die Leute von delphigl.com

MfG
  Mit Zitat antworten Zitat
Benutzerbild von Mr_T
Mr_T

Registriert seit: 7. Jun 2002
Ort: Eilsum
136 Beiträge
 
Delphi 2005 Personal
 
#5

Re: Textausgabe in OpenGL

  Alt 29. Aug 2004, 14:37
Öhm ... und wenn du das so genau weißt, weiso behaupteste denn oben noch das ginge so direkt nicht?
Ich mein, es geht ja sehr gut ... man kann die Anfangsmarke für den text sich aussuchen und da den Text darstellen ...
Mein neuer, 13 Teiliger Open GL - Kurs (Samples in Delphi):
www.dcw-group.net
Neu! Ein großer Teil der Demos nach Kylix übersetzt!
Neu! Teil 2b: Initialisierung von OpenGL unter Kylix ist fertig!
  Mit Zitat antworten Zitat
Jörn

Registriert seit: 5. Sep 2003
Ort: Helmstedt
312 Beiträge
 
#6

Re: Textausgabe in OpenGL

  Alt 29. Aug 2004, 16:52
Sorry ist nur ein Missverständnis - ich wollte damit nur sagen, dass es keine vorgefertigte Funktion in OGL gibt, sondern das es selbst gebastelt werden muss.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz