 |
 |
|
 |
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
The algorithm used for the waves is described in:
http://www.first.gmd.de/persons/bwalter/html/report/report.html
and in an article from the german computer magazine 'PC Magazin', issue
12/2001.
The main idea is to superpose several sine waves (160 in this case) with
different frequencies and directions according to a certain distribution
function.
It is right now implemented as a heightfield, i already thought about
generating an isosurface function instead, but i'm not sure how slow this
would be with 160 sine functions.
The main problem is of course that there is no interaction with the walls
of the pool and generating a sufficiently large water plane with a
heightfield is problematic.
Christoph
--
Christoph Hormann <chr### [at] gmx de>
IsoWood include, radiosity tutorial, TransSkin and other
things on: http://www.schunter.etc.tu-bs.de/~chris/
Post a reply to this message
Attachments:
Download 'waves5.mpg' (349 KB)
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Not too shabby! Would be nice to at least fake the interactions with the
environment...
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
"Tony[B]" wrote:
>
> Not too shabby! Would be nice to at least fake the interactions with the
> environment...
Well, it's quite difficult to do this in a physically accurate way. Also
the technique in general is only meant to be realistic for deep ocean
water.
I have made another version with higher resolution, different scale and
viewpoint. The single steps are a bit large, but otherwise i think it's
much better.
Christoph
--
Christoph Hormann <chr### [at] gmx de>
IsoWood include, radiosity tutorial, TransSkin and other
things on: http://www.schunter.etc.tu-bs.de/~chris/
Post a reply to this message
Attachments:
Download 'waves7.mpg' (348 KB)
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
I think it is very realistic!!! It is true that there is no interaction with
the walls, but I still think it looks very good!!!
Congratulations!
Fernando.
"Christoph Hormann" <chr### [at] gmx de> wrote in message
news:3BF3F462.66F806EA@gmx.de...
>
> The algorithm used for the waves is described in:
>
> http://www.first.gmd.de/persons/bwalter/html/report/report.html
>
> and in an article from the german computer magazine 'PC Magazin', issue
> 12/2001.
>
> The main idea is to superpose several sine waves (160 in this case) with
> different frequencies and directions according to a certain distribution
> function.
>
> It is right now implemented as a heightfield, i already thought about
> generating an isosurface function instead, but i'm not sure how slow this
> would be with 160 sine functions.
>
> The main problem is of course that there is no interaction with the walls
> of the pool and generating a sufficiently large water plane with a
> heightfield is problematic.
>
> Christoph
>
> --
> Christoph Hormann <chr### [at] gmx de>
> IsoWood include, radiosity tutorial, TransSkin and other
> things on: http://www.schunter.etc.tu-bs.de/~chris/
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
"Fernando González del Cueto" wrote:
>
> I think it is very realistic!!! It is true that there is no interaction with
> the walls, but I still think it looks very good!!!
>
> Congratulations!
>
Thanks.
--
Christoph Hormann <chr### [at] gmx de>
IsoWood include, radiosity tutorial, TransSkin and other
things on: http://www.schunter.etc.tu-bs.de/~chris/
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
The animations look really great.
> The algorithm used for the waves is described in:
>
> http://www.first.gmd.de/persons/bwalter/html/report/report.html
>
> and in an article from the german computer magazine 'PC Magazin', issue
> 12/2001.
I tried reading the article (after giving it a go with babelfish first) but
it's too
complicated for me. Would you mind sharing the .pov and possibly the .ini ?
> The main idea is to superpose several sine waves (160 in this case) with
> different frequencies and directions according to a certain distribution
> function.
I tried averaging 160 sine_wave gradients then rotating and scaling
semi-randomly
but the effect is nothing like with your approach. So how about atleast
giving the
rest of us atleast a clue
-Jide
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Jide wrote:
>
> The animations look really great.
>
Thanks.
>
> I tried reading the article (after giving it a go with babelfish first) but
> it's too
> complicated for me. Would you mind sharing the .pov and possibly the .ini ?
>
The heightfield is not generated with Povray so the POV-code won't help
you much. If i make a version using an isosurface i will post the code.
> > The main idea is to superpose several sine waves (160 in this case) with
> > different frequencies and directions according to a certain distribution
> > function.
>
> I tried averaging 160 sine_wave gradients then rotating and scaling
> semi-randomly
> but the effect is nothing like with your approach. So how about atleast
> giving the
> rest of us atleast a clue
Simply random waves does not work, you have to use the correct
distribution functions for frequency and direction to get it right.
The formulas are given in:
http://www.first.gmd.de/persons/bwalter/html/report/node6.html
http://www.first.gmd.de/persons/bwalter/html/report/node7.html
Christoph
--
Christoph Hormann <chr### [at] gmx de>
IsoWood include, radiosity tutorial, TransSkin and other
things on: http://www.schunter.etc.tu-bs.de/~chris/
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
> The heightfield is not generated with Povray so the POV-code won't help
> you much. If i make a version using an isosurface i will post the code.
>
It's propably better that way for speed. I generated my height_field with
function 1000, 1000
and parse time was about 2 minutes IIRC (Athlon 1,4Ghz). 1000,1000 doesn't
get you a lot of smooth water :)
> > > The main idea is to superpose several sine waves (160 in this case)
with
> > > different frequencies and directions according to a certain
distribution
> > > function.
> >
> > I tried averaging 160 sine_wave gradients then rotating and scaling
> > semi-randomly
> > but the effect is nothing like with your approach. So how about atleast
> > giving the
> > rest of us atleast a clue
> Simply random waves does not work, you have to use the correct
> distribution functions for frequency and direction to get it right.
Yeah. I kind of suspected it from the result I got.
Anyway I'm eagerly waiting to see what you can do with this.
-Jide
Post a reply to this message
|
 |
