Hidden content: [ Show ]
Cycles for Softimage
Plugins linking to this thread: (hide)
Sycles 2.4.1 V 2.4.1 released August 2026 —
This is a full integration of the Blender Cycles renderer into XSI. Version 2.4 is compiled with Cycles 5.3 (state of July 2026). The second generation of the addon (since 2.0) is a complete rewrite and works with Softimage 2015 SP2.
New since version 2.1.3 (from the github release notes): 2.4.1: fixed incorrect transforms of instances when the master model has rotation or scale, repacked with missing DLLs 2.4: Cycles 5.3. New Alpha parameter for the ImageTexture node, Sky Texture with Single and Multiple Scattering models, Thin Film for Metallic and Glass BSDF, new Raycast and Scene Time nodes, OSL custom camera, Linear 3D curve shape (also as per-object override), Geometry Approximation mode for NURBS surfaces, Render Time pass (CPU), texture optimisation (resolution, limit, tx texture cache) and a detailed scene export timing log 2.4: renders MaterialX shader trees from the MaterialXSI addon (converted to OSL). Note: OSL shading works on CPU render devices only 2.3.x: Cycles 4.5, OSL support is back, new Metallic BSDF and Set Normal nodes, phase function for Scatter Volume, Diffuse Roughness for Principled BSDF, more Noise Texture types, subdivision with motion deform, per-frame texture images, rendering of NURBS surfaces and curves (via custom properties), tile rendering, fixed shadow catcher, vector input ports for OSL shaders 2.2.x: nodes of Blender 4.3 (Ray Portal BSDF, Sheen BSDF, Gabor Texture, redesigned Principled BSDF), current Blender OCIO color profiles, custom velocity grids for VDB primitives, Particle Info node fed by ICE attributes, denoising of the final passes with OIDN or OptiX
Supported Softimage features (quoted from the download page):
Polygon meshes and hair geometry Texture coordinates Vertex colors Shaderball preview. For materials, shader nodes and texture nodes Basic limited support of the following built-in Softimage shader nodes: Phong, Lambert, Hair Shading, Image, converters between vector, color and scalar Ambience global environment light Limited support of built-in Softimage light sources Model instances ICE strands geometry ICE pointcloud instances ICE geometry attributes (vector, color and scalar) with context per-point and per-object Volume rendering. In particular supports emFluid, Explosia FX and openVDB for Softimage volumes Special VDB Primitive for rendering vdbs without ICE Output multilayered exr file with all rendered passes Rendermaps
The following features from Cycles itself are supported: CPU and GPU rendering. In particular multidevices are supported. This allows you to use cpu and gpu simultaneously. The libraries for GPU rendering are included in the package. All Cycles shader nodes OSL shaders OpenColorIO profiles (Blender profile included) All Cycles output passes (Combined, Depth, Normal and so on) Color and value shader AOVs Lightgroups Cycles camera properties, in particular all panorama modes Cycles light sources Denoising by using Open Image Denoise and OptiX denoiser
For more information, full documentation and a list of the available Cycles nodes see the download page linked below. There is no local backup because the addon is still frequently updated - the plugin can be downloaded on Shekn's github releases. The source code is available on github there as well.
This is a full integration of the Blender Cycles renderer into XSI. Version 2.4 is compiled with Cycles 5.3 (state of July 2026). The second generation of the addon (since 2.0) is a complete rewrite and works with Softimage 2015 SP2.
New since version 2.1.3 (from the github release notes): 2.4.1: fixed incorrect transforms of instances when the master model has rotation or scale, repacked with missing DLLs 2.4: Cycles 5.3. New Alpha parameter for the ImageTexture node, Sky Texture with Single and Multiple Scattering models, Thin Film for Metallic and Glass BSDF, new Raycast and Scene Time nodes, OSL custom camera, Linear 3D curve shape (also as per-object override), Geometry Approximation mode for NURBS surfaces, Render Time pass (CPU), texture optimisation (resolution, limit, tx texture cache) and a detailed scene export timing log 2.4: renders MaterialX shader trees from the MaterialXSI addon (converted to OSL). Note: OSL shading works on CPU render devices only 2.3.x: Cycles 4.5, OSL support is back, new Metallic BSDF and Set Normal nodes, phase function for Scatter Volume, Diffuse Roughness for Principled BSDF, more Noise Texture types, subdivision with motion deform, per-frame texture images, rendering of NURBS surfaces and curves (via custom properties), tile rendering, fixed shadow catcher, vector input ports for OSL shaders 2.2.x: nodes of Blender 4.3 (Ray Portal BSDF, Sheen BSDF, Gabor Texture, redesigned Principled BSDF), current Blender OCIO color profiles, custom velocity grids for VDB primitives, Particle Info node fed by ICE attributes, denoising of the final passes with OIDN or OptiX
Supported Softimage features (quoted from the download page):
Polygon meshes and hair geometry Texture coordinates Vertex colors Shaderball preview. For materials, shader nodes and texture nodes Basic limited support of the following built-in Softimage shader nodes: Phong, Lambert, Hair Shading, Image, converters between vector, color and scalar Ambience global environment light Limited support of built-in Softimage light sources Model instances ICE strands geometry ICE pointcloud instances ICE geometry attributes (vector, color and scalar) with context per-point and per-object Volume rendering. In particular supports emFluid, Explosia FX and openVDB for Softimage volumes Special VDB Primitive for rendering vdbs without ICE Output multilayered exr file with all rendered passes Rendermaps
The following features from Cycles itself are supported: CPU and GPU rendering. In particular multidevices are supported. This allows you to use cpu and gpu simultaneously. The libraries for GPU rendering are included in the package. All Cycles shader nodes OSL shaders OpenColorIO profiles (Blender profile included) All Cycles output passes (Combined, Depth, Normal and so on) Color and value shader AOVs Lightgroups Cycles camera properties, in particular all panorama modes Cycles light sources Denoising by using Open Image Denoise and OptiX denoiser
For more information, full documentation and a list of the available Cycles nodes see the download page linked below. There is no local backup because the addon is still frequently updated - the plugin can be downloaded on Shekn's github releases. The source code is available on github there as well.
download page: https://ssoftadd.github.io/syclesSecondGenPage.html / wiki with tutorials / all of Shekn's plugins / author on vimeo / si-community thread
-
Shekn
- Posts: 254
- Joined: 30 Dec 2016, 19:18
Re: Cycles for Softimage
It's a strange bug, I failed to reproduce it. When I call to render the whole pass, it renders 5 frames with correct camera fov. I attach the animated gif under the spoiler.
-
avalon_70
- Posts: 45
- Joined: 09 Jan 2021, 13:59
Re: Cycles for Softimage
Hi Shekn,Shekn wrote: 06 Oct 2023, 16:08 It's a strange bug, I failed to reproduce it. When I call to render the whole pass, it renders 5 frames with correct camera fov. I attach the animated gif under the spoiler.
since the bug didn't occur to you, I had a doubt..
I preferably use 2014 for various reasons, and the bug appeared there.
I tried opening the 2015 and it works fine.
-
avalon_70
- Posts: 45
- Joined: 09 Jan 2021, 13:59
Re: Cycles for Softimage
I investigated further, given that I had also had anomalous behavior in 2015.
I understood where the problem is generated, I don't know if it is a feature or a bug.
When there is no correspondence between the preferences in "output format" and the "Play control" there is a shift in the camera animation.



