Amélie Heinrich

Amélie Heinrich

@dispatchgraph.bsky.social

Graphics, ML

1.1K followers566 following306 posts

I am looking for full-time work starting October. I am a graphics programmer with a AAA experience (Ubisoft, Quantic), where I worked with real-time rendering, RT, and console dev kits. DMs open. RTs appreciated!

View full thread

Repository includes: - AGFX single header library - AGFX C++ header with RAII - AGFX EZ, a small header file targeted towards developers coming from D3D11/OpenGL - Shader compiler (lib and CLI) - ImGui backend - EZ and regular demo - HLSL shader include

Trained a small MLP to approximate the split-sum BRDF integration lookup table used in IBL rendering Architecture is a 6-layer MLP with GELU activations and a Sigmoid output layer. Takes NdotV and roughness as inputs and outputs the scale and bias terms of the split-sum approximation

View full thread

Raytraced sun shadows using Metal intersector. Runs like shit because I have an M2 Mac Air which doesn't support hardware raytracing, hopefully I get to upgrade soon so I can get mesh shaders execute indirect and hardware RT...

Amélie Heinrich reposted

First ReSTIR test using 16 reservoir proposal samples (right image) compared to uniform direction sampling and ignoring indirect light (left image) with many spread out lights (~3k light-emitting voxel faces here). Quite insane noise reduction going on in here!

I also wrote a simple GPU driven system so it's easier to plug culling later, though one thing I will say is that it did introduce a bunch of issues with bindless since you need to constantly make sure that the data in the instance buffer is up to date and valid.

View full thread

My system works very nicely, however if I write to a texture on the compute queue (e.g. generating mipmaps) then use it on the graphics queue I get a device lost. I tried to follow MSDN and transitioning to COMMON on compute then SRV on graphics but still get a device lost (page fault).

Hot take, I think it's a bit of a shame we don't have API level mipmap generation. I mean Metal has it with MTLBlitEncoder::generateMipmapsForTexture, but it'd allow vendors to make use of their architecture-optimized single pass downsampler (also not sure NVIDIA has one)

I'd take it a step further but it'd be nice if we had downsampling/upsampling intrinsincs in HLSL/MSL That way you can do SPD with a function (to use downsample 13 taps for Bloom for example, or max depth for HZB, you get the idea)

Turns out I was wrong, I can still use Metal Shader Converter even for D3D11....... yes...... good.....

Amélie Heinrich@dispatchgraph.bsky.social

Helping a friend out to make their D3D11/Metal RHI and I'm gonna have to play around with spirv-cross for the first time to get HLSL -> MSL with no bindless

The nodes look hella ugly but it's a WIP But yes I'm making a render graph editor to follow on Alan Wolfe's "render graph as a data asset" idea which I think is brilliant. Base logic works, need to work on UI/UX and serialization

Decided I'd merge my renderer into my engine since they were branched But before hand I decided to do some editor stuff, and I am additionally working on a Gigi like "render graph as a data asset" system... Will keep you guys updated