![](/i/fill.gif) |
![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
In article <3e254375@news.povray.org>, "Tim Nikias" <tim### [at] gmx de>
wrote:
> To make the point: the issue is, once its inside the first
> medium and enters the next, it won't get refracted again
> when exiting the first medium it was in, right?
Right. When going from one object into another overlapping one, a ray
goes through two surfaces but only gets refracted once.
--
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) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
> Don't. This will not work properly: the ray will never leave the object
> if it goes through an area that was clipped away, and won't enter the
> object properly from the glass side.
Well... was just an idea... - I used something like this when I modeled a
closed glass with halfway water and halfway air - there are some
"conincident-surface" problems...
> The correct solution is simpler,
> just overlap the objects.
Is this really correct? There is this border of my drop, sitting in the
window-glas...
Or is it just a good looking workaround?
Greetings, Kalle
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
> Is this really correct? There is this border of my drop, sitting in
> the window-glas...
> Or is it just a good looking workaround?
>
> Greetings, Kalle
Well, answered in another piece of this thread...
Thank you anyway.
Kalle
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
hey guys!
this nice little paper about water droplets on glass did really fascinate
me. I started right away yesterday evening (in spite of learning for a class
test *g*) and had half of the algorithm implented till I went to bed.
I rendered a small animation of it while I was at school this morning. You
can download it from
http://www.torfbold.com/droplets.avi (about 330K,100 Frames)
(its compressed using divx 5, you can download it from http://www.divx.com)
I'm afraid it is not water on glass but water on something non-transparent.
I didn't have the time to set up a nice demo-scene, suggestions welcome *g*.
For this animation, I used a grid of 120x120 cells. It took about one hour
to render it on my Athlon 600 256 MB SDRAM, half of the time was spent
parsing, the other half tracing. I think the algorithm could be made faster,
but I'm not a specialist in this field.
I'll release it after I coded the rest of the algorithm, so anybody can have
a try.
I didn't used the approach of using a mesh which was suggested by the paper,
but reduced it to a simple n*m grid. Due to this, it's only possible to
render droplets running down even plates like windows. These plates may have
nevertheless all possible inclination angles.
There is still much room for improvements, but this is as far as I came
yesterday:
- The basic algorithm for animations is implemented
- the masses of the droplets and their paths are already calculated
correctly
What is still to be done:
- calculating the correct size of each droplet according to its mass (at the
moment i'm using a simple linear connection)
- calculating the correct velocities of the droplets. I'm not sure about
this part of the paper as it is not clearly stated how these velocities are
used.
I think the result in the middle of the animation is pretty nice, but in the
end there are many non-moving masses around and you can see that they are
arranged in a grid. The blob-parameters i used were imho not that good, the
droplets lack "blobiness". I'm not very familiar with blobs, but I hope I'll
find some better values for them.
The behaviour of the droplets are dependent on some parameters. Perhaps
other values for these parametres will lead to nicer results, but i had not
yet time to try this.
Comments & ideas welcomed!
greetings:florian
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Water-Glass-Air problem:
I've given this problem a lot of thought while trying to accurately model a
glass of Champagne. I've come up with four non-solutions.
Model with air-gap:
-Doesn't work because it results in total reflection where
there shouldn't be. (The air gap work the same way as the
air gaps in optical fiber lines.)
-Awful render times because of rays bouncing back and forth
in the gap.
Union with overlap:
-Not as much total reflection, but still incorrect.
-Still awful render times, because of the two surfaces.
Merge with overlap:
-Not really correct since merged objects shouldn't have different
interiors.
-The material is determined by the ray's point of entry, and
doesn't change, because there is no surface at all where there
were two surfaces before
Union + clipping.
-Correct number of surfaces (one) between water and glass.
-Problem when ray reenters air. (It doesn't, because it
misses the surface where it should leave the water.)
-Example:
1st surface: Enter water (Ray is in water)
2nd surface: Enter glass (Ray is in glass in water)
- Surface to leave water is clipped
3rd surface: Leave glass (Ray is in water, when it is actually in air.)
The only solution that I can think of would be to modify POV-ray itself.
The feature we need is a half-merge. That is a method which takes the
union of two objects, and keeps exactly one of the internal surfaces.
/Per
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
In article <web.3e43e6949320e9d02ce39a3a0@news.povray.org>,
"Per Rutquist" <per### [at] volvo com> wrote:
> The only solution that I can think of would be to modify POV-ray itself.
> The feature we need is a half-merge. That is a method which takes the
> union of two objects, and keeps exactly one of the internal surfaces.
Read the rest of this thread, what POV-Ray does has been explained. You
should simply overlap the surfaces slightly, this will give the correct
result.
--
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) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Christopher James Huff wrote:
> Read the rest of this thread, what POV-Ray does has been explained. You
> should simply overlap the surfaces slightly, this will give the correct
> result.
No, that would be 'will give a visually acceptable result'. Surfaces
don't overlap in the real world.
--
--Tim Cook
http://home.bellsouth.net/p/PWP-empyrean
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GFA dpu- s: a?-- C++(++++) U P? L E--- W++(+++)>$
N++ o? K- w(+) O? M-(--) V? PS+(+++) PE(--) Y(--)
PGP-(--) t* 5++>+++++ X+ R* tv+ b++(+++) DI
D++(---) G(++) e*>++ h+ !r--- !y--
------END GEEK CODE BLOCK------
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
In article <3e441492$1@news.povray.org>,
"Timothy R. Cook" <z993126bellsouth.net> wrote:
> No, that would be 'will give a visually acceptable result'. Surfaces
> don't overlap in the real world.
As already mentioned in this thread, the way POV handles this situation
results in refraction being handled correctly.
Can we drop it now?
--
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) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Christopher James Huff wrote:
> Can we drop it now?
Water drop it, even. hehehehhehehehehe
er
*cough*
--
--Tim Cook
http://home.bellsouth.net/p/PWP-empyrean
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GFA dpu- s: a?-- C++(++++) U P? L E--- W++(+++)>$
N++ o? K- w(+) O? M-(--) V? PS+(+++) PE(--) Y(--)
PGP-(--) t* 5++>+++++ X+ R* tv+ b++(+++) DI
D++(---) G(++) e*>++ h+ !r--- !y--
------END GEEK CODE BLOCK------
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Hi! I realize this is an old posting from the POV news sever, but you can
go here to see a new technique I created to make waterdroplets do what I
want them to do on a flat, glass surface, and am working on making it happen
on a curved surface. The piece is animated, but here are some screenshots
to look at. All the water droplets on this image are CG created.
http://www.actlab.utexas.edu/~arie/intersection/
Arie Stavchansky
"Per Rutquist" <per### [at] volvo com> wrote in message
news:web.3e43e6949320e9d02ce39a3a0@news.povray.org...
> Water-Glass-Air problem:
>
> I've given this problem a lot of thought while trying to accurately model
a
> glass of Champagne. I've come up with four non-solutions.
>
> Model with air-gap:
> -Doesn't work because it results in total reflection where
> there shouldn't be. (The air gap work the same way as the
> air gaps in optical fiber lines.)
> -Awful render times because of rays bouncing back and forth
> in the gap.
>
> Union with overlap:
> -Not as much total reflection, but still incorrect.
> -Still awful render times, because of the two surfaces.
>
> Merge with overlap:
> -Not really correct since merged objects shouldn't have different
> interiors.
> -The material is determined by the ray's point of entry, and
> doesn't change, because there is no surface at all where there
> were two surfaces before
>
> Union + clipping.
> -Correct number of surfaces (one) between water and glass.
> -Problem when ray reenters air. (It doesn't, because it
> misses the surface where it should leave the water.)
> -Example:
> 1st surface: Enter water (Ray is in water)
> 2nd surface: Enter glass (Ray is in glass in water)
> - Surface to leave water is clipped
> 3rd surface: Leave glass (Ray is in water, when it is actually in
air.)
>
> The only solution that I can think of would be to modify POV-ray itself.
> The feature we need is a half-merge. That is a method which takes the
> union of two objects, and keeps exactly one of the internal surfaces.
>
> /Per
>
>
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |