Okamoto's Homepage
カメラの設定では,カメラを置く場所(location)とカメラが見る場所(look_at)がまず必要です。
camera { location <0, 0, -5> look_at <0, 0, 0> } |
このように書くと,<0, 0, -5>の場所から <0, 0, 0>を見るカメラを設定できます。この二つは最低限必要なものといえると思います。
その他に,覚えておくと良いと思われるのが,angleとright(とup)です。angleでは,カメラで撮影する範囲を角度で指定します。たとえば「angle 30」と書けば30度になります。180度以上は設定できません。
次の4枚の画像は,angleの値をかえてレンダリングしてみたものです。
![]() |
![]() |
![]() |
![]() |
angle 30 | angle 60 | angle 90 | angle 120 |
上の画像でも分かりますが,角度を大きくすると画像の端のほうが歪みますので注意してください。なお,画像のソースはこのページの下の方にあります。
画像の端のほうを歪ませたくはないけど広い範囲が欲しい場合は,angleの値を小さくして,カメラをオブジェクトから離しましょう。
上でレンダリングした画像は横と縦の比率が4対3になっています。この比率を変更するとどうなるでしょう。上の画像は横160ピクセル,縦120ピクセルです。画像を120ピクセル*120ピクセルでレンダリングしてみます。なお,angleは30度のものを利用します。
![]() |
![]() |
160*120ピクセル | 120*120ピクセル |
見ての通り,球体が押しつぶされたようになってしまいました。これを解決するためにright(とup)を使います。POV-Rayではもともと,レンダリング画像の横と縦の比率が4対3になるように設定されています。right(とup)を使うと,それを変更できます。横と縦の比率を1対1にしたいときは,次のように書きます。
camera{
location <0,0,-3>
look_at <0,0,0>
angle 30
right <1, 0, 0>
up <0, 1, 0>
}
|
rightの最初の数字(X軸の方向)が横,upの2番目の数字(Y軸の方向)が縦として,1対1なら上のように書いて下さい。もしたとえば横:縦が4:1の画像が欲しいときは
right <4, 0, 0>
up <0, 1, 0>
|
のように書きます。これらはデフォルトでは,rightは<4/3, 0, 0>,upは <0, 1, 0>に設定されています。そのため何も指定しないと4対3になってしまうのです。逆にいうと,縦方向が1としたときの横方向の数値をrightで設定してやれば,upは書かなくてもよいことになります。つまり4対1の画像が欲しいときは,「right <4, 0, 0>」と書くだけで良いのです。なお「right <4, 0, 0>」は「right x*4」と書くこともできます。
画像の縦横比の指定では,もっと便利な方法があります。「right x*image_width/image_height」と書いておけば,どんな比率に変更してもOKです。
angleの値をかえた画像のソース。赤字のところの数値を変更してレンダリングしました。
#include "colors.inc"
#include "textures.inc"
#include "skies.inc"
camera{
location <0,0,-3>
look_at <0,0,0>
angle 120
}
light_source {
<2,8,-3>
color White
}
light_source {
<-2,0.1,3>
color White*0.3
}
#declare i=-5;
#while (i<6)
object {
sphere { <0, 0, 0>, 0.5 }
texture { New_Penny }
translate <i, 0, 0>
}
#declare i=i+1;
#end
sky_sphere { S_Cloud5 }
|