大家好!

我正在用C++编写自己的细胞自动机引擎。最近我添加了热力学和刚体物理支持(使用Box2D库实现)。

视频展示的是引擎的测试;我偶尔会切换热力图,以展示不同区域温度的变化。如果你将铁块扔进熔岩,它会迅速升温并变红。如果你将它扔进水中,它会降温并使水升温。如果你将红热的铁块放入液氮中,它会更快地降温。

Box2D刚体也可以与粒子相互作用并与它们交换热量:木头可以漂浮在水上,铁块会沉下去,其他材料可以通过调整密度来轻松添加。

这是数据驱动的方法:所有物理学、反应和相转变(如水蒸汽化或熔岩变为黑曜石)都定义在JSON配置文件中,没有在C++中硬编码。

我尽可能地优化了引擎;在屏幕上同时发生这么多交互是非常令人满意的。

非常希望听到您的反馈或想法!