Skip to content

SceneObjectScatterer

SceneObjectScatterer#

(Scatterer)

Go to User page.

Description#

Scene object used to scatter other scene objects. The result of the scattering is this scene object itself: this node does not generate real Clarisse's scene objects.

Public Attributes#

Type Name Visual Hint Description
reference (Geometry) geometry_support VISUAL_HINT_DEFAULT Set the geometry whose vertices will be used as scattering positions. For each vertex, a scene object will be scatterered.
long scatter_input_mode VISUAL_HINT_DEFAULT Define how scattered geometries will be chosen. In Random mode, geometries are scattered randomly. In Luminance mode, the scatter input luminance is used to scatter a specific geometry from the list. Basically the scatterer divides the input luminance according to the number of geometries. The geometry located in the luminance interval will be the one scattered. In ID mode, an ID is read from the scatter input and is used to select the corresponding geometry. It is also possible to specify the name of a custom attribute to be read from each geometry and that contains their respective IDs.
double scatter_input VISUAL_HINT_L
reference (SceneObject) geometry VISUAL_HINT_DEFAULT The geometry to scatter.
long id VISUAL_HINT_DEFAULT Optional ID for this geometry.
double probability VISUAL_HINT_PERCENTAGE Probability of this geometry to be scattered.
reference (SceneObject) collision_object VISUAL_HINT_DEFAULT When using per instance collision, this object can be used to replace the original scattered geometry.
long support_space VISUAL_HINT_DEFAULT Set the space in which the geometry support must be considered.
string geometry_id_attribute VISUAL_HINT_DEFAULT Specify the name of the attribute that has to be read from each geometry to know their respective IDs.
double use_support_normals VISUAL_HINT_PERCENTAGE
double[3] scatter_normal VISUAL_HINT_DISTANCE Set the starting orientation of the instance.
long variance_mode VISUAL_HINT_DEFAULT Variance mode.
long variance_seed VISUAL_HINT_DEFAULT Variance random generator seed.
double[3] scatter_position_variance VISUAL_HINT_DISTANCE Add randomness to the position of the objects being scattered per object.
double[3] scatter_position_variance_step VISUAL_HINT_DISTANCE Reduce the random position into multiples of the specified value. Ex: position variance of 10 with step 5 will randomly pick a position between -10, -5, 0, 5 and 10.
double[3] scatter_rotation_variance VISUAL_HINT_ANGLE Add randomness to the rotation of the objects being scattered per object.
double[3] scatter_rotation_variance_step VISUAL_HINT_ANGLE Reduce the random rotation into multiples of the specified value. Ex: rotation variance of 360 with step 90 will randomly pick a rotation between 0, 90, 180 and 270.
double[3] scatter_scale_variance VISUAL_HINT_SCALE Add randomness to the scaling of the objects being scattered per object.
double[3] scatter_scale_variance_step VISUAL_HINT_SCALE Reduce the random scale into multiples of the specified value. Ex: scale variance of 1.0 with step 0.5 will randomly pick a scale between -1, -0.5, 0, 0.5 and 1. If uniform scale variance is activated, the average of the 3 values is applied as a same step on the three axis.
bool uniform_scale_variance VISUAL_HINT_DEFAULT Set whether the scale variance is uniform (same in all XYZ directions) or not.
double[3] scatter_position VISUAL_HINT_DISTANCE Offset the position of the scene object being scattered.
double[3] scatter_rotation VISUAL_HINT_ANGLE Offset the rotation of the scene object being scattered.
double[3] scatter_scale VISUAL_HINT_SCALE Offset the scaling of the scene object being scattered.
long scatter_rotation_order VISUAL_HINT_DEFAULT Specify on which order the Euler rotations are composed. By default Clarisse's uses YXZ
long decimation_seed VISUAL_HINT_DEFAULT Decimation random generator seed.
double decimate_value VISUAL_HINT_PERCENTAGE Decimation threshold.
long decimation_space VISUAL_HINT_DEFAULT Specify the space in which the geometry support must be considered when evaluating the decimation and the collision. If collision mode is activated and the support geometry is animated, it may be useful to set the mode to Reference. This forces to compute per instance collision at the reference frame defined by the support geometry.
long collision_mode VISUAL_HINT_DEFAULT Specify how to decimate instances based on pairs collision detection. The first mode uses the oriented bounding box of each instance to perform the overlapping test. The second mode uses the ellipsoid inside the oriented bounding box.
double[3] collision_scale_multiplier VISUAL_HINT_SCALE Multiply the size of bounding volume used for instance pairs collision detection.
long collision_detection_order VISUAL_HINT_DEFAULT Set whether instances are ordered according to the referenced object index before being inserted and then tested for collision among all the already inserted instances. It may be useful when having different sized object.
long collision_seed VISUAL_HINT_DEFAULT Random generator seed for instance insertion for collision.
double scatter_time_offset VISUAL_HINT_SECOND Offset the time of the scene object being scattered.
double scatter_time_variance VISUAL_HINT_SECOND Add randomness to the time offset of the objects being scattered per object.
long scatter_time_variance_samples VISUAL_HINT_DEFAULT Specify the number of geometry samples generated if time variance is greater than 0.

