Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Do Mär 28, 2024 10:13

Foren-Übersicht » Sonstiges » Meinungen zu den Projekten
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 42 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3
Autor Nachricht
BeitragVerfasst: Fr Mai 05, 2017 17:27 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1276
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
Flash hat geschrieben:
Hi Mattias, da du hier so fleißig Tutorial schreibst, hast du dir eigentlich mal überlegt mit zum DGL-Treffen zu kommen? Wäre cool.

Sicher wäre es interessant, aber solch weite Reisen sind überhaupt nicht mein Ding. Mir reicht es schon, wen ich nur von Zürich nach Bern fahren muss.

_________________
OpenGL


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So Aug 13, 2017 09:47 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Diskussion über Git in eigenen Thread verschoben.

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa Aug 26, 2017 15:02 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jun 05, 2013 15:12
Beiträge: 165
Wohnort: Glinde
Programmiersprache: Delphi 7
Hallo Mathias,

Ich habe auch gerade mit deinem Tutorial angefangen.
Nur leider habe ich bereits bei "05 - Context erzeugen" versagt.
Mein Problem war zu erkennen woher der ogc kommt.
Oder anders gesagt.
Zitat:
Man kann die TOpenGLControl-Komponente auch über die Komponenten-Leiste auf dem Form erzeugen.
Aber meine Erfahrung hat gezeigt, wenn man eine neuere Lazarus-Version installiert, dass es dann zu Problemen kommen kann.

Nein, konnte ich nicht. Deine Erfahrung stimmt.
Erst nachdem ich in der Source.zip schaute, wusste ich etwas damit anzufangen.

Code:
  1.   TForm1 = class(TForm)
  2.     procedure FormCreate(Sender: TObject);
  3.   private
  4.     ogc: TOpenGLControl;
  5.     procedure InitScene;
  6.     procedure DrawScene(Sender: TObject);
  7.   public
  8.   end;  


Gruß der dumme Wolf

_________________
幸福は笑う人に来て ~~ koufuku wa warau hito ni kite
Das Glück kommt zu denen die lachen


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa Aug 26, 2017 19:43 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1276
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
Zitat:
Nein, konnte ich nicht. Deine Erfahrung stimmt.

Das wird wohl auch der Grund sein, wieso das die Coder von den Lazarus Examples den Context auch dynamisch zur Laufzeit erzeigen.

Zitat:
Mein Problem war zu erkennen woher der ogc kommt.

Das muss ich wohl ein bisschen übersichtlicher machen. :wink:

Zitat:
Ich habe auch gerade mit deinem Tutorial angefangen.

Wen etwas unklar ist, einfach melden.

PS:
Zitat:
Nur leider habe ich bereits bei "05 - Context erzeugen" versagt.

Ich habe dies angepasst, hoffentlich ist es jetzt verständlicher. :wink:

_________________
OpenGL


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di Aug 29, 2017 14:27 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jun 05, 2013 15:12
Beiträge: 165
Wohnort: Glinde
Programmiersprache: Delphi 7
Ahoi,
wie sieht es eigentlich mit der "Objectselektion" aus?
Machst du darüber auch noch ein Tutorial oder ist es möglich den Code aus der Delphi Wiki zu benutzen/modifizieren?

Gruß Wolf

_________________
幸福は笑う人に来て ~~ koufuku wa warau hito ni kite
Das Glück kommt zu denen die lachen


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di Aug 29, 2017 17:04 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1276
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
Zitat:
wie sieht es eigentlich mit der "Objectselektion" aus?

Dies ist mir zu komplex, mit sowas habe ich mich nicht befasst.

Bei meinem Tutorial geht es mehr darum, wie man Objekte rendern kann.

Was ich als nächstes plane, ist Alpha-Blending.

_________________
OpenGL


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa Nov 11, 2017 14:10 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jun 05, 2013 15:12
Beiträge: 165
Wohnort: Glinde
Programmiersprache: Delphi 7
Die oglShader.pas in der Zeile 263 ein Range check Error.

// Check Shader

glGetShaderiv(ShaderObject, GL_COMPILE_STATUS, @ErrorStatus);
glGetShaderiv(ShaderObject, GL_INFO_LOG_LENGTH, @InfoLogLength);
SetLength(Str, InfoLogLength);
glGetShaderInfoLog(ShaderObject, InfoLogLength, @InfoLogLength, @Str[1]);
if ErrorStatus = GL_FALSE then begin
WriteLog('SHADER FEHLER: OpenGL Shader Fehler (' + IntToStr(shaderType) + ') in : ' + AShader + sLineBreak + sLineBreak + Str);
Halt;
end;

