Index=ADDTRIANGLE (Surface, v0, v1, v2)


BeschreibungBlitz3D
Die Funktion ADDTRIANGLE fügt ein Dreieck (triangle) zu einer Oberfläche (surface) hinzu. Dabei wird die Indexnummer des Dreiecks zurückgeliefert (ab 0).

v0-, v1- und v2-Parameter sind Indexnummern, die mit ADDVERTEX ermittelt werden können.

Abhängig von der Anordnung der Ecken wird ein Dreieck nur von bestimmter Seite sichtbar. Ein Dreieck hat drei Punkte, die durch Vertex definiert werden. Die Vertexpunkte werden miteinander verbunden v0 bis v2. Ist die Reihenfolge der Punkte im Uhrzeigersinn (relativ zum Betrachter), so ist ein Dreieck sichtbar. Ist die Reihenfolge gegen den Uhrzeigersinn, so bleibt ein Dreieck unsichtbar.



Der Grund für die sichtbaren Dreiecke liegt auf der Hand: Dadurch wird die Anzahl der Dreiecke deutlich reduziert. Zudem wird somit nur die Seite gerendert, die auch tatsächlich sichtbar sein kann. Falls ein Dreieck von beiden Seiten sichtbar sein soll, dann muss man nur zwei Dreiecke erstellen (wobei ein Vertex mit dem anderen vertauscht ist) - benutze auch COPYENTITY oder FLIPMESH.

Mehrere Dreiecke können auch die selben Vertexpunkte benutzen. Leider verschlechtert es die Schattierung der Objekte. BlitzBasic erstellt standardmäßig mit jedem Dreieck drei Vertexpunkte.


Parameter
Surface=Identität einer Gitteroberfläche (surface)
v0=Index eines Vertex (siehe ADDVERTEX)
v1=Index eines Vertex (siehe ADDVERTEX)
v2=Index eines Vertex (siehe ADDVERTEX)


Rückgabewert
Es wird eine Indexnummer des Dreiecks zurückgeliefert.


Beispiel
Dieses Programm demonstriert die Erstellung eines Gitterobjekts:

GRAPHICS3D 640,480,16,2
SETBUFFER BACKBUFFER()
camera=CREATECAMERA()
light=CREATELIGHT()
POSITIONENTITY camera,0,0,-5
ROTATEENTITY light,90,0,0

brush=CREATEBRUSH(0,255,0)
mesh=CREATEMESH()
surface=CREATESURFACE(mesh,brush)
v0=ADDVERTEX(surface,0,0,0)
v1=ADDVERTEX(surface,1,-1,0)
v2=ADDVERTEX(surface,-1,-1,0)
ADDTRIANGLE(surface,v0,v1,v2)
UPDATENORMALS mesh

WHILE NOT KEYHIT(1)
   RENDERWORLD
   FLIP
WEND
END


Siehe auch
ADDVERTEX, CREATEMESH, CREATESURFACE, UPDATENORMALS