18个版本 (破坏性)
0.13.0 | 2023年6月13日 |
---|---|
0.12.0 | 2023年3月22日 |
0.11.0 | 2022年12月18日 |
0.10.0 | 2022年10月29日 |
0.0.2 | 2019年11月4日 |
#15 in 渲染
6,182 每月下载量
用于 52 个crate(47 个直接)
65KB
881 行
一个小巧的硬件加速像素帧缓冲区。🦀
但是为什么呢?
快速原型一个简单的2D游戏,基于像素的动画,软件渲染器,或者你最喜欢的平台的模拟器。然后添加着色器来模拟CRT,或者只是用一些不错的VFX来增加趣味。
pixels
不仅仅是一个将像素推送到屏幕的库,但它也不是一个完整的框架。你需要负责管理窗口环境,事件循环和输入处理。
MSRV策略
pixels
的最低支持Rust版本将始终可在GitHub上的 MSRV.md 文件中找到。
特性
- 基于由
wgpu
提供的现代图形API:Vulkan、Metal、DirectX 12、OpenGL ES3。- DirectX 11、WebGL2和WebGPU的支持正在开发中。
- 使用您自己的自定义着色器来实现特殊效果。
- 在完美的像素边界上硬件加速缩放。
- 支持非正方形像素纵横比。 (WIP)
示例
游戏 🎮
演示 🧪
- 自定义着色器
- Dear ImGui示例,使用
winit
- Egui示例,使用
winit
- WebGL2的最小示例
- 使用
winit
的最小示例 - 使用
tao
的最小示例 - 使用
fltk
的最小示例 raqote
示例tiny-skia
示例
故障排除
驱动程序问题
最常见的问题是宿主机器上安装了过时的图形驱动程序。pixels
默认请求低功耗(即集成)GPU。如果示例因任何原因无法工作,您可能尝试设置环境变量 WGPU_POWER_PREF=high
来查看是否解决了您宿主机器上的问题。
您还应该尝试保持您的图形驱动程序更新,尤其是如果您有一款旧的英特尔集成GPU。请记住,一些驱动程序和GPU已达到生命周期的终点,将不再受到支持。
日志记录
您可能想使用环境变量 RUST_LOG
(有关完整文档,请参阅 env_logger
)来在调试示例时获得更多洞察。《code>RUST_LOG=trace 将将所有日志输出到 stderr
(调试构建)
$ RUST_LOG=trace cargo run --package minimal-winit
默认功能禁用时,也适用于发布构建
$ RUST_LOG=trace cargo run --package minimal-winit --release --no-default-features
与 minifb
的比较
minifb
库与 pixels
有一些相似之处;它还允许快速原型设计2D游戏和模拟器。但需要使用它自己的窗口/GUI管理、事件循环和输入处理。使用 minifb
方法的一个缺点是缺乏硬件加速(除了macOS,它使用Metal但不可配置)。一个优点是它依赖于更少的依赖项。
与 softbuffer
的比较
有一个名为 softbuffer
的较新项目。它提供了类似于 pixels
提供的功能,但故意限制为仅软件(非硬件加速)光栅化。
依赖关系
~4-35MB
~538K SLoC