IParticleObjectExt interface with tyFlow returns bones but not a skin
#1
Hello.

I am developer of a renderer plugin for 3ds max. For the tyFlow, I prefer to use IParticleObjectExt() interface to get a list of particles with meshes. This works perfectly for simple shapes like sphere and triangle meshes, but I cannot get a list of skinned meshes.
For example, assume skinned fish mesh with 38 bones (skin modifier with 38 bones above a triangle mesh). tyFlow returns array of 39 particles for every fish actor: 38 of them are bone meshes, 1 is empty slot without geometry.
The same scene without "Enable particle interface" in tyFlow main settings is rendered OK.

Mesh** iPOmesh;

ObjectState os = node->EvalWorldState(timeT);
IParticleObjectExt* iPO = GetParticleObjectExtInterface(os.obj);

iPO->UpdateParticles(node, timeT);
int iPOnum = iPO->NumParticles(); // 39 for single fish

for (int j = 0; j < iPOnum; j++)
{
  int bi = iPO->GetParticleBornIndex(j);
  TimeValue age = iPO->GetParticleAgeByIndex(j);
  if (age >= 0)
  {
    iPOmesh[j] = iPO->GetParticleShapeByIndex(j); // 38 bone meshes and NULL for index #0
    INode* mnd = iPO->GetParticleGroup(j); // null
    iPOtm[j] = iPO->GetParticleTMByIndex(j);
    // ...
  }
}


What is going wrong? 
I can include the scene, if needed. But it requires the Dali Renderer: Dali Renderer 1.5.53
.rar   
bug.rar (Size: 1.67 MB / Downloads: 84)
[Image: 3.png][Image: 2.png][Image: 1.png]
  Reply


Messages In This Thread
IParticleObjectExt interface with tyFlow returns bones but not a skin - by DaliRenderer - 02-28-2024, 08:59 AM

Forum Jump: