Du hast ja da ein Array von Arrays. Das liegt normalerweise nicht am Stück im Speicher. glVertexPointer & Co brauchen das aber ein einem zusammenhängenden Speicherbereich. Einfachste Lösung:
Evtl verbraucht das mehr als 12byte speicher? Evtl noch mehr daten als nur X, Y und Z drin..? Virtuelle funktionen..? Irgendwas?
EDIT: Dein glDrawElements.. da am ende der letzte Parameter, da übergibst du einen Array von Faces... wieso das? Da sollte einfach nur ein Index-Array (bestehend aus nur INTs) stehen. Das wird der fehler sein.
Kommt glDrawElements wirklich mit diesen Faces klar?
Code:
struct face { uvec3 v; uvec3 n; uvec2 t; };
Meiner Meinung nach funktioniert das nur wenn ein Face direkt ein uvec3 ist. Mich wundert außerdem das für die Texturen nur ein uvec2 da ist, obwohl du ja für ein Dreieck drei Sätze von je zwei Texturkoordinaten brauchst.
Ich vermute ganz stark das du sehr viele doppelte faces hast. Zwar sind da auch die dabei die du brauchst damit es korrekt aussieht, aber deine 3 Normalen und 3 UV-Indices erzeugen ebenfalls ein Triangle, diese dürften sich entweder perfekt mit deinen decken oder das innere deiner Sphere schaut sehr lustig aus
Schau dir das ganze mal im Wireframe an.
Damit es korrekt ist, mußt du bei deinem face-struct die Normalen und UV Index'e weglassen. OpenGL kann leider nur einen Index der für alles (Vertex, Normal, UV, Color etc) gilt.. nicht einen einzelnen für jedes. Sprich wenn ein Vertex 2 verschiedene UV Koordinaten hat, mußt du es doppelt speichern.
Aya
PS @Coolcat: Seine UVs sind zwar als uvec2 deklariert, aber uvec2 ist als vec3<unsigned> deklariert.. sprich es ist eigentlich ein uvec3.
PS @Coolcat: Seine UVs sind zwar als uvec2 deklariert, aber uvec2 ist als vec3<unsigned> deklariert.. sprich es ist eigentlich ein uvec3.
Ah...ja, dann sind entweder die Indices für Positionen, Normalen und Texturkoordinaten sowieso gleich und es wird einfach alles dreifach gezeichnet, oder wie Aya schon sagte...das innere deiner Sphere sieht lustig aus.
Mitglieder in diesem Forum: 0 Mitglieder und 5 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.