为什么pov-ray呈现的等值面上有皱纹?

时间:2014-05-11 19:25:59

标签: povray

我是pov-ray的初学者,我试图用它来渲染模拟中的一些波函数。

我尝试了以下代码,但为什么表面上有皱纹?

#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

1 个答案:

答案 0 :(得分:1)

似乎是因为max_gradient值太低。

  

&#34;我的等值面无法正确渲染:有洞或随机   噪音或大部件甚至整个等值面都消失了。&#34;该   具有等值面的这类现象的最常见原因是a   max_gradient值太低。使用evaluate来制作POV-Ray计算a   isosurface的正确max_gradient(记住指定一个明智的   max_gradient即使您使用evaluate,否则结果可能不是   正确的)。

如果我们增加max_gradient,我们可以得到一个好结果:

#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