J3D - TriangleStripArray
-
Hallo,
ich will mit dem TriangleStripArray eine Mantelfläche einer Pyramide definieren. Leider wird bisher nur die vordere Fläche dargestellt.
Ich habe schon lange gesucht, aber den Fehler nicht gefunden.int N = 6; TriangleStripArray ta = new TriangleStripArray(N, TriangleStripArray.COORDINATES | TriangleStripArray.COLOR_3, new int[]{N}); Point3f points2[] = new Point3f[N]; points2[0] = new Point3f(0f,1.2f,+0f); points2[1] = new Point3f(-1f,0f,+1f); points2[2] = new Point3f(+1f,0f,+1f); points2[3] = new Point3f(+1f,0f,-1f); points2[4] = new Point3f(-1f,0f,-1f); points2[5] = new Point3f(-1f,0f,+1f); //....Farben usw. setzen ta.setCoordinates(0, points2);
-
hi
ist zwar schon etwas länger her.
es ligt am vewendung vom Triangel strip Array. so weit ich mich noch errinern kann werden immer nur die letzten 3koordinaten zu einem dreieck zusammen gebaut. ( auser das war ein anderes array) heist bei 6 kordinaten ergeben sich volgende dreiecke.
0,1,2
1,2,3
2,3,4
3,4,5das was du verwenden wolltes nent sich triangle fan array. hier wird immer der este mit den letzten beiden punkten zu einem dreieck verknüpft.
0,1,2
0,2,3
0,3,4
0,4,5ggf mustt du noch die normalen anpassen. zumindestens bei einem triangle strip array ist das notwendig. poligone haben nur ein sichbare fläche. von der rückseite sind sie durchsichtig. Sollte dir ja bekannt sein. Dies hat etwas mit der Renderengine und deren optimierung zu tun. ( den innenraum einer kugel muss ja nicht gerändert werden, wenn sich die kamera auserhalb befindet).
gruss Termite
-
Oh mein Gott. Ich wollte auch das TriangleFanArray nehmen und habe die ganze Zeit nicht gemerkt, dass ich überall das StripArray nehme.
ICh glaube, ich sollte aufhören nachts um 3 Uhr zu programmieren.Vielen Dank nochmal!