レイトレーシングの2発目。 物体の表面で拡散する光の強さを計算して、球体に陰影をつけてみます。 これまでのベタな塗りは周囲光あるいは自発光として扱います。
真上からの照明を1つ用意して、物体表面の法線と照明の入射角で拡散光の強さを決めてます。
v3.patch メモ
$ cat v3.patch | ( cd rt ; patch -p1 ) $ cd rt $ ./cg.py eyep=[0,0,0],200,10 sec=10 name=out/diff1 div=16 fps=2
まずは粗い設定で確認。 光が当たる北半球だけ、ほんのり陰影がでました。
では、覚悟を決めてレンダリング開始。
$ ./cg.py eyep=[0,0,0],200,10 sec=10 name=out/diff2 : wh : 277377/307200(90.2%) : rest 9.67s : 2018/03/18 19:27:02 wh : 280708/307200(91.3%) : rest 8.58s : 2018/03/18 19:27:02 wh : 284141/307200(92.4%) : rest 7.46s : 2018/03/18 19:27:02 wh : 287539/307200(93.5%) : rest 6.36s : 2018/03/18 19:27:02 wh : 290947/307200(94.7%) : rest 5.25s : 2018/03/18 19:27:02 wh : 294340/307200(95.8%) : rest 4.15s : 2018/03/18 19:27:02 wh : 297750/307200(96.9%) : rest 3.04s : 2018/03/18 19:27:01 wh : 301166/307200(98.0%) : rest 1.94s : 2018/03/18 19:27:01 wh : 304536/307200(99.1%) : rest 0.85s : 2018/03/18 19:27:01 wh : 307200/307200(100.0%) : fin 1m 38.8s frm : 300/300(100.0%) : fin 8h 17m 55.27s
8時間超えました。