Awesome video! About missing things: I think there is a change in the distance between lines with distance, so when scanning happens on the distant fields the density of the lines is not that big to make everything of the same color. That makes the effect in the distance looking similar to the upclose/start area.
I was thinking the same, i slow down and pause the vid i can't figure out if they did it that way or is it because they doesn't scan the grass. I have 0 knowledge about it so i can't analyze it, just feel something is different.
I think the final effect looks pretty good. I also appreciate leaving in some of the mistakes and debugging during the process. Looking forward to part 2.
Fantastic video. I have a gut feeling that this will start to gain views over the next 2 weeks. Love the approach of working on it, going back to reference, restudying it, refining, repeat. Cus that's the same approach i used when studying and recreating movie frames in 3D and it's such a powerful method for revealing your own shortcomings while giving you a direct answer to whats the "correct" way to fix it. As for "things you missed" the two obvious things i noticed were that i think your line spacing is a bit too tight. And that the original effect seems to have a much stronger glow effect on the lines themselves towards the first line.
Thank you so much! I agree, the distances between the lines should be increased, and the post-processing effects play a huge role in the final look as well. The whole vibe of the Death Stranding is much darker and de-saturated, resulting in the lines popping much stronger against the background.
@GameDevBuddies it's awesome that you are eager to recreate such effects, it gives you great experience and enables you to create your own. Such a shame that I don't have enough time for this, I'm busy studying at university :)
You missed that the blue fade at the edge gets deeper (and deeper coloured) based on its speed perhaps. The distance from camera is an S-curve, so the speed is basically a normal distribution type thing with a speed bump in the mid section. It's very adherent to animation fundamentals. S-curve with stretching basically, so your eye can catch the movement.
I'm here just cause i'm a big fan of Death Stranding and the effect you made looks awesome! It also made me appreciate the work that went into the original even more. Keep it up, you're very talented and your video has a nice pacing. 👍👍👍
Great video. I love your approach for solving these issues. As for what I think can help and to make it look more like the game is to have the effect fade in at the start and not just appear so abruptly.
@@GameDevBuddies I noticed there is a fade in at the start of yours but from looking at the video you provided Death Stranding's fade starts farther away from the origin point. I may be wrong though. It doesn't matter anyway because you've done a fantastic job.
The in depth info on the terrain is something what's most interesting in the whole game. I tried to brute force it with bunch of ray casts and just spawn spheres above but it almost cooked my laptop. :D
Very nice analysis. I'm genuinely impressed this could be achieved only as a post processing step. Using just depth and screen position to recover world position, and then transform back to the origin for absolute distance is super clever.
Thank you! Yeah, if there's one tip I would like to permanently remember from this project it's the position reconstruction from the depth buffer, so useful.
Came across your video and figured I'd share my breakdown article of the full effect on 80 Level - "Recreating Death Stranding Odradek Terrain Scanner in Unity". (Apologies for not including the links - UA-cam doesn't like them.) It's got the scan line and terrain marker effects. The source code is included in the article, in case anyone wants to jump ahead! I'd be interested to see how you implement pt.2 in a different or better way 👍
The black circle on the opposite side of the scan expands slightly rather than statically displaying its shade. This is a very insightful video, thanks for making it! :)
I admit I never put much thought into how the scanning worked (from a developer point of view), always took it as just another game mechanic, but WOW now that I’ve seen this… makes me appreciate this game even more. Can’t wait for DS2!!
I'd definitely be interested in seeing how you approach the terrain markers. I have a rough idea of how KP do it in their game, but I've never done any shader stuff so this was all new to me.
Really enjoyed watching you recreate this with lots of attention to detail. If you look closely, there are also dotted diagonal lines that become unmasked by the effect but remain once the wave has passed. It's also somehow placing a red x at random points that the wave hits near the player. The red x start with their emission quickly cranked high then fade down. Could they also all be achieved in the post effect? I thought it was a particle system when I played.
Glad you liked it! Yeah those "dotted diagonal lines" are basically an optical illusion created from spawning a lot of icons in a grid pattern and then looking at the grid at a certain angle. I'll be trying to re-create these icons in a separate video so stay tuned for that if you're interested
I think they also have emission and anti aliasing for the lines. Partial Derivative can be used for anti-aliasing and just doing HDR color before bloom should work fine. Another trick is to make the line gaps non linear, larger gaps with further the distance.
I've relied on the built-in URP anti-aliasing techniques for the final image, but having a separate anti-aliasing pass just for the lines could be beneficial, I'll give it a test
Main difference, other than the absence of dots, is that the outline effect seems too harsh when the original was focused on the ground and not much above it (grass, trees).
I was wondering - what were you exactly thinking with "being too harsh"? The lines are too intensive? Too bright? Too dense? If you could explain a bit more that would awesome 😅
@@GameDevBuddies Sorry for the late response, what I meant is that the original effect mainly affects the ground at its lowest part, meaning that anything above the minimum height (grass, stones, trees, etc) was only slightly affected. With "harsh" I meant a mix of what you said, specifically the brightness/density/sharpness. The original effect was softer and so intuitive and well implemented that it seemed simple too. If you still don't get what I mean I'll be happy to explain it in another way.
@@MicheleC33 Got it, thanks for the detailed explanation. In the end, I implemented the basics of the effect, but the final juicy look comes from these small tweaks that give it that final polish and juiciness.
its funny i was playing death stranding recently and was wondering just about that however what was the real interesting part for me was how after the fact the terrain gets "mapped", you get blue points for places where to player will have no problem traversing accros, yellow for parts where the terrain was a bit rougher and then red for untraversable, this would happen when you had walls are high slopes that you couldnt traverse accross, i thing for what they also used this effect. I was wondering if they just instantiate particles in a grid pattern which get the data from the terrain and then deciding what icon to show, no idea if this a good aproach tho
It's a relief to know that I'm not the only one who can't enjoy games without wondering how they've achieved certain effects. I'm currently re-creating the part of the effect that spawns these icons above the terrain so stay tuned for that!
Not sure if this was mentioned, a big thing you missed was that the original scanning effect moves in steps, while yours smoothly spreads out. The original scanning effect goes from one scan line to another.
I got to say that even though I analyzed the effect frame by frame, I never noticed that it spreads in increments. I will definitely take a look at it to confirm it, this could be a game changer
i don't think the lines are a post process effect, i think the lines are actually cylinder meshes being drawn with a edge intersection test and based on the distance of the fragment position from the edge it colors the mesh, this probably improves performance impact of the effect as well as all the screen to world transforms for all the samples in the sobel filter seem quite expensive, although you will have to deal with overdaw
They may be using that approach, I can't tell for sure since I wasn't able to connect RenderDoc to the game in order to inspect the frame data :( However, if you pause the video while the effect is in it's starting phase, you can see that the main character also receives an outline. And that outline is only visible on pixels that are "inside" the effect (in screen space) - which pointed me toward a full-screen effect.
Looks amazing, the only thing I think you missed is that the spacing of the lines appears to increase over distance to maintain the same visual spread to the player. In your version it appears on screen like the density of the lines increases with distance, which I imagine is just foreshortening caused by perspective. Makes me appreciate the level of detail that Kojima has in their work as I would probably have just been happy with the version you created!
Thank you! The spacing of the lines has been mentioned in a couple of comments so I'm definitely investigating it. Correct, I'm not increasing their density, it's due to perspective.
It turned out nice in the end! I like how you presented your progress as a kind of detective investigation. :) Zelda - Breath of the Wild (2017) had a similar looking scanning effect (in yellow) that comes with the "Stasis" ability, though with a number of differences. You can see it in the video "Zelda: BOTW (Best Apple Farming Location) Satori Mountain". Maybe you could try to recreate this one in an upcoming video, by applying what you have learned here. It might get a lot of views I imagine.
Thank you so much! Yeah, I can see some similar techniques at first glance, but also a couple of different ones that could be interesting to explore and re-create. Thanks for pointing it out
They used the matrix from Forbidden West clearly, both games share the same engine (Decima) which I'm sure there is some sort of "prefab" already set up to do it.
This was really good. Like many, I find shaders to be something of an enigma, but this was a really good breakdown of one I would have never come across the solution to create myself. Also, you joke but only four days for the first part is pretty good, especially as a solo dev without anyone to consult. I wouldn't be surprised if the devs behind the game spent twice as long not because of a lack of skill but simply tweaking the values and trying to get everything right for the first pass.
Thank you! Yeah I think they've spent quite a bit of time to get the whole effect to look just right. Also, I've been trying to re-create something I could analyze frame-by-frame, while they were trying to invent something new, which is so much harder. However, they're probably much more experienced and efficient.
I think the outline line is bolder when it is farther away and in your solution it is very thin far away And also in the original effect the scan slows down a bit at the end before fading away
I'll tweak the spacing and thickness of the lines as the effect progresses and see if it improves, thanks! You're right about the slowing down part - mine also slows down but doesn't have that final slow movement before vanishing, which gives it that additional juiciness.
@GameDevBuddies "Different" but similar: the map ping/ in-world guidance trail "thing" in Dead Space was really cool too... (love cool utility effects).
This is a fantastic breakdown and an amazing recriation I think the obvious think you missed was the terrain it self. There is a lot less tall vegetation and trees in the original, and the vegetation that does exist is quite short and sparse. I also think the terrain is kept darker for a bit longer, but amazing work anyway!
Thank you so much! Yeah, I used the Unity's URP Terrain package to quickly set up a testing ground, without realizing that it could have a big impact on the final look of the effect. But, this also shows their clear design decision to lower the amount of vegetation so that the effect would look better.
You nailed it! But I think in the games, the scan goes at the surface of bodies of water without following their waves, not scanning their texture inside them. Yours scan the bottom of bodies of water.
I think by the end the only difference that stands out is simply the distance between each line...Death Stranding has like double the line spread which makes them not bundle up and overload the scenery at higher distance. Also I noticed that unrelated to the system itself, the amount of foliage in your scene is just too much for what the system was built for (specifically ground foliage...grass etc.). You can see in the example at 17:46 that there's effectively no distance to tell where there's grass on the ground, just a chaotic blue mess at that angle. In DS each patch of grass is far enough away from the next which as you scan makes them appear along the grid, not completely covering the grid.
Nice find, the distance between the lines should definitely be increased. Yeah, the differences in terrain and foliage definitely play a part. It could be a fun exercise to try and extract the environment assets from the game just to test the look of the effect on the exact terrain. Maybe that will come in one of future videos :)
(I just startet the video) My first instinct would be to have a vertical cylinder growing in diameter. But only render the cylinder where it intersects with the maps surfaces and give it an afterglow or fade effect to create the echo radar illusion. And if the jumps in size for the cylinders are big enough, it transitions from a smooth echo radar to a hight map simulation. I have no idea how recource heavy this would be. And maybe there are different methods, but like I said, that's my first thought.
That's a really cool idea! Maybe they've actually implemented it like this. Unfortunately, I can't tell for sure since I failed to open the game through RenderDoc and inspect its frame's contents.
I miss the little scanner thingy popping up and stowing away! It also would be an interesting question if you could make the scan effect spawn from the exact position of the little scanner head that pops up from the backpack?
You're right, that animation adds an additional layer of juiciness and personality to the effect. The scan effect spawns currently directly under the player, so it wouldn't be problematic to alter position beneath the scanner. I think that the original effect also starts on the ground and that the scanner head just has an additional light burst at the start
You're right! This is like the sixth or seventh comment for a game game that has a very similar mechanic, I had no idea these kind of effects are used so frequently
I think you are missing some fresnel glow, its visible at far distances on the terrain. Yesterday I was doing fullscreen shader in URP in Unity 6 and I used shadergraph for it. It can use Position node, scene color and scene depth. I was suprised that its a new video and its not working on latest version where first part it is already solved.
That's a really good idea to use the Fresnel effect for glow in the distance! I was thinking that the glow appears from multiple lines contributing to the same pixel area when they converge in the distance, but it could be that they've used Fresnel. I will take a look at it for sure. I love shadergraph for testing and simple shaders, but when things start to get a bit more complex I always switch to writing shader code
@@GameDevBuddies I also prefer code. You can use CustomFunctionNode and attach shader file to it. Thanks to that you still have features from Shadergraph, flexibility of the code and clean graph.
Yeah that custom function node can be real handy, I just don't like the naming of methods you have to use in order to plug it in the graph (but that's just my OCD). I actually started creating this effect in shader graph, but it got way to complicated to track so I switched to code.
Cool. You have gotten down the base of the effect, but seem to have missed a key visual element and actual *intended purpose* it has in Death Stranding: the red pings and persisting highlight of trippable edges on rocks and cliffs. You may have noticed Death Stranding is a game about hiking and the bipedal traversal of terrain. Assisting with that is the point of the scan mechanism. Check the second 923-224 of your video and play it on loop, pay special attention to the top side of the screen and the color Red. That is what will bring the visual effect together, plus tie it in to gameplay in a coherent and pertinent manner.
You're right. I was more focused on the visual aspect of the effect, which initially piqued my interest. However, after implementing the visual part, I couldn't resist completing the whole effect, so the red pings and icons are coming in part 2! Stay tuned :)
I don't know if it was the same team or have any relation to Kojima's current team, but I think they had a form of this dating back to Metal Gear Rising's Augment Mode. When I first saw this it reminded me of the effect when I first saw it on ps3.
That's really interesting, they probably have a suite of effects they reuse and pull into new projects - do you maybe have a link for the Metal Gear effect?
@@GameDevBuddies ua-cam.com/video/X0I6ADFLxjw/v-deo.html this should have a bunch of samples. It blips pretty fast though because games back in the day were close quarters.
Good job! its amazing~~! It reminds me of The Prometheus , the red lazer, terrain scanning Flying ball! And i have been thinking. You know there are 3d scanners like Polycam . What if we make an app that can scan your virtual 3d space ?! Who knows might come handy in our lifetime.
Thank you! Awesome idea! With developer access on an Apple Vision Pro headset you can get the raw camera image and depth data, so something similar could be achieved in AR. This could be a very interesting project :)
You're right, they're arguably the most vital point of the effect since they convey the gameplay related information to the player. Stay tuned for part 2 if you're interested in finding out how to re-create them
Would you consider adding the blue point grid in death stranding to your project tho it’s still really impressive of what you already did.Cant wait to see more from you 🥳
Very nice, instead of having those distinctly visible stages, can't you use one of the types of ease-in-out functions? Would make it much smoother Yours charges at the beginning and then does a sudden jump, while the one in the game seems to speed up and then slow down
Thanks! I'm actually using easing functions inside those distinct stages to smooth out the movement, but I guess I didn't manage to tweak the values to match the original effect. Maybe the speed up is too intense in my recreation.
I was wodnering where you got the robot model you used for the test Ive seen an animation using a lot of those similar bots all customized up. Is it a asset pack or something?
Insanely well done. I have a feeling this video is going to pop off super fast at some point soon. Out of interest, are you currently working on any projects to look forward to? I'd love to support you as this kind of work is incredible
Thank you very much! We're going to cover some very interesting topics in future videos, but I don't want to spoil too much. Let's just say that soon the fog will clear up :)
Why didn't you use a frame capture, like with NVIDIA Nsight? I think you are missing some technique that Death Stranding is using to reduce aliasing on the lines. I think parts of the core way you are drawing the line is wrong; solving a similar problem I think the correct approach would be thinking of the line as an SDF and using that to apply AA techniques (see SIGGRAPH 2020 Manifold Garden Rendering Retrospective). Their technique offers an interesting approach of using a mask to make this expensive check much cheaper, which I believe would work here.
I tried using Render Doc to capture the frame since I prefer it to NSight, but the game kept crashing at launch and I just couldn't get it to work properly. Have you managed to grab a frame capture via NSight? Thanks for the SIGGRAPH talk, I took a look at it and it's really impressive. I focused more on covering every part of the scan lines effect in the video, not so much on the crispiness of the lines themselves. I just wanted to get them appear correctly based on distance from the origin of the effect. However, your comment made me explore the current setup and you were right, the lines were looking way too aliased at certain angles. This led me towards discovering an implementation mistake I made when calculating the Sobel Filter. I fixed it now and they're looking much sharper. So congratulations, you're getting a mention in the part 2 of the video!
why not just program an extending cone that highlights the existing convergent vertices the polygons of the terrain/objects already have and make the highlight fade quickly in and slowly out?
Good question! It's a solid idea but it would heavily depend on the distribution of the vertices of the underlying geometry. Also, everything would have to be drawn twice which could take longer than a fullscreen effect, especially in complex scenes. But could a similar effect be achieved with the proposed solution? I think yes!
@@GameDevBuddies Also, increasing the distance between lines, as the scan gets farther away. Possibly lowering the amount of lines blocking the terrain? To the players perspective it may look like the lines have the same amount of screen space between them.
Awesome video! About missing things: I think there is a change in the distance between lines with distance, so when scanning happens on the distant fields the density of the lines is not that big to make everything of the same color. That makes the effect in the distance looking similar to the upclose/start area.
Damn that's so clever dude, would never thought of that, I'll test it to see how it looks. Thank you!
This was amazing. Subscribed, and if you do a follow up implementing this guys suggestion or whatever I’ll be there. Thanks for sharing :)
@@GameDevBuddiesOh, i didn't finish watching so i didn't catch that the script was in the description 😂 thank you!
I was thinking the same, i slow down and pause the vid i can't figure out if they did it that way or is it because they doesn't scan the grass.
I have 0 knowledge about it so i can't analyze it, just feel something is different.
I think the final effect looks pretty good. I also appreciate leaving in some of the mistakes and debugging during the process. Looking forward to part 2.
Thank you!
Fantastic video. I have a gut feeling that this will start to gain views over the next 2 weeks. Love the approach of working on it, going back to reference, restudying it, refining, repeat. Cus that's the same approach i used when studying and recreating movie frames in 3D and it's such a powerful method for revealing your own shortcomings while giving you a direct answer to whats the "correct" way to fix it.
As for "things you missed" the two obvious things i noticed were that i think your line spacing is a bit too tight. And that the original effect seems to have a much stronger glow effect on the lines themselves towards the first line.
Thank you so much!
I agree, the distances between the lines should be increased, and the post-processing effects play a huge role in the final look as well. The whole vibe of the Death Stranding is much darker and de-saturated, resulting in the lines popping much stronger against the background.
Surprised to see you there but it's fun to know you like to do 3d VFX
I was just recomended this video by the algorithm and what do you know, its been two weeks lol
I was shocked when i first time used scanner. I immediately fell in love with this game. Can't wait for part 2!
Me too! But as you can see, I went a bit crazy and stopped playing the game for a while 😅
@GameDevBuddies it's awesome that you are eager to recreate such effects, it gives you great experience and enables you to create your own. Such a shame that I don't have enough time for this, I'm busy studying at university :)
@@doll9576 Ah yeah, I've been there. Life gets a bit easier after though (at least when it comes to time management), so stay strong 💪
game development is just out something else. as a backend software developer myself, I have huge respect for you guys.
Thank you so much!
You are half way there bro, the rest is just banging your head against the wall until it works.
That looks amazing! Great detective work and implementation.
Thank you so much!
You missed that the blue fade at the edge gets deeper (and deeper coloured) based on its speed perhaps. The distance from camera is an S-curve, so the speed is basically a normal distribution type thing with a speed bump in the mid section. It's very adherent to animation fundamentals. S-curve with stretching basically, so your eye can catch the movement.
Nice, I'll take a look at the S-curves to find out more, thanks for pointing that out!
An S-curve is basically the smoothstep function in shaders. Instead of using inverse lerp with pow you can just use smoothstep.
I'm here just cause i'm a big fan of Death Stranding and the effect you made looks awesome!
It also made me appreciate the work that went into the original even more.
Keep it up, you're very talented and your video has a nice pacing. 👍👍👍
Thank you so much!
If you recreating elements from our favorite games became a series, your channel is going to blow tf up
We will see. If it does - you're the first to predict it!
Reply to this comment next year to see the progress :)
Great video. I love your approach for solving these issues. As for what I think can help and to make it look more like the game is to have the effect fade in at the start and not just appear so abruptly.
Thank you! Yeah, it currently also fades-in at the start, but I guess it's too abrupt so it could be unnoticeable.
@@GameDevBuddies I noticed there is a fade in at the start of yours but from looking at the video you provided Death Stranding's fade starts farther away from the origin point. I may be wrong though. It doesn't matter anyway because you've done a fantastic job.
I’m just happy seeing Adam again 👏
I'm glad that somebody finally recognized him!
i really hope neil blomkamp makes a few more feature length episodes.
This is absolutely amazing man, well done! Id love to see you implement this into your own little game too. Wonderful recreation.
Thank you so much!
The in depth info on the terrain is something what's most interesting in the whole game. I tried to brute force it with bunch of ray casts and just spawn spheres above but it almost cooked my laptop. :D
I agree, they hold the most crucial information for the game. Stay tuned for part 2 and see if I managed to fry my PC as well :)
This video was super interesting and very well paced, keep up the good work!
Thank you so much!
Very nice analysis. I'm genuinely impressed this could be achieved only as a post processing step. Using just depth and screen position to recover world position, and then transform back to the origin for absolute distance is super clever.
Thank you! Yeah, if there's one tip I would like to permanently remember from this project it's the position reconstruction from the depth buffer, so useful.
Came across your video and figured I'd share my breakdown article of the full effect on 80 Level - "Recreating Death Stranding Odradek Terrain Scanner in Unity".
(Apologies for not including the links - UA-cam doesn't like them.)
It's got the scan line and terrain marker effects. The source code is included in the article, in case anyone wants to jump ahead! I'd be interested to see how you implement pt.2 in a different or better way 👍
That's a really nice and detailed breakdown, good job! Part 2 is in the making, stay tuned
That’s really impressive and inspiring. Thanks for the video!
Glad you enjoyed it, thank you!
The black circle on the opposite side of the scan expands slightly rather than statically displaying its shade.
This is a very insightful video, thanks for making it! :)
Nice find, thank you!
Imagine you did all of this for a death stranding dev to comment “yo bro just ask next time 😭🙏🏿”
🤣🤣
However, I could not have appreciated the amount of work that went into it if I had not tried to recreate it myself
@2:50 I.... You... Wow.. I now know why I had such a hard time implementing something in the past. God damnit 😅
It's a relief to hear that I'm not the only one constantly experiencing these mysterious setbacks 😅
WOOWWW LOOKS BEAUTIFUL!!!!
Thank you very much!
Wonderful analysis, I learned a lot from your experience!
Thank you!
I admit I never put much thought into how the scanning worked (from a developer point of view), always took it as just another game mechanic, but WOW now that I’ve seen this… makes me appreciate this game even more. Can’t wait for DS2!!
Thanks, was interesting to watch step by step 🙌
Thanks, glad you liked it!
Very nice! I can't wait for more videos just like this. I love the technical details.
Thank you! Glad you enjoyed it
Awesome work! It looks 99% identical!
A video with the dots thingy would be very cool!
Thank you! It's in the making, stay tuned :)
Dude you made it so nice and published the code, it is an awesome work, keep it up!
Thank you so much!
Thank you for highlighting this feature that some may undervalue, and for the great effort you put into explaining how it works. 👏
Thank you so much!
That looked so cool! I envy you for having the knowledge to create that
Thank you, this means a lot!
I'd definitely be interested in seeing how you approach the terrain markers. I have a rough idea of how KP do it in their game, but I've never done any shader stuff so this was all new to me.
Glad to hear that, stay tuned for the part 2
This looks 🔥🔥🔥. I love not understanding it all but was able to be amazed at the end 😂
Thank you!
dope analysis and result!
Thanks!
Really enjoyed watching you recreate this with lots of attention to detail. If you look closely, there are also dotted diagonal lines that become unmasked by the effect but remain once the wave has passed. It's also somehow placing a red x at random points that the wave hits near the player. The red x start with their emission quickly cranked high then fade down. Could they also all be achieved in the post effect? I thought it was a particle system when I played.
Glad you liked it!
Yeah those "dotted diagonal lines" are basically an optical illusion created from spawning a lot of icons in a grid pattern and then looking at the grid at a certain angle. I'll be trying to re-create these icons in a separate video so stay tuned for that if you're interested
Looking really cool!
Thanks!
you can modulo the world coordinate to get repeating UVs and get circles on terrain easily
Great vid and breakdown of the effect.
One thing that i'd love to see added are the markings where terrain is dangerous or impassable (marked by X's)
Thank you! Breakdown of the markings is coming in the part 2, so stay tuned :)
I think they also have emission and anti aliasing for the lines. Partial Derivative can be used for anti-aliasing and just doing HDR color before bloom should work fine. Another trick is to make the line gaps non linear, larger gaps with further the distance.
I've relied on the built-in URP anti-aliasing techniques for the final image, but having a separate anti-aliasing pass just for the lines could be beneficial, I'll give it a test
Main difference, other than the absence of dots, is that the outline effect seems too harsh when the original was focused on the ground and not much above it (grass, trees).
I was wondering - what were you exactly thinking with "being too harsh"? The lines are too intensive? Too bright? Too dense? If you could explain a bit more that would awesome 😅
@@GameDevBuddies Sorry for the late response, what I meant is that the original effect mainly affects the ground at its lowest part, meaning that anything above the minimum height (grass, stones, trees, etc) was only slightly affected.
With "harsh" I meant a mix of what you said, specifically the brightness/density/sharpness.
The original effect was softer and so intuitive and well implemented that it seemed simple too.
If you still don't get what I mean I'll be happy to explain it in another way.
@@MicheleC33 Got it, thanks for the detailed explanation. In the end, I implemented the basics of the effect, but the final juicy look comes from these small tweaks that give it that final polish and juiciness.
WOW, great result!
I've noticed that circles become less dense with distance, and it should be easy to implement
Thank you!
You're right, I'm definitely implementing that change, thanks
Not as refined but looks very good. 1 man can do nearly the same as multi million dev company. Very cool
Thank you!
its funny i was playing death stranding recently and was wondering just about that however what was the real interesting part for me was how after the fact the terrain gets "mapped", you get blue points for places where to player will have no problem traversing accros, yellow for parts where the terrain was a bit rougher and then red for untraversable, this would happen when you had walls are high slopes that you couldnt traverse accross, i thing for what they also used this effect. I was wondering if they just instantiate particles in a grid pattern which get the data from the terrain and then deciding what icon to show, no idea if this a good aproach tho
It's a relief to know that I'm not the only one who can't enjoy games without wondering how they've achieved certain effects. I'm currently re-creating the part of the effect that spawns these icons above the terrain so stay tuned for that!
@@GameDevBuddies looking forward to it chief!🫡
Not sure if this was mentioned, a big thing you missed was that the original scanning effect moves in steps, while yours smoothly spreads out. The original scanning effect goes from one scan line to another.
I got to say that even though I analyzed the effect frame by frame, I never noticed that it spreads in increments. I will definitely take a look at it to confirm it, this could be a game changer
i don't think the lines are a post process effect, i think the lines are actually cylinder meshes being drawn with a edge intersection test and based on the distance of the fragment position from the edge it colors the mesh, this probably improves performance impact of the effect as well as all the screen to world transforms for all the samples in the sobel filter seem quite expensive, although you will have to deal with overdaw
They may be using that approach, I can't tell for sure since I wasn't able to connect RenderDoc to the game in order to inspect the frame data :(
However, if you pause the video while the effect is in it's starting phase, you can see that the main character also receives an outline. And that outline is only visible on pixels that are "inside" the effect (in screen space) - which pointed me toward a full-screen effect.
@@GameDevBuddies hmm yeah you're right actually
Yeah my first thought aswell
Looks amazing, the only thing I think you missed is that the spacing of the lines appears to increase over distance to maintain the same visual spread to the player.
In your version it appears on screen like the density of the lines increases with distance, which I imagine is just foreshortening caused by perspective.
Makes me appreciate the level of detail that Kojima has in their work as I would probably have just been happy with the version you created!
Thank you! The spacing of the lines has been mentioned in a couple of comments so I'm definitely investigating it. Correct, I'm not increasing their density, it's due to perspective.
17:41 in DS distance between scan lines and thickness of scan lines increases the farther scan goes.
Interesting find, why do you think that their thickness increases?
It turned out nice in the end! I like how you presented your progress as a kind of detective investigation. :) Zelda - Breath of the Wild (2017) had a similar looking scanning effect (in yellow) that comes with the "Stasis" ability, though with a number of differences. You can see it in the video "Zelda: BOTW (Best Apple Farming Location) Satori Mountain". Maybe you could try to recreate this one in an upcoming video, by applying what you have learned here. It might get a lot of views I imagine.
Thank you so much!
Yeah, I can see some similar techniques at first glance, but also a couple of different ones that could be interesting to explore and re-create. Thanks for pointing it out
They used the matrix from Forbidden West clearly, both games share the same engine (Decima) which I'm sure there is some sort of "prefab" already set up to do it.
This was really good. Like many, I find shaders to be something of an enigma, but this was a really good breakdown of one I would have never come across the solution to create myself. Also, you joke but only four days for the first part is pretty good, especially as a solo dev without anyone to consult. I wouldn't be surprised if the devs behind the game spent twice as long not because of a lack of skill but simply tweaking the values and trying to get everything right for the first pass.
Thank you!
Yeah I think they've spent quite a bit of time to get the whole effect to look just right. Also, I've been trying to re-create something I could analyze frame-by-frame, while they were trying to invent something new, which is so much harder. However, they're probably much more experienced and efficient.
I think the outline line is bolder when it is farther away and in your solution it is very thin far away
And also in the original effect the scan slows down a bit at the end before fading away
I'll tweak the spacing and thickness of the lines as the effect progresses and see if it improves, thanks!
You're right about the slowing down part - mine also slows down but doesn't have that final slow movement before vanishing, which gives it that additional juiciness.
I did something like this in my game design class and took a little bit of a different approach. I think you did way better than me.
I am curious about the approach you took, could you share some info?
I liked the "sonar/ Lidar ping" in The Division (that and the "point cloud hologram" were pretty cool. 🤔👍).
I just took a look at it - damn it's so clean and smooth! And on a first glance, it looks like it could be created with a similar technique
@GameDevBuddies "Different" but similar: the map ping/ in-world guidance trail "thing" in Dead Space was really cool too... (love cool utility effects).
6:28 ゲーム開発者ってみんな、こんな論文みたいな記事を読んでるんですか?
DSの開発者も、あなたもすごい
I think so :)
Thank you so much!
deserves more attention!
Thank you!
Fantastic work! Love it
Thank you!
Nice content man, thanks for sharing!
Thank you!
it looks great, and it doesn't have to be exactly like the original amazing job 👏
Thank you!
This is a fantastic breakdown and an amazing recriation
I think the obvious think you missed was the terrain it self.
There is a lot less tall vegetation and trees in the original, and the vegetation that does exist is quite short and sparse.
I also think the terrain is kept darker for a bit longer, but amazing work anyway!
Thank you so much!
Yeah, I used the Unity's URP Terrain package to quickly set up a testing ground, without realizing that it could have a big impact on the final look of the effect. But, this also shows their clear design decision to lower the amount of vegetation so that the effect would look better.
@@GameDevBuddies The fact the effect still works with this type of terrain, is a testament to the effect and your recriation
14:05 its not that the first line is white. Its that lines are white as they appear and then fade into blue then into transparent as scan moves on.
very cool video. i would love to see the next part!!
Thank you! Stay tuned for more :)
Amazing video! Thaks for spreading the knowledge!
Thank you!
Also if you can change the lighting to an overcast (pretty dull overall) it will make the effect pop more .
Yeah, their desaturated look of the whole game surely contributes to this effect even more
You nailed it! But I think in the games, the scan goes at the surface of bodies of water without following their waves, not scanning their texture inside them. Yours scan the bottom of bodies of water.
You're right! Nice find, I overlooked that completely
@@GameDevBuddies great to be of help!
When a game is designed by one of the legends like KOJIMA, then no doubt! Its good!
I think by the end the only difference that stands out is simply the distance between each line...Death Stranding has like double the line spread which makes them not bundle up and overload the scenery at higher distance.
Also I noticed that unrelated to the system itself, the amount of foliage in your scene is just too much for what the system was built for (specifically ground foliage...grass etc.). You can see in the example at 17:46 that there's effectively no distance to tell where there's grass on the ground, just a chaotic blue mess at that angle. In DS each patch of grass is far enough away from the next which as you scan makes them appear along the grid, not completely covering the grid.
Nice find, the distance between the lines should definitely be increased. Yeah, the differences in terrain and foliage definitely play a part. It could be a fun exercise to try and extract the environment assets from the game just to test the look of the effect on the exact terrain. Maybe that will come in one of future videos :)
How the hell does this have only 900 likes. Great video, let's pray to the algorithm gods to bless this 🙏
Thank you!
(I just startet the video) My first instinct would be to have a vertical cylinder growing in diameter. But only render the cylinder where it intersects with the maps surfaces and give it an afterglow or fade effect to create the echo radar illusion. And if the jumps in size for the cylinders are big enough, it transitions from a smooth echo radar to a hight map simulation.
I have no idea how recource heavy this would be. And maybe there are different methods, but like I said, that's my first thought.
That's a really cool idea! Maybe they've actually implemented it like this. Unfortunately, I can't tell for sure since I failed to open the game through RenderDoc and inspect its frame's contents.
A second though (aka correction), just in case someone likes this idea:
A cylinder would be good for radar. For echo one might want to use a sphere.
absolutely incredible
You're too kind, thank you
insanely cool video thanks for sharing
Thank you, glad you liked it
I miss the little scanner thingy popping up and stowing away!
It also would be an interesting question if you could make the scan effect spawn from the exact position of the little scanner head that pops up from the backpack?
You're right, that animation adds an additional layer of juiciness and personality to the effect. The scan effect spawns currently directly under the player, so it wouldn't be problematic to alter position beneath the scanner. I think that the original effect also starts on the ground and that the scanner head just has an additional light burst at the start
Looks as good. Well done.
Thank you!
Looks very cool i hope you make a video with the little dots
Thank you! The video is in the making :)
Stellar blade has a similar style of scan too that is a neat effect
You're right! This is like the sixth or seventh comment for a game game that has a very similar mechanic, I had no idea these kind of effects are used so frequently
Missing:
1. Tiny circles
2. Foot prints
They're coming in part 2, stay tuned
Great work pal
Thank you!
Dope👌, Now do the effect when the animus is loading the world in assassin's creed origins, you will love it 😅
Thank you! Yeah, that would be an interesting challenge
I think you are missing some fresnel glow, its visible at far distances on the terrain. Yesterday I was doing fullscreen shader in URP in Unity 6 and I used shadergraph for it. It can use Position node, scene color and scene depth. I was suprised that its a new video and its not working on latest version where first part it is already solved.
That's a really good idea to use the Fresnel effect for glow in the distance! I was thinking that the glow appears from multiple lines contributing to the same pixel area when they converge in the distance, but it could be that they've used Fresnel. I will take a look at it for sure.
I love shadergraph for testing and simple shaders, but when things start to get a bit more complex I always switch to writing shader code
@@GameDevBuddies I also prefer code. You can use CustomFunctionNode and attach shader file to it. Thanks to that you still have features from Shadergraph, flexibility of the code and clean graph.
Yeah that custom function node can be real handy, I just don't like the naming of methods you have to use in order to plug it in the graph (but that's just my OCD). I actually started creating this effect in shader graph, but it got way to complicated to track so I switched to code.
Cool. You have gotten down the base of the effect, but seem to have missed a key visual element and actual *intended purpose* it has in Death Stranding: the red pings and persisting highlight of trippable edges on rocks and cliffs. You may have noticed Death Stranding is a game about hiking and the bipedal traversal of terrain. Assisting with that is the point of the scan mechanism. Check the second 923-224 of your video and play it on loop, pay special attention to the top side of the screen and the color Red. That is what will bring the visual effect together, plus tie it in to gameplay in a coherent and pertinent manner.
You're right. I was more focused on the visual aspect of the effect, which initially piqued my interest. However, after implementing the visual part, I couldn't resist completing the whole effect, so the red pings and icons are coming in part 2! Stay tuned :)
I don't know if it was the same team or have any relation to Kojima's current team, but I think they had a form of this dating back to Metal Gear Rising's Augment Mode. When I first saw this it reminded me of the effect when I first saw it on ps3.
That's really interesting, they probably have a suite of effects they reuse and pull into new projects - do you maybe have a link for the Metal Gear effect?
@@GameDevBuddies ua-cam.com/video/X0I6ADFLxjw/v-deo.html this should have a bunch of samples. It blips pretty fast though because games back in the day were close quarters.
@@wywarren Very nice find! It even has a very similar sound when the scan is being dispatched.
Distance between scanlines should increase with distance, probably by something distance squaredy
Good job! its amazing~~! It reminds me of The Prometheus , the red lazer, terrain scanning Flying ball! And i have been thinking. You know there are 3d scanners like Polycam . What if we make an app that can scan your virtual 3d space ?! Who knows might come handy in our lifetime.
Thank you!
Awesome idea! With developer access on an Apple Vision Pro headset you can get the raw camera image and depth data, so something similar could be achieved in AR. This could be a very interesting project :)
I think the little coordinated dots add a lot to the effect in Death Stranding
You're right, they're arguably the most vital point of the effect since they convey the gameplay related information to the player. Stay tuned for part 2 if you're interested in finding out how to re-create them
Damn the finished shader looks very very cool and almost the same as the original !
Thank you!
16:37 noticed a typo, "aninationPercentage" 😅
That's a sharp eye you've got! Thanks, I'll fix it
Would you consider adding the blue point grid in death stranding to your project tho it’s still really impressive of what you already did.Cant wait to see more from you 🥳
Spoiler alert - it's in the making :)
Please remake more stuff from Death Stranding! It is my favorite game ^^
Then you're going to love the part 2 video! Stay tuned :)
the earliest game i can think of with this is Battlezone one's site camera ability.
Nice work
Thank you!
Very nice, instead of having those distinctly visible stages, can't you use one of the types of ease-in-out functions? Would make it much smoother
Yours charges at the beginning and then does a sudden jump, while the one in the game seems to speed up and then slow down
Thanks!
I'm actually using easing functions inside those distinct stages to smooth out the movement, but I guess I didn't manage to tweak the values to match the original effect. Maybe the speed up is too intense in my recreation.
obviously replicating an effect is faster than making it from scratch so it makes me wonder how much time and experimentation went into that scan.
Yeah, they did such an amazing job. I definitely appreciate it more after trying to re-create it
I was wodnering where you got the robot model you used for the test
Ive seen an animation using a lot of those similar bots all customized up. Is it a asset pack or something?
The robot is from the Unity's Adam package, you can find the link to the package in the description (at the bottom)
I hope you do that follow up
You can count on it!
TGA 2024- Best visual replication awards
We're still waiting for our golden copier trophy 😄
Insanely well done. I have a feeling this video is going to pop off super fast at some point soon.
Out of interest, are you currently working on any projects to look forward to? I'd love to support you as this kind of work is incredible
Thank you very much!
We're going to cover some very interesting topics in future videos, but I don't want to spoil too much. Let's just say that soon the fog will clear up :)
Wow, that's amazing
Thank you!
Why didn't you use a frame capture, like with NVIDIA Nsight? I think you are missing some technique that Death Stranding is using to reduce aliasing on the lines. I think parts of the core way you are drawing the line is wrong; solving a similar problem I think the correct approach would be thinking of the line as an SDF and using that to apply AA techniques (see SIGGRAPH 2020 Manifold Garden Rendering Retrospective). Their technique offers an interesting approach of using a mask to make this expensive check much cheaper, which I believe would work here.
I tried using Render Doc to capture the frame since I prefer it to NSight, but the game kept crashing at launch and I just couldn't get it to work properly. Have you managed to grab a frame capture via NSight?
Thanks for the SIGGRAPH talk, I took a look at it and it's really impressive. I focused more on covering every part of the scan lines effect in the video, not so much on the crispiness of the lines themselves. I just wanted to get them appear correctly based on distance from the origin of the effect. However, your comment made me explore the current setup and you were right, the lines were looking way too aliased at certain angles. This led me towards discovering an implementation mistake I made when calculating the Sobel Filter. I fixed it now and they're looking much sharper.
So congratulations, you're getting a mention in the part 2 of the video!
Really great job
Thank you so much!
what asset pack gets you that unity robot man and the scenery? i recognise it from their old demo cinematic
The terrain is the URP Terrain demo package, and the "robot" is from the Adam package. Both links are provided in the description (at the bottom)
You should do a follow up with all the suggestions in the comments. Rly interesting video
Thank you! I will test every suggestion and see how it goes :)
why not just program an extending cone that highlights the existing convergent vertices the polygons of the terrain/objects already have and make the highlight fade quickly in and slowly out?
Good question!
It's a solid idea but it would heavily depend on the distribution of the vertices of the underlying geometry. Also, everything would have to be drawn twice which could take longer than a fullscreen effect, especially in complex scenes.
But could a similar effect be achieved with the proposed solution? I think yes!
@@GameDevBuddies Hey thanks! Those are all excellent points and very informative as well. thank you for the response and the thought you put into it.
@@GameDevBuddies Also, increasing the distance between lines, as the scan gets farther away. Possibly lowering the amount of lines blocking the terrain?
To the players perspective it may look like the lines have the same amount of screen space between them.
Really good idea and since I've seen a couple of comments with this suggestion, I'm definitely going to test this approach. Thank you!
@@GameDevBuddies yeah, lol. i noticed, after i saw your reply, the literal next comment had the same idea.
you definitely earned a new sub.
cool, reminds me a bit of the radar scan ping thing in star citizen
Yeah, they're actually quite similar, nice find!