对象{mesh {...}}表面的折射显示了人工制品

时间:2012-02-27 18:57:43

标签: rendering povray

我们希望渲染一个网格平面前面的参数化曲面,并观察由于曲面发生折射而导致的网格变换。我们的表面在这个简单的例子中是一个2d正态分布,我们将直接从上面查看,网格平面放在下面:

enter image description here

表面在许多三角形指令中给出,我们将它们放在mesh中并与

一起使用
object {
fovea 
scale <1,1,3>
texture { pigment {color rgbt <0,0,1,0.5> }}
interior {ior 1.4}
}

此处scale不是必需的,仅用于放大人工制品。您在下图中看到的是,折射看起来并不顺利,但会在底层网格图案中产生一些尖锐的伪影。

enter image description here

此图片是使用MacOSX 10.5.6下的Povray 3.6.1创建的,其设置为+Q9+A-J。任何人都可以指出一个暗示吗?感谢。

1 个答案:

答案 0 :(得分:0)

这是一个愚蠢的错误。因为在Mathematica中,表面看起来非常光滑,我认为它创造了大量的三角形面。这个假设是错误的。 Mathematica使用的渲染引擎似乎插入了为每个顶点给出的法线,因此表面只有看起来,因为它具有高分辨率。

对基础多边形的检查揭示了真相:

enter image description here

因此,看起来像上面渲染图像中的折射瑕疵实际上是正确的行为,因为相邻三角形的面法线确实改变了那么多。 提高表面网格的分辨率可以解决问题。