屈折光

レイトレーシングの4発目。 物体の表面で屈折する光を計算してみます。

反射光の場合とほぼ同様な処理になりますが、 物体表面の交点を新たな視点として、 トレースする向きが物体の内部側へと向かいます。 いわゆるスネルの法則で屈折率を算出するために、 物体の密度の情報を追加してます。

v5.patch

v5.patch メモ
$ cat v5.patch | ( cd rt ; patch -p1 )

$ cd rt
$ ./cg.py eyep=[0,0,0],200,10 sec=10 name=out/reflact1 div=16 fps=2

なんだか画像が汚い感じになりましたが、 少し球体が透けて屈折して見えてる様子?

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

  :

wh : 298508/307200(97.1%) : rest 12.53s : 2018/03/21 06:32:38
wh : 300056/307200(97.6%) : rest 10.27s : 2018/03/21 06:32:37
wh : 301597/307200(98.1%) : rest 8.03s : 2018/03/21 06:32:35
wh : 303131/307200(98.6%) : rest 5.81s : 2018/03/21 06:32:34
wh : 304676/307200(99.1%) : rest 3.59s : 2018/03/21 06:32:33
wh : 306214/307200(99.6%) : rest 1.4s : 2018/03/21 06:32:32
wh : 307200/307200(100.0%) : fin 7m 16.08s
frm : 300/300(100.0%) : fin 38h 33m 5.59s

38時間半強! とにかく長時間かかりました。 球体の中にある平面部分が屈折して上に見えてるのでしょうか?