wgpu-rs
simple-game
Our great sponsors
wgpu-rs | simple-game | |
---|---|---|
16 | 4 | |
1,699 | 5 | |
- | - | |
9.0 | 6.6 | |
almost 3 years ago | 3 months ago | |
Rust | Rust | |
Mozilla Public License 2.0 | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
wgpu-rs
-
Using WGPU + crates directly or Bevy?
You could start with one of examples from wgpu and tinker with it to see if that's your thing. Ie. copy hello-triangle and add more triangles / make them move, etc.
-
gfx-rs ecosystem releases v0.8
wgpu-rs (https://github.com/gfx-rs/wgpu-rs) is probably closer to what you're looking for, it's a "high level wrapper" over wgpu-core (Which implements "WebGPU", an upcoming browser API for graphics using gfx-rs, and AIUI "implements" means this is what a browser might use to actually call a graphics API when javascript uses webGPU, although if you're compiling for wasm it could just call the browser APIs). It can run natively, ignore the fact it has "Web" in the name
- Rust shader translator is 2.5x faster
-
GPU compute shader for SHA256 using Rust!
rust-gpu) is used for compiling a compute shader written in Rust to SPIR-V. wgpu-rs is used natively for running the GPU computation.
- GPU programming .. SYCL
-
Bevy 0.5
For web assembly there is the unofficial bevy_webgl2 plugin. Official bevy web assembly support would probably use the wgpu webgl backend, which still needs some work, and is currently untested in bevy.
-
Bevy 0.5: data oriented game engine built in Rust
We let wgpu https://github.com/gfx-rs/wgpu-rs handle our graphics backend abstraction, so our OpenGL support will come whenever they implement and release it. Currently, it seems to be a WIP.
-
Help a newbie (in this language) to find directions :)
It's the same thing, the Rust implementation is just called[wgpu](https://wgpu.rs/)
-
Last big wgpu-rs example shaders are fully ported to WGSL now, and validated in it
Same as with GLSL, isn't it? What we do in wgpu-rs examples, and that's something I expect to see more widely, is having an integration test that just parses all the WGSL in the project and reports errors. Ideally though, we'd have a set of IDE plugins to do the parsing and report errors right where you type the code. We'd appreciate any help to get these started!
-
Newbie questions on design patterns in Rust
Also you could use an existing cross-platform graphics library, e.g. wgpu-rs. It supports Vulkan, Metal, DirectX, OpenGL and WebGPU. Oh and it seems to allow switching backends at compile-time via the WGPU_BACKEND environment variable, so maybe check out how they're doing it.
simple-game
-
Looking for an image manipulation library that can add text to images. (and has documentation for it)
I have a somewhat naive version of this sort of system running via wgpu, but that's likely lower level than you'd want to go.
-
Some advice on starting out
I won't claim this is great code, but poke around a little bit at my wgpu code and get a sense for how it compares to OpenGL. Overall the concepts are pretty close to each other, it's just that you declare everything up front instead of poking at OpenGL via functions to set things to the state you want.
-
First Public Working Drafts: WebGPU and WebGPU Shading Language
It's really not that bad. I had some complaints about WGSL a few months ago but it was surprising how quickly it improved. Here are some simple real-world shaders you can look at:
https://github.com/bschwind/simple-game/tree/9de179085a04dd4...
If you combine it with a quick build step to give you shader compilation errors before your program runs, it becomes a pretty nice shading language. There are still a few rough edges but it's not _that_ bad to work with.
-
Last big wgpu-rs example shaders are fully ported to WGSL now, and validated in it
Thanks! I ended up going that route here
What are some alternatives?
ash - Vulkan bindings for Rust
nannou - A Creative Coding Framework for Rust.
gfx - [maintenance mode] A low-overhead Vulkan-like GPU API for Rust.
sokol - minimal cross-platform standalone C headers
awesome-bevy - A collection of Bevy assets, plugins, learning resources, and apps made by the community
imageproc (PistonDevelopers) - Image processing operations
bevy_webgl2 - WebGL2 renderer plugin for Bevy game engine
piet - An abstraction for 2D graphics.
rust-gpu - 🐉 Making Rust a first-class language and ecosystem for GPU shaders 🚧
naga - Universal shader translation in Rust
gpuweb - Where the GPU for the Web work happens!
hash-shader - SHA256 WebGPU Compute Shader (Kernel) Written in Rust