物体データをデータファイルに分離

データファイル dat.yaml を新規追加して、 dat.py に書いていた物体のデータを移しました。

デフォルトで dat.yaml をロードするようにしてますが、 cg.py起動時のコマンド引数で yaml=xxx.yaml 指定で変更出来ます。

v41.patch

$ mv rt_v40 rt_v41
$ cat v41.patch | ( cd rt_v41 ; patch -p1 )
$ cd rt_v41
$ make clean
$ make

追加したデータファイル dat2.yaml を試してみます。

pillar:
- kind: cube
  rtd: { base: 0.1, diff: 0, reflect: 0.5, reflact: 0.5, density: 2 }
  m2g: [ ax.zoom_z(10) ]
- kind: pipe
  rtd: { base: 0.1, diff: 0, reflect: 0.5, reflact: 0.5, density: 2 }
  m2g: [ 'ax.zoom([2,2,1])', ax.slide_z(-11) ]
  rxs:
  - [ m2g, append, 2, [ ax.slide_z(22) ] ]

big_ball:
- kind: ball
  rtd: { diff: 0.3 }
  maps:
  - fn: IMG_3999_4.mov
    fn_r: IMG_3999_4.mov
    t2m: [ ax.zoom_all(2), ax.rot_x(90) ]
  - fn: IMG_3999_4.mov
    fn_r: IMG_3999_4.mov
    t2m: [ ax.zoom_all(2), ax.rot_x(90), ax.rot_z(180) ]
  m2g: [ ax.zoom_all(500) ]

colosseum:
- kind: export
  export: pillar
  m2g: [ ax.slide_x(20) ]
  rxs:
  - [ m2g, append, 16, [ ax.rot_z(360.0/16) ] ]
- kind: pipe
  rtd: { base: 0.1, diff: 0, reflect: 0.5, reflact: 0.5, density: 2 }
  m2g: [ 'ax.zoom([24,24,1])', ax.slide_z(-13) ]
  rxs:
  - [ m2g, append, 2, [ ax.slide_z(26) ] ]
- kind: ball
  rtd: { base: 0.1, diff: 0, reflect: 0.5, reflact: 0.5, density: 2 }
  m2g: [ ax.zoom_all(6) ]
- kind: export
  export: big_ball

# EOF

ワイヤーフレームも意外と時間もかかってファイルも大きくなるので、 フレームレート粗めで。

./cg.py eyep=[0,0,0],[300,300,100],10 sec=10 yaml=dat2.yaml data_name=colosseum name=out_v41/col_wf wf fps=5
  :
frm : 50/50(100.0%) : fin 2m 58.58s
estimated 0.30 hour at 640*480 30fps

粗削りお試し。

$ ./cg.py eyep=[0,0,0],[300,300,100],10 sec=10 yaml=dat2.yaml data_name=colosseum name=out_v41/col_tst div=4 fps=1
  :
wh : 19200/19200(100.0%) : fin 9.63s
frm : 10/10(100.0%) : fin 1m 44.46s
estimated 13.93 hour at 640*480 30fps

適当に5秒の時刻の1コマを。

$ ./cg.py eyep=[0,0,0],[300,300,100],10 sec=10 yaml=dat2.yaml data_name=colosseum name=out_v41/col_ init_sec=5 n=1 show_sec=-1
  :
wh : 307200/307200(100.0%) : fin 1m 42.06s
frm : 1/1(100.0%) : fin 2m 14.52s

$ ./cg.py eyep=[0,0,0],[300,300,100],10 sec=10 yaml=dat2.yaml data_name=colosseum name=out_v41/col
  :
wh : 307200/307200(100.0%) : fin 2m 5.81s
frm : 300/300(100.0%) : fin 14h 8m 10.53s

$ ls -lt out_v41/ | head
-rw-r--r--  1 kondoh  staff  3087005  5 25 14:27 col.mp4
  :

ギリギリ3Mバイト

ほぼ粗削りのときの予想時間通りで14時間でした。

ここでちょと番外編のデータを。

$ wget http://kondoh2.html.xdomain.jp/rt/dat3.yaml
$ wget http://kondoh2.html.xdomain.jp/rt/noshi.jpg

$ ./cg.py eyep=[0,0,0],[300,300,100],10 sec=20 yaml=dat3.yaml data_name=colosseum name=out_v42/noshi
  :
frm : 600/600(100.0%) : fin 28h 52m 21.35s
Traceback (most recent call last):
  File "./cg.py", line 68, in 
    img.video_to_d1v3M(fn)
  :

しまった3M分割の箇所でtypoが... 次回のパッチで修正しておきます。

$ ls -lt out_v41/
-rw-r--r--@ 1 kondoh  staff  9224643  5 29 08:04 noshi.mp4
  :

9Mバイト

$ ./img.py dmy out_v41/noshi.mp4 cmd=div3M
  :
で3Mバイトに分割