|  |
|  |
|
 |
From: Christoph Hormann
Subject: Re: water waves simulation (349k)
Date: 21 Nov 2001 11:27:49
Message: <3BFBD605.EC38EA4@gmx.de>
|
|
 |
|  |
|  |
|
 |
Jide wrote:
>
> It's propably better that way for speed.
Probably not, rendering the isosurface will be much slower than the
heightfield.
> I generated my height_field with
> function 1000, 1000
> and parse time was about 2 minutes IIRC (Athlon 1,4Ghz). 1000,1000 doesn't
> get you a lot of smooth water :)
>
My animations used 256x256 and 512x512, generated with a separate program
that is faster than povray in this aspect (only a few seconds per frame)
The nice thing about an isosurface would only be that you don't need large
data files and it's possible to render arbitrarily sized water surfaces.
Christoph
--
Christoph Hormann <chr### [at] gmx de>
IsoWood include, radiosity tutorial, TransSkin and other
things on: http://www.schunter.etc.tu-bs.de/~chris/
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
"Christoph Hormann" wrote
> Jide wrote:
> >
> > It's propably better that way for speed.
>
> Probably not, rendering the isosurface will be much slower than the
> heightfield.
>
Yeah. I meant generating a hf is good for speed but after looking at my
post I see I messed it up.
-Jide
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
> My animations used 256x256 and 512x512, generated with a separate program
> that is faster than povray in this aspect (only a few seconds per frame)
What separate program did you use?
> The nice thing about an isosurface would only be that you don't need large
> data files and it's possible to render arbitrarily sized water surfaces.
Does this mean that for rendering *huge* water surfaces isosurface is
recommended?
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Apache wrote:
>
> What separate program did you use?
My own. ;-)
> Does this mean that for rendering *huge* water surfaces isosurface is
> recommended?
Well, it's not exactly 'recommended', but it's more realistic than a plane
with normal and with a heightfield it's simply not possible to make a
large water surface extending from foreground to horizon.
Christoph
--
Christoph Hormann <chr### [at] gmx de>
IsoWood include, radiosity tutorial, TransSkin and other
things on: http://www.schunter.etc.tu-bs.de/~chris/
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
In that case I'll have to start tweaking with isos, because I like lakes...
> The main idea is to superpose several sine waves (160 in this case) with
> different frequencies and directions according to a certain distribution
> function.
Where can I get (slightly readable) info about the distributions of sine
frequencies and directions?
I downloaded 'wt_water.pov' from your website but it doesn't seem to work in
PoV3.5 (release 7).
The parses stops here: #declare fnRMF=function{"ridgedMF",<0.07, 2.2, 7,
0.6, 0.9>}
because of this error: "Parse Error: Expected 'valid function expression', <
found instead"
Maybe I should download megapov for this to work?
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
in news:3BFB7218.72789514@gmx.de Christoph Hormann wrote:
> Simply random waves does not work, you have to use the correct
> distribution functions for frequency and direction to get it right.
>
> The formulas are given in:
Failed to understand the math, so my question may be complete nonsense.
Is it possible to turn all this into a pattern for POV-Ray?
Ingo
--
Photography: http://members.home.nl/ingoogni/
Pov-Ray : http://members.home.nl/seed7/
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Apache wrote:
>
> In that case I'll have to start tweaking with isos, because I like lakes...
>
I just did a first test and it is very slow (30 minutes for the scene the
animation is made from, 512x384 with only 40 different waves)
> Where can I get (slightly readable) info about the distributions of sine
> frequencies and directions?
As I previously mentioned, there is an implementation of this technique
in the latest issue of 'PC Magazin', together with some explanations.
> I downloaded 'wt_water.pov' from your website but it doesn't seem to work in
> PoV3.5 (release 7).
> The parses stops here: #declare fnRMF=function{"ridgedMF",<0.07, 2.2, 7,
> 0.6, 0.9>}
> because of this error: "Parse Error: Expected 'valid function expression', <
> found instead"
> Maybe I should download megapov for this to work?
The function syntax has changed so you have to convert it, just check the
3.5 docs for the details. Reflection parameters will need to be adapted
too.
Christoph
--
Christoph Hormann <chr### [at] gmx de>
IsoWood include, radiosity tutorial, TransSkin and other
things on: http://www.schunter.etc.tu-bs.de/~chris/
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
ingo wrote:
>
> Failed to understand the math, so my question may be complete nonsense.
> Is it possible to turn all this into a pattern for POV-Ray?
>
Surely it is, i'm not sure how much gain in speed this would mean in
relation to the user defined function version, but it would be possible.
Christoph
--
Christoph Hormann <chr### [at] gmx de>
IsoWood include, radiosity tutorial, TransSkin and other
things on: http://www.schunter.etc.tu-bs.de/~chris/
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Code for an isosurface version is now in p.b.s-f.
Christoph
--
Christoph Hormann <chr### [at] gmx de>
IsoWood include, radiosity tutorial, TransSkin and other
things on: http://www.schunter.etc.tu-bs.de/~chris/
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |