円柱、角柱、円錐、角錐を追加

立方体に続いて色々追加してみます。

cg.py の data, lights の定義は、dat.py に切り出してみました。

v11.patch

$ cat v11.patch | ( cd rt ; patch -p1 )

$ cd rt

$ ./cg.py eyep=[0,0,0],200,10 sec=10 name=out/objs_wf wf

  :

frm : 285/300(95.0%) : rest 4.58s : 2018/03/27 09:48:37
frm : 289/300(96.3%) : rest 3.36s : 2018/03/27 09:48:37
frm : 293/300(97.6%) : rest 2.14s : 2018/03/27 09:48:38
frm : 297/300(99.0%) : rest 0.91s : 2018/03/27 09:48:38
frm : 300/300(100.0%) : fin 1m 31.98s

10秒のワイヤーフレーム動画作成に1分半。 これまでワイヤーフレームはリアルタイムで表示できていたのに、 嫌な予感。

1/16の解像度で処理ピクセル数を1/256にして、 5秒の時刻の1コマだけ描画してみます。

$ ./cg.py eyep=[0,0,0],200,10 sec=10 name=out/objs1 div=16 n=1 init_sec=5

  :

wh : 928/1200(77.3%) : rest 4.49s : 2018/03/27 09:50:45
wh : 1012/1200(84.3%) : rest 3.03s : 2018/03/27 09:50:45
wh : 1110/1200(92.5%) : rest 1.40s : 2018/03/27 09:50:44
wh : 1200/1200(100.0%) : fin 17.99s

18秒

解像度を元に戻して1コマ描画したとすると

18*(16*16)/(60*60) = 1.28 (h)

お試しするには長すぎなので、 解像度を1/4に落として1コマ描画したとすると

18*(16*16)/(4*4)/60 = 4.8 (m)

試してみます。

$ ./cg.py eyep=[0,0,0],200,10 sec=10 name=out/objs2 div=4 n=1 init_sec=5

  :

wh : 18825/19200(98.0%) : rest 5.45s : 2018/03/27 10:00:54
wh : 18984/19200(98.8%) : rest 3.12s : 2018/03/27 10:00:53
wh : 19146/19200(99.7%) : rest 0.77s : 2018/03/27 10:00:52
wh : 19200/19200(100.0%) : fin 4m 36.09s

この結果から試算しなおして

1コマ
( 4*60+36 )*(4*4)/(60*60) = 1.22666 (h)

30fpsで10秒分だと300コマ
( 4*60+36 )*(4*4)/(60*60) * 300 = 367.999 (h)
( 4*60+36 )*(4*4)/(60*60) * 300 / 24 = 15.333 (d)

15日以上かかるとの予想!

とりあえず、フレームレートを fps=1 にしての 10 sec

( 4*60+36 )*(4*4)/(60*60) * 10 = 12.2666 (h)

これで試してみます。

$ ./cg.py eyep=[0,0,0],200,10 sec=10 name=out/objs3 fps=1

  :

wh : 306885/307200(99.8%) : rest 4.73s : 2018/03/27 20:33:46
wh : 306976/307200(99.9%) : rest 3.36s : 2018/03/27 20:33:46
wh : 307067/307200(99.9%) : rest 1.99s : 2018/03/27 20:33:45
wh : 307135/307200(99.9%) : rest 0.97s : 2018/03/27 20:33:45
wh : 307200/307200(100.0%) : fin 1h 16m 52.02s
frm : 10/10(100.0%) : fin 10h 26m 54.04s

予想よりちょっとましで、10時間半。

角錐のあたり、何かバグってますね。