|
|
Wasn't it PM 2Ring who wrote:
>"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...
The problem is that I can't perturb the stones very far without then hitting
the edges of the cells.
I switched off the shape variation and reduced the size of the stones and
pushed the position variation as large as it would go without any stones
going over the edge of their cells, and there's still not a lot of freedom
of movement.
The method I used was to use a cell pigment function
#declare PF = function{pigment{cells scale 2*W}}
to apply a translation to each stone, a different translation in each cell
function {
f_r(f_modnoise(x+(PF(x,0,z).red-0.5)*P), y/H,
f_modnoise(-z+(PF(x,0,z).red-0.5)*P))
- R
}
Post a reply to this message
Attachments:
Download 'IsoStones.jpg' (81 KB)
Preview of image 'IsoStones.jpg'
|
|
|
|
"Mike Williams" <nos### [at] econymdemoncouk> wrote:
> >> > This group of stones is a single isosurface.
> >> > Now I just need to figure out how to perturb the stones' positions
> a bit. Any hints on this, anyone? Calling Mike Williams...
Thanks, for responding to the call, Mike!
> The problem is that I can't perturb the stones very far without then hitting
> the edges of the cells.
Exactly; and the cells themselves mustn't overlap. I've been thinking about
using cells with curved borders, but I can't think how to do them yet...
some kind of non-linear transform... My brain wants to turn itself inside
out, thinking about these nested isosurface functions. :)
> I switched off the shape variation and reduced the size of the stones and
> pushed the position variation as large as it would go without any stones
> going over the edge of their cells, and there's still not a lot of freedom
> of movement.
That's what I've been doing, too. I don't like what happens when
the stones overlap. It looks like they've melted into each other. :(
> The method I used was to use a cell pigment function
> #declare PF = function{pigment{cells scale 2*W}}
> to apply a translation to each stone, a different translation in each cell
> function {
> f_r(f_modnoise(x+(PF(x,0,z).red-0.5)*P), y/H,
> f_modnoise(-z+(PF(x,0,z).red-0.5)*P))
> - R
> }
Ok, but I think that's pretty similar to what I do with
#declare f_cnoise = function(x,z)
{(W-R)*f_snoise3d(floor(x*.5/W), 0, floor(z*.5/W))}
This bit is essentially a cells function:
f_snoise3d(floor(x*.5/W), 0, floor(z*.5/W))
except I'm hoping that it's more efficient than using a pigment function.
What I've been playing with earlier this evening is to shrink the stones &
overlap a pair of the isosurfaces in a checker pattern, so as to fill in
each other's gaps. The grid pattern is more acceptable, and the collisions
don't look so bad. You don't get that 'melted' problem I mentioned above,
since the stones aren't 'invading' each other's cells and so they don't
affect each others shape or texture.
I'll definitely have to think about your function when I wake up, Mike.
It's just after 3AM in my timezone. Good thing I've got tomorrow off work
:).
Post a reply to this message
|
|