Finally got around to post an new article on my blog today! Wrote about the rasterizer i'm currently tinkering with in rust, as well as the algorithm I've used (barycentric coordinates), as well as some optimizations that can be used early on so it dosn't run at 1 FPS for a couple of triangles x3

https://blog.lapyst.dev/posts/12-software-rasterizer-in-rust---part-1

#rust #rasterizer #graphicsprogramming #programming #softwaredevelopment #coding #blogging

Software Rasterizer in Rust - Part 1 - Mai Lapyst's Blog

Brad Woods Digital Garden

Notes about creative coding on the Web.

Brad Woods Digital Garden

Lol, I knew that debug vs release builds have some performance impact but never thought THAT much. So aparently my rust rasterizer can render 250 moving triangles at ~7 FPS in debug builts but a whoping 40 FPS (!!) in release builds. That's just: WTF? x3

#rust #graphicsprogramming #rasterizer #programming #softwaredevelopment

Had the itch to get back to basics with graphics this week so I wrote a software rasterizer in Rust. The rasterizer SIMD approach is based on @rygorous 's excellent tutorial series here: https://fgiesen.wordpress.com/2013/02/17/optimizing-sw-occlusion-culling-index/

Plenty of work to do like some kind of multithreading scheme and perhaps even textures. But it's always satisfying to see shaded triangles. I'll share the code at some point if I clean it up 🧹

#rust #graphicsprogramming

Just rendered my first Vulkan triangle in raw x86-64 Assembly.
No C, no C++, no Rust.
Pure MASM64. Pure pain. Pure control.
This is what it means to go full bare metal.
More to come. ⚙️🔥
https://github.com/IbrahimHindawi/masm64-vulkan

#Vulkan #AssemblyLanguage #MASM64 #Assembly #BareMetal #GameDev #GraphicsProgramming #HandmadeHero #LowLevelDev #x64 #OpenGLWho #TriangleOfVictory

Currently working on a little #rasterizer after watching the fantastic video from Sebastian Lague on yt.

Decided to write mine in #rust with some other techniques than the ones in the video, like using Barycentric Coordinates and calculating an AABB of an tri before iterating over the pixels. The video below showcases the rasterizer trying to process 250 random triangles. (Windowing and the FPS counter are done with #raylib)

Some artifacts here and there due to Z-ordering issues, but I hope to fix this soon.

End goal is to write it in such a way that I even might someday can use the rasterizer inside an custom rust #kernel / #os for basic 3d graphics, ofc to run
#doom on it!!

#programming #graphics #graphicsprogramming #development #software #softwaredevelopment

translated Vulkan headers to MASM64 compatible assembly files using pyhon/libclang and the program runs:
https://github.com/IbrahimHindawi/masm64-vulkan/blob/main/tools%2Fvulkan_core.asm
its gonna be a long road to get the vulkan triangle, lots of infrastructure setup 🚧
#Vulkan #Assembly #GameDev #EngineDev #Debugging #Handmade #LowLevel #masm64 #gametech #graphicsprogramming #vulkanengine

So I'm rendering stuff in the following order:

1. Background image
2. Background fluid color, opaque
3. Sprites etc
4. Foreground fluid color, transparent

So where there's fluid, you should not see the background image, right

SO WHY DO I SEE A BACKGROUND IMAGE

Worse, if I remove the call to draw the foreground fluid, OR make the foreground fluid transparent, IT BEHAVES AS I EXPECT AND THE BACKGROUND IMAGE GOES AWAY

What the actual fuck

#gamedev #graphics #opengl #graphicsprogramming

Particle Life simulation in browser using WebGPU

lisyarus blog