ToyBox を RIB 対応にする話 その2

Essential RenderMan の List 7.3 の例に対応すべく、今回は TransformBegin - TransformEnd に対応してみました。

次の RIB より、

# Transform-block test (cf. Essential RenderMan p.26)
Display "beginend.ppm" "file" "rgb"
Projection "perspective"
WorldBegin
    Translate 0 0 2

    TransformBegin
        Translate -1 0 0
        Sphere 1 -1 1 360
    TransformEnd

    TransformBegin
        Translate 1 0 0
        Sphere 1 -1 1 360
    TransformEnd
WorldEnd


 以下の絵が生成される(前回同様 web 用に .ppm を .png に変換してます)。



レンダーマンのデフォルトの画角が分からなかったのですが、Essential RenderMan の例を見ると、どうやら水平画角は 4*atan(1/2) みたい(画面中に、直角を挟む辺がそれぞれ 1 と 2 の直角三角形が 4 つ入るので)。
※これは水平画角を指定する時の話でした(RenderMan は垂直画角で指定するようです)。

ToyBox 自体はマトリックススタックに対応していたのですが、Push - Pop に関して、若干使い勝手の良くない設計でしたので、今回の改造を機に少し変更して単純化しました。

前回の絵は DOF が微かに効いていたので、完全に DOF を無効にできるようにも改造しました。フィルタは入れてない(というかボックスフィルタになってる)ので、ジャギが出て汚いですね。

ゆくゆくは PLS および AASS に対応するので、PixelFilter の対応はどうしようか悩みどころです…。
# PLS は PixelFilter "pls" で指定できるようにするのが良いのかな? AASSの方は Option か?

コメント

このブログの人気の投稿

[ C# ] 複数ページからなる TIFF ファイルの作成方法

メモ: ffmpeg を用いた連番ファイルへの変換方法

連番 PPM から FFMpeg と huffyuv でロスレス動画作ってみたんだけど…