云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

中间件_数据库编辑器_测评

小七 141 0

我正在用ABAP写一个光线跟踪器,学习《从地面向上的光线跟踪》一书。光线跟踪器能够创建计算机生成的图像。如果你想知道更多我的动机,在我的第四个博客中,大数据教程,我改进了我的光线追踪器,渲染了任意数量的对象,并研究了C++方法参数如何转换到ABAP世界。这个项目可以在Github上找到。胡斯在这第五个博客中,我更新了我的光线追踪器,使用不同的采样算法来解决混淆(1)的问题。通过显示"我的光线跟踪器"创建的图像来演示混叠效果,并允许您比较不同的采样算法以最小化混叠效果。

在计算机生成的图像中,混叠效果描述的是人工制品,这些人工制品通常很难看。

混叠是光线跟踪的固有问题,它这个问题源于这样一个事实:物体的数学定义允许无限的细节。但是要使这些细节对我们的眼睛可见,我们必须将它们映射到一个像素的有限区域内。

我们将更多的信息压缩到一个像素中,这个像素只能容纳一种颜色,这反过来会导致细节/信息的丢失,并在渲染图像中创建图案/伪影。

下图显示了我的第一次渲染。

每个像素有一条光线的球体。

球体的放大边框

锯齿状边框线是由混叠引起的非常常见的伪影。

从屏幕拍摄光线时在每个像素的中心,它要么击中物体表面,要么错过它。最后像素得到物体或背景的完全不透明的颜色。图04.01。[EPS图像]网址:raytracegroundup.com网站(2) [访问日期:28。2018年1月]

这个问题的一个解决方案是为一个像素投射多条光线,并对颜色进行平均以定义可见像素的颜色。这叫做取样。因此,我们也可以说,使用多个样本有助于更好地逼近正在渲染的世界。

下图04.03显示了图04.01中左上角的像素。铸造25个样品(左),每个样品返回黄色或灰色(中间)。然后对颜色值进行平均,使最终颜色为不饱和的黄色。(右)

佩森(2007)。图04.03。[EPS图像]网址:raytracegroundup.com网站(2) [访问日期:28。2018年1月]

均匀细分像素并从每个子像素的中心发射光线也称为均匀或规则采样。

以下图像采用规则采样对球体边缘执行抗锯齿。每个像素用16个样本来确定。

规则采样的球体(16个样本)

放大球体的边界,得到反走样。

另一个说明走样问题的例子是正弦函数(3),这是描述连续收缩波的数学表示。

以下图像在范围(x,物联网安全,y)=[0,大数据用什么数据库,3.79]²内渲染。最小的波用大约5个像素来表示。不存在伪影。

正弦函数

如果使用相同的分辨率显示更大的范围((x,y)=[0,10.83]²),则展开一个图案,也称为莫尔(4),这是因为波变得很小,不能用一个像素来表示。

莫尔图案

现在我用每像素16个样本进行常规采样,结果图案的强度降低了,但仍然可见。事实上,如果这个图像的对比度会大大增加,同样的图案会再次展开,如下图所示。这种模式是由于样本之间的间隔是均匀的,这改变了问题,但没有解决问题。

应用常规采样(16个样本)

如下图所示:另一种解决方案是实现另一个采样算法,云服务器好用吗,样本随机分布在一个像素范围内。这将产生一种噪声模式,与一种独特的模式相比,人眼对这种噪声模式更宽容。

采用随机抽样(16个样本)

但随机抽样可能会导致样本间隙或簇,从而导致采样不足或过采样。另一种称为抖动采样的算法只对每个子像素区域内的光线进行随机化,这使得采样间隔更加均匀。图04.07。[EPS图像]网址:raytracegroundup.com网站(2) [访问日期:28。2018.1]

(左)25个随机样本(中)25个抖动样品(右)像中间一样,但显示了子像素

下面的渲染应用了抖动采样。

抖动采样(16个样本)

还有更多的采样算法,如Multi-Jittered、Hammersley、N-Rooks,它们在本书中有介绍,但在我的博客中没有介绍,因为这会再次增加文章的篇幅太长了,我试着从错误中吸取教训;).

底线:采样有助于获得更好的近似值,比如更精细的细节、更平滑的边缘、更锐利的纹理,但代价是性能。不同的算法存在不同的特性。在光线跟踪中,采样将被多次使用,不仅当我与锯齿状边缘进行斗争时,席灯和软阴影也将在后面的章节中实现。ABAP的采样算法是两种语言处理整数除法的不同之处。寻找你自己:

我最终使用了trunc和一个float值:

这个博客总结了本书的第4章和第5章。

通过每像素铸造额外的样本,我的光线跟踪器可以解决锯齿状边缘或莫尔图案等别名效果。我实现了几种采样算法来研究它们的特性。同时,我还发现,与C++相比,用ABAB处理整数除法是不同的,这是通过使用Tunc和浮点除法来解决的。安德烈

,物联智能家居