我们希望渲染一个网格平面前面的参数化曲面,并观察由于曲面发生折射而导致的网格变换。我们的表面在这个简单的例子中是一个2d正态分布,我们将直接从上面查看,网格平面放在下面:
表面在许多三角形指令中给出,我们将它们放在mesh
中并与
object {
fovea
scale <1,1,3>
texture { pigment {color rgbt <0,0,1,0.5> }}
interior {ior 1.4}
}
此处scale
不是必需的,仅用于放大人工制品。您在下图中看到的是,折射看起来并不顺利,但会在底层网格图案中产生一些尖锐的伪影。
此图片是使用MacOSX 10.5.6下的Povray 3.6.1创建的,其设置为+Q9
,+A
和-J
。任何人都可以指出一个暗示吗?感谢。
答案 0 :(得分:0)
这是一个愚蠢的错误。因为在Mathematica中,表面看起来非常光滑,我认为它创造了大量的三角形面。这个假设是错误的。 Mathematica使用的渲染引擎似乎插入了为每个顶点给出的法线,因此表面只有看起来,因为它具有高分辨率。
对基础多边形的检查揭示了真相:
因此,看起来像上面渲染图像中的折射瑕疵实际上是正确的行为,因为相邻三角形的面法线确实改变了那么多。 提高表面网格的分辨率可以解决问题。