I have a SimpleObject2 that exposes a few different interfaces (SimpleObject2, IParticleObjectExt, I_PARTICLEOBJ, I_VRAYGEOMETRY)...basically it's a particle system object that generates a renderable trimesh.
I expose the particle interfaces for any 3rd party queries for its particles, but also expose the regular SimpleObject2 interface so that 3rd parties can get the mesh that its particles form. Simple enough.
However, PhoenixFD only seems to query an object's particle interface during simulation, if a "CanConvertTo(triObjectClassID)" test fails. If such a test succeeds, the particle interface is never accessed. I'm assuming this is because Phoenix processes its input objects in the following way:
,
It would be nice if it processed them the other way around, defaulting to an attempt to grab particles first, and then trimesh...so that particle systems can return both interfaces and still provide particles to a Phoenix. I guess switching them would mean that Phoenix would always default to getting particles (and never the particle system's trimesh, which maybe we would want in some situations)...but that latter scenario seems like something that would happen less often than the former (and one can always force the latter by putting a mesh modifier on their particle system object...whereas the former can never be forced by the user without a special UI control added by a dev to disable trimesh conversion).
I expose the particle interfaces for any 3rd party queries for its particles, but also expose the regular SimpleObject2 interface so that 3rd parties can get the mesh that its particles form. Simple enough.
However, PhoenixFD only seems to query an object's particle interface during simulation, if a "CanConvertTo(triObjectClassID)" test fails. If such a test succeeds, the particle interface is never accessed. I'm assuming this is because Phoenix processes its input objects in the following way:
Code:
(pseudocode) if (canConvertTo(triObjectClassID)) { //process mesh }else if (canConvertTo(particleClassID)) { //process particles //(in my case, we never reach this code because the first conversion test always passes) }
It would be nice if it processed them the other way around, defaulting to an attempt to grab particles first, and then trimesh...so that particle systems can return both interfaces and still provide particles to a Phoenix. I guess switching them would mean that Phoenix would always default to getting particles (and never the particle system's trimesh, which maybe we would want in some situations)...but that latter scenario seems like something that would happen less often than the former (and one can always force the latter by putting a mesh modifier on their particle system object...whereas the former can never be forced by the user without a special UI control added by a dev to disable trimesh conversion).
Comment