As an example in here, I create one teapot in 3dsmax and assign a mia_material (Arch&Design).
Since 3dsmax exports an mi file with 3dsmax shader dependency, mental ray standalone could have a problem to render that mi file. mental ray standalone usually doesn't have 3dsmax shaders. The main advantage of the standalone mental ray is parallel rendering on a render farm. I couldn't tell the legal license of the 3dsmax shaders. For the safe side, if we have no dependency to the 3dsmax shaders, it shouldn't have a problem. (Or you can also install 3dsmax to all the render farm machine, though it doesn't make much sense.)
If I just render the mi file from the 3dsmax without modifying, I see the following error.
---
> 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.
...
---
They are 3dsmax shaders. If your machine has 3dsmax installed, then you can solve this problem by adding the following shader paths to your rayrc file.
3dsmax_installed_directory\3ds Max 2010\mentalray\shaders_standard\shaders
However, a usecase of iray, we only need the base shader and the architectual shader. Therefore, we could comment out the following link statements.
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"
---
First, let's update the camera parameter. You will see the following camera section in the exported mi file.
---
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
----
We could remove the environment shader and lens shader (until we really needed). Also this output statement is obsolete at mental ray 3.6. Update it to the framebuffer statement.
---
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
----
Then, run the ray again. We will see the following errors still.
----
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
----
But, we don't use these shaders. Then, we could do the following changes in the mi file:
http://code.google.com/p/shitohichi-tools/source/browse/#hg/mentalray/export_mi
The following Figure has mental ray rendering result of Top: 3dsmax, Bottom: standalone. The results are identical.
Since 3dsmax exports an mi file with 3dsmax shader dependency, mental ray standalone could have a problem to render that mi file. mental ray standalone usually doesn't have 3dsmax shaders. The main advantage of the standalone mental ray is parallel rendering on a render farm. I couldn't tell the legal license of the 3dsmax shaders. For the safe side, if we have no dependency to the 3dsmax shaders, it shouldn't have a problem. (Or you can also install 3dsmax to all the render farm machine, though it doesn't make much sense.)
If I just render the mi file from the 3dsmax without modifying, I see the following error.
---
> 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.
...
---
They are 3dsmax shaders. If your machine has 3dsmax installed, then you can solve this problem by adding the following shader paths to your rayrc file.
3dsmax_installed_directory\3ds Max 2010\mentalray\shaders_standard\shaders
However, a usecase of iray, we only need the base shader and the architectual shader. Therefore, we could comment out the following link statements.
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"
---
First, let's update the camera parameter. You will see the following camera section in the exported mi file.
---
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
----
We could remove the environment shader and lens shader (until we really needed). Also this output statement is obsolete at mental ray 3.6. Update it to the framebuffer statement.
---
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
----
Then, run the ray again. We will see the following errors still.
----
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
----
But, we don't use these shaders. Then, we could do the following changes in the mi file:
- replace max_DefaultLight with mental ray's mib_light_point.
- replace max_mia_material_renderelements with mia_material.
- Remove following four shaders (max_NodeVisibility, max_base_ImageCollector, max_Environment, max_base_GBuffer_lens). Comment out the mia_material's Cutout parameter, since currently we didn't use it.
http://code.google.com/p/shitohichi-tools/source/browse/#hg/mentalray/export_mi
The following Figure has mental ray rendering result of Top: 3dsmax, Bottom: standalone. The results are identical.
Comments
Post a Comment