@Az@mastodon.gamedev.place avatar

Az

@Az@mastodon.gamedev.place

This profile is from a federated server and may be incomplete. Browse more on the original instance.

alice_i_cecile, to GraphicsProgramming
@alice_i_cecile@mastodon.gamedev.place avatar

Wish that there was better IDE support for in for ?

Take a look at this project by Runi: a preliminary language server for WGSL. IMO this is one of the biggest barriers in making graphics programming genuinely approachable: I'd love to see this catch on!

https://github.com/Runi-c/wgsl-lsp

Az,
@Az@mastodon.gamedev.place avatar

@alice_i_cecile There is also wgsl-analyzer ( https://github.com/wgsl-analyzer/wgsl-analyzer ) though I'm not sure how good it is for bevy. It's already pretty frustrating to use for plain wgsl so I guess it can only be worse with bevy preprocessor.

logloggames, to rust
@logloggames@mastodon.gamedev.place avatar

Here's also our postmortem of 3 years of Rust gamedev, and why we're leaving Rust

https://loglog.games/blog/leaving-rust-gamedev/

Az,
@Az@mastodon.gamedev.place avatar

@logloggames Amazing read, thanks for sharing! I cannot agree more regarding hot-reload and recommend Bret Victor - Inventing on Principle ( https://youtu.be/PUv66718DII ) if you haven't seen it already. Having the possibility to try and find out is not rust forte and yet is required for any creative process to truly shine.

Az, to rust
@Az@mastodon.gamedev.place avatar
Az, to rust
@Az@mastodon.gamedev.place avatar

Updating a project with winit, wgpu and egui is always an arduous journey, but I didn't expect firefox to be the most time consuming this time!

Anyway, my template for hot reloading both wgsl and rust, with native and wasm support is up-to-date and even simpler to use!

https://github.com/Azkellas/rust_wgpu_hot_reload/

An example. On the left, an IDE modifying both wgsl and rust files. On the right, the application, displaying a regular polygon with a red-to-blue gradient and an ui over it. When changing values in the source files (edge count, colors, etc.) or on the ui, the polygon is updated accordingly i real time.

castano, to random
@castano@mastodon.gamedev.place avatar

I'm excited to announce that Spark 1.0 is finally out!

https://ludicon.com/spark/

Spark is the culmination of over a year of dedicated research and development, built upon a solid foundation of years of experience in GPU compression technology.

What sets Spark apart?

Az,
@Az@mastodon.gamedev.place avatar

@castano can Spark be an option to super compress exr sequences to reduce memory bandwidth? (since such sequences rapidly exceeds ssd's bandwidth).

Az,
@Az@mastodon.gamedev.place avatar

@castano thanks and congratulations for the release. :)

Az, to rust
@Az@mastodon.gamedev.place avatar

Today I released my first (two) crates! 🎉
mesh_to_sdf generates a signed distance field from a 3D mesh and its client lets you visualize it to fine-tune the parameters (and more).

It's agnostic to your math library, so you start using it right now with or your favorite math library / game engine.

https://crates.io/crates/mesh_to_sdf
https://crates.io/crates/mesh_to_sdf_client

An overview of the mesh_to_sdf client app. It features model pbr, signed distance field visualization as a colored point cloud (green outside, blue inside, red surface), a voxelization and a raymarcher. On the left, an ui displays the most important informations (model and sdf data), and parameters to play with the renderer.

Az, to rust
@Az@mastodon.gamedev.place avatar

I couldn't have a SDF visualization without a raymarcher now, could I? Including trilinear, tetrahedral and funky interpolations. The only vis missing would be marching cubes I guess, but that's a story for another day.
I have everything I wanted for the 0.1 release, I just need to understand how I publish it on crates.io now.

Raymarching of Suzanne with different interpolations

Az, to rust
@Az@mastodon.gamedev.place avatar
Az,
@Az@mastodon.gamedev.place avatar
Az, to rust
@Az@mastodon.gamedev.place avatar
bitinn, to gamedev
@bitinn@mastodon.gamedev.place avatar

Hey Tech Art folks, I have seen many variant of mesh-based outline shader but I haven’t seen one that maintain consistent outline width under different fov and camera distance.

I think we usually guess the width factor based on fov and distance as the correct calculation is too costly. Is there a mathematical sound yet fast solution?

Alternatively I would do the calculation in screen space (fov and distance no longer matters), I wonder if there are equivalent ways that I missed?

Az,
@Az@mastodon.gamedev.place avatar

@bitinn If you want the outline of, e.g., a selected object, you can draw it in a stencil and perform a JFA on the stencil to have arbitrary constant outline width. See https://bgolus.medium.com/the-quest-for-very-wide-outlines-ba82ed442cd9 for reference

Az, to rust
@Az@mastodon.gamedev.place avatar

Wrote a first grid-based sdf generation. 12 seconds for 1M5 triangles on a single thread for a 100x100x100 grid (1M points). Already quite happy with it as it's in the realm of "usable". The model was also a bad fit for the algorithm.

A signed distance field point cloud of a chessboard with all its pieces on it. It's mostly show the surface. On the left, an UI saying the models contains 934k vertices, 4M5 indices and 1M5 triangles. The generation took 11.3 seconds.

Az, to random
@Az@mastodon.gamedev.place avatar

After 20 minutes of scribbling, I re-discovered that the vertices of the equilateral triangle inscribing the unit circle were on the circle of radius 2. I guess I'd learned that in middle school...

Az,
@Az@mastodon.gamedev.place avatar
Az,
@Az@mastodon.gamedev.place avatar

@aeva thanks!

Az, to rust
@Az@mastodon.gamedev.place avatar

I was surprised not to find a mesh-to-sdf lib in rust, so I built my own with a visualizer, which also acts as a voxelizer. I wasn't sure what the state of the art was in this area (apart from a deep-learning approach), so I did my own thing.
A bit bruteforcy, but enough for my needs. I'll write a grid-specific version since that's my main use case and there's room for much faster than my current implementation.

Would a crate for this be useful to you?

A point cloud representing an sdf (signed distance field) of suzanne, the blender monkey head. On the left, an ui to control the color of the points outside, inside and on the surface, to change the surface width and point size.

Az, to genart
@Az@mastodon.gamedev.place avatar

Pixels. I just couldn't resist the temptation. Optimizing it to render in real-time was a struggle, but I really like the end result. (I hope I'm your first of the year, please tell me I am)

Squares stack up on a light blue background, forming an orange/brown shape. After about a hundred, they start moving and reveal the rickroll dance.

Az, to rust
@Az@mastodon.gamedev.place avatar

@sebastianlague latest video made me want to try his spatial grid algorithm. I've been wanting to try gpu-based spatial partitioning for quite a while and Sebastian's explanations are really nice to follow and wrap one's head around the concept.
But first, particles!

A thousand circle particles behaving fluid-like, constrained in a circle, sometimes erupting before stabilizing again.

Az,
@Az@mastodon.gamedev.place avatar

So I'm cheating a bit here since I worked on my own physics library as I implemented spatial grid partitioning, which was the beginning goal of this project. I now render 256k particles at 300fps. I wanted to reach 1M but with 80 fps it's not stable enough yet. :/
Now I need to think about mesh collisions and proper rendering I guess.

256k particles constrained in a slowly moving cube with a black background. Their color depends on their speed, red for fast particles, blue for slow. They are so small they are indistinguishable from each other, resulting in a fluid-like rendering.

Az,
@Az@mastodon.gamedev.place avatar

hello_sponza.jpg

Az,
@Az@mastodon.gamedev.place avatar
Az,
@Az@mastodon.gamedev.place avatar
Az,
@Az@mastodon.gamedev.place avatar

A fun consequence of my specular hack: models without a material are now mirrors.

Suzanne (Blender monkey head model) rendered as a mirror inside an hdri forest.

Az,
@Az@mastodon.gamedev.place avatar

Finally back to working on the simulation. It's time to dogfood my mesh_to_sdf crate for the fluid sim mesh collisions. Really happy with the first results, it works!
I need to find a better screen recorder though, ScreenToGif struggles and invents drops when it's running at 300fps...

The particle based fluid simulation falling on a dragon mesh, the particles follow the geometry.

Az,
@Az@mastodon.gamedev.place avatar
  • All
  • Subscribed
  • Moderated
  • Favorites
  • Leos
  • mdbf
  • ngwrru68w68
  • thenastyranch
  • InstantRegret
  • vwfavf
  • Youngstown
  • slotface
  • hgfsjryuu7
  • Durango
  • rosin
  • kavyap
  • PowerRangers
  • DreamBathrooms
  • anitta
  • magazineikmin
  • cisconetworking
  • khanakhh
  • ethstaker
  • osvaldo12
  • modclub
  • tacticalgear
  • everett
  • normalnudes
  • GTA5RPClips
  • tester
  • cubers
  • provamag3
  • All magazines