learn-wgpu
luminance-rs
learn-wgpu | luminance-rs | |
---|---|---|
78 | 7 | |
1,651 | 1,100 | |
2.9% | 0.0% | |
6.4 | 0.0 | |
about 1 month ago | about 2 years ago | |
Rust | Rust | |
MIT License | GNU General Public License v3.0 or later |
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.
learn-wgpu
-
Memory Safety for Web Fonts
> Of course evidence continues to build that no tooling or coding practice eliminates the risk here
Concidering Rust is just tooling and coding practice in front of LLVM IR does this statement not also include Rust? There are in fact formally verified C and C++ programs, does that formal verification also count as tooling and coding practice and therefore not apply?
If either of the above is true why does it matter at all?
I am specifically calling out your blanket statement and want to open uo discussion about it because at present your implied point was it is impossible to write safe code in C/C++ and it is only possible in Rust, however the very point you made would also apply to Rust.
There are also non-safety issues that may affect the integrity of a program. I recently again looked into Rust, haven't given up just yet but to just instantiate a WGPU project the amount of incidental complexity is mind boggling. I haven't explored OpenGL but concidering that the unofficial webgpu guide for rust [1] recommends using an older version of winit because the current version would require significant rewrites due to API changes is not encouraging. Never mind the massive incidental complexity of needing an async runtime for webgpu itself, is this a pattern I am going to see in different parts of Rust. Rust already has enough complexity without injecting coroutines in places where blocking functions are reasonable.
1. https://sotrh.github.io/learn-wgpu/#what-is-wgpu
- Learn Wgpu
-
Vulkan Tutorial
https://sotrh.github.io/learn-wgpu/
Wgpu is a Rust-based library that takes a similiar general API shape as Vulkan but is simplified. When I first tried to learn Vulkan I found the complication to be overwhelming (primarily because there are no defaults for ANYTHING) but once I learned wgpu it was substantially less so. It is still quite complicated though.
Wgpu is aiming to be almost as powerful as Vulkan, but it's not there yet because the features that are needed to do the modern techniques that make Vulkan really good (as compared to opengl) either aren't there yet or are so bug-ridden as to not be usable in practice yet.
It has some ability to run in a web browser, probably with JS, too, but I'm unfamiliar with the details there.
-
Practicing Rust, Learning Bevy, Creating a WASM Snake Game for the Browser
Nice.
Speaking of Snake game, if you want to go even deeper, you can try to use the wgpu crate to combine Rust and WebGPU to write everything from scratch. Here is the tutorial:
https://sotrh.github.io/learn-wgpu/#what-is-wgpu
I once wrote a code editor with wgpu, from font rendering to char/line state management (very rough) for music live coding:
https://github.com/glicol/glicol-wgpu
It runs in browsers, even including Safari!
- Please review my ECS geospatial engine so far
- Help me get started with 3D graphics in Rust
-
Realtime Ray Marching implemented with Rust and wgpu
https://sotrh.github.io/learn-wgpu/ This is probably the best resource out there for learning wgpu specifically. If you're unfamiliar with graphics, the learnopengl one is good. If you've got experience though, jumping right into that one is a shout or looking at some vulkan ones as they're pretty similar in terms of architecture.
-
Is it possible and realistic to learn independent of an API?
- https://sotrh.github.io/learn-wgpu
-
What would be a good project structure/ design for a game engine using WebGPU?
Most of The WGPU I learnt is from https://sotrh.github.io/learn-wgpu/ but it doesn't really talk about designing n stuff, I thought of checking out the source code for Bevy or even games like veloren. But well, their codebases are pretty big to get started in the first place.
luminance-rs
-
Introducing posh: Type-Safe Graphics Programming in Rust
gives me same vibes as https://github.com/phaazon/luminance-rs
-
Announcing Rust 1.67.0
Potentially it is due to this layout optimization and a missing repr(C) somewhere in your code or a dependency. For example, here is an is a related issue in luminance.
-
Luminance redesign; Part 1: compatible vertex types
luminance is a graphics ecosystem focusing on type-safe and type-level API. This is part of a blog article series describing the process of redesign the API to update it to how I see things today, trying to fix several flaws of the previous design, and bring more simplicity to developers.
-
A graphics library to render WASM in React?
The WebGL API might be what you are looking for if you are building a game. It supports textures, vertex buffers, and shaders. luminance-rs has a backend: https://github.com/phaazon/luminance-rs/tree/master/examples/web
- Neophyte trying to choose and learn rendering framework
-
rx v0.5 released - a modern and minimalist pixel editor written in Rust
There is no GUI framework used -- it is built on GLFW and Luminance. This is after using winit and wgpu for some time.
-
List of Modern Up-To-Date Graphics Crates
This list is really cool! I've had a lot of success with luminance - which is a mid-level graphics library (vertex buffers, shaders, etc). It has OpenGL and WebGL backends.
What are some alternatives?
ash - Vulkan bindings for Rust
rust-graphics-crates
SDL - Simple Directmedia Layer
vulkan-tutorial-rust - Following the vulkan tutorial(https://vulkan-tutorial.com/) using the Rust programming language.
glium - Safe OpenGL wrapper for the Rust language.
three-d - 2D/3D renderer - makes it simple to draw stuff across platforms (including web)