Was müßte ich denn um- oder einstellen damit das bei mir auf Target Windows (Win32) läuft ?
Einstieg OpenGL => Textausgabe
-
- Beiträge: 6899
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Einstieg OpenGL => Textausgabe
- Dateianhänge
-
- Bildschirmfoto vom 2024-06-09 17-19-19.png (104.73 KiB) 8682 mal betrachtet
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
Re: Einstieg OpenGL => Textausgabe
Ups .. jetzt dreht es das falsche Bitmap.
Aber macht nix, sieht ja auch irgendwie interessant aus ..
Aber macht nix, sieht ja auch irgendwie interessant aus ..
- Dateianhänge
-
Test BitmapFont 2024-06-09.zip
- (161.23 KiB) 53-mal heruntergeladen
-
- Beiträge: 210
- Registriert: Do 24. Jan 2013, 21:22
Re: Einstieg OpenGL => Textausgabe
Hi , lese hier einfach nur mit .
Und wundere mich , warum sich keiner mehr an meine Versuche mit Textausgabe in Opengl erinnert.
Hier ging es um die Nutzung von TTF-Fonts im Opengl.
Die ersten Versuche findet ihr hier:
Text in OpenGLcontrol Nov 2016
Startseite
viewtopic.php?f=25&t=10235
Seite mit fertiger DEMO
viewtopic.php?f=25&t=10235&start=30
und eine komplette Textausgabe hier:
Opengl Text , jetzt mit Ausgabe eines Strings März 2018
viewtopic.php?f=25&t=11498
Leider ist das schon etwas länger her und ich müsste mich selber erst wieder reindenken.
Gruß
Frank
Und wundere mich , warum sich keiner mehr an meine Versuche mit Textausgabe in Opengl erinnert.
Hier ging es um die Nutzung von TTF-Fonts im Opengl.
Die ersten Versuche findet ihr hier:
Text in OpenGLcontrol Nov 2016
Startseite
viewtopic.php?f=25&t=10235
Seite mit fertiger DEMO
viewtopic.php?f=25&t=10235&start=30
und eine komplette Textausgabe hier:
Opengl Text , jetzt mit Ausgabe eines Strings März 2018
viewtopic.php?f=25&t=11498
Leider ist das schon etwas länger her und ich müsste mich selber erst wieder reindenken.
Gruß
Frank
www.flz-vortex.de
Re: Einstieg OpenGL => Textausgabe
Hallo Frank und Danke für den Hinweis auf Deine Threads von damals !Frank Ranis hat geschrieben: Mo 10. Jun 2024, 06:24 Hier ging es um die Nutzung von TTF-Fonts im Opengl.
Die ersten Versuche findet ihr hier:
Text in OpenGLcontrol Nov 2016 Startseite
viewtopic.php?f=25&t=10235
...
Leider ist das schon etwas länger her und ich müsste mich selber erst wieder reindenken.
Werde ich mir mal in Ruhe durchlesen und die Sources herunterladen und ausprobieren.
-
- Beiträge: 6899
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Einstieg OpenGL => Textausgabe
Was noch wichtig ist, was will man überhaupt machen.
Ein statischer Text, da steckt man am besten den ganzen in eine Bitmap.
Wen es ändern soll, nimmt man die oben beschriebenen Varianten.
Und noch was wichtig ist, was will man darstellen. die Zeichen von #32 - #127, oder will man sogar UTF8 was dann aber recht komplex wird.
Ein statischer Text, da steckt man am besten den ganzen in eine Bitmap.
Wen es ändern soll, nimmt man die oben beschriebenen Varianten.
Und noch was wichtig ist, was will man darstellen. die Zeichen von #32 - #127, oder will man sogar UTF8 was dann aber recht komplex wird.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
Re: Einstieg OpenGL => Textausgabe
Also ich habe schon vor, da erstmal nur einen statischen Text reinzupacken.Mathias hat geschrieben: Mo 10. Jun 2024, 19:18 Was noch wichtig ist, was will man überhaupt machen.
Ein statischer Text, da steckt man am besten den ganzen in eine Bitmap.
Wen es ändern soll, nimmt man die oben beschriebenen Varianten.
Aber die angezeigten Geräte-Daten (z.B. Temperaturen)
ändern sich natürlich mal, je nach Zustand der Anlage.
Hinzu kommen sollen dann später auch dynamische Balkenanzeigen,
ähnlich wie bei Pegel-Messern. Aber das ist dann schon die Kür.
Erstmal müssen die Basics funktionieren und gut aussehen.
Im Moment male ich in ein TImage, das hat natürlich so seine Grenzen,
gerade bei grafischen Elementen. Und wird natürlich von der CPU gerechnet ..
Tja, also die Umlaute und ein paar Sonderzeichen, z.B. für °C, werde ich schon brauchen ..Mathias hat geschrieben: Mo 10. Jun 2024, 19:18 Und noch was wichtig ist, was will man darstellen. die Zeichen von #32 - #127, oder will man sogar UTF8 was dann aber recht komplex wird.
Re: Einstieg OpenGL => Textausgabe
Hab's compiliert, auf meiner OnChip-Grafikkarte (liegt's daran ?) zittert die Schrift ein wenig.Frank Ranis hat geschrieben: Mo 10. Jun 2024, 06:24 und eine komplette Textausgabe hier:
Opengl Text , jetzt mit Ausgabe eines Strings März 2018
viewtopic.php?f=25&t=11498
Aber sowas dynamisches mit Text habe ich ja nicht vor zu machen.
Vielen Dank für den Code, da schaue ich mal tiefer rein !
- corpsman
- Lazarusforum e. V.
- Beiträge: 1617
- Registriert: Sa 28. Feb 2009, 08:54
- OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
- CPU-Target: 64Bit
- Wohnort: Stuttgart
- Kontaktdaten:
Re: Einstieg OpenGL => Textausgabe
So hab mir das mal angesehen, die Demo ist da etwas unglücklich, du must die Textur erstellen (damit speicherst du sie ja ab) und dann noch mal von Hand laden, dass er sie auch anzeigt. Ich schau, dass ich die Demo anpasse und auf meinen Github entsprechend aktualisierePeterS hat geschrieben: So 9. Jun 2024, 16:02Ah, hallo corpsman !corpsman hat geschrieben: So 9. Jun 2024, 08:23 Da will ich doch glatt mal ein bisschen Werbung für meine uopengl_ascii_font machen. Die müsste können was ihr hier versucht![]()
Von Dir hatte ich mir opengltruetypefont heruntergeladen, und unter Windows (Win32) compiliert.
Leider blieb Franz sein Taxi leer .. kein Text auf dem Fenster ..
Screenshot (986).png

