Repolode
mxgmn

mxgmn/WaveFunctionCollapse

一个 C# 程序,基于 Wave Function Collapse 算法,从单张示例生成局部相似的位图与瓦片地图。

Star
25,410
Fork
1,368
未关闭 Issue
10
最近提交
3天前

这是什么?

WaveFunctionCollapse 可以从一张示例图片或一组带邻接规则的瓦片中生成新的位图或瓦片地图。输出只包含输入中出现过的 NxN 像素图案,因此局部看起来与示例相似,整体布局却是新的。名字借用了量子力学中波函数坍缩的概念,但算法使用的是实数系数,并不涉及真实的量子计算。

算法反复选择熵最低的未观测区域,按照输入中图案的出现频率将其坍缩为确定状态,再把由此产生的约束传播到整个输出上。如果某个格子的所有可能性都被排除,运行就会遇到矛盾而失败,项目中提到这种情况在实践中并不常见。仓库同时提供适用于像素样本的重叠模型和适用于瓦片集的简单瓦片模型,并包含对称性系统以缩短瓦片邻接列表。

该项目是基于 .NET 的控制台程序,通过 samples.xml 配置参数,结果输出到 output 文件夹。它常用于游戏关卡与像素画纹理的程序化生成,社区也已有多种语言的移植版本。

核心功能

  • 01从单张输入图片生成只包含其 NxN 图案的新位图。
  • 02同时支持用于像素样本的重叠模型和用于瓦片集的简单瓦片模型。
  • 03采用最小熵策略选择下一个要坍缩的区域。
  • 04内置瓦片对称性系统,缩短邻接关系列表。
  • 05以 .NET 控制台程序运行,参数通过 samples.xml 配置。

适用场景

  • 用手工制作的瓦片集生成游戏关卡或地牢布局。
  • 生成与示例图相似的像素画地图或纹理。
  • 在设计者设定约束的前提下,原型化程序化生成流程。
  • 学习或教授 Wave Function Collapse 算法。

标签

常见问题

WaveFunctionCollapse 是什么?
一个 C# 程序,基于 Wave Function Collapse 算法,从单张示例生成局部相似的位图与瓦片地图。 WaveFunctionCollapse 可以从一张示例图片或一组带邻接规则的瓦片中生成新的位图或瓦片地图。输出只包含输入中出现过的 NxN 像素图案,因此局部看起来与示例相似,整体布局却是新的。名字借用了量子力学中波函数坍缩的概念,但算法使用的是实数系数,并不涉及真实的量子计算。
WaveFunctionCollapse 可以免费使用吗?用的什么许可证?
WaveFunctionCollapse 以 Other 许可证开源。用于商业产品前,请先确认许可证条款。
WaveFunctionCollapse 还在维护吗?
活跃维护中。WaveFunctionCollapse 最近一次提交是在 2026年10月15日。
WaveFunctionCollapse 适合用来做什么?
用手工制作的瓦片集生成游戏关卡或地牢布局。 生成与示例图相似的像素画地图或纹理。 在设计者设定约束的前提下,原型化程序化生成流程。 学习或教授 Wave Function Collapse 算法。
在哪里获取 WaveFunctionCollapse?
源代码和安装说明在 GitHub 上:https://github.com/mxgmn/WaveFunctionCollapse

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目