|
|
"zuegs" <zue### [at] bluewinch> wrote in message
news:web.43da25b14d3eab5823b7640@news.povray.org...
> Hi Chris B
>
> I'am very pleased for your reply, thanks.
> Yes I think you fully understood my problem, thanks again.
>
> source-code:
> if the bozo-normal is leaning towards the box so that the camera gets
> behind
> the normal/surface, the code treats this by reflecting it as surface is
> 'flat'.
> The more the camera is down (near surface with quite parallel view) the
> more
> often it happens that the camera gets behind the bozo-normal. So surface
> looks flat... (the lower the camera less bozo is needed to get this
> artefacts)
>
> It would be great if one of the programmers could have a look on this
> because i think that the current implementation of reflection leads to
> artefacts (wrong reflection) in this case and this seams to be a bug for
> me.... am i wrong???
>
> best regards
> zuegs
>
>
I'm not sure I'd call it a bug, because it seems to me to be related to the
behaviour of a part of the surface that, if the surface was bumpy for real
rather than a flat surface with distortion of the normals, would be out of
sight of the camera. Because it is really just a flat surface, the point is
visible and the programmer had to define a reflective behaviour which, in a
real environment, would be undefined.
There are probably lots of scenes that would be significanlty altered if the
default behaviour were to be changed, but you could suggest an optional
setting to handle this condition in the way you described.
Also you might try fiddling with the reflection setting which you can use to
reduce the reflection for low angles by using it in the reverse fashion to
that described in the documentation. ie. by telling it to reflect highly at
high angles and less at low angles.
The following example takes the bozo to 50 using the second reflection
parameter to compensate for the effect you're having a problem with.
It's a bit of a cheat, but it may serve as a workaround pending a better
solution.
camera {
location <0, 2, -10>
look_at 0
}
plane { y, 0
finish { reflection {3.0 0.5} ambient 0.0 diffuse 0.0 specular 0.0 }
normal { bozo 50 scale 0.001 }
}
box { <-1, 0, -1>, <1, 5, 1>
pigment { color rgb <1, 1, 0> }
finish { ambient 1.0 diffuse 0.0 specular 0.0 reflection 0.0 }
}
Regards,
Chris B.
Post a reply to this message
|
|