![](/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) |
"Trevor G Quayle" <Tin### [at] hotmail com> schreef in bericht
news:web.49480bd26655db1881c811d20@news.povray.org...
> The water surface is f_ridged_mf(x,y,z, 0.1, 3, 7, 0.7, 0.7, 2) plus
> procedural,
> hand placed ripples. It is not a normal though, but actually a
> heightfield.
>
I am not entirely sure if this function is really natural to a bathtube or
any confined water surface, up to a certain scale. I think that wave and
ripple are dominant, and often combined together. As an example, here
follows the code I am currently experimenting with. The scaling is optional
but can be used for fine-tuning the whole. Frequency and turbulence are the
main parameters. Note also the difference in the rotation.
// start of code
#declare Bigripple =
normal {
waves 1
frequency 6
turbulence 0.8
scale <0.5, 0.2, 0.2>*0.5
translate -100*z
rotate -30*y
}
#declare Smallripple =
normal {
ripples 1
frequency 3
turbulence 0.5
scale <0.35, 0.25, 0.25>*0.2
translate 100*z
rotate -10*z
}
#declare RippleNorm =
normal {
average
normal_map {
[0.9 Bigripple]
[0.8 Smallripple]
}
}
// end of code
Thomas
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) |
"clipka" <nomail@nomail> wrote:
> "Trevor G Quayle" <Tin### [at] hotmail com> wrote:
> > > I spit out a few quick examples with different environments.
> > > Excuse the aliasing, I know it can be painful!
>
> Of these, I'd take the bottom left one.
Post a reply to this message
Attachments:
Download 'btub2.jpg' (130 KB)
Preview of image 'btub2.jpg'
![btub2.jpg](/povray.binaries.images/attachment/%3Cweb.4949b0236655db18c67b294d0%40news.povray.org%3E/btub2.jpg?preview=1)
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
The hose seems too thin to me.
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) |
"alphaQuad" <alp### [at] earthlink net> wrote:
> Here's a Cousin Ricky norm and the one I did for the Lego pool.
> not in that order
>
> #declare n_surface = normal {
> function { f_ridge (x, y, z, 0.1, 1.0, 7, 0.7, 0.7, 0) } 2
> // function { f_ridged_mf (x, y, z, 0.1, 3.0, 7, 0.7, 0.7, 2) } 2
> }
I got the 2nd function from Christoph Hormann's water tutorial.
The "2" on the end is mine, though. A plane with a surface normal is not
realistic near the horizon. I was spurred to investigate when the real-life
sea outside my car window looked nothing like my render. An isosurface (or
height field) looked a lot more like the real thing. The "2" was an attempt to
compensate for the difference without giving up the speed advantage of a plane.
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) |
"Cousin Ricky" <ric### [at] yahoo com> schreef in bericht
news:web.4949f2a26655db1885de7b680@news.povray.org...
> "alphaQuad" <alp### [at] earthlink net> wrote:
>> Here's a Cousin Ricky norm and the one I did for the Lego pool.
>> not in that order
>>
>> #declare n_surface = normal {
>> function { f_ridge (x, y, z, 0.1, 1.0, 7, 0.7, 0.7, 0) } 2
>> // function { f_ridged_mf (x, y, z, 0.1, 3.0, 7, 0.7, 0.7, 2) } 2
>> }
>
> I got the 2nd function from Christoph Hormann's water tutorial.
>
> The "2" on the end is mine, though. A plane with a surface normal is not
> realistic near the horizon. I was spurred to investigate when the
> real-life
> sea outside my car window looked nothing like my render. An isosurface
> (or
> height field) looked a lot more like the real thing. The "2" was an
> attempt to
> compensate for the difference without giving up the speed advantage of a
> plane.
>
Hm. I am not entirely convinced, although your function looks better than
Christoph's. I have some doubts about the use of f_ridge for ripples/waves
anyway. I prefer (for the time being) my own method (see above) with wave
and ripple patterns. Using judiciously the ripple origin, you can even make
interference patterns with that. Anyway, in most cases, ripples look like...
ripples and waves look like... waves in nature.
Thomas
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) |
"clipka" <nomail@nomail> wrote:
> The hose seems too thin to me.
Yes it is quite thin, it would not be an enjoyable shower...
That's the way it is in the model already unfortuneately. Perhaps I will
manually rework it or change the shower configuration altogether
-tgq
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) |
"Cousin Ricky" <ric### [at] yahoo com> wrote:
> "alphaQuad" <alp### [at] earthlink net> wrote:
> > Here's a Cousin Ricky norm and the one I did for the Lego pool.
> > not in that order
> >
> > #declare n_surface = normal {
> > function { f_ridge (x, y, z, 0.1, 1.0, 7, 0.7, 0.7, 0) } 2
> > // function { f_ridged_mf (x, y, z, 0.1, 3.0, 7, 0.7, 0.7, 2) } 2
> > }
>
> I got the 2nd function from Christoph Hormann's water tutorial.
>
> The "2" on the end is mine, though. A plane with a surface normal is not
> realistic near the horizon. I was spurred to investigate when the real-life
> sea outside my car window looked nothing like my render. An isosurface (or
> height field) looked a lot more like the real thing. The "2" was an attempt to
> compensate for the difference without giving up the speed advantage of a plane.
Thank you for adding that. Reflection was solid 30-40 yards away,
at a low angle, in the outdoor pool image. For a high angle on a small body,
surface norms would do fine... if I understand this ...
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) |
did anyone mention
global_settings { number_of_waves Count }
#declare RippleNorm =
normal {
average
normal_map {
[0.9 Bigripple]
[0.8 Smallripple]
}
}
3.5.11.35 Waves
When used as a normal pattern, this pattern uses a specialized normal
perturbation function. This means that the pattern cannot be used with
normal_map, slope_map or wave type modifiers in a normal statement.
OK now I'm just a little ichy ... grain of salt eh?
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) |
"alphaQuad" <alp### [at] earthlink net> wrote:
> did anyone mention
> global_settings { number_of_waves Count }
>
>
> #declare RippleNorm =
> normal {
> average
> normal_map {
> [0.9 Bigripple]
> [0.8 Smallripple]
> }
> }
>
> 3.5.11.35 Waves
> When used as a normal pattern, this pattern uses a specialized normal
> perturbation function. This means that the pattern cannot be used with
> normal_map, slope_map or wave type modifiers in a normal statement.
>
>
> OK now I'm just a little ichy ... grain of salt eh?
Not an issue for me anyways. I convert to functions, and combine functions and
use a function pattern. The main reason for this is beacuase I use it in a
heightfield rather than as a normal, but it should work either way.
-tgq
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) |
"Thomas de Groot" <tDOTdegroot@interDOTnlANOTHERDOTnet> wrote:
> I am not entirely sure if this function is really natural to a bathtube or
> any confined water surface, up to a certain scale. I think that wave and
> ripple are dominant, and often combined together. As an example, here
> follows the code I am currently experimenting with. The scaling is optional
> but can be used for fine-tuning the whole. Frequency and turbulence are the
> main parameters. Note also the difference in the rotation.
>
> // start of code
> #declare Bigripple =
> normal {
> waves 1
> frequency 6
> turbulence 0.8
> scale <0.5, 0.2, 0.2>*0.5
> translate -100*z
> rotate -30*y
> }
>
> #declare Smallripple =
> normal {
> ripples 1
> frequency 3
> turbulence 0.5
> scale <0.35, 0.25, 0.25>*0.2
> translate 100*z
> rotate -10*z
> }
>
> #declare RippleNorm =
> normal {
> average
> normal_map {
> [0.9 Bigripple]
> [0.8 Smallripple]
> }
> }
> // end of code
>
> Thomas
Today I tried to find a suitable replacement for my Lego water:
<web.49472c24399f7e1d778c150@news.povray.org>
I could not. I was able to make some watery chrome.
I'd love to see someone find something better than f_ridge for the Lego pool. I
doubt anyone can.
If you want to try, legoworld_pool.pov is in the legolib zip here:
http://home.earthlink.net/~openuniverse/
here's the norms you posted:
global_settings {
number_of_waves 1
RippleNorm 01
Bigripple 02
Smallripple 03
}
global_settings {
number_of_waves 2
RippleNorm 11
}
Post a reply to this message
Attachments:
Download 'thomasnorms.jpg' (604 KB)
Preview of image 'thomasnorms.jpg'
![thomasnorms.jpg](/povray.binaries.images/attachment/%3Cweb.494b47636655db18ab3d2ec40%40news.povray.org%3E/thomasnorms.jpg?preview=1)
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |