Text in OpenGLcontrol

Für Probleme bezüglich Grafik, Audio, GL, ACS, ...

Re: Text in OpenGLcontrol

Beitragvon Frank Ranis » 6. Feb 2017, 08:26 Re: Text in OpenGLcontrol

Hallo Jole,

Jole hat geschrieben:Also bei mir läuft dein Demo unter Linux Mint 18.1(64) absolut fehlerfrei. Das einzige Problemchen wurde ja gelöst.


danke für deine Antwort , das wollte ich hören.

Ich werde dann am Programm weiter machen , sobald ich Zeit habe .

Gruß

Frank
www.flz-vortex.de
Frank Ranis
 
Beiträge: 80
Registriert: 24. Jan 2013, 21:22
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon Mathias » 6. Feb 2017, 17:58 Re: Text in OpenGLcontrol

Also bei mir läuft dein Demo unter Linux Mint 18.1(64) absolut fehlerfrei.

Gibt es einen Link, auf die fertige Version, oder muss man die '\' selbst abändern ?
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3179
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Jole » 6. Feb 2017, 21:05 Re: Text in OpenGLcontrol

Mathias hat geschrieben:
Also bei mir läuft dein Demo unter Linux Mint 18.1(64) absolut fehlerfrei.

Gibt es einen Link, auf die fertige Version, oder muss man die '\' selbst abändern ?

??? Versteh ich jetzt nicht richtig. Das einzige Problem bei mir war das fehlende TRect, sonst nix.
Jole
 
Beiträge: 116
Registriert: 4. Jul 2014, 13:39
OS, Lazarus, FPC: Linux | 
CPU-Target: amd64
Nach oben

Beitragvon Frank Ranis » 7. Feb 2017, 08:29 Re: Text in OpenGLcontrol

Hallo Mathias , Hallo Jole ,

Leute , ihr bringt mich an den Rand des Wahnsinns , einfach die Beiträge richtig durchlesen , dann ist doch alles klar .
Ihr redet völlig aneinander vorbei .

Mathias hat geschrieben:Gibt es einen Link, auf die fertige Version, oder muss man die '\' selbst abändern ?


Auf der Seite 3 , mein Post 'von Frank Ranis » 3. Feb 2017, 08:21 Re: Text in OpenGLcontrol' , da wo das Bildchen mit dem Blümchen-Glyph dargestellt ist , der Anhang ' glyph_3d_viewer_V1_1.zip ' .

Jole hat geschrieben:??? Versteh ich jetzt nicht richtig. Das einzige Problem bei mir war das fehlende TRect, sonst nix.


Mathias meint den Quelltext-Teil mit dem Einstellen des absoluten Pfades zur Font-Datei , hat nichts mit dem OpenGl zu tun.

Neuer Quelltext
Code: Alles auswählen
procedure TForm1.FormCreate(Sender: TObject);
begin
 label12.Caption:=version;
 
 hauptpfad := extractfiledir(ParamStr(0)) + DirectorySeparator; // Das wichtigste.        <-- hier die Sache mit dem DirectorySeparator
 FTTFFont:=TFreeTypeFont.create;
 FTTFFont.Hinted:=false;
 FTTFFont.Name:=hauptpfad+'FreeSans.ttf';
 caption:=FTTFFont.Name;
 spinedit1.MaxValue:=FTTFFont.GlyphCount-1;
end;


Alter Quelltext
Code: Alles auswählen
procedure TForm1.FormCreate(Sender: TObject);
begin
  hauptpfad:=extractfiledir(paramstr(0));
 
  FTTFFont:=TFreeTypeFont.create;
  FTTFFont.Hinted:=false;
  FTTFFont.Name:=hauptpfad+'\FreeSans.ttf';    // <-- das mit dem ' \ ' haut nur unter Windows gut hin
  caption:=FTTFFont.Name;
  spinedit1.MaxValue:=FTTFFont.GlyphCount-1;
end;



Gruß

Frank
www.flz-vortex.de
Frank Ranis
 
Beiträge: 80
Registriert: 24. Jan 2013, 21:22
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon Jole » 7. Feb 2017, 11:39 Re: Text in OpenGLcontrol

Leute , ihr bringt mich an den Rand des Wahnsinns, ...

Das ist sicher nicht unsere Absicht!

