Hilfe

CameraProjMode

B3D

Aufruf

CameraProjMode kamera%, modus%

Parameter

kamera Identität einer Kamera
modus% 0=Kamera deaktivieren (schneller als HideEntity)
1=Perspektivische Projektion (Standard)
2=Orthographische Projektion


Rückgabewert

-


Beschreibung

Die Anweisung CameraProjMode schaltet die Projektion einer Kamera um. Projektion ist eine ganz spezielle Technik zur Darstellung der 3D-Welt auf dem Bildschirm.

Mit dem Parameter "Modus" kann man nur Werte 0-2 angeben. Wert 0 schaltet die Kamera komplett aus. Dies ist wesentlich schneller als die Kamera mit HideEntity zu verstecken. Der Wert 1 (Standard) schaltet die normale Projektion ein - die Objekte erscheinen so perspektivisch korrekt auf dem Bildschirm. Der Wert 2 schaltet auf eine ganz spezielle Darstellungsart um. Die 3D-Szene wird als 2D-Grafik, ohne perspektivische Tiefe dargestellt. So werden zwei Objekte mit der selben Größe aber in unterschiedlicher Entfernung trotzdem identisch dargestellt. Orthographische Projektion ist besonders für 3D-Editoren nützlich, wo drei Ansichten (Vorderansicht, Seitenansicht und Draufsicht) ohne Perspektive dargestellt werden müssen.

Benutze CameraZoom, um die Skalierung der orthographischen Grafik zu ändern. Der Zoomfaktor 1.0 ist einfach zu hoch. Mit dem Zoomfaktor 0.1 ist die Darstellung dagegen vernünftig.


Leider hat die orthographische Projektion einen Nachteil bei Darstellung von Terrains. Es kann nicht mehr korrekt wegen LOD-Technik (level of detail) dargestellt werden. Dies funktioniert nur mit 3D-Perspektive richtig.


Beispiel

Standardbeispiel:

Graphics3D 640, 480
SetBuffer BackBuffer()

camera = CreateCamera()
PositionEntity camera, 0, 0, - 10

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

cube1 = CreateCube()
EntityColor cube1, 255, 0, 0
PositionEntity cube1, 0, 0, 0

cube2 = CreateCube()
EntityColor cube2, 0, 255, 0
PositionEntity cube2, 5, 5, 5

While Not KeyHit(1)
   If KeyHit(57) Then mode = mode + 1
   If mode = 3 Then mode = 0
   If mode = 2 Then zoom# = 0.1 Else zoom# = 1
   CameraProjMode camera, mode
   CameraZoom camera, zoom#
   RenderWorld
   Text 0, 0, "Mit Leertaste Projektion umschalten"
   Text 0, 20, "CameraProjMode camera," + mode
   Text 0, 40, "CameraZoom camera," + zoom#
   Flip
   Cls
Wend
End


Siehe auch

CameraClsMode, CameraFogMode, CameraRange, CameraViewport, CameraZoom, CreateCamera

Übersicht 3D Grafik Kamera