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

Aktuelle Zeit: Fr Jul 18, 2025 14:13

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



Ein neues Thema erstellen Auf das Thema antworten  [ 10 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Index-Array
BeitragVerfasst: Mo Okt 13, 2008 23:56 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Hi ihr,

Kann man das Index-Array auch in ein VBO packen? Im Wiki habe ich bisher nur Beispiele gefunden, wo das ganze im Anwendungsspeicher liegt.

Gruß Lord Horazont

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Okt 14, 2008 00:00 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 16, 2008 20:26
Beiträge: 158
Wohnort: Berlin
Programmiersprache: c++,c#,java,ruby,php
glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, id);
glBufferDataARB(GL_ELEMENT_ARRAY_BUFFER_ARB, anzahl*SIZEOF_INT, index-bufferdaten, GL.GL_STATIC_DRAW_ARB);
glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, 0);

rendern:
glEnableClientState(GL_VERTEX_ARRAY);
glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, id);

Also wenn ich dich und Opengl jetzt nicht komplett missverstanden habe geht das so^^

_________________
System: Phenom XII X4 955 3,21Ghz , GTX 560 TI, 4GB-Ram, Windows 7 64x


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Okt 14, 2008 00:03 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Nah, aber wo sind dann die Vertexdaten? Was habe ich von einem Indexarray ohne Vertexdaten?

Erschwerend kommt hinzu, dass es keinen passenden gl*Pointer Aufruf gibt. glIndexPointer steht für Farbindicies nicht für Indicies im VBO...

Auch nicht schlimm, dann halte ich das im Speicher.

Gruß Lord Horazont

P.S: Hammer Antwortzeit, dafür dass es mitten in der Nacht ist :)

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Okt 14, 2008 00:09 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 16, 2008 20:26
Beiträge: 158
Wohnort: Berlin
Programmiersprache: c++,c#,java,ruby,php
Oh stimmt hab seit einiger zeit nicht mehr auf die uhr geguckt ^^

mh na die vertexdaten:
glBindBufferARB(GL_ARRAY_BUFFER_ARB, eineandereid);
glBufferDataARB(GL_ARRAY_BUFFER_ARB, VertexAnzahl*SIZEOF_FLOAT, vertexbuffer-daten, GL_STATIC_DRAW_ARB);
glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0);

glBindBufferARB(GL_ARRAY_BUFFER_ARB, eineandereid);
glVertexPointer(3, GL_FLOAT, 0, 0);

Mh also ich brauch keine gl*Pointer in Java, deshalb weiß ich dass nun nicht so genau, bei mir reicht das wie oben im ersten Beitrag eigentlich total aus.

_________________
System: Phenom XII X4 955 3,21Ghz , GTX 560 TI, 4GB-Ram, Windows 7 64x


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Okt 14, 2008 00:10 
Offline
DGL Member

Registriert: Fr Okt 03, 2008 13:32
Beiträge: 367
Die Vertexdaten sind in ihrem eigenen VBO, man kann sie aber auch einfach vorne oder hinten dran speichern.

glDrawElements zeichnet dann die Primitive mit den Vertexdaten aus dem Buffer der mit "glBindBufferARB(GL_ARRAY_BUFFER_ARB, id);" gebunden wurde und mit den Indizes aus "glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, id_indizes);"

Achja und mit "glInterleavedArrays" muss man dem wohl noch sagen wie die Vertexdaten vorliegen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Okt 14, 2008 00:21 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 16, 2008 20:26
Beiträge: 158
Wohnort: Berlin
Programmiersprache: c++,c#,java,ruby,php
Lord Horazont hat geschrieben:
Erschwerend kommt hinzu, dass es keinen passenden gl*Pointer Aufruf gibt.

Nochmal dazu: das brauchst du gar nicht weil der Typ des Buffers ja GL_ELEMENT_ARRAY_BUFFER_ARB ist das unterscheidet ihn von den GL_ARRAY_BUFFER_ARB
Es reicht ihn also zu binden und draw* nimmt ihn dann automatisch.

_________________
System: Phenom XII X4 955 3,21Ghz , GTX 560 TI, 4GB-Ram, Windows 7 64x


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Okt 14, 2008 00:50 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Sehe ich das also richtig, dass GL_ELEMENT_ARRAY_BUFFER für Indicies und GL_ARRAY_BUFFER für alles andere ist? Oder ist es gerade einfach zu spät um das zu verstehen?

@revolte:
Natürlich brauchst du gl*Pointer in Java. Du hast es doch gerade selber benutzt:
revolte hat geschrieben:
glVertexPointer(3, GL_FLOAT, 0, 0);

Wahrscheinlich hab ich mich etwas undeutlich ausgedrückt, ich meinte den Aufruf, nicht den Typ.

Gruß Lord Horazont

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Okt 14, 2008 00:53 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 16, 2008 20:26
Beiträge: 158
Wohnort: Berlin
Programmiersprache: c++,c#,java,ruby,php
Ups ja das liegt doch an dieser späten Stunde, natürlich benutz ich die xD
Aber ja eigentlich siehst du das so richtig, so hab ich es jedenfalls verstanden. Ich wüsste jedenfalls nicht wann man GL_ELEMENT_ARRAY_BUFFER sosnt noch einsetzt ^^
GL_ARRAY_BUFFER

Das Puffer-Objekt wird zur Speicherung von Vertexarray-Daten benutzt.

GL_ELEMENT_ARRAY_BUFFER

Das Puffer-Objekt dient zur Speicherung von Indexwerten für Vertexarrays.

aus dem Wiki =)

_________________
System: Phenom XII X4 955 3,21Ghz , GTX 560 TI, 4GB-Ram, Windows 7 64x


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Okt 14, 2008 08:32 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Auch wenns mehrfach gesagt wurde. Ja GL_ARRAY_BUFFER dient für Vertexdaten und GL_ELEMENT_ARRAY_BUFFER für Indexdaten.

Du kannst entweder jedem Target einen eigenen Buffer zu Füßen legen oder aber du packst beide Daten in ein einziges Bufferobject. Dann musst du natürlich an die beiden Targets jeweils das gleiche BufferObject binden. Wenn sich beide Daten ein BufferObject teilen, dann musst du bei glDrawElements als IndexPointer das Offset innerhalb des BufferObjectes angeben.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Okt 14, 2008 10:35 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Wunderbar, dann ist das ja geklärt :).

Gruß Lord Horazont

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder 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.020s | 15 Queries | GZIP : On ]