程序纹理算法的清晰度?

时间:2015-01-14 10:29:57

标签: algorithm math textures procedural-generation

在本页的大图片部分here中,给出了一个表格,用于比较3种不同功能的不同组合。让左边的函数为y = f(x)那么函数平均值,差值,加权和,4%阈值呢?我需要y

方面的数学方程式

1 个答案:

答案 0 :(得分:1)

在该页面上解释了所有内容:

  

以下是一些简单,无聊的功能,当它们与自身的越来越小的版本重复组合时,会创建非常有趣的模式。下表显示了基本源模式(左),以及使用各种组合方法将该模式与其自身的较小版本组合。

     

平均值(1 / n) - 这只是所使用的所有比例的平均值,'n'是比例总数。因此,如果有6个量表,则每个量表贡献最终值的16%(1/6)。

     

差异 - 使用每个比例的颜色值之差作为最终纹理颜色。

     

加权和(1/2 ^ n) - 加权和与平均值非常相似,只是较大的比例具有更大的权重。随着'n'的增加,该量表的贡献减少了。最小尺度(n的最高值)影响最小。这种方法是最常见的,通常最具视觉效果。

     

4%阈值 - 这是加权总和的一个版本,其中低于48%灰色的任何内容都会变为黑色,而任何高于52%灰度的内容都会变为白色。

让我们采用平均检查器功能。您正在平均一些重复的不同图像,在他们的示例中为6,但在以下示例中为3:

3 frequencies of checkerboard average

因此输出图像的每个像素是来自其他图像的像素值的平均值。您可以根据需要拥有尽可能多的图像,并且它们始终以相同的方式构建:级别n的图像由4个图块组成,图像级别n-1的图像缩放为第四个它的大小。然后从所有这些图片中应用上述功能之一,只获得一个。

现在更清楚了吗?但是,通常很难给出定义每个图像的函数f。但是,即使在伪代码和数学中有1个输出(n)有x个输入(y = f(x1, x2, ....xn) s),也会定义“复合”函数:

  • 平均值(1 / n) - 对于n级别,final_pixel[x][y] = sum for i from 1 to n of image_i[x][y]/n

    math formula of average

  • 差异 - 对于n级别,final_pixel[x][y] = sum for i from 2 to n of to n of image_i[x][y] - image_i-1[x][y] - 对此不完全确定。

    math formula of sum of differences

  • 加权总和(1/2 ^ n) - 对于n级别,final_pixel[x][y] = sum for i from 1 to n of image_i[x][y]/(2**n)

    math formula of wieghted sum

  • 4%阈值 - 对于n级别,

value = sum for i from 1 to n of image_i[x][y]/(2**n)
if value/max_value > .52 then final_pixel[x][y]=white 
else if value/max_value < .48 then final_pixel[x][y]=black;
else final_pixel[x][y]=value

2**n的幂是n的幂。