GLBasic Benutzerhandbuch

Main sections

X_AUTONORMALS

X_AUTONORMALS mode#



Bestimmt ob, und wie die Licht-Normalenvectoren für die nächsten User-Objekte berechnet werden.
mode#:
0 : Keine Normalenberechnung - schnell, wenn man kein Licht braucht
1 : Normalenvektoren einzeln für jedes Dreieck
2 : Flächennormalen

Modus 1 gibt die Möglichkeit Würfel oder andere Objekte mit "harten Kanten" zu erstellen.
Bei Modus 2 wird angenommen, dass alle Dreiecke, die an den gleichen Punkt anschließen auch zu diesem gehören. Die Normalenvektoren werden an einem Flächenknick weich gemittelt.

// --------------------------------- //
// Project: AutoNormals
// Start: Thursday, September 30, 2004
// IDE Version: 2.40924

X_AUTONORMALS 1
Cube(0)
X_AUTONORMALS 2
Cube(1)

WHILE TRUE
X_MAKE3D 1, 100, 45
X_CAMERA 0,2,7, 0,.5,0
X_SPOT_LT 0, RGB(255,255,255), 0,2,7, 0,0,-1, 45
phi=phi+GETTIMER()/50
X_MOVEMENT -2, 0, 0
X_ROTATION phi, 0,1,0
X_DRAWOBJ 0, 0
X_MOVEMENT 2, 0, 0
X_ROTATION phi, 0,1,0
X_DRAWOBJ 1, 0
SHOWSCREEN
WEND



// ------------------------------------------------------------- //
// -=# CREATECUBE #=-
// ------------------------------------------------------------- //
FUNCTION Cube: num
LOCAL col
col=RGB(0xff, 0xff, 0xff) // white
X_OBJSTART num
// Front Face
X_OBJADDVERTEX .5, -.5, .5, 1, 0, col
X_OBJADDVERTEX -.5, -.5, .5, 0, 0, col
X_OBJADDVERTEX .5, .5, .5, 1, 1, col
X_OBJADDVERTEX -.5, .5, .5, 0, 1, col
X_OBJNEWGROUP
// Back Face
X_OBJADDVERTEX -.5, .5, -.5, 1, 1, col
X_OBJADDVERTEX -.5, -.5, -.5, 1, 0, col
X_OBJADDVERTEX .5, .5, -.5, 0, 1, col
X_OBJADDVERTEX .5, -.5, -.5, 0, 0, col
X_OBJNEWGROUP
// Top Face
X_OBJADDVERTEX -.5, .5, .5, 0, 0, col
X_OBJADDVERTEX -.5, .5, -.5, 0, 1, col
X_OBJADDVERTEX .5, .5, .5, 1, 0, col
X_OBJADDVERTEX .5, .5, -.5, 1, 1, col
X_OBJNEWGROUP
// Bottom Face
X_OBJADDVERTEX .5, -.5, -.5, 0, 1, col
X_OBJADDVERTEX -.5, -.5, -.5, 1, 1, col
X_OBJADDVERTEX .5, -.5, .5, 0, 0, col
X_OBJADDVERTEX -.5, -.5, .5, 1, 0, col
X_OBJNEWGROUP
// Right face
X_OBJADDVERTEX .5, .5, -.5, 1, 1, col
X_OBJADDVERTEX .5, -.5, -.5, 1, 0, col
X_OBJADDVERTEX .5, .5, .5, 0, 1, col
X_OBJADDVERTEX .5, -.5, .5, 0, 0, col
X_OBJNEWGROUP
// Left Face
X_OBJADDVERTEX -.5, -.5, .5, 1, 0, col
X_OBJADDVERTEX -.5, -.5, -.5, 0, 0, col
X_OBJADDVERTEX -.5, .5, .5, 1, 1, col
X_OBJADDVERTEX -.5, .5, -.5, 0, 1, col
X_OBJNEWGROUP
X_OBJEND

ENDFUNCTION // sz

See also...