PDA

View Full Version : Krakatoa


Pages : 1 2 3 4 5 6 [7] 8

depleteD
08-31-2011, 03:01 PM
Bobo, thats pretty cool, can't wait to get my hands on this. I want to see if we can get a deep shadow to be read by a krakatoa shader for matte holdouts from renderman.

Should be possible right? Where are the shaders defined? Can we write our own?

-Andrew

Siahpoosh
09-01-2011, 11:15 PM
very nice features , foam rendering is amazing .

Bobo
09-02-2011, 12:38 AM
Bobo, thats pretty cool, can't wait to get my hands on this. I want to see if we can get a deep shadow to be read by a krakatoa shader for matte holdouts from renderman.

Should be possible right? Where are the shaders defined? Can we write our own?

-Andrew

Not immediately, but down the road for sure. We are trying to first get the basics right and match 100% the output of Krakatoa MX (which was the point of these videos). Then we will start adding more features related to shading - texture map support, then some form of Magma flow evaluation, and eventually full shading language support. Not everything will be in the point zero release, but it is somewhere on the roadmap.

xplodeworkshop
09-06-2011, 07:46 PM
hello guys... actually i m working in krakatoa.. i m taking out some renders with fumefx birth with magma flow.. but wen i get the sim with zoom out shot then it comes with nice quality, but wen i take it out with zoom in shot like very closer to the cam then fume sim gets very low can say pixelated so can u please tell me what should i do for closer shot....how can i good particles trails moving with good quality fume and KCM..

Thanks

Siahpoosh
09-07-2011, 03:57 PM
hi bobo
i simulated a scene in realflow with 8 emitter , then i load my particles in 3dsmax with krakatoa. i create krakatoa particle loader for each emitter. then i use frost ,

in frame range 80 to 100 frost cant mesh my particles because .bin file for 6 of my emitters have not particle data (its mean my .bin file is 1 KB) .in frame range 80 to 100 i have 2 emitter with many particles but frost cant mesh that. after frame 100 frost working perfect .
i dont want to use frost for each emitter . i want single mesh with vertex color.

how can i solve this problem ?

thanx and sorry for my english

Bobo
09-07-2011, 04:17 PM
hi bobo
i simulated a scene in realflow with 8 emitter , then i load my particles in 3dsmax with krakatoa. i create krakatoa particle loader for each emitter. then i use frost ,

in frame range 80 to 100 frost cant mesh my particles because .bin file for 6 of my emitters have not particle data (its mean my .bin file is 1 KB) .in frame range 80 to 100 i have 2 emitter with many particles but frost cant mesh that. after frame 100 frost working perfect .
i dont want to use frost for each emitter . i want single mesh with vertex color.

how can i solve this problem ?

First of all, I am not sure why 1KB BIN files would cause Frost not to mesh. It would be a problem if the files were missing, but they are there, just empty. There might be a bug - open the Frost Log Window from the Help rollout, set it to Debug level and see what Frost is complaining about...

Since you have 8 PRT Loaders, all you have to do is enable the Use Range option in the 6 that have the "bad" files and set the Start of the range to frame 100 (assuming that's where the particles start). Set the Before type to "Empty" instead of "Hold". This will cause the PRT Loaders to output no particles until frame 100, then start loading normally. The two that have particles from 80 to 100 can be left as is, they should work.

If this does not work, let me know.

Siahpoosh
09-07-2011, 08:49 PM
thanx a lot bobo , it solved with range option /
I was wrong about the .bin file , i have 3 emitter started from frame 100 and those are have not .bin file in 80 to 100 range.

sorry about that , and thanx again.:thumbsup:

bersu
10-01-2011, 11:26 PM
hey ,, im having this problem where im trying to render the shadow particle pass on geometry using scanline ,, when i do a single frame it works i get the shadows after aplying the matte objects and saving the att maps ,, but when i save all the range of frames and ttry to do the scanline pass i get an error that says out of memory shadow buffer for spot1 light ,, im only using 1 light :S ,, any suggestions of what im doing wrong?

Bobo
10-02-2011, 12:19 AM
hey ,, im having this problem where im trying to render the shadow particle pass on geometry using scanline ,, when i do a single frame it works i get the shadows after aplying the matte objects and saving the att maps ,, but when i save all the range of frames and ttry to do the scanline pass i get an error that says out of memory shadow buffer for spot1 light ,, im only using 1 light :S ,, any suggestions of what im doing wrong?

I think the Out Of Memory error actually means that the file is missing. (assuming you are using Krakatoa 1.6.x with the Krakatoa Shadows generator and EXR image sequence).

Open the folder where your renders went to. By default, the save path is "$renderdir\Shadows\$objectname_0000.exr" which expands to the folder you rendered the beauty pass to, subfolder \Shadows and file name with the name of the Spotlight and a frame number based on the frame you saved.
So if you rendered a sequence from 0 to 100, you should see files called something like Spot001_0000.exr to Spot001_0100.exr (if you enabled the "Save Attenuation Maps" option in Krakatoa, of course). While saving, the "Load Path" group of controls in the "Krakatoa Shadows" rollout of the light will be updated automatically to the actual expanded save path, in my case it looked like
"C:\Users\Borislav\Documents\3dsMax\renderoutput\ShadowTest\Shadows\Spot001_0000.exr"
If the "Auto Update on Render" option is unchecked, the Load Path will remain empty and you will get "Insufficient Memory" error in Scanline. In that case, you have to pick a frame using the "Pick a load location...." button.

I suspect you have done these steps already, so let's start with confirming that all Spot_001_XXXX.exr files are actually in the \Shadows subfolder of the render output folder...

depleteD
10-02-2011, 12:34 AM
Not immediately, but down the road for sure. We are trying to first get the basics right and match 100% the output of Krakatoa MX (which was the point of these videos). Then we will start adding more features related to shading - texture map support, then some form of Magma flow evaluation, and eventually full shading language support. Not everything will be in the point zero release, but it is somewhere on the roadmap.

Cool man, I'm sure we ordered a couple of copys. Stuff has to go through purchasing tho. I'm really hopeing this can turn into the FX departments renderer of choice. The deep shadows are a good way to tie to renderman. That can't come soon enough IMHO

bersu
10-02-2011, 02:32 AM
i saved the atenuation maps of the spot , an exr sequence ,, in a folder i created ,, again it works when i do i single frame but not when i make a sequence. the folders u say its empty

Bobo
10-02-2011, 04:39 AM
i saved the atenuation maps of the spot , an exr sequence ,, in a folder i created ,, again it works when i do i single frame but not when i make a sequence. the folders u say its empty

Ok, can you post a screenshot of Windows Explorer with the folder containing the EXR files sequence, plus the paths entered in the "Load Path" field and the "Save Path" field of the shadow generator?

bersu
10-02-2011, 05:18 AM
here it is

Bobo
10-02-2011, 06:24 AM
here it is

Thanks, I meant posting the paths as strings inside the message, because in the screenshot I cannot see the formatting of the string. Just copy and paste.

I assume it is ok (esp. since it works on a single frame), but I have no idea why it would fail in a sequence. Does it work if you render EACH frame individually? Or does it work on the first frame only but fails on the following one?

If you create the simplest setup ever (A teapot, a PRT Volume out of it, a plane as matte object and a Spot Light), can you still reproduce the error? Or is it specific to the scene you are working on? I just tested it here in Max 2012 and it worked as expected.

Also, does it still fail if you switch the Geometry Shadows generator to something else than AB? I don't have AfterBurn, so it is the one thing in your setup that I cannot test.

bersu
10-02-2011, 07:51 PM
fixed it ,, i tried with that simple scene and i figured that the problem was in the matte objects list ,, seems i had twice the same objecs with different names and that was causing the error ,, now its working fine,,

btw.. would be cool if we didnt have to switch renderers for shadows and just render in one.

can i use v ray also?? id love it if the orbaz group would change the limits in p flow ,, so we cant reech the 0,0 % crash ,, or some kind of warning if we wish to apply that parameter XD

Steve Green
10-04-2011, 02:22 PM
Anyone seen these before?

http://www.youtube.com/watch?v=Qk_03gXvf90&feature=related

Saw it and thought of Krakatoa data piped into it.

jdrouse
10-13-2011, 11:27 PM
I'm rendering out some splashes in an ocean. I'm getting these crazy banding lines in my render. I only have one light in the scene. Spotlight directly overhead. Any idea what could be doing this?! I've attached file.

The particles are there, the alpha is solid in the splashes.

Thanks in advance!

-John

JohnnyRandom
10-14-2011, 12:15 AM
Hmmm, it kinda looks like a bad mapping channel, that would make sense if you have a proper alpha.

Bobo
10-14-2011, 03:44 AM
I'm rendering out some splashes in an ocean. I'm getting these crazy banding lines in my render. I only have one light in the scene. Spotlight directly overhead. Any idea what could be doing this?! I've attached file.


What do you get if you enable the ">Use" option in the Lighting Pass Filtering area and set the Lighting Pass Density to one or two orders of magnitude less than the Final Pass Density? For example, if the Final Pass Density is 5.0/-1, set the Lighting Pass Density to 5.0/-2 or 5.0/-3 and see if there is any change.
Also, if you select the Spotlight and change the Shadow Map Size from 512 to 2048, does this affect the lines? If it does, it could be an moire pattern due to self-shadowing of closely clumped particles with very high density (thus the first step above).
If neither of these steps affects the pattern, check what Johnny Random said (if you have texture mapping at all, of course).

This topic (http://www.thinkboxsoftware.com/krak-particle-density/) kind of discusses the issue. There are some improvements in Krakatoa 2.0 in the area, too.

zoubein
10-19-2011, 02:28 PM
Hi, I have a scene with multiple objects that I am converting to PRT volumes, When I make the PRT volume first and pick the geometry I get the volume in the wrong place, and also it is much larger than the original volume. however if I choose the object and then click the VOL button on the krakatoa toolbar, it makes it exactly in the right spot at the right size.

The reason that I want to work with the first method is that, i have figured out the spacing that I need so I like to enter that information before picking the object, as the geometry is quite intricate this speeds up the process immensly.

The things that I have tried are.
collapsing the geometry, centering the pivot, reset xfrom.

Thanks

dharrison
10-19-2011, 04:05 PM
The PRT Volume uses the "object space" mesh from the picked node. This means it does not apply the picked node's transform to the particles so that is why you are seeing them not lined up. When using the VOL button it automatically aligns the node transform of the new PRT object with the picked node.

Krakatoa 2.0 will add an option to operate in worldspace, but for now you just need to use the "align" tool on the picked node to align the PRT Volume.

JohnnyRandom
10-19-2011, 10:41 PM
Just answered this exact same question HERE (http://forums.thinkboxsoftware.com/viewtopic.php?f=89&t=6404#p25776), I posted a sample scene file too. Although it is more of a voxel style result, it uses an animated mesh with a PRT Volume. You will have to install the Thinkbox Frost demo (http://www.thinkboxsoftware.com/frost-downloads) if you haven't got Frost.

Twice in one day Darcy :)

Bobo
10-20-2011, 06:43 AM
Hi, I have a scene with multiple objects that I am converting to PRT volumes, When I make the PRT volume first and pick the geometry I get the volume in the wrong place, and also it is much larger than the original volume. however if I choose the object and then click the VOL button on the krakatoa toolbar, it makes it exactly in the right spot at the right size.


The VOL icon is a MacroScript and it was designed to take care of 90% of what you might need. There is no reason EVER to create a PRT Volume first. There is no good way to make the PRT Volume perform the same operations (it is not impossible, but very very tricky to implement)

Here are the things the VOL icon / Krakatoa Menu item give you:

*If multiple geometry objects are selected, each one will get its own PRT Volume with just one click!
*The PRT Volume will be aligned precisely to the source object.
*The PRT Volume will be set to Viewport Spacing that is derived from the diagonal size of the bounding box. Thus, even if you make an object 100 times bigger, you would get exactly the same particle count in the viewport and avoid slowdowns.
*The PRT Volume Icon Size will also be adjusted to the size of the Source object so it is easily selectable.
*The PRT Volume's object (wireframe) color will be set to the same color as the Source object.
*The PRT Volume will be assigned the Material (if any) of the Source object.
*The PRT Volume will be named according to the Source object's name.
*Optionally, the Source Object can be either Hidden or set to non-Renderable and/or Bounding Box. There are options in the [>] menu and in the Krakatoa Preferences dialog > User Interface and Interaction Preferences rollout > "When Creating a New PRT Volume from Selected Geometry" option for this.

http://www.thinkboxsoftware.com/krak-macroscripts/#Create_Krakatoa_PRT_Volume

As Darcy mentioned, in the future there will be a PRT Volume mode that does not require alignment, but its particles would be fixed in space like in the example Johnny posted.

Sounds like we should expose the parameter that controls the Viewport Spacing when creating a new PRT Volume using the VOL icon. Of course, you could modify the script yourself to get the value you want.

Just open the KrakatoaGUI.ms file found in your Krakatoa\Scripts installation, locate the line

newVolume.ViewportVoxelLength = theMaxSize/50.0

and replace 50.0 with a smaller number like 5.0 or 10.0 or 25.0.
Press Ctrl+E to evaluate and use the VOL icon to see if it produces a better result.
Press Ctrl+S to save - on Vista/Win7, you might need administrator rights to overwrite the file...


EDIT: I just added the "Viewport Spacing Factor" to the Preferences in Krakatoa MX 2.0 due to be released next month. Thanks for the input!

PsychoSilence
10-21-2011, 08:53 PM
I'm getting this lately:

=======================================================
Error Message
=======================================================
An error occurred in StartJob(): 3dsmax: Trapped SEH Exception in LoadFromFile(): Access Violation
Process: C:\Program Files\Autodesk\3ds Max 2010\3dsmax.exe
Module: C:\Program Files\Autodesk\3ds Max 2010\plugins\ParticleFlowTools\Box3\ParticleFlowSubOperators.dlo
Date Modified: 10/11/2010
Exception Code: C0000005
Read Address: 00000000
Instruction: 48 8B 11 48 8B F1 44 0F 29 40 A8 44 0F 29 48 98
Call Stack:
33940000 C:\Program Files\Autodesk\3ds Max 2010\plugins\ParticleFlowTools\Box3\ParticleFlowSubOperators.dlo
+001415A4 Exception Offset
2011/10/21 15:50:21 INF: Loaded C:/Users/ansi/AppData/Local/Thinkbox/Deadline/slave/jobsData/SandErrosion.max



Any idea what could cause this issue? It only appears on 1 of the 2 machines. Both have the toolbox#3 licensed as full workstation mode. The user signed in is Administrator too. Already posted inthe deadline forum over at thinkbox but maybe some one here had that before?

thanks in advance,
Anselm

Bobo
10-22-2011, 02:05 AM
Any idea what could cause this issue? It only appears on 1 of the 2 machines. Both have the toolbox#3 licensed as full workstation mode. The user signed in is Administrator too. Already posted inthe deadline forum over at thinkbox but maybe some one here had that before?


Hi Ansi!

According to this, there was an Exception in Box #3.
I don't see the point in asking Thinkbox when the crash is obviously in Orbaz' code.

Deadline is just reporting that Max said that Box #3 caused an exception. Have you asked Oleg about it?

PsychoSilence
10-22-2011, 06:25 PM
I had another issue with job sitting on the farm forever "Starting UP" as well, thought it's all part of the same issue.

Turned out teh PFlow SEH Exception was caused by windows rights/access management actually and is fixed now! Win7 installed some of it's updates and changes the rights around...super annoying. I kinda thought it's something like that given that it said it's an access violation. BUT fixed now :)

thanks,
Ansi

NahuelL
11-04-2011, 10:24 PM
Hi,
I have a PRT FumeFX, and I enabled "Generate Emission from FumeFX Fire" and Use Emission in krakatoa UI. So that way I get the fumefx gradient colors on the particles. But the alpha isn't correct. If I modify the opacity curve in the fire (I have it disabled, so I'm using the "Values" on the fire gradient to set the opacity), it doesn't have any change on the alpha render. What I would like to have is the ORIGINAL alpha of the fumefx fire (rendered in scanline), in the Krakatoa render. The workaround I found is: in comp use the RED channel as ALPHA, and then change the alpha with a curve to match it, but it doesn't look the same as the scanline render (the reason I'm using PRT FumeFX is because I deformed the fire sim).

Thanks
Nahuel

Bobo
11-04-2011, 10:52 PM
But the alpha isn't correct.

Krakatoa renders FumeFX fire as additive instead of volumetric.

Emission does not affect the alpha. The alpha in Krakatoa is produced from Volumetric Density. Emission just adds color to particles but does not change how dense they are. You might have to change the Color channel of the fire particles to make them render volumetrically instead of additively.

Take a look at this for details on how Emission, Absorption and Color affect the Volumetric and Additive rendering and thus the Alpha:
http://www.thinkboxsoftware.com/krak-mixing-additive-and-volum/

NahuelL
11-04-2011, 11:18 PM
Thanks for you reply. Now that I created a very simple scene I have no alpha. And if I disable "Generate emission from FumeFX Fire" and/or "Use Emission" the particles don't render.

"You might have to change the Color channel of the fire particles to make them render volumetrically instead of additively."

How can I do that?

Bobo
11-04-2011, 11:51 PM
Thanks for you reply. Now that I created a very simple scene I have no alpha. And if I disable "Generate emission from FumeFX Fire" and/or "Use Emission" the particles don't render.

"You might have to change the Color channel of the fire particles to make them render volumetrically instead of additively."

How can I do that?

MagmaFlow, what else? ;)

If you create a PRT FumeFX with "Seed In Fire" checked, you should get particles created where the fire is, but with black color and no Emission because the Emission From Fire option is unchecked. Normally, when color is black and emission isn't, you would get ADDITIVE rendering without alpha.

So the particles won't have emission, but if you drop a KCM and set the Input to white color connected to Output Color channel, they will now have white color.
If you are rendering volumetrically (that means with a light source and >Force Additive unchecked), you should get something in both RGB and Alpha.

If you don't, let me know.

Now you could take the Emission channel and add it to the Color channel, then output as Color. Since Smoke particles don't have Emission, but the Fire particles would if you check "Generate Emission from FumeFX Fire", you will end up with the original color of the smoke PLUS the emission color of the fire where needed. You could enable the >Use Emission because otherwise your fire would cast shadows on itself, which is a bad idea.

Keep in mind I haven't tried this because I don't have FumeFX installed here at the moment. So that's the theory...

NahuelL
11-05-2011, 12:10 AM
So the particles won't have emission, but if you drop a KCM and set the Input to white color connected to Output Color channel, they will now have white color.
If you are rendering volumetrically (that means with a light source and >Force Additive unchecked), you should get something in both RGB and Alpha.

If you don't, let me know.


I get nothing in the render with that KCM (no RGB and no Alpha - I have a spotlight with shadows, and Force Additive Mode is unchecked). Also I don't have any smoke, just fire. And this "Now you could take the Emission channel and add it to the Color channel, then output as Color" renders black as well (unless Generate Emission from Fire is checked)

Bobo
11-05-2011, 12:16 AM
I get nothing in the render with that KCM (no RGB and no Alpha - I have a spotlight with shadows, and Force Additive Mode is unchecked). Also I don't have any smoke, just fire. And this "Now you could take the Emission channel and add it to the Color channel, then output as Color" renders black as well (unless Generate Emission from Fire is checked)

Are you saying your Fume sim has no Smoke?
What is the color of your particles? You can open Particle Data Viewer and inspect them one by one. I would expect it to be black (0,0,0), so adding the Emission channel to the Color channel should produce a Color channel with the value of the FumeFX fire which is what we are trying to get.

Also look at the Density channel and see if it is > 0. If it happens to be 0, set it to 1.0 with another KCM.

NahuelL
11-05-2011, 12:28 AM
Are you saying your Fume sim has no Smoke?
What is the color of your particles? You can open Particle Data Viewer and inspect them one by one. I would expect it to be black (0,0,0), so adding the Emission channel to the Color channel should produce a Color channel with the value of the FumeFX fire which is what we are trying to get.

Also look at the Density channel and see if it is > 0. If it happens to be 0, set it to 1.0 with another KCM.

Exactly, there's no smoke in my fume sim, just fire. The density was 0, so i set it to 1 with a KCM, and now it renders RGB and alpha! However it renders like "cubes", event though it's Particle Mode.

Bobo
11-05-2011, 01:41 AM
Exactly, there's no smoke in my fume sim, just fire. The density was 0, so i set it to 1 with a KCM, and now it renders RGB and alpha! However it renders like "cubes", event though it's Particle Mode.

This is kind of expected. The Density of Smoke has a falloff that PRT FumeFX generates to round the corners of the FumeFX voxels. In your case, since the density is the same everywhere, it reveals the cubic nature of the simulation. If you reduce the Density a bit, it might start looking smoother. Or you could try rendering in Voxel mode with some filtering (like 2) to smooth it out, but it might not help enough.

I am not sure what the best approach to smooth it out would be, since the emission value is one for the whole voxel, and I suspect we don't really have a DensityGradient vector to create a falloff. What is the value of the DensityGradient channel in Particle Data Viewer?

NahuelL
11-05-2011, 02:13 AM
Ah, I see. I can't find DensityGradient values.
Here is a screenshot of the Particle Data Viewer:

http://img685.imageshack.us/img685/6628/pdviewer.jpg

Bobo
11-05-2011, 02:22 AM
Ah, I see. I can't find DensityGradient values.
Here is a screenshot of the Particle Data Viewer:

http://img685.imageshack.us/img685/6628/pdviewer.jpg

Hey, how about piping out the Fire channel into the Density? It might look a bit better then. You can multiply it with a float to boost it if necessary, but it might give you smoother look making outside voxels more transparent...

NahuelL
11-05-2011, 02:43 AM
Yes, that works great! Thanks. Now, is there a way to set the alpha to the fume opacity curve?

Bobo
11-05-2011, 05:04 AM
Yes, that works great! Thanks. Now, is there a way to set the alpha to the fume opacity curve?

I am afraid that is a wishlist item. I will ask, but I don't think there is a good way to do this with the current system.

NahuelL
11-05-2011, 05:48 PM
Thanks Bobo for your help! Really appreciated.

Now I have another issue. In my scene I have a PRT Volume (used a Box as source) which looks like a "smoky ceiling". Also I have a FumeFX container, and I need the fire to illuminate the PRT Volume. I'm rendering in Voxel mode, but Omni lights aren't supported (I thought that I could just use FumeFX Birth and Follow, and attach some omni lights to the particle system). Maybe there is a way to do Global Illumination, or to enable the Omni lights support?

Thanks
Nahuel

Bobo
11-05-2011, 06:39 PM
Thanks Bobo for your help! Really appreciated.

Now I have another issue. In my scene I have a PRT Volume (used a Box as source) which looks like a "smoky ceiling". Also I have a FumeFX container, and I need the fire to illuminate the PRT Volume. I'm rendering in Voxel mode, but Omni lights aren't supported (I thought that I could just use FumeFX Birth and Follow, and attach some omni lights to the particle system). Maybe there is a way to do Global Illumination, or to enable the Omni lights support?

Thanks
Nahuel

In Krakatoa MX 2 (due out in the coming days), you could use the Krakatoa Atmospheric Effect to render in Scanline, VRay, finalRender or Brazil (similar to the way FumeFX renders natively). It renders PRT objects just like Voxel mode in Krakatoa, but supports Omni lights, casting and receiving shadows on/from geometry, interaction with reflections and refractions and so on, including direct integration with the geometry rendering. Unfortunately, due to the alien nature of mental ray shaders, we don't support mr yet.
GI did not make it into Krakatoa MX 2, but it is still on the roadmap.

NahuelL
11-05-2011, 06:54 PM
In Krakatoa MX 2 (due out in the coming days), you could use the Krakatoa Atmospheric Effect to render in Scanline, VRay, finalRender or Brazil (similar to the way FumeFX renders natively). It renders PRT objects just like Voxel mode in Krakatoa, but supports Omni lights, casting and receiving shadows on/from geometry, interaction with reflections and refractions and so on, including direct integration with the geometry rendering. Unfortunately, due to the alien nature of mental ray shaders, we don't support mr yet.
GI did not make it into Krakatoa MX 2, but it is still on the roadmap.

That will be great! Looking forward to it. I'm thinking of a workaround:
- pflow with FFX Birth and Follow on fire sim.
- use MagmaFlow to detect the particle positions (haven't found a way)
- change the color to a yellowish within a specific radius and falloff (based on those particle positions)

Can MagmaFlow detect particle positions? Or even geometry attached to the particles to then change the color?

Thanks
Nahuel

Ash007
11-06-2011, 09:45 PM
Hi,

is Krakatoa doing "Partitioning" when I'm using the "Create PRT FumeFX Object" option? Or is the mesh, being generated by "Create PRT FumeFX Object", changeless, except by deformers?

Thanks

JohnnyRandom
11-09-2011, 08:23 PM
a little bit more of something to look forward too :)
what a tease:

http://4rand.com/TEST/Krakatoa/misc/fishBone_thumb.png (http://4rand.com/TEST/Krakatoa/misc/fishBone.png)

Don't ask me why firefox cannot properly display a .png image after 8 years :hmm:

Bobo
11-09-2011, 09:36 PM
a little bit more of something to look forward too :)
what a tease:

http://4rand.com/TEST/Krakatoa/misc/fishBone_thumb.png (http://4rand.com/TEST/Krakatoa/misc/fishBone.png)

Don't ask me why firefox cannot properly display a .png image after 8 years :hmm:

I run Chrome and it also shows the Alpha wrong. Don't save PNG with Alpha. File will be smaller and will look right everywhere.

JohnnyRandom
11-09-2011, 10:19 PM
That is soo weird, I made sure it was only 24-bit no alpha. I did save it straight from the frame buffer though.

I checked it in photoshop to make sure I wasn't going nuts, it indeed had no alpha, resaved it with the same settings it came out a couple hundred kb smaller but now it looks normal. Go figure

zoubein
11-11-2011, 03:45 PM
Hey Particle masters,

I have been trying to save out a Pflow as PRT files in Krakatoa and I get this error. Any Idea what that means?

max_pflow_particle_istream() - Could not GetParticleContainer() from the IParticleGroup for node: PF Source 004->Branch003

Also I was wondering when the new version of Krakatoa :thumbsup: comes out do we need to upgrade our license or is it a free upgrade :) .

Thanks

Bobo
11-11-2011, 05:10 PM
Hey Particle masters,

I have been trying to save out a Pflow as PRT files in Krakatoa and I get this error. Any Idea what that means?

max_pflow_particle_istream() - Could not GetParticleContainer() from the IParticleGroup for node: PF Source 004->Branch003

Also I was wondering when the new version of Krakatoa :thumbsup: comes out do we need to upgrade our license or is it a free upgrade :) .

Thanks

I think it means what is says - the Event "Branch003" connected by PF Source 004 did not return valid particle container. There is something wrong with the PFlow, try running the repair tools from the Particle View menu. If there are disconnected Events floating around, try deleting them. Eventually, try saving the flow and loading it in a new system.

Krakatoa MX 2 is in Release Candidate phase (RC1 was given to testers last Friday).
There are some edges to polish and some last minute UI wishes were just granted yesterday ;)
When it comes out, you will need a new license FILE, but if your support contract is valid, you have already paid for all updates anyway. If your support contract has expired, you could upgrade and get the new version for a reduced price (see "Upgrade" column in http://www.thinkboxsoftware.com/sales/ which is the price for people with expired support contracts)

Miked08
11-17-2011, 01:30 PM
I'm just trying out the trial of Krakatoa and was wondering if each particle could be rendered out as a box?

Bobo
11-18-2011, 06:50 AM
I'm just trying out the trial of Krakatoa and was wondering if each particle could be rendered out as a box?

Not really.
The "clean" answer would be No, with some "but"s.
Krakatoa in Particle (point) mode renders every particle as a point that affects either one, four or 9 pixels depending on the Filter mode.
http://www.thinkboxsoftware.com/krak-particle-rendering-mode/#Filter_Modes
Then in the upcoming Krakatoa MX 2 in Bilinear Filter mode you will be able to affect larger pixel groups, but the result is more like blurring the image, and no box shape is possible.

Another thing you can do in Krakatoa MX 2 is replace each particle with a bunch of particles from another particle cloud. So if you have a set of particles in a box shape, you can get Krakatoa to render each particle of one particle system as a box-shaped cloud of particles from another, but this goes into recursion land because you asked for each particle to be rendered as a box, and in this case the particles of the box shape are still rendered as points, so I guess the answer is still No.

Then there is the Voxel mode where each particle is registered on a voxel grid and then the grid is rendered. If you pick your density settings right, you might get a boxy look, but this is in world space and not per particle. So the answer remains No.

Thinkbox sells a particle mesher called FROST which can replace each particle with a box (or anything, really) when rendering in another renderer than Krakatoa (pretty much every other renderer for Max). Combined with Krakatoa for particle channel editing, it can do a lot of things that are tricky or slow to do with, say, PFlow. Like LEGO-style rendering:
http://www.thinkboxsoftware.com/frost-geometry-to-voxel-grid-c/
Here is the latest project done with FROST (and title sequence using Krakatoa) by Ian Clemmer: http://vimeo.com/31773459 No boxes there, but man does it look cool!

Of course, you could use FROST to mesh any particles coming from any source. But while FROST integrates nicely with Krakatoa, it is not part of it, so the answer to your question remains No.

Miked08
11-18-2011, 07:29 AM
Amazing reply Bobo! It's going to take me a while to test these things out so... give me a few days!

zoubein
11-23-2011, 02:26 PM
Hello all,

I have this scenario, where I want to emit particles off another particle system, so I have my first particle system, which I have saved out as PRT sequence which I am using to affect the second particle system. But when I got to save the second particle system as a PRT sequence. Max crashes instantly, I had a similar problem before with the same setup but I managed to get it to work by caching one of the systems, this time it didn't work. Any ideas would be helpful

Bobo
11-24-2011, 01:55 AM
Hello all,

I have this scenario, where I want to emit particles off another particle system, so I have my first particle system, which I have saved out as PRT sequence which I am using to affect the second particle system. But when I got to save the second particle system as a PRT sequence. Max crashes instantly, I had a similar problem before with the same setup but I managed to get it to work by caching one of the systems, this time it didn't work. Any ideas would be helpful

Is the left system in your screenshot the one that is loading the particles from PRTs?
Where are the Krakatoa PRT Update and the Krakatoa FileID Test?

zoubein
11-26-2011, 12:32 PM
Yes its the one on the left. I had a prt update in event001 but I removed it just to try if that would work. I haven't really used the Id test before I guess I should look into it.l

Phlok
11-30-2011, 10:43 AM
I've loaded 10 partitions of a particle sequence into a PRT loader in order to get a smoother look for my particles...but somehow this don't work.

Like in the example here:

http://www.thinkboxsoftware.com/krak-fighting-grainy-look/

I first rendered only one partition with Density set to 5,0/-3, then I rendered ten partitions at 5/-4.

Instead of getting an image that is ten times smoother, I rendered two images that are looking exactly the same, also having the exact same grainyness. Do you have an idea what's going wrong?

I guess there is something gone wrong creating the partitions. It feels like the particles are placed right on top of oneanother, instead of being positioned slightly different using the random seeds.

Thanks in advance for any ideas/ suggestions.

EDIT:

Stupid me! The Partitions were created for an already existing PRT Loader and I forgot to put a noise Modiifer on top of that. So the particles were positioned at the very same position for each Partition. By logic, this results in the exact same frame when rendering 10 times more particles with Density Contribution diminished by a factor of 10.

zoubein
11-30-2011, 11:35 AM
Yes its the one on the left. I had a prt update in event001 but I removed it just to try if that would work. I haven't really used the Id test before I guess I should look into it.l


I tried adding a Prt update and a ID test but still no luck. But since my particles in the original event dont die would they make a difference?

Bobo
12-01-2011, 04:53 PM
I've loaded 10 partitions of a particle sequence into a PRT loader in order to get a smoother look for my particles...but somehow this don't work.
...

The Partitions were created for an already existing PRT Loader and I forgot to put a noise Modiifer on top of that. So the particles were positioned at the very same position for each Partition. By logic, this results in the exact same frame when rendering 10 times more particles with Density Contribution diminished by a factor of 10.

Actually, it is great that you made the little mistake and proved that 10 partitions with the same positions produce the same output as one partition and an order of magnitude higher Density! :)

Obviously, using a Noise modifier will blur the result somewhat. I hope it works for your setup... Normally, you are supposed to use Partitions made from PFlow directly, not from PRT Loaders.

Bobo
12-01-2011, 05:11 PM
I tried adding a Prt update and a ID test but still no luck. But since my particles in the original event dont die would they make a difference?

The Update is always needed. It updates (nomen est omen) channels on every frame. A Birth will just create particles, but not update them on the next frames. This is ok if you just need the initial Positions and then take over with PFlow Forces. But in general you should always pair a Birth and an Update to replicate the original system's behavior.

The ID Test sending particles to an Events with Delete operator is only needed if particles are dying.

Banshee
12-07-2011, 10:02 AM
Hi everybody,

sorry if this has been asked before, I just searched for a solution but couldnīt find any.

Iīve got a scene with 500.000 particles, the color is defined by particle age. When rendering with Krakatoa (1.6) it works perfectly. But if I use the partitioning option (10x), save the particles and load them via PRT-Loader, they turn out to have the "wrong color". They should start white, go to blue, then purple and then die. Those 5 Million partitioned particles all start purple and remain purple for the rest of the animation.

What am I doing wrong?

Max2009 x64, Krakatoa 1.6

Thanks for any suggestions..

JohnnyRandom
12-07-2011, 02:10 PM
When you saved to sequence the new partition did you save Age & Lifespan channels?

Banshee
12-07-2011, 02:52 PM
Uhm... I guess so....? Iīll have another look but it should be there. Thanks, maybe thereīs the problem..

Bobo
12-07-2011, 04:44 PM
Hi everybody,

sorry if this has been asked before, I just searched for a solution but couldnīt find any.

Iīve got a scene with 500.000 particles, the color is defined by particle age. When rendering with Krakatoa (1.6) it works perfectly. But if I use the partitioning option (10x), save the particles and load them via PRT-Loader, they turn out to have the "wrong color". They should start white, go to blue, then purple and then die. Those 5 Million partitioned particles all start purple and remain purple for the rest of the animation.

What am I doing wrong?


There might be a misunderstanding here.
When you say "Render with Krakatoa", do you mean you render PFlow directly? In that case, what method do you use to set the Color by Age?

In theory, saving particles to disk should produce the same data as when rendering the particles directly. It sounds like it does not, so we have to find out what you are doing to set to color in PFlow in the first place, as it looks like the problem is in the PFlow setup, not Krakatoa itself.

Johnny assumed that you were setting the color via MagmaFlow, which you are probably not. So you don't have to save Age and LifeSpan if your Color channel is already being set to the correct values.

Please explain how you are controlling the color so we can debug this. Post screenshots of the flow if necessary.

Banshee
12-08-2011, 09:39 AM
Hello Bobo,

thanks for your reply.
Well Iīm kind of new to Krakatoa and I try hard to learn everything about it ;-)

OK, hereīs a Screenshot of my setup.

I used the "save Particles" option, saved them to disc and used Local Partitioning (count 10). After that I placed a PRT Loader to load the saved files. Everything looks good except the color, which is completely wrong...

EDIT: If I render "directly" from PFlow (in this example 2.500.000 Particles) the colors are correct. They start white, go to blue, then to purple and die. The saved particles all start purple and remain purple.

http://www.vray-materials.de/temp/Krakatoa_PFlow.jpg

Banshee
12-12-2011, 08:59 AM
No ideas? Maybe...itīs a bug?

DeKo-LT
12-12-2011, 11:56 AM
It seems that you don't saved required channels to PRT.
http://www.deko.lt/tmp/Forums/save_prtcl.jpg

Bobo
12-12-2011, 04:45 PM
No ideas? Maybe...itīs a bug?

As both Johnny and DeKo said, in THAT case you need the Age and LifeSpan in the PRT files.

