POV-Ray : Newsgroups : povray.binaries.images : IsoStones Server Time
8 Aug 2024 10:25:14 EDT (-0400)
  IsoStones (Message 11 to 20 of 37)  
<<< Previous 10 Messages Goto Latest 10 Messages Next 10 Messages >>>
From: Dave Matthews
Subject: Re: IsoStones
Date: 12 Sep 2005 14:00:01
Message: <web.4325c15c81952868c7259570@news.povray.org>
Thanks for the code!  It's very instructive.

Dave Matthews


Post a reply to this message

From: Nathan Kopp
Subject: Re: IsoStones
Date: 12 Sep 2005 22:49:10
Message: <43263e26$1@news.povray.org>
I never knew that the standard stone textures could look so realistic!  I
guess they were always used in the wrong context or at the wrong scale.
Apparantly you've used them as they were intended to be used.  Very nice!

-Nathan


"PM 2Ring" <nomail@nomail> wrote in message
news:web.43242b50bddb89c077d3bc6c0@news.povray.org...
> This group of stones is a single isosurface. The wet sand is a
> normal-perturbed plane. The stone textures are the standard textures
> in stones.inc.
>
> Now I just need to figure out how to perturb the stones' positions a bit
> more...
>
>


----------------------------------------------------------------------------
----


Post a reply to this message

From: PM 2Ring
Subject: Re: IsoStones
Date: 13 Sep 2005 23:45:00
Message: <web.43279c898195286ad93754b0@news.povray.org>
"Greg M. Johnson" <gregj;-)565### [at] aolcom> wrote:
> It's nice.

Thanks, Greg.

> As a piece of art, however, I think it would look cool if you put one
> "vectorish" texture in there, to let us know it's not a photo and provide
> thematic contrast.

Ok. However, this is just a demo, not the final scene, where I'll use
isosurfaces for the water & sand. Also, I'm not sure what you mean by a
'vectorish' texture. :) I guess it means something that's obviosly digital.

> > This group of stones is a single isosurface. The wet sand is a
> > normal-perturbed plane. The stone textures are the standard textures
> > in stones.inc.

> > Now I just need to figure out how to perturb the stones' positions a bit

Any hints on this, anyone? Calling Mike Williams...


Post a reply to this message

From: PM 2Ring
Subject: Re: IsoStones
Date: 14 Sep 2005 09:45:00
Message: <web.432826d28195286505e02d50@news.povray.org>
"s.day" <s.d### [at] uelacuk> wrote:
> "PM 2Ring" <nomail@nomail> wrote:
> > This group of stones is a single isosurface. The wet sand is a
> > normal-perturbed plane. The stone textures are the standard textures
> > in stones.inc.
> >
> > Now I just need to figure out how to perturb the stones' positions a bit
> > more...
>
> Excellent stones, I spent a while trying to get good isosurface stone shapes
> for one of my IRTC entries for this round. (I didn't get as intersting
> shapes as you managed would you mind posting the source for a couple so I
> can see how you did it....

Thanks, Sean. I guess you've seen my source code by now. :)

> Here's how I created one of mine
>
> #declare  S = function { sqrt(pow(x,2) + pow(y,2) + pow(z,2)) - 2 }
>
> #declare Stone1 = isosurface {
>   function {
>
S(x,y*(1.5-y/12),z)-f_wrinkles(x*0.3,y*0.5,z*0.03)*0.05-fn_scallop_ripples(x,y,z).gray*0.001-f_wrinkles(x*3,y*4,z*4)*
0.
> 005
> }
>         accuracy isoAccuracy
>         max_gradient 2.75
>         contained_by{sphere{0,2.2}}
> }

Interesting function, though I'm not familiar with your
fn_scallop_ripples().
I don't think I would use wrinkles on pebbles like these, such patterns are
more suited to large objects like really huge stones, whole landscapes,
asteroids and planets, where the self-scaling nature of such fractal noise
can be seen over several scales at once.

