アフィン変換でひしゃげたときの「法線ベクトル問題」について、 円柱や円すいの側面の場合も対応してみました。
平面の場合も前回のv50のやり方では、-1倍の拡大をかけた場合とか 意図しないケースで法線が反転していたので、 方式を変更しておきました。
デバッグしやすいように、 dat.py でのデータの展開結果について、 なるべく文字列の段階で展開を終えさせて、 展開結果の表示が見易いようにしてみました。 文字列からバイナリへの変換は、後段でまとめて処理するようにしてみました。
$ mv rt_v50 rt_v51 $ cat v51.patch | ( cd rt_v51 ; patch -p1 ) $ cd rt_v51 $ make clean $ make
では、いつもの速度確認。
$ ./cg.py eyep=[0,0,0],200,10 sec=10 data_name=objs name=out_v51/objs_1_2_sc n=1 init_sec=5 div=2 : wh : 76800/76800(100.0%) : fin 3.09s
以前の v49 wh : 76800/76800(100.0%) : fin 3.03s v48 wh : 76800/76800(100.0%) : fin 3.11s v47 wh : 76800/76800(100.0%) : fin 3.04s v45 wh : 76800/76800(100.0%) : fin 3.00s v43 wh : 76800/76800(100.0%) : fin 2.96s v42 wh : 76800/76800(100.0%) : fin 3.16s v39 wh : 76800/76800(100.0%) : fin 15.37s v38 wh : 76800/76800(100.0%) : fin 15.09s v37 wh : 76800/76800(100.0%) : fin 15.49s v36 wh : 76800/76800(100.0%) : fin 15.13s v35 wh : 76800/76800(100.0%) : fin 16.16s v34 wh : 76800/76800(100.0%) : fin 38.47s v32 wh : 76800/76800(100.0%) : fin 26.84s v31 wh : 76800/76800(100.0%) : fin 40.50s v30 wh : 76800/76800(100.0%) : fin 38.39s v29 wh : 76800/76800(100.0%) : fin 1m 44.72s v28 wh : 76800/76800(100.0%) : fin 1m 18.06s v27 wh : 76800/76800(100.0%) : fin 1m 8.39s v26 wh : 76800/76800(100.0%) : fin 1m 6.02s
op2.yamlの円柱、円すいのデータで反射の絵柄の違いを見てみます。
$ ./cg.py eyep=[0,0,0],[300,300,100],10 sec=20 yaml=op2.yaml data_name=all name=out_v51/op2ck fps=0.25 : wh : 307200/307200(100.0%) : fin 9.30s frm : 5/5(100.0%) : fin 1m 6.17s estimated 2.21 hour at 640*480 30fps $ ls -lt out_v51/ | head -rw-r--r-- 1 kondoh staff 144 6 14 01:45 op2ck.mp4 -rw-r--r-- 1 kondoh staff 101409 6 14 01:45 op2ck00005.jpg -rw-r--r-- 1 kondoh staff 50623 6 14 01:45 op2ck00004.jpg -rw-r--r-- 1 kondoh staff 73917 6 14 01:44 op2ck00003.jpg -rw-r--r-- 1 kondoh staff 68342 6 14 01:44 op2ck00002.jpg -rw-r--r-- 1 kondoh staff 55695 6 14 01:44 op2ck00001.jpg
fpsの指定が小さいときは、動画の1コマ追加でエラーが出てたので、 fpsが1未満なら動画はあきらめる対策を入れてみました。;-p)
右となりに対応するv50の絵を並べてみます。
間違い探し? どこが違うかよく判りませんね。
では、AND,OR,NOTを駆使して、 スポーツカーっぽい物体のデータを cool_car.yaml に作ってみました。
$ ./cg.py eyep=[0,0,0],[300,300,100],10 sec=20 yaml=cool_car.yaml data_name=all name=out_v51/car : wh : 256259/307200(83.4%) : total 11.62s : rest 1.92s : 2018/06/14 04:18:10 wh : 307200/307200(100.0%) : fin 10.26s frm : 600/600(100.0%) : fin 2h 12m 4.18s $ ls -lt out_v51/ | head -rw-r--r-- 1 kondoh staff 484681 6 14 04:20 car_2.mp4 -rw-r--r-- 1 kondoh staff 3142210 6 14 04:20 car_1.mp4 -rw-r--r-- 1 kondoh staff 3885846 6 14 04:18 car.mp4 :
2時間12分。 視点がそう少し近い方が良かったかな。 ボデー表面で屈折光ましましにしたので、透けてる感が強いです。
良さげな静止画を選んでみました。