Inherited Public Attributes#

Type Name Visual Hint Description
double[3] translate VISUAL_HINT_DISTANCE Set the XYZ position of the item relative to its parent item.
double[3] rotate VISUAL_HINT_ANGLE Set the XYZ rotation of the item relative to its parent item.
double[3] scale VISUAL_HINT_SCALE Set the XYZ scaling of the item relative to its parent item.
double[3] shear VISUAL_HINT_SCALE Set the XYZ shear of the item relative to its parent item.
long rotation_order VISUAL_HINT_DEFAULT Specify on which order the Euler rotations are composed. By default Clarisse's uses YXZ
reference (SceneItem) parent VISUAL_HINT_DEFAULT Set the parent item of the item.
bool inherit_transform VISUAL_HINT_DEFAULT Does the current object inherits its parent transformation ?
long reference_frame VISUAL_HINT_FRAME Set the reference frame that defines the base transform and deformation state of the item. This reference is used when computing texture projections or when generating point cloud (in Global Base) on the base geometry.
object[] (Constraint) constraints VISUAL_HINT_DEFAULT Stack of constraint operators. Constraints like Target, Point, Orient... are applied to a Scene Item in order to drive the transformation of the item.
double[3] scale_pivot VISUAL_HINT_DISTANCE Set the coordinates of the scale pivot.
double[3] rotate_pivot VISUAL_HINT_DISTANCE Set the coordinates of the rotation pivot.
double[3] translate_offset VISUAL_HINT_DISTANCE Set the XYZ position of the pivot point of the item.
double[3] rotate_offset VISUAL_HINT_ANGLE Set the XYZ rotation of the pivot point of the item.
double[3] scale_offset VISUAL_HINT_SCALE Set the XYZ scaling of the pivot point of the item.
long rotation_offset_order VISUAL_HINT_DEFAULT Set the rotation axis mode.
bool display_visible VISUAL_HINT_DEFAULT Set whether the item is shown in the 3D View or not.
bool display_pickable VISUAL_HINT_DEFAULT Set whether the item is pickable in the 3D View or in the Image View.
bool enable_motion_blur VISUAL_HINT_DEFAULT Set whether the renderer will do motion blur on the item or not.
long highlight_mode VISUAL_HINT_DEFAULT Define how the object is highlighted in the 3D View when selected.
reference (Material) override_material VISUAL_HINT_DEFAULT Setting a material here will set the specified material to all elements of the scene object. Ex: all shading groups of a geometry will have the same material. Ex: all elements of a combiner or a scatterer will have the same material.
bool matte_object VISUAL_HINT_DEFAULT Switch the object to 2D matte mode.
double[3] matte_color VISUAL_HINT_COLOR Set the color of the object in matte mode.
double matte_alpha VISUAL_HINT_PERCENTAGE Set the opacity of the object in matte mode. When the matte alpha is less than 100%, the object creates a hole in the layer as no transparency is evaluated.
long custom_id VISUAL_HINT_DEFAULT
double raytrace_offset VISUAL_HINT_DISTANCE Set the minimum distance for raytracing visibility. If the ray hit point distance from the ray source position is smaller than this value, then the geometry is not seen. Note: this attribute is used to prevent self intersection artifacts.
string shading_variables VISUAL_HINT_SCRIPT
bool unseen_by_renderer VISUAL_HINT_DEFAULT Set whether the object is hidden from the renderer or not.
bool unseen_by_camera VISUAL_HINT_DEFAULT Set whether the object is hidden from the camera (primary rays) or not.
bool unseen_by_rays VISUAL_HINT_DEFAULT Set whether the object is hidden from the raytraced shading effects like reflection/refraction (secondary rays) or not.
bool unseen_by_reflections VISUAL_HINT_DEFAULT Set whether the object is hidden from reflections or not.
bool unseen_by_refractions VISUAL_HINT_DEFAULT Set whether the object is hidden from refractions or not.
bool unseen_by_gi VISUAL_HINT_DEFAULT Set whether the object is hidden from global illumination or not.
bool unseen_by_sss VISUAL_HINT_DEFAULT Set whether the object is hidden from sub-surface scattering or not.
bool cast_shadows VISUAL_HINT_DEFAULT Set whether the object casts shadows or not.
bool receive_shadows VISUAL_HINT_DEFAULT Set whether the object receives cast shadows or not.
bool receive_self_shadows VISUAL_HINT_DEFAULT Set whether the object receives self shadows or not.
reference (Group) lights VISUAL_HINT_GROUP Specify the group of lights that illuminate this object. By default, scene objects are lit using the lights gathered by the 3D layer.
long emission_sample_count VISUAL_HINT_SAMPLE_PER_PIXEL Override the number of emission samples allocated by the renderer when sampling the scene object.
long sub_items_rendering_mode VISUAL_HINT_DEFAULT Set whether item should override or not sub-items visibility flags.
long emission_importance_sampling_mode VISUAL_HINT_DEFAULT When Use Sub Items, it samples instances according to the value of the Enable Emission Importance Sampling attribute defined on the sources. If the sources have their Emission Importance Sampling disabled then they are traditionally sampled, otherwise they are importance sampled. When Force Importance Sampling, it forces each instance to be emission importance sampled when instantiated by the combiner/scatterer. When Disable Importance Sampling, it forces each instance to be traditionally sampled when instantiated by the combiner/scatterer.

