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

Aktuelle Zeit: Fr Jul 04, 2025 20:29

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 17 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Mi Sep 16, 2009 10:27 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Dez 03, 2008 12:01
Beiträge: 167
Wohnort: /country/germany
Programmiersprache: C++ / FreeBASIC
Ich lege also zwei VBOs an und binde die an Attribute im Shader? Und das wars? Oder hab ich da wieder was falsch verstanden?

Wenn du ein bisschen Code für mich hättest, das mir zeigt wie das alles letztendlich geht wäre das super :)

_________________
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst -- Steve Wozniak


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Sep 17, 2009 21:37 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2623
Wohnort: Berlin
Programmiersprache: Go, C/C++
Code:
  1. Initialisierung:
  2. VBO erstellen
  3. VBO binden
  4. VBO daten hoch laden
  5.  
  6. Shader Erzeugen
  7. Attribut aktivieren(glEnableVertexAttribArray(glGetAttribLocation(m_ShaderID,AttributeName));)
  8.  
  9. ...
  10.  
  11. Renderroutine:
  12. VBO binden
  13. Shader binden
  14. Attribut von Shader an VBO binden (glVertexAttribPointer(glGetAttribLocation(m_ShaderID,AttributeName),ElementCount,TShaderAttributeTypeOpenGL[Type],GL_FALSE,ByteOffset,0); )
  15. anderes VBO binden
  16. anderes Attribut von Shader an VBO binden...
  17. Indices VBO binden
  18. Zeichnen via Indices VBO

Indices sind nicht zwingend notwendig aber wer sie nicht nutzt ist selber schuld, da sie bei größeren Meshes Speicher einsparen und zumal das Vertexcaching verbessern und somit höheren Verticedurchsatz ermöglichen. Entsprechend gibt es eine Zeichenroutine für VBOs mit Indices und ohne. Es gibt auch nur 2 Arten von VBO Element(Indices) und VBO Attribute(was man halt so reinstopfen will). Man sieht recht gut, dass man viele Bindings braucht, das war vorher auch so aber nun fällt es auf, weil der Code stark zusammen geschrumpft ist.
Bindings bilden bei OpenGL3 aktuell das Bottleneck, da es die meist aufgerufende Funktion ist und zumal eine recht teure und unnötige dazu. Mit OpenGL3 sind bindings oft völlig sinnfrei(beim aller ersten binding wird ein OpenGL Objekt erzeugt nicht bei genBlupp ;) ) daher hat NV mal eine Extension entwickelt welche die Pointer im VRAM zurück gibt und diese in einem OpenGL Objekt sammelt, damit kann man mit einem Binding dann alle Ressourcen eines Renderjobs mit einmal binden und spart ne menge Zeit. Um sowas unnötig zu machen müsste man den überwiegenden Teil der OpenGL3 Befehle anpassen aber das ist unwahrscheinlich, darum wird es wohl auf solch eine Lösung hinaus laufen.

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 17 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 3 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.006s | 15 Queries | GZIP : On ]