Ich vermute das @Str[1] nicht vorhanden ist.

Hab es auf 7 PC's getestet und bei 3en kommt:
Code:
  1.  
  2. 201 Range check error If you compiled your program with range checking on, then you can get this error in the following cases: 1.An array was accessed with an index outside its declared range.
  3. 2.Trying to assign a value to a variable outside its range (for instance an enumerated type).
  4.  


https://www.freepascal.org/docs-html/user/userap4.html

Gebe es dafür eine neue Version :D
Ausklammern funktioniert, aber ist eine doofe lösung des Problems.

_________________
幸福は笑う人に来て ~~ koufuku wa warau hito ni kite
Das Glück kommt zu denen die lachen


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa Nov 11, 2017 16:34 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1276
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
Kannst du mal dies hier versuchen ?
Code:
  1. SetLength(Str, InfoLogLength + 1);

Es könnte sein, das der Treiber noch ein #0 hinten ran schreiben will, und dann wäre der String 1 zu lange.

Bei folgender Zeile kann man ein nil einfügen.
Code:
  1.   glGetShaderInfoLog(ShaderObject, InfoLogLength, nil, @Str[1]);


Kannst du mal testen, ob es bei dir auch funktioniert ?

Tritt das Problem bei dir bei 01_-_Einrichten_und_Einstieg/15_-_Erster_Shader auch auf ?

_________________
OpenGL


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So Nov 12, 2017 21:23 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jun 05, 2013 15:12
Beiträge: 165
Wohnort: Glinde
Programmiersprache: Delphi 7
Der fehler selber tritt nun nicht mehr auf.
Allerdings kommen nun 3 Neue.

Code:
  1. Uniform Fehler x: -1
  2. Uniform Fehler y: -1
  3. Uniform Fehler z: -1


Die genaue Herkunft ist mir nicht bekannt, könnte aber aus meinem Vertexshader stammen.

Code:
  1. #version 330
  2.  
  3. layout (location = 0) in vec3 inPos; // Vertex-Koordinaten
  4. layout (location = 10) in vec2 inUV;  // Textur-Koordinaten
  5.  
  6. uniform float x;                      // Richtung von Uniform
  7. uniform float y;
  8. uniform float z;
  9. uniform mat4 mat;
  10.  
  11. out vec2 UV0;
  12.  
  13. void main(void)
  14. {
  15.   vec3 pos;
  16.   pos.x = inPos.x + x;                  // verschiebung des Objekts
  17.   pos.y = inPos.y + y;
  18.   pos.z = inPos.z + z;
  19.   gl_Position = mat * ( vec4(inPos, 1.0)+vec4(pos, 1.0));
  20.  
  21.   UV0 = inUV;                           // Textur-Koordinaten weiterleiten.
  22. }


@edit:
Ich habe das Projekt bei mir auf dem Laptop geschrieben und dann erst später bei einem Freund den Fehler festgestellt.
Aber bei 01_-_Einrichten_undEinstieg/15-_ErsterShader ist alles ok. hab es gerade auf seinem PC getestet.

_________________
幸福は笑う人に来て ~~ koufuku wa warau hito ni kite
Das Glück kommt zu denen die lachen


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So Nov 12, 2017 22:29 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1276
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
Zitat:
Allerdings kommen nun 3 Neue.


Wie sieht UniformLocation in deinem Lazarus-Code aus ?
Hast du evtl. 'X' anstelle 'x' geschrieben ?

Der Fehler sagt, das er die Uniform-Variable nicht finden kann.

Zitat:
Der fehler selber tritt nun nicht mehr auf.

Ich habe das Tutorial angepasst. :wink:

_________________
OpenGL


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So Nov 12, 2017 23:02 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jun 05, 2013 15:12
Beiträge: 165
Wohnort: Glinde
Programmiersprache: Delphi 7
Nein habe es ebenso klein geschieben.

X_ID := Shader.UniformLocation('x'); // Ermittelt die ID von x.
Y_ID := Shader.UniformLocation('y'); // Ermittelt die ID von y.
Z_ID := Shader.UniformLocation('z'); // Ermittelt die ID von z.

_________________
幸福は笑う人に来て ~~ koufuku wa warau hito ni kite
Das Glück kommt zu denen die lachen


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So Nov 12, 2017 23:20 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1276
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
Kannst du mal dein Project als ZIP hochladen, dann findet ich eher den Fehler.
Vorher noch die EXE entfernen.

_________________
OpenGL


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 42 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3
Foren-Übersicht » Sonstiges » Meinungen zu den Projekten


Wer ist online?

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


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.223s | 17 Queries | GZIP : On ]