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

Aktuelle Zeit: Do Mai 23, 2024 07:44

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



Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Vertex-Array-Objects wofür?
BeitragVerfasst: Mi Dez 05, 2012 11:47 
Offline
DGL Member

Registriert: Mo Dez 03, 2012 11:12
Beiträge: 2
Programmiersprache: C++
Versuche, so ein bisschen mit Vertex-Arrays, VBOs und den VAOs bekannt zu werden. So ganz krieg ich das nicht zusammen. Was Vertey-Arrays sind, habe ich rausbekommen, aber dann gelesen, dass man die nich mehr gebrauchen soll. Also VBOs, ist auch irgendwie klar geworden. Was ich absolut nicht kapiere, dass sind die VBAs. Hab mal gelesen, dass man die gebraucht, wenn man mehrere Vertex-Arrays bereitstellen will. Aber von den Vertex-Arrays sind wir doch runter. Und bei VBOs? Und wozu genau? In einem Tutorial wurde das gemacht, VBOs und ein VBA zusammen, aber ich konnte keine Verbindungslinie zwischen den beiden Sachen entdecken. Also hab ich die VBAs mal rausgeschmissen. Funktionierte dann genau so. Wozu also?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Vertex-Array-Objects wofür?
BeitragVerfasst: Mi Dez 05, 2012 17:21 
Offline
DGL Member

Registriert: Sa Mär 31, 2012 23:14
Beiträge: 26
Programmiersprache: PASCAL
Also Vertex-Arrays sind Speicher im (normalen) RAM, der deine Vertexdaten enthält. Wie du gesagt hast sollte (mit OpenGL3: kann) man sowas (offiziell) nicht mehr machen. Ist ja auch Schwachfug die Daten jeden Frame neu hochzuladen. Dafür gibt es VBOs: Bei denen wird der Speicher in VRAM alloziiert, und du musst (wie bei VAs auch) mit glVertexAttribPointer() u.Ä. die Einstellungen treffen und die Puffer glBindBuffer()-en.
Vertex-Array-Objects (VAOs) speichern jetzt diese Pufferbindungen und Einstellungen, sodass du statt 5 mal glVertexAttribPointer() nur noch 1x glBindVertexArray() aufrufst, du kapselst damit also deine Infos, wie OpenGL die Daten verarbeiten soll. Die VAOs funktionieren dabei sowohl mit VBOs als auch (in OpenGL < 3 oder NVidias Interpretation) mit den veralteten VertexArrays.
Und nicht VA = Vertex Array und VAO = Vertex-Array-Object durcheinanderbringen ^^

_________________
The force, strong it is in OpenGL.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Vertex-Array-Objects wofür?
BeitragVerfasst: Do Dez 06, 2012 08:54 
Offline
DGL Member

Registriert: Mo Dez 03, 2012 11:12
Beiträge: 2
Programmiersprache: C++
Danke, ich seh schon klarer.
Wenn ich das richtig sehe, dann aktiviere ich in der Init-Phase, nachdem ich die erforderliche Anzahl von VBAs eingerichtet habe, mit glBindVertexArray das gewünschte VBA und bastel darin die gewünschten VBOs zusammen. Zur Laufzeit gebrauche ich wieder glBindVertexArray, nun aber, um das passende Bündel von VBOs auszuwählen. Ist das richtig?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Vertex-Array-Objects wofür?
BeitragVerfasst: Do Dez 06, 2012 17:24 
Offline
DGL Member

Registriert: Sa Mär 31, 2012 23:14
Beiträge: 26
Programmiersprache: PASCAL
Ja. Das ist dieses (zugegebenermaßen idiotische) Bind-To-Modify-Konzept von OpenGL, dass man Sachen binden muss um sie zu verändern/einzurichten.
Wenn dir das nicht schmeckt könntest du auch GL_EXT_direct_state_access verwenden, das ist ein alternatives Konzept dass
a) mit der Objekt-ID (also das was glGen*() zurückgibt) statt dem gebundenen Objekt arbeitet und
b) mit neueren Objects wie Samplern oder Pipelines schon ohne Extension umgesetzt wurde.
Texturen, VBOs, VAOs usw. hinken da noch hinterher, haben aber EXT_dsa. (Achtung: Die Extension muss nicht zwangsläufig vorhanden sein; aber NVidia und AMD haben sie so gut wie auf allen Karten/Treibern drauf)

_________________
The force, strong it is in OpenGL.


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 » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


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.007s | 14 Queries | GZIP : On ]