2

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

在此处输入图像描述

曲面在许多三角形指令中给出,我们将它们放在一起mesh并使用它

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

这里scale不是必需的,仅用于放大工件。您在下图中看到的是,折射似乎并不顺利,但会在底层网格图案中产生一些尖锐的伪影。

在此处输入图像描述

此图像是在 MacOS X 10.5.6 下使用 Povray 3.6.1 创建的,设置+Q9+A-J。谁能指出一个提示?谢谢。

4

1 回答 1

1

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

对底层多边形的检查揭示了真相:

在此处输入图像描述

因此,在上面的渲染图像中看起来像折射伪影实际上是正确的行为,因为相邻三角形的面法线变化很大。增加表面网格的分辨率可以解决这个问题。

于 2012-02-28T03:10:49.673 回答