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

Aktuelle Zeit: Do Apr 18, 2024 23:42

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



Ein neues Thema erstellen Auf das Thema antworten  [ 1 Beitrag ] 
Autor Nachricht
 Betreff des Beitrags: Instancen ohne glBindBuffer
BeitragVerfasst: Di Okt 03, 2023 14:39 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1278
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
Bei den normalen Attributen und mit den ArrayElementen funktioniert es wunderbar
Nur bei den Instancen kriege ich es nicht hin, auf glBindBuffer zu verzichten.
Jemand eine Idee, wie man dies lösen könnte ?
Code:
  1. glGenVertexArrays(1, @VBQuad.VAO);
  2.   glBindVertexArray(VBQuad.VAO);
  3.  
  4.   // Attribute Vektor und Color
  5.   glCreateBuffers(1, @VBQuad.VBO);
  6.   glNamedBufferStorage(VBQuad.VBO, Length(QuadVector) * SizeOf(TVector6f), PVector6f(QuadVector), GL_MAP_WRITE_BIT);
  7.  
  8.   glVertexAttribBinding(0, 0);
  9.   glVertexAttribFormat(0, 3, GL_FLOAT, GL_FALSE, 0);
  10.   glEnableVertexAttribArray(0);
  11.  
  12.   glVertexAttribBinding(1, 0);
  13.   glVertexAttribFormat(1, 3, GL_FLOAT, GL_FALSE, 12);
  14.   glEnableVertexAttribArray(1);
  15.  
  16.   glBindVertexBuffer(0, VBQuad.VBO, 0, 24);
  17.  
  18.   // ArrayElement
  19.   glCreateBuffers(1, @VBQuad.EBO);
  20.   glNamedBufferData(VBQuad.EBO, Length(QuadIndices) * SizeOf(TGLuint), PGLshort(QuadIndices), GL_STATIC_DRAW);
  21.   glVertexArrayElementBuffer(VBQuad.VAO, VBQuad.EBO);
  22.  
  23.   // Instance
  24.   glCreateBuffers(1, @VBQuad.IVBO);
  25.   glNamedBufferData(VBQuad.IVBO, QuadInstance.Size, PGLint(QuadInstance), GL_STATIC_DRAW);
  26.  
  27.  
  28.   //  mit glBindBuffer
  29.   // geht
  30.   glVertexArrayBindingDivisor(VBQuad.VAO, 10, 1);
  31.   glBindBuffer(GL_ARRAY_BUFFER, VBQuad.IVBO);
  32.   glVertexAttribPointer(10, 2, GL_FLOAT, GL_FALSE, 0, nil);
  33.   glEnableVertexAttribArray(10);
  34.  
  35.   //  ohne glBindBuffer
  36.   // geht nicht
  37.   glVertexArrayVertexBuffer(VBQuad.VAO, 0, VBQuad.IVBO, 0, SizeOf(TVector2f));
  38.   glEnableVertexArrayAttrib(VBQuad.VAO, 0);
  39.   glVertexArrayAttribFormat(VBQuad.VAO, 10, 2, GL_FLOAT, GL_FALSE, 0);
  40.   glVertexArrayAttribBinding(VBQuad.VAO, 10, 0);
  41.   glVertexArrayBindingDivisor(VBQuad.VAO, 0, 1);
  42. end;


Dies ist da einzige, was ich mit Onkel Google gefunden habe, aber ich kriege es nicht hin. https://stackoverflow.com/questions/529 ... dex-buffer

_________________
OpenGL


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 15 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:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.031s | 21 Queries | GZIP : On ]