FluidPlugin Alpha out(CHECK OTHER THREAD)

New releases and general discussions.

Post » Wed Aug 11, 2010 3:08 am

found a cleaner way to visualize, it runs faster, and looks better than the mesh method
no pixelation at all, just pure silkiness.
also in this demo, right mouse button erases smoke
(save it into the same directory with the dll's from the other demos

[url:2sd35hop]http://dl.dropbox.com/u/1013446/rockrocket.exe[/url:2sd35hop]

it's a canvas, and one soft circle sprite that pastes itself at the different spots in the grid after adjusting size, opacity, and color according to the thickness of the smoke
I'll try to release the beta of the plugin this weekend, a little too much overtime at work at the moment. just want to add the auto cpu core detection, and some auto math functionality to make it so there's no math required to translate between layout and fluid coordinates.


and for you retro folk:
[url:2sd35hop]http://dl.dropbox.com/u/1013446/retrosmoke.exe[/url:2sd35hop]
Spriter Dev
B
87
S
21
G
12
Posts: 3,240
Reputation: 16,461

Post » Wed Aug 11, 2010 4:09 am

i have a question, how does the plug operate exactly, what would the actions, conditions, etc be?

also i have some questions about how it runs, does it constantly use the same overhead no matter the amount of fluid, i assume it constantly processes a set space parsed into a grid or, does take more to do more?

aaaand can it interact with solids/moving solids?
B
52
S
7
G
6
Posts: 1,945
Reputation: 7,610

Post » Wed Aug 11, 2010 11:29 am

[quote="QuaziGNRLnose":4b9vg3ll]i have a question, how does the plug operate exactly, what would the actions, conditions, etc be?[/quote:4b9vg3ll]
Right now the actions are "add ink"(smoke)(x index,y index, ink amount)
And set velocity. (X index, y index, x component, y component)
Set vorticity (the swirliness of the smoke, for instance the fire had a higher vorticity than the smoke)
Set velocity advection. Advection is the preservation of a property as it moves through the fluid, so a higher velocity advection, the current wouldn't slow down as much as it moved through the fluid
I will add the actions to set heat, pressure, amd ink advection
I think its also possible to set the heat and pressure values at an index like you can with velocity
Oh yeah, and anything you can set adveection for you can set diffusion for which is the tendency to dissapate
Expressions are to get ink,velocity and later I think heat pressure for a given grid index
Right now I'm doing the math to translate grid coords back and forth to screen coords in the cap, but it makes sense to have that done automatically, so ill build it into the plugin
[quote:4b9vg3ll]also i have some questions about how it runs, does it constantly use the same overhead no matter the amount of fluid, i assume it constantly processes a set space parsed into a grid or, does take more to do more?[/quote:4b9vg3ll]I think it does use more processing power with more ink, because in an empty space it only needs to calculate, the velocity and not any ink advection, but I don't think more and more ink slows it down even more, I think any ink present in any given grid coord adds the cpu time, but after there's some ink there, more ink doesn't slow it down more, of course, it could be the way I was applying it visually, ill let you know more as I figure it out

[quote:4b9vg3ll]aaaand can it interact with solids/moving solids?[/quote:4b9vg3ll]
I sure hope so. Its not built in to the library, but I think I maybe able to use the wall hitting functions to be able to add obstacles, even if they can't be at an angle for now...ill let you know if it works


EDIT: oh yeah, almost forgot, I want to add a for each loop for eachloop index, with parameters for greater than values you can set for ink, velocity, etc

Almost any implentation I can think of involves a nested loop for 0 thru gridsize x, for 0 thru gridsize y, and sometimes if ink at loopindex("x"),loopindex("y") is greater than whatever do this
So ill have expressions for ink at loopindex, velocity, etc,and the conditional for each loopindex thing will make it very simple
Also before I stated it has the action to set ink and velocity at index, I think it should be for screen coordinates or indexes
And finally I forgot to say, an action to set the size of the grid
All the grids in these demos have been 50x50 visually, though all except for this last post with the smooth and retro versions have been calculated at 100x100 size, just for speed testing purposes
Spriter Dev
B
87
S
21
G
12
Posts: 3,240
Reputation: 16,461

Post » Fri Aug 13, 2010 3:55 am

Ok. The retrosmoke is amazing. And it almost doesn't lag.
B
25
S
3
G
6
Posts: 1,197
Reputation: 5,620

Post » Fri Aug 13, 2010 8:14 am

[quote="Davioware":3byyyb77]Ok. The retrosmoke is amazing. And it almost doesn't lag.[/quote:3byyyb77]

Runs 60fps constantly here :/

I get slowdown on the particle one with the chunky white dots flying around. I got that dropped to 20fps after holding the button for 20-30 seconds.

I thought you had a pretty up to date PC davio?

~Sol
Tired of crappy file hosts that are crappy? Get DROPBOX - https://db.tt/uwjysXJF
Moderator
B
45
S
17
G
37
Posts: 2,853
Reputation: 25,966

Post » Fri Aug 13, 2010 4:56 pm

1.8 ghz dual core, 2GB ram, HD 4670 512MB. Not top of the line, but I wouldn't call it out of date. :mrgreen:. And just the fact that one of the demos lags on your pc speaks worlds about the plugin's performance. I've run fluid sims before and they mostly all ran better than this.(no offense lucid!) The low performance must be because of the construct implementation or just the general unfinished/unoptimized state of lucid's awesome plugin. I hope that future versions will run at more acceptable speeds.

This is the kind of performance we need lucid.
http://www.escapemotions.com/experiment ... index.html
B
25
S
3
G
6
Posts: 1,197
Reputation: 5,620

Post » Fri Aug 13, 2010 5:55 pm

[quote="Davioware":2xgoewg8]1.8 ghz dual core, 2GB ram, HD 4670 512MB. Not top of the line, but I wouldn't call it out of date. :mrgreen:. And just the fact that one of the demos lags on your pc speaks worlds about the plugin's performance. I've run fluid sims before and they mostly all ran better than this.(no offense lucid!) The low performance must be because of the construct implementation or just the general unfinished/unoptimized state of lucid's awesome plugin. I hope that future versions will run at more acceptable speeds.

This is the kind of performance we need lucid.
http://www.escapemotions.com/experiment ... index.html[/quote:2xgoewg8]
The slowdown in the particle deal was cuz of the implementation in construct
It was just spawning particle objects each tick
Aside from that while multicore isn't enabled for these, it probably won't be superfast like the impressive nvidia smokebox demo, running on hundreds of stream processors instead of 2 to 4 cores( copuldnt view link on phone)
Spriter Dev
B
87
S
21
G
12
Posts: 3,240
Reputation: 16,461

Post » Fri Aug 13, 2010 7:21 pm

Ok wait, I take that back, it should be possible to make it much faster
I didn't think about it, but it was still doing crazy amounts of events to spawn those sprites, so upon davio's doubtiness, I tried running the simulation without sprites
And it ran much more quickly, then I tried it again with 5000 sprites, but no events to do anything to them, but bullet behavior to ensure they were still moving on screen,
Even on my craptop is was still going at 89 fps, so
Ill have to think about how tbhis can work, but it may be possible to run this very quickly
Unfortunately, it'll involve some sacrifice, it'll require more gpu power creating a sprite for ewery spot on the grid, but much less overhead on the construct event system.
But it could have the flexibility to do something like the particle method, or the retro method. I'm guessing no one needs the ugly mesh method
I need to think about this maybe even learn how canvas plug works and take some of that code
Either way. I have to think about this, if anyone has any ideas let me know
Spriter Dev
B
87
S
21
G
12
Posts: 3,240
Reputation: 16,461

Post » Fri Aug 13, 2010 7:28 pm

making each fluid effected particle a smooth gradient circle applying an effect like colourise over it might look cool, mix of fluid and quaz blobs :D, and with the plugin tulamide was working on for blobs and palletizing this could work really nice
B
52
S
7
G
6
Posts: 1,945
Reputation: 7,610

Post » Fri Aug 13, 2010 10:25 pm

anyone who wants to help please run this
download(720k)

this is a 50x50 grid of fluid, and 2500 moving sprites taking advantage of multicore processors

you won't see anything on the screen happening but just move the rocket around randomly
it's adding ink nonstop invisibly, and all the testing is going on in the background
I'll try to make another larger gridsize benchmark in a little while, but this should start to give use a general idea of how it could run

after you've given a second for some ink to get out, please left click, and then paste into a reply to give me your benchmark data
please paste, and don't just give your fps, because it will help me verify it's recognizing all cores
if you want to add your gfx card info that'll be useful mainly only if it's not running over 100 fps

thanks anyone who helps,
here's my info:

fps:302
threads:4
cores:4
Advanced Micro Devices
3415mhz
Spriter Dev
B
87
S
21
G
12
Posts: 3,240
Reputation: 16,461

PreviousNext

Return to Construct Classic Discussion

Who is online

Users browsing this forum: No registered users and 5 guests