Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
In jedem Fall ist @ibo bei glDrawElements nicht richtig. Der letzte Parameter für glDrawElements ist ein Byte-Offset innerhalb des gebundenen IBOs, wenn ein IBO gebunden ist (sonst ist es tatsächlich ein Pointer). In deinem Fall ist ein IBO gebunden, daher solltest du da nil übergeben. Das ist im OpenGL Wiki, Artikel Vertex Rendering auch erklärt.
Das sollte dann an sich auch funktionieren. glDrawArrays ist aber der einfachere Befehl hier.
viele Grüße, 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 network • my 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
In deinem Fall ist ein IBO gebunden, daher solltest du da nil übergeben.
Mit dem nil bekomme ich dann ein SIGSEGV.
@ mathias mit dem weglassen des IBO-bindens sehe ich auch nur schwarz. Da muss also noch etwas anderes sein - ich versuche nicht nur ein Quadrat zu zeichnen sondern etwas komplexeres aus Quadraten. Da stimmt vielleicht etwas mit den Indizen nicht. Mal sehen.
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Sicher dass du das IBO korrekt befüllt hast? Der Code fehlt in deinem Beispiel (aus dem ersten Post). Du mappst das vbo, aber unmapst das ibo. Das erscheint mir falsch. Was ist der Typ von pi?
viele Grüße, 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 network • my 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
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Du rufst zweimal BindArrayBuffer von fVAO auf, einmal mit vbo und einmal mit ibo. Das klingt falsch, sollte eins davon nicht anders sein?
viele Grüße, 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 network • my 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
Was ich komisch finde, du behandelst den IBO und VBO mit den gleichen Methode. Auch das Create sieht gleich aus.
Wen du aber meinen Code anschaust, werden die beiden Puffer anders geladen. Beachte GL_ARRAY_BUFFER und GL_ELEMENT_ARRAY_BUFFER. Ich kenne LazOpenGLCore nicht, aber ich denke kaum, das dort eine Auto-detect Funktion vorhanden ist.
Registriert: Di Apr 29, 2008 18:56 Beiträge: 1213
Programmiersprache: Delphi/FPC
Hey,
nur noch ne kurze Info zum LazOpenGlCore. Das ist einfach nur ein Klassen-Wrapper für die OpenGL Methoden. Die Parameter sind eig genau die selben. Mit Ausnahme von von irgendwelchen Objektnamen (Objekt-IDs) die übergibt die Wrapper Klasse automatisch für das aktuelle Objekt.
€: Ich hab nur alles in Klassen oder Enums gewrappt, weil man dann im Editor genau sieht welche Werte für welche Parameter möglich sind. Das macht es am Anfang bisl einfacher.
Ich finde es besser, wen man am Anfang OpenGL nativ verwendet, so sieht man eher was passiert und versteht es auch besser. Aber dies ist wohl Geschmacksache.
Registriert: Di Apr 29, 2008 18:56 Beiträge: 1213
Programmiersprache: Delphi/FPC
Wie gesagt, die calls die du machen musst sind die selben. Da nimmt dir der Klassen-Wrapper nix ab. Du wirst IMHO nur besser durch die IDE unterstützt und es wird sichergestellt das alles sauber abgeräumt wird. Aber stimmt schon, is alles Geschmackssache
Mitglieder in diesem Forum: 0 Mitglieder und 14 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.