Export Renderman files
Contents
Choose a renderer
First think about which RIB renderer you are going to use. All such renderers differ slightly, so the RIB files need small modifications depending on which renderer one uses. jReality supports 3 renderers out of the box:
- Aqsis - A free RenderMan-compliant renderer.
- 3Delight - A fast RenderMan-compliant renderer designed to produce photorealistic images for serious production environments. You can get a single license without support for free - please check licensing issues yourself!
- Pixar's renderman - PRMan is one of the highest quality renderers available anywhere and has been production tested through successful use in feature films.
Export a RIB file
When you know which renderer you are going to use, open the File-Menu, and select Export -> RIB -> Aqsis/3Delight/Pixar as needed. Then choose a folder where to write the rib file and other files needed (textures, shaders) and type in the name of the rib-file.
Selecting the correct renderer is important, especially if you do work with textures, as the different renderers use different texture-formats.
Prepare textures and shaders for rendering
Both textures and shaders need to be prepared with tools coming with the Renderman renderers. We describe the details here, however, the renderman export writes a render-script which contains al the necessary commands.
The renderscript (ends with .bat) compiles shaders, converts textures and starts the rendering process. Change into the folder containing the .rib-file and call:
$ sh ribfilename.rib_renderscript.bat
or
C:> ribfilename.rib_renderscript.bat
Textures
Note: For writing TIFF files, you need to install Java Advanced Imaging (JAI) API. Please follow this link and download and install it as explained. Without JAI, jReality writes out texture files as PNG, which then need to be converted to TIFF files.
The TIFF files have to be converted to the recommended format by the converters, provided by the renderers. Convert all .tiff files contained in the folder where the .rib file was written to, with the corresponding command for your renderer:
Pixar's renderman
txmake -mode 'periodic' -resize 'up-' texturename.tiff texturename.tex
3Delight
tdlmake -mode 'periodic' texturename.tiff texturename.tex
Aqsis
teqser -mode 'periodic' texturename.tiff texturename.tex
Shaders
The shaders are written as .sl-files, and they don't differ for the different renderes. However, these .sl files need to be compiled with tools coming with the renderers. Convert all .sl files contained in the folder where the .rib file was written to, with the corresponding command for your renderer:
Pixar's renderman
shader shadername.sl
3Delight
shaderdl shadername.sl
Aqsis
aqsl shadername.sl
Perform rendering
Now you can start the rendering job which produces a TIFF file named ribfilename.tif:
Pixar's renderman
prman ribfilename.rib
3Delight
renderdl ribfilename.rib
Aqsis
aqsis ribfilename.rib
Renderman Attributes
There are some de.jreality.shader.CommonAttributes for Renderman. Some control global settings in the rib-file and have to be set in the scene-root, others control local settings and have to be set in the appropriate scene-node. Shaders can be set as local attributes, too.
The first four Attributes can be set as well directly in the Export plugin by selecting Renderman option.
global Renderman Attributes
RMAN_GLOBAL_INCLUDE_FILE You can include an exterior rib-file to handle global settings like format, shading-rate, raytracing maximum depth...
RMAN_SHADOWS_ENABLED If true, the renderer will calculate shadows by ray-tracing with all objects in the scene (if the renderer supports ray-tracing). Ray-tracing will provoke much longer rendering-times!
RMAN_RAY_TRACING_REFLECTIONS If true, the renderer will calculate reflections by ray-tracing (if supported) with all objects in the scene, on the surfaces which have reflection-maps. If false, a reflection-map will be written.
RMAN_RAY_TRACING_VOLUMES If true, the renderer will use ray-tracing (if supported) on all objects in the scene which have volume-shaders (see local Renderman-Attributes). If false, interior- and atmosphere-shaders will be calculated as well, but less exact.
RMAN_OUTPUT_DISPLAY_FORMAT Sets the format of your output-picture.
local Renderman Attributes
RMAN_PROXY_COMMAND You can replace the part in the rib-file, which would be written for a scene-graph-component automatically, by a proxy command.
RMAN_RETAIN_GEOMETRY If you have many nodes in your scene-graph with the same complex geometry, set this attribute true for all of them. The geometry will be written just one time as archive and your rib-file will be much smaller.
RMAN_TEXTURE_FILE You can set the texture-file manually, if you don't want to use the texture from your jReality-scene.
RMAN_TEXTURE_FILE_SUFFIX Sets the texture-file suffix.
RMAN_REFLECTIONMAP_FILE You can set the reflection-map-file manually, if you don't want to use the reflection-map from your jReality-scene.
Renderman Shader Attributes
RMAN_SL_SHADER
RMAN_SURFACE_SHADER
RMAN_DISPLACEMENT_SHADER
RMAN_VOLUME_EXTERIOR_SHADER
RMAN_VOLUME_INTERIOR_SHADER
RMAN_VOLUME_ATMOSPHERE_SHADER
RMAN_IMAGER_SHADER
RMAN_SEARCHPATH_SHADER
RMAN_LIGHT_SHADER
Example for using shaders:
Get a SLShader by
SLShader displacementShader=new SLShader("threads");
Set some parameters by
displacementShader.addParameter("float zmin",new Float(-1000)); displacementShader.addParameter("float zmax",new Float(1000)); displacementShader.addParameter("float depth",new Float(0.3));
Set the shader to the scene-node
sceneGraphComponent.getAppearance().setAttribute(CommonAttributes.RMAN_DISPLACEMENT_SHADER,displacementShader);
|