--
Just try it
Just try it
-
- Beiträge: 6899
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Einstieg OpenGL => Textausgabe
Diese Beispiel rendert den Text selbst im Shader.
Die ganze Source findet man hier:
Code: Alles auswählen
procedure TForm1.OutText(s: string);
var
ci: array of TGLint = nil;
CharOfs: array of TGLfloat = nil;
len: SizeInt;
i: integer;
index: integer = 0;
begin
glBindTexture(GL_TEXTURE_2D_ARRAY, textureID);
len := Length(s);
SetLength(ci, len);
SetLength(CharOfs, len + 1);
CharOfs[index] := 0;
for i := 0 to len - 1 do begin
ci[i] := uint32(s[i + 1]);
Inc(index);
CharOfs[index] := CharOfs[index - 1] + Canvas.TextWidth(s[i + 1]) / 12;
end;
glUniform1iv(UniformID.Chars, Length(ci), PGLint(ci));
glUniform1fv(UniformID.CharsOfs, Length(CharOfs), PGLfloat(CharOfs));
glBindVertexArray(VBQuad.VAO);
glDrawArraysInstanced(GL_TRIANGLES, 0, 6, Length(ci));
end;
Code: Alles auswählen
#version 330
#define Instance_Count 255
uniform int chars[Instance_Count];
uniform float charsOfs[Instance_Count];
uniform mat4 mat;
out vec2 UV0;
out float layer;
const vec2 QuadVertex[] = vec2[] (
vec2(0.0, 1.0), vec2(1.0, 0.0), vec2(0.0, 0.0),
vec2(0.0, 1.0), vec2(1.0, 1.0), vec2(1.0, 0.0));
const vec2 TextureVertex[] = vec2[] (
vec2(0.0, 0.0), vec2(1.0, 1.0), vec2(0.0, 1.0),
vec2(0.0, 0.0), vec2(1.0, 0.0), vec2(1.0, 1.0));
void main(void)
{
vec2 p2 = QuadVertex[gl_VertexID];
vec4 p = vec4(p2, 0.0, 1.0);
p.x += charsOfs[ gl_InstanceID];
gl_Position = mat * p;
layer = chars[gl_InstanceID] - 32;
UV0 = TextureVertex[gl_VertexID];
UV0.y *= 1;
}
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
Re: Einstieg OpenGL => Textausgabe
So, das ganze ist jetzt eine Kombination von zwei Beispiel-Projekten ..
- Dateianhänge
-
Test BitmapFont 2024-06-11.zip
- (161.67 KiB) 60-mal heruntergeladen
Re: Einstieg OpenGL => Textausgabe
Ups .. missing link ..
-
- Beiträge: 6899
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Einstieg OpenGL => Textausgabe
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
Re: Einstieg OpenGL => Textausgabe
Kann es sein daß man FPC 3.3.1 braucht, damit das ganze kompiliert ?Mathias hat geschrieben: Di 11. Jun 2024, 16:30 https://github.com/sechshelme/Lazarus-O ... _monospace
BG Peter