CID#

class "SceneObjectScatterer" "SceneObjectTree" {
    #version 0.94
    icon "../icons/object_icons/scatterer.iconrc"
    doc "Scene object used to scatter other scene objects. The result of the scattering is this scene object itself: this node does not generate real Clarisse\'s scene objects."
    attribute_group "scatterer" {
        reference "geometry_support" {
            doc "Set the geometry whose vertices will be used as scattering positions. For each vertex, a scene object will be scatterered."
            filter "Geometry"
            input "shading_variable" "motion" "geometry" "motion_blur"
            value ""
        }
        long "scatter_input_mode" {
            doc "Define how scattered geometries will be chosen. In Random mode, geometries are scattered randomly. In Luminance mode, the scatter input luminance is used to scatter a specific geometry from the list. Basically the scatterer divides the input luminance according to the number of geometries. The geometry located in the luminance interval will be the one scattered. In ID mode, an ID is read from the scatter input and is used to select the corresponding geometry. It is also possible to specify the name of a custom attribute to be read from each geometry and that contains their respective IDs."
            preset "Random" "0"
            preset "Luminance" "1"
            preset "ID" "2"
            value 0
        }
        l "scatter_input" {
            texturable yes
            animatable yes
            read_only yes
            value 1
        }
        table "geometries" {
            doc "The list of scattered geometries with their associated probability, etc."
            main_column "geometry"
            toggle_rows yes
            reorder_rows yes
            reference "geometry" {
                doc "The geometry to scatter."
                filter "SceneObject" "Group"
                dirtiness_pass_through yes
                value ""
            }
            long "id" {
                doc "Optional ID for this geometry."
                column_width 60
                value 0
            }
            percentage "probability" {
                doc "Probability of this geometry to be scattered."
                column_width 90
                numeric_range yes 0.0 1000000000
                ui_range yes 0.0 100
                value 1
            }
            reference "collision_object" {
                doc "When using per instance collision, this object can be used to replace the original scattered geometry."
                filter "SceneObject"
                null_label "Use Current"
                value ""
            }
        }
    }
    attribute_group "scatterer>advanced" {
        collapsed yes
        ui_weight 1000
        long "support_space" {
            doc "Set the space in which the geometry support must be considered."
            preset "Object" "0"
            preset "World" "1"
            value 1
        }
        string "geometry_id_attribute" {
            doc "Specify the name of the attribute that has to be read from each geometry to know their respective IDs."
            value ""
        }
        long "frame" {
            private yes
            animatable yes
            read_only yes
            value 0
        }
    }
    attribute_group "scatterer>instances>transformation" {
        percentage "use_support_normals" {
            texturable yes
            animatable yes
            numeric_range yes 0.0 1
            ui_range yes 0.0 1
            value 0.0
        }
        distance[3] "scatter_normal" {
            doc "Set the starting orientation of the instance."
            texturable yes
            animatable yes
            value 0.0 1 0.0
        }
        long "variance_mode" {
            doc "Variance mode."
            read_only yes
            preset "Legacy" "0"
            preset "New" "1"
            value 1
        }
        long "variance_seed" {
            doc "Variance random generator seed."
            animatable yes
            numeric_range yes 0.0 10000000
            ui_range yes 0.0 10000000
            value 0
        }
        distance[3] "scatter_position_variance" {
            doc "Add randomness to the position of the objects being scattered per object."
            texturable yes
            animatable yes
            value 0.0 0.0 0.0
        }
        distance[3] "scatter_position_variance_step" {
            doc "Reduce the random position into multiples of the specified value. Ex: position variance of 10 with step 5 will randomly pick a position between -10, -5, 0, 5 and 10."
            texturable yes
            animatable yes
            value 0.0 0.0 0.0
        }
        angle[3] "scatter_rotation_variance" {
            doc "Add randomness to the rotation of the objects being scattered per object."
            texturable yes
            animatable yes
            value 0.0 0.0 0.0
        }
        angle[3] "scatter_rotation_variance_step" {
            doc "Reduce the random rotation into multiples of the specified value. Ex: rotation variance of 360 with step 90 will randomly pick a rotation between 0, 90, 180 and 270."
            texturable yes
            animatable yes
            value 0.0 0.0 0.0
        }
        scale[3] "scatter_scale_variance" {
            doc "Add randomness to the scaling of the objects being scattered per object."
            texturable yes
            animatable yes
            value 0.0 0.0 0.0
        }
        scale[3] "scatter_scale_variance_step" {
            doc "Reduce the random scale into multiples of the specified value. Ex: scale variance of 1.0 with step 0.5 will randomly pick a scale between -1, -0.5, 0, 0.5 and 1. If uniform scale variance is activated, the average of the 3 values is applied as a same step on the three axis."
            texturable yes
            animatable yes
            value 0.0 0.0 0.0
        }
        bool "uniform_scale_variance" {
            doc "Set whether the scale variance is uniform (same in all XYZ directions) or not."
            animatable yes
            value yes
        }
    }
    attribute_group "scatterer>instances>transformation>offset" {
        collapsed yes
        distance[3] "scatter_position" {
            doc "Offset the position of the scene object being scattered."
            texturable yes
            animatable yes
            value 0.0 0.0 0.0
        }
        angle[3] "scatter_rotation" {
            doc "Offset the rotation of the scene object being scattered."
            texturable yes
            animatable yes
            value 0.0 0.0 0.0
        }
        scale[3] "scatter_scale" {
            doc "Offset the scaling of the scene object being scattered."
            texturable yes
            animatable yes
            value 1 1 1
        }
        long "scatter_rotation_order" {
            doc "Specify on which order the Euler rotations are composed. By default Clarisse\'s uses YXZ"
            preset "XYZ" "8193"
            preset "XZY" "4353"
            preset "YZX" "1"
            preset "YXZ" "8449"
            preset "ZXY" "4097"
            preset "ZYX" "257"
            value 4097
        }
    }
    attribute_group "scatterer>instances>decimation" {
        collapsed yes
        long "decimation_seed" {
            doc "Decimation random generator seed."
            animatable yes
            numeric_range yes 0.0 10000000
            ui_range yes 0.0 10000000
            read_only yes
            value 0
        }
        percentage "decimate_value" {
            doc "Decimation threshold."
            texturable yes
            animatable yes
            numeric_range yes 0.0 1
            ui_range yes 0.0 1
            value 0.0
        }
        long "decimation_space" {
            doc "Specify the space in which the geometry support must be considered when evaluating the decimation and the collision. If collision mode is activated and the support geometry is animated, it may be useful to set the mode to Reference. This forces to compute per instance collision at the reference frame defined by the support geometry."
            read_only yes
            preset "Reference" "0"
            preset "World" "1"
            value 1
        }
    }
    attribute_group "scatterer>instances>collision" {
        collapsed yes
        long "collision_mode" {
            doc "Specify how to decimate instances based on pairs collision detection. The first mode uses the oriented bounding box of each instance to perform the overlapping test. The second mode uses the ellipsoid inside the oriented bounding box."
            preset "Off" "0"
            preset "Use Bounding Box" "1"
            preset "Use Ellipsoid" "2"
            value 0
        }
        scale[3] "collision_scale_multiplier" {
            doc "Multiply the size of bounding volume used for instance pairs collision detection."
            texturable yes
            animatable yes
            read_only yes
            value 1 1 1
        }
        long "collision_detection_order" {
            doc "Set whether instances are ordered according to the referenced object index before being inserted and then tested for collision among all the already inserted instances. It may be useful when having different sized object."
            read_only yes
            preset "Random" "0"
            preset "Use Geometry List" "1"
            value 0
        }
        long "collision_seed" {
            doc "Random generator seed for instance insertion for collision."
            animatable yes
            numeric_range yes 0.0 10000000
            ui_range yes 0.0 10000000
            read_only yes
            value 0
        }
    }
    attribute_group "scatterer>instances>time_variance" {
        collapsed yes
        second "scatter_time_offset" {
            doc "Offset the time of the scene object being scattered."
            texturable yes
            animatable yes
            value 0.0
        }
        second "scatter_time_variance" {
            doc "Add randomness to the time offset of the objects being scattered per object."
            animatable yes
            value 0.0
        }
        long "scatter_time_variance_samples" {
            doc "Specify the number of geometry samples generated if time variance is greater than 0."
            animatable yes
            numeric_range yes 2 2147483647
            value 10
        }
    }
}