- 2007/03/09 04:21
- 未分類
このカテゴリもMaya plug-in同様、C/C++&mentalrayド素人の僕が勉強していく過程をさらす場所です。
ということでこちらもgetting start。
WIN2000(もしくはXP) & VC8 & Mayaという環境での
mentalrayのシェーダ開発に関して、個人的なメモもかねて簡単にまとめました。
一応ネットなので書いておきますが、動作保証などは一切ありません。
全て自己責任でやってください。
———————————————————————–
■必要なもの
・windowsマシン
・vc8
・platformSDK
・maya
・シェーダのソース(.cとか.cppとか)
1.まずはwindowsマシンにvc8とplatformSDKとmayaをインストールします。
順番とかは関係ないので、とにかく全部インストールです。
platformSDKに関してはちょっと面倒なのでこちらを参照のこと。
2.clとlinkのパスを通します。
環境変数のPATHに、clの場所を追記してやれば良いだけです。
例えば僕の環境だと、clとlinkはC:\Program Files\Microsoft Visual Studio 8\VC\binにあるので、それをそのまま追加します。
環境変数の設定の仕方について分からない場合は各自調べて設定してください。
3.ソースコードの場所に、以下のような内容のbatファイルを用意します。
名前はなんでもOKです。build.batでも、compile.batでも。
####################################################################
@rem // set env vars
@call “%VS80COMNTOOLS%vsvars32.bat”
@echo.
@rem // set mentalray file path
@set mrroot=C:\Program Files\Alias\Maya7.0\devkit\mentalray
@set include=%mrroot%\include;%include%
@set lib=C:\Program Files\Microsoft Platform SDK\Lib;%mrroot%\lib\nt;%lib%
@rem
@echo mrroot=%mrroot%
@echo.
@echo include=%include%
@echo.
@echo lib=%lib%
@echo.
@rem build shader
cl /c /O2 /MD /nologo /W3 -DWIN_NT constant.cpp
link /nologo /nodefaultlib:LIBC.LIB /OPT:NOREF /INCREMENTAL:NO /DLL /OUT:constant.dll constant.obj shader.lib
@pause
####################################################################
少し説明を加えると、最初にcallしているbatで環境変数を設定しています。
vcの標準ライブラリにパスを通していたりするだけなので、既に自前で設定している場合は、なくてもOKなはずです。
mrrootというのは、シェーダを開発する上で必要なファイルにパスを通す際に便利かと思い、僕の独断と偏見で設定した変数です。
例えば上の例でいうと、mrrootはC:\Program Files\Alias\Maya7.0\devkit\mentalrayに設定してあるので、
%mrroot%\includeは即ち、
C:\Program Files\Alias\Maya7.0\devkit\mentalray\include
と等価であるということになります。
もしlibとincludeに既に設定してあるようであれば、ここも必要ありません。
ちなみに、mentalray/include以下にはmentalrayのシェーダを開発するに当たって必要な各種ヘッダファイルが置いてあります。
同様に、mentalray/libにも各種ライブラリファイルが置いてあります。
この両方にパスが通っていないと、シェーダのコンパイルが上手く行かないので気をつけて下さい。
そしてclとlinkを行います。
この際、シェーダの名前などを変更することを忘れないでください。
4.3を実行した際にエラーが出ていなければ.dllが生成されているはずです。
それがシェーダの本体となります。
そのdllとシェーダ宣言のmiファイルをmaya.rayrcの記述に従って追加します。
シェーダを置く場所は環境によってそれぞれだと思うのですが、
デフォルトではmaya.rayrcはMayaインストールディレクトリ\mentalrayの直下にあります。
miファイルはMayaインストールディレクトリ\mentalray\includeの下に、
dllファイルはMayaインストールディレクトリ\mentalray\libの下にそれぞれ追加し、
maya.rayrcに記述を追加します。
5.dllやmiに問題がなければMayaを起動し、mayatomr.mllをロードすると、
カスタムシェーダが読み込まれていると思います。
ただし、シェーダをデフォルトの場所以外から読む際は
MI_CUSTOM_SHADER_PATHを設定する必要があります。
その辺詳しくはmayaのhelpを参照してください。
と、簡単には以上です。
僕のところはコレでコンパイル出来てます。
サンプルファイルをこちらに置いておきます。
海外の方々はGUIからビルドしたりしているみたいです。
たぶんVC8のプロジェクト設定を丹念にやってあげればGUIからもビルド出来るんでしょうけれど、
面倒なので僕はbat作ってぼちぼちやっときます。
また、シェーダを開発する際は、最初にシェーダ定義用のmiファイルを作り、
C:\Program Files\Alias\Maya7.0\binにある、mkmishader.exeを利用すると便利です。
シェーダのスケルトンを作ってくれます。
使い方は、mkmishader xxxx.mi でOKだったと思います。
まぁ慣れちゃえば要らないんだと思いますが一応。
以上で終了です。
お疲れ様でした。
- Newer: サルベージ
- Older: [ mentalray ]maya.rayrcとMI_CUSTOM_SHADER_PATH
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://blog.taikomatsu.com/2007/03/09/mentalray-%e3%82%b7%e3%82%a7%e3%83%bc%e3%83%80%e9%96%8b%e7%99%bagetting-start/trackback/
- Listed below are links to weblogs that reference
- [ mentalray ]シェーダ開発getting start from memlog