GLBasic Benutzerhandbuch

Main sections

X_OBJ...

X_OBJSTART num#
X_OBJADDVERTEX x#, y#, z#, tx#, ty#, col#
X_OBJNEWGROUP
X_OBJEND



Erstellt ein 3D-Objekt zur Laufzeit.
num# gibt die Objektnummer an. Bestehende Objekte werden überschrieben.
x#, y#, z# sind die Koordinatenpunkte des Dreiecks.
tx#, ty# setzen die Texturkoordinaten für diesen Punkt. 0=links/oben 1.0=rechts/unten.

Folgende Punkte werden miteinander verbunden:
n, n-1, n-2
Pro Gruppe werden n-2 Dreiecke gezeichnet. Jedes ungerade Dreieck wird mit anderem Umlaufsinn gezeichnet, damit der oben-Vektor wieder zusammenpasst.
1---3---5
.\ / \ /|
..2---4 |
.......\|
........6


Dreiecke:
1,2,3 - 3,2,4 - 3,4,5 - 5,4,6

Sample:
// Pyramid demo
// ------------

// Erstelle eine Pyramide
X_OBJSTART 5
X_OBJADDVERTEX -5, -10, -5, 0,0,RGB(0,0,255)
X_OBJADDVERTEX 5, -10, -5, 0,0,RGB(0,0,255)
X_OBJADDVERTEX 0, 0, 0, 0,0,RGB(255,255,255) // Peak
X_OBJADDVERTEX 5, -10, 5, 0,0,RGB(0,0,255)
X_OBJADDVERTEX -5, -10, 5, 0,0,RGB(0,0,255)
// ..new Group
X_OBJNEWGROUP
// ...or Bottom
// X_OBJADDVERTEX 5, -10, -5, 0,0,RGB(0,0,255)
// X_OBJADDVERTEX -5, -10, -5, 0,0,RGB(0,0,255)

X_OBJADDVERTEX -5, -10, -5, 0,0,RGB(0,0,255)
X_OBJADDVERTEX 0, 0, 0, 0,0,RGB(255,255,255)
X_OBJADDVERTEX -5, -10, 5, 0,0,RGB(0,0,255)
X_OBJEND

// X_SAVEOBJ "Pyramid.ddd", 5
// X_LOADOBJ "Pyramid.ddd", 5
WHILE TRUE
MOUSESTATE mx, my, b1 ,b2
phi=mx*360 / 640

X_MAKE3D
X_CAMERA 0, 150, -300, 0 ,0 ,0
X_DRAWAXES 0, 0, 0

X_AMBIENT_LT 0, RGB(255,255,0)

X_MOVEMENT mx-230, 0, 0
X_SCALING 3, 3, 3
X_ROTATION phi, 0, 1, 0
X_DRAWOBJ 5, 0

SHOWSCREEN
WEND
END

See also...