|砂箱|~ Softimage & Mentalray Shader ~
2011/12/26
Tag: mentalray,shader,softimage
皆さんお久し振りです。
ここ最近の寒さに早くも縮み上がっている開発室ゴトー[@jackybian]です。
さて今回は、『砂箱』のご紹介!
過去ネタで”maya用にコンパイルされたShaderの移植術”をやった訳ですが
si2011以降で実装されたsandboxのダイナミックシェーダービルド機能のおかげで
siもspdlから解放され移植なしでシェーダを使えるようになりやした!ヽ(゚∀゚)ノワーイ
2010まではSI独自の.spdlと.dllというファイルでシェーダが定義されていたのですが、
このsandboxより通常のmentalrayシェーダ(.miと.dll)がほぼそのまま使えるだけでなくシェーダコードの編集もできちゃったりします。
なのでmayaやmax用に作られたmentalrayシェーダもSIで使えちゃうわけです。
という訳で今回のこのsandbox(砂箱)について紹介しようと思います。
使い方は至ってシンプル!*基本的にはファイルコピーだけで以下の通りです。
①【シェーダファイル(.mi, .dll)の準備】
使用したいシェーダを用意します。今回はMy Mentalrayにあるctrl.studioさんのctrl_occlusionシェーダーを試してみましょう。
②【フォルダの作成】
次にFactory, Users, Workgroupのいずれかに以下のフォルダを作成します。
■Application\mi
■Application\bin\nt-x86-32 ・・・・・ (32bit用)
■Application\bin\nt-x86-64 ・・・・・ (64bit用)
③【シェーダファイルの配置】
.miファイルはmiフォルダへ、.dllファイルはnt-x86-32もしくはnt-x86-64フォルダへコピーします。
④【SIの起動】
Softimage2011を起動します。RenderTreeにてmentalray — Material カテゴリー内に、ctrl_occlusionシェーダーがあるはずです。もしない場合はUpdateボタンを押してみてください。
ctrl_occlusionをRenderTreeにD&Dしてマテリアルにコネクトします。
Region Renderして確認してみると。。。(´゚Д゚`)エッ!? 真っ黒!
でも実はそれほど驚く必要はナシ。dllのロードエラーなど出てるわけではないので。。。
単にパラメータのデフォルト値が正しく設定されていないだけです。
このシェーダーが作られたのはかなり前のようでmentalrayのバージョンアップと共にデフォルト値設定の記述に変更があったようです。
そのため全パラメータが0になっていたからです。
ではそのあたりを修正するとしましょう。シェーダノード上でRMBを押し出てきたメニューからEdit Shaderを選択します。
するとShader Code Editorに.miファイルが開かれ編集できるようになります。
この.miファイルでは
color "basecolor", #: default 1.0 1.0 1.0
(データ型) (パラメータ名), (#: デフォルト値)
というような記述になっていますが現在のmentalrayでの記述は
color "basecolor" default 1.0 1.0 1.0,
(データ型) (パラメータ名) (デフォルト値), (#: コメント行)
という記述が正しいようです。下記が全パラメータを修正したものです。
min version "3.6.0.8" declare shader color "ctrl_occlusion" ( color "basecolor" default 1.0 1.0 1.0, color "occolor" default 0.0 0.0 0.0, boolean "blocker" default 0, boolean "useProbes" default 1, boolean "useAlpha", integer "nearSamples" default 128, #: min 1 softmax 256 integer "farSamples" default 64, #: min 1 softmax 256 scalar "nearDistance" default 0.1, #: min 0.0 softmax 10 scalar "farDistance" default 20.0, #: min 0.0 softmax 320 boolean "distEQfalloff" default 1, boolean "dSamples" default 0, integer "nSamples" default 32, #: min 0 softmax 256 scalar "angle" default 88.0, #: min 0.0 max 180.0 scalar "minFalloff" default 0.001, #: softmin 0.0 softmax 5 scalar "maxFalloff" default 2.0, #: softmin 0.0 softmax 20 vector "normalCamera" default 0.0 0.0 0.0, vector "basisVector" default 0.0 0.0 0.0, scalar "dBlend" default 0.0, #: min 0.0 max 1.0 boolean "dReflect" default 0, scalar "gamma" default 1.0, #: min 0.0 softmax 2.0 scalar "bias" default 0.5, #: min 0.0 softmax 1.0 scalar "gain" default 0.5, #: min 0.0 softmax 1.0 integer "useEnv" default 1, scalar "kEnv" default 0.5, #: min 0.0 max 1.0 scalar "eHue" default 0.0, #: min -1.0 max 1.0 scalar "eSat" default 0.0, #: min -1.0 softmax 1.0 scalar "eLum" default 0.0, #: min -1.0 softmax 1.0 scalar "eXpandDynRange" default 1.0, #: softmin 1.0 softmax 2.0 scalar "eDynRangeStartLum" default 0.5, #: min 0.0 softmax 1.0 scalar "eDynRangeExponent" default 2.0, #: softmin 1.0 softmax 4.0 boolean "bentNormals", boolean "doBent", integer "spaceBent", #: min 0 max 7 boolean "normalDifference", boolean "useFG", boolean "owFG" default 1, integer "fg_rays" default 220, #: min 1 softmax 4000 scalar "fg_max_radius" default 1.0, #: min 0.0001 softmax 10.0 scalar "fg_min_radius" default 0.1, #: min 0.0001 softmax 1.0 boolean "fg_view" default 1, integer "fg_filter" default 1, #: min 0 max 3 boolean "lightEnable", boolean "secInvs", boolean "selfocc", array light "light" ) #: nodeid 708080114 apply material version 1 end declare
この内容で.miを上書きした後、RenderTreeをUpdateし再度、ctrl_occlusionをコネクトしなおしてRegion Renderすると
今度はちゃんとOcclusionが計算されています。(゚∀゚)ノ
これでmaya,max用に作られたmentalrayシェーダーもそのまんまSIで使えるようになりやす~♪
以前お伝えした”maya用にコンパイルされたShaderの移植術”よりずいぶんと簡単に使えますね。
これを機にmaya,maxのmentalrayシェーダで便利なものを探してみてはいかがでしょ?
という訳で「砂箱」もといsandboxのご紹介で・・・・
ちょ、ちょっとまったーーーーーー!!
オイっよく見りゃシェーダのパラメータがズラズラズラズラ・・・しかも意味のよくわからん名前のまんまじゃねーかー!ゴラァ!!って声がっ(汗
ですよねー。こんなんじゃとてもじゃなく使いづらくて洒落になりません。という訳で次回はこの辺りのUIについてご紹介する予定です。
ではまた~ (´∀`*)ノ アディオス
[…] 前回紹介した『砂箱』ですが、シェーダーUIのとこで終わってましたのでその辺りのことを今回お届けします。 […]
Posted at 2012.08.27 15:04 by デジタル・フロンティア-Digital Frontier | DF TALK | |砂箱|の向こう側~Softimage&MentalrayShader~