Feb 17, 2008

GL Excess/Ruby : Scene 7 を移植


レンズフレアの効果がかっこいい Scene 7 です。

Scene 7 では 10x10x10 の多次元配列が登場しますが、次のように定義してみました:
@f_angle = Array.new(10) { Array.new(10) { Array.new(10) { 0.0 } } }
...
@f_angle[i][j][k] = (100*a + 10*b + c).to_f
他にも Hash と Array を組み合わせることで、もっときれいに記述することもできます:
ary = Hash.new
...
ary[[i,j,k]] = ... # ここで [i,j,k] が Array。
こちらの方が簡潔ですが、配列を参照するたびに Array のインスタンスが生成されてしまいます。今回のように速度が要求されるケースでは利用しない方が無難であると思います。
GL Excess / Ruby のページも更新。 Scene 7 をダウンロードできるようにしておきました:
未実装のシーンは 8, 10, 11 の 3 個となりました。