文件名称:WaveFunctionCollapse:借助量子力学的思想,从单个示例生成位图和图块图
文件大小:288KB
文件格式:ZIP
更新时间:2024-02-23 06:20:23
gamedev machine-learning algorithm csharp procedural-generation
WaveFunctionCollapse 该程序生成与输入位图本地相似的位图。 局部相似性意味着 (C1)输出中的每个NxN像素图案应在输入中至少出现一次。 (弱C2)输入中NxN个图形的分布应该与足够大数量的输出上的NxN个图形的分布相似。 换句话说,在输出中满足特定模式的概率应接近输入中此类模式的密度。 在示例中,N的典型值为3。 WFC将输出位图初始化为完全不可见的状态,其中每个像素值都与输入位图的颜色重叠(因此,如果输入为黑白,则未观察到的状态将以不同的灰色阴影显示)。 这些叠加中的系数是实数,而不是复数,因此它不执行实际的量子力学,而是受QM启发的。 然后程序进入观察传播周期: 在每个观察步骤中,在未观察到的NxN区域中选择具有最低Shannon熵的区域。 然后根据其系数和输入中NxN个图形的分布,该区域的状态崩溃为确定状态。 在每个传播步骤中,从上一步崩溃中获得的新信息都会通过输出传播。 在每一步中,非零系数的数量都会减少,最终我们处于完全观察到的状态,波动函数已经崩溃。 可能会发生在传播期间某个像素的所有系数变为零的情况。 这意味着该算法已陷入矛盾,