Hilfe

AddTriangle

B3D

Aufruf

index% = AddTriangle (surface%, v0%, v1%, v2%)

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.


Beschreibung

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

Die v0%-, v1%- und v2%-Parameter sind Indexnummern, die von AddVertex zurükgegeben werden.

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.


Beispiel

Standardbeispiel:

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, ClearSurface, CreateMesh, CreateSurface, UpdateNormals

Übersicht 3D Grafik Surface