Ghislain Girardot @ghislaingir.bsky.social · 02/05/2026Nanite Programmable Path seems too costly to consider WPO for the most basic things... Uh, I don't like it. Feels like everything I'm tempted to do as a tech artist is no longer an option. Moving vertices used to be cheap :( So here's a hacky NO-WPO prototype 🧵 2152
Ghislain Girardot @ghislaingir.bsky.social · 21/02/2026🥳 That’s it — my new and final video is live on YouTube! In this 2h15 deep dive, I try to summarize everything I’ve learned over the past two months while diving head-first into C++ compute shader dispatch in UE and RDG. 1171
Ghislain Girardot @ghislaingir.bsky.social · 13/01/2026oof, I got owned so hard. First time trying to use a struct in a compute shader. Things did not go as planned... After an entire day of debugging, structs could be the only culprit. This causes alignment issues. Using float4/FVector4f fixes it 250
Reposted by Ghislain GirardotJorrit Rouwe @jrouwe.bsky.social · 10/01/2026A sneak peak of what I've been working on: A strand based hair system for Jolt Physics (WIP): youtu.be/Rl19G0c003oyoutu.beA strand based hair simulation running on GPUYouTube video by Jorrit Rouwe 49017
Ghislain Girardot @ghislaingir.bsky.social · 02/01/2026Holidays side project. I'm trying to join the FFT ocean gang😅 I'm now at least somewhat more comfortable with various GPU programming paradigms and UE's RHI & CPP compute shader dispatchs, but I've so many questions still😅 1161
Ghislain Girardot @ghislaingir.bsky.social · 21/12/2025New video on my YT! 🥳 A 55-minute deep dive into God of War's dual-depth foliage interaction technique. ⬇️🧵 181
Ghislain Girardot @ghislaingir.bsky.social · 17/12/2025Almost done with this. Hoping to be done with the breakdown video before holidays :) 0100
Ghislain Girardot @ghislaingir.bsky.social · 14/12/2025🥳 New video up on my YT! I’m showing how I hack around the Character Movement Component in Unreal Engine to build custom movement modes—all in Blueprints. It’s a bit old school, but it still works like a charm for simple games! 😊 1299
Ghislain Girardot @ghislaingir.bsky.social · 13/12/2025random thought of the day: Prince of Persia's SoT time rewind thingy in UE. How. Character animation specifically. 3, 2, 1, go🙃 341
Ghislain Girardot @ghislaingir.bsky.social · 08/12/20252019 God of War's Dual Depth implementation. I still have a few issues to solve 🤔 CPU Performance is 💩because Niagara's RigidMeshCollision interface lack a much needed rasterizing function, so I had to re-implement it from scratch in BPs for this proof of concept😅 1121
Ghislain Girardot @ghislaingir.bsky.social · 15/11/2025Soo, I've been diving into CommonUI lately... is it just me, or is keyboard focus still a bit of a mess? 🙃 Epic's 'Introduction to Common UI' is great, but they couldn't demo a working keyboard focus. Lots of hacks out there that kinda work, but not quite. Anyone else feel this? 310
Ghislain Girardot @ghislaingir.bsky.social · 11/11/2025🥳New 30-min video out! I dive into different ways to rasterize dynamic effects (explosions, attacks, etc.) using Niagara, and show how to apply them to foliage & particles. Check it out!⬇️ 1397
Ghislain Girardot @ghislaingir.bsky.social · 07/11/2025🥳 New Video Alert! In this 15-min deep dive, I walk through an experimental scriptable tool I built that fetches textures in material light functions to paint light dynamically, all in-editor. Check it out! 🔥 192
Ghislain Girardot @ghislaingir.bsky.social · 31/10/2025🥳 New video is out on my YT! It’s a 1h20m deep dive into 𝗦𝗶𝗴𝗻𝗲𝗱 𝗗𝗶𝘀𝘁𝗮𝗻𝗰𝗲 𝗙𝗶𝗲𝗹𝗱𝘀. I went a bit more in-depth than most UE tutorials out there — there’s a lot more to this topic than you might think! :D 🧵 2152
Reposted by Ghislain GirardotAri Arnbjörnsson @flassari.bsky.social · 14/10/2025We've been uploading a bunch of Unreal Fest talks to our Unreal Engine YouTube channel, such as this one from Tanglewood about taking the pain out of engine upgrades 👇 www.youtube.com/watch?v=vMEl...youtube.comTaking the Pain Out of Engine Upgrades | Unreal Fest Orlando 2025YouTube video by Unreal Engine 0162
Ghislain Girardot @ghislaingir.bsky.social · 02/10/2025I'm very confused about the Render Heightmap node. It seems to be using two channels to store the integer and fractional part of the world height but I've no idea where the range come from. It doesn't seem to be normalized based on the landscape Z bounds. 000
Ghislain Girardot @ghislaingir.bsky.social · 01/10/2025Hacky experiment. Tried to generate a distance field of an animated skeletal mesh using separable JFA. Performs well but I don't know how to make it signed/handle voxels inside the mesh 🫠 290
Ghislain Girardot @ghislaingir.bsky.social · 26/09/2025Another sdf-related tool. Nothing too fancy, this one bakes a 2D distance field for actors containing spline component(s). Might come in handy for shorelines etc. I'll do a breakdown of the scriptable tool BP in my upcoming video. 051
Ghislain Girardot @ghislaingir.bsky.social · 26/09/2025Every time I try to generate a material via BP/Python, I hit dead ends😩. Was hoping to generate a volumetric material asset, but apparently, you can't connect anything to the Extinction material property... Doing that in CPP isn't worth investing the time for my particular case. 021
Ghislain Girardot @ghislaingir.bsky.social · 25/09/2025A small tool I built the last two days. I'm using Geometry Scripting + Python to generate SDFs from any geometry in the scene and visualize the result. This is part of my next video dedicated to SDFs 0161
Ghislain Girardot @ghislaingir.bsky.social · 22/09/2025Character I prototyped last year. I had the idea for a small party game, but I could never quite find a healthy balance between personal and professional projects. My brain doesn’t let me do 50/50. 1100
Ghislain Girardot @ghislaingir.bsky.social · 14/09/2025What's the official statement on using distance fields in shaders? Afaik, they've been somewhat broken since 5.0. Workaround is to use a CVar to only use one low resolution cascade, I think, but it's far from ideal. Am I wrong? Any clues? Ty 240
Ghislain Girardot @ghislaingir.bsky.social · 12/09/2025Decided to try Position-Based Fluids for a first go at realtime fluids. I think I got the algorithm wrong, I've got weird boundary behavior. Meh, I suck at maths, it's an infinite pain to go through academic papers :( 1113
Ghislain Girardot @ghislaingir.bsky.social · 08/09/2025TIL that NDC has a new method for querying particle data in BP :) The basic callback interface was severely limited. This looks much more powerful. Neat! 162
Ghislain Girardot @ghislaingir.bsky.social · 02/09/2025Continuing with my Niagara/Grass experiments... Here, a regular grass clump mesh is instanced about 64 times and each card is injected into a buffer to be individually simulated. I still need to fix plenty of issues & write to velocity buffer to fix TAA artifacts but it's a start 0141
Ghislain Girardot @ghislaingir.bsky.social · 29/08/2025Core C-Side is my last golden berry, I swear. Golden B Sides and Farewell are on a whole other level, I want to keep what's left of my sanity. Still, fairly happy with my progression :shrug: 000
Ghislain Girardot @ghislaingir.bsky.social · 27/08/2025🥳🎥 New YouTube video just dropped! A quick 20-min dive into the basics of Niagara’s Dynamic Mesh interface + a breakdown of a more advanced (but flawed/experimental) use case. Link ⬇️ #UnrealEngine #Niagara #VFX 192
Ghislain Girardot @ghislaingir.bsky.social · 22/08/2025Alright, I'm done with my deep dive into Niagara's Dynamic Mesh interface. LOTS can be done with it. Frustrum culling is aggressive here for demonstration purposes. Overhead seems to be high: 1.3ms for generating this :( I'm sure my code isn't as optimized as could be tho. 1150
Ghislain Girardot @ghislaingir.bsky.social · 22/08/2025#UE5 #vfx #gamedev #indiedev🥳I just released a short video explaining how sphere tracing works and how to write a sphere tracing function in HLSL for collision detection in Niagara: www.youtube.com/watch?v=B4RR...youtube.comSphere Trace Collision in NiagaraYouTube video by Ghislain Girardot 0176
Ghislain Girardot @ghislaingir.bsky.social · 20/08/2025I was hoping to implement a lightweight version of Remedy’s — and more recently, Epic’s — GPU skeletal animated foliage using PCG and Niagara. vimeo.com/880842428?fl... But it turns out it’s not that straightforward, yet—unless I’m missing something. 🧵vimeo.comAlan Wake 2 GPU bone visualizationThis is "Alan Wake 2 GPU bone visualization" by Remedy Entertainment on Vimeo, the home for high quality videos and the people who love them. 240
Ghislain Girardot @ghislaingir.bsky.social · 20/08/2025Trying out Niagara's Dynamic Mesh interface to generate procedural grass on the GPU🧐 This is a single mesh with no vertex shader. Quadratic curves are animated and vertices are positioned along them to best face the camera, ribbon-style. Landscape is sampled for Z projection. 2243
Ghislain Girardot @ghislaingir.bsky.social · 18/08/2025Visually debugging vectors and positions in Niagara is important, and it's easy to do using the built-in DrawDebug interface. You can also achieve this with sprite or mesh renderers, custom bindings, and a single custom module. 🧵 1172
Ghislain Girardot @ghislaingir.bsky.social · 16/08/2025🥳New video just dropped on YouTube! 🎥 A 40-minute deep dive into building a Niagara-based swarm VFX — featuring particle-particle overlap solving, avoidance systems (particles, pawns, obstacles), surface projection, slope handling, GPU↔CPU↔GPU particle swapping, and more. 👇 1222
Ghislain Girardot @ghislaingir.bsky.social · 04/08/2025🥳 New video is live! I walk through building a lightweight custom state machine in Niagara to drive Vertex Animation Textures in Unreal Engine. Part 1 of a short (probably 2-part) series on Niagara state machines. 🧵 1153
Reposted by Ghislain GirardotSaiel @saiel.bsky.social · 01/08/2025⚡Sketch 004⚡ Post process practice. Mentor: @ghislaingir.bsky.social Class: www.youtube.com/playlist?lis... #gamedev #realtimevfx #rtvfx #techart #ue5 0144
Ghislain Girardot @ghislaingir.bsky.social · 01/08/2025#UE5 #vfx Making use of my Bone Animation Textures baker :) GPU Niagara Swarm with custom AI + nearby obstacle/particle avoidance and the ability to pull particles out of the sim to convert them to CPU AI agents, and push them back to the GPU sim. Still a few quirks to solve. 0111
Ghislain Girardot @ghislaingir.bsky.social · 25/07/2025#UE #Blender #UnrealEngine #tech #gamedev 🥳My 𝗚𝗮𝗺𝗲 𝗧𝗼𝗼𝗹𝘀 addon is finally complete and officially available as a Blender Extension! I spent way too much time coding it + writing a 150-page manual and over 2 hours of video tutorials. 😅 youtube.com/watch?v=hC2_... More detail in the🧵youtube.comGameTools Blender Extension - IntroductionYouTube video by Ghislain Girardot 55317
Ghislain Girardot @ghislaingir.bsky.social · 27/06/2025#UE5 random doodle. Some more FFT flipbook experiments. 4K 16bit flipbook + 2K*1K detail normal flipbook + precomputed splash position LUT. Not the best looking ocean out there for sure, but it's cheap and memory footprint isn't terrible I suppose :) 0284
Ghislain Girardot @ghislaingir.bsky.social · 19/06/2025github.com/GhislainGir/BlenderGameToolsDoc/wiki I’ve released a 150-page wiki for my Blender addon. The addon is currently available in early access on my Patreon for a limited time, to gather feedback, fix bugs, and more :)github.comHomeWiki for the BlenderGameTools repo & Blender/UE files - GhislainGir/BlenderGameToolsDoc 2267
Ghislain Girardot @ghislaingir.bsky.social · 04/06/2025#UE #Blender My tool is near completion. Last feature added allows you to bake custom data per bone. Here, it's packed in the alpha channel of the positional texture, making the hands and chest glow. This glow value is initially animated per bone in Blender. Kinda cool. 2112
Ghislain Girardot @ghislaingir.bsky.social · 04/06/2025#UE #UnrealFest Thanks for the goodies Epic 🥰🥰 020
Ghislain Girardot @ghislaingir.bsky.social · 25/05/2025#UE #UnrealEngine #Blender #gamedev Omg, bone animation textures baker is finally working! I've been fighting this for five days. Everything that could go wrong went wrong :D Now let's polish everything and aim for an alpha release soon-ish 😁 2447
Ghislain Girardot @ghislaingir.bsky.social · 17/05/2025Reinstalled Celeste a while back to get my revenge on this berry. I finally got it😁 020
Ghislain Girardot @ghislaingir.bsky.social · 13/05/2025#Blender #Python any blender coders out there? I've been stuck on something for a while🫤It can be summarized as follows: I need a PropertyGroup to point to another instance of the same PropertyGroup in a CollectionProperty. Is there a magic solution? More details in🧵 122
Ghislain Girardot @ghislaingir.bsky.social · 13/05/2025#Blender #UE #gamedev Continuing my efforts to create a Blender add-on that can bake just about any kind of data in just about any way known to man :D I've just finished implementing an improved version of Pivot Painter 2. 35111
Reposted by Ghislain GirardotNikita Lisitsa @lisyarus.bsky.social · 12/05/2025A new (and probably last) version of my in-browser particle life simulator with some highly-requested features: ✅ Toroidal (aka looping) map ✅ Copying URL to share your simulation with others ✅ Various UI improvements lisyarus.github.io/webgpu/parti... 47213
Ghislain Girardot @ghislaingir.bsky.social · 11/05/2025I've been enjoying coop sessions with my bro on Age of Darkness. Cool RTS! How can you replicate that crazy amount of data tho? Final wave can be have up to 80k units🤔Sending pos, health, unit type etc per unit results in many mb of data to send over the network #UE #gamedev 151
Reposted by Ghislain Girardot1011 - Ancestral Harvest @1011theory.bsky.social · 02/05/2025Plants now react to drum sounds! Still wip but already excited about how this is turning out. Big shoutout to @ghislaingir.bsky.social 's awesome Niagara + Render Target breakdown #indiegame #gamedev 0193