Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 程序纹理算法中的清晰度?_Algorithm_Math_Textures_Procedural Generation - Fatal编程技术网

Algorithm 程序纹理算法中的清晰度?

Algorithm 程序纹理算法中的清晰度?,algorithm,math,textures,procedural-generation,Algorithm,Math,Textures,Procedural Generation,在本页的大图部分给出了一个表格,用于比较3种不同功能的不同组合。让左边的函数为y=f(x)那么函数的平均值、差值、加权和、4%阈值呢?我需要一个数学方程,用y这一页解释了一切: 这里有一些简单、枯燥的函数,当它们与越来越小的版本反复组合时,会创建非常有趣的模式。下表显示了基本的源模式(左),以及使用各种组合方法将该模式与较小版本的模式进行组合 平均值(1/n)-这只是所使用的所有刻度的平均值,“n”是刻度的总数。因此,如果有6个刻度,每个刻度贡献最终值的16%(1/6) 差异-使用每个比例的颜色

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

这一页解释了一切:

这里有一些简单、枯燥的函数,当它们与越来越小的版本反复组合时,会创建非常有趣的模式。下表显示了基本的源模式(左),以及使用各种组合方法将该模式与较小版本的模式进行组合

平均值(1/n)-这只是所使用的所有刻度的平均值,“n”是刻度的总数。因此,如果有6个刻度,每个刻度贡献最终值的16%(1/6)

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

加权和(1/2^n)加权和与平均值非常相似,只是较大的刻度有更多的权重。随着“n”的增加,该比例的贡献减小。最小的刻度(n的最大值)的影响最小。这种方法是最常见的,并且通常是视觉上最令人愉悦的

4%阈值-这是加权和的一个版本,其中低于48%的灰度值变为黑色,高于52%的灰度值变为白色

让我们使用平均值检查器函数。您正在平均多次重复的不同图像,在其示例中为6个,但在以下示例中为3个:

因此,输出图像的每个像素是来自其他图像的像素值的平均值。您可以拥有任意数量的这些图像,并且它们的构建方式始终相同:级别
n
的图像由4个平铺组成,这4个平铺是级别
n-1
的图像大小的四分之一。然后,从所有这些图片中,应用上述函数中的一个,只得到一个

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

  • 平均值(1/n)-对于
    n
    级别,
    最终_像素[x][y]=图像_i[x][y]/n从1到n的i之和

  • 差异-对于
    n
    级别,
    最终像素[x][y]=图像从2到n到n的i之和[x][y]-图像\u i-1[x][y]
    --对此不完全确定

  • 加权和(1/2^n)-对于
    n
    级别,
    final_像素[x][y]=图像从1到n的i的和[x][y]/(2**n)

  • 4%阈值-对于
    n
    级别

value=图像i[x][y]/(2**n)从1到n的i之和
如果值/最大值>0.52,则最终像素[x][y]=白色
否则,如果值/最大值<.48,则最终像素[x][y]=黑色;
else final_像素[x][y]=值
其中,
2**n
是n的幂的2

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