|
camera - camera handle zoom# - zoom factor of camera; 1.0 (default) |
|
Sets the zoom factor for a camera - in effect, its field of view. Zoom works like a camera lens: values above 1 magnify the view and narrow the field of view (telephoto), values below 1 widen it (wide-angle). A sniper scope might smoothly raise zoom towards 8; a speed effect in a racer might drop it towards 0.8. The relationship to field of view is: fov = 2 * ATan( 1.0 / zoom ), so the default zoom of 1.0 gives a 90 degree field of view, zoom 2 gives about 53 degrees, and zoom 0.5 about 127 degrees. To request a specific field of view, use zoom = 1.0 / Tan( fov / 2 ). The field of view applies to the camera's 'fit' axis - horizontal by default - with the other axis following the viewport shape; see CameraAspectMode. Extreme wide-angle zooms distort heavily at the screen edges, and high zooms amplify every camera wobble - both facts you can use, or avoid. See also: CameraRange, CameraAspect, CameraAspectMode, CreateCamera. |
; CameraZoom Example
; ------------------
Graphics3D 640,480,0,2
SetBuffer BackBuffer()
camera=CreateCamera()
PositionEntity camera,0,2,0
light=CreateLight()
RotateEntity light,45,45,0
; Textured ground plane gives a sense of distance
plane=CreatePlane()
ground_tex=LoadTexture("media/MossyGround.BMP")
ScaleTexture ground_tex,4,4
EntityTexture plane,ground_tex
; Two gate pillars close to the camera
pillar=CreateCylinder()
ScaleEntity pillar,0.5,3,0.5
PositionEntity pillar,-3,3,10
pillar=CreateCylinder()
ScaleEntity pillar,0.5,3,0.5
PositionEntity pillar,3,3,10
; A distant treasure chest on the horizon - zoom in to spot it
chest=CreateCube()
ScaleEntity chest,2,2,2
EntityColor chest,255,200,0
PositionEntity chest,0,2,200
zoom#=1
While Not KeyDown(1)
; Up / Down raise and lower the camera zoom factor
If KeyDown(200) And zoom<100 Then zoom=zoom+0.1
If KeyDown(208) And zoom>1 Then zoom=zoom-0.1
; Left / Right turn the camera
If KeyDown(203) Then TurnEntity camera,0,1,0
If KeyDown(205) Then TurnEntity camera,0,-1,0
; Apply the zoom factor to the camera
CameraZoom camera,zoom
TurnEntity chest,0,1,0
RenderWorld
Text 0,0,"Up / Down: zoom Left / Right: turn Esc: exit"
Text 0,20,"A golden chest sits far ahead between the pillars - zoom in to see it"
Text 0,40,"CameraZoom camera,"+zoom
Flip
Wend
End