When you render directly, the Age and LifeSpan are passed automatically to Krakatoa.
When saving you have to decide what to save (in order to save disk space).

Banshee
12-13-2011, 09:25 AM
As both Johnny and DeKo said, in THAT case you need the Age and LifeSpan in the PRT files.

When you render directly, the Age and LifeSpan are passed automatically to Krakatoa.
When saving you have to decide what to save (in order to save disk space).

Alright, thanks for your help - I really made a mistake and saved a wrong channel.
Thanks a lot! Problem solved :)

THarland
12-14-2011, 10:58 AM
Since Krakatoa can render FumeFX, should it be possible to use FFX grids as a matte objects?

Glacierise
12-14-2011, 11:18 AM
You can make it green and the other particles red/blue - you get both occlusion and ID :)

THarland
12-14-2011, 12:33 PM
You can make it green and the other particles red/blue - you get both occlusion and ID :)That's the method I was considering. ;)
I was really wondering though if it would be possible to add the FFX grid in the Krakatoa matte objects rollout and render using the particle rendering method opposed to voxels; if not now then maybe in a future release?
If the FFX beauty pass is rendered out with a renderer other than Krakatoa wouldn't it be difficult or impossible to match it to a mask created from a Krakatoa voxel render?

Glacierise
12-14-2011, 01:37 PM
That's the inherent difficulties in mixing volumetrics man :) The matte obj in krakatoa is meant to work for geometry, volumetric is a different thing :)

THarland
12-14-2011, 01:47 PM
That's the inherent difficulties in mixing volumetrics man :) The matte obj in krakatoa is meant to work for geometry, volumetric is a different thing :)Yeah, hopefully some day.

boumay
12-15-2011, 01:10 PM
Hello,
Is there any news about his release date? And will it be available before end 2012?
Thank you

rotaruandrei
12-15-2011, 11:28 PM
Hello everyone,
I just started using krakatoa and i've made a simple fumefx particle animation.
I just want to add a background to it with After Effects.
Can you guys help me with this?
I've done like 10 renders with different settings of png/tga format and I can't make the footage "transparent"(no Alpha option available in Interpret Footage in After Effects) so I can see the background I want to use. :bounce:

http://imageshack.us/photo/my-images/28/howj.jpg/

Bobo
12-15-2011, 11:35 PM
Hello,
Is there any news about his release date? And will it be available before end 2012?
Thank you

Current plan is middle of next week :)

rotaruandrei
12-21-2011, 08:46 AM
I have a problem when I try to render my particles.
If I set the particles in Render at 10% the render is O.K but at 100 % I get this error.

JohnnyRandom
12-22-2011, 02:46 AM
It means what it says, you are out of memory. How much physical memory is on the machine vs. total particles/channels count?

I haven't seen that in a while what version are you using?

Bobo
12-22-2011, 03:14 AM
I have a problem when I try to render my particles.
If I set the particles in Render at 10% the render is O.K but at 100 % I get this error.

You are trying to allocate around 19 GB of RAM. If you don't have that amount of RAM, or especially if you are running a 32 bit build of Krakatoa, there is nothing you can do except reducing the particle count or adding more RAM (and using the 64 bit build, of course).

The Memory Channels rollout provides a calculator to estimate the amount of RAM you are going to need depending on the particle count and the allocated channels...

rotaruandrei
12-22-2011, 03:58 AM
I just noticed in my Particle count that now I have 480 milion particles.
I don't know what happened, at the last count I had 48 milion.
I'm sure this is the problem.
Thank you guys for the support.
I will probably make the scene from scratch, it's the easiest way to fix this.

boumay
12-22-2011, 07:21 PM
Hello,
I saw that MR isn't supported by the atmospheric effect.
Is there a near perspective to make it compatible? as a lot of max users are rendering with MR and a part of them (including me) don't have another renderer at hand...

JohnnyRandom
12-22-2011, 08:04 PM
Lucky for you it is not up to me because I would say no :twisted:

There are many other things on the wish list that I would rather see happen and I can say for a fact that I am not the only one that thinks this way. Not to mention it renders in any renderer that natively supports max atmospherics.

Just my 2 cents

You'll have to get an official answer from an official person, only after you listen to me first :D

So you never k(no)w you may get it someday...

boumay
12-23-2011, 04:13 AM
Hello,

@bobo:
Until now I thought krakatoa was 32 bits only, but I just saw that you talked about the 64 bits version in this post. I looked in my computer and krakatoa is installed in program files (x86) folder, which indicates that it's the 32 bits build. Also, I've downloaded the 2.0mx version and it's still installing in the x86 folder.
Which version am I using? And, if it's the 32 bits build, can you indicate me if it's possible for me to use the 64 bits build instead?
Thank you.

Bobo
12-23-2011, 06:17 AM
Hello,

@bobo:
Until now I thought krakatoa was 32 bits only, but I just saw that you talked about the 64 bits version in this post. I looked in my computer and krakatoa is installed in program files (x86) folder, which indicates that it's the 32 bits build. Also, I've downloaded the 2.0mx version and it's still installing in the x86 folder.
Which version am I using? And, if it's the 32 bits build, can you indicate me if it's possible for me to use the 64 bits build instead?
Thank you.

While Krakatoa is installed by default into the (x86) folder, you will notice that for each Max version, it contains a sub-folder with a 32 bit and 64 bit plugin. It depends on the Max version you are running - if your Max is 64 bit, the Plugin.ini path will be pointing at the 64 bit build of Krakatoa. (it is NOT possible to run 32 bit plugins in 64 bit Max).

I mentioned 32 vs 64 bit because normally, on a 64 bit OS and 64 bit Max, Krakatoa 64 bit should never run out of memory, just start swapping to the page file like crazy as Windows is trying to allocate more memory. I have never seen an error message about being unable to allocate memory in 64 bit, but I might have failed pushing it enough. (when I exceed my 12GB of RAM, my system pretty much locks up trying to page, so I just kill it).

Bobo
12-23-2011, 06:23 AM
Hello,
I saw that MR isn't supported by the atmospheric effect.
Is there a near perspective to make it compatible? as a lot of max users are rendering with MR and a part of them (including me) don't have another renderer at hand...

I have discussed the technical aspects of a mental ray implementation with Master Zap and it would be doable. (FumeFX also added support for mental ray a while ago). But as Johnny Random mentioned, with Krakatoa now supporting Default Scanline, V-Ray, finalRender and Brazil r/s with a single atmospheric effect, spending the time to reimplement the same for the one renderer that, while bundled with Max, is mostly incompatible with it, would potentially affect other things we could do. So we cannot promise anything, but we will look into it when the time comes.

boumay
12-23-2011, 10:59 AM
Thank you for these precisions. I understand your point of vue regarding mr implementation

NahuelL
12-29-2011, 09:34 AM
Hi,
I wanted to know if the Evaluation License of Krakatoa MX 2 is available. In the Thinkbox website it says: "To unlock all features of Krakatoa MX™ and turn your Evaluation Version into a Full Commercial version, you can request a 15 day Evaluation License using the form on this page". But I don't see the form on the krakatoa download page.

Cheers
Nahuel

JohnnyRandom
12-29-2011, 04:12 PM
Hey Nahuel just go to the sales page fill out the form and just be sure to choose "evaluation" as the license type.

If that doesn't work contact support or sales at thinkboxsoftware dot com. :)

NahuelL
12-29-2011, 10:45 PM
Thanks! Received it already :buttrock:

boumay
01-05-2012, 04:47 AM
Hello,
I have the problem that krakatoa 2 hair is crashing my 3dsmax 2012, while I'm following all the steps described in the "Krakatoa_MX_2_Hair_Rendering_And_Magma_2" videos (in 3 parts) that were presented for siggraph.

I'm doing the following:

1. Set krakatoa as the renderer (otherwise max crashes even earlier: it crashes when I apply krakatoa hair on top of "hair&fur" modifier)

2. create a teapot

3. assign hair&fur modifier on top of the teapot

4. create prt hair object (from the krakatoa menu) = it is to be noticed that, at this point, the particles don't appear in the viewport while they should be.

5. create a default spotlight (from schematic view)

6. hit "render" and... crash!


I've tried in max 2011 one time and same thing happenned; and I couldn't try a second time because the "create prt hair object" simply disappeared from the menu after that try (so strange...)
My max 2012 is up to date with latest sp2, and so is max 2011.

Does anyone know the solution?
Thank you.

Bobo
01-05-2012, 06:41 AM
The menu in the screenshot does not look like the Krakatoa MX 2 version, can you check the exact version of the Krakatoa that is running in 2011?

As for the crash, let's try something simpler - you don't need Krakatoa the renderer to create a PRT Hair. Not even Hair.

*Start Max 2012.
*Create a Line shape
*With the Line selected, select "Create PRT Hair..." from the Krakatoa menu

At this point, you should have particles on the Line.
This will confirm that the PRT Hair itself works in spline mode.

Now for the Hair.
*Create a Teapot
*Add the Hair & Fur WSM modifier
*Note the exact system time on the Windows clock
*Select "Create PRT Hair..." from the Krakatoa menu

At this point, it will either work or crash.
Either way, try navigating to your temp folder by opening a Windows Explorer and typing in
%temp%
On my machine, the resulting folder looks like "C:\Users\Borislav\AppData\Local\Temp"
Inside this folder, Krakatoa should have written a file called "KrakatoaHair2" without an extension. This is the dumped hair info used by the PRT Hair to access the Max Hair&Fur (because the developer forgot to expose the hair data to 3rd parties and we had to jump through hoops to get it).

If you are seeing the file, check its date and time to make sure it was made when you tried to make the PRT Hair. If you don't see such a file, let me know (it would point at a problem with the Max Hair&Fur saving).

Then we will see what's next.

boumay
01-05-2012, 07:46 AM
Thank you for your answer

The krakatoa version in max 2011 is MX 2.0.0.46166, (as mentionned in my previous post, I've tried PRT Hair creation also in max 2011 to check, and it crashed, and PRT Hair is a MX 2.0 feature so it couldn't have been available in previous versions; then it disappeared as mentionned)

I followed the steps you described:
1. created a line shape
2. with the line selected, I created PRT hair from krakatoa menu
It worked and I saw the particles on the line.

As for the Hair:
1. I created the teapot
2. Added Hair&Fur WSM modifier
3. Noted exact windows clock time (it was 11:32 AM)
4. Created PRT hair and it crashed
I looked in the temp folder and a KrakatoaHair16 file with no extension was created at the exact time of the PRT Hair creation (11:32 AM). Other KrakatoaHairXX files were present, that I deleted before performing the test for the purpose of clarity, they were having different numbers such as KrakatoaHair2, KrakatoaHair16, etc; but all having the exact same file size (3.77mb as seen in the screenshot).

Another scenario occured, and it was that, at another attempt, it didn't crash at PRT Hair creation (particles weren't displayed in the viewport btw), but at render time. But appart from this case, it crashes at PRT Hair creation everytime.

Thank you for looking at this.

JohnnyRandom
01-05-2012, 10:12 PM
Just FYI following the steps I cannot replicate the issue either.

boumay
01-06-2012, 07:05 AM
Thank you for trying,
It's quite strange that it happens on my machine in which everything seems clean. Perhaps a plugin conflict or the like I don't know. I should try a re-install of krakatoa to see if it arranges the situation.

boumay
01-06-2012, 10:53 AM
I uninstalled and re-installed krakatoa but it didn't improve the situation.
But, despite all this, I managed to make it work.
The problem was the HT technology - multithreading (accessible via the bios). I remembered that it was an issue in max 2011 and was preventing Hair&Fur from loading and causing max to crash at startup. The solution was, either to disable HT in the bios or disable Hair&Fur by renaming or move the files associated.
So I disabled HT in the bios and krakatoa hair was able to function, but at the cost of loosing multithreading.
This is still an issue because I need all my cores to use my computer at full power, and it's limited now. Krakatoa should work with H&F with HT I think.
Bobo, do you have a solution for that?
Thank you

Bobo
01-06-2012, 04:32 PM
How many cores do you have? Without and with HT?
Now that you mention it, we found that 3ds Max Hair and Fur calls functions in Scanline Renderer (because the Hair Modifier contains the shading and acts like a Material).
And Scanline Renderer crashes if you enable more than 16 cores (I think, could have been 32). That's Autodesk's problem, not Krakatoa's.

We had a machine with 80 threads (40 cores * HT) and 256 GB RAM to test Krakatoa MX 2 around Siggraph and found out that we had to limit the number of threads the Scanline Renderer gets to run on. It had nothing to do with Krakatoa itself. Even opening the Material Editor without any Krakatoa installed would crash Max if it was running on 40+ cores. I used the Affinity controls in Task Manager to control how many threads each instance of Max would get.

mental ray did not have this issue though. But Hair was kind of problematic due to its shaders integration.

I run a simple i7 Quad-core which gives me just 8 threads and Krakatoa MX 2 runs without any issues on it. As mentioned, we have tested Krakatoa itself on up to 64 cores (because Windows Server does not support more than 64 cores, it split the 80 threads into two sets - one with 64 and one with 16). So we know that Krakatoa is ok with 64 theads (albeit not as fast as one would hope - there is a lot of overhead involved in multi-threading, so running multiple copies of 3ds Max on 24 or 32 cores might be smarter thing to do).

If you have 24 threads or something like that, you can either reduce the number of threads 3ds Max is using via the Affinity settings, or complain to Autodesk (fixing Scanline? Not gonna happen). So I would suggest the former...

boumay
01-06-2012, 07:12 PM
First of all, thank you for this explanation.
I have a dual xeon 5650 (6 cores each), which result in 12 physical cores and 24 with HT on.
What you explained is true, except the fact that, in my case, scanline doesn't crash whatsoever when I'm using it on 24 threads, and I've been using it before in one project with no issue. I've tried just before writing this post, chose scanline as renderer, created a simple object, opened material editor, assigned one material to the object, rendered with it, and no crash. I've repeated this several times, no problem at all.
While I don't have any experience in programming or the like, I think it has something to do with the relationship scanline has with krakatoa hair, not with H&F, because I also tried to render a simple sphere, for instance, applied H&F on it, and rendered with scanline and it renders everytime with no issue.
I hope we could find the real cause of the crash in my system. Otherwise, I'll use krakatoa hair with only 16 threads maximum, which should suffice. I'll look how to configure the threads to do so, as I don't have any knowledge about that right now. I just hope it's not too complicated or time consuming :)
Anyway, this has been instructive...

JohnnyRandom
01-06-2012, 10:39 PM
Must be 32 Bobo I have 16 and it seems to work without issue.

How big was that beast machine you guys had at Siggraph? It had something like 40 cores and like 256 of ram didn't it?

Bobo
01-06-2012, 11:11 PM
While I don't have any experience in programming or the like, I think it has something to do with the relationship scanline has with krakatoa hair, not with H&F, because I also tried to render a simple sphere, for instance, applied H&F on it, and rendered with scanline and it renders everytime with no issue.


This is interesting. When I was testing with high core counts, just opening Max and popping up the Material Editor (even without any Krakatoa installed) would crash it immediately. I remember I had to switch the default Material Editor renderer to Mental Ray to do any work. Creating a Teapot and adding Hair&Fur to it also crashed and I could not find any way around it.

Unfortunately, I personally don't have access to a 24+ threads machine right now, but we will try to locate one and do some more testing.

You can try to open Task Manager, select the 3dsmax.exe entry in the Processes tab, right-click it and select "Set Affinity...". Then uncheck 8 of the CPUs until you have 16 checked. See if it still crashes with PRT Hair and Hair&Fur. If it does, please let me know.

boumay
01-07-2012, 03:54 AM
Ok, so, with HT on (24 threads) I launched 3dsmax, went in the processes tab to set affinity of 3dsmax.exe and disabled 8 of the 24 cpus.
But it is still crashing at PRT hair creation.
I unchecked 12 of the 24 cpus after (in affinity section) to try, PRT hair creation worked (particles not showing in viewport btw), but max crashed at render.
Until now, PRT hair isn't working except with HT off (via bios).

Bobo
01-07-2012, 03:59 PM
Until now, PRT hair isn't working except with HT off (via bios).

Good to know, thanks for testing!

boumay
01-07-2012, 04:55 PM
Glad to help.
If you have any solution for me to have PRT Hair work with all 24 threads (or at least 16), please let me know.

Bobo
01-09-2012, 10:52 PM
Glad to help.
If you have any solution for me to have PRT Hair work with all 24 threads (or at least 16), please let me know.

We were able to reproduce the problem. The error appears to be in the MaxHair SDK provided by Autodesk, so it is out of our direct control. We have reported the problem to Autodesk and they will be investigating the cause.

We will keep you posted. If they can fix the issue, we will try to provide an updated build.

boumay
01-10-2012, 07:04 AM
We were able to reproduce the problem. The error appears to be in the MaxHair SDK provided by Autodesk, so it is out of our direct control. We have reported the problem to Autodesk and they will be investigating the cause.

We will keep you posted. If they can fix the issue, we will try to provide an updated build.


Ok, thank you for that.

boumay
01-12-2012, 06:25 AM
-- removed --

boumay
01-12-2012, 07:44 AM
-- removed --

zoubein
01-27-2012, 04:13 PM
hey I was wondering if anyone could help me with a simple magma flow. I have a PRT sequence, of a vein growing, I am meshing it in frost I want the radius to change by age, so the first particles are small in radius and grow up to a point and so on. I know its simple but I find magma flow intimidating.

JohnnyRandom
01-27-2012, 04:22 PM
The simplest way would be to predefine age/lifespan prior to caching the PRT Sequence. Where are you getting your PRT seq particles from?

Some pertinent reading material:
http://www.thinkboxsoftware.com/krak-magmaflow-fading-by-age

:)

Bobo
01-28-2012, 05:05 AM
hey I was wondering if anyone could help me with a simple magma flow. I have a PRT sequence, of a vein growing, I am meshing it in frost I want the radius to change by age, so the first particles are small in radius and grow up to a point and so on. I know its simple but I find magma flow intimidating.

