![]() |
OpenGL Text | in Form einbauen
Hi!
Also angenommen ich würde auch nur einen Hauch von OpenGL kapieren und hätte jetzt also das was ich brauche-wie kann ich das in eine Form einbauen?Weil ich möchte nicht mein bestehendes programm,dass ich extra dafür gebaut habe nochmal in OpenGL bauen,was auch noch andere Probleme mit sich ziehen würde. Das wäre das eine.Dann habe ich noch das problem mit dem Text.Habe gelesen,dass man den Text tatsächlich,selber zeichnen muss,also das wäre ja ne Riesenmühe und Code.Und ne ordentliche ANimation,wie ich mir das vorstelle-furchtbar.Gibt es da nicht evtl. eine andere Möglichkeit?Ich habe zB die Möglichkeit eine 3D ANimation zu machen,oder einfach etwas in 3D und dann als 3ds speichern.Mein Vater hatte so einen 3ds loader als Programm,das würde mirne riesenarbeit ersparen.Allerdings sollte es am Ende auch nicht riesengroß sein,das programm is schon 300kb gepackt und mit BMPs.Achja,der Modelloader is eineJava Anwendung,also wenns sowas für delphi geben würde,wäre fett ;) Hoffe ihr könnt mich etwas aufklären Greetz,D PS:Wenn hier viele Rechtschreibfehler sind,dann liegts daran,dass das Forum immer etwas braucht damit mein text erscheint :( |
Re: OpenGL Text | in Form einbauen
Zitat:
|
Re: OpenGL Text | in Form einbauen
OpenGL kann wohl keinen Text darstellen, soweit ich weiß. Aber Du kannst Dir für jeden Buchstaben ein Quad erstellen und es mit einer Textur belegen, die den Buchstaben zeigt. Nur schreib dann keine Romane :)
|
Re: OpenGL Text | in Form einbauen
Du kannst Buchstaben rendern und so 2dFonts vorrendern und dann auf den Screen projizieren. Such mal bei google nach
![]() |
Re: OpenGL Text | in Form einbauen
Hi phlux,
du meinst vermutlich ![]() Chris |
Re: OpenGL Text | in Form einbauen
Es gibt auch die DirectX-Bsp für Delphi übersetzt (Jedi ?). Da benutzt man ne Klasse T3DFont (oder so ähnlich). Die könntest Du als Basis nutzen. Mußt halt mit OpenGL rendern stattdessen ...
|
Re: OpenGL Text | in Form einbauen
Man kann mit OpenGL auch 3d Fonts erzeugen ... dafür benötigt man eine Displayliste (eine Variable vom Typ tglint wenn man OpenGl 1.2 oder 1.5 verwendet bzw. bei der Standart Delphi-Unit eine Variable vom Typ gluint) .. diese habe ich mal "base" genannt (die Variable)... denn muss man den Font erzeugen:
Delphi-Quellcode:
So, diesen Code hier führt man am Anfang der Anwendung aus (am ende von Form1.oncreate aufrufen) ... Nun kann man mitdieser Prozedur Text auf den Screen bringen:
procedure BuildFont; // Build Our Bitmap Font
var font: HFONT; // Windows Font ID gmf : array [0..255] of GLYPHMETRICSFLOAT; // Address Buffer For Font Storage begin base := glGenLists(256); // Storage For 96 Characters font := CreateFont(12, // Height Of Font 0, // Width Of Font 0, // Angle Of Escapement 0, // Orientation Angle 0, // Font Weight 0, // Italic 0, // Underline 0, // Strikeout 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); // Selects The Font We Want wglUseFontOutlines( form1.myDC, // Select The Current DC 0, // Starting Character 255, // Number Of Display Lists To Build base, // Starting Display Lists 0.0, // Deviation From The True Outlines 0.2, // Font Thickness In The Z Direction WGL_FONT_POLYGONS, // Use Polygons, Not Lines @gmf); // Address Of Buffer To Recieve Data end;
Delphi-Quellcode:
Sieht zwar alles sehr schwierig aus, hoffe aber, ich konnte dir helfen (Ist kein einfaches Thema)
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(base); // Sets The Base Character glCallLists(length(text), GL_UNSIGNED_BYTE, text); // Draws The Display List Text glPopAttrib(); // Pops The Display List Bits end; |
Re: OpenGL Text | in Form einbauen
Dummerweise sind die wgl-Funktionen sehr langsam. Bevor die soweit sind, daß sie anfangen, den Font zu malen, hast Du das ganze schon mit Quads ausgegeben ;-)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:46 Uhr. |
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