SceneObjectScatterer#
(Scatterer)
- Default object name:
scatterer
- Inherits from: ProjectItem > SceneItem > SceneObject > SceneObjectTree
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
}
}
}