POV-Ray : Newsgroups : povray.general : reflection on surfaces with big bump_size : Re: reflection on surfaces with big bump_size Server Time
1 Aug 2024 08:23:18 EDT (-0400)
  Re: reflection on surfaces with big bump_size  
From: Chris B
Date: 27 Jan 2006 18:06:48
Message: <43daa788$1@news.povray.org>
"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

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