我是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}}
}
答案 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}}
}