If the PRTs contains Age and LifeSpan channels from, say, PFlow, FROST has the ability to scale the Radius internally even without a Magma! Just check the "Change Scale With Age" option, set Sync by to LifeSpan, click the >> icon next to the "Change Scale..." label and select "Grow Over Lifespan" - this will set keys with values 0.0 to 1.0 on frame 100. This will cause a particle with 100.0*Age/LifeSpan of 0.0 to 0.0, and a particle that is about to die to 1.0. Of course, you can change the keys to go from 0.5 to 3.5 or anything...

You CAN do that with a Magma, but it is easier with the built-in Frost controls.

boumay
01-28-2012, 01:03 PM
Hello,
I know I've already posted this question but I really need to know how to solve this, as I searched without success.
When I add a krakatoa channel modifier on a prt volume, the magma flow interface is the same as I always knew (see pic-1), but, when I save the max file, and open it in a new instance of max later on, then the krakatoa channel modifier behaves differently, controls have disappeared from the modify panel and, when I open magma flow the interface is also changed, and I cannot load kmf files (the loaded lcm in the pic is from the previous instance of max). Another annoying this is that the magma flow interface is very laggy and slow when I moves nodes. So I decide to delete the krakatoa channel modifier and I make a new one, and suddenly the controls are there and the magma flow editor interface is the old and smooth one (pic-2).
I wanted to get used to the new interface, no problem with that, but since I saw that there are other issues like the impossibility to open kmf files anymore, the swapping and laggy interface, etc, I really need to know how to deal with that now.

Does anyone lived the same experience in krakatoa 2? Help woulb be appreciated.

Thank you.

Bobo
01-28-2012, 07:24 PM
We posted an updated 2.0.1 build which should fix the slow updates on some machines (it was always fast on mine for some reason, but slow on my laptop).

What you are seeing is a BIG misunderstanding, I will have to figure out how to document it better.

The Krakatoa Channels Modifier is Magma 1.6. Even in 2.0, it is the same old modifier. It supports only one output, lacks a lot of the new operators, uses a single Editor for all KCMs and so on. YOU ARE NOT SUPPOSED TO USE IT unless you are passing data back to people using Krakatoa 1.6. You are supposed to use the modifier called "MagmaModifier". That is the 2.0 implementation. Note that the "KCM" icon and the Krakatoa > Add Krakatoa Channels Modifier... menu item both apply the NEW MagmaModifier.

When a 1.6 scene is loaded and Krakatoa MX 2.0 is installed, the old Krakatoa Channels Modifiers in the scene are converted automatically to Magma 2.0 Modifiers. That explains the difference in the appearance. The new modifier (once you update and fix the slow updates) is vastly superior to the old KCMs. It can still load KMF files (File > Import Magma 1.x KMF Flow...) and will attempt to convert them to the new flow format. You can also use the browser in the editor's command panel when no node is selected to load both 2.0 and 1.x flows without using the File menu.

There is a non-sticky option under System Preferences to skip the conversion of old KCM to new MagmaModifiers, and we found a few bugs in 3ds Max itself that prevented this conversion in some cases (a 2.0.2 build should be available next week with more fixes, but I can post the updated scripts if anyone wants them).

The Magma 2.0 has a huge amount of improvements - separate editor per modifier, multiple Output nodes per flow, multiple Output sockets per node, Default values for Inputs, MAXScript-based flow format for sharing online, better Debugging mode, custom Texture Sampling, Proxy Particles data sampling, better geometry operators with access to more channels, better Curve operator, Normalize option in Noise functions and much more.

So we kept the old KCM around for compatibility, but you should start learning the new MagmaModifier. You can download the updated build from
http://www.thinkboxsoftware.com/krakatoa-downloads/

boumay
01-30-2012, 06:00 AM
Things are clearer for me now.
The new build has also eliminitated the lag in magma flow interface, it's now smooth.
I wanted to get used to new magma flow editor anyway and train on it so I can get the most of the software.
Nice : )
Thank you

zoubein
01-30-2012, 09:20 AM
Thanks for that, the reason I didn't want to go to the original pflow and set it up there is because that file is lets say a bit crash prone and i am finding it hard to adjust the pflow to my new needs, I was hoping i could just reuse the prts that I had saved before. But I guess that would be simpler if I can make the file work.

If the PRTs contains Age and LifeSpan channels from, say, PFlow, FROST has the ability to scale the Radius internally even without a Magma! Just check the "Change Scale With Age" option, set Sync by to LifeSpan, click the >> icon next to the "Change Scale..." label and select "Grow Over Lifespan" - this will set keys with values 0.0 to 1.0 on frame 100. This will cause a particle with 100.0*Age/LifeSpan of 0.0 to 0.0, and a particle that is about to die to 1.0. Of course, you can change the keys to go from 0.5 to 3.5 or anything...

You CAN do that with a Magma, but it is easier with the built-in Frost controls.

larex
01-30-2012, 11:11 AM
Hi guys is is somehow possible to select (not use volumeselect) particles like in pflow selection rollout, whitch are loaded in prt loader and then detele them. I tryed use prl loader in pflow select some particles in selection rolout but when i use delete operater with delete only selected otion nothing happens, can you help me how to solve this problem?
Thank a lot

Bobo
01-30-2012, 07:25 PM
Hi guys is is somehow possible to select (not use volumeselect) particles like in pflow selection rollout, whitch are loaded in prt loader and then detele them. I tryed use prl loader in pflow select some particles in selection rolout but when i use delete operater with delete only selected otion nothing happens, can you help me how to solve this problem?
Thank a lot

There are three ways to delete particles - if it is a PRT Loader, you can create some simple geometry objects (e.g. Boxes) to include the particles you want to get rid of, then add these objects into a Named Selection Set and use the Particle Culling option to remove.

The second approach is using a Magma modifier to set the selection of the particles. You can use various logical approaches here, but you cannot really click them individually, it has to be procedural. In Magma 2, you can use InVolume to check if a particle is in a volume. Then drop a Krakatoa Delete on the stack to delete.

And finally, Volume Select CAN be used to pass the selection up and then delete, but you said you don't want to use it...

There is no way to specify particles with the mouse though.

JohnnyRandom
01-30-2012, 11:43 PM
Thanks for that, the reason I didn't want to go to the original pflow and set it up there is because that file is lets say a bit crash prone and i am finding it hard to adjust the pflow to my new needs, I was hoping i could just reuse the prts that I had saved before. But I guess that would be simpler if I can make the file work.

You could and this shouldn't take take long but recreate a new pflow and just include same particle counts/spawns/events/age tests/ and add appropriate delete ops in events where applicable. Forget all of the other operators like speed/rotation/ect. You just need the age/time info.

Cache that new system out to prt and blend the new age/lifespan channels into the existing prts via KMM.

larex
01-31-2012, 03:20 AM
Hi Bobo thanks a lot but finaly i found the fourth clicking way :-) It is in pflow group selection operator and selection condition by snapshot.

Bobo
01-31-2012, 04:33 AM
Hi Bobo thanks a lot but finaly i found the fourth clicking way :-) It is in pflow group selection operator and selection condition by snapshot.

I was under the impression you asked how to do it LIKE in PFlow but WITHOUT PFlow. Glad it worked the 4th way... :thumbsup:

larex
01-31-2012, 05:09 AM
:-) I only needed some way to do that. For me It is weird, that when you are using some birth loaders inside pflow, the selection is not distributed to operators. So Im happy that at least this methot works.

boumay
02-05-2012, 06:40 AM
Hello,
I have the problem that when I want to have realtime feedback in the viewport (here with the "control particle density and color by age using magma flow" tutorial from the doc), it doesn't work while "auto" is checked and I'm forced to click manually the update button to have an actualisation in the viewport. I'm using MF 2.
Does anyone has a solution to fix this, or am I missing something?
Thank you

JohnnyRandom
02-09-2012, 03:55 PM
Just because:love:

http://4rand.com/TEST/Krakatoa/splash.png

boumay
02-09-2012, 04:04 PM
I like the splash screen you did, I would really like to do the same.
Can you tell how you changed the image? Before max 2012, it was a splash.* file, but now I don't find it and splash seems uneditable...

Glacierise
02-09-2012, 04:09 PM
Now that's something that would give me a fine jolt starting up :)

jigu
02-09-2012, 05:05 PM
Awesome... Is there a "Frost" one? :D

Bobo
02-11-2012, 12:28 AM
Hello,
I have the problem that when I want to have realtime feedback in the viewport (here with the "control particle density and color by age using magma flow" tutorial from the doc), it doesn't work while "auto" is checked and I'm forced to click manually the update button to have an actualisation in the viewport. I'm using MF 2.
Does anyone has a solution to fix this, or am I missing something?
Thank you

This is strange, because I have heard of people having this issue (and it shows in Hristo's Naiad demo videos), but it works perfectly fine on my system.

So I assume there is something related to 3ds Max viewport settings or something else that affects this.

Can you provide your specs?
Are you running Direct3D or Nitrous? What version of Max? And so on.

boumay
02-11-2012, 03:26 AM
I was about to edit my previous post just before I see yours to inform that it seems that the problem disappeared so I don't make people loose their time searching or trying to help for nothing. The problem went away by itself without understanding what happened. Anyway, it works fine now, we'll see if it comes back in the future.
Thank you for your support.

3ak
02-16-2012, 03:43 PM
Hi. Have a problem)

I can't get ID channel from bin or prt from RealFlow. Particle Viewer shows it right but magmaflow says it's not available or just 0. Maybe it's because of int64 in RF and max int32 in krakatoa?

Bobo
02-16-2012, 06:12 PM
Ok, thank you for that.

Hi!

We have posted a new release candidate build (2.0.2.46508) which was compiled against the latest Autodesk Max Hair SDK and should fix the 16+ cores crash in Hair.
Please test it with your machine and let us know if it solves the problem (we tested on a 40 core + HT machine and it worked for us).

http://www.thinkboxsoftware.com/krakatoa-downloads/builds-beta

The full Change Log is available here:
http://www.thinkboxsoftware.com/krakatoa-mx-202-change-log/

Bobo
02-16-2012, 06:22 PM
Hi. Have a problem)

I can't get ID channel from bin or prt from RealFlow. Particle Viewer shows it right but magmaflow says it's not available or just 0. Maybe it's because of int64 in RF and max int32 in krakatoa?

Krakatoa supports int64 (although it defaults to int32 when outputting).
How are you using the ID in the MagmaFlow?
If you are using Magma 2, what does the Magma Debugger say?

EDIT: I just loaded a simple RealFlow BIN sequence I had, added a Magma to the stack and set the flow to InputChannel:ID-->Greater (5000) -->ToFloat --> OUT:Selection and put a Krakatoa Delete to the stack. The particles with ID > 5000 got deleted.

boumay
02-16-2012, 06:58 PM
We have posted a new release candidate build (2.0.2.46508) which was compiled against the latest Autodesk Max Hair SDK and should fix the 16+ cores crash in Hair.
Please test it with your machine and let us know if it solves the problem (we tested on a 40 core + HT machine and it worked for us).


I do thank you for this.
Being really busy, I'm not around krakatoa at all for my current projects, but I hope I'll be able to help you in the future bobo.

3ak
02-16-2012, 07:02 PM
1) thanks for fast reply.
i resimed test sequence and now particle viewer shows ID channel as int32 and it works well in magmaFlow mod. I don't know why it changed from int64. But when it was, debug showed 0 or magmaFlow threw an error - "Channel isn't available" even with simplest setup: InputChannel (ID) - > output (ID).

And i had to load sequence in pflow and saved as prt (it converted int64 to int32 automatically).

i will try to get the same error and will send you the file.

2) is it possible to force InVolume to track mesh transform/change? I can think only about creating and deleting InVolume every frame via script handler. But it's a bit silly)

Bobo
02-16-2012, 07:39 PM
2) is it possible to force InVolume to track mesh transform/change? I can think only about creating and deleting InVolume every frame via script handler. But it's a bit silly)

This was a bug. We fixed it and the fixed build is available from
http://www.thinkboxsoftware.com/krakatoa-downloads/builds-beta
for testing. Please give it a go and let me know if it works now.

The full list of changes is here (as posted already):
http://www.thinkboxsoftware.com/krakatoa-mx-202-change-log

The major new additions besides the bug fixes are:
*Particle Data Viewer can now show either World Space or Object Space data from PRT objects
*Magma Debugger now shows Object Space data (as it should), used to show World space before
*Magma Debugger can now show every Nth particle and has an Update button.
*Shift+Ctrl+L can bring inputs to the left side of the Magma Editor. See View menu for options which inputs are affected, as well as sticky preferences.
*Several new (experimental) auto-reorder modes were added to the Magma Editor.

3ak
02-16-2012, 07:43 PM
here is th file (prt, max, jpg-screenshot):
http://dl.dropbox.com/u/46208032/krakatoa_problem.zip

seems rf has id channel while krakatoa creates ID channel. "Match..." buttont doesn't help.
i changed output to 64, changed input as custom channel "id"... it just creates second channel with 0 in it.

UPDATE: it seems i managed it=)
created input (custom channel "id") - output to custom "id" - no double channels, no zeros. nice)

3ak
02-16-2012, 10:16 PM
Installed latest build (beta) and "Add new custom channel" button in Save Particles rollout isn't working. Just nothing happens (as in last final build). bug?

UPDATE:
Found in Krakatoa_GUI.ms that channel name must be > 3 characters. But magmaFlow mod doesn't have such restriction.
Solved)

Bobo
02-16-2012, 10:48 PM
Installed latest build (beta) and "Add new custom channel" button in Save Particles rollout isn't working. Just nothing happens (as in last final build). bug?

UPDATE:
Found in Krakatoa_GUI.ms that channel name must be > 3 characters. But magmaFlow mod doesn't have such restriction.
Solved)

I am not quite sure why I limited it to >3. I will look and fix it for future builds.

You can add channels manually by editing the file "Krakatoa_CustomChannelsToSave.ini" found in the folder that opens when you click "Explore Folder..." in the "Presets and History" rollout of the GUI.

3ak
02-16-2012, 11:01 PM
yes, look through 770kb .ms gives me a lot of knowlege))

thanks for fast response!

3ak
02-17-2012, 11:33 PM
I'm stuck(

I have a sequence of prt/bin files from realflow and i want to assign the same color to particle with same ID through all sequence in Magma mod. Problem is that all queries work with index input which differs from file to file for the same particle.


What is Index? Just order in which particles are saved in prt file? And why PDW shows it as 1-based but all queries (particleQuery node for example) - as 0-based input?

Is there way to make Index = ID? (i've found that loading bin to pflow makes ID = index but i loose all my channels don't know why)

Thanks in advance

Bobo
02-18-2012, 01:35 AM
I'm stuck(

I have a sequence of prt/bin files from realflow and i want to assign the same color to particle with same ID through all sequence in Magma mod. Problem is that all queries work with index input which differs from file to file for the same particle.


What is Index? Just order in which particles are saved in prt file? And why PDW shows it as 1-based but all queries (particleQuery node for example) - as 0-based input?

Is there way to make Index = ID? (i've found that loading bin to pflow makes ID = index but i loose all my channels don't know why)

Thanks in advance

Ok, let' see.

The Index channel available as an Input in the Magma modifier is the internal loop counter. The Magma goes over all particles in order, and the Index just gives you a way to know the Nth particle you are working on. This is NOT used for operator inputs usually. We just felt it would be useful to have in some cases.

The Particle Data Viewer has a column called Index which has NOTHING to do with the Magma or channels. I should have called it Number or # or something to avoid confusion. Once again, it is the internal counter, so it reflects the First and Nth spinners. This is really just for reference to know which particle from the stream you are looking at.

Then there is the ParticleIndex output / input in the Object operators in Magma 2. The NearestParticle op for example outputs a ParticleIndex which tells an operator like ParticleQuery which particle to look at. Since ParticleQuery DOES NOT WORK on the current particle stream (the one the modifier works on), but only on EXTERNAL particle clouds (defined by the Particles input), the Index input of ParticleQuery is kind of internal and should be wired to the ParticleIndex output of the NearestParticle. You don't touch that, and you don't care whether it is 0-based or not.

There is currently no way to access OTHER particle than the one the current modifier is operating on. So a Magma modifier loops through all particles in the stream, and all channel inputs will read the data of the CURRENT particle. If there is an ID channel in the input stream, you will know what ID you are working on, and you could assign a color based on it. If there is no native ID channel coming up, the Index won't help since it does not represent particle order between files, just the current iteration on the current frame.

If you can explain in a short list of steps or a pseudo-flow what you want to do exactly and if you can describe what channels really exist at the bottom of the stack, we might find a solution to your problem...

3ak
02-18-2012, 02:44 AM
Thanks.
here is very rough preview of what i want:
http://dl.dropbox.com/u/46208032/3ak_texMelt.rar

I got only once though)
I think i can bake texCoords in RF with little python but want to try krakatoa for that.
Let's say i have sequence of bin files (two emitters if it matters) from RF full of channels. Then load this two sequences in PRT Loader, create simple geometry that corresponds to shape of all particles in first frame (sphere in my case), generate mapCoords. Add Magma mod to PRT Loader, and rewrite texCoords channel with very simple setup:
http://my.jetscreenshot.com/11355/m_20120218-1tfu-62kb.jpg (http://my.jetscreenshot.com/11355/20120218-1tfu-62kb)

Alternatively i use NeighbourCount channel.
This way i project UVW from sphere to outer particles. THen i just save prt file, load my sequences in first PRTLoader, saved prt with texCoords channel in second PRT Loader and want to find for every particle in sequences correponding (by ID) particle in prt with texCoords:

For particle in 1st PRTLoader get TexCoords from particle in 2nd PRTLoader where ID1 = ID2

But i can access particles only through Index input (in particleQuery op) and order in which particles load is different in every bin/prt in sequence.
So i need a way to get info from first frame prt (with texCoords applied) by ID

I managed this by loading first frame in pflow and saving prt, then added texCoords.
I don't know why but pflow automatically rearange file the way it loads depending on ID (Index = ID). So this worked:
http://my.jetscreenshot.com/11355/m_20120218-xtyl-19kb.jpg (http://my.jetscreenshot.com/11355/20120218-xtyl-19kb)

But it happens only once i and forgot the settings)
Anyway i don't have access to realflow everytime i want so i need another method)

Thanks in advance.

