March 26, 2009

mental ray 5日目

シェーダ言語がない

前回の4日目からかなり時間が経ってしまったけれども、mental ray にはシェーディング言語がないようです。(最近、RenderManにも手を出したけど、そのうちちょっとは比較できるようになれればいいなと思ってます。できるんやろか・・・、不安やで)

lucille 開発日記: mental ray シェーダアーキティクチャ

メンタルレイでは、シェーダ言語というのはなく、シェーダは、C/C++ で記述します。
必要となるデータ型や関数は、メンタルレイ側が提供します。
このシェーダコードを、通常の C コンパイラでダイナミックリンク形式にコンパイルして使用します(cのソースコードを直接メンタルレイが受け取って、メンタルレイが内部でコンパイルするオプションもあります)。
また、シーン記述ファイル内には、シェーダとのインターフェスとなるメタデータ構造(使用する変数の名前やデフォルトのパラメータ値など)を記述します。

シェーダは、C/C++で書いてそれを "dll" にして、 mental ray に読み取らせるみたい。

それと、本にいくつかシェーダの種類が載っていたのでリストアップしてみました。たぶん、これらは基本形だと思うんですが、英語のなので、もうちょっとゆっくりと読み進めてみないとわからないことだらけです。(もっと詳しく読むと他にも出てくるかもしれないって事です)

  • Material Shaders
  • Texture Shaders
  • Volume Shaders
  • Environment Shaders
  • Light Shaders
  • Shadow Shaders
  • Photon Shaders
  • Photon Emitter Shaders
  • Lens Shaders
  • Output Shaders
  • Parallel Output Shaders
  • Displacement Shaders
  • Geometry Shaders
  • Contour Shaders

ざっと見た感じで、これだけありました。
九九を暗記するようにこれもそうした方がいいのかな。