Skip to content

ParticleObject Design Document

Dorian Fevrier edited this page Nov 13, 2017 · 2 revisions

This document gather rationals about a ParticleObject representing particles in appleseed.

ParticleObject parameter:

This section present parameters.

Object parameters:

  • size: Global particle size (maybe radius make more sense?). 1.0 by default.
  • size_unit_space:
    • world: size unit is world space. This is the default value.
    • camera: size unit 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 global size value.
  • rotation: Override global rotation value.
  • color: Override global color value.
  • opacity: Override global opacity value.
  • shadow_opacity: Override global shadow_opacity value.

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 to size (1.0 by default).
  • rotation_offset: Particle rotation relative to rotation (0.0 by default).
  • color_hue_offset: Hue offset on color (0.0 by default).
  • color_saturation_offset Saturation offset on color (0.0 by default).
  • color_value_offset Value offset on color (0.0 by default).
  • opacity_offset: Offset opacity value (0.0 by default).
Clone this wiki locally