Not picking channels from the distribution object by default

Hi,

I’ve noticed that Stoke 2.3 doesn’t pick data channels from the distribution object by default any more, except age and velocity. It does work when input channel X is wired to output channel X in birth magma. Was that by design? Birth magma is great, but picking up channels by default is quite handy.

Thanks

Not sure what you are describing.

If I make a PRT Surface from a Sphere, then make a Stoke Particle Simulator, I get all channels of the PRT Surface listed in the channels list (Normal, Tangent, TextureCoord). However, you must check the ones you want to acquire.
If I pick the Sphere mesh itself, I get even more channels listed.

Can you describe / illustrate what you are seeing?

When I make a PRT surface from an object, add a magma node that puts data in mapping2, and pick that PRTS in Stoke as distribution object, I don’t see the mapping2 in the channel list.

Sorry, cannot reproduce here.
I made both a Mapping2 and a mapping2 (lower case) using a Magma on the PRT Surface, and both showed up on the list.
I then made a PRT Volume from some other object which did not have a Mapping2 channel, and picked it as a second Distribution Source. Got the combined channels list of the two sources, both Mapping2, mapping2, SignedDistance etc.

So it works for me.
We need to make sure we are both using the exactly same version.

The code that figures out the list is in the StokeUI.ms, function getSourceChannelsList(). It scans both the Magmas, and the source objects. It creates a particle generator (pg) based on the type of emitter, in the case of Krakatoa particles it calls StokeGlobalInterface.CreateKrakatoaGenerator(). It then looks in the pg.AvailableChannels property of that generator, and collects what it returns.

So you can try selecting the PRT Source and saying

pg = StokeGlobalInterface.CreateKrakatoaGenerator $ --> <MixinInterface:ParticleGenerator> pg.availableChannels --> #("Position float32[3]", "Velocity float32[3]", "Normal float32[3]", "Tangent float32[3]", "TextureCoord float32[3]", "Density float32", "Mapping2 float32[3]", "mapping2 float32[3]", "Color float32[3]")

What do you get when you run that?

Thanks for looking into it - will try to get back to that tomorrow, things are a bit hectic :slight_smile:

I get a ‘system exception’ in the listener after I run pg.AvailableChannels, running Stoke 2.3.0.

Well, it looks like it is totally broken in 2.3.1. In 2.3.0, it worked for me.
I will ask about it, and we will try to post an update ASAP.

We got it fixed. Expect a new build, with some extra UI goodness.

Great! Thanks