I understood where the problem is generated, I don't know if it is a feature or a bug.
When there is no correspondence between the preferences in "output format" and the "Play control" there is a shift in the camera animation.



-
Shekn
- Posts: 254
- Joined: 30 Dec 2016, 19:18
Re: Cycles for Softimage
Ok, I am able to reproduce this bug. It looks like the Sycles should more carefully select proper time for animated objects and parameters.
Now it selects the time of the rendered frame by
And then use it like
When Frame Rate for Play Control is not 30 fps, then it return different frame with respect to Softimage viewport. It needs more investigations for fixing this behavior.
Now it selects the time of the rendered frame by
Code: Select all
eval_time = render_context.GetTime();Code: Select all
XSI::MATH::CMatrix4 camera_tfm_matrix = xsi_camera.GetKinematics().GetGlobal().GetTransform(eval_time).GetMatrix4();-
avalon_70
- Posts: 45
- Joined: 09 Jan 2021, 13:59
Re: Cycles for Softimage
Ok, thank you
Shekn wrote: 12 Oct 2023, 08:06 Ok, I am able to reproduce this bug. It looks like the Sycles should more carefully select proper time for animated objects and parameters.
Now it selects the time of the rendered frame byAnd then use it likeCode: Select all
eval_time = render_context.GetTime();When Frame Rate for Play Control is not 30 fps, then it return different frame with respect to Softimage viewport. It needs more investigations for fixing this behavior.Code: Select all
XSI::MATH::CMatrix4 camera_tfm_matrix = xsi_camera.GetKinematics().GetGlobal().GetTransform(eval_time).GetMatrix4();
-
matevil
- Posts: 63
- Joined: 23 Mar 2023, 17:49
- Location: Italy
Re: Cycles for Softimage
simple question
does it work also on Softimage 2014?
thanks
does it work also on Softimage 2014?
thanks
-
avalon_70
- Posts: 45
- Joined: 09 Jan 2021, 13:59
Re: Cycles for Softimage
No, in 2014 it's worse... the FOV, when animated, is read badly, and setting the playback to 25 frames doesn't solve the problem.
-
matevil
- Posts: 63
- Joined: 23 Mar 2023, 17:49
- Location: Italy
-
opoppopopp
- Posts: 213
- Joined: 16 Jun 2009, 04:23
Re: Cycles for Softimage
Is there any updated doc for Rendering emFluid ?
Follow that 03_2022.pdf, I successfully get "Waste" and "Color" by setting up "Set Volume Float" , "Set Volume Color". But not "Heat" for combustion simulation.
Something must be wrong here.
e.g. What is the correct way to use cycVolumeInfo ? ("cycVolumeInfo" is shown when double click this node, what is this string referenced to ?)
Follow that 03_2022.pdf, I successfully get "Waste" and "Color" by setting up "Set Volume Float" , "Set Volume Color". But not "Heat" for combustion simulation.
Something must be wrong here.
e.g. What is the correct way to use cycVolumeInfo ? ("cycVolumeInfo" is shown when double click this node, what is this string referenced to ?)
-
Shekn
- Posts: 254
- Joined: 30 Dec 2016, 19:18
Re: Cycles for Softimage
cycVolumeInfo shader node allows to get some default volume attributes: color, density, flame and temperature. It's possible to get the same attribute by using general cycAttribute node. Simply set the same name and you get the same attribute.
To obtain heat grid from emFluid simulation, you should make the same as for color or waste. Get it by using "f5t Post Get Grid Data" ICE node, and then store inside internal ICE attribute by using "Set Volume Float" (because this attribute is float). You should use names "heat_min", "heat_max", "heat_size" and "heat". It's general rule: to store inside attribute with the name "xxx" use other names "xxx_min", "xxx_max", "xxx_size". Then you will be able to obtain this attribute in the shader tree by using cycAttribute node with attribute name "heat".
Here is a screen with example:

