Ich hab dazu folgende Typ Vereinbarungen getroffen
Code: Alles auswählen
TVertex = Array[0..2] of Double; //ob glFloat besser ist sei dahin gestellt.....
TVertexArr = Array[0..2] of TVertex;
im Private Feld dann
Code: Alles auswählen
aCube : array of TVertexArr;
zum Einlesen der Daten folgendes
Code: Alles auswählen
setlength(aCube,AnzahlAktiveCubes);
//prüfen ob alle Blöcke inaktiv sind..wenn ja, leeres vbo ? oder gar keins?
if IsAllInactive = true then exit;
//wenn nicht:
//alle Blöcke prüfen ob aktiv oder inaktiv
//Vertexe alle aktiven Blöcke bei Laufzeit berechnen und in VBO laden
for I := 0 to 15 do //versatz Seite +i
begin
for j := 0 to 15 do //Versatz nach oben +j
begin
for k := 0 to 15 do //Versatz nach hinten -k
begin
If IsBlockActive(i,j,k) =true then
begin
//1. Dreieck L1
//aCube[0]:=(((-1.0+i+fposx,-1.0+j+fPosY, -1.0-k-fPosZ), (-1.0+i+fposx,-1.0+j+fPosY, 1.0-k-fPosZ), (-1.0+i+fposx, 1.0+j+fPosY, 1.0-k-fPosZ)));-----so sollte es sein
glVertex3f(-1.0+i+fposx,-1.0+j+fPosY,-1.0-k-fPosZ); //L1
glVertex3f(-1.0+i+fposx,-1.0+j+fPosY, 1.0-k-fPosZ);
glVertex3f(-1.0+i+fposx, 1.0+j+fPosY, 1.0-k-fPosZ);
Wie kann ich so einen speziell verbauten Array direkt befüllen..Ich hab versuchsweise erst jede Koordinate eines Punktes in einen eigenen Array eingelesen und diese dann wieder in einen Array des Dreiecks...
Ist aber sehr umständlich, da ich bei einen Würfel 12 Dreiecke hab und jedes 3 Koordinaten hat....
Es würde sich ja der Umweg über ne eigenen Füllprocedure ergeben...
Wahrscheinlich seh ich den Wald vor lauter Bäumen nicht...