Bobo
02-18-2012, 07:37 AM
I think i can bake texCoords in RF with little python but want to try krakatoa for that.

You cannot do that currently using Magma. It was designed to be completely history-independent, and right now you cannot do things on a frame that depend on stuff that happened on previous frames. We had to assume that the particles would be completely changing from frame to frame, and there is no way to match IDs from one frame to another since chances are there will be a lot of particles without a matching partner.

In your case, you want to steal the UVs at Age 0 and then keep them around throughout the animation. I think this could be done using PRT Loader + PFlow. Both the Mapping Object operator and the Krakatoa Geometry Lookup operator (in KMX 2) have the option to acquire data only once when a particle enters the event. So you can set up a PRT Loader and a Krakatoa PRT Birth/Update/ID Test and whenever a new particle is born, it will enter the event, get its mapping once and then keep that value throughout the animation. The Krakatoa Geometry Lookup is available only in the commercial version of Krakatoa, but is much faster than the Mapping Object operator which ships with Max.

To do this in Magma, you would need a way to query info by ID (which you cannot right now), or have a Reference Position channel that contains the particle's position on the reference frame on later frames (PRT Hair does this). I will ask the lead developer whether it would be possible to have a ParticleQuery by ID instead of by Index. It would be quite useful in some cases. But if new particles are born or die in the sim, there could be IDs that don't have a corresponding reference particle in the other loader. So the PFlow approach described above would still be the better one.

Note that PFlow does NOT order the Index to match ID. When a particle is born, it gets the next highest ID. So if you create 1000 particles, you will have Index and ID aligned. But if you send particles out to other events, the PFlow system will concatenate the particle containers of all connected events, and the ID order could be different. If you delete particles, the Indexing allows no gaps, so again they won't be symmetrical anymore. Only in a simplest One-Event PFlow you might get Index and ID matching.

Hope this helps.

3ak
02-18-2012, 12:47 PM
Thanks again!

I will ask the lead developer whether it would be possible to have a ParticleQuery by ID instead of by Index.
This would definitly help.
Other things i dream about are inputs in Script node and ability to loop (for example to search through particles with given value in given channel))

Glacierise
02-18-2012, 01:06 PM
You can search already. Get the input channel, make a compound condition with 'more', 'less' and 'and', so at the output you have 1 when the value is within an interval, and write that into the selection channel - then you can use that channel to do specific things with these particles.

3ak
02-18-2012, 01:22 PM
You can search already. Get the input channel, make a compound condition with 'more', 'less' and 'and', so at the output you have 1 when the value is within an interval, and write that into the selection channel - then you can use that channel to do specific things with these particles.
Thanks.
Sorry, but i mean another particle, not current. Something like ParticleSumRadius node but without sum. Just for current particle (PRT Loader 1) find in PRT Loader 2 particle with ID = ID of the current particle for example.

Glacierise
02-18-2012, 02:05 PM
Yeah, I've requested that :) Also, sample at specified frame :)

3ak
02-19-2012, 04:02 PM
I'm still trying krakatoa to trace IDs in prt sequence to melt the texture) I know i can make it in pflow (thanks Bobo)) but... just as exercise.
I decided to create additional PRT file with one channel indexToID and write there swaped Id and Index:

if particle at position N (index = N) in PRT stream holds ID = M then write to channel indexToID to particle with Index = M value = N

I do it only in first frame so all particle are alive and have IDs from 1 to ParticlesCount and this should work.
Saing Index i mean internal krakatoa channel.
Here is the script (i'm not a programmer so be gentle)):

if heapsize<200000000 then heapsize +=(200000000 - heapsize)
iddata = #(#())
cs = franticparticles.getprtobjectIstream $
pcount = cs.getCount()
ch = cs.getChannels()

for i = 1 to ch.count do if ch[i][1] == "ID" then idnum = i

for i = 1 to pcount do
(
data = cs.readparticle()
iddata[i] = #(data[1], data[idnum], 0)
)
cs.close()



for i = 1 to pcount do
(
d = iddata[i]
if iddata[d[2]][3]!=undefined then iddata[d[2]][3] = i else print "ERROR"
)

theFile = "E:\indexToID_PRT.prt"
os = krakatoaParticleOstream theFile #("Position float32[3]", "indexToID float32")
for i = 1 to pcount do os.writeparticle #(iddata[i][1], iddata[i][2])
os.close()

I use Position channel only to get shape of point cloud.

Then i add 3 PRT Loaders:
PRTLoader1 - holds 1st frame of the sequence with calculated TexCoords (In the middle)
PRTLoader2 - holds my indexToID channel (to the left)
PRTLoader3 - resulting pointcloud (to the right), where i use following magma mod:
http://my.jetscreenshot.com/11355/m_20120219-at9i-33kb.jpg (http://my.jetscreenshot.com/11355/20120219-at9i-33kb)
So i look up in my prt providing ID to find where is the particle with that ID. then input provided index to final particleQuery node to find texCoords.
But result is wrong:
http://my.jetscreenshot.com/11355/m_20120219-trvg-32kb.jpg (http://my.jetscreenshot.com/11355/20120219-trvg-32kb)

So i really need advice on my logic)

And some more related question to Bobo:
1) Could you please explain how to use int values in krakatoa output streams? "MyChannel float32" works but "MyChannel int32" crashes 3ds max.
2) Sometimes script doesn't return idnum variable (undefined) so i have to explicitly Shift+Enter these lines:
cs = franticparticles.getprtobjectIstream $
ch = cs.getChannels()
...
for i = 1 to ch.count do if ch[i][1] == "ID" then idnum = i
Somethin strange happens)

Thanks in advance and sorry for so long post.

Bobo
02-20-2012, 01:11 AM
I'm still trying krakatoa to trace IDs in prt sequence to melt the texture) I know i can make it in pflow (thanks Bobo)) but... just as exercise.
I decided to create additional PRT file with one channel indexToID and write there swaped Id and Index:


The right way to do this would be to:

*Collect all IDs of the reference (frame 0) stream in an array, plus the zero-based index of the particle
*Sort this array by ID
*Collect all IDs of the target (frame N) stream in an array, nothing else
*Now collect an array that contains the zero-based index (item 2 from the first array) matching the IDs of the two streams using bsearch() for speed.
*Output the new PRT file with the Position of the target stream and a channel containing the zero-based index of the ID in the reference stream.

I used the following script to process 21 frames of a PFlow sequence where the first frame had the IDs in order, but later frames had them scrambled due to SplitAmount and SendOut operators. I used one PRT Loader to load only frame 0000 on all frames as reference. A second PRT Loader had the whole sequence animated. I run the script to get its particles, do the remapping and save to a new sequence.
I then assigned UVs from a Geosphere onto the reference PRT Loader using Magma, and then stole these UVs with another Magma using a third PRT Loader set to load the remapped sequence. When I played back the animation, the colors would stick to the particles as you intended.

(
local st0 = timestamp()
local theRefLoader = $PRT_Loader001
local theTargetLoader = $PRT_Loader002

local theStream = franticparticles.getprtobjectIstream theRefLoader false false --the last two arguments are needed in v2.0.2 - they mean
local theCount = theStream.getCount() --get the count
local theChannels = theStream.getChannels() --get the channels

local theID = 0 --will store the ID channel index here
for i = 1 to theChannels.count do if theChannels[i][1] == "ID" do theID = i --find the ID channel

--create an array containing sub-arrays with the ID and the 0-based index of the reference stream
local theIDArray0 = for i = 1 to theCount collect #((theStream.readparticle())[theID], i-1)
theStream.close() --close the reference stream


--this function will sort the reference array by the ID
fn LookupTableComparator a b =
(
if a[1] > b[1] then 1 else if a[1] < b[1] then -1 else 0
)
--this function will return the index of the search key (ID to find)
fn LookupTableLookup itemKey itemTable =
(
(bsearch #(itemKey) itemTable LookupTableComparator)[2]
)

qsort theIDArray0 LookupTableComparator --we sort the reference array

for t = 0 to 20 do
(
local st1 = timestamp()
sliderTime = t
--now get the target stream and repeat the same as above, assuming the channel layout is the same
theStream = franticparticles.getprtobjectIstream theTargetLoader false false
theCount = theStream.getCount() --we assume the count could be lower, but NOT higher!

--now we collect the IDs of the target stream
local theIDArray1 = for i = 1 to theCount collect (theStream.readparticle())[theID]
theStream.close() --close the target stream

--We build an array with the index position of the reference ID in the reference array, but in the order of the target array!
local theMapArray = for i in theIDArray1 collect (LookupTableLookup i theIDArray0)

local theBaseFile = franticParticles.ReplaceSequenceNumber theTargetLoader.fileList[1] t --get the file name of the target loader and build a new name
local theFile = getFileNamePath theBaseFile + "REMAP_" + getFileNameFile theBaseFile + ".prt"
theStream = franticparticles.getprtobjectIstream theTargetLoader false false --open the target stream again
theCount = theStream.getCount() --get the count again

--create an output stream with just Position and ID2Index channels
local theOStream = krakatoaParticleOstream theFile #("Position float32[3]", "ID2Index float32[1]")

--read each particle of the target loader and save to the Position and the ID map value to new stream
for i = 1 to theCount do
theOStream.writeparticle #((theStream.readparticle())[1], theMapArray[i])
theOStream.close()--close the output stream
theStream.close()--close the target stream
format "Frame % Processing Time: % sec.\n" t ((timestamp()-st1)/1000.0)
)--end t loop
format "TOTAL Processing Time: % sec.\n" ((timestamp()-st0)/1000.0)
)

It took about 1.3 seconds per frame, 28.9 seconds for all 21 frames using 20,000 particles each. Should scale relatively well with higher particle counts.

Note that the idea here is to store what Index an ID has within the reference frame, and then use that index as a channel to ask for any related data using ParticleQuery which wants Index and not ID.

There is indeed a bug in saving Int channels, will report it to get fixed next week.
I used a float32 and converted to int in the flow.

3ak
02-20-2012, 05:27 AM
Thanks alot for your help.

The difference between our solutions is that mine needs only one new prt with one channel in it for the whole sequence and doesn't need sorting to make it. But i have to use 2 lookups (ParticleQuery) instead of one for each particle. Anyway..
i've finally found what was wrong with my solution:
UVs were skewed because i used 1-based Index referencing in my script and what is more important - because of possible bug in Magma mod. ParticleQuery op. outputs info only if Index input has number less then particle count in viewport of the PRTLoader it queries. It's strange. so if i had 10% set, 90% of my queries return 0. Don't know if it depends on mode - i used Every Nth particle.
So i had to set 100% visible in viewport.

And here is the proof of concept))
http://dl.dropbox.com/u/46208032/TexMelt_preview.avi

Thanks again, Bobo.

UPDATE:
The same strange things with PRTVolume

Bobo
02-20-2012, 05:53 AM
The Krakatoa stream operations work on the render stream, never on the viewport stream. You should make sure your particles are set to 100% render, the viewport should play no role.

From what you posted in your previous setup, it looked like it would have only worked if the reference stream was already ordered. Specifically inputting the ID channel into the Index slot of the lookup would only work if the particles are in order in the reference frame. My solution works regardless of the order of particles in the reference frame or the target frame, they can be completely scrambled in both.

3ak
02-20-2012, 06:16 AM
Not ordered 100%.
I have Target sequence and Reference (single frame, 1st frame of sequence).

Let's say we have first particle (Index = 0) in reference stream with ID 58. So i write in 58th element of array (actually 1st because of mxs arrays) "0". This way when i need index of particle with ID = 58 i input ID in ParticleQuery[index2ID channel] on my PRT file and get "0" - index of particle with ID=58 in Reference stream. I use second ParticleQuery on Reference stream with this "0" and get particle with ID = 58. So it doesn't depend on order of particles.


As for PRTLoader and PRTVolume. Here is test scene. Vieport spacing = 2, render = 1.
i got black color but should have green. Change integer to 7435 (count - 1) and you'll get green.
http://my.jetscreenshot.com/11355/m_20120220-zkeq-86kb.jpg (http://my.jetscreenshot.com/11355/20120220-zkeq-86kb)

Test scene file:
http://dl.dropbox.com/u/46208032/3ak_ParticleQuery_problem.max

Hope this helps.

Bobo
02-20-2012, 06:36 AM
As for PRTLoader and PRTVolume. Here is test scene. Vieport spacing = 2, render = 1.
i got black color but should have green. Change integer to 7435 (count - 1) and you'll get green.

You should get black if you pass an invalid value. That's why there is a Count output in the InputParticles node, so you can ensure you are never asking for more than there is either via a Modulo, Clamp or Logic operator.

In fact, the internal WIP version I am using flags the bad particle color with red instead of black, but the Particle Data Viewer still shows [0,0,0].
Will have to ask the developer why. :)

3ak
02-20-2012, 06:43 AM
Get confused.
Do you have the same wrong result as me? If so will wait for fix)
I have ~15000 in prtvolume but only ~7500 in viewport. So passing Index more then viewport count minus one leads to [0,0,0]. that's why i get black. I'm not asking for more than 15000.

Sorry if i misunderstood you.

Bobo
02-20-2012, 07:59 AM
Get confused.
Do you have the same wrong result as me? If so will wait for fix)
I have ~15000 in prtvolume but only ~7500 in viewport. So passing Index more then viewport count minus one leads to [0,0,0]. that's why i get black. I'm not asking for more than 15000.

Sorry if i misunderstood you.

You probably did. There is no error that I see.
The Magma modifier is accessing the VIEWPORT counts.

The MAXScript Stream operators though cannot do that, so they always access the RENDER data. Thus a script copying channels around will always "see" the render amounts, same for the Particle Data Viewer which is a MAXScript using the streams.

But your Magma setup works on the viewport OR render particles depending on the mode Max is in (when you render, the context is switched and the Magma operators see the render counts, when you are in the viewport, you get the viewport particles).

I should have clarified when I said "streams only see render particles". This is related only to MAXScript operations, not Magma ops.

The Magma Debugger though is a MAXScript and the data it shows reflects once again render data and not what you see in the viewport. In the upcoming 2.0.2 build, we added the ability to show vectors in world or object space, with or without material evaluation, but the particles are still the ones from the render context.

3ak
02-20-2012, 01:50 PM
The Magma Debugger though is a MAXScript and the data it shows reflects once again render data and not what you see in the viewport. In the upcoming 2.0.2 build, we added the ability to show vectors in world or object space, with or without material evaluation, but the particles are still the ones from the render context.

Thanks for info.
In other words debugger shows zeroes in image below (where InputValue exceeds Index of visible particles by 1) because ParticleQuery works only on viewport particles when i'm not rendering but debugger shows the whole range and zeroes out on particles not in visible range. So the only way to debug any particle i want is to set visible to 100%. The small problem is that viewport is slow and render is not always shows what is going on.
It would be great if i could switch to evaluate all particles to see any debug values.
http://my.jetscreenshot.com/11355/m_20120220-urbp-107kb.jpg (http://my.jetscreenshot.com/11355/20120220-urbp-107kb)

bersu
02-23-2012, 10:48 PM
i have this prt loader with realflow .pd i made partiotions of it but when i render in krakatoa i dont get any visible change of the particle dount and the light density doesnt change ,, am i doing sth worng???

3ak
02-23-2012, 11:47 PM
Cause partitions are for "live" particle systems, not for point caches.
Krakatoa changes randomly some values in particle system and gets each partition slightly different (velocities, positions etc).
But there is no particle system behind pointcache to work with.

bersu
02-23-2012, 11:53 PM
so theres no point on doing partitions on realflow bins? is there another way to increase realflow particles with krakatoa partitions?

3ak
02-24-2012, 12:35 AM
not only bins. any pointcaches. So short answer - no.
To get pointcache just slighly different from original (as Krakatoa partitions do) you should use algorithm, close to original, original or atleast some approximations. So you can't just add noise for example and get another pointcache sequence that fits well with first one.

Maybe running several simulations in RF by hand with different random seeds and then combining them in PRT loader will help. Maybe.

bersu
02-24-2012, 12:50 AM
would be nice if thinkbox added more parameters like krakatoa colitions,, to replicate realflow fluid dynamics :)

Bobo
02-24-2012, 03:42 AM
Here is one way to do it:
http://www.thinkboxsoftware.com/news/2011/2/10/frost-heart-krakatoa.html

This is not partitioning, but still it gives you more particles.

Tutorials here:
http://www.thinkboxsoftware.com/frost-combining-frost-and-krak/
and here:
http://www.thinkboxsoftware.com/krakatoa-realflow-and-frost/

Obviously, requires Frost.
Note that Krakatoa SR will do this natively without Frost, and some day Krakatoa MX might too...

3ak
02-24-2012, 06:08 AM
Bobo, it might be interesting for you:
i've found that FumeFx ops (FumeFX Birth op) in Thinking Particles doesn't use property RandomSeed or Random_Seed to really change seed. they do exist but are doing nothing or at least nothing visible. So partitioning fails to differentiate particles. Instead they seem to use Seed property. I had to resim twice to find it=)

i added check into incrementdsops func in KrakatoaGUI.ms and it seemd to work.

Bobo
02-24-2012, 08:18 AM
Bobo, it might be interesting for you:
i've found that FumeFx ops (FumeFX Birth op) in Thinking Particles doesn't use property RandomSeed or Random_Seed to really change seed. they do exist but are doing nothing or at least nothing visible. So partitioning fails to differentiate particles. Instead they seem to use Seed property. I had to resim twice to find it=)

i added check into incrementdsops func in KrakatoaGUI.ms and it seemd to work.


Thanks. I don't have FumeFX normally installed, and have never used FumeFX with TP in my life, so no wonder I missed that. Plus some other TP operators have a Random Seed but it's not correctly exposed to MAXScript (like MatterWaves). For those cases, we support a Helper node named "RandomSeed" that is wired to the actual seed socket as workaround. In fact, any operator that matches the pattern "*RandomSeed*" will attempt to increase its value (if it has a value) according to the partitioning increment.
So in theory you can increment other things than the Random Seed in TP if you wanted to - just create a Helper op, call it "MyRandomSeedHelper" or something like that and use it in calculations to get to the current increment.

