My little raymarcher now has raymarched reflections. Still working on the look.
https://github.com/wesfly/wgpu-raymarcher
My little raymarcher now has raymarched reflections. Still working on the look.
https://github.com/wesfly/wgpu-raymarcher
One of the reasons I started this project was to learn compute shaders and eventually process audio. Today I finally got to the fun part: experimenting! There’s still a lot to iron out, but here’s a simple real-time pixelation post-processing effect. #rustlang #wgpu #rendering #rust #creativeCoding #generativeArt #forma
Out of curiosity do any of the #mobilelinux devices support WGPU? I have tested both #FLX1 and #PPP and neither one seems to work even though WGPU supports GLES and they both support GLES 3 but seems like WGPU doesnt work on it even if glxgears does. I opened a ticket for FLX1 a while back but I marked it as potentially a halium based issue.
I want to see if any other device is working before i open a mobile linux ticket
Made my own tiny wgpu raymarcher: https://codeberg.org/wesfly/wgpu_raymarching. Built with Rust + wgpu + WGSL shaders. Features real-time SDF scene, smooth object blending, camera controls, and FPS limiting. I'm still working at it.
#wgpu #rust #graphics #raymarching
wgpu: A cross-platform, safe, pure-Rust graphics API.
「 wgpu is a cross-platform, safe, pure-rust graphics API. It runs natively on Vulkan, Metal, D3D12, and OpenGL; and on top of WebGL2 and WebGPU on wasm.
The API is based on the WebGPU standard. It serves as the core of the WebGPU integration in Firefox, Servo, and Deno 」
@lobsters Wgpu is great, but its documentation is just... bad. The only guide on the internet is a guide which uses Winit (which is basically a dead API at this point) and it only goes as far as instancing.
I'd love to use a pure rust graphics library, but at the moment I'm going to stick to OpenGL and Bevy due to the terrible documentation of Wgpu.
I do hope Wgpu improves that in the future, as it is definitely the future of Rust graphics programming!
So, last week I started building something. I don't have much time for it, basically 1 day a week, but I'm happy I've got time to work on it.
In the scope of a larger project, I started hacking a Rust library to compose wgpu renderers over multiple windows.
Here's a first screenshot. I'll release something as soon as it is marginally useful. Right now, it isn't.
Finding time is tough, but I recently added a sphere primitive with UV mapping, it's wrapped nicely. I enjoy experimenting with colors and think some overall noise could look great. Maybe I'll add it with a post-process effect. That said, I need to focus on audio. #rustlang #wgpu #generativeArt #creativeCoding #forma #rendering
I'll start by posting some of my earlier progress here to catch this timeline up. I've started another round of rendering practice, this time with wgpu, and audio will be a key focus from the beginning, not an afterthought. This is the mandatory triangle! #rustlang #wgpu #creativeCoding #generativeArt
finally figured how a model-view-projection-matrix is, now my #wgpu triangle can rotate, without disappearing for a few seconds every rotation
Is it me or there doesn't seem to have a #rust consensus on how to do some wgpu rendering in a random window?
Examples seem to be stuck in an old version of winit¹, none of the wgpu.rs examples seem to work on the website², ...
The barrier of entry seems even worse than doing some Vulkan + C with the awful glslang. Quite a depressing sight...
¹ https://github.com/sotrh/learn-wgpu/issues/549
² https://wgpu.rs/examples/
Nice article.
Missed #egui / eframe in the list of game frameworks. It also comes with #vulkano and #wgpu bindings (3rd party).
I use egui + winit + vulkano in a video mixer / synthesizer app:
https://gitlab.freedesktop.org/AdeptVeritatis/pw-videomix
And eframe + wgpu in a sign language dictionary app:
https://gitlab.freedesktop.org/AdeptVeritatis/lisa
Both have a surprisingly good performance for being that unoptimized (not even using buffer pools).
First render after rewriting my toy engine from Vulkan to #WebGPU. And I'm awestruck, again.
It's upside down, GUI is missing, shadow map is buggy. But it's not a black screen. In fact, most things work well on the first render.
When I wrote 3D in C++, black screens and crashes were quite common. C++ tells you how you _can_ use an API, but #rust tells you how you _should_. And the validation checks of both #wgpu and #vulkano are awesome.
Pushing the limits of the terminal!
**tui-shader**: A library for using GPU shaders in TUI applications.
WIP - here be dragons.
Written in Rust & built for @ratatui_rs
image-palette-webgpu is a tiny zero-dependency browser JS library by Ivan Ludvig Tereshko and me that extracts dominant colors from images with various algorithms using WebGPU API.
NPM: https://npmjs.com/package/image-palette-webgpu
GitHub: https://github.com/IvanLudvig/image-palette-webgpu
Live demo: https://ivanludvig.dev/image-palette-webgpu/
There are plans to add tests and benchmarks as well.
Just a miiiiiinor detour into my efforts of implementing Hillaire's "Scalable and Production Ready Sky and Atmosphere" in my pet project: WebGPU spec compliant dual-source-blending for #wgpu
My first PR to the Naga shader compiler :3
https://github.com/gfx-rs/wgpu/pull/7146
I've been long contributing to wgpu and more recently co-maintaining it, but I somehow always avoided the shader side of things
Lotsa great stuff landed again in the #wgpu release earlier this week :)
https://github.com/gfx-rs/wgpu/releases/tag/v24.0.0
wgpu profiler (https://crates.io/crates/wgpu-profiler) and my minifb interop example (https://github.com/Wumpf/minifb_wgpu_web_and_desktop) are now updated as well to wgpu 24 (:
@vwbusguy I had massive slowdowns on #BevyEngine as soon as I installed the #Vulkan drivers for the Broadcom VideoCore VI chipset on the #RaspberryPi4. It seems the #RaspberryPi500 ships VideoCore VII and possibly uses the same driver.
https://github.com/bevyengine/bevy/issues/14253
How does your problem look like exactly? It might be a common #Wgpu bug (and not Bevy's fault after all)
Maybe I did spend the entire week to completely restructure #wgpu integration in my framework, but I've got now custom shaders and asset hot reloading supported :)
Big news for participants of my #wgpu workshop last saturday at @rustlab! Apparently, iOS 18.2 will enable #WebGPU support in Safari by default, so everything you learned can now be used not only in Chrome and Edge, but also on iOS (and probably iPadOS) Safari!
Source: iOS 18.2 beta, referenced in a birdplace post, shared by @wumpf