|
|
|
|
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Reactor wrote:
> Also, isn't that the first derivative (i.e. slope), not the second? The
> function is roughly analogous to what you would want to do with, say, the
> surface normal of the object (i.e. measure the normal's rate of change), or the
> values that are returned from the slope pattern.
>
> If you use this directly as a pigment, you should clip it between 0 and 1.
> Personally, I would also probably rotate the image and evaluate in the xz plane
> because it is easier for me to think of, but either way will work.
>
>
> -Reactor
There are unfortunately some weird striations in the resulting image:
http://i421.photobucket.com/albums/pp292/SharkD2161/Support/hf_striations.png
At least I can *see* something. :)
-Mike
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
SharkD schrieb:
> There are unfortunately some weird striations in the resulting image:
>
> http://i421.photobucket.com/albums/pp292/SharkD2161/Support/hf_striations.png
The factor to multiply the sqrt() term with is obviously too high,
leading to the banded pattern.
In addition, it appears to me that your input file is suffering from
JPEG artifacts, causing those regular-spaced vertical stripes.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
SharkD <mik### [at] gmailcom> wrote:
> Reactor wrote:
> > Also, isn't that the first derivative (i.e. slope), not the second? The
> > function is roughly analogous to what you would want to do with, say, the
> > surface normal of the object (i.e. measure the normal's rate of change), or the
> > values that are returned from the slope pattern.
> >
> > If you use this directly as a pigment, you should clip it between 0 and 1.
> > Personally, I would also probably rotate the image and evaluate in the xz plane
> > because it is easier for me to think of, but either way will work.
> >
> >
> > -Reactor
>
>
> There are unfortunately some weird striations in the resulting image:
>
> http://i421.photobucket.com/albums/pp292/SharkD2161/Support/hf_striations.png
>
> At least I can *see* something. :)
>
> -Mike
The striations are do to the values going outside of the 0...1 range. It can be
clipped using min() and max().
Are you using the change in slope to decide where to place objects? I've been
working on a macro for that, trying to get it to decide where to place rocks
for stream beds. It works ok, but I think it needs to average the normals in a
small radius for each point to get a more accurate test of concavity.
-Reactor
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
clipka wrote:
> In addition, it appears to me that your input file is suffering from
> JPEG artifacts, causing those regular-spaced vertical stripes.
Not JPEG artifacts, but artifacts from increasing the dimensions of a
low resolution heightfield. I thought L3DT had eliminated them, but it
didn't. Thanks.
-Mike
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Reactor wrote:
> Are you using the change in slope to decide where to place objects? I've been
> working on a macro for that, trying to get it to decide where to place rocks
> for stream beds. It works ok, but I think it needs to average the normals in a
> small radius for each point to get a more accurate test of concavity.
>
> -Reactor
Sort of. I am rendering the image to act as a guide. Based on the guide
I place the objects manually in a separate application.
-Mike
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
> Please point me to the part where it describes POV SDL.
The derivative of a surface is really 2D, but here's the
x component. It's just the change in the slope (dx) with
the interval xstep. With an image it really isn't smooth up
close, so you need to make sure that the interval is large
enough to avoid the artefacts, and small enough to still
get an accurate slope.
camera {
orthographic
location <0,0,1>
look_at <0,0,0>
right 1*x
up 1*y
}
// input heightfield image
#declare fn1 = function {pigment {image_map {png "plasma3.png"}}};
// derivative
#declare xstep = 0.01;
#declare dx = function { (fn1(x,y,z).grey-fn1(x-xstep,y,z).grey) -
(fn1(x+xstep,y,z).grey-fn1(x,y,z).grey) };
// remap to drawable colors
#declare fcolor = function { select( dx(x,y,z)+0.5, 0,
select( dx(x,y,z)-0.5, dx(x,y,z)+0.5,1))};
box { // this box fits exactly in view
<-0.5, -0.5, 0>, <0.5, 0.5, 0>
texture {
pigment {
image_map {
function 200,200 {fcolor(x-0.5,y-0.5,z)}
}
}
}
}
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
|
|