I notice the release notes don’t mention anything about non-linear density functions. Any chance we can get Krak to get/set density to something the material editor can see, like vertex opacity or some other per-vertex channel, similar to how color is handled? It’s probably our biggest wish right now, as density and shadows are the two things that are hardest to predict and most tedious to tweak.
The Krakatoa Options PFlow Operator has an option that lets you dump the content of the MAXScript Float channel straight into the Density channel, without going through the Material Editor.
If you DO want to have access to the density value in the Material Editor, then you can write into any of the 99 Mapping Channels and add a Vertex Color map in your Opacity Map slot and set it to that same channel.
The content of the channel is up to you, in both cases. But in the first case the value (written by a Data Operator, Script Operator or any operator you would care to write yourself) would end up in the Density channel in memory directly without the slow down of evaluating a map.
So unless I am misunderstanding your request, you have been able to control particle density since v.1.0.0. Please clarify.
Oh yeah, we do freaky stuff in the PFlow operators. Problem is, we test out, say, 1 million points at a time. When we send off all the partitions, we end up with a PRT loader that has 100M points. Since those points are now occupying the same volume of space, the density is much higher. A linear density transform (.01) often works fine, but sometimes we want to fine tune it, especially once we get feedback from the composite. But once we are at the PRT loader stage, we no longer can. If we duplicate the density into a UVW channel, then we have overly large PRT files, having created a redundant channel.
So you want to be able to tweak the density with a function curve at PRT Loader level, or global Renderer level? So if you saved 0.01 in the Density channel, it could be mapped to 0.001, but 0.05 could still map to 0.05 if desired? A bit like a LUT for densities?
If the density was in an UV Channel, you could use the Output Map on top of Vertex Color Map to tweak the values in a non-linear fashion, but that would be slow.
We will have an internal discussion about this today and will see what can be done...
The bit at the end would be fine, but it would be better if we didn’t need to have the UV channel. Just output the density to another vertex channel, like opacity.
The density LUT would be good, but then you’d have to add UI for it and such, whereas if you did it the slow way with the mat ed, you’d have the UI handled that way.
I’m all for a fast LUT based method for tweaking densities, of course. Maybe a channel in the curve editor? Like how you have the playbackGraphTime, but have a curve for densities? That would seem to make the simplest UI.
Hmmm… Both sound good. One method would be fast, but only use a curve. Other method would be slow, but could use anything in the material editor.
>The bit at the end would be fine, but it would be better if >we didn't need to have the UV channel. Just output the >density to another vertex channel, like opacity. > >The density LUT would be good, but then you'd have to add UI >for it and such, whereas if you did it the slow way with the >mat ed, you'd have the UI handled that way. > >I'm all for a fast LUT based method for tweaking densities, >of course. Maybe a channel in the curve editor? Like how >you have the playbackGraphTime, but have a curve for >densities? That would seem to make the simplest UI. > >Hmmm... Both sound good. One method would be fast, but >only use a curve. Other method would be slow, but could use >anything in the material editor. >
1. Speed is Paramount.
2. Curve control is not a problem at all (it is scriptable and I have some experience with it).
3. Anything that is related to shading and the Material Editor is a topic for a future update of the shading system (around Krakatoa 1.5, according to the current road map). So we would rather not touch it now.
Would you prefer the control per PRT Loader or a global one in the Krakatoa GUI?
Oh, another wishlist thing while we are discussing density. Could it be possible to color viewport points not with saved color, but with saved density? Or other channels?
>We will have an internal discussion about this today >and will see what can be done... >
Coming back from the internal discussion, we decided to allow you to copy the Density Channel of a PRT Loader into an arbitrary Map channel which will make it automatically visible in the Material via a Vertex Color map in the Opacity Map slot.
Both the UI changes and the internal changes will be minimal.