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

Aktuelle Zeit: Fr Jul 18, 2025 04:40

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



Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Mi Aug 05, 2009 15:34 
Offline
DGL Member

Registriert: So Aug 10, 2008 21:27
Beiträge: 3
Wohnort: München
Hallo,

ich habe eine Datenstruktur *data ( gepackt mit normals und vertices), mit der ich eine displayList erstellt habe.
Das funktioniert.
Jedoch bei :

glInterleavedArray(GL_N3F_V3F, 0, data);
GLuint length = [data length];
glDrawArrays(GL_TRIANGLES,0,length);

passiert nichts, liegt sicher an der grossen Wissenslücke, kann die mir jemand füllen ?

Uwe

_________________
Was ich weiß muss ich nicht glauben


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Aug 05, 2009 16:21 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Okt 04, 2006 15:42
Beiträge: 78
Wohnort: Bonn
Programmiersprache: Python, C++, Delphi
Erstmal: Willst du Displaylisten benutzen, oder Vertexarrays? Irgendwie hat mich dein erster Satz
total verwirrt.

Jedenfalls: Wenn du VAs benutzen willst, muss du sie auch vorher aktivieren:


Code:
  1.  
  2. glEnableClientState(GL_VERTEX_ARRAY);
  3.  
  4.  



Außerdem: Was soll "data length" sein? Die Anzahl der N3F_V3F-Strukturen in deinem Array? Wenn ja:
Gut, das muss so.


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So Aug 09, 2009 19:08 
Offline
DGL Member

Registriert: So Aug 10, 2008 21:27
Beiträge: 3
Wohnort: München
Danke für deine Anteilnahme.
Eigentlich wollte ich mit VBO arbeiten, das hat aber nicht hingehauen.
Es gab keinen glError, aber es ist nichts passiert.
Also zurück zu den guten alten displayLists. Dann habe ich gelesen, dass ein glInterleavedArray in einer displayliste sofort ausgeführt wird
und nicht in die Liste aufgenommen wird. Also habe ich meine NSdata in einer displayList verwurstet, das hat funktioniert, ist aber sehr langsam.

Wenn es dir nicht zu viel Mühe macht, könntest du mir mal zeigen, wie ich die daten mit der VBO-Technik auf den Schirm bringe.

Zu glDrawArrays(): habe ich einen Fehler gemacht, richtig wäre: [data length]/(6*sizeof(GLfloat)).

Gruss Uwe

_________________
Was ich weiß muss ich nicht glauben


Zuletzt geändert von VanceRegnet am So Aug 09, 2009 19:16, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Aug 09, 2009 19:11 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Okt 04, 2006 15:42
Beiträge: 78
Wohnort: Bonn
Programmiersprache: Python, C++, Delphi
DelphiGL hat ein schönes Tutorial über Vertex Buffer Objects im Wiki:
http://wiki.delphigl.com/index.php/Tuto ... fferobject

Prinzipiell lassen sich VBOs genau so verwenden, wie Arrays auch. Wenn ein VBO
gebunden ist, lässt man einfach den Pointer-Parameter der entsprechenden Funktionen
auf nil und es wird automatisch das aktuell gebundene VBO als Datenquelle verwendet.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Aug 09, 2009 19:22 
Offline
DGL Member

Registriert: So Aug 10, 2008 21:27
Beiträge: 3
Wohnort: München
Danke, das Tutorial werde ich mir mal zu Gemüte ziehen.
Vorab habe ich noch eine Frage: Die VBOs bleiben bleiben ja im VRAM bis glDeleteBuffers(). Gibt es ein Makro, mit dem ich den freien Speicher abfragen kann ?

_________________
Was ich weiß muss ich nicht glauben


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


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