Hello Ruben, I have been using tool now for a bit (great tool! thank you for !), and would love to use it in combination with VF Rotation rate (rotates the vector field) but when I move the pivot in 3dsmax to the center of the box instead of at the bottom (to give it a propper rotation) it wont accept it and resets it back to the bottom.
I see what you mean. The pivot point in 3ds max is not used in UE. If you want the pivot of the VF to be centered in Cascade, you need to position your splines and the template box centered in the world. The origin of the world will be the pivot point position of your VF.
Yes, maxscript isn’t very fast really, try disabling the previewing of boxes and vectors, that should really help.
It actually supports the sizes that you mentioned. The density setting only determines the number of voxels for the longest side, if you scale the bounding box non uniformly you can get whatever size you want, it doesn’t have to be square, it will round it to the nearest power of 2.
Thanks for the feedback! Let me know if you’d like any implemented or bug fixed.
Should my computer be almost crashing with only 64x64? I don’t have the live update on… When I click “update” my computer becomes overwhelmed by whatever its doing…
is it slower with more complex splines? what number of vertices do you recommend keeping things under? In the example I used a text spline that spelled out my full name. is that too complex of a spline? I will try it again and optimize the spline and see if I dare try 256
The script is taking forever… so I figured I would take opportunity to show you what I am working with, maybe I am doing something wrong. the 3 images pretty much show everything.
I forgot to optimize the curves, but they couldn’t be more than 200 total…
Ok, so I optimized the curve, and started with 4x4. Worked fperfect, and took about 5 seconds…
Then I tried 8x8. no problem, took a bit longer…
then I tried 16x16. takes about 30 seconds…
So if I tried 128x128, I am thinking it will take 2 hours! Is that taking longer than it should?
UPDATE: I recreated the spline, simpler time, and now I am trying 32x32 and… still going… it will most likely finish but is taking approximately … at least 5 minutes but it’s not finished yet… here is the current setup (I added red dots to show spline complexity):
It’s a script so it’s slow, it’s not multithreaded. The complexity of the spline doesn’t have a big impact, the main factor is the resolution of the grid. Take into account that it’s a 3d voxel grid.
So if your bounding box is perfectly square and you set the resolution to 8, it’s computing 8x8x8 = 512 voxels, increasing it to 16 is not twice as much, 16x16x16 = 4096 and 32x32x32 = 36864.
It’s not crashing is just taking exponentially longer.
The only thing you can do is try to adjust the bounding box pretty close to your splines on all 3 axis to reduce the number of wasted voxels.
It could definitely be optimized by using custom functions and an octree to find the intersecting voxels and moving the heavy processing code to .net to take advantage of multi threading. But I haven’t had the time to do that.
One I am having is the direction of the flow. I see there are parts to the voxel array, voxels hit and voxels not hit. is there a way to assign a force to the voxels hit? Would it make sense if I wanted voxels hit to “leave” and voxels not hit to attract? or vice versa? And I have a couple more questions, if you don’t mind
Do the length, width, and height segments affect the VF at all?
What is the general rule regarding vector size?
Also, In my mushroom cloud experiment from before, the flow of force came out strange.
I couldn’t get the particles to go up through the main shaft and then curl around, they would only curl around if the particles came from above the mushroom cloud top. I will experiment with it more to see if I can make the particles behave, is still new to me but I a m catching on quick!
is an excellent plugin! Guess I won’t be putting off learning particle systems now. Can’t wait to try it out. In terms of features, however, in order to speed up the processing of the voxels, you might want to try and allow the user to define what voxels will not be used, like having them place geometry in areas that will not be used and having the voxels check for that geometry.