xslittlegrass
xslittlegrass

Reputation: 4966

Why there are wrinkles on my isosurface rendered by pov-ray?

I'm beginner of pov-ray, and I'm trying to use it to render some wavefunction from my simulation.

I tried the following code, but why there are wrinkles on the surface?

#include "colors.inc"

camera{location  <10,10,-10>  look_at 0}
light_source{ <20,20,-10> White }

#declare P=function{internal(53)}; 
#declare P0=P(1,3,0,2);

isosurface {
    function{(x,y,z,0)} 
    contained_by { box { -8, 8 } }
    texture{pigment{Red}}
  }

enter image description here

Upvotes: 1

Views: 254

Answers (1)

xslittlegrass
xslittlegrass

Reputation: 4966

It seems that's because of a too low max_gradient value.

"My isosurface is not rendering properly: there are holes or random noise or big parts or even the whole isosurface just disappears." The most common reason for these type of phenomena with isosurfaces is a too low max_gradient value. Use evaluate to make POV-Ray calculate a proper max_gradient for the isosurface (remember to specify a sensible max_gradient even when you use evaluate or else the result may not be correct).

If we increase the max_gradient, we can get a good result:

#include "colors.inc"

camera{location  <10,10,-10>  look_at 0}
light_source{ <20,20,-10> White }

#declare P=function{internal(53)}; 
#declare P0=P(1,3,0,2);
#declare Min_factor= 0.6;
isosurface {

    function{P(x,y,z,0)} 
    evaluate 213.6, 1.29, 0.7    //this set the max_gradient
    contained_by { box { -8, 8 } }
    texture{pigment{Green}}
}

enter image description here

Upvotes: 2

Related Questions