Registriert: Do Dez 07, 2006 01:49 Beiträge: 2 Wohnort: Rosenheim
Hallo zusammen.
Ich schreibe gerade ein kleines CAD-Programm, in dem man mehrere Linien auswählen kann,
um dann aus den Punkten der Linien ein Polygon zu erzeugen.
Das Polygon erzeuge ich über gluTessVertex(..) und das funktioniert soweit ganz gut.
Mein Problem besteht darin, dass ich das Polygon gerne texturieren würde, das aber nicht
hinbekomme.
Der auskommentierte Teil am Ende der Tesselate-Methode zeichnet einen texturierten triangle_fan
mit den gleichen Werten, die mir das gtVertex3f-Callback liefert. (Das waren ursprünglich 2 Linien,
die jeweils den Ursprung als Punkt besessen haben. Deswegen sind es vier Punkte.)
Was ich jetzt nicht verstehe warum das ganze nicht schon im gtVertex3f-Callback funktioniert
-> hier wird zwar das Polygon gezeichnet aber ohne Textur.
Kann mir jemand sagen was ich da falsch mache?
Danke schonmal im Voraus.
Gruß Mathias
Code:
procedure TOGLPoly.Tesselate;
var
n :integer;
GLArrayd3: TGLArrayd3;
GluObj: PGLUtesselator;
myPointList:arrayof TGLArrayf3;
I:Integer;
p : T3DPoint;
begin
n := points.Count;
TessCount := n;
// Definition eines nicht-konvexen Objektes
SetLength(myPointList, n);
for I :=0to n-1do
begin
p := T3DPoint(points[i]);
myPointList[I][0]:= p.X;
myPointList[I][1]:= p.Y;
myPointList[I][2]:= p.Z;
end;
// links unten und rechts oben, höhe, breite berechnen
Registriert: Di Dez 27, 2005 12:44 Beiträge: 393 Wohnort: Berlin
Programmiersprache: Java, C++, Groovy
Hallo kraenzel,
gluTessBeginPolygon(GluObj, nil) generiert ein glBegin, dass heisst du darfst danach z.B. kein glEnable(GL_TEXTURE_2D) aufrufen (das führt zu einem internen OpenGL-Fehler und der Befehl wird nicht ausgeführt)
Versuche mal Zeile 40 bis 48 vor gluTessBeginPolygon(GluObj, nil); zu packen.
Mitglieder in diesem Forum: 0 Mitglieder und 8 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.