パースペクティブ・カメラの主なディフォルト設定(省略するとこの設定値が使用されている。)
camera {
perspective
location <0,0,0>
direction <0,0,1>
right <1.33,0,0>
sky <0,1,0>
up <0,1,0>
look_at <0,0,1>
}
画角(angle)
angle、right、directionの関係は次式で表される(right_lengthとdirection_lengthはそれぞれrightとdirectionベクトルの長さ)。
direction_length = 0.5 * right_length / tan(angle / 2)
デフォルトカメラのangleは、
1=0.5*1.33/ tan(angle / 2)
tan(angle / 2)=0.5*1.33
angle / 2=atan(0.5*1.33)
angle=2*atan(0.5*1.33)
で求められるので、以下python cgkitで求めてみました。
>python
Python 2.6.5 (r265:79096, Mar 19 2010, 18:02:59) [MSC v.1500 64 bit (AMD64)
win32 Type "help", "copyright", "credits" or "license" for more information.
>>> from cgkit.all import *
>>> right=vec3(1.33,0,0)
>>> right.length()
1.3300000000000001
>>> direction=vec3(0,0,1)
>>> direction.length()
1.0
>>> import math
コサイン60度を求めてみる。1/2になるかな。
>>> math.cos(math.radians(60))
0.50000000000000011
アークタンジェント:atan(x) を求める。
>>> 2*math.atan(1.33*0.5)
1.1736957392994543
ラジアンを度に変換する。
>>> math.degrees(2*math.atan(1.33*0.5))
67.247812294345678
>>> angle=math.degrees(2*math.atan(1.33*0.5))
>>> angle
67.247812294345678
ということで67度となりましたが、あっているかどうかは
実際POV-RAYで検証しなくてはなりません。
- -
- -