Jump to content

[SOLVED] ParticleModifier Class. Как им пользоваться?


photo

Recommended Posts

Добрый день.

С обновлением 2.12 поменялись методы в классе частиц.

Пример из документации остался для старой версии.

Не могли бы вы объяснить, как реализовать эту часть кода из примера, в 2.12 версии:

    particles->setRadius(0.2f, 0.1f);
    particles->setGrowth(0.1f, 0.1f);
    particles->setVelocity(3.0f, 2.0f);
    particles->setGravity(vec3(0.0f, 0.0f, 4.0f));

С Уважением Константин.

Edited by Vasara
Link to comment

Нашёл, сломал ногу пока искал, но нашёл. Так заработало:

particleWater = ObjectParticles::create();

    // set world transform to the particle system, specify its material and material diffuse parameter
    particleWater->setWorldTransform(Math::Mat4(Math::quat(0.0f, 0.0f, 0.0f, 0.0f)));
    particleWater->setMaterial("particles_base", "*");
    particleWater->setMaterialParameterFloat4("diffuse_color", Math::vec4(0.5f, 0.1f, 0.0f, 1.0f), 0);

    // enable the emitter and specify its settings
    particleWater->setEmitterEnabled(1);
    particleWater->setSpawnRate(2000.0f);
    particleWater->setLife(5.0f, 0.5f);

    modifierRadius = particleWater->getRadiusOverTimeModifier();
    switch (modifierRadius->getMode())
    {
    case ParticleModifier::MODE_CONSTANT:
    {
        modifierRadius->setConstant(1.0f);
    }
    case  ParticleModifier::MODE_RANDOM_BETWEEN_TWO_CONSTANTS:
    {
        modifierRadius->setConstantMin(1.0f);
        modifierRadius->setConstantMax(2.0f);
    }
    }

    modifierGrowth = particleWater->getGrowthOverTimeModifier();
    switch (modifierGrowth->getMode())
    {
    case ParticleModifier::MODE_CONSTANT:
    {
        modifierGrowth->setConstant(1.0f);
    }
    case  ParticleModifier::MODE_RANDOM_BETWEEN_TWO_CONSTANTS:
    {
        modifierGrowth->setConstantMin(1.0f);
        modifierGrowth->setConstantMax(2.0f);
    }
    }

    modifierGrowth = particleWater->getVelocityOverTimeModifier();
    switch (modifierGrowth->getMode())
    {
    case ParticleModifier::MODE_CONSTANT:
    {
        modifierGrowth->setConstant(1.0f);
    }
    case  ParticleModifier::MODE_RANDOM_BETWEEN_TWO_CONSTANTS:
    {
        modifierGrowth->setConstantMin(1.0f);
        modifierGrowth->setConstantMax(2.0f);
    }
    }

    modifierGravity = particleWater->getGravityOverTimeModifier();
    switch (modifierGravity->getMode())
    {
    case ParticleModifier::MODE_CONSTANT:
    {
        modifierGravity->setConstant(Math::vec3(0.0f, 0.0f, 4.0f));
    }
    }

 

P.S. Учебные материалы надо бы обновить.

Link to comment
  • Vasara changed the title to [Solved]ParticleModifier Class. Как им пользоваться?
  • silent changed the title to [SOLVED] ParticleModifier Class. Как им пользоваться?

Здравствуйте, Vasara!

Примеры кода, к сожалению, не успели обновить вовремя, но описание класса ParticleModifier есть в API Migration.

Приносим извинения за неудобства, материалы находятся в очереди на обновление. к ближайшему релизу должны поправить.

Спасибо!

Link to comment
×
×
  • Create New...