Mathias meint den Quelltext-Teil mit dem Einstellen des absoluten Pfades zur Font-Datei , hat nichts mit dem OpenGl zu tun.

Das es nichts mit OpenGL zu tun hat ist mir schon klar, aber ich hab das mit dem "\" deshalb nicht verstanden weil die Zip die ich am Freitag runter geladen hab bereits den neuen Quelltext enthält.
Jole
 
Beiträge: 116
Registriert: 4. Jul 2014, 13:39
OS, Lazarus, FPC: Linux | 
CPU-Target: amd64
Nach oben

Beitragvon Mathias » 7. Feb 2017, 17:55 Re: Text in OpenGLcontrol

Auf der Seite 3 , mein Post 'von Frank Ranis » 3. Feb 2017, 08:21 Re: Text in OpenGLcontrol' , da wo das Bildchen mit dem Blümchen-Glyph dargestellt ist , der Anhang ' glyph_3d_viewer_V1_1.zip ' .

Mit diesem Link, läuft es bei mir jetzt auch. Der Link war unter dem Bild versteckt. :oops:
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3179
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Frank Ranis » 9. Feb 2017, 08:08 Re: Text in OpenGLcontrol

Hallo Jole , Hallo Mathias ,

alles wieder gut , mein PH-Wert ist wieder NEUTRAL .

Ich habe halt das Problem , das ich kein Ahnung von Linux habe und dann halt auf TESTER angewiesen bin .
LAZ_USER möchten ja möglichst Plattformunabhängige Prog's schreiben und die müssen dann auf der Zielplattform getestet werden.

Solbald es die Zeit erlaubt werden ich das Prog etwas aufräumen und zusätzlich eine neue Klasse für den gesamten Font bauen.

Da die Konvertierung der einzelnen Glyph's ja eine gewisse Zeit dauert und man das dann tunlichst nicht immer zur Laufzeit machen sollte bleibt zu Überlegen , wie man einen schnellen Zugriff auf die fertigen 3D-Glyph-Daten bekommt.

Folgende Gedanken:

1) Man könnte beim Start einer Anwendung den kompletten Font konvertieren und dann die Glyph's komplett (Triangulierte 3D-Form) in einer Liste vorrätig halten.
Dauert aber auch und es kann zu Startverzögerungen kommen.
Per Char-Index (Zeichen für Zeichen aneinandergereiht ) werden dann die Texte im OpenGl gezeichnet.

2) Oder man macht nur die Konvertierung des Deckels (2D) und extrudiert diese dann während der Laufzeit .
Bringt aber auch nicht den Super-Zeitgewinn .

3) Man macht die Konvertierung überhaupt nicht in der Anwendung , sondern schreibt einen Konverter und legt die triangulierten Daten in einer Datei ab.
So in der Art Font3DKonverter [Parameter-Fontdatei.ttf] [Parameter-Outputdatei.font3d] .
Dann müßte man sich nur ein Fileformat überlegen oder sich an ein vorhandenes Dateiformat halten.
In der Annwedung läd man dann die bereits konvertierten Daten (*.font3d) und das ginge RatzFatz .

Ein weitere Zeitgewinn wäre auch , die 3D-Daten dann per Displaylisten (also bereits OpenGl-compiliert) im Speicher abzulegen.
Das könnte dann direkt nach dem laden einer *.font3d-Datei erfolgen.

Gruß

Frank
www.flz-vortex.de
Frank Ranis
 
Beiträge: 80
Registriert: 24. Jan 2013, 21:22
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon Mathias » 9. Feb 2017, 18:03 Re: Text in OpenGLcontrol

Ein weitere Zeitgewinn wäre auch , die 3D-Daten dann per Displaylisten (also bereits OpenGl-compiliert) im Speicher abzulegen.

Was auch noch eine gute Sache wäre.
Wen man die Vertex-Koordinaten direkt als Stream als Float-Array speichern würde.