3ak
02-26-2012, 01:42 AM
thanks. simple yet powerful approach)

RolaM
02-28-2012, 02:54 PM
Hi Bobo,
I have a scene where i've made a simple cloud and made a noise animation on it according to this tutorial: http://www.thinkboxsoftware.com/krak-clouds-modelling/
which is awsome ..
The problem is that I want the animation to make a seamless loop where the first frame and the last frame are the same, this seems to be an easy thing to do, but i'm new to krakatoa, so any help would be appreciated.

Bobo
03-03-2012, 12:33 AM
The problem is that I want the animation to make a seamless loop where the first frame and the last frame are the same, this seems to be an easy thing to do, but i'm new to krakatoa, so any help would be appreciated.

This is exactly the same problem as looping noise maps in Max. In short, you cannot. In fact, even in nature a cloud will never return to the same shape ;)

A possible trick would be to blend between two versions of the noise over time. The one noise would be offset in time to end where the other one starts. The two would be offset so that the end of the second is the beginning of the first. if you are keyframing the UVW coordinates for example, the one could have a U value going from 0.0 to 1.0, the other going from -1.0 to 0.0. You start with showing the first one and around 0.5 you start transitioning to the other (which at that point is at -0.5). When you reach 1.0 with the first one, you have completely blended into the second and you are at 0.0 again!

This obviously applies to maps, but you can do the same with two versions of the Noise op in Magma.

EDIT: http://www.scriptspot.com/bobo/stuff/forum/noiseloop_demo.mov of two blended Noise maps with animated U and Phase on a PRT Volume.

RolaM
03-05-2012, 08:29 PM
Thank you so much Bobo for the useful tips.

Piotrek255
03-19-2012, 09:37 PM
Hi

How do i achieve something like gi in krakatoa?

No matter how many lights i add, the particles look too contrasty, and i have to set them up in a daylight interior, i would like a more evenly lighting feel to my smoke particle trails.

Do i need to add more lights? I use spot lights with ray traced shadows.

Also, rendering with phong shading renders my particles black, i know bobo explained this, its got something to do with the normals, but i still cant setup the proper render.

PatrickH
03-19-2012, 10:00 PM
Hi,
Sorry if the answer has been posted- but I can't find it if it is. I'm trying to render out a zdepth pass for FumeFx smoke using the Krakatoa zdepth render element. The results look clipped and inverted. Which is the same result i get using Fusionworks z depth without the inversion... What is the correct workflow? Any help appreciated.

Thanks a lot!
Patrick

zoubein
03-19-2012, 10:06 PM
A good 3 point lighting usually gives good results but I am guessing it has to do with the density value, you might need more particles in general.its hard to tell with out an image.

Hi

How do i achieve something like gi in krakatoa?

No matter how many lights i add, the particles look too contrasty, and i have to set them up in a daylight interior, i would like a more evenly lighting feel to my smoke particle trails.

Do i need to add more lights? I use spot lights with ray traced shadows.

Also, rendering with phong shading renders my particles black, i know bobo explained this, its got something to do with the normals, but i still cant setup the proper render.

Piotrek255
03-19-2012, 10:23 PM
A good 3 point lighting usually gives good results but I am guessing it has to do with the density value, you might need more particles in general.its hard to tell with out an image.

i have about 1 milion particles, and it looks more like sand than smoke, i need more of them.

But what buggs me the most is that when i add lights or work in a different mode than "force add", the particles look too sharp, i would like a more soft feel even for the individual particles, right now they look overexposed, like with double sharpen effect. Is density parameter responsible for this or something else?

zoubein
03-19-2012, 10:30 PM
i have about 1 milion particles, and it looks more like sand than smoke, i need more of them.

But what buggs me the most is that when i add lights or work in a different mode than "force add", the particles look too sharp, i would like a more soft feel even for the individual particles, right now they look overexposed, like with double sharpen effect. Is density parameter responsible for this or something else?

Yes you would need a lot more to make it smokey. When you say sharp do you mean you can see the individual particles? if thats the case you definitely need more.

ApaczoS
03-19-2012, 10:54 PM
i have about 1 milion particles(...)


1mln in Krakatoa is nothing:) Here is an example with 30mln particles at highest point(6mln at the beginning):
http://www.youtube.com/watch?v=vc7s2Jh04tk
120gb of cache files in total. So you need much more than a million.

As for the lighting, disable force additive mode and use lighting density with emission instead.
Set density exponent to -2 and a lighting density to 1 with exponent of -2 for starters. Then you can play more with those parameters.

Bobo
03-20-2012, 12:32 AM
Hi,
Sorry if the answer has been posted- but I can't find it if it is. I'm trying to render out a zdepth pass for FumeFx smoke using the Krakatoa zdepth render element. The results look clipped and inverted. Which is the same result i get using Fusionworks z depth without the inversion... What is the correct workflow? Any help appreciated.

Thanks a lot!
Patrick

By default, the Z depth values are stored as Floats in real world units. In other words, if you have a particle that is 123.45 units from the camera, the pixel's RGB value will be [123.45, 123.45, 123.45]. If you check the "Use Depth Range" option, the specified value will be normalized within the range, so if you have the default Min. 0.0 and Max. 1000.0, the same particle will produce RGB of 123.45/1000.0 = [0.12345, 0.12345, 0.12345]. This is similar to how Max saves it, but inverted - Max assigns 1.0 to the closest point and 0.0 to the background.

Your compositing software should be able to deal with either one though... or you could subtract the Normalized depth output of Krakatoa from [1.0,1.0,1.0] to produce the Max flavor.

Bobo
03-20-2012, 12:47 AM
i have about 1 milion particles, and it looks more like sand than smoke, i need more of them.

But what buggs me the most is that when i add lights or work in a different mode than "force add", the particles look too sharp, i would like a more soft feel even for the individual particles, right now they look overexposed, like with double sharpen effect. Is density parameter responsible for this or something else?

As everyone mentioned, one million particles are often not even enough for a preview quality rendering... ;)

Have you looked at the article "Fighting The Grainy Look" here?
http://www.thinkboxsoftware.com/krak-fighting-grainy-look/

Yes, the Density parameter is partly responsible for the result, and the Lighting Pass Density can be used independently to allow more light to penetrate the volume while keeping the particles visible to the camera. The Shadow Parameters > Density control in the Max Light objects is also respected, allowing you to control the lighting pass density per light source. You can also mix a bit of Emission to simulate ambient light.

Regarding Shadows quality, the Shadow Map Size plays a significant role - smaller shadow maps produce smoother shadows. Krakatoa MX 2.0 provides sampling controls in Bilinear Filtering mode that can smooth out shadows similar to the Sampling Range of Shadow Maps in Max, or even smooth the actual particle rendering:
http://www.thinkboxsoftware.com/krak-bilinear-filter-size

Finally, rendering as voxels can produce smoother results with a lot less particles (assuming you are after denser smoke and not wispy smoke). The Voxel Size and esp. Filter Radius play the main role in determining the appearance:
http://www.thinkboxsoftware.com/krak-voxel-rendering/#Changing_the_Voxel_Size

Hope this helps somewhat.

Piotrek255
03-20-2012, 08:16 AM
Thanks a lot guys, now i understand how it works. I guess my head is safe tonight ( :banghead: ) ... :)

NahuelL
03-20-2012, 11:13 PM
Hi,

Is it possible to save Radius channel with particles? I don't see that option in the "Save Particles" rollout.

Thanks
Nahuel

3ak
03-20-2012, 11:16 PM
Hi,

Is it possible to save Radius channel with particles? I don't see that option in the "Save Particles" rollout.

Thanks
Nahuel

If you have it in your actual particle system then just add new custom channel definition (last set of controls in Save Particles rollout)

NahuelL
03-20-2012, 11:25 PM
Thanks for your reply, but it didn't work. I really need to do this because i'm saving several PRT Loaders (with Radius channel set in Magma op) to just 1 PRT Loader. So then I can use that into Frost and check "Use Radius Channel", but it says it wasn't found :(

3ak
03-20-2012, 11:52 PM
Thanks for your reply, but it didn't work. I really need to do this because i'm saving several PRT Loaders (with Radius channel set in Magma op) to just 1 PRT Loader. So then I can use that into Frost and check "Use Radius Channel", but it says it wasn't found :(
Use PDV to see if you actually have this channel in your prt file.
Add "Radius" channel as custom channel (i used 16 bit float). add it through magma mod to your prt loader with some data and use frost on it.

NahuelL
03-21-2012, 04:20 PM
Before saving i checked in PD viewer, but the radius values don't match! (see image)
When I save the PRT Loader, and load it again, I see radius channel now :) But the values don't match to the set in the Magma mod.

3ak
03-21-2012, 04:26 PM
Before saving i checked in PD viewer, but the radius values don't match! (see image)
When I save the PRT Loader, and load it again, I see radius channel now :) But the values don't match to the set in the Magma mod.

no image here.
And let's split problems. If you have radius chanel now try using it with Frost. If so than one problem is solved)
As for channel data mismatch i think 99% (even 100%) your setup is wrong in some place but not seeing anything it's hard to predict.

NahuelL
03-21-2012, 04:48 PM
Sorry, here is the image: http://img811.imageshack.us/img811/6760/radiuskrakatoa.jpg


And let's split problems. If you have radius chanel now try using it with Frost. If so than one problem is solved)

Yes, I can use it now, but it has wrong values.

PatrickH
03-21-2012, 06:59 PM
By default, the Z depth values are stored as Floats in real world units. In other words, if you have a particle that is 123.45 units from the camera, the pixel's RGB value will be [123.45, 123.45, 123.45]. If you check the "Use Depth Range" option, the specified value will be normalized within the range, so if you have the default Min. 0.0 and Max. 1000.0, the same particle will produce RGB of 123.45/1000.0 = [0.12345, 0.12345, 0.12345]. This is similar to how Max saves it, but inverted - Max assigns 1.0 to the closest point and 0.0 to the background.

Your compositing software should be able to deal with either one though... or you could subtract the Normalized depth output of Krakatoa from [1.0,1.0,1.0] to produce the Max flavor.

Thank you Bobo! I am using Depth Range and i think it is actually working as it should but I was confused because the edges of the billows in the smoke are sharp.

Bobo
03-21-2012, 11:46 PM
Thank you Bobo! I am using Depth Range and i think it is actually working as it should but I was confused because the edges of the billows in the smoke are sharp.

The problem is that Z-Depth makes little sense in volumetric rendering. You are getting only the top particles closest to the camera, and anti-aliasing is also not allowed because it would change the meaning of the value (distance to camera). When using Bilinear Filtering, a particle covers 2x2 pixels (or more if using the new feature in Krakatoa MX 2), and 3x3 pixels in Bicubic mode. So a single particle in ZDepth image covers a lot of pixels with the same value, unless you use Nearest Neighbor filtering, but then you would not match exactly the beauty pass...
http://www.thinkboxsoftware.com/krak-particle-rendering-mode/

The real solution is Deep Compositing, which might be coming with OpenEXR 2.0 and studios figuring out how to use Nuke etc. to work with volumetric data.

zoubein
03-23-2012, 09:32 AM
Hey guys I am trying to do this tutorial below, basically I want to select and delete some particles based on their velocity from a PRT loader. He does this thing where he converts the velocity value to scalar. In the new magma flow I cant seem to find this node,how would one do this?
http://www.youtube.com/watch?v=-1MqDVLEtm8&list=UU_PWtfdVjHqMC15Inx8GXKg&index=5&feature=plcp

NahuelL
03-24-2012, 11:27 PM
Hi,

Is it possible to delete specific IDs for the whole sequence of a PRT Loader?
I have a liquid container, and then there is a splash in the center. I want to "pick" the splash IDs, keep them, and delete the other particles. Or maybe create a Box on the splash area and delete the particles outside of it at a specific frame, and when i go to frame 0, those IDs don't exist? The particle count doesn't change.

Thanks
Nahuel

TrexGreg
03-24-2012, 11:48 PM
Hi there...
Seen all these youtube demos with fluid meshes rendered with VRay and Krakatoa foam particles on top, using Velocity/Vorticity to simulate foam color.

I have a couple questions, regarding such a workflow:

1. How is refraction of the Krakatoa generated foam is handled in the VRay's rendered fluid mesh sequences? Since Krakatoa is a sole playing renderer, it seems that this part is impossible, right?

2. Now, the Krakatoa foam is rendered as a layer and composited on top of the Vray rendered layer. How do you render the Krakatoa foam parts that are behind/inside the fluid mesh?
What sort of matte objects Krakatoa can use for masking semi-transparent areas?
Can it use semi-transparent mattes, instead of the common solid ones?

Thanks in advance for any clarifications...
Cheers...

3ak
03-24-2012, 11:57 PM
Hey guys I am trying to do this tutorial below, basically I want to select and delete some particles based on their velocity from a PRT loader. He does this thing where he converts the velocity value to scalar. In the new magma flow I cant seem to find this node,how would one do this?
http://www.youtube.com/watch?v=-1MqDVLEtm8&list=UU_PWtfdVjHqMC15Inx8GXKg&index=5&feature=plcp

http://my.jetscreenshot.com/11355/m_20120324-dxek-10kb.jpg (http://my.jetscreenshot.com/11355/20120324-dxek-10kb)

JohnnyRandom
03-25-2012, 12:20 AM
Hi,

Is it possible to delete specific IDs for the whole sequence of a PRT Loader?
I have a liquid container, and then there is a splash in the center. I want to "pick" the splash IDs, keep them, and delete the other particles. Or maybe create a Box on the splash area and delete the particles outside of it at a specific frame, and when i go to frame 0, those IDs don't exist? The particle count doesn't change.

Thanks
Nahuel

You can cull them the old way with some geo and the prt loader or the new way with a magma and the new inVolume node. Both use the selection channel and a Krakatoa delete, then just recache. As a general rule I treat ID's as inconsistent frame by frame, depending on how they were created, of course.

3ak
03-25-2012, 12:46 AM
Hi,

Is it possible to delete specific IDs for the whole sequence of a PRT Loader?
I have a liquid container, and then there is a splash in the center. I want to "pick" the splash IDs, keep them, and delete the other particles. Or maybe create a Box on the splash area and delete the particles outside of it at a specific frame, and when i go to frame 0, those IDs don't exist? The particle count doesn't change.

Thanks
Nahuel

Yes. I think it's possible) I don't like InMesh (inVolume) way of doing cause sometimes it's hard to catch all those particles through all the sequence. Instead i'd go with a little scripting: create PRT Loader with one frame, kill all unwanted particles. Then store remaining particles in bitarray (1 - alive, 0 - dead). Load Sequence in Prt Loader an loop through all frames and check if particle ID from the prt loader is set in you bit array. If it's not just don't write it back to PRT file.

OR. You can use a bit of magma mod) Load one frame in PRT Loader, delete all particles you don't need, save ID in any part of Position Channel (let it be X).Let's name this Loader "A". Load all the sequence in another PRT Loader ("B"). Store particle Position in new channel and overwrite any part of Position with ID channel. The trick is to convert particles to ID-space and then just find for every particle in B nearest particle in A and check if they have the same ID. If so rewrite Position for particle in B with initial data, otherwise set Selection channel to 1.0 for example and then delete it with Delete mod.


p.s. It's possible that your IDs are not unique if you're using realflow cause every emitter has its particle's ID starts from 0)

p.p.s. Bobo, wish you will change operators like "nearest particle" to have dropdown box to choose channel to operate.

NahuelL
03-25-2012, 12:46 AM
You can cull them the old way with some geo and the prt loader or the new way with a magma and the new inVolume node. Both use the selection channel and a Krakatoa delete, then just recache. As a general rule I treat ID's as inconsistent frame by frame, depending on how they were created, of course.

Thanks for your reply. Culling them doesn't work. Because the count would change (when the splash particles go up and fall). I would like to delete the particles i want at a specific frame and keep that for the whole sequence.

Thanks
Nahuel

NahuelL
03-25-2012, 12:51 AM
Yes. I think it's possible) I don't like InMesh (inVolume) way of doing cause sometimes it's hard to catch all those particles through all the sequence. Instead i'd go with a little scripting: create PRT Loader with one frame, kill all unwanted particles. Then store remaining particles in bitarray (1 - alive, 0 - dead). Load Sequence in Prt Loader an loop through all frames and check if particle ID from the prt loader is set in you bit array. If it's not just don't write it back to PRT file.

OR. You can use a bit of magma mod) Load one frame in PRT Loader, delete all particles you don't need, save ID in any part of Position Channel (let it be X).Let's name this Loader "A". Load all the sequence in another PRT Loader ("B"). Store particle Position in new channel and overwrite any part of Position with ID channel. The trick is to convert particles to ID-space and then just find for every particle in B nearest particle in A and check if they have the same ID. If so rewrite Position for particle in B with initial data, otherwise set Selection channel to 1.0 for example and then delete it with Delete mod.


p.s. It's possible that your IDs are not unique if you're using realflow cause every emitter has its particle's ID starts from 0)

p.p.s. Bobo, wish you could change operators like "nearest particle" to have dropdown box to choose channel to operate.

Thank you very much! I will try that :)

NahuelL
03-25-2012, 01:40 AM
Then store remaining particles in bitarray (1 - alive, 0 - dead).

How can I store the dead particles?
for i = 1 to pcount do
(
)

pcount would be alive particles.

3ak
03-25-2012, 04:35 PM
How can I store the dead particles?
for i = 1 to pcount do
(
)

pcount would be alive particles.

I did magma mod case:
1) Magma mod of the A prt loader (one frame with only particles we need):
http://my.jetscreenshot.com/11355/m_20120325-n593-76kb.jpg (http://my.jetscreenshot.com/11355/20120325-n593-76kb)

2) Store pos of B particles (sequence you want to modify) in new channel - i chose Acceleration. Change pos.
http://my.jetscreenshot.com/11355/m_20120325-opi6-40kb.jpg (http://my.jetscreenshot.com/11355/20120325-opi6-40kb)

3) Find particles that match IDs (first 6 in my case)
http://my.jetscreenshot.com/11355/m_20120325-mavq-104kb.jpg (http://my.jetscreenshot.com/11355/20120325-mavq-104kb)