To obtain heat grid from emFluid simulation, you should make the same as for color or waste. Get it by using "f5t Post Get Grid Data" ICE node, and then store inside internal ICE attribute by using "Set Volume Float" (because this attribute is float). You should use names "heat_min", "heat_max", "heat_size" and "heat". It's general rule: to store inside attribute with the name "xxx" use other names "xxx_min", "xxx_max", "xxx_size". Then you will be able to obtain this attribute in the shader tree by using cycAttribute node with attribute name "heat".
Here is a screen with example:

-
opoppopopp
- Posts: 213
- Joined: 16 Jun 2009, 04:23
Re: Cycles for Softimage
Thank you for the quick explanation
- WITHOUT those "Post Get Grid Data" in emFluid trees, both "cycVolumeInfo" and "cycAttribute" will NOT work, am I right?
- Is "Cycles PC Property" relevant to all things? What does "Native Cycles PC" and "Overide PC Color" in "Cycle PC Property" means?
- I type "density" in cycAttribute to get density, at this time, DO I NEED ALSO type "density" in "Density Attribute" of "cycPrincipledVolume" node? (seems I have to leave it blank, otherwise the result is different compare to a single "cycScatter Volume" node which don't allow to type in anything)
-
Shekn
- Posts: 254
- Joined: 30 Dec 2016, 19:18
Re: Cycles for Softimage
If pointcloud object contains CyclesPointcloud property with activated "Native Cycles Pointcloud" then it always rendered as a set of balls. All attributes for shader are taken from ICE attributes of this pointcloud (Color, Size and so on). Even if the pointcloud contains strands, instances or volumetric data, all of them are ignored. Rendered object is a set of balls at pointcloud points. It renders much faster than ball instances.
For rendering poinclouds with volumetric data the engine creates internal volume object (on the Cycles side). This object required the array of volumetric data, dimensions and voxel cell size. That's why if we would like to render volume from emFluid we should define all these datas by using "Set Volume Float/Color" ICE node. By this node we get emFluid data from the node "Post Get Grid Data" and save into separate attribute, which will be used by the renderer to create volume object.
For rendering volumetric object we also should transfer data from ICE attribute into the shader. The node cycAttribute should be used for getting values of the ICE attribute by it name. In the ICE tree we store volume data inside attribute with the name "xxx", and then in the shader tree we can use this name "xxx" to load this attribute into shader. There are also some built-in presets for attribute names. The node cycVolumeInfo allows to get attributes with names "color", "denisty", "flame" and "temperature". These attributes also can be obtains by using cycAttribute. These are two equivalent ways. The node cycPrincipledVolume also contains some presets for loading attributes. Instead getting it by cycAttribute node it's possible to define names inside cycPrincipledVolume. These two approaches are also equivalent. So, use either name in the cycPrincipledVolume or name in cycAttribute. I made some test and it looks like if we use both cycAttribute and the name in the cycPrincipledVolume, then it multiply these values.
For rendering poinclouds with volumetric data the engine creates internal volume object (on the Cycles side). This object required the array of volumetric data, dimensions and voxel cell size. That's why if we would like to render volume from emFluid we should define all these datas by using "Set Volume Float/Color" ICE node. By this node we get emFluid data from the node "Post Get Grid Data" and save into separate attribute, which will be used by the renderer to create volume object.
For rendering volumetric object we also should transfer data from ICE attribute into the shader. The node cycAttribute should be used for getting values of the ICE attribute by it name. In the ICE tree we store volume data inside attribute with the name "xxx", and then in the shader tree we can use this name "xxx" to load this attribute into shader. There are also some built-in presets for attribute names. The node cycVolumeInfo allows to get attributes with names "color", "denisty", "flame" and "temperature". These attributes also can be obtains by using cycAttribute. These are two equivalent ways. The node cycPrincipledVolume also contains some presets for loading attributes. Instead getting it by cycAttribute node it's possible to define names inside cycPrincipledVolume. These two approaches are also equivalent. So, use either name in the cycPrincipledVolume or name in cycAttribute. I made some test and it looks like if we use both cycAttribute and the name in the cycPrincipledVolume, then it multiply these values.
-
opoppopopp
- Posts: 213
- Joined: 16 Jun 2009, 04:23
Re: Cycles for Softimage
Thank you for the comprehensive explanation!
Much better understanding now.
-
opoppopopp
- Posts: 213
- Joined: 16 Jun 2009, 04:23
Re: Cycles for Softimage
another question...
how to: drive shader parameters (like strength of a cycEmission), through pure particle attribute (like particle's size)? without any instance things.
After lookup the manual, cycAttribute is intended for instance things right, So tested ... it won't work, and we no longer have "Use PC Attributes for Instances" in PC Property
how to: drive shader parameters (like strength of a cycEmission), through pure particle attribute (like particle's size)? without any instance things.
After lookup the manual, cycAttribute is intended for instance things right, So tested ... it won't work, and we no longer have "Use PC Attributes for Instances" in PC Property
-
Shekn
- Posts: 254
- Joined: 30 Dec 2016, 19:18
Re: Cycles for Softimage
As I understand the situation is as follows. You have a master object and pointcloud with instances of this master object. And you would like to use pointlcoud attribute (size of the instance, for example) for shading this instance. The solution is to use colors. In the ICE tree for the pointcloud save required value in some channel of the Color attribute (only inside this attribute, other names will not work). Then in the shader of the master object (the renderer use master object material for instances) use cycObjectInfo node and Color output port. Split this color to RGB values and use channel with required data.
Here is an example. I store instance size in alpha channel of the Color attribute. Then in the shader tree extract it from Alpha output of the cycObjectInfo node. By the way, cycAttribute node with Color name contains colors of point of the master object, not pointcloud. But cycObjectInfo contains colors of the pointcloud points, not master object.

Why only Color attribute should used? Because in the Cycles objects supports color value. All other values are stored in mesh attributes. Mesh is a component of the object in the scene. To create instances we create only one mesh and assign it to different objects. So, all instances use attributes from one mesh. Except color, because color is the property of an object, not a mesh.
Here is an example. I store instance size in alpha channel of the Color attribute. Then in the shader tree extract it from Alpha output of the cycObjectInfo node. By the way, cycAttribute node with Color name contains colors of point of the master object, not pointcloud. But cycObjectInfo contains colors of the pointcloud points, not master object.

Why only Color attribute should used? Because in the Cycles objects supports color value. All other values are stored in mesh attributes. Mesh is a component of the object in the scene. To create instances we create only one mesh and assign it to different objects. So, all instances use attributes from one mesh. Except color, because color is the property of an object, not a mesh.
-
opoppopopp
- Posts: 213
- Joined: 16 Jun 2009, 04:23
Re: Cycles for Softimage
My fault of not explain question well...
How to use ICE Particle attribute on any arbitrary Sycles shader.(no instance and no volume shader things)
have a basic ICE Emission with random size, life, velocity etc. And I want to use, for example, that random per-particle size to drive an arbitrary Sycles node parameter, for example strength a cycEmmision
Like picture below

How to use ICE Particle attribute on any arbitrary Sycles shader.(no instance and no volume shader things)
have a basic ICE Emission with random size, life, velocity etc. And I want to use, for example, that random per-particle size to drive an arbitrary Sycles node parameter, for example strength a cycEmmision
Like picture below