Dann könnte man die Daten direkt mit
Code: Alles auswählen
glBufferData(GL_ARRAY_BUFFER, ....
, ohne Konvertierung ins VRAM schreiben.

Man müsste nur die _3D_Glyph.Dreiecklist3D in eine Datei schreiben.
Code: Alles auswählen
 for i:=0 to _3D_Glyph.Dreiecklist3D.Count-1 do
 begin
  dreieck:=Tdreieck(_3D_Glyph.Dreiecklist3D[i]);
  glNormal3f(dreieck.nv.x,
             dreieck.nv.y,
             dreieck.nv.z);
  glBegin(GL_polygon);
   glColor3f(0.0,0.0,0.8);
   glVertex3f(dreieck.A.x/fak,dreieck.A.y/fak,dreieck.A.z/fak);
   glVertex3f(dreieck.b.x/fak,dreieck.b.y/fak,dreieck.b.z/fak);
   glVertex3f(dreieck.c.x/fak,dreieck.c.y/fak,dreieck.c.z/fak);
  glEnd();
 end
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3179
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Frank Ranis » 14. Feb 2017, 11:32 Re: Text in OpenGLcontrol

Hallo Mathias,

hast Du zum Thema glbufferdata ein kleines Beispiel ?

Gruß

Frank
www.flz-vortex.de
Frank Ranis
 
Beiträge: 80
Registriert: 24. Jan 2013, 21:22
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon Mathias » 14. Feb 2017, 13:06 Re: Text in OpenGLcontrol

Habe ich, muss es am Abend raussuchen.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3179
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Mathias » 14. Feb 2017, 18:22 Re: Text in OpenGLcontrol

In der Methode InitScene, sieht man gut, wie ich die Daten via glBufferData(... ins VRAM lade.

Anstelle der Const Triangle kann man auch einen Zeiger auf eine dynamische Array nehmen.

Das sieht dann etwa so aus:
Code: Alles auswählen
var
  GLfloatArray: array of GLfloat;
...
   glBufferData(GL_ARRAY_BUFFER, SizeOf(GLfloat) * Length(GLfloatArray), Pointer(GLfloatArray), GL_STATIC_DRAW);               


Ich hoffe dies hilft dir weiter.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3179
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Frank Ranis » 15. Feb 2017, 09:29 Re: Text in OpenGLcontrol

Hallo Mathias,

vielen Dank für dein Demoprojekt.

Leider bekomme ich das Prog nicht auf allen Windows-Systemen zum laufen.
Ich schreibe meine Progs derzeit immer noch unter Win-XP und wenn sie dort laufen , teste ich mit Win-7/Win-8,Win-10.

Das hat den einfachen Grund , das ich und viele meiner Kollegen immer noch solche alten Rechner haben und alle meine Prog's überall laufen sollen.
Jetzt kommt bestimmt der Spruch , wer benutzt denn noch so alte Kamellen , aber das ist halt so.
Mein aktuelles FLZ_Vortex-Projekt (Aerodynamik-Fliegerprog / http://www.flz-vortex.de ) läuft sogar noch unter Win-98 , ist allerdings derzeit noch mit Delphi-7 programmiert .
Eine Portierung nach Lazarus steht noch aus , kommt aber irgendwann mal .
Die Geschichte mit den 3D-Fonts werde ich dort dann auch brauchen können.

Unter XP steigt dein Prog in der

function Initshader(VertexDatei, FragmentDatei: string): GLuint;

an der Stelle

ProgramObject := glCreateProgram();

aus.

Unter Win-7 und größer funzt es .
Vermutung ist , das die alten Grafikkarten / Treiber mit bestimmten aktuellen OpenGl-Funktionen einfach nicht klarkommen ,oder es schlicht weg am Win-XP selber liegt, keine Ahnung was die da intern so treiben.

Die Geschichte mit glBufferData hört sich zwar spannend an , ich werde das aber (aus obrigen Grund ) nicht benutzten .

So stehen dann Displaylisten wieder auf dem Zettel.

Gruß

Frank
www.flz-vortex.de
Frank Ranis
 
Beiträge: 80
Registriert: 24. Jan 2013, 21:22
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon Mathias » 15. Feb 2017, 09:46 Re: Text in OpenGLcontrol

Am OS liegt dies nicht, es is die Graka oder der Treiber.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3179
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Mathias » 15. Feb 2017, 18:28 Re: Text in OpenGLcontrol

Kannst du die Ausgabe des Programms im Anhang posten ?
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3179
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

• Themenende •
Vorherige

Zurück zu Multimedia



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste

porpoises-institution
accuracy-worried