|
|
|
|
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Can Someone help me out. I'm trying to figure out the weird coloring on the
lighted portion of the bottom half of the sphere.
The image is at
http://news.povray.org/web.4bb6af70dba6e9c64fd370d20%40news.povray.org
<web.4bb6af70dba6e9c64fd370d20@news.povray.org>
The source is
Source is as follows:
Can Someone help me out. I'm trying to figure out the weird coloring on the
lighted portion of the bottom half of the sphere.
The image is at
http://news.povray.org/web.4bb6af70dba6e9c64fd370d20%40news.povray.org
<web.4bb6af70dba6e9c64fd370d20@news.povray.org>
The source is
Source is as follows:
#include "colors.inc"
#include "math.inc"
camera {
location <0.0, 1.5, -4.0>
direction 1.5*z
right x*image_width/image_height
look_at <0.0, 0.0, 0.0>
}
light_source {
<0, 0, 0> // light's position (translated below)
color rgb <1, 1, 1> // light's color
translate <-30, 30, -30>
}
#declare num = 8;
#declare fn_theta_deg_of_x_y = function(x,y) { mod(atan2d(y,x) + 360,360) }
#declare fn_block = function(x,y) {
-1*mod(floor(fn_theta_deg_of_x_y(x,y)/(180/num)),2) }
#declare fn_x_y_z = function(x,y) { fn_block(x,y) }
isosurface {
function { fn_block(x, y) }
contained_by { sphere { 0, 1.0 } }
isosurface [0.0]
accuracy 0.001
max_gradient 2000
pigment{color Red}
}
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Am 03.04.2010 05:18, schrieb Woody:
> Can Someone help me out. I'm trying to figure out the weird coloring on the
> lighted portion of the bottom half of the sphere.
When dealing with isosurfaces...
- Try avoiding discontinuous functions like floor(), mod() or the like.
The algorithm doesn't work well with those.
- Make sure your function /crosses/ f(x)=0 (or whatever threshold you
choose) instead of just touching it; it seems to me that your function
never goes below the threshold, so that for some pixels POV-Ray is
convinced that it never even reaches it.
For your purposes, I'd suggest using sin() or cos() to produce the
repetitive banding, instead of the mod(floor(),2) operation.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
> Am 03.04.2010 05:18, schrieb Woody:
>> Can Someone help me out. I'm trying to figure out the weird coloring
>> on the
>> lighted portion of the bottom half of the sphere.
>
> When dealing with isosurfaces...
>
> - Try avoiding discontinuous functions like floor(), mod() or the like.
> The algorithm doesn't work well with those.
>
> - Make sure your function /crosses/ f(x)=0 (or whatever threshold you
> choose) instead of just touching it; it seems to me that your function
> never goes below the threshold, so that for some pixels POV-Ray is
> convinced that it never even reaches it.
>
> For your purposes, I'd suggest using sin() or cos() to produce the
> repetitive banding, instead of the mod(floor(),2) operation.
Also, using sin() or cos() will greatly reduce your max_gradient and
will probably result in a faster rendering.
Alain
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
> Can Someone help me out. I'm trying to figure out the weird coloring on the
> lighted portion of the bottom half of the sphere.
>
> The image is at
>
> http://news.povray.org/web.4bb6af70dba6e9c64fd370d20%40news.povray.org
>
> <web.4bb6af70dba6e9c64fd370d20@news.povray.org>
>
> The source is
>
> Source is as follows:
>
>
> Can Someone help me out. I'm trying to figure out the weird coloring on the
> lighted portion of the bottom half of the sphere.
>
> The image is at
>
> http://news.povray.org/web.4bb6af70dba6e9c64fd370d20%40news.povray.org
>
> <web.4bb6af70dba6e9c64fd370d20@news.povray.org>
>
> The source is
>
> Source is as follows:
>
>
> #include "colors.inc"
> #include "math.inc"
>
> camera {
> location<0.0, 1.5, -4.0>
> direction 1.5*z
> right x*image_width/image_height
> look_at<0.0, 0.0, 0.0>
> }
>
> light_source {
> <0, 0, 0> // light's position (translated below)
> color rgb<1, 1, 1> // light's color
> translate<-30, 30, -30>
> }
>
>
> #declare num = 8;
> #declare fn_theta_deg_of_x_y = function(x,y) { mod(atan2d(y,x) + 360,360) }
> #declare fn_block = function(x,y) {
> -1*mod(floor(fn_theta_deg_of_x_y(x,y)/(180/num)),2) }
> #declare fn_x_y_z = function(x,y) { fn_block(x,y) }
> isosurface {
> function { fn_block(x, y) }
> contained_by { sphere { 0, 1.0 } }
> isosurface [0.0]
Here, this statement produce an error.
-> No matching } in 'isosurface', isosurface found instead.
Normal POV-Ray never use, nor used, that structure.
> accuracy 0.001
> max_gradient 2000
>
> pigment{color Red}
> }
>
>
>
>
Discreete functions like mod(), ceil() and floor() produce extremely
large max_gradient. In fact, it reatch infinity at the discontinuities.
Use something like this instead:
function { f_sphere(x,y,z,1) + sin(atan2(x,y)*num )}
And reduce your max_gradient to something like 15 to 20
Alain
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Alain <aze### [at] qwertyorg> wrote:> > isosurface [0.0]
> Here, this statement produce an error.
> -> No matching } in 'isosurface', isosurface found instead.
> Normal POV-Ray never use, nor used, that structure.
Sorry,
You probably guessed, this was from the IsoSurface template, and when stripping
down the code of comments and uneeded information for the posting.
It wasn't in the original file.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
clipka <ano### [at] anonymousorg> wrote:
> Am 03.04.2010 05:18, schrieb Woody:
> > Can Someone help me out. I'm trying to figure out the weird coloring on the
> > lighted portion of the bottom half of the sphere.
>
> When dealing with isosurfaces...
>
> - Try avoiding discontinuous functions like floor(), mod() or the like.
> The algorithm doesn't work well with those.
>
> - Make sure your function /crosses/ f(x)=0 (or whatever threshold you
> choose) instead of just touching it; it seems to me that your function
> never goes below the threshold, so that for some pixels POV-Ray is
> convinced that it never even reaches it.
>
> For your purposes, I'd suggest using sin() or cos() to produce the
> repetitive banding, instead of the mod(floor(),2) operation.
Have any idea what you might do? The only way I can think to do it with Sin or
Cos functions is with fourier series, but this would require an extremely long
function.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Never mind. I figured it out by studying of all things financial derivatives, ie
construction using calls and puts.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
|
|