Wednesday, May 13, 2009

メンタルレイシェーダ(shader)とは

メンタルレイのシェーダは実際には光が物体に当たった時にメンタルレイのコアから呼び出される C/C++ のコードであり,プラグイン(Plugin)という方が正しいと思います.シェーダという言葉は歴史的な経緯で残っているものだと思います.シェーダはユーザにかなりの自由度を与えてくれますが,実際にシェーダを書くことはなかなかないでしょう.

シェーダの自由度が高いというのは,光が物体に当たった時にユーザがやりたいことならほぼなんでもできるという意味です.たとえばレンダリング中に光がある物体に当った時に email を送って知らせてくれるということさえ可能です.(メンタルレイ的にはそういうことはして欲しくないでしょうが,shader は単なるプラグインなので可能) しかし,なんでもできるということは一方で難しいということでもあります.特にメンタルレイは長い時間をかけて発展してきたことや,下位互換性(backward compatibility) を保つために複雑になっている部分もあります.

No comments:

Post a Comment