tyFlow returns both IParticleObjectExt interface, and ParticleObject interfaces. It seems like when PhoenixFD detects a ParticleObject interface in 3.14.00, it defaults to that even if the object also returns ParticleObject. That's fine, however I think it's interpreting the velocities returned by the ParticleVelocity function of the ParticleObject interface incorrectly....
For example, according to the ParticleObject spec as defined in the MaxSDK "object.h", the ParticleVelocity function should return values in units per tick.
However, if I have a scene set to 30fps, and return velocity values in units per tick in my ParticleObject interface (in tyFlow or tyCache), I don't get the correct behavior in Phoenix unless I set the motion velocity multiplier to 30. Which leads me to believe PhoenixFD is taking the values from ParticleVelocity, multiplying them by GetTicksPerFrame() and then incorrectly interpreting those values as being in per-second units, when the actual conversion should be (ParticleVelocity(i) * GetTicksPerFrame() * GetFrameRate()). This is assuming that PhoenixFD works internally in per-second units.
Are my assumptions incorrect here? For reference, the values I return through my interface are (velocityPerFrame * (1 / GetTicksPerFrame())).
For example, according to the ParticleObject spec as defined in the MaxSDK "object.h", the ParticleVelocity function should return values in units per tick.
However, if I have a scene set to 30fps, and return velocity values in units per tick in my ParticleObject interface (in tyFlow or tyCache), I don't get the correct behavior in Phoenix unless I set the motion velocity multiplier to 30. Which leads me to believe PhoenixFD is taking the values from ParticleVelocity, multiplying them by GetTicksPerFrame() and then incorrectly interpreting those values as being in per-second units, when the actual conversion should be (ParticleVelocity(i) * GetTicksPerFrame() * GetFrameRate()). This is assuming that PhoenixFD works internally in per-second units.
Are my assumptions incorrect here? For reference, the values I return through my interface are (velocityPerFrame * (1 / GetTicksPerFrame())).
Comment