Hilfe

CameraRange

B3D

Aufruf

CameraRange kamera%, start#, ende#

Parameter

kamera% Identität einer Kamera
start# Minimale Entfernung zum Objekt (Standard=1)
ende# Maximale Entfernung zum Objekt (Standard=1000)


Rückgabewert

-


Beschreibung

Mit CameraRange kann man die minimale und maximale Objektentfernung einstellen. Nur in diesem Bereich werden alle Objekte eingezeichnet. Sollte ein Objekt näher/weiter sein, so wird es geclippt (einzelne Dreiecke nicht eingezeichnet).

Mit dieser Einstellung kann man die 3D-Grafik wesentlich beschleunigen. Da dadurch nicht mehr alle Dreiecke gezeichnet werden. Mit dem Nebeleffekt kann ein plötzliches aufpoppen eines Objekts stark vermieden werden.



In der Zeichnung kann man gut erkennen, dass die Entfernung nicht im Radius betrachtet wird. Das bedeutet: An Seitenrändern erkennt man auch weiter liegende Objekte die in der Mitte nicht zu sehen sind! Beachte das bei deinen Programmen!


Beispiel

Standardbeispiel:

Graphics3D 640, 480, 0, 2
SetBuffer BackBuffer()
camera = CreateCamera()
light = CreateLight(1)
RotateEntity light, 90, 0, 0

Dim c(100)
For i = 0 To 100
   c(i) = CreateCube()
   PositionEntity c(i), Rnd( - 10, 10), Rnd( - 10, 10), Rnd(10, 100)
   RotateEntity c(i), Rnd(360), Rnd(360), Rnd(360)
Next
range# = 25

While Not KeyDown(1)
   If KeyDown(200) And range#<100 Then range# = range# + .2
   If KeyDown(208) And range#>10 Then range# = range# - .2
   For i = 0 To 100
      TurnEntity c(i), 1, 1, 1
   Next
   CameraRange camera, 1, range#
   RenderWorld
   Text 0, 0, range
   Flip
Wend
End


Siehe auch

CameraProjMode, CameraViewport, CameraZoom, CreateCamera

Übersicht 3D Grafik Kamera