|
![](/i/fill.gif) |
In article <web.3da6d971ed80a515398d8dbb0@news.povray.org>,
"Pyry" <fro### [at] suomi24 fi> wrote:
> (Sorry for the bad engish if you find any; Please correct.)
> The POV-Ray blob object does not preserve it's volume when the components
> are moved around.
> Is it possible to make a blob-like volume-preserving function for the
> isosurface?
> How about simulating water drops with surface tension?
> btw. Is there other blob-alternatives? IMO blob object is smooth in the
> wrong way.(?)
I know what you mean. A blob is just an isosurface, it only cares about
the value of a function at a point, not about the volume or surface
area. This is a problem I've been thinking about for a long time.
One possibility would be a particle system with blob particles. Use
enough particles with repulsion between particles that are too close,
and you could get something that does a fairly good job of maintaining
its volume. You end up with blobs of huge numbers of particles though,
it is still "lumpy", and the volume isn't very constant for small groups
of particles. Maybe you could adjust the radius of the components to
compensate for volume changes, this might give a useable approximation.
Some kind of mesh "stretched over" the volume of particles would be
better, and I've been trying to think of a good way to do this. I think
it is a much better approach, it will give smoother results and having
the actual "surface" data available would make things like water beading
on and wetting an object more realistic, and would do a much better job
of avoiding the liquid penetrating the surface of an object. (with
blobs, you only have component data, you don't really know where the
surface is)
Maybe particles aren't necessary, some kind of voxel field containing
"pressure" and "direction" information might be enough. Maybe combine
the two, computing particle forces on a coarse lattice instead of
per-particle.
It could also do a much better job of drops separating and merging: blob
components just stretch towards each other when they are close, and
merge when they are close enough...nothing like the behavior of real
liquid drops.
My basic idea would be a closed ball of "cloth" containing particles.
The cloth-surface interacts with objects and transfers forces to the
particles, and the particles hold the surface up and control its motion.
This would do a fairly good job of simulating a single drop. Dividing
into separate drops or merging separate drops into one could be a much
harder problem...figuring out which triangles to subdivide, which
"bonds" to break, and closing the holes in each sub-drop, or knitting
the surfaces of two drops together...
It would be very slow to compute in POV script, as well as difficult to
write with the limitations of the language, you would need an external
program to generate a mesh.
--
Christopher James Huff <cja### [at] earthlink net>
http://home.earthlink.net/~cjameshuff/
POV-Ray TAG: chr### [at] tag povray org
http://tag.povray.org/
Post a reply to this message
|
![](/i/fill.gif) |