Marching Cubes Algorithm

友人から電話がかかってきて、「Marching Cubes Algorithmの実装をしたんだけど、遅くて使い物にならない。なにか解決方法はないか」と聞かれました。「いや、使ったことないから無理」と即断ったのですが、興味があったのでどんなアルゴリズムなのか聞いてみました。
アルゴリズムの説明については下記のリンク等を参考にするとして、驚いたのは思っていたよりも単純で乱暴な方法だということ。簡単と言われるとはいえ、ボリュームレンダリングという言葉の響きからもっと複雑で難しいものだと思っていました。Octreeの考え方を知ったときも同じような感想を持ったのを覚えています。複雑そうに見えるものでも、実は単純だったりするんですね。いや、複雑なものでも単純に見えるようなアルゴリズムを考えた方がすごいのでしょうね。
そして、思ってしまったのが「これなら暇なときにすぐできるかも」という危険な考え。特にこれを使う必要性は今のところ全くないのですが、「いつか使うかもしれない」、「基礎知識の勉強は大切だ」なんて悪魔の囁きがしきりに聞こえてきます。他にやるべきことがある今、この考えは非常に危険なので、とりあえず「予定」としてここに残しておきます。必要になったとき、あるいは本当に暇で暇で仕方ないとき、そんな時に実装してみることにします。
下記リンクは、友達が説明のために教えてくれた日本語ページと、先輩のページからリンクされていたサイトです。いつかしっかり読もう。