Sign in

Ghislain Girardot

@ghislaingir.bsky.social
1.2K followers 482 following 387 posts

UE content creator, specialized in tech art. I don't share my opinion much.

PostsRepliesMedia
Ghislain Girardot @ghislaingir.bsky.social · 02/05/2026
And yep, I have flicker issues upon swap. Still investigating :D Cheers.
010
Ghislain Girardot @ghislaingir.bsky.social · 02/05/2026
Anyway, 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/2026
This 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/2026
Instance 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/2026
Each '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/2026
Niagara 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/2026
Foliage 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/2026
I'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/2026
Nanite 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/2026
Thanks Christian, much appreciated! I'm joining Blue Twelve, the team behind Stray :)
050
Ghislain Girardot @ghislaingir.bsky.social · 21/02/2026
Thank 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/2026
I’ll also try to release as many of my remaining WIP projects as I can tomorrow on Patreon. www.patreon.com/c/GhislainGir
patreon.com
Get more from Ghislain Girardot on Patreon
creating educational UE projects and a video game!
150
Ghislain Girardot @ghislaingir.bsky.social · 21/02/2026
My 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/2026
Once 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/2026
As 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/2026
This 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.com
Understanding C++ Compute Shader Dispatch and RDG in Unreal Engine
YouTube 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/2026
Thanks, 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/2026
Thanks. 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/2026
Roger 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/2026
Noted, thanks!
020
Ghislain Girardot @ghislaingir.bsky.social · 13/01/2026
I'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/2026
At 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/2026
FVector3f 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/2026
oof, 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 Girardot
Jorrit Rouwe @jrouwe.bsky.social · 10/01/2026
A sneak peak of what I've been working on: A strand based hair system for Jolt Physics (WIP): youtu.be/Rl19G0c003o
youtu.be
A strand based hair simulation running on GPU
YouTube video by Jorrit Rouwe
49017
Ghislain Girardot @ghislaingir.bsky.social · 02/01/2026
Anyway, I hope you all had great holidays 🥰 Happy new year!! Cheers.
000
Ghislain Girardot @ghislaingir.bsky.social · 02/01/2026
It 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/2026
This helped immensely: github.com/2Retr0/Godot... This as well: github.com/tigershan113... And that one, ofc: dev.epicgames.com/community/le...
github.com
GitHub - tigershan1130/UE4_FFT_Ocean: FFT Ocean 4.26
FFT Ocean 4.26. Contribute to tigershan1130/UE4_FFT_Ocean development by creating an account on GitHub.
100
Ghislain Girardot @ghislaingir.bsky.social · 02/01/2026
Next: - 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/2026
Holidays 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/2025
Files are available as a Tier 3 reward on my Patreon: www.patreon.com/c/GhislainGir Thanks for the support <3 Cheers
patreon.com
Get more from Ghislain Girardot on Patreon
creating educational UE projects and a video game!
000
Ghislain Girardot @ghislaingir.bsky.social · 21/12/2025
www.youtube.com/watch?v=tDBA...
youtube.com
In-Depth Look at a Unique Approach to Foliage Interaction
YouTube video by Ghislain Girardot
131
Ghislain Girardot @ghislaingir.bsky.social · 21/12/2025
New 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 · 20/12/2025
I don't know :D
010
Ghislain Girardot @ghislaingir.bsky.social · 17/12/2025
dev.epicgames.com/documentatio... Amazing stuff!
dev.epicgames.com
Animation Rewind Debugger in Unreal Engine | Unreal Engine 5.7 Documentation | Epic Developer Community
With 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/2025
Damn, 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/2025
No 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/2025
Almost done with this. Hoping to be done with the breakdown video before holidays :)
0100
Ghislain Girardot @ghislaingir.bsky.social · 14/12/2025
Files 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.com
Get more from Ghislain Girardot on Patreon
creating educational UE projects and a video game!
020
Ghislain Girardot @ghislaingir.bsky.social · 14/12/2025
www.youtube.com/watch?v=2sLa...
youtube.com
Hacking your way around UE's Character Movement Component
YouTube 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/2025
It'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/2025
media.tenor.com
a 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/2025
random 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/2025
Shout-out to Sean Feeley: www.youtube.com/watch?v=MKX4...
youtube.com
Interactive Wind and Vegetation in 'God of War'
YouTube video by GDC Festival of Gaming
030
Ghislain Girardot @ghislaingir.bsky.social · 08/12/2025
When 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/2025
2019 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 · 03/12/2025
Merciiii 😊
010
Ghislain Girardot @ghislaingir.bsky.social · 03/12/2025
Really glad I could help. Thanks a lot!
010