<< はじめてのFujiyama Renderer その11 戻る Fujiyama Renderer dome light with HDRI >>

POV-Rayのdefault cameraのangleを求める

以下、Pov-rayでは未検証ですが、計算してみました。

パースペクティブ・カメラの主なディフォルト設定(省略するとこの設定値が使用されている。)
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で検証しなくてはなりません。
  • -
  • -

<< はじめてのFujiyama Renderer その11 戻る Fujiyama Renderer dome light with HDRI >>