今回は例として 1 つだけ teapot を作成し,それに mia_material (Arch&Design) material を割り当てる.
Export したファイルそのままでは 3dsmax の shader への依存があるので,mental ray standalone で rendering するのには多少都合が悪い.standalone を使う理由は,複数のマシンで一斉にレンダリングをすることができるためである.3dsmax の shader だけ render farm マシンにコピーしてもいいのかというライセンスの関係がよくわからないことと,ここでの目的はiray を使いたいということなので,3dsmax の shader の依存を除く方法をここに書いておく.あるいは,全ての render farm のマシンに 3dsmax をinstall することができれば問題はないが,3dsmax を走らせないマシンに3dsmax を install する意味はあまりない.
3dsdmax から Export した mi file をそのまま ray に渡すと,
---
> ray -x on -v 5 00teapot_ex00.mi
...
LINK 0.0 error 191007: cannot load 3dsmaxhair.dll, The specified module could not be found.
...
LINK 0.0 error 191007: cannot load mayabase.dll, The specified module could not be found.
...
LINK 0.0 error 191007: cannot load adskshaders.dll, The specified module could not be found.
...
---
というエラーが発生する.これが 3dsmax 固有の shader である.利用しているマシンに3dsmax が install されている場合には,rayrc ファイルに以下の3dsmax への shader path を書くことで解決できる.
3dsmax_installed_directory\3ds Max 2010\mentalray\shaders_standard\shaders
しかし,iray を使うことを考えた場合,base shader と architectual shader のみがあれば良いはずなので,以下の link statement をコメントアウトするか除くことができる.
link "contour.dll"
link "physics.dll"
link "lume.dll"
link "subsurface.dll"
link "3dsmaxshaders.dll"
link "3dsmaxhair.dll"
link "paint.dll"
link "production.dll"
link "mayabase.dll"
link "adskshaders.dll"
link "mr_prebuilt.dll"
---
まずは camera の parameter を変更する.
---
camera "Viewport|Viewport"
output "+rgba_16" = "ImageCollector|Effect"
environment = "Environment|Shader"
lens = "GBuffer_Lens|Shader"
focal 1.710860
aperture 1.417323
aspect 1.333333
resolution 320 240
window 0 0 319 239
offset 0.000000 0.000000
clip 0.100000 1000000015047466200000000000000.000000
frame 0 0.000000
end camera
----
Environment shader と lens shader は今は使わないので,コメントアウトし,mental ray 3.6 で推奨されなくなった output statement を推奨のframebuffer に変更する.
---
camera "Viewport|Viewport"
# output "+rgba_16" = "ImageCollector|Effect"
# environment = "Environment|Shader"
# lens = "GBuffer_Lens|Shader"
framebuffer "main" datatype "rgba" filetype "png" filename "out.png"
focal 1.710860
aperture 1.417323
aspect 1.333333
resolution 320 240
window 0 0 319 239
offset 0.000000 0.000000
clip 0.100000 1000000015047466200000000000000.000000
frame 0 0.000000
end camera
----
しかしこれでも以下の error と warnings が出力される.
API 0.0 warn 302004: 00teapot_ex00.mi, line 125: while defining declaration "max_DefaultLight": declaring nonexisting function max_DefaultLight
API 0.0 warn 302004: 00teapot_ex00.mi, line 1926: while defining declaration "max_mia_material_renderelements": declaring nonexisting function max_mia_material_renderelements
API 0.0 warn 302004: 00teapot_ex00.mi, line 2008: while defining declaration "max_NodeVisibility": declaring nonexisting function max_NodeVisibility
API 0.0 warn 302004: 00teapot_ex00.mi, line 2119: while defining declaration "max_base_ImageCollector": declaring nonexisting function max_base_ImageCollector
API 0.0 warn 302004: 00teapot_ex00.mi, line 2133: while defining declaration "max_Environment":declaring nonexisting function max_Environment
API 0.0 warn 302004: 00teapot_ex00.mi, line 2150: while defining declaration "max_base_GBuffer_lens": declaring nonexisting function max_base_GBuffer_lens
PHEN 0.2 error 051011: shader "max_DefaultLight" not found
PHEN 0.2 error 051011: shader "max_NodeVisibility" not found
PHEN 0.2 error 051011: shader "max_mia_material_renderelements" not found
PHEN 0.2 error 051011: shader "max_base_ImageCollector" not found
PHEN 0.2 error 051011: shader "max_Environment" not found
PHEN 0.2 error 051011: shader "max_base_GBuffer_lens" not found
PHEN 0.2 error 051011: shader "max_DefaultLight" not found
PHEN 0.2 error 051011: shader "max_NodeVisibility" not found
PHEN 0.2 error 051011: shader "max_mia_material_renderelements" not found
PHEN 0.2 error 051011: shader "max_base_ImageCollector" not found
PHEN 0.2 error 051011: shader "max_Environment" not found
PHEN 0.2 error 051011: shader "max_base_GBuffer_lens" not found
しかしこれらの shader はほとんど使っていない.そこで以下の変更を mi file に加える.
http://code.google.com/p/shitohichi-tools/source/browse/#hg/mentalray/export_mi
以下の図は,3dsmax から rendering した結果(上)と,mental ray standalone で rendering した結果(下)であり,同じ結果になっている.
Export したファイルそのままでは 3dsmax の shader への依存があるので,mental ray standalone で rendering するのには多少都合が悪い.standalone を使う理由は,複数のマシンで一斉にレンダリングをすることができるためである.3dsmax の shader だけ render farm マシンにコピーしてもいいのかというライセンスの関係がよくわからないことと,ここでの目的はiray を使いたいということなので,3dsmax の shader の依存を除く方法をここに書いておく.あるいは,全ての render farm のマシンに 3dsmax をinstall することができれば問題はないが,3dsmax を走らせないマシンに3dsmax を install する意味はあまりない.
3dsdmax から Export した mi file をそのまま ray に渡すと,
---
> ray -x on -v 5 00teapot_ex00.mi
...
LINK 0.0 error 191007: cannot load 3dsmaxhair.dll, The specified module could not be found.
...
LINK 0.0 error 191007: cannot load mayabase.dll, The specified module could not be found.
...
LINK 0.0 error 191007: cannot load adskshaders.dll, The specified module could not be found.
...
---
というエラーが発生する.これが 3dsmax 固有の shader である.利用しているマシンに3dsmax が install されている場合には,rayrc ファイルに以下の3dsmax への shader path を書くことで解決できる.
3dsmax_installed_directory\3ds Max 2010\mentalray\shaders_standard\shaders
しかし,iray を使うことを考えた場合,base shader と architectual shader のみがあれば良いはずなので,以下の link statement をコメントアウトするか除くことができる.
link "contour.dll"
link "physics.dll"
link "lume.dll"
link "subsurface.dll"
link "3dsmaxshaders.dll"
link "3dsmaxhair.dll"
link "paint.dll"
link "production.dll"
link "mayabase.dll"
link "adskshaders.dll"
link "mr_prebuilt.dll"
---
まずは camera の parameter を変更する.
---
camera "Viewport|Viewport"
output "+rgba_16" = "ImageCollector|Effect"
environment = "Environment|Shader"
lens = "GBuffer_Lens|Shader"
focal 1.710860
aperture 1.417323
aspect 1.333333
resolution 320 240
window 0 0 319 239
offset 0.000000 0.000000
clip 0.100000 1000000015047466200000000000000.000000
frame 0 0.000000
end camera
----
Environment shader と lens shader は今は使わないので,コメントアウトし,mental ray 3.6 で推奨されなくなった output statement を推奨のframebuffer に変更する.
---
camera "Viewport|Viewport"
# output "+rgba_16" = "ImageCollector|Effect"
# environment = "Environment|Shader"
# lens = "GBuffer_Lens|Shader"
framebuffer "main" datatype "rgba" filetype "png" filename "out.png"
focal 1.710860
aperture 1.417323
aspect 1.333333
resolution 320 240
window 0 0 319 239
offset 0.000000 0.000000
clip 0.100000 1000000015047466200000000000000.000000
frame 0 0.000000
end camera
----
しかしこれでも以下の error と warnings が出力される.
API 0.0 warn 302004: 00teapot_ex00.mi, line 125: while defining declaration "max_DefaultLight": declaring nonexisting function max_DefaultLight
API 0.0 warn 302004: 00teapot_ex00.mi, line 1926: while defining declaration "max_mia_material_renderelements": declaring nonexisting function max_mia_material_renderelements
API 0.0 warn 302004: 00teapot_ex00.mi, line 2008: while defining declaration "max_NodeVisibility": declaring nonexisting function max_NodeVisibility
API 0.0 warn 302004: 00teapot_ex00.mi, line 2119: while defining declaration "max_base_ImageCollector": declaring nonexisting function max_base_ImageCollector
API 0.0 warn 302004: 00teapot_ex00.mi, line 2133: while defining declaration "max_Environment":declaring nonexisting function max_Environment
API 0.0 warn 302004: 00teapot_ex00.mi, line 2150: while defining declaration "max_base_GBuffer_lens": declaring nonexisting function max_base_GBuffer_lens
PHEN 0.2 error 051011: shader "max_DefaultLight" not found
PHEN 0.2 error 051011: shader "max_NodeVisibility" not found
PHEN 0.2 error 051011: shader "max_mia_material_renderelements" not found
PHEN 0.2 error 051011: shader "max_base_ImageCollector" not found
PHEN 0.2 error 051011: shader "max_Environment" not found
PHEN 0.2 error 051011: shader "max_base_GBuffer_lens" not found
PHEN 0.2 error 051011: shader "max_DefaultLight" not found
PHEN 0.2 error 051011: shader "max_NodeVisibility" not found
PHEN 0.2 error 051011: shader "max_mia_material_renderelements" not found
PHEN 0.2 error 051011: shader "max_base_ImageCollector" not found
PHEN 0.2 error 051011: shader "max_Environment" not found
PHEN 0.2 error 051011: shader "max_base_GBuffer_lens" not found
しかしこれらの shader はほとんど使っていない.そこで以下の変更を mi file に加える.
- max_DefaultLight は mental ray の mib_light_point に変更する.
- max_mia_material_renderelements は mia_material に変更する.
- 次の 4 つの shader (max_NodeVisibility, max_base_ImageCollector, max_Environment, max_base_GBuffer_lens) は除く.mia_material の Cutout は使っていないので,コメントアウトする.
http://code.google.com/p/shitohichi-tools/source/browse/#hg/mentalray/export_mi
以下の図は,3dsmax から rendering した結果(上)と,mental ray standalone で rendering した結果(下)であり,同じ結果になっている.
Comments
Post a Comment