レイトレサーバに一度に複数のピクセルを処理させるための変更をしてみました。
また、画像サーバ側も一度に複数のピクセルを書き込めるように変更しております。
rt.py : names = names[:2] : rates = map( lambda name: 0.2 / len(names), names ) :
1つのrtサーバが一度に処理するピクセル数は、 1枚の画面のピクセル数の20パーセントを、rtサーバ数で割った数にしてみました。
同じくらいの処理能力のrtサーバならば、 1つのrtサーバあたり5回まわれば、画面が1つ描画されます。
$ mv rt_v34 rt_v35 $ cat v35.patch | ( cd rt_v35 ; patch -p1 ) $ cd rt_v35 $ make clean $ make
では、速度確認。
$ ./cg.py eyep=[0,0,0],200,10 sec=10 data_name=objs name=out_v35/objs_1_2_sc n=1 init_sec=5 div=2 : 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
最速出ました v^_^)
(1 - 16.16/26.84) * 100 = 39.79
過去の最速から約40パーセント短縮です。
今回は裏面も見えるようにズラしてみます。 まず荒削り設定で。
$ ./cg.py eyep=[0,0,-5],[100,100,10],10 sec=10 data_name=objs name=out_v35/objs_tst div=4 fps=10 : wh : 19200/19200(100.0%) : fin 4.67s frm : 100/100(100.0%) : fin 8m 42.26s
(8*60+42.26) *4*4*3 /60/60 = 6.96 時間の予想
このデータ、初期の頃では10秒の動画を作るのに、15日くらいかかる予想が出てたはずです。 荒削りで10分未満、フルでも7時間の予想。本当だろうか?
$ ./cg.py eyep=[0,0,-5],[100,100,10],10 sec=10 data_name=objs name=out_v35/objs : wh : 307200/307200(100.0%) : fin 1m 19.09s frm : 300/300(100.0%) : fin 8h 7m 5.64s
8時間でした。
-rw-r--r-- 1 kondoh staff 2722444 5 9 19:45 out_v34/objs.mp4 -rw-r--r-- 1 kondoh staff 1889074 5 10 07:11 out_v35/objs.mp4
3M制限もOK。 同じ10秒の動画でも、フレームごとの単純さとフレーム間の変化の具合で、ファイルサイズはバラバラです。
さらに、続きの10秒を。
$ ./cg.py eyep=[0,0,-5],[100,100,10],10 sec=10 data_name=objs name=out_v35/objs_s10 init_sec=10 : wh : 307200/307200(100.0%) : fin 55.07s frm : 300/300(100.0%) : fin 7h 17m 34.75s $ ./srvs.py all_kill
-rw-r--r-- 1 kondoh staff 1711910 5 11 03:44 out_v35/objs_s10.mp4
繋ぎ合わせてみます。
$ (cd out_v35 ; ls objs_s10*.jpg | sed -e 's/objs_s10\(.*\)/mv objs_s10\1 objs1\1/' | sh) $ ls out_v35 | head objs100001.jpg objs100002.jpg objs100003.jpg objs100004.jpg objs100005.jpg objs100006.jpg objs100007.jpg objs100008.jpg objs100009.jpg objs100010.jpg $ ./img.py out_v35/objs out_v35/objs.mp4 cmd=v2i $ ls -l out_v35/objs_sum.mp4 -rw-r--r-- 1 kondoh staff 3484415 5 11 04:08 out_v35/objs_sum.mp4 20秒だとさすがに3M超えました。 3M分のフレームまでにするツールの処理を、 バイナリサーチを使うように改良したので試しておきます。 $ ./img.py dmy out_v35/objs_sum.mp4 cmd=3M $ ls -l v.mp4 -rw-r--r-- 1 kondoh wheel 3144776 5 11 04:15 v.mp4 OK 3M以内。 $ cp v.mp4 out_v35/objs_sum_3m.mp4