Export Renderman files

From JReality Wiki
Jump to: navigation, search
LeftArrowHeader.png
RightArrowHeader.png
[[|      ]]>
jReality Tutorial: 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);


Previous: Display Mathematica graphics Contents