emRPC

(version
Last edited on February 24th, 2015)

Introduction

Introduction

This plugin for Softimage|XSI's ICE is a renderer specialized on rendering point clouds.

On the emRPC4 web page you can:

  • download the demo version of this plugin.
  • download demo and tutorial scenes.
  • purchase the full version of this plugin.

Note: If you feel that something is not well explained (or not explained at all) then please write me a short e-mail. I will then update the documentation and/or make a demo scene as quickly as possible.

Tip: Check out the following sites for more information, videos and discussions:
si-community.com - the unofficial Softimage community
softimage.tv - the Softimage user based video library

Installation

Important:
- This plugin will only work correctly if the addon emTools is also installed, so please make sure you have the most recent emTools installed!
- Before installing this plugin you must uninstall any previous 4.xx version.

emRPC version 3.xx and emRPC4 can co-exist and be used simultaneously. You need not uninstall your emRPC version 3.xx if you still want to use it.

Installing the addon:

  1. Open the "Plugin Manager". It is located under "File -> Plugin Manager":

  2. As mentioned above: please remove / uninstall any previous version of this plugin. This is really important, because if Softimage finds the same plugin twice then one (maybe even both) might not work.

  3. To install the plugin into the user directory simply right-click onto the folder "User Root" and choose "Install .xsiaddon...":

  4. A browser dialogue will be displayed: go to where you copied the .xsiaddon file, select it and click on "OK". The addon is then automatically installed.

  5. Close Softimage. The plugin is now fully installed and ready to be used. For more information concerning addons and how to install / uninstall them please check the chapter "Working with Addons" in the Softimage documentation.

Demo Version Restrictions

If you are using the full version of this plug-in then you can skip this chapter. If not, please read the following list of restrictions of the demo version:

  • The maximum render resolution is 640 x 480.

  • You can only render between frame 1 and 250.

  • The text "Demo Version" is contained in the output pictures.

Quick Setups

To quickly create an emRPC4 setup you can use the "explode me" compound. It contains an entire ready-to-use emRPC4 setup.

Check the description of the "explode me _ emRPC4" compound on how to use it.

The Compounds

All emRPC4 compounds can be accessed in the ICE Tree viewer.
They are located in "Task -> Mootzoid - emRPC4".

Tip: all compounds contain the word "emRPC4" in their names, so simply enter "pc4" in the search field to see all the available compounds.

The Compound "Main"

Main

