ParticleObject Design Document - appleseedhq/appleseed GitHub Wiki
This document gather rationals about a ParticleObject representing particles in appleseed.
ParticleObject parameter:
This section present parameters.
Object parameters:
size: Global particle size (mayberadiusmake more sense?). 1.0 by default.size_unit_space:world:sizeunit is world space. This is the default value.camera:sizeunit is camera space. Because of lenses, this parameter can't be strictly a camera_space but more a camera projection matrix space. So, while definitely not perfect, it can still be quite useful.
rotation: Global particle rotation (in radian?). 0.0 by default.type: Particle type (quad,disc,sphere, metaballs,three_quads).quad` by default.color: Global particle color. White (1.0, 1.0, 1.0) by default.opacity: Global particle opacity. 1.0 (Fully opaque) by default.shadow_opacity: Global particle shadow opacity. 1.0 (Fully opaque) by default.velocity_factor: Velocity multiplier. 1.0 by default.
Per-particle parameters
Overrides
Some particle parameters can be overridden per-particle. If those per-particle parameters are not sets, the ParticleObject parameter is used:
size: Override globalsizevalue.rotation: Override globalrotationvalue.color: Override globalcolorvalue.opacity: Override globalopacityvalue.shadow_opacity: Override globalshadow_opacityvalue.
Specific per-particle attributes
This is still up to discussion as we could "bake" those values as overrides (scale could be applied on size and no more exist on the render side) so this could mostly be a spec on how appleseed ingest per-particle parameters.
Most of them are shading related and focus on color parameter. For more advanced shading, you simply can't deal with only one color thought.
scale: Particle scale relative tosize(1.0 by default).rotation_offset: Particle rotation relative torotation(0.0 by default).color_hue_offset: Hue offset oncolor(0.0 by default).color_saturation_offsetSaturation offset oncolor(0.0 by default).color_value_offsetValue offset oncolor(0.0 by default).opacity_offset: Offsetopacityvalue (0.0 by default).