There will be more about it because it is a strange beast.
It has two sides - you can create a bunch of particles and do stuff with them using Magma, or you can make fractal stuff pretty much automagically via the PRT Maker Designer. Wait for today’s build, it got really sophisticated and very very powerful.
Here is a simple example of the first approach (Magma):
*Create a PRT Maker
*Set the Viewport Count to 10000
*Add a Magma modifier
*Copy and Paste the following:
Oh so that is what RandomValue is for. I saw that when I saw the Droplet channel.
So is that all it is for?
I thought actually to ask about an actual Random Generator node, does that make sense? I know most useful things actually require a bit of a fixed value could be interesting to have a random generator for floats/vectors/ints. Maxscript node works well for but would it be faster more efficient in a compiled node?
The Noise function is a pseudo-random generator.
Just feed in the Index, ID or Position (or anything particle-specific) value into a Noise function and you will get a more or less random value, but deterministic for that particle and input value. A Script operator is not evaluated per particle, just once per flow evaluation.
Put this on a 10,000 particles PRT Maker - the Z is “random” based on a Noise function. Note that round numbers like 1,2,3 etc. produce the same noise value, so you have to multiply the Index by some float value to reveal the random pattern.
That is good to know for sure about the script eval, I kinda figured that when I saw my earlier attempt and all of the particles moved to the same position. I wasn’t positive though.
So, and as it should, all of these particle do have an index then. Another positive confirmation I tried something vaguely similar the Index but I obviously did something wrong as I was able to induce any change in position.
This copy/paste is sweet I for some reason had a few troubles in 2012, I’d add a new magmaMod, open the editor, ctrl+v, and it would just beep and not paste. I tried it through the Edit menu and it paused a little bit then did nothing. It seems to be working Ok now, just thought I would mention that.
BTW PRT Designer? A nice little custom interface I presume? Does it work with a magmaFlow? Details details
Can we pump in controller driven values? Like attach a noise controller to a Floats value? Ya know animated parameters but in magmaFlow. I check on the Input Value Float value spinners and no but is there another way? This seems like you should since you can have an animated TexMap.
SCRATCH that, you can animate the value you just can’t see it via trackview not outright anyway. hehe cool, check this out:
The Index channel is available only as Input. It is NOT really a channel that exists in particle streams, it is a channel exposed by the Magma system and is incremented for each particle.
It is a BAD idea to replace the controllers of InputValue nodes in Magma 2. It might work, but since the saving/loading/copy/paste/undo try to include the controller in the MagmaScript, it might lead to problems. The way to do it is to create a scene object with a Noise controller track somewhere and use PropertyQuery to read that external value. This way you will also have a visual cue of the controller’s value, for example if you assign it to the Z Position of a Point Helper and watch it jump up and down.
An early version of the PRT Maker Designer is in last week’s build, but it is not nearly as powerful or cool as this week’s version (we replaced the PRT Maker’s fractal code completely, so they will be incompatible). A new build should be posted today or tomorrow. So wait and you will see the Real Thing soon.
This Index remains constant unless modified though doesn’t it? I seem to recall using the Index channel with PRT Volumes to bring it into pflow.
LOL, I kinda figured it wasn’t something I should be doing when I saw the “??” label. I like the idea of borrowing a property from a ref. object much better, I am sure you do to hence the PropertyQuery node, very box#3 like, I will use that from now on.
The index is a read-only channel. It WOULD change if you change parameters in the source, since it simply counts each particle that comes along, from 1 to N and depends on what N is. But it is a good reference.
The ?? was a bug that should be finally fixed in today’s build which I am about to upload (testing it right now).
It has nothing to do with whether you can change a controller or not.
So this is somehting only related because I am playing with PRT Maker at the moment but is there a good rule of thumb when using Particle Count, Final Pass Density, and the Emission Strength Density controls. One obviously can drastically change the result of the others. I have really been unable to find an easy closest guesstimate to get started with, it is always a result of default/render, tweak/render, tweak/render, ect.
Do you have any method to figure a good quick starting point?
Nope, I do the same. The problem is that when rendering in Additive mode for example, the count and density AND image resolution affect the result.
When rendering with Emissive particles plus Alpha, the rule of thumb is to check “>Ignore Scene Lights”, start with a Final Pass Density around 5.0/-2, enable >Use and set Emission Strength to slightly less (say, 3.0/-2). Then if it is too solid, start going down one order of magnitude in both until you like the result. If you increase the particle count 10 times (say, from 1M to 10M), decrease both Density and Emission by another order of magnitude.
I’m almost certain MERL actually made this into a plugin for 3D Studio Max in the late nineties. It would add a light to your scene, then randomly change parameters on it and render them out as thumbnails. Then you would look at all the rendered results and select the ones you liked, then it would run another batch of renders and repeat the process until you liked the result. You could also keep some of the settings so you end up with 3 lights and you could preview it by adding the renders together.
The application with PRT Maker is pretty obvious, but consider how you could also use this with any parameter in Krakatoa. Heck, this would be great with PFlow or FumeFX, too. Actually… There was a recent SIGGRAPH paper about using Design Galleries for fluid sims… Lemme see if I can find it.
The “Wedge” approach where you select one or more parameters and specify a range and step to change each one of them might be better than “random”.
The Random part is done inside the PRT Maker Designer - you get random designs and can save presets from the shapes you like. But then if you want to know what Density settings work best for a design, specifying a range from 5.0/-1 to 5.0/-5 with step of 0.5 would produce wedges you can compare.
I will put this on the list for a future update. It is unlikely to happen for 2.0, but 2.1 might be a good candidate.
it is funny you mention this, we are all pretty much on the same page.
I was tooling with the desginer, me being lazy, I tried different seeds, and seeing the obvious inconsistency from one seed to the next I thought of writing a script that would use a step value and increment through some x number of random parameters.
Wedges can be done with a KCM super easy. Just convert the position to the camera space, step through in X or Y or both and modify the density. You get your wedges in one render… Yay KCM’s!
The Design Gallery would be potentially helpful in coming up with the right shapes from the Maker Designer. You make say 100 randomized version (heck, incrementing the seed in the Designer would be enough). Then the user picks one, and then you make 100 more renders by randomizing the values for the transform with some Gaussian noise. Then the user picks one or more of those that they like and various blends could be tried.
You RESET the Design to Seed X (any keyframes are removed).
You move the time slider to frame 100 (or whatever).
You APPLY the Design of Seed Y on that frame only.
Now you have 101 increments of Design X to Design Y.
Scrub the time slider and if you like any of the steps, save to Preset.
Repeat with new seed.
Once you have enough Presets, you can do this by RESETTING to a preset, then keyframing to other Presets using the MERGE button on different frames to create an animated design. Then you can save any frames of that design to new Presets and so on…
Not sure if that was explained anywhere, but it already does manually what Chad wants done automatically.
And you can also open the Fractal Design dialog and tweak parameters on any frame to keyframe one Design into something different…
I will look into an automatic way to create galleries, but there is plenty of room for “genetic engineering” in the current tools already!
If only there was some way to have a bunch of other computers do a lot of computations and return the results to your computer… Somebody should sell that.