Hilfe

Graphics3D

B3D

Aufruf

Graphics3D breite%, hoehe% [, farbtiefe%] [, modus%]

Parameter

breite% Breite der Auflösung in Pixel
hoehe% Höhe der Auflösung in Pixel
farbtiefe% Farbtiefe (0=auto, 16, 24 oder 32 Bit)
modus% 0-automatisch (Fenstermodus bei Debug, sonst Vollbild)
1-Vollbildmodus
2-Fenstermodus
3-Fenstermodus (skalierbar)
6 - Gleicher Modus wie 2 aber mit Auto-Suspend (empfohlen)
7 - Gleicher Modus wie 3 aber mit Auto-Suspend (empfohlen)


Rückgabewert

-


Beschreibung

Graphics3D ist der wichtigste Grafikbefehl überhaupt. Dieser Befehl öffnet ein Grafikfenster oder ändert die Größe des Fensters (Breite, Höhe und Farbtiefe). Die Farbtiefe ist optional und kann weggelassen werden - dann wählt BlitzBasic automatisch die passende Farbtiefe aus. Das Benutzen des Graphics3D-Befehls setzt Color, ClsColor und aktive Grafikbuffer auf die Standardwerte zurück.

Die Breite und Höhe der Auflösung hängt von der verwendeten Grafikkarte ab. Problemlos sind die Auflösungen 640x480 und 800x600. Aber solche Auflösungen wie 640x400 usw. werden nicht von allen Grafikkarten unterstützt!


Mit der größeren Auflösung steigt auch die Berechnungszeit, sowie der Speicherbedarf. Zudem kann es dadurch häufiger zu "Dropped-Frames" kommen (ausgelassene Bilder einer Animation bei Doublebuffering).


Wird ein Grafikfenster nicht im Vollbild angezeigt, so übernimmt Windows das Pageflipping der Grafik von BackBuffer (siehe Flip).


Zusatzinformation

Alle Computerbildschirme haben den Koordinatennullpunkt oben/links. Dies ist etwas anders als beim kartesischen System - die Y-Achse ist gespiegelt.


Die beste Farbtiefe ist 24 Bit mit 16,7 Mio. Farben. Leider wird diese Farbtiefe nicht von allen Grafikkarten unterstützt. Die zweitbeste Farbtiefe ist 32 Bit. Diese Farbtiefe wird von mehr Grafikkarten unterstützt, dafür steigt aber der Speicherbedarf sehr stark an. Die 16 Bit-Farbtiefe kann zwar "nur" 65536 Farben anzeigen, dafür ist es aber am schnellsten und verbraucht am wenigsten Speicher.


Je größer die Auflösung, desto feiner wirkt die Grafik und desto langsamer erfolgt die Grafikausgabe. Mit der größeren Auflösung steigt auch die Berechnungszeit sowie der Speicherbedarf. Zudem kann es dadurch häufiger zu "Dropped-Frames" kommen.


Da bei einer 2D Ausgabe von Blitzbasic die Grafikkarte keine aktuelle 3D Beschleunigung nutzen kann (DirectX7/DirectDraw), ist das im Vergleich zu "echtem" 3D sehr langsam. Fortgeschrittene können auch mit 3D Befehlen eine sehr viel schnellere 2D Welt erschaffen. Blitzmax z.B. nutzt von sich aus 3D Unterstützung um 2D anzuzeigen.


Beispiel

Standardbeispiel:

Graphics3D 640, 480
SetBuffer BackBuffer()

camera = CreateCamera()

light = CreateLight()
RotateEntity light, 90, 0, 0

cube = CreateCube()
RotateEntity cube, 20, 50, 50
PositionEntity cube, 0, 0, 5

While Not KeyHit(1)
   RenderWorld
   Flip
Wend


Siehe auch

BackBuffer, CountGfxModes3D, EndGraphics, Flip, FrontBuffer, GfxDriverCaps3D, GfxMode3D, ImageBuffer, SetBuffer, Windowed3D

Übersicht 3D Grafik Screen