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

Aktuelle Zeit: Di Apr 23, 2024 18:59

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Was geht in den Video-Speicher
BeitragVerfasst: Sa Jan 25, 2014 16:42 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1278
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
So wie es aussieht, bleiben die Vertex-Daten im Hauptspeicher des Rechners, anderst sieht es mit Textur-Daten aus.
Oder habe ich da was übersehen ?
Code:
  1. glBindVertexArray(VAO);
  2.  
  3. glBindBuffer(GL_ARRAY_BUFFER, VBOvertex);
  4. glBufferData(GL_ARRAY_BUFFER, Size3(Vertex), Pointer(Vertex), GL_STATIC_DRAW);
  5. glEnableVertexAttribArray(Vertex_id);
  6. glVertexAttribPointer(Vertex_id, 3, GL_FLOAT, False, 0, nil);
  7. SetLength(Vertex, 3); // Es wird pro Objekt nur noch ein Dreieck gezeichnet,
  8.                       // obwohl die Vertex Daten, mit glBufferData übergeben wurden.  


Es gibt wie erwartet ein schwarzer Punkt in der Textur.
Code:
  1. TexturData.Data[5] := 0;  // setzt einen schwarzen Punkt.
  2. glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, TexturData.x, TexturData.y, 0, GL_RGBA, GL_UNSIGNED_BYTE, Pointer(TexturData.Data)); 

Es gibt kein schwarzer Punkt mehr.
Code:
  1. glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, TexturData.x, TexturData.y, 0, GL_RGBA, GL_UNSIGNED_BYTE, Pointer(TexturData.Data));
  2. TexturData.Data[5] := 0;  // setzt einen schwarzen Punkt. 

_________________
OpenGL


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Was geht in den Video-Speicher
BeitragVerfasst: Sa Jan 25, 2014 20:57 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 14, 2013 21:17
Beiträge: 588
Programmiersprache: C++
Nö, Vertexdaten landen via glBufferData im VBO - also im Grafikspeicher. Wie viele Vertices davon gerendert werden, bestimmst du beim Aufruf der glDraw*-Funktion.

_________________
So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Was geht in den Video-Speicher
BeitragVerfasst: Sa Jan 25, 2014 21:11 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1278
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
Ups, ich habe etwas kleines übersehen.
Wen ich die Länge von vertex ändere, kommt da auch eine falsche Anzahl von vertex. :oops:
Code:
  1. glDrawArrays(GL_TRIANGLES, 0, Length(vertex)); 

Könnte man in diesem Fall, den Speicher bereinigen, in dem man die Vertex-Länge auf 0 setzt.
Code:
  1. SetLength(vertex, 0);

Man könnte ja die Vertex-Länge speichern.
Dasselbe währe mit den Texturdaten auch möglich.

Oder ist dies keine gute Idee ?

_________________
OpenGL


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Was geht in den Video-Speicher
BeitragVerfasst: Sa Jan 25, 2014 21:31 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 14, 2013 21:17
Beiträge: 588
Programmiersprache: C++
Wenn du die Daten im Hauptspeicher nicht mehr benötigst, kannst/solltest du sie freigeben. Buffer-Objekte, die im Grafikspeicher liegen, sind davon nicht betroffen (für die gibt es ja die glDelete*-Funktionen).

_________________
So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 73 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.126s | 17 Queries | GZIP : On ]