This is the main compound of emRPC4.
It expects several other compounds to be plugged in it. Those additional compounds contain all the settings concerning the file path, the image, the particles, etc.
The easiest way to create a correct emRPC4 setup is to use the so-called "explode me" compound.

  • The Input Port(s) and Parameter(s):

    • Main

      • Enable
        Enables/disables this compound.
      • Display Progress Bar
        Enables a progress bar during rendering.
        Note that the progress bar can sometimes be very annoying! Especially when you press playback or if you jump to a frame.
      • Enable Left + Right CTRL to cancel
        If enabled then you can cancel the render process by simultaneously pressing the left and right CTRL keys.
        Note: this is only available for Windows.
      • Verbose in History Log
        Enable this to have some information outputted into the history log.
    • Options (OGL Preview)

      • Set Particle Colors from Rendering
        If enabled, then the colors that were calculated by the renderer are mapped onto the particles.
    • Set Alpha=1
      If enabled, then the particles alpha is set equal 1.
  • Options (File Settings)

    • Write Images to Disk
      Enable this to render and write images. In some cases you might want to disable this, for example when you are using the OGL preview mode (see previous parameter group "Options (OGL Preview)").
    • Skip rendered Frames
      If enabled then already rendered frames are skipped.
    • File Path Sequence
      Plug the output port of a emRPC4 _ Build File Path compound in here.
    • File Format
      The file format for the output pictures.
      Available formats:
        Targa (8 bit per color channel, rle compressed)
        Softimage (8 bit per color channel, rle compressed)
        SGI (8 bit per color channel, uncompressed)
        SGI (16 bit per color channel, uncompressed)
        OpenEXR (HDR, zip compressed)
      Note: OpenEXR is only available for Windows 64 bit.
  • Options (Rendering)

    • Enable Strands
      Enables/disables the use of strands for rendering.
    • Calculate Lighting only for visible Points
      If enabled, then lightning is only calculated for particles that are visible by the current camera, thus resulting in better render times, especially when calculating shadows.
      Enabling this option is however not recommended when working with AO or GI.
    • Anti-Alias (only needed when using Masks)
      If enabled, then the entire picture is anti aliased (=> render times are 2-4 times longer!).
      This is off by default, because particles are always rendered with anti aliasing. However, when using masks it might be necessary to turn this on, because masks have no anti-alias due to the z-buffering algorithm used.
  • Freshly Born (Options (Rendering))

    • Use Particles with an Age equal Zero
      Particles that have just been created (and have an age equal zero) can sometimes cause trouble, because certain ICE data might not yet be correctly set.
      If new particles look strange then disable this parameter.
    • Use Strands with an Age equal Zero
      Same as the above parameter but for strands.
  • Masks (Options (Rendering))

    • Use visible Meshes as Masks
      If enabled, then all polygon meshes that are visible for rendering are used as masks.
    • Shrink
      If enabled, then the outer line of a mask is not used. This helps reduce the toon-like lines around masked objects during compositing.
    • Cast-Shadows-on-Masks
      If enabled, then the particles cast shadows on the masks. The shadows can be rendered into the Alpha channel or into the RGBA channels.
    • Density
      High values produce harder shadows, low values produce smoother shadows.
    • Maximum Darkness
      Defines the maximum darkness of the shadows.
  • Auto Fade-out giant Particles

    • Fade Active (Recommended)
      Enables the automatic fade-out of giant particles.
    • Fade Start
      Percentage of output x-resolution where fading starts.
    • Fade End
      Percentage of output x-resolution where fading ends
  • Settings

    • Settings (Camera)
      Plug the output ports of the camera settings compound in here.
    • Settings (Image)
      Plug the output port of the image settings compound in here.
    • Settings (Particles)
      Plug the output port of the particle settings compound in here.
    • Settings (Strands)
      Plug the output port of the particle settings compound in here.
    • Settings (Shadows)
      Plug the output port of the shadow settings compound in here.
    • Settings (GI AO)
      Plug the output port of the AO GI settings compound in here.
  • The Output Port(s):

    • Execute
      Plug this into an execute port.
  • The Compound "Build File Path"

    Build File Path

    This compound contains the settings for the path and filenames of the output images.

    • The Input Port(s) and Parameter(s):

      • Path
        The path for the output images.
        Note that you can use tokens (e.g. "[Project Path]") for the path.
      • Name
        The filename (without extension and padding).
      • Padding
        The frame padding.

      • Name's Appendices for Stereo

        • Left / Right Eye
          When rendering stereo sequences these strings are appended to the above filename.
    • The Output Port(s):

      • Settings
        Plug this into the "File Path Sequence" port of emRPC4's main compound.

    The Compound "Settings1 _ Camera"

    Settings1 _ Camera

    This compound contains the camera settings.

    • The Input Port(s) and Parameter(s):

      • Use
        This parameter lets you specify which camera shall be used for the rendering.
        You have three possibilities:

        1. You can use the camera from the current pass.
        2. You can use a custom camera specified via its name (that would be "Camera C" of the custom camera names, see next parameters.).
        3. You can use a stereo camera setup. The three cameras must be specified via their names (see next parameters).
           
      • Custom Camera Names

        • Camera C
          The name of a custom camera or, in case you are rendering stereo, the center camera.
        • Camera L
          The left eye's camera when rendering stereo.
        • Camera R
          The right eye's camera when rendering stereo.
      • Depth of Field

        • Enable
          Turns on depth of field.
        • Strength
          The strength (or amount) of depth of field.
      • Focal Distance (Depth of Field)

        • Use
          For the focal distance you can use either the distance to the center of interest or you can use a custom distance (see next parameter).
        • Custom Distance
          The custom focal distance (only used if the previous parameter is set accordingly).
        • Focus Range
          The range (in SI units) around the focal distance that defines the focus area.
        • Max Blur
          The maximum amount of blur for the unfocused areas.
        • Compensate Alpha
          Use lower values if unfocused areas tend to be too transparent.
      • Motion Blur

        • Enable
          Turns on motion blur.
        • Speed
          Defines the shutter speed for the camera.
        • Offset
          An offset when the shutter opens.
        • Position
          Defines where the motion blur starts and ends.
        • Shape
          The shape of the motion blur (square or triangle).
      • Detail / Space (Motion Blur)

        • Level-of-Detail
          emRPC4 creates a motion blur effect by adding virtual points along the velocity vectors. This parameter defines how many virtual points are created. Higher values look better but can take a little longer.
        • Space
          This defines the space in which the motion blur is calculated.
          You can choose world space or pixel space. Latter is the recommended setting.
    • The Output Port(s):

      • Settings
        Plug these two ports into the "Settings (Camera)" ports of emRPC4's main compound.

    The Compound "Settings2 _ Image"

    Settings2 _ Image

    This compound contains the settings for the output images.

    • The Input Port(s) and Parameter(s):

      • Width / Height
        The resolution of the output images.
      • Pixel Ratio
        The pixel ratio.
        Note that only pixel ratios between 1 and 2 are allowed.
      • Premultiply with Alpha
        Enable this to save premultiplied images.
      • Background Color
        The background color of the images.
        This is set to (0, 0, 0, 0) by default.
    • The Output Port(s):

      • Settings
        Plug this into the "Settings (Image)" port of emRPC4's main compound.

    The Compound "Settings3 _ Particles"

    Settings3 _ Particles

    This big compound contains all the "per point of point cloud" parameters for the particles and/or the strands.
    By default only one compound is used for both, the particles and the strands. But if you wish to use different settings for the particles than for the strands you can simply plug one compound into the "Settings (Particles)" port and another one into the "Settings (Strands)" port of the main compound.

    On the right side you can see not one, but two pictures of the "Settings Particles" compound. The upper one is sort of a "lighter" version of the lower one. Only the most common parameters are exposed. You can nevertheless access all available parameters at any time by simply entering the compound. Or by exploding it.

    As mentioned above all parameters in this compound are "per point of point cloud". This allows you to give each particle some own settings. For example you could use the State ID to have some particles cast shadows and others not. Or you could set the ray visibility of particles depending on where they are located. Or you might give some particles more motion blur than others. The possibilities are endless !

    • The Input Port(s) and Parameter(s):

      • Main

        • Use this Particle or Strand
          Enables/disables the use of the particle or strand.
        • Strand LOD
          The level of detail for the strands. This is equal the amount of points that are generated between the strand points.
        • Strand LOD x2 for Particle to first Strand Point
          The name says it all.
      • Drawing

        • Shape
          The shape to use when drawing the particle.
        • Drawing-Mode
          One of the following drawing modes:
          • Overlay
          • Add
          • Screen
        • Opacity
          Opacity of the particle when drawing.
          Note: this value is multiplied with the particle's alpha channel.
        • Scale
          Particle scale when drawing.
        • Number-of-virtual-Points
          It is possible to draw a particle "as is" or to sort of break it into several smaller particles. The value of this parameter defines into how many pieces the particle shall be split.
      • Shading

        • Shader
          The shading mode.
        • Lighting-Scale
          An overall scale for the final lighting.
        • Illumigain
          This parameter is useful when you want to see some lighting on very dark particles. Normally the lighting is multiplied by the particle's color => dark particles remain dark. By using Illumigain values greater than zero the lighting will be considered no matter what the particle's color is. For example you could use this parameter to illuminate some black smoke.
        • Boost
          This parameter is only used with the shader "Shaded (Boost, 6 Vectors)". Higher values produces brighter results.
      • Particle Size

        • Use
          Defines the particle size.
        • Custom Size
          Custom size.
      • Particle Color

        • Use
          Defines the particle color to use during rendering.
        • Custom RGBA Color
          Custom RGBA color.
      • Motion Blur

        • Amount
          The amount of motion blur for the particle. This value only has an effect if motion blur is enabled in the camera settings.
      • Ray Visibility

        • Primary
          Primary ray visibility.
        • Secondary
          Secondary ray visibility.
      • Shadows

        • Cast
          The amount of shadow the particle casts.
        • Receive
          The amount of shadow the particle receives.
      • Ambient Occlusion / Global Illumination

        • Calculation-Method
          Sets the calculation method for AO and GI. The look-up table is best most of the time but in special cases (or for special particles) you might want to use the "per Particle" method. Latter requires more calculations.
      • AO

        • Cast
          The amount of AO the particle casts.
        • Receive
          The amount of AO the particle receives.
      • GI

        • Cast
          The amount of GI the particle casts.
        • Receive
          The amount of GI the particle receives.
        • Illumigain
          This special parameter is useful when you want to see some GI on very dark particles. Normally the lighting is multiplied by the particle's color => dark particles remain dark. By using Illumigain values greater than zero the lighting will be considered no matter what the particle's color is. For example you could use this parameter to see some GI on black smoke.
          Note: this parameter is unaffected by the cast and receive values => it is "added on top" of the "normal" GI stuff. However if GI is disabled then this has no effect.
        • Emission
          With this parameter you can add some further GI emission as if the particle were glowing.
        • Emission RGB Color
          The RGB color of the emission.
        • Add Emission to final Lighting
          The amount of the "Emission RGB Color" that will be added to the final lighting.
    • The Output Port(s):

      • Settings
        Plug this into the "Settings (Particles)" and/or "Settings (Strands)" port of emRPC4's main compound.

    The Compound "Settings4 _ Shadows"

    Settings4 _ Shadows This compound contains the global settings for shadowing and self-shadowing.

    • The Input Port(s) and Parameter(s):

      • Self-Shadowing

        • Enable Self-Shadowing
          Enable/disable self-shadowing.
        • Amount
          Amount of self-shadowing.
        • Density
          The density of the medium. The lower this value the more particles are needed to produce full shadows.
          Use low values for softer shadows and larger values for dark, hard shadows.
        • Maximum-Darkness
          Defines the maximum darkness of the shadows.
      • Fallin/Falloff Distance (Self-Shadowing)
        Note: these parameters let you define an interval for the shadow calculations. The distances are all relative to the particle for which shadows are being calculated. Using the fallin/falloff is recommended, because it considerably reduces calculations and produces nicer results.

        • In-Start
          The distance (in SI units) at which shadow calculations start.
        • In-End
          The distance (in SI units) at which shadow calculations reach their maximum.
        • Fade-out
          Enable/disable fade-out for shadow calculations.
        • Out-Start
          The distance (in SI units) at which shadow calculations start to fade-out.
        • Out-End
          The distance (in SI units) at which shadow calculations end to fade-out. From this point on no shadows calculations are performed.
      • Luma (Self-Shadowing)

        • Use
          Enable luma effects.
        • Level In
          Higher values will make the dark shadows even darker.
        • Gamma
          Gamma adjustment.
        • Level Out
          Lower values will make the bright shadows even brighter.
      • Octree

        • Level-of-Detail
          The level of detail for the shadows. Using higher values will produce more detail (if needed) but also use more memory space and calculations.
          Note: it is nearly always a good thing to use a low level of detail.
        • Caster-Size-Multiplier
          This value can be used to increase the size of particles when they cast shadows. If for example you have very small particles that hardly cast any shadow you can increase this value to make them virtually bigger so that they cast more shadows but are still drawn in their original size.
        • Percentage-of-Particles-to-use-in-the-Octree
          The name says it all: this defines the percentage of the input particles that are used in the octree. When working with many particles (>1.000.000) it most often is not necessary to use all of them in the octree. Values of about 20% will produce nearly the same results but significantly reduce the time it takes to build the octree.
        • Density-Limit
          The maximum density of an octree cell.
        • Memory-Limit-(MBytes)
          The maximum amount of memory (in megabytes) that may be used for the octree.
      • Blur (Octree)

        • Strength
          Strength of the octree blur. Blurring the octree produces smoother shadows and less artifacts.
        • Iterations
          Amount of iterations when blurring the octree. More iteration result in more blurriness.
    • The Output Port(s):

      • Settings
        Plug this into the "Settings (Shadows)" port of emRPC4's main compound.

    The Compound "Settings5 _ AO GI"

    Settings5 _ AO GI

    This compound contains the global settings for ambient occlusion (AO) and global illumination (GI).

    • The Input Port(s) and Parameter(s):

      • Main

        • Enable AO
          Enable/disable AO
        • Enable GI
          Enable/disable GI.
        • Number-of-Samples
          The amount of AO/GI samples that are calculated per particle. Higher values produce smoother results but require more calculations.
        • Order
          The order in which lighting, AO and GI are combined.
      • AO (Ambient Occlusion)

        • Amount
          Amount of AO.
        • Density
          High values produce harder and darker AO, low values produce smoother AO.
        • Maximum-Darkness
          Defines the maximum darkness of the AO.
      • Fallin/Falloff Distance (Ambient Occlusion)

        • In-Start
          The distance (in SI units) at which AO calculations start.
        • In-End
          The distance (in SI units) at which AO calculations reach their maximum.
        • Out-End
          The distance (in SI units) at which AO calculations end.
      • Luma (Ambient Occlusion)
        Note that the luma for AO is enabled per default.

        • Use
          Enable AO luma effects.
        • Level In
          Higher values will make the dark AO values even darker.
        • Gamma
          Gamma adjustment.
        • Level Out
          Lower values will make the bright AO values even brighter.
      • GI (Global Illumination)

        • Amount
          Amount of GI.
        • Ray Depth
          The GI ray depth. This could also be referred to as "the amount of times the light bounces of surfaces". Using values greater than 1 will produce brighter images but require more calculations.
        • Density Max
          Maximum density of the "GI medium".
      • Fallin/Falloff Distance (Global Illumination)

        • In-Start
          The distance (in SI units) at which GI calculations start.
        • In-End
          The distance (in SI units) at which GI calculations reach their maximum.
        • Out-End
          The distance (in SI units) at which GI calculations end.
      • Luma (Global Illumination)

        • Use
          Enable GI luma effects.
        • Level In
          Higher values will make the dark GI values even darker.
        • Gamma
          Gamma adjustment.
        • Level Out
          Lower values will make the bright GI values even brighter.
      • Octree

        • Level-of-Detail
          The level of detail for the AO/GI. Using higher values will produce more detail (if needed) but also use more memory space and calculations.
          Note: it is nearly always a good thing to use a low level of detail.
        • Memory-Limit-(MBytes)
          The maximum amount of memory (in megabytes) that may be used for the octree.
      • Blur (Octree)

        • Strength
          Strength of the octree blur. Blurring the octree produces smoother AO and GI.
        • Iterations
          Amount of iterations when blurring the octree. More iteration result in more blurriness.
    • The Output Port(s):

      • Settings
        Plug this into the "Settings (GI AO)" port of emRPC4's main compound.

    The Compound "explode me _ emRPC4"

    explode me

    This compound contains an entire emRPC4 setup.

    Usage:

    1. Drag and drop this compound into your ICE Tree.

    2. Select and explode it.

    3. Connect it to your ICE Tree.

     

     

     

     

    The Viewer

    The Viewer

    The viewer of emRPC4 - a so-called "Custom Display Host" - can be used to see the last rendered picture(s), similar to the flipbook.

    Accessing the viewer as a floating window:

    1. In the menu choose "View -> General -> Custom Display Host".

    2. A floating window pops up. Right-click into the window and select "emRPC4 Viewer".

    Some good-to-know things about the viewer:

    1. You should only open one viewer at a time. If you have several viewers then only the last one will work.

    2. The viewer can handle more than one image, so if you have several emRPC4 setups in your scene then the viewer will display a list of all images. Simply click on an item in the list to view the picture.

    3. The viewer uses hotkeys that are more or less identical to the hotkeys of the flipbook. To see the whole list of available hotkeys simply press the "i" key.

    4. Left-click into the viewer and move the mouse to move the image.

    5. Use the mouse wheel or the right mouse button to zoom the image.

    6. Use the hotkey "d" to set back the default settings.

    7. You can flip through the list of images using the Page-up / Page-down keys.

    Tips and Tricks, Trouble Shooting

    Tips and Tricks, Trouble Shooting

    • Tips and Tricks:

      • Don't use the Softimage "Simulation Root" compound.
        It is recommended to not use the above compound.  

      • Put your emRPC4 setup into the Post-Simulation stack.
        Rendering is typically done once all the particles have been created and simulated. In other words: emRPC4 needs to be executed after the "Simulate Particles" node.
        It is recommended to put the emRPC4 setup into the Post-Simulation stack of the point cloud. That allows you to tweak the emRPC4 settings without having to re-simulate the main ICE Tree.

      • Watch the "old" video tutorials!
        Even though this new version is somewhat different from the old emRPC 3.xx you can still take a look at the old tutorial videos. Many techniques also apply to this new version.

    • Trouble Shooting:

      • PROBLEM: the rendered particles don't have the same position as in the viewports.
        PROBABLE CAUSE: you might be using a camera with a global scale different from (1, 1, 1).

      • PROBLEM: I cannot seem to find the emRPC4 Viewer anywhere.
        PROBABLE CAUSE: you are probably using Linux. The emRPC4 Viewer is currently only supported under Windows.

    Version History

    Version History

    • New in Version 4.0:

      • motion blur.
      • depth of field.
      • ambient occlusion.
      • global illumination.
      • ability to abort rendering at any time.
      • camera: projection plane now supported.
      • rendering of stereo.
      • all render settings are now defined in the compounds.
      • custom display host "emRPC4 Viewer".
      • virtual points.
      • improved workflow.
      • the compounds have been "cleaned".
      • improved multithreading.
      • strands: points are now drawn between the particle and the first strand point.
      • strands: a LOD can be specified for strands.
      • new shape called "Box (no falloff)".
    • New in Version 4.07:

      • ICE Tree: all compounds are now located in "Task -> Mootzoid - emRPC4".
      • bug fix: stereo cameras were ignored by the masks. This has been fixed.
    • New in Version 4.102:

      • bug fix (Linux): in certain cases Softimage crashed when the output folder didn't exist. This has been fixed.
      • bug fix (optical shift): the optical shift was not correctly calculated for the masks. This has been fixed.
      • bug fix (stereo rendering): the masks were not rendered correctly. This has been fixed.
      • now supports the new "emBatch" render node licensing.
    • New in Version 4.130:

      • support of Arnold lights.
      • the addon is now built separately for Softimage 2012, 2013, etc. using the respective SDK.
    • New in Version 4.200:

      • the addon is now available for Softimage 2012, 2013, 2014 and 2015.
      • now using the newest mootzoid libs.
      • a few minor bug fixes.
    • New in Version 4.210:

      • a few changes and optimizations in the internal octree class.
      • now uses RLM v.11.2.
      • revised multithreading and better render times.
      • the version for Softimage 2015 no longer has a memory leak (due to a bug fix in the Softimage 2015 ICE SDK).

    Limitations and Remarks

    Limitations and Remarks

    • emRPC4 is only available for Softimage 64 bit (Windows and Linux).

    • the emRPC4 Viewer only runs under Windows.