Versions Compared

Key

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

...

Besides generating its own geometry, this extension can generate also its own UV coordinates. This is done using one or more of the 39 custom UV generators available. Each particle is assigned a pair of UV coordinates whose value depends on the generator used and the mapped magnitude. To use one of the generators, create a UV channel and assign it the desired custom type, and don't forget to enable loading the appropriate data array.

How Example of how to create a particles MaxwellParticles object, add a uv channel, and set its custom type to "Density" (see below)and enable loading the particle densities array.

Code Block
languagecpp
linenumberstrue
CextensionManager* extensionManager = CextensionManager::instance();
CgeometryProceduralExtension* geomProcExtension = extensionManager->createGeometryProceduralExtension( "MaxwellParticles" );
//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* particlesParams = geomProcExtension->getExtensionData();

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

//Enable loading particle densities data
byte load = 1;
particlesParams->setByte( "Load particle Density", load );

//These two numbers can be obtained parsing the particles file
//They're needed to map the values of densities from 0.0 to 1.0 to access the texture.
float minD = 0.19;
float maxD = 1.67;
particlesParams->setFloat( "Min Density", minD );
particlesParams->setFloat( "Max Density", maxD );

//Get the number of custom generators available
byte numCustomUVGenerators = geomProcPlugin->getNumberOfUVGenerators();
Cmaxwell::Cobject obj = scene->createGeometryProceduralObject( "My Particles", particlesParams );

dword uvIndex;//returned uv channel index. Use this index in the texture map properties to access its uv's
byte isOk = obj.addChannelUVW( uvIndex );
obj.generateCustomUVW( uvIndex, 34 );//34 is the type of the custom uv generator.

//Now assign a material and set the first BSDF reflectance0º color a texture driven by uv channel 'uvIndex'
 

 

 

Parameters

 

Name

Type

Description

MaxwellParticles

char*

Particles filename

MaxwellParticles

float

Particle radius multiplier

MaxwellParticles

float

Motion blur multiplier

MaxwellParticles

float

Camera shutterspeed

MaxwellParticlesfloatPercentage of particles to load
MaxwellParticlesunsigned intEnables Multipoint feature
MaxwellParticlesfloatDispersion of the extra particles cloud
MaxwellParticlesfloatDeformation of the extra particles cloud
MaxwellParticlesbyteLoad or not array of Force vectors
"Min Force"float 
"Max Force"float 
"Load particle Vorticity"byteLoad or not array of Vorticity vectors
"Min Vorticity"float 
MaxwellParticlesfloat 
"Load particle Normal"byteLoad or not array of Normal vectors
"Load particle neighbors no."byteLoad or not array of particle neighbors#
"Min Nneighbors"unsigned int 
"Max Nneighbors"unsigned int 
"Load particle UV"byteLoad or not array of particle UV
"Load particle Age"byteLoad or not array of particle Age
"Min Age"float 
"Max Age"float 
"Load particle Isolation Time"byteLoad or not array of particle isolation time
"Min Isolation Time"float 
"Max Isolation Time"float 
"Load particle Viscosity"byteLoad or not array of particle viscosity
"Min Viscosity"float 
"Max Viscosity"float 
"Load particle Density"byteLoad or not array of particle density
"Min Density"float 
MaxwellParticlesfloat 
"Load particle Pressure"byteLoad or not array of particle pressure
"Min Pressure"float 
"Max Pressure"float 
"Load particle Mass"byteLoad or not array of particle mass
"Min Mass"float 
"Max Mass"float 
"Load particle Temperature"byteLoad or not array of particle temperature
"Min Temperature"float 
"Max Temperature"float 
"Load particle ID"byteLoad or not array of particle ID
"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

...