Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PowderGame

这是一个基于 Rust 和 wgpu 编写的 GPU 加速粉末沙盒游戏。 本项目将物理模拟与渲染进行了分离,在 CPU 端进行元胞自动机与流体物理的运算,在 GPU 的着色器中实现了 2D 全景光线追踪与热力学状态的可视化。

当前特色功能

  • 混合物理模拟:包含了受重力影响的粉末(沙子、泥土)、会扩散的流体(水)、反重力上升的气体(蒸汽)以及静态刚体(墙壁、木头)。
  • 热力学与三态变化:物质之间具有真实的导热系数。水遇极寒会结冰,受热会沸腾化为蒸汽,蒸汽触碰冷壁会重新凝结成水滴。
  • 2D 动态光影追踪:拥有可以被实体遮挡的上帝视角手电筒工具,光线穿透蒸汽和水幕时会产生体积透射衰减。火焰会自动照亮周围的空气。
  • 矢量力场交互:包含了可以吹飞粒子和水花的人造风场,以及带有事件视界和引力透镜效果的黑洞。
  • 红外热成像模式:可以在设置中开启 Heatmap 视图,直观查看当前世界的绝对温度分布。

基础操作与快捷键

游戏主要通过鼠标进行交互,同时提供了数字键以便快速切换工具。

快捷键 功能说明
鼠标左键 在画布上使用当前选中的工具(绘制/擦除/取色等)
鼠标滚轮 在右侧的物质调色盘上滚动列表
ESC 暂停世界时间,并打开系统设置面板
1 切换至:画笔工具 (Brush)
2 切换至:橡皮擦工具 (Eraser)
3 切换至:取色器工具 (Picker) - 吸取画面中的物质并自动切回画笔
4 切换至:油漆桶工具 (Bucket) - 智能填充封闭区域
5 切换至:手电筒工具 (Flashlight) - 提供 2D 动态光照视场
0 清空世界 (打开垃圾桶二次确认面板)

特殊材质使用指南

除了基础的沙子、木头和水之外,调色盘中提供了一些具有特殊物理逻辑的材质:

  • WIND GEN (风场发生器):绘制时,系统会记录你鼠标拖拽的方向和速度。放置后,它会持续向该方向吹出强风,可以吹散火焰或卷起水花。
  • BLACK HOLE (黑洞):单次点击放置。黑洞具有白色的事件视界(吞噬一切物质与力场)和红色的引力范围(吸引周围的粉末和风)。
  • HEAT SRC / COLD SRC (恒温热源/冷源):无法被破坏的温度源。热源会维持极高的温度并向外辐射热晕,可以直接蒸发水滴;冷源则会瞬间冻结接触到的水。
  • SEED (种子):掉落在泥土或沙子上,吸收水分后会随机生长出不同形态的植物。

运行与编译说明

直接运行 在 Release 页面下载对应的压缩包。解压后,请确保 powdergame.exeassets 文件夹处于同一级目录下,直接双击运行即可。

从源码编译 确保你的电脑已安装 Rust 开发环境。克隆本仓库后,在项目根目录下运行:

cargo run --release

About

Powder Game - Rust Physics Sandbox

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages