#gpu #fractal #wasm #graphics #target #pararellism

app fractl_gui

支持多线程、GPU计算和wasm的分形渲染器

1 个不稳定版本

0.1.0 2024年1月17日

#305 in 渲染

GPL-3.0-or-later

1MB
1.5K SLoC

Fractl

截图

Mandelbrot Multibrot

如何使用

  • 尝试实时演示(注意:网络版本在单个线程上运行,没有GPU加速,本地版本要快得多)
  • ./bin下载预构建的二进制文件
  • 使用cargo安装(待办事项)

控件

动作
左鼠标按钮 将视图中心对准光标
WSAD 移动视图
R 重置视图
滚轮 增加/减少缩放
O 增加缩放
P 减少缩放
箭头键 增加/减少方向上的缩放
T 重置缩放
K 增加精度(最大迭代次数)
L 减少精度(最大迭代次数)
M 下一个分形
N 上一个分形
B 下一个分形着色
V 上一个分形着色
U 切换UI
Y 切换十字准星
C 增加指数(用于多分形)
X 减少指数(用于多分形)
F11 切换全屏
Esc 退出

使用nix构建

软件包 描述 并行处理 浮点精度
fractl_gui 本地GUI 双精度(f64)
fractl_gui-multithread 本地GUI 多线程CPU 双精度(f64)
fractl_gui-gpu 本地GUI GPU计算着色器 单精度(f32)
fractl_gui-wasm Web GUI 双精度(f64)
fractl_gui-win 本地GUI,交叉编译为Windows x86_64 双精度(f64)
fractl_gui-win-multithread 本地GUI,交叉编译为Windows x86_64 多线程CPU 双精度(f64)
fractl_gui-win-gpu 本地GUI,交叉编译为Windows x86_64 GPU计算着色器 单精度(f32)
  • 构建方法:nix build .#Package

  • 本地构建和运行:nix run .#Package

  • 示例:nix run .#gui-gpu

  • 或使用./script目录中的构建脚本之一

使用Cargo构建

  • 已安装rust,或者可以选择使用包含的dev shell: nix develop
  • 选择特性
特性 描述 备注
multithread 多线程CPU multithreadgpu 不能同时启用
gpu GPU计算 multithreadgpugpuf64 不能同时启用
f32 单精度浮点数 f32f64 不能同时启用
f64 双精度浮点数 f32f64 不能同时启用
  • 构建方法:cargo build --package=fractl_gui --no-default-features --release --features "Feature1 Feature2"
  • 运行方法:cargo run --package=fractl_gui --no-default-features --release --features "Feature1 Feature2"
  • 示例:cargo build --package=fractl_gui --no-default-features --release --features "gpu f32"

待办事项

  • 添加Julia集,更多分形
  • F128浮点数
  • Wasm WebGpu与计算着色器
  • Redox端口

依赖关系

~5–42MB
~688K SLoC