A couple of suggestions about your code, though. Firstly,
fn_pattern(x,y,z).red is more efficient than fn_pattern(x,y,z).gray, and
gives identical results for a pattern using the default grayscale colour
map. Secondly, the internal functions f_r() and f_sphere will be more
efficient than your S function.

Also, I'm pretty sure that x*x is generally more efficient than pow(x,2),
although if pow() is well-optimized, the difference may be negligible. The
POV source code experts will know the answer to that one.


Post a reply to this message

From: PM 2Ring
Subject: Re: IsoStones
Date: 14 Sep 2005 10:20:01
Message: <web.43282f1b8195286505e02d50@news.povray.org>
Florian Brucker <tor### [at] torfboldcom> wrote:
> Not sure about the wet sand, but those stones are fantastic! The
> polished ones are 100% real, some of the others look a bit to smooth for
> their texture, but they're great nevertheless.

Ok, I cheated very slightly with the smoothness, by rendering with
 +W1200 +H900 +A0.2 +AM2 +R2
then using the good old NetPBM package to scale up by 250%, then blur with a
simple 3x3 average convolution, then scale down to 1024 x 768.

> Now I'm just curious: Why did you use one single isosurface?

Because I could. :) Seriously, this started as an exercise in making large
sets of balls using a single isosurface for efficiency. The stone textures
& then the shapes just followed as a natural progression, since I'd just
been tidying up my stones reference chart.

Now the isosurface isn't generally one of POV's faster shapes, but it's very
efficient in terms of memory usage for complex objects. Using the isosurface
like this to make multiple things from one object, it can be more efficient
to trace than tracing a heap of separate objects, and it even gets
more efficient the more things there are! I just did some quick tests
earlier tonight (using +W256 +H256 -F -D), varying the W parameter, and
here are the run times:

 1/W  Time
  10: 28s
  20: 26s
  40: 23s
  80: 19s
 160: 17s

Remember, the number of stones is 1/(W*W), so 25,600 (tiny) stones took 17
seconds, compared to 100 stones in 28 seconds! I stupidly forgot to record
the momory usage. I'll leave that as 'an exercise for the reader'. :)

At the moment I'm rendering a scene with 4 overlapping rotated copies of the
isostone grid. It looks better than I expected, although the stones still
need more perturbing. I've added a bit of y-randomness in the positioning,
and I'm seriously thinking about a bit of randomness in the orientation,
but I just don't want them to start intersecting with each other.


Post a reply to this message

From: PM 2Ring
Subject: Re: IsoStones
Date: 14 Sep 2005 10:35:01
Message: <web.432834058195286505e02d50@news.povray.org>
"Thomas de Groot" <t.d### [at] internlnet> wrote:
> "PM 2Ring" <nomail@nomail> schreef in bericht
> news:web.43242b50bddb89c077d3bc6c0@news.povray.org...
> > This group of stones is a single isosurface. The wet sand is a
> >
> Very, very good!!

Thanks, Thomas. If a geologist likes my stones, they must be good! :)


Post a reply to this message

From: PM 2Ring
Subject: Re: IsoStones
Date: 14 Sep 2005 10:40:00
Message: <web.432835438195286505e02d50@news.povray.org>
"Dave Matthews" <dav### [at] mnwestedu> wrote:
> Thanks for the code!  It's very instructive.

Always a pleasure to give something back to the POV community, Dave. Thanks
once again everyone for all the positive feedback!

And thanks should go to Mike Williams, for his excellent isosurface
tutorials. Especially that neat trick of using mod()...


Post a reply to this message

From: povray
Subject: Re: IsoStones
Date: 14 Sep 2005 10:49:21
Message: <21d7.432838ce.bab81@localhost>
PM 2Ring wrote:
> This group of stones is a single isosurface. The wet sand is a
> normal-perturbed plane. The stone textures are the standard textures
> in stones.inc.
> 
> Now I just need to figure out how to perturb the stones' positions a bit
> more...
> 
> 
> 
> ------------------------------------------------------------------------
> 

Is there a particular reason you desired to make all the stones
one isosurface?  it seems like you'd get a faster render time if
they were seperate objects.  This in turn would allow their
positions to be perturbed more.  I also notice that the rocks
are all smooth.  Perhaps you could use a blob object instead of
an isosurface for a further increase in speed.

I picture something like ... defining 12 different rock shapes.
Then, whenever you place a rock, randomly pick which of the 12
pre-defined rock shapes to place.  Rotate it randomly y before
placing it.  As each one is placed, randomly texture it.


Post a reply to this message

From: PM 2Ring
Subject: Re: IsoStones
Date: 14 Sep 2005 11:00:00
Message: <web.43283a638195286505e02d50@news.povray.org>
"Nathan Kopp" <pov### [at] nkoppmailshellcom> wrote:
> I never knew that the standard stone textures could look so realistic!

Neither did I, Nathan! Trust me. :)

> I guess they were always used in the wrong context or at the wrong scale.

Well there's no excuse for using them at the wrong scale: it's mentioned in
the include file. :) Of course, we've all probably used them at weird
scales; I know I have. :) You can sort-of get away with it with a plain
granite or other simple fractal, but the complex multilayered textures seem
to have a proper scale associated with them.

> Apparantly you've used them as they were intended to be used.  Very nice!

More luck than true planning on my part, I must confess. I've only recently
started to use lights that fade & they really add to scene realism (thanks
Jaime).

Speaking of Jaime, since reading the LightSys docs I've been seriously
thinking of updating the stones.inc textures. They don't behave well in
radiosity scenes, due to ambient content, but what's worse, they use the
dreaded crand, so they make horrible flying pixels in animations.

These stone textures come from the bad old days, before macros, and probably
before pigment functions (sorry, my POV history is a little rusty at this
hour of the morning :) so I'm sure some interesting things can be done to
modernize these textures and make them more flexible.


Post a reply to this message

From: PM 2Ring
Subject: Re: IsoStones
Date: 14 Sep 2005 11:35:00
Message: <web.43283e768195286505e02d50@news.povray.org>
povray <pov### [at] almostbestwebnet> wrote:
> PM 2Ring wrote:
> > This group of stones is a single isosurface. The wet sand is a
> > normal-perturbed plane. The stone textures are the standard textures
> > in stones.inc.
> >
> > Now I just need to figure out how to perturb the stones' positions a bit
> > more...
> >
> > ------------------------------------------------------------------------
>
> Is there a particular reason you desired to make all the stones
> one isosurface?  it seems like you'd get a faster render time if
> they were seperate objects.

For a couple of dozen stones, yes, but not a few million. See the reply I
just wrote to Florian for more on this topic, povray.

> This in turn would allow their positions to be perturbed more.
> I also notice that the rocks are all smooth.  Perhaps you could use
> a blob object instead of an isosurface for a further increase in speed.

Blobs I know well, we had them to play with long before these new-fangled
isosurfaces. :) This scene is partly an exercise in learning how to do
tricky things with isosurfaces.

Also, isosurfaces can be faster than you might think. I have a sofa object
derived from one of Jaime's LightSys demo scenes. The original is built
from isosurface{f_rounded_box()}, I converted it to use superellipsoids,
but the isosurface version was the faster! IIRC, I posted the scene file in
p.b.i a couple of weeks ago; look for the very shiny blue sofa.

> I picture something like ... defining 12 different rock shapes.
> Then, whenever you place a rock, randomly pick which of the 12
> pre-defined rock shapes to place.  Rotate it randomly y before
> placing it.  As each one is placed, randomly texture it.

Sure, I can do that:). However, you don't really save memory (in the current
version of POV) by doing this, unless you're doing it with mesh objects.
For an interesting variation on this theme, see my two recent threads,
"MultiMesh" in the General area and "Grass using MultiMesh" in p.b.i.


Post a reply to this message

<<< Previous 10 Messages Goto Latest 10 Messages Next 10 Messages >>>

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.