Hidden content: [ Show ]
Cycles for Softimage
Plugins linking to this thread: (hide)
Sycles 2.1.3
V 2.1.3 released August 2023 —
This is a full integration of the Blender Cycles renderer into XSI. This update is a complete rewrite for the latest Cycles version from 2023 and has support for the following 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 buil-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 poitcloud 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 passe Rendermaps
The following features from Cycles itself are supported: CPU and GPU rendering. In particular multidevices are supported. This allows to use cpu and gpu simultaneously. Note: This distribution does not contains libraries for gpu rendering. You can download it from here. Unpack the archive and place lib folder to the /Sycles_2_1_2/Application/Plugins/ folder near the file config.ini 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 well.
This is a full integration of the Blender Cycles renderer into XSI. This update is a complete rewrite for the latest Cycles version from 2023 and has support for the following 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 buil-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 poitcloud 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 passe Rendermaps
The following features from Cycles itself are supported: CPU and GPU rendering. In particular multidevices are supported. This allows to use cpu and gpu simultaneously. Note: This distribution does not contains libraries for gpu rendering. You can download it from here. Unpack the archive and place lib folder to the /Sycles_2_1_2/Application/Plugins/ folder near the file config.ini 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 well.
download page: https://ssoftadd.github.io/syclesSecondGenPage.html / all of Shekn's plugins / author on vimeo / si-community thread
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.
Re: Cycles for Softimage
Hi Shekn,
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.
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.
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();
Re: Cycles for Softimage
Ok, thank you
Shekn wrote: ↑12 Oct 2023, 10: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();
Re: Cycles for Softimage
simple question
does it work also on Softimage 2014?
thanks
does it work also on Softimage 2014?
thanks
-
- Posts: 169
- Joined: 16 Jun 2009, 06: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 ?)
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:
-
- Posts: 169
- Joined: 16 Jun 2009, 06: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)
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.
-
- Posts: 169
- Joined: 16 Jun 2009, 06:23
-
- Posts: 169
- Joined: 16 Jun 2009, 06: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
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.
-
- Posts: 169
- Joined: 16 Jun 2009, 06: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
Who is online
Users browsing this forum: No registered users and 52 guests