Unreal 5.3 - The Jump Flood Algorithm (or how to make wide outlines!)

  Рет қаралды 3,828

Enrique Ventura

Enrique Ventura

Күн бұрын

In this video I cover the basics of the Jump Flood Algorithm (JFA), and how to make the effect in Unreal Engine. This version uses a single Render Target, unlike other similar tutorials.
Ben Golus' Post on the subject: / the-quest-for-very-wid...
Shadertoy version: www.shadertoy.com/view/4syGWK

Пікірлер: 23
@zsenkrad
@zsenkrad 7 ай бұрын
here is the code : float bestDistance = 99999; float2 bestUV = float2(-1,-1); for(int y = -1; y= 0)&&(dist < bestDistance)){ bestDistance = dist; bestUV = tempVaule; } } } return float4(bestUV,0,0);
@EnriqueVenturaGames
@EnriqueVenturaGames 7 ай бұрын
Ty for posting it! :)
@gursimranvirdi9097
@gursimranvirdi9097 7 ай бұрын
for ue5.3.1 can anyone post that part 1 custom code
@butjok
@butjok 23 күн бұрын
I am glad KZbin recommended this channel. Thank you!
@fuzzyhenry2048
@fuzzyhenry2048 5 ай бұрын
I did some JFA ping-pong implementation before watching your video and you taught me a lot of pro tips besides the JFA. Thank you.
@alxleiva
@alxleiva 7 ай бұрын
Hola caballero, your channel is a gold mine! I recently discovered it and I've been binge watching every single video of yours.
@EnriqueVenturaGames
@EnriqueVenturaGames 7 ай бұрын
Muchas gracias! Thank you for the nice comment! :)
@0xSirius
@0xSirius 7 ай бұрын
Great tutorial, cant wait to see how you will implement it on the post process material
@omidmiresmaeili
@omidmiresmaeili 7 ай бұрын
Great tutorial. Just wondering if there is a c++ interface for drawing material to render targets to avoid blueprints (for its performance costs)
@EnriqueVenturaGames
@EnriqueVenturaGames 7 ай бұрын
Thank you! All these functions are available in the UKismetRenderingLibrary: api.unrealengine.com/INT/API/Runtime/Engine/Kismet/UKismetRenderingLibrary/index.html
@kiyan.videos
@kiyan.videos 7 ай бұрын
Hey! I loved your Spider-Verse tutorials, and I wonder if you ever plan on making a sort of choppy animation style tutorial. By choppy, I mean how in Spider-Verse, the animations have a lag effect.
@EnriqueVenturaGames
@EnriqueVenturaGames 7 ай бұрын
Thanks for the comment and the suggestion! I'll look into it and add it to the list of ideas for videos!
@Oleg.Haritonchik
@Oleg.Haritonchik 7 ай бұрын
Hello, I was inspired by your old demos of JFA post-prosess effects and somehow managed to implement it myself a while ago. It produced quiet nice results beyond outlines, but with very poor performance. Outlines lag on screen when character or object moves too fast. I discovered that performance is heavily dependent on RT size. I used 2 RT and ping-pong method and it gave me tops ~30 FPS with 1024x1024, and ~20 FPS with 2048x2048. I struggled several days to improve performance, tried to use only RG channels, use separate axis of JFA steps iteration and node-based implementation instead of HLSL in materials with no significant success. So I gave up on JFA until your last video. Your trick of using begin/end draw canvas instead of ping-pong saved me significant FPS, yet I'm still at ~48 FPS with 1024x1024, and ~32 FPS with 2048x2048. Can you cover performance topics in your upcoming video? And many thanks for sharing cools stuff.
@EnriqueVenturaGames
@EnriqueVenturaGames 7 ай бұрын
Maybe not the next one, but I added to the list of ideas for future videos, thanks for the suggestion! :) And yeah, the effect's performance depends a lot on the size of the texture. If you need to use this effect in runtime a lot, I would recommend looking into doing it on a lower resolution, and then upscaling and/or antialiasing the result.
@Oleg.Haritonchik
@Oleg.Haritonchik 7 ай бұрын
Well I know the exact problem of my method: I use 1 RT to capture scene, Final Color (RGB) as capture source and apply masking post-process (custom stencil) for scene capture component, the result is ~ 25/40 dive in FPS depending on size of RT. My goal was to write only custom depth in R channel and use it to initialize as a mask. Using only 1 channel in first RT greatly reduces the load, the JFA logic itself (only RG) eats ~5-10 FPS max. Unfortunately standard unreal node doesn't have custom depth as capture source and I'm not proficient in c++ to extract it from G-buffer. Maybe if you come up with some solution, please share it on your channel.@@EnriqueVenturaGames
@Labo3D
@Labo3D 7 ай бұрын
Random question, what's a hypotethical pratical application of this?
@EnriqueVenturaGames
@EnriqueVenturaGames 7 ай бұрын
I mention it at the beginning of the video: distance fields, wide outlines, voronoi diagrams, shadows... there are quite a few uses for this technique, and it is much more efficient and cheap than other methods
@adamcboyd
@adamcboyd 7 ай бұрын
Any chance you're interested in helping tighten up a developed game that is about to go into playtest after three years of silent development? Would love to see if you can help us optimize it in any way. Its a VR game in Unreal 5.3 and we are doing realistic graphics as opposed to all the cartoony games out there.
@EnriqueVenturaGames
@EnriqueVenturaGames 7 ай бұрын
Sorry but I'm already a full-time game dev, would love to have the time for that, sounds like an interesting project! Good luck though, and feel free to drop a comment with a link to your game! :)
@adamcboyd
@adamcboyd 7 ай бұрын
@@EnriqueVenturaGames did it eat my reply with the link?
@EnriqueVenturaGames
@EnriqueVenturaGames 7 ай бұрын
@@adamcboyd Weird, I don't even see it on the "pending review" comment list, maybe it is an automated YT thing
@adamcboyd
@adamcboyd 7 ай бұрын
@@EnriqueVenturaGames I know this is a couple days late but we're you able to see our old GDC trailer?
@EnriqueVenturaGames
@EnriqueVenturaGames 7 ай бұрын
@@adamcboyd couldn't find it, youtube ate the link; what is the project name, so I can search it?
Unreal 5.3 - Into the Spiderverse effects: choppy animations
10:21
Enrique Ventura
Рет қаралды 3,6 М.
Please be kind🙏
00:34
ISSEI / いっせい
Рет қаралды 133 МЛН
Они убрались очень быстро!
00:40
Аришнев
Рет қаралды 3,5 МЛН
Doesn’t he know this road?
0:48
Shardell
Рет қаралды 1 МЛН
Setting up a material in O3DE.
1:41
Lio Mizar
Рет қаралды 129
the shader that saved a million ships at sea
6:00
Stylized Station
Рет қаралды 123 М.
The Jump Flood Algorithm | Visualized and Explained
6:04
Benjamin Douglas
Рет қаралды 21 М.
Voronoi Tesselation Cloud Mural
2:17
Clint Fulkerson
Рет қаралды 320 М.
Solving mazes using a Pathfinding Algorithm -- visualized
0:24
Life in bits.
Рет қаралды 1 МЛН
Sweep line algorithm - Voronoi tessellation
0:52
Kevin Schaal
Рет қаралды 74 М.
Жайдарман | Туған күн 2024 | Алматы
2:23:02
Jaidarman OFFICIAL / JCI
Рет қаралды 164 М.
I Have Ducks Stuck In My Ears😰🐤👂
0:17
Giggle Jiggle
Рет қаралды 6 МЛН
Auf den Kopf gestellter Streich #Komödie
0:28
SKITS German
Рет қаралды 2,4 МЛН
Нищая спасла собаку🥺❤️
0:59
Trailer Film
Рет қаралды 7 МЛН