4) Restore pos:http://my.jetscreenshot.com/11355/m_20120325-knzj-18kb.jpg (http://my.jetscreenshot.com/11355/20120325-knzj-18kb)


I didn't delete the particles, just recolor them - here is final result. first 6 particles by ID are red:
http://my.jetscreenshot.com/11355/m_20120325-marn-41kb.jpg (http://my.jetscreenshot.com/11355/20120325-marn-41kb)

(red particles in the origin are from A loader.)

Hope this will help.

NahuelL
03-25-2012, 06:54 PM
Thank you very much! Works like charm :)

TrexGreg
03-25-2012, 07:50 PM
So...
Any info/tips about my questions here?
http://forums.cgsociety.org/showpost.php?p=7278772&postcount=1684

Thanks....

Bobo
03-26-2012, 05:37 PM
Hi there...
Seen all these youtube demos with fluid meshes rendered with VRay and Krakatoa foam particles on top, using Velocity/Vorticity to simulate foam color.

I have a couple questions, regarding such a workflow:

1. How is refraction of the Krakatoa generated foam is handled in the VRay's rendered fluid mesh sequences? Since Krakatoa is a sole playing renderer, it seems that this part is impossible, right?

Krakatoa MX 2 provides an Atmospheric effect which performs ray marching through voxels. Most examples you have seen in the past were done with just particles and of course you could not refract that with VRay, although it could be sort of faked in post I assume.
The following example shows the new approach at the end (the rest is not exactly relevant to your question assuming you have enough particles in the RealFlow sim already):
http://www.thinkboxsoftware.com/krakatoa-realflow-and-frost

2. Now, the Krakatoa foam is rendered as a layer and composited on top of the Vray rendered layer. How do you render the Krakatoa foam parts that are behind/inside the fluid mesh?
What sort of matte objects Krakatoa can use for masking semi-transparent areas?
Can it use semi-transparent mattes, instead of the common solid ones?

Krakatoa Mattes allow the separation of particles into Background and Foreground. If a particle is fully or partially occluded by a matte object, it is relegated to the Background image layer. As result, you get two images where the Foreground contains all particles that are NOT occluded at all, and the background contains all others. They can be used to "sandwich" the beauty render and use its Alpha to reveal particles behind the rendering, while the foreground particles are layered on top.

This mode is enabled via the [>Save Multiple Layers] option which adds a Krakatoa OccludedLayer Render Element to the render dialog.

If the matte object has an opacity map, if a particle is seen behind an object but through texels with opacity of 0, it will be included in the Foreground. This works best with simple Standard materials, since Krakatoa has to evaluate the material and cannot support all renderers' shaders out there. So you can create openings in the mesh by using simple black and white textures to show particles through.


But obviously this does not solve the problem when there are multiple layers of occlusion and multiple semi-transparent objects behind each other in the middle of the particle cloud.
In that case, the Atmopsheric effect would be a much better solution.

Our hope is to solve all this via Deep Compositing data some day when DC becomes mainstream and the involved parties figure out the standards.

Hope this helps.

Bobo
03-26-2012, 05:52 PM
Hey guys I am trying to do this tutorial below, basically I want to select and delete some particles based on their velocity from a PRT loader. He does this thing where he converts the velocity value to scalar. In the new magma flow I cant seem to find this node,how would one do this?
http://www.youtube.com/watch?v=-1MqDVLEtm8&list=UU_PWtfdVjHqMC15Inx8GXKg&index=5&feature=plcp

The ToScalar operator of Magma 1.x was replaced by Breakout in Magma 2.0. The ToScalar required two inputs - the Vector, and an Integer pointing at the component. Since Magma 2 now allows for multiple output sockets, we decided to simplify the workflow by taking just one input (the vector) and providing 3 output sockets (X,Y,Z) you can connect to directly. So if you want just the X of a Vector, use Breakout and connect the first output to the next operator.

If you want to expose the Component selector to the UI so the user can pick between X, Y and Z, you just have to add a Mux operator behind the Breakout, set it to 4 inputs and connect the X,Y and Z to the first 3 inputs, then connect and Integer InputValue to the 4th socket and expose it to the UI.

The Magnitude gives you the length of the vector which reflects all 3 components.

TrexGreg
03-26-2012, 06:22 PM
Krakatoa Mattes allow the separation of particles into Background and Foreground. If a particle is fully or partially occluded by a matte object, it is relegated to the Background image layer. As result, you get two images where the Foreground contains all particles that are NOT occluded at all, and the background contains all others. They can be used to "sandwich" the beauty render and use its Alpha to reveal particles behind the rendering, while the foreground particles are layered on top. This mode is enabled via the [>Save Multiple Layers] option which adds a Krakatoa Occluded Layer Render Element to the render dialog.

If the matte object has an opacity map, if a particle is seen behind an object but through texels with opacity of 0, it will be included in the Foreground. This works best with simple Standard materials, since Krakatoa has to evaluate the material and cannot support all renderers' shaders out there. So you can create openings in the mesh by using simple black and white textures to show particles through.

So, the Background layer particles are not taking consideration of the matte's alpha intensities, which in the case of a clear water surface, would have various levels of transparency and it's up to the compositing process to mix the two with a simple blend factor using a b/w transparency pass and maybe a refract node to fake refractions. If that's the case, that's not bad at all and could go a long way...

But obviously this does not solve the problem when there are multiple layers of occlusion and multiple semi-transparent objects behind each other in the middle of the particle cloud. In that case, the Atmopsheric effect would be a much better solution.

I'll check that tut to see what this Atmosphere effect can do, thanks...

Our hope is to solve all this via Deep Compositing data some day when DC becomes mainstream and the involved parties figure out the standards.

Fusion, which is what i'm using for compositing, is coming along nicely with some new DC nodes. This can only get better, i suppose...

Hope this helps.
Yes, thank you very much for the insight. I really appreciate it...

Cheers,
T.Rex

TrexGreg
03-26-2012, 07:19 PM
But obviously this does not solve the problem when there are multiple layers of occlusion and multiple semi-transparent objects behind each other in the middle of the particle cloud. In that case, the Atmopsheric effect would be a much better solution.

Hey, the Atmospheric effect seems to be quite a remedy here!
Is there any difference rendering particles using Vray with Atmospheric effect, or with Krakatoa only?
Are there any caveats?

Thanks!

Edit: Never mind, saw it in the manual!

PatrickH
03-26-2012, 08:43 PM
Is there some way for Krakatoa to output a normal map in tangent space instead of world space from a PRT FumeFx?
Thanks,
Patrick

Bobo
03-26-2012, 09:41 PM
Is there some way for Krakatoa to output a normal map in tangent space instead of world space from a PRT FumeFx?
Thanks,
Patrick

You could perform the necessary calculations in a Custom Render Element via Magma, assuming you have enough data channels (Normals, Tangents) to do so...

Drunik
04-23-2012, 02:01 PM
DELETED
..................

adom86
04-24-2012, 08:53 AM
Hey guys

I am bringing a sim from Naiad and it only has an age channel (I am wanting to perform density by age). Hristo mentioned I could divide and clamp a second age input but I'm not sure I got it right... could anyone have a quick look :)

http://s16.postimage.org/x684j92qd/dens_age.jpg

Regards

3ak
04-24-2012, 09:14 AM
Hey guys

I am bringing a sim from Naiad and it only has an age channel (I am wanting to perform density by age). Hristo mentioned I could divide and clamp a second age input but I'm not sure I got it right... could anyone have a quick look :)

http://s16.postimage.org/x684j92qd/dens_age.jpg

Regards

if you need to decrease density with age then just normalize and clamp age channel (= nca) and then use curve node or something like (1 - nca) or (1 - sqr(nca)) for more curved change in density.

adom86
04-24-2012, 03:29 PM
thanks 3ak think I sorted it now :) One more question, I'm assuming theres not much that can be done to help flickering when rendering in voxel mode. I normally stay away from voxel rendering but it suits my scene in this instance. Just a slight flicke :(

zoubein
05-11-2012, 01:39 PM
Hi guys,

I know this has been asked before but I havent been able to solve it with those methods. Basically I am saving out a pflow as a PRT to use in a Frost, When I load the particles in Frost it says that there is no radius channel. There is a sphere shape in the pfflow. I tried adding a custom channel, and that is outputting the Radius at 0 so I am not sure I am doing it right.

Thanks

3ak
05-11-2012, 02:19 PM
Hi guys,

I know this has been asked before but I havent been able to solve it with those methods. Basically I am saving out a pflow as a PRT to use in a Frost, When I load the particles in Frost it says that there is no radius channel. There is a sphere shape in the pfflow. I tried adding a custom channel, and that is outputting the Radius at 0 so I am not sure I am doing it right.

Thanks

You don't need custom channel. frost reads shape size and scale op to use as radius (radius = 1/2 size afaik). so if you have 20 as shape size and scale op = 110% you will have 11 as Radius in Frost (20/2 * 1.1)

zoubein
05-11-2012, 02:26 PM
Thats what I thought as thats what says in the help. but when I save my PFLOW as PRT, Frost says no radius channel found.

JohnnyRandom
05-11-2012, 02:52 PM
If you write to PRT you need to create a radius channel either in pflow or KCM to use with frost.

If you use just pflow in frost THEN it will natively read the particle size as radius.

zoubein
05-11-2012, 03:10 PM
Right, it works straight from Pflow to Frost. But I want to use a PRT to retime it and I would like to keep radius values that are currently in the Pflow. How would I save out a radius from pflow? I have a shape in their already I thought that would be enough.

JohnnyRandom
05-11-2012, 03:32 PM
So the easiest way is to write the particle size in pflow out to the MXS float channel via script or from box#3, then when you write PRT to sequence you save out the MXS float channel.

Box#3 flow would look like:
Input Standard | New In Event --> [bool of] Input Standard | Size Average (scale adjusted if using variation) -> Output Standard | Script Float

Script op would be something like, note that size average is oddly enough scale average multiplied by 10

on Proceed pCont do
(
count = pCont.NumParticles()

for i in 1 to count do
(
pCont.particleIndex = i
pCont.particleFloat = (pCont.getParticleScale i)*10
)
)



Use the MXS float in a KCM and pipe it to the radius channel for frost :)

EDIT: In before Bobo FTW :D Unless he shows me up with a much more eloquent way :)

Bobo
05-11-2012, 04:33 PM
Right, it works straight from Pflow to Frost. But I want to use a PRT to retime it and I would like to keep radius values that are currently in the Pflow. How would I save out a radius from pflow? I have a shape in their already I thought that would be enough.

This is a bit tricky, but it is doable.

When you pick a PF Source, Frost takes the ScaleXYZ channel's Maximum value and multiplies it by half the Size value to use as the "Radius". For example, if you have a Shape operator with Size of 10.0 and Scale is [3.0,3.0,3.0] (300%), Frost will use a Radius of 10.0/2 * 3.0 = 15.0. This is because the PFlow UI exposes the Size as a kind of "Diameter" and not as a "Radius" equivalent.

But when you save to PRT, even if you have included the the Scale channel for saving, you are unable to save the Size channel at this point (I will log it as a Krakatoa bug, unless I am missing something).

So the way to work around this is to use a constant Size in your PFlow and use only the Scale channel to manipulate the particle size. This is the only way anyway if using Shape Instance.
*When saving your PRTs, include the Scale channel as output (and the Orientation would be useful too) - Position, Velocity, ID, Orientation, Scale
*Load the PRT files in a PRT Loader and add a Magma modifier to the stack.
*Set the Output to the Radius channel (float16[1]).
*Set the Input to Scale, and assuming the Scale was Uniform (X,Y and Z are the same), add a Convert>Breakout operator and wire the X output to the Radius Output.
*Enable "Use Radius Channel" in Frost
*Switch Frost to Geometry > Custom and pick the same mesh as in Shape Instance (assuming you used a single shape)
*Set the "Use Orientation Channel" under Orientation.

At this point, the size of your Frost meshes should match the PFlow.

zoubein
05-11-2012, 04:35 PM
Thanks man, but I couldn't make it work. I'll have a go tomorrow. I dont have box 3 so I tried the script method.

Bobo
05-11-2012, 04:41 PM
Please note that we consider this behaviour of Frost a BUG and will make it use the Scale channel's Max. value * 0.5 by default when a PRT file only contains a Scale channel and no Size.
We will also look at why you cannot save the Size channel out of PFlow.

JohnnyRandom
05-11-2012, 05:26 PM
Don't forget to set the "use" channels in the script op. I would guess to say that is why it failed.

here is the whole script:

on ChannelsUsed pCont do
(
pCont.useScale = true
pCont.useFloat = true
)

on Init pCont do
(

)

on Proceed pCont do
(
count = pCont.NumParticles()

for i in 1 to count do
(
pCont.particleIndex = i
pCont.particleFloat = (pCont.getParticleScale i)*10
)
)

on Release pCont do
(

)



Bobo, a radius maniplator! nice touch :)

zoubein
05-15-2012, 09:16 AM
@JohnnyRandom, @Bobo

Thanks guys both methods work great. With Bobos method for some reason when I used the blobby meshing methods I had to slightly adjust the size of the blobs to get it to match, but then after all the variations and postions all match up :thumbsup:

Bobo
05-15-2012, 06:57 PM
@JohnnyRandom, @Bobo

Thanks guys both methods work great. With Bobos method for some reason when I used the blobby meshing methods I had to slightly adjust the size of the blobs to get it to match, but then after all the variations and postions all match up :thumbsup:

When using Metaballs meshing, the Radius defines the sphere of influence of the particle, but the surface does not pass necessarily at the radius distance - there are additional controls in Frost that both scale the Radii internally and shift the location of the surface within the resulting field. The Radius Scale (default 1.5) and the Surface Level (default 0.3) both affect where the mesh really is...

boumay
05-19-2012, 03:20 PM
Hello,
I've been wondering since a while how to convert a PRT volume (created from an object) into a particle system usable in particle flow so I can apply to it all kind of effects than we can achieve with native pflow; here my goal is to disperse and disintegrate the PRT with wind etc. I know it can sound simple for advanced users but I didn't find this information in the documentation yet, not on the web.

Glacierise
05-19-2012, 03:45 PM
You can use the PRT Birth op in PFlow to connect particle birth to a PRT node.

boumay
05-19-2012, 03:52 PM
Thank you very much for your help, I'll surely practice this.

Bobo
05-20-2012, 08:17 AM
Hello,
I've been wondering since a while how to convert a PRT volume (created from an object) into a particle system usable in particle flow so I can apply to it all kind of effects than we can achieve with native pflow; here my goal is to disperse and disintegrate the PRT with wind etc. I know it can sound simple for advanced users but I didn't find this information in the documentation yet, not on the web.

A PRT Volume cannot be picked as a source in PFlow (yet), but you can save a PRT Volume as PRT file, then load it with a PRT Loader and pick that in a Krakatoa PRT Birth.

Note that this is useful only as an INITIAL particle cloud, if the PRT Volume is animated and the particle count changes, it won't work very well with PFlow and Krakatoa PRT Update. The PRT Volume does not produce an ID channel.

I have logged several wishes regarding this which would make it possible to use a "live" PRT Volume in PFlow including animation, but they will have to wait until Krakatoa MX 3.0 I guess...

boumay
05-20-2012, 11:10 AM
Ok, noted. Thank you

xplodeworkshop
06-10-2012, 12:43 PM
hello guys.. i m doing some effect in fume fx and want to render in krakatoa..i m having
problem with renders, i m deflecting the particles with object which is in the scene. and its happening well. But wen i see the renders in krakatoa then particles get stuck there, so that looks weird ,so please tell me what should i do.! i m using speed in fumefx birth. before caching but it also doesnt work..Please help me out..
Thanks

3ak
06-16-2012, 03:04 PM
Hi.
Have problem understanding ParticleSumRadius node.
1) How to get rid of weight in sum? Is it possible to get just sum of channel values of all particles within radius?
2) Is it working with Int channels? I get 0 90% of time.
3) I've made a simple sequence, where particles have int channel with 1 or 2 in it as value.
I created PRTLoader1 and loaded this sequence
Created PRTLoader2, aligned with PRTLoader1 and loaded the same sequence.
Added tmagma mod to prtloader1 and import particles from second prt to use in ParticleSumRadius node with radius == 1 and weightfaloff ==1 (linear dependency afaik), feeding in position channel of the first prt. I assumed that for every position i should find at least one particle (cause sequences are the same). But i was wrong.

Here is example numbers:
Found count == 1
TotalWeight == 0.9276
ChannelSumValue == 4.636
How sum can be so high if it is only one particle (and channel's value i added to sum is only 1 or 2), and why weight is not 1?


Thanks in advance.

boumay
06-17-2012, 01:59 PM
Hello everyone,
I wanted to understand why krakatoa is getting this error and stops rendering. It happens around approx. the same frame 60 (59, sometimes 61, etc), and I tried to bake the particles in a prt but same error. I thought it was the excessive number of particles in pflow (400 millions), but I reduced it without success.
And once this error occurred one time, krakatoa is unable to render and gets this error everytime I try to render a frame (even a different one).
Does anyone has an idea of the problem?
Thank you.

bilor
06-17-2012, 04:43 PM
hi,
Im not sure if the follow questions is posted also and before.
How its possible to have reflections from a prt loader to the surface of a matte object ?

Bobo
06-17-2012, 05:34 PM
Hello everyone,
I wanted to understand why krakatoa is getting this error and stops rendering.

This should theoretically never happen with the 64 bit version of Krakatoa - running out of memory should simply trigger swapping to disk which makes rendering impossibly slow, but should not cause an allocation error.

We might need some more details - which versions of Windows, Max and Krakatoa are you using? How much memory do you have and how much is being used for the rendering?
(400MP would require around 10GB of RAM in the typical case, or more if more channels are enabled.) Does it happen in one particular scene or in different ones? What else is in the scene (e.g materials assigned, matte objects used etc.)

Of course, this could be an allocation error caused by PFlow itself. Not that PFlow can actually generate 400MP in one go anyway. When you say you get the same error when saving the PFlow to PRT, do you mean it crashes WHILE saving, or when loading the PRT files in a PRT Loader and rendering them in Krakatoa? If it is the former, then you are having PFlow causing the allocation error, not Krakatoa. When saving particles, Krakatoa does NOT use any significant amount of memory, it just asks PFlow to update (which can use a lot of memory), but Krakatoa just dumps the particles to disk without loading them into memory once again.

So if you are getting the allocation error while saving to disk, it is PFlow to blame. Consider processing the PFlow as multiple Partitions, e.g. 100 partitions of 4 million particles or something like that.

Bobo
06-17-2012, 05:39 PM
hi,
Im not sure if the follow questions is posted also and before.
How its possible to have reflections from a prt loader to the surface of a matte object ?

In Krakatoa MX 2, you can use the Krakatoa Atmospheric Effect (unfortunately not available in Evaluation mode) to render your particles on a grid and make them interact with reflections and refractions.

See http://www.thinkboxsoftware.com/krak-using-atmospheric-effect and particularly the "Raytraced Reflections" section. You could save a Reflection render element to get just the reflection component of the image saved. Note that this works with Scanline, VRay, finalRender and Brazil r/s, but NOT with mental ray.

bilor
06-17-2012, 06:20 PM
In Krakatoa MX 2, you can use the Krakatoa Atmospheric Effect (unfortunately not available in Evaluation mode) to render your particles on a grid and make them interact with reflections and refractions.

See http://www.thinkboxsoftware.com/krak-using-atmospheric-effect and particularly the "Raytraced Reflections" section. You could save a Reflection render element to get just the reflection component of the image saved. Note that this works with Scanline, VRay, finalRender and Brazil r/s, but NOT with mental ray.


thanks a lot Bobo, I'll check it.

jigu
06-18-2012, 05:49 AM
In Krakatoa MX 2, you can use the Krakatoa Atmospheric Effect (unfortunately not available in Evaluation mode) to render your particles on a grid and make them interact with reflections and refractions.

See http://www.thinkboxsoftware.com/krak-using-atmospheric-effect and particularly the "Raytraced Reflections" section. You could save a Reflection render element to get just the reflection component of the image saved. Note that this works with Scanline, VRay, finalRender and Brazil r/s, but NOT with mental ray.

Bobo, Isn't it possible to have this work with mentalray too? I mean fumefx is possible to render with mentalray too, then why is krak atmospheric not supported with mentalray?

Bobo
06-18-2012, 07:48 AM
Bobo, Isn't it possible to have this work with mentalray too? I mean fumefx is possible to render with mentalray too, then why is krak atmospheric not supported with mentalray?

The legend says Kreso and Master Zap were locked in a room until it happened ;)
The problem is that for mental ray, the developer of the volumetric effect has to re-implement it as a mental ray volume shader, while when written for Scanline, it automatically works with V-Ray, finalRender and Brazil r/s.
So we went for the low-hanging fruit.
We are not excluding the possibility for a mental ray version in the future, but FumeFX 1.x did not support mental ray either, it came later, right?

3ak
06-18-2012, 08:00 AM
Have another auestion here:
I have two identical PRT Loaders - prt1 and prt2.
I use prt2 as look up particles in ParticleSumRadius node in prt1 magma mod.
But it seems that this node works only if prt is enabled for rendering. And in this case when i want to save my sequence i have to save twice as much particles.

Is it possible to let ParticleSumRadius work + save only prt1 sequence?

Thanks

Bobo
06-18-2012, 08:25 AM
Have another auestion here:
I have two identical PRT Loaders - prt1 and prt2.
I use prt2 as look up particles in ParticleSumRadius node in prt1 magma mod.
But it seems that this node works only if prt is enabled for rendering. And in this case when i want to save my sequence i have to save twice as much particles.

Is it possible to let ParticleSumRadius work + save only prt1 sequence?

Thanks

Keep the prt2 renderable and simply hide it. prt1 will be saved and will still be able to sample the hidden loader.

I will send you a more complete answer to your other question once I have discussed it with the developer. In the mean time, to get the total sum, simply set the Falloff to a very high number like 10000.0 and your Sum will contain all values without Weights. To get the real unweighted average, divide that Sum by the NumParticles output.

Also never forget to convert your Position input to World Space when feeding into the Lookup Point, otherwise your sampling would be wrong unless both PRT Loaders are aligned to the world origin.

3ak
06-18-2012, 09:03 AM
Keep the prt2 renderable and simply hide it. prt1 will be saved and will still be able to sample the hidden loader.

I will send you a more complete answer to your other question once I have discussed it with the developer. In the mean time, to get the total sum, simply set the Falloff to a very high number like 10000.0 and your Sum will contain all values without Weights. To get the real unweighted average, divide that Sum by the NumParticles output.

Also never forget to convert your Position input to World Space when feeding into the Lookup Point, otherwise your sampling would be wrong unless both PRT Loaders are aligned to the world origin.

Thanks!

Will try to hide prt.
As for sum: NumParticles * ChannelSum / TotalWeight seems to work.

I'm curious why its not possible to use the same particles to query them, only copy?
And hope you'll add Radius as input in future versions)

jigu
06-18-2012, 09:48 AM
The legend says Kreso and Master Zap were locked in a room until it happened ;)
The problem is that for mental ray, the developer of the volumetric effect has to re-implement it as a mental ray volume shader, while when written for Scanline, it automatically works with V-Ray, finalRender and Brazil r/s.
So we went for the low-hanging fruit.
We are not excluding the possibility for a mental ray version in the future, but FumeFX 1.x did not support mental ray either, it came later, right?

Thanks Bobo for reply! Yes, later version of fumefx supported it. I look forward to future versions with possibility of support for mentalray :)

boumay
06-18-2012, 02:01 PM
This should theoretically never happen with the 64 bit version of Krakatoa - running out of memory should simply trigger swapping to disk which makes rendering impossibly slow, but should not cause an allocation error.

We might need some more details - which versions of Windows, Max and Krakatoa are you using? How much memory do you have and how much is being used for the rendering?
(400MP would require around 10GB of RAM in the typical case, or more if more channels are enabled.) Does it happen in one particular scene or in different ones? What else is in the scene (e.g materials assigned, matte objects used etc.)

Of course, this could be an allocation error caused by PFlow itself. Not that PFlow can actually generate 400MP in one go anyway. When you say you get the same error when saving the PFlow to PRT, do you mean it crashes WHILE saving, or when loading the PRT files in a PRT Loader and rendering them in Krakatoa? If it is the former, then you are having PFlow causing the allocation error, not Krakatoa. When saving particles, Krakatoa does NOT use any significant amount of memory, it just asks PFlow to update (which can use a lot of memory), but Krakatoa just dumps the particles to disk without loading them into memory once again.

So if you are getting the allocation error while saving to disk, it is PFlow to blame. Consider processing the PFlow as multiple Partitions, e.g. 100 partitions of 4 million particles or something like that.

Thank you for answering.
I understood now that so much memory is needed for krakatoa. have actually 48gb of ram but I had a compositing app running at the same time also, so it was that. I closed it and krakatoa rendered.

boumay
06-18-2012, 02:56 PM
Well, really have hard time with krakatoa, but I won't give up if God wills...
This time, and I feel a little confused asking this but, how do we assign a texture to a prt loader? I assigned manually via material editor but my particles still render black (seeable in alpha). I didn't forget to have a spot illuminating the scene.
Even by adding a kcm and making the simplest flow (input vector with a specified color, and output: color), the particles don't render.
When I saved the particles, I only selected position, velocity and color channels to be saved. Did I forgot a crucial channel? thought it could always be possible to repair any forgotten channel with kcm...
In pflow mode they render.
I did search in the doc and the web without success.
Thank you again.

Bobo
06-18-2012, 08:25 PM
Well, really have hard time with krakatoa, but I won't give up if God wills...
This time, and I feel a little confused asking this but, how do we assign a texture to a prt loader? I assigned manually via material editor but my particles still render black (seeable in alpha). I didn't forget to have a spot illuminating the scene.
Even by adding a kcm and making the simplest flow (input vector with a specified color, and output: color), the particles don't render.
When I saved the particles, I only selected position, velocity and color channels to be saved. Did I forgot a crucial channel? thought it could always be possible to repair any forgotten channel with kcm...
In pflow mode they render.
I did search in the doc and the web without success.
Thank you again.

Don't worry, Krakatoa is large and deep and even I don't know everything about it ;)
When saving the Color channel from PFlow, I would expect the PRT Loader to show you the Color assigned in the PFlow Display operator.
When you assign a Material to the PRT Loader, some of its channels will be used to evaluate particle channels. But keep in mind we don't support ALL materials, just some. So if you assign, say, a VRay or finalRender or mental ray material, you will get black for sure.

Start by assigning a Standard material. From a Standard Material, we use:
*Diffuse Color / Map - this evaluates as the Color channel
*Self-Illumination Color / Map - this evaluates as the Emission channel
*Opacity value / Map - this evaluates as a Density Multiplier (the value is multiplied by the incoming Density channel instead of overwriting it)
*Filter Color / Map - this evaluates as the inverse of the Absorption channel.
*Specular Level value / Map - this evaluates as the Phong Surface SpecularLevel value
*Glossiness value / Map - this evaluates as the Phong Surface SpecularPower value
http://www.thinkboxsoftware.com/krak-supported-materials/

If you assign a Procedural 3D Map to any of these supported channels, Krakatoa will evaluate the data in the specified object or world space.

If you try to use a 2D Map (like Bitmap Texture) using Explicit Mapping Coordinates, you MUST provide a Mapping channel in your particles. PFlow has Mapping operators to assign mapping coordinates to particles, and KCMs can be used to acquire from geometry or set mapping coordinates in various ways, but this is a bit more advanced.

So at this point I would suspect that you assigned a non-supported Material (e.g a VRay material) to your PRT Loader, and possibly tried to use a 2D texture without TextureCoord channel.

Please let me know if this answers your question / solves your problem.

Bobo
06-18-2012, 08:31 PM
Thanks!

Will try to hide prt.
As for sum: NumParticles * ChannelSum / TotalWeight seems to work.

I'm curious why its not possible to use the same particles to query them, only copy?
And hope you'll add Radius as input in future versions)

First of all, we found a bug in the code, but I am not sure it had any effect on your data. Basically, if you add more than 1 sample channel, the Weigth value becomes scaled. So with 3 Sum channels in addition to the NumParticles and TotalWeight, you will get a Weight of 3.0 instead of 1.0 when sampling even 1 particle. Thus dividing by the TotalWeight was producing incorrect weighted results when sampling multiple channels at once. This will be fixed in the next build.

There was a technical issue allowing a Magma modifier to read particles from its own stack. We want to make this possible eventually, but for now it is not possible. We were able to solve this in Genome, giving the user access to the current mesh on the stack without copying. Stay tuned.

I will update the docs of these operators to explain how the Weighting works and how to work around in the cases you mentioned. It might be even in next week's Webinar ;)

3ak
06-18-2012, 08:59 PM
First of all, we found a bug in the code, but I am not sure it had any effect on your data. Basically, if you add more than 1 sample channel, the Weigth value becomes scaled. So with 3 Sum channels in addition to the NumParticles and TotalWeight, you will get a Weight of 3.0 instead of 1.0 when sampling even 1 particle. Thus dividing by the TotalWeight was producing incorrect weighted results when sampling multiple channels at once. This will be fixed in the next build.

There was a technical issue allowing a Magma modifier to read particles from its own stack. We want to make this possible eventually, but for now it is not possible. We were able to solve this in Genome, giving the user access to the current mesh on the stack without copying. Stay tuned.

I will update the docs of these operators to explain how the Weighting works and how to work around in the cases you mentioned. It might be even in next week's Webinar ;)

It is nice you mentioned bug in the weight. I encountered a problem (got strange average) but after several resetups i've got right result and thought i was wrong. Now i know what's going on.
Thanks.

will try to attend webinar)

boumay
06-19-2012, 08:16 AM
Don't worry, Krakatoa is large and deep and even I don't know everything about it ;)
When saving the Color channel from PFlow, I would expect the PRT Loader to show you the Color assigned in the PFlow Display operator.
When you assign a Material to the PRT Loader, some of its channels will be used to evaluate particle channels. But keep in mind we don't support ALL materials, just some. So if you assign, say, a VRay or finalRender or mental ray material, you will get black for sure.

Start by assigning a Standard material. From a Standard Material, we use:
*Diffuse Color / Map - this evaluates as the Color channel
*Self-Illumination Color / Map - this evaluates as the Emission channel
*Opacity value / Map - this evaluates as a Density Multiplier (the value is multiplied by the incoming Density channel instead of overwriting it)
*Filter Color / Map - this evaluates as the inverse of the Absorption channel.
*Specular Level value / Map - this evaluates as the Phong Surface SpecularLevel value
*Glossiness value / Map - this evaluates as the Phong Surface SpecularPower value
http://www.thinkboxsoftware.com/krak-supported-materials/

If you assign a Procedural 3D Map to any of these supported channels, Krakatoa will evaluate the data in the specified object or world space.

If you try to use a 2D Map (like Bitmap Texture) using Explicit Mapping Coordinates, you MUST provide a Mapping channel in your particles. PFlow has Mapping operators to assign mapping coordinates to particles, and KCMs can be used to acquire from geometry or set mapping coordinates in various ways, but this is a bit more advanced.

So at this point I would suspect that you assigned a non-supported Material (e.g a VRay material) to your PRT Loader, and possibly tried to use a 2D texture without TextureCoord channel.

Please let me know if this answers your question / solves your problem.


Well, thank you very much for this detailled answer. I did appreciate it.
And I also want to say that it has been very useful and I learned a lot about materials in krakatoa.
As for my problem, it was still rendering black (I realized that even pFlow mode was!), it appears that I got lost in pFlow and made so much changes (especially in material operators) I didn't control and it got messed up. I was using a standart blinn material.
So I loaded a fresh new pflow preset and it rendered fine (pflow and krakatoa mode).
Anyway, your advices and clarifications are still that useful.
Thank you again.

SHRIF
06-26-2012, 08:04 PM
sorry if my question some how is sealy
but am using krakatoa 2 and am trying to load a sequence of PRT files
its 1000 file
Why I have to add them to the loader one by one ??
Why I can't pick them all at once ??
is there's a way i miss ??

JohnnyRandom
06-26-2012, 08:50 PM
It should work the same as loading any sequence in any other plugin or sofware, you pick the first file of the sequence.

Although I do remember a fileName issue from quite some time ago. What version of Krakatoa are you using 1.6 or less?

Is it a realflow .bin sequence?

Can you list the first fileName?

SHRIF
06-26-2012, 09:18 PM
am using krakatoa 2 the last version
the file name is "" Particle-Liquid.0001.prt ""
its sequence coming from naiad
really its big noising i took tow hours just to load 300 frame
sure there's something wrong but i can't figure it out

JohnnyRandom
06-26-2012, 09:48 PM
Sorry I haven't used naiad sequences yet :sad:

That naming convention looks ok to me though and it is a .prt sequence too that is odd. Are the files sizes 1-10gb+ per frame or similar?

I am afraid you will have to wait for Bobo or maybe Hristo might know, he too has used naiad and Krakatoa.

Bobo
06-26-2012, 10:51 PM
sorry if my question some how is sealy
but am using krakatoa 2 and am trying to load a sequence of PRT files
its 1000 file
Why I have to add them to the loader one by one ??
Why I can't pick them all at once ??
is there's a way i miss ??


Are you saying you have ONE 1000 frames sequence (.0000.prt to .0999.prt)?
In that case, you simply pick ANY frame from the sequence and the frame number will appear as .####.prt in the list. If you move the time slider, the #### will be replaced automatically with the current frame, and you have full control over what frame will be loaded via Playback Graph controller and/or Offset.

You are NOT supposed to pick every frame from the sequence into the list. The reason you CAN pick multiple files is that A) we support the merging of multiple sequences and B) you can load single files (by checking "Load Single Frame Only"). So if you pick frame .0000.prt and frame .0042.prt and check "Load Single Frame Only", BOTH will be loaded on EVERY frame at the same time, and their frame counters in the file names will NOT be shows as #### but as the actual frames you picked.

The PRT Loader even provides a >> menu with access to the File Sequence Manager. In that dialog, you can even pick a folder and add every UNIQUE sequence found in it. Another option lets you pick a root folder and add all sequences from all sub-folders recursively. But only one frame will be added from every uniquely named sequence, so you won't get 1000 entries for the 1000 frames of your single sequence.

Hope this helps. Not sure where this misunderstanding comes from, since this is all documented pretty clearly.

deathstone
07-08-2012, 05:39 AM
a little making of 3d Sponge Bob, hope you like it)))
Used krakatoa for rendering his sponge body
https://vimeo.com/45370646

SHRIF
07-21-2012, 10:00 AM
a little making of 3d Sponge Bob, hope you like it)))
Used krakatoa for rendering his sponge body
https://vimeo.com/45370646
I like it
very nice
and cool comp

SHRIF
07-21-2012, 10:41 AM
i was rendering a sequence of 400 frame
am using magma flow modifier with the particles container
after i done 200 my render stopped and gives me error message saying "" Magma Error ""
with no clear reason what ever i tried to do that error still showing
Until after removing the modifier still there ???
but when i merged into new file its working ok !!!
is this bug or i did something wrong ???
I can't figure the reason

Bobo
07-21-2012, 03:48 PM
i was rendering a sequence of 400 frame
am using magma flow modifier with the particles container
after i done 200 my render stopped and gives me error message saying "" Magma Error ""
with no clear reason what ever i tried to do that error still showing
Until after removing the modifier still there ???
but when i merged into new file its working ok !!!
is this bug or i did something wrong ???
I can't figure the reason

I have never seen this, but from the description sounds like a glitch/memory corruption issue. Please let us know if it is consistent and can be reproduced reliably.

AMParticles
07-23-2012, 02:09 AM
I am receiving the following error when I render out my final frames...

zlibreader::read() Unexpected EOF

What is this? I have had already two frames give me this error and they won't render.. Does it mean I have a corrupt prt sequence, as I had to resave a couple of prt's already..

Thanks.

kirillall
08-06-2012, 10:16 AM
Hi all. How can i make analogue of Load Percentage in Main Controll in MagmaFlow, but with more random threshold?
Also maybe somebody have interesting Magma Presets????