Ghislain Girardot @ghislaingir.bsky.social · 02/05/2026And yep, I have flicker issues upon swap. Still investigating :D Cheers. 010
Ghislain Girardot @ghislaingir.bsky.social · 02/05/2026Anyway, this was an interesting experiment. Not sure how scalable that is but at least I get to see vertices moving with no WPO and Nanite isn't using its slow programmable rasterizer path🤷 I feel like we took ten step backwards in so many ways with UE5 'next-gen' renderer🙄Meh 130
Ghislain Girardot @ghislaingir.bsky.social · 02/05/2026This is all in all quite similar to Nanite Assemblies and how wind is applied to them. Except since wind simulation can be shared across instances, Epic uses buckets so similarly oriented trees can reuse the same transforms. Big perf win. Not something you can do for interaction. 100
Ghislain Girardot @ghislaingir.bsky.social · 02/05/2026Instance bounds colliding > swap activated > instance scale 0 > each assembly is now individually rendered as a particle and sample a custom transform buffer. Energy close to 0 ? swap deactivated, particles scale to 0, instance scale back to normal 100
Ghislain Girardot @ghislaingir.bsky.social · 02/05/2026Each 'assembly' is a particle rendered via Niagara's experimental Nanite Renderer. The assembly transform buffer is computed on the CPU by walking up the tree hierarchy described in the data asset and using world-space angular spring constraints. 100
Ghislain Girardot @ghislaingir.bsky.social · 02/05/2026Niagara is used to spawn a bucket of 2048 particles. I use a single Nanite Renderer with 5 meshes (one for each assembly). Particle's mesh size is 0 at first (culled) and reads from a custom DI to get its transform from a custom assembly transform buffer. 100
Ghislain Girardot @ghislaingir.bsky.social · 02/05/2026Foliage tool is used to paint Nanite-enabled hierarchical instances. Upon overlap with collider, foliage instance's scale is set to 0. This technique is still widely used to swap static instances with physically-driven skeletal meshes. Same principle here, but not quite. 100
Ghislain Girardot @ghislaingir.bsky.social · 02/05/2026I'm using the same concept as Nanite Assemblies Foliage. My tree is an 'assembly'. A JSON is exported from Blender and read in UE to construct a Data Asset describing the foliage's initial hierarchy, assemblies & colliders. 100
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 · 22/02/2026Thanks Christian, much appreciated! I'm joining Blue Twelve, the team behind Stray :) 050
Ghislain Girardot @ghislaingir.bsky.social · 21/02/2026Thank you for the past five (or so) years. It’s been a pleasure discussing with each and every one of you, and I’m truly humbled by your support and generosity 🙏 Much love, Ghislain 190
Ghislain Girardot @ghislaingir.bsky.social · 21/02/2026I’ll also try to release as many of my remaining WIP projects as I can tomorrow on Patreon. www.patreon.com/c/GhislainGirpatreon.comGet more from Ghislain Girardot on Patreoncreating educational UE projects and a video game! 150
Ghislain Girardot @ghislaingir.bsky.social · 21/02/2026My Patreon will remain active, as it contains 5 years of work and hundreds of up-to-date UE projects, most of which are still very relevant despite the major workflow shifts introduced with UE5. 130
Ghislain Girardot @ghislaingir.bsky.social · 21/02/2026Once again, thank you all so much for the love and support over the past few years. It genuinely reshaped my life 🥰 150
Ghislain Girardot @ghislaingir.bsky.social · 21/02/2026As many of you already know, I’ll be starting a new job on Monday — and that’ll be it for me 🥲 No new content for the foreseeable future. 150
Ghislain Girardot @ghislaingir.bsky.social · 21/02/2026This was long overdue and took wayyyyy too long to produce, but here it is. There are still a few knowledge gaps I was hoping to fill, but I ran out of time. 📺 Watch here: www.youtube.com/watch?v=NxIa...youtube.comUnderstanding C++ Compute Shader Dispatch and RDG in Unreal EngineYouTube video by Ghislain Girardot 192
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/2026Thanks, that's handy. I knew alignment was a big topic haha but I never faced an actual issue because of it until now. I'll have to learn how to make better use of VS debug tools/RenderDoc. Could by handy... 000
Ghislain Girardot @ghislaingir.bsky.social · 13/01/2026Thanks. I'll have to see what Visual Studio offers for debugging structs :) I'll have to take a look at RenderDoc as well hehe 000
Ghislain Girardot @ghislaingir.bsky.social · 13/01/2026Roger that. But there's a broader understanding to have here I suppose. Using three float2 would be equally troublesome here, I think 🤔 Struct would still be padded to be 16bits aligned. 100
Ghislain Girardot @ghislaingir.bsky.social · 13/01/2026I'm a bit puzzled. Anyone care to explain what's going on like I'm a 5years old? 🥲What are the best practices to avoid getting owned again in the future? ty :d 210
Ghislain Girardot @ghislaingir.bsky.social · 13/01/2026At first I tried to add a float pad_ after float3 Location; and float3 Extent; in the HLSL struct but this didn't work. I suspect that's not where the compiler is adding padding to the CPP struct? Adding padding to both structs did work. 110
Ghislain Girardot @ghislaingir.bsky.social · 13/01/2026FVector3f says its 12bytes/4bytes aligned, FVector4f says its 16/16. I expected the struct size to be 40bytes but it's 48. I suppose the use of a FVector4f forces the whole struct to be 16bytes aligned? 110
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/2026Anyway, I hope you all had great holidays 🥰 Happy new year!! Cheers. 000
Ghislain Girardot @ghislaingir.bsky.social · 02/01/2026It feels like a nice way to end my UE content creator journey. I kinda started with water, so I'll end with water I guess =) I'm hoping to do more stuff with interactive foliage before that though 120
Ghislain Girardot @ghislaingir.bsky.social · 02/01/2026This helped immensely: github.com/2Retr0/Godot... This as well: github.com/tigershan113... And that one, ofc: dev.epicgames.com/community/le...github.comGitHub - tigershan1130/UE4_FFT_Ocean: FFT Ocean 4.26FFT Ocean 4.26. Contribute to tigershan1130/UE4_FFT_Ocean development by creating an account on GitHub. 100
Ghislain Girardot @ghislaingir.bsky.social · 02/01/2026Next: - Get a better understanding of the many existing FFT GPU/CPU algos - Cascades - Foam & velocity - Splashes - Copy UE's water quad tree - GPU Readback - Get more comfortable with UE's RHI - Clean code - Try using UE's FFTGPU - Make a video about it before end of February :| 100
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/2025Files are available as a Tier 3 reward on my Patreon: www.patreon.com/c/GhislainGir Thanks for the support <3 Cheerspatreon.comGet more from Ghislain Girardot on Patreoncreating educational UE projects and a video game! 000
Ghislain Girardot @ghislaingir.bsky.social · 21/12/2025www.youtube.com/watch?v=tDBA...youtube.comIn-Depth Look at a Unique Approach to Foliage InteractionYouTube video by Ghislain Girardot 131
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/2025dev.epicgames.com/documentatio... Amazing stuff!dev.epicgames.comAnimation Rewind Debugger in Unreal Engine | Unreal Engine 5.7 Documentation | Epic Developer CommunityWith the Rewind Debugger you can record real-time segments of projects and preserve the data for debugging workflows. 010
Ghislain Girardot @ghislaingir.bsky.social · 17/12/2025Damn, that's fantastic work! Thanks for sharing. Always a treat to see WIPs of complex systems like this :) 010
Ghislain Girardot @ghislaingir.bsky.social · 17/12/2025No worries about the wall of text :D sry for the late reply. I'd be curious to know how they did it for PoP as well. It appears UE has all the built-in tools to rewind anims and what not for debugging purposes, so I'm assuming it can be recycled for gameplay as well. I'd have to look at their method 110
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/2025Files are available as a Tier 3 reward on my Patreon: patreon.com/c/GhislainGir Thanks for the on-going support🥰Next video will be about GoW dual depth foliage interaction technique! And then more VFX/shader stuff :) Cheers!patreon.comGet more from Ghislain Girardot on Patreoncreating educational UE projects and a video game! 020
Ghislain Girardot @ghislaingir.bsky.social · 14/12/2025www.youtube.com/watch?v=2sLa...youtube.comHacking your way around UE's Character Movement ComponentYouTube video by Ghislain Girardot 140
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/2025It's all about managing a struct of data, that I agree :D State machine wise, it's complicated, at least in my head. Say anim A blends to anim B based on condition at X time, I don't quite see how you rewind from B > blend > A without building a separate state machine with reversed conditions etc. 110
Ghislain Girardot @ghislaingir.bsky.social · 13/12/2025media.tenor.coma man is making a funny face and saying `` i like the way you think '' .ALT: a man is making a funny face and saying `` i like the way you think '' . 020
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/2025Shout-out to Sean Feeley: www.youtube.com/watch?v=MKX4...youtube.comInteractive Wind and Vegetation in 'God of War'YouTube video by GDC Festival of Gaming 030
Ghislain Girardot @ghislaingir.bsky.social · 08/12/2025When the debug tools are almost as cool as the tool itself :) Here I'm debugging a slice of the dual depth map. Red is held height, green is faded height. Delta between the two + fade ratio gives the time, which can be used to play a cheap spring animation for the grass 140
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