Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

This extension is a geometry modifier. It loads a particle file, or reads particles stored internally and creates instances of the selected geometry at the particles positions.

Example of how to create a MaxwellCloner object, add a uv channel, set its custom type to "Density" and enable loading the particle densities arraymodifier, and apply it to an already existing object in the scene.

Code Block
languagecpp
linenumberstrue
CextensionManager* extensionManager = CextensionManager::instance();
CgeometryModifierExtension* geomModifExtension = extensionManager->createGeometryModifierExtension( "MaxwellCloner" );
//Get the extension container. When using this method of getting the container,
//nearly all parameters have default values, and there is no need to explicitly set them.
MXparamList* clonerParams = geomModifExtension->getExtensionData();

//Fill the required data
char* filename = "/home/rocco/Emitter01_00023.bin";
clonerParams->setString( "FileName", filename );

//Get the object we want to clone
Cmaxwell::Cobject mxObject = scene->getObject( "MyGeometry" );
isOk = mxObject.applyGeometryModifierExtension( clonerParams );

...

Name

Type

Description

"FileName"

char*

Particles filename

"Radius Factor"

float

Particle radius multiplier

"MB Factor"

float

Motion blur multiplier

"Shutter 1/"

float

Camera shutterspeed

"Load particles %"floatPercentage of particles to load
" Start offset"unsigned intSkip some particles before loading
"Create N particles per particle"unsigned intEnables Multipoint feature if N > 0
"Extra particles dispersion"floatDispersion of the extra particles cloud
"Extra particles deformation"floatDeformation of the extra particles cloud
"Use velocity"byteUse the velocity vector to as Y axis of the instance
"Scale with particle radius"byteScale instances with particle radius
"PARTICLE_POSITIONS"float*Array of particle positions
"PARTICLE_SPEEDS"float*Array of particle speeds
"PARTICLE_RADII"float*Array of particle radii
"PARTICLE_IDS"int*

Array of particleID's

...

Code Block
languagecpp
float deformation = 1.1f;
extParam->setFloat( "Extra particles deformation", deformation );


"

...

Use velocity"

Use the particle velocity vector as the Y (up) axis of the instanced geometry.

Example:

Code Block
languagecpp
byte useVel = 1;
extParam->setByte( "Use velocity", useVel );


"Scale with particle radius"

Scale the instanced geometry with the particle radius.

Example:

Code Block
languagecpp
byte loadArrayuseRad = 1;
extParam->setByte( "LoadScale with particle Viscosityradius", loadArrayuseRad );

"Min Force" "Max Force" "Min Vorticity" "Max Vorticity" "Min Nneighbors" "Max Nneighbors" "Min Age" "Max Age" "Min Isolation Time" "Max Isolation Time" "Min Viscosity" "Max Viscosity" "Min Density" "Max Density" "Min Pressure" "Max Pressure" "Min Mass" "Max Mass" "Min Temperature" "Max Temperature"

...


"PARTICLE_POSITIONS"

Particle data can come whether in a file or internally stored in the .mxs file. If a filename is not supplied, the extension checks for internal data, and if successful, loads it. This parameter is a linear array of floats x0 y0 z0 x1 y1 z1 x2 y2 z2 x3 y3 z3 x4 y4 z4 ...., its length is 3*numberOfParticles.

...