|
|
|
|
|
|
| |
| |
|
|
|
|
| |
| |
|
|
I'm currently pacing through my particle-system and doing some
enhancements and additions to the internal calculations, in order
to have a releaseable version up and running soon.
I've just implemented a "wind turbulencing algorithm", which
takes care that particles born nearby are blown in a pretty
similiar direction, but this changes subtly based on
initial position.
This was done in order to avoid the chaotic wind turbulences
when simply randomizing the wind direction a bit.
So, when looking closely at the animation, you should notice
that particles tend to move to the same initial direction, but
this direction changes slightly.
There are two gaps though:
When the rocket passes the x-axis, the smoke-column
breaks apart. Particles move upward, and then suddenly
downward.
I am using always the same algorithm:
-take a turbulenced vector and the initial wind direction
-create an axis using vcross with those two vectors
-using another smooth-turbulenced float, rotate the initial
wind direction about some degrees around the former
calculated axis
Since the order of calculations are always the same, I guess
that the break is due to the sudden change from positive
to negative x-values, but I'm not sure how I could solve that
without taking away too much of the turbulencing process.
Anyway, hope you like it, perhaps some comments?
--
Tim Nikias
Homepage: http://www.digitaltwilight.de/no_lights/index.html
Post a reply to this message
Attachments:
Download 'smoke.mpg' (277 KB)
|
|
| |
| |
|
|
|
|
| |
| |
|
|
"Tim Nikias" wrote:
> I've just implemented a "wind turbulencing algorithm",
> which takes care that particles born nearby are blown
> in a pretty similiar direction, but this changes subtly
> based on initial position.
I think something looks fundamentally wrong in this animation. Each particle
starts still but then accelerates in a specific direction. But what is it
that pushes the particle in the same direction all the time? It doesn't make
sense that the wind keeps pushing a particle in the same direction; as the
particle moves, it would enter different air streams and change direction,
or more likely eventually just follow the global wind direction. But your
particles keep accelerating in the direction they started with, or at least
it looks that way.
> There are two gaps though:
> When the rocket passes the x-axis, the smoke-column
> breaks apart. Particles move upward, and then suddenly
> downward.
>
> I am using always the same algorithm:
> -take a turbulenced vector and the initial wind direction
> -create an axis using vcross with those two vectors
> -using another smooth-turbulenced float, rotate the initial
> wind direction about some degrees around the former
> calculated axis
This seems overly complicated. I suggest.
-take a turbulenced vector and add it to the initial wind direction. And
that's it.
You will also avoid the problem with vcross this way, so you should get no
abrupt changes.
Rune
--
3D images and anims, include files, tutorials and more:
Rune's World: http://rsj.mobilixnet.dk (updated Feb 16)
POV-Ray Users: http://rsj.mobilixnet.dk/povrayusers/
POV-Ray Webring: http://webring.povray.co.uk
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
>
> I think something looks fundamentally wrong in this animation. Each particle
> starts still but then accelerates in a specific direction. But what is it
> that pushes the particle in the same direction all the time? It doesn't make
> sense that the wind keeps pushing a particle in the same direction; as the
> particle moves, it would enter different air streams and change direction,
> or more likely eventually just follow the global wind direction. But your
> particles keep accelerating in the direction they started with, or at least
> it looks that way.
>
They actually do move only towards the direction they start with. I am thinking
about how to implement a wind-stream-type of simulation, but I also guess
I should remind you of the non-I/O aspects of my system.
Also, particles start still, they are just left behind by the rocket. The wind
then starts pushing them until they reach the speed the wind itself has.
(Imagine a soccer-ball. When there is wind blowing, it does not
change from "motionless" to "wind-speed" in an instant...)
But I exagerated the physics to make the algorithm easily to identify
(as you did, bravo!).
> This seems overly complicated. I suggest.
> -take a turbulenced vector and add it to the initial wind direction. And
> that's it.
>
> You will also avoid the problem with vcross this way, so you should get no
> abrupt changes.
>
I'll think about this one, but there are some drawbacks to this (like: the
turbulenced vector may come out as an inverse to the original
wind, then it would be nullified when added).
I'm still thinking about it, this was just a test.
Thanks for the suggestion and comment!
--
Tim Nikias
Homepage: http://www.digitaltwilight.de/no_lights/index.html
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
"Tim Nikias" wrote:
> They actually do move only towards the direction they
> start with. I am thinking about how to implement a
> wind-stream-type of simulation, but I also guess I
> should remind you of the non-I/O aspects of my system.
I know. I'm afraid a non-I/O particle system is not well suited for
turbulated wind.
> Also, particles start still, they are just left behind
> by the rocket. The wind then starts pushing them until
> they reach the speed the wind itself has. (Imagine a
> soccer-ball. When there is wind blowing, it does not
> change from "motionless" to "wind-speed" in an instant...)
I know. That's not the problem. The problem is that the wind keeps pushing
each particle in the same direction, which looks very weird. I think it
would look better to not turbulate the wind at all and instead slightly
randomize the initial directions. A missile or similar doesn't emit
still-standing smoke anyway.
> I'll think about this one, but there are some drawbacks
> to this (like: the turbulenced vector may come out as an
> inverse to the original wind, then it would be nullified
> when added).
Why is that a problem?? If the turbulence is as strong as the wind itself,
then this could indeed happen. There's no laws in nature saying that wind
turbulence is always perpendicular to the global wind direction!
Rune
--
3D images and anims, include files, tutorials and more:
Rune's World: http://rsj.mobilixnet.dk (updated Feb 16)
POV-Ray Users: http://rsj.mobilixnet.dk/povrayusers/
POV-Ray Webring: http://webring.povray.co.uk
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
This shows promise. Get a good texture on those spheres, and shoot them out the back
of
that ship, and the problems Rune brought up will be less noticable.
I agree with Rune's comments re. adding the turbulence vector to the wind direction.
It
won't matter if the turbulence vector negates the wind vector if the turbulence is
re-evaluated at each time step. But you have mentioned your non I/O method and the
associated difficulties with this approach.
Have you tried using a bozo like function to add some displacement to the particle's
position? In effect, you would be saying that after time t, the sum total of wind
forces on a particular particle would result in a displacement away from the
calculated
position p. This is not the correct way to calculate wind (if after a time, two
particles find themselves in the same position but with a different velocity, both
will
be perturbed in the same direction and magnitide due to wind. In reality, they would
both need the same velocity too). The results might be worth looking into though.
Attached is a png of two 'particles' displaced using this method. The grey lines show
the path they were meant to take. Both are subjected to the same bozo function that
determines wind displacement. They move randomly but smoothly, and if they start with
similar positions and velocities, they will share similar wind displacements at the
beginning. It's a bit of a cheap hack, but it's simple to implement.
It's an idea anyway.
MJL
--
text{ttf"timrom.ttf"concat(#local O=1;#while(O<7)chr(val(substr(concat(#local Q=
1;#while(Q<7)str(asc(substr("???<?>",Q,1))-56,0,0),#local Q=Q+1;#end""),O,2))),#
local O=O+2;#end"").1,0pigment{rgb 9}translate-<1,.3,-2>} // MJL
Post a reply to this message
Attachments:
Download 'smoketurb.png' (17 KB)
Preview of image 'smoketurb.png'
|
|
| |
| |
|
|
|
|
| |
| |
|
|
> I know. I'm afraid a non-I/O particle system is not well suited for
> turbulated wind.
>
Sadly, your right... :-(
> [snip] The problem is that the wind keeps pushing
> each particle in the same direction, which looks very weird. I think it
> would look better to not turbulate the wind at all and instead slightly
> randomize the initial directions. A missile or similar doesn't emit
> still-standing smoke anyway.
>
Just randomizing the initial directions would give similiar results. But
I've thought about adding a turbulenced vector, but with less effect
over time, so that after some set time, particles just move along
with the wind. I'll post an animation when its finished.
> Why is that a problem?? If the turbulence is as strong as the wind itself,
> then this could indeed happen. There's no laws in nature saying that wind
> turbulence is always perpendicular to the global wind direction!
>
Well, okay, you got me there. But since its all non-I/O, I have to
come up with ways that make sense (imagine a particle resting, whereas
nearby particles move along with the wind. In this non-I/O, the
resting particle would stay at rest, unless some parsing-intensive
time-stepping algorithm would be implemented).
After all, non-I/O does have drawbacks, but its power is the
flexibility of time (reversing time, stopping it, etc.). And, above
all, the system was created having the custom-effect in mind.
I/O particles are pretty flexible, but also pretty unpredictable,
that's what I'm trying to avoid.
--
Tim Nikias
Homepage: http://www.digitaltwilight.de/no_lights/index.html
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Thanks for the idea. I've thought about some function to
create a turbulenced path, but you already mentioned
the drawbacks. And I think that the effect could be
defined much more versatile if it wasn't "hardcoded" into
the system. There are options with macros I've implemented
for such purposes.
Also thanks for your comment.
--
Tim Nikias
Homepage: http://www.digitaltwilight.de/no_lights/index.html
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Tim Nikias wrote:
> And I think that the effect could be
> defined much more versatile if it wasn't "hardcoded" into
> the system.
I have furthered my idea, mainly for my own benefit (I was curious!) but I
thought you may be interested in this.
I have used my I/O particle simulatior in such a way that it mimicks a non-I/O
system such as yours. Particles were generated with velocities such that they are
shot away from the source. A little random velocity is added to prevent all the
particles having the same pos and vel.
No gravity, environment checking, my own wind, etc was used. Particle positions
were calculated for each frame.
To add my bozo like turbulence effect, I took the particle position, added the
turbulence, and placed a sphere there. The turbulenced position was not written
to the I/O file, only the unturbulenced position (this is so the system acts like
a non I/O system).
Wind is blowing upwards. I have deliberately overamphasized the turbulence
effect. The important part of the turbulence was that it was defined by a
pigment, and coded such that the user could define the pigment. There was very
little "hard coding" involved (I agree here that versatility is key)
I didn't bother with fancy textures etc., but I liked the turbulent effect. It
turned out better that I had expected so I thought I would post it.
MJL
--
text{ttf"timrom.ttf"concat(#local O=1;#while(O<7)chr(val(substr(concat(#local Q=
1;#while(Q<7)str(asc(substr("???<?>",Q,1))-56,0,0),#local Q=Q+1;#end""),O,2))),#
local O=O+2;#end"").1,0pigment{rgb 9}translate-<1,.3,-2>} // MJL
Post a reply to this message
Attachments:
Download 'smokehack.mpg' (89 KB)
|
|
| |
| |
|
|
|
|
| |
| |
|
|
On Tue, 05 Mar 2002 10:49:28 +1100, Mark James Lewin
<m_j### [at] yahoocomau> wrote:
>I have furthered my idea, mainly for my own benefit (I was curious!) but I
>thought you may be interested in this.
...
>I didn't bother with fancy textures etc., but I liked the turbulent effect. It
>turned out better that I had expected so I thought I would post it.
The way it is, it doesn't look much like smoke to me, but it would
make for a great air-bubbles-in-a-fish-tank animation.
Peter Popov ICQ : 15002700
Personal e-mail : pet### [at] vipbg
TAG e-mail : pet### [at] tagpovrayorg
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
|
|