This tutorial is amazing!! Thanks so much for taking the time to make this :) I found a really simple and effective way to get multiple displacement heights for different materials so I'll explain below for anyone that's interested. Once you have completed the first half of the tutorial, instead of adding the samples, saturating and multiplying them, go ahead and create a displacement scalar for each layer. Then, multiply that by your sample and sum all of those multiply's. Finally route that sum into the multiply right before the VertexNormalWS multiply and... voila! You can have different depths for different materials! (make sure you DON'T do the multiply with the saturate and add afterwards). Hope someone finds this useful :) Ah before I forget, I'm having an odd issue with my displacement where I get "seams" on the terrain where displacement occurs. I also noticed that getting the camera too close to the ground where there is displacement seems to bug out the renderer and a small chunk of the terrain just disappears there. It's likely something wrong with my tessellation. Also, I assume I just need to keep the camera away from the displacement to prevent the disappearing terrain correct? Thanks again :D
This is a beautiful solution! Thanks so much or sharing :) Yeah I get some tearing issues at the bottom of the frame all the time - I think there is a setting in the Landscape material to do with Seams but I haven't fully tested it out yet. I would presume there is a fix floating around somewhere as Tessellation is a really common tool and there must be a bajillion cases where the glitch occurs.
@@PrismaticaDev I've found a very odd issue that I'm wondering if you've encountered. So I have a pretty big world that's got a lot of horizontal and vertical elements to it. In the higher up locations on the map I notice that the grass doesn't deform very well. So I moved the scene capture up to follow the player's z position - 2000 however this doesn't really have much of an effect on grass at altitude. I have also found that any grass placed on a static mesh doesn't seem to bend at all? Some odd issues. Still wrapping my brain around how to go about fixing them... any ideas?
@@eventide-games Hey Sheen! So, because the Scenecapture is underneath the terrain it's measuring the different between whatever the first thing it "hits" is (usually the landscape) + the offset value. This is one of the limitations of having the scene capture underneath the world facing upwards. I'm going to experiment with having the Scenecapture way up high faving downwards and see if I can get it to only See the landscape/static meshes excluding grass in the regular pass and then use the Customdepthpass to paint onto the render target. As it is currently, if we put the SceneCapture above the world facing down then the entire body of the player would be obstructing the landscape/painting it. I'll let you know if I get around to experimenting with it!
@@PrismaticaDev Aha but then we run into the issue if we are in a cave or something is above us correct? From what I see with my depth check post process, it appears that static meshes and even the foliage itself appear on my render targets. Is there an easy way to filter so we ONLY get the custom depth targets? I've tried experimenting but I can't find anything good lol. Thanks for the quick responses btw! Feel free to DM me on Twitter if you want to chat back and forth :) (I'm @HolomentoGame)
Apologies for my bottom-right screen showing OBS at times - one of my DisplayPort cables died so I'm using my 3rd monitor for ALL THE THINGS. I'd love to see what you guys achieve with this k n o w l e d g e. Please feel free to share your projects under this comment so we can all have a gander!
Finally finished watching! Definitely curious where exactly you plopped that radial mask in the landscape material, I ended up throwing mine in the draw to but clamping the result right before the emissive output. I'll revisit it in the morning when I'm actually awake. Here's a link to me derping around with the results! twitter.com/Scorched_Throne/status/1335580424123375617
@@scorchedthrone4869 Here's where the Radial mask should go imgur.com/a/DECgY7b tthe higher the Density value the harder the dropoff will be. I'd also suggest experimenting with how large your OrthoWidth is for your capture, your snow seems very nice and crisp so I reckon you could push it a bit further and get that extra little bit of distance out of it :)
You are Master Yoda of Materials. A living legend 😀 I learn almost everything about materials from your account. I love how detailed you have everything and how much effort you give little things to look amazing. Thank you so much.
Heya King, I've set up a discord server if you're interested in getting some more frequent content/shitposting and having some input on the project :) discord.gg/3Up2mctF
Have you experimented doing landscape displacement inside on UE5 and how did you tackle the problem w/o being able to use world displacement or tesselation?
Hey! Thanks for your videos, they have been very helpful! A tip I found is that you could use DDY and DDX to get the normals around a grayscale slope. It worked for me in the past so maybe that's another way to get the Grass directional Mask from the gradient
Definitely a good solution for a lot of things, however I’m not sure if DDX/DDY can be used with WPO effects since they’re a pixel-stage instruction. Unless you meant using it and drawing it to the Render Target, which would work :)
Pro tip for people experiencing the tessellation freaking out when the camera is close to the ground - in your landscape material, under Tessellation, there's a "Max displacement" setting. Setting that higher than your snow displacement gets rid of those!
@milosz gierczak I will keep that but only effecting the landscape normal so it fake deformation. the 3rd video of this series explain that and OpenLand toolkit in have this ready to use
Dunno if someone was in this position but thought id post it here.. I did Tommy's great tutorial using his example files which were made in 4.16. Came to do this and couldn't get past the spiral blur texture part, an error would make it impossible. Then after converting the file to 4.26 everything works. So onto the rest of this amazing tutorial!
Ah bugger! Glad it worked out in the end haha. I've made a Part 2 already and am working on some optimizations for a Part 3 (specifically to do with the Spiral Blur + Directional Deformation)
This is amazing! I found Tommy's tutorial awhile ago, after using distance field bending for my grass. I was hoping there could be a middle ground but I never had the time to be a big brain and figure it out, then you pop up having done it and then some! I'm currently making a landscape material from scratch due to using Voxel Plugin, I haven't needed one yet. After that I'm gonna attempt to get it working with multiplayer, as having two capture BPs overwriting each other based on two separate player locations is a nightmare. If you're interested in helping a scrub out, lemme know!
Ooh that will be an interesting one to figure out. I think you would only need 1 capture per client because if I'm player 1, player 2 will be affecting the capture that is attached to me. I'm not sure how multiplayer works yet, but I'm sure there's a way to have a single capture and attach it to whichever player the client is controlling on their local side
@@PrismaticaDev So I restarted after setting up a landscape material, and now I'm noticing some weird issues with the areas outside/the edges of the scene capture area. When you're pulling off of the mask (R) node after the Spiral Blur, you're skipping/not using the MF_MaskUV0-1 (You made your own called UV Thing, just so you know what I mean) and looking back over Tommy's tutorial, that's the Function that clamps changes to the area of the capture itself. Do you get weird stretching on the edges of your capture, or tiling of your scene capture across the map? I'll fully admit I may have messed something else unrelated to these things up, but if I can troubleshoot this for anyone scrolling the comments in the future, I'd like to. Thanks again!
@@scorchedthrone4869 ah I think you're right actually! I never noticed it since I use a top-down camera. I'll double check it and fix it up in my material and post a screenshot at the top of the description. Hopefully I can add an annotation or something in the video as well. Thanks for that one!
@@PrismaticaDev So I've been going through trying to figure out a solution, but a small workaround for now is to take a pyramid gradient (square getting brighter towards the center) and multiply the DrawTo material by it. The downside is this immediately fills in deformation as the character moves. You can also multiply the gradient by a higher value (I've settled on 25 for now) and it will act as a "frame" of black around the edge of the capture. It's a noticeable square following you if you're looking for it though, haha. I have limited time to throw at this, but hopefully it helps. The failed methods I tried involved using the mask in multiplication for the lerp alpha, as well as multiplying the result of the lerp. This "worked" however the color/normal/emissive would only be shown *in* the render area.
@@scorchedthrone4869 Something that I did later on that I forgot to mention was to multiply a Radial mask right after the Render Target within the landscape material - I think that's why I never noticed the stretching and stuff because the edges of the texture were always a 0 value
So, with Tommy's tutorial, the trouble now is what do we do since Tessellation has been deprecated for UE5 (and in theory replaced with Nanite)? Now I'm unsure what to do...maybe just plug everything into WPO instead?
@@kolerdev Unfortunately not. We just have to wait until they bring it back, or provide an alternative. Seems a bit backwards to have taken it out. :( Because in theory, yeah, they replaced it with Nanite, but tessellation is good for this because nanite isn't compatible with anything that moves/has WPO applied, whereas tess was.
Edit: NM, I figured it out. I had to call to the actual component from the Component section. Not the Variable that Is the component :/ Simply put, I had to drag SceneCapture from "Components" section itself, not from "My Blueprint subsection Components" Often times i hate blueprints, but i screw things up worse trying to do c++ Original: Hey, this is great stuff. Thank you. I do have a problem with a step before all of this that has stopped me dead in my tracks. The conversation within Tommy Trans tutorial is closed, so i am hoping someone here can help. at the point where i need to do this: Go back to BP_Capture and add the highlighted nodes to Event BeginPlay. Make sure to set Collection to MPC_Capture and Parameter Name to CaptureSize."" The picture below shows a conversion between 'Scene Capture --> Target --- Ortho Width --> Parameter Value' Now, I can copy directly from his completed project, but this teaches me nothing. No matter what i do, i cannot reconstruct that node structure. Scene Capture will not convert/go into defining Ortho Width. Thumbs crossed that someone here can help. www.raywenderlich.com/5760-creating-snow-trails-in-unreal-engine-4 Thanks again. (Maybe fingers crossed, but i sure feel like all thumbs right now :/ )
I'm glad you got it figured out :) Yeah it can definitely be confusing sometimes, I often get frustrated trying to do something with the Actor instead of the Actor Reference (pre vs. post Cast) and it takes me a few minutes to figure out what I'm doing wrong haha. If you need any other help throughout the tutorial, I have a section in my discord dedicated to helping as I create these tutorials on the fly and am susceptible to skipping little tidbits. discord.gg/7wTZhGuw
I'm sure someone has said this, but I've had success eliminating the spiral blur by just downsampling the persistent render target and setting the downsample method to "unfiltered". I don't need resolution accuracy for my usage, which is currently just foliage bending. Seems to be working for me, and a few dozen instructions cheaper.
Yep absolutely :) That's one way of going about it haha. In the following videos (part 2 and 3) we move the blur to a secondary render target so it's only processed once and shared between anything that needs it. Worth checking out for the other optimizations as well! :)
Hey, first of all thanks for your tutorials! I am working with the Ue4.26 and have a strange bug. So far I have only tried to implement the system of Tommy Tran. Capturing certain objects in a render target works fine. But as soon as I want to make it all percistent a strange bug occurs. Around objects with a custom render pass everything gets blurred and " wanders " until it finally reaches the end of the render target (like water or so). I have tried many things (different render target formats, diffrent mipmaps settings) to fix this problem, but nothing helps. Also there are frame drops as soon as I don't look into the captured area or don't look at the landscape material. I would really like to work with render targets as it would be best suited for my project. Unfortunately I can not change the project version to 4.27. ): Maybe you can be my knight in shining armor...
Hey Nico! It sounds like there might be a mismatch between the size of the render target and one of the values inside your capture blueprint. Maybe double check that they all match, since if it's writing back and forth at different resolutions it will blur over time
It looks so cool. I would love to add this to my game but I'm a SUPER noob. I spent two days to make an auto-landscape with 3 textures lol. If I make those effects, I have no clue how to add them to the landscape... =(
hey, first, thank you so much for your tutorial! It's amazing to me that you are just using UE since about a year and I was following your channel for a while. I did three landscape deformation tutorials before and always had issues with either their quality or scalability. I was very close to just buying a marketplace asset. Now I did everything from Tommy's tutorial and it works perfectly except I can't get the BP_Capture to move with my character at all. I went over every single node like 5 times and feel like I'm going insane. But I think I have to find a different solution anyways. For my project I'd need a (reasonably performant) way to get permanent deformation on the entire map - how could I implement this? (edit: and I have a weird bug right now where no mesh is able to deform the landscape except the cubes I copied from the demo map. Even if i make a new cube with the exact same values. Wtf is going on there?)
Hey Jonas! For the objects not affecting the deformation issue, make sure that Custom Render Depth is enabled on them (double check after they're placed as well, in the Details section) As for long-term permanent deformation, it really depends on how accurate you want it to be. If you just want general tracks/trails, you could possibly try generating a Spline along with the actors and printing it to a Runtime Virtual Texture channel and leaving the spline in place - this way when you come back to that area, the spline actor will still be there and still be printing to the RVT. I really would like to know a more efficient way to deal with permanent deformation so if you come across any neat solutions I'd love to hear about it :)
@@PrismaticaDev ah I see, now it's working great! For now I'll keep it following the player and work on other things. Out of curiosity, which sizes of Scene Capture/ Ortho Width and Render Target textures do you have in your project?
@@jonasr1482 My ortho width is 4096, and render target was 512 although recently moved to 1024 so I could do blood effects with it as well. I'm going to make an update video for this whole system with some optimizations for the Scene capture which will save a tonne of performance , namely checking the "Show Flags" in the scene capture component and making sure you're only rendering what you need (specifically no lighting) as well as reducing the capture's FPS to 30. Hope you're looking forward to it!
@@PrismaticaDev Nice!! I can't wait to further improve my landscape (also your Texture Variation Node tutorial came in very handy)! Definitely looking forward to it!
Hi, tell me a tutorial on texturing large objects, such as high-rise buildings in a residential area. To make the base texture non-repeating, it was supplemented with random cracks, traces of water stains with rust, traces of material burnout, graffiti and other elements that add realism.
Hey NOlogic! Sounds like something that could be solved using Vertex Paint - this is something that I’ll be making a tutorial on soon! You could also look in to using Decals as well. I think there is a free decal pack on the marketplace which you would find very useful :)
Heyo! The tessellation/displacement part can be plugged in to the WPO of the Nanite mesh thingo. I haven't used Nanite myself so I can't attest to how easy it is to set up haha. You could also look in to Virtual Heightfield Mesh. I'll be covering both methods as a part of my new plugin's next update which is a much faster and detailed version of this system.
Hi Sorry to bother again! I ran into an issue and i cannot figure it out for the life of me. The way i have my land scape is i have an RVT for just colors, and then i have another layer blend for the textures so i can see them. How can i combine both of those, the RVT and the ground texture layer blend to work with the snow? I can provide pictures on discord of the landscape material if you need me to. Cheers.
Hey, don't know if you will ever see this since it's an older video of yours, but my grass doesn't go down at all, I've done everything exactly how you shown, checked multiple times and it just doesnt go down at all, I've checked the render targets, they are rendering like they should, but still no movement..
Hey hey! If the render targets look how they should, then the issue must be somewhere in your Grass material. Feel free to get in touch on Discord and we can sort it out :)
@@PrismaticaDev Thank you mate, you are fucking awesome.. I will doodle on my own to try and figure out what is going on, if not..I'll come to you eventually. Keep doing what you're doing brother, it is really cool and helpful!
@@PrismaticaDevFigured it out! So what my grass was before is just a plane with texture painted on it and an alpha to show the grass only, that worked really fine for me, performance and looks wise. -So as far as I can see is that this method of deformation doesn't really work on that type of geometry. I quickly made some grass in blender similar to what you have and it all works now perfectly fine. So I will be using that from now on 😅 Your vids really made me dive deep into the material spectrum of ue4 and it's making me grow a lot, thanks again!
Hey Question: How did you avoid your landscape grass being added to the rendertarget? I suppose mine does go beneath the landscape mesh alittle, but I'd imagine all grass does to avoid seen hovering at angles.
I really want to follow along with this but those original tutorials by Tommy Tran are incomplete, since you can't access the original project files anymore. Does anybody have suggestions for following along without them? In particular I need access to the custom material function MF_MaskUVO-1. Help appreciated!
I've done that currently - I blur the texture and also create the direction-map in Render Targets that can then get used anywhere they're needed :) I'll make another video at some point about it haha
So in your editor window, go to the Modes dropdown (where you select Landscape/Foliage etc) click on Mesh Paint. Select your desired object in the world, hit the "paint" button and do your thing. When you've got it how you want it, hit the "apply" button and it will apply that vertex paint to the original mesh.
@@PrismaticaDev I implemented this because i already was using the Tommy's tutorials. I am using quixel for my grass and i cannot make it to work smooth. I believe it is because of the vertex gradient.
@@alf3977 if you go into the Static Mesh viewer and click the Vertex Colour button in the top toolbar, what does it look like? Is it all white or does it have some odd colours? Also you might just need to adjust some of the deform strengths for the grass, a good rule of thumb is to set the downwards deformation value to the same height as the grass
@@PrismaticaDev The grass is not like a flat color, it has a gradient, but is not black white, more like red yellow etc. I got it working better now, the height for my custom depth camera was too low.
Ah not really, since the RVT needs an object to write to it and doesn't update frequently enough. You could possibly do it with a particle-based deformation system but then you would lose the accuracy and scalability of a depth based one
I don't think so, since it uses the Depth buffer in the scene capture and you'll be using Forward rendering for mobile projects. Unless there is some way to do it in forward rendering!
@@shaqm0bile essentially all it does is return 0 for anything outside the UV space so that the render target doesn't repeat over and over outside the boundary :)
@@PrismaticaDev yeah i whipped up my own that works without If node. btw hows your game going man? havent nudged you a while and it looks liek yoru channel is growing! :)
This tutorial is amazing!! Thanks so much for taking the time to make this :)
I found a really simple and effective way to get multiple displacement heights for different materials so I'll explain below for anyone that's interested.
Once you have completed the first half of the tutorial, instead of adding the samples, saturating and multiplying them, go ahead and create a displacement scalar for each layer. Then, multiply that by your sample and sum all of those multiply's. Finally route that sum into the multiply right before the VertexNormalWS multiply and... voila! You can have different depths for different materials! (make sure you DON'T do the multiply with the saturate and add afterwards). Hope someone finds this useful :)
Ah before I forget, I'm having an odd issue with my displacement where I get "seams" on the terrain where displacement occurs. I also noticed that getting the camera too close to the ground where there is displacement seems to bug out the renderer and a small chunk of the terrain just disappears there. It's likely something wrong with my tessellation. Also, I assume I just need to keep the camera away from the displacement to prevent the disappearing terrain correct?
Thanks again :D
This is a beautiful solution! Thanks so much or sharing :)
Yeah I get some tearing issues at the bottom of the frame all the time - I think there is a setting in the Landscape material to do with Seams but I haven't fully tested it out yet. I would presume there is a fix floating around somewhere as Tessellation is a really common tool and there must be a bajillion cases where the glitch occurs.
@@PrismaticaDev I've found a very odd issue that I'm wondering if you've encountered. So I have a pretty big world that's got a lot of horizontal and vertical elements to it. In the higher up locations on the map I notice that the grass doesn't deform very well. So I moved the scene capture up to follow the player's z position - 2000 however this doesn't really have much of an effect on grass at altitude. I have also found that any grass placed on a static mesh doesn't seem to bend at all? Some odd issues. Still wrapping my brain around how to go about fixing them... any ideas?
@@eventide-games Hey Sheen! So, because the Scenecapture is underneath the terrain it's measuring the different between whatever the first thing it "hits" is (usually the landscape) + the offset value. This is one of the limitations of having the scene capture underneath the world facing upwards. I'm going to experiment with having the Scenecapture way up high faving downwards and see if I can get it to only See the landscape/static meshes excluding grass in the regular pass and then use the Customdepthpass to paint onto the render target. As it is currently, if we put the SceneCapture above the world facing down then the entire body of the player would be obstructing the landscape/painting it. I'll let you know if I get around to experimenting with it!
I know it is possible because I've seen Elliot Gray's foliage system do it, it's just a matter of figuring it out :)
@@PrismaticaDev Aha but then we run into the issue if we are in a cave or something is above us correct? From what I see with my depth check post process, it appears that static meshes and even the foliage itself appear on my render targets. Is there an easy way to filter so we ONLY get the custom depth targets? I've tried experimenting but I can't find anything good lol.
Thanks for the quick responses btw! Feel free to DM me on Twitter if you want to chat back and forth :) (I'm @HolomentoGame)
Zoom in even more while holding CTRL!!!!
That is a game changer. Best UE teacher in the world.
Please never stop these tutorials, its been an incredible learning experience!!
Never planning on stopping :) I just uploaded part 3 to this tutorial series, be sure to check it out for some juicy optimizations!
Apologies for my bottom-right screen showing OBS at times - one of my DisplayPort cables died so I'm using my 3rd monitor for ALL THE THINGS.
I'd love to see what you guys achieve with this k n o w l e d g e.
Please feel free to share your projects under this comment so we can all have a gander!
Finally finished watching! Definitely curious where exactly you plopped that radial mask in the landscape material, I ended up throwing mine in the draw to but clamping the result right before the emissive output. I'll revisit it in the morning when I'm actually awake.
Here's a link to me derping around with the results!
twitter.com/Scorched_Throne/status/1335580424123375617
@@scorchedthrone4869 Here's where the Radial mask should go imgur.com/a/DECgY7b tthe higher the Density value the harder the dropoff will be. I'd also suggest experimenting with how large your OrthoWidth is for your capture, your snow seems very nice and crisp so I reckon you could push it a bit further and get that extra little bit of distance out of it :)
You are Master Yoda of Materials. A living legend 😀
I learn almost everything about materials from your account.
I love how detailed you have everything and how much effort you give little things to look amazing.
Thank you so much.
Yooo! Thanks for the shoutout man! much love
No worries at all! Couldn't have made this without you!
Brilliant Vid, that jump your character does is so good I laugh every time.
Hahaha it's a lot of fun! And very very handy for debugging :P
Heya King, I've set up a discord server if you're interested in getting some more frequent content/shitposting and having some input on the project :) discord.gg/3Up2mctF
Have you experimented doing landscape displacement inside on UE5 and how did you tackle the problem w/o being able to use world displacement or tesselation?
Hey! Thanks for your videos, they have been very helpful!
A tip I found is that you could use DDY and DDX to get the normals around a grayscale slope.
It worked for me in the past so maybe that's another way to get the Grass directional Mask from the gradient
Definitely a good solution for a lot of things, however I’m not sure if DDX/DDY can be used with WPO effects since they’re a pixel-stage instruction. Unless you meant using it and drawing it to the Render Target, which would work :)
I cant believe I am just finding your channel now, your videos are sooooooooooooooooooooo goood. Thanks dude!
Thanks so much mate :) Don't forget to share with a friend!
can't wait till we see your take on voxel worlds and Gerstner waves. you're explanations are amazing.
Pro tip for people experiencing the tessellation freaking out when the camera is close to the ground - in your landscape material, under Tessellation, there's a "Max displacement" setting. Setting that higher than your snow displacement gets rid of those!
Legend! Here’s to hoping tessellation gets a bit of love in UE5 :’)
@@PrismaticaDev Exactly, one of the things keeping me in UE4 still.
@@PrismaticaDev tesselation gets removed in ue5 :( im trying to find another solution for making a snow thing
@milosz gierczak I will keep that but only effecting the landscape normal so it fake deformation. the 3rd video of this series explain that and OpenLand toolkit in have this ready to use
Dunno if someone was in this position but thought id post it here..
I did Tommy's great tutorial using his example files which were made in 4.16. Came to do this and couldn't get past the spiral blur texture part, an error would make it impossible. Then after converting the file to 4.26 everything works.
So onto the rest of this amazing tutorial!
Ah bugger! Glad it worked out in the end haha. I've made a Part 2 already and am working on some optimizations for a Part 3 (specifically to do with the Spiral Blur + Directional Deformation)
This is amazing! I found Tommy's tutorial awhile ago, after using distance field bending for my grass.
I was hoping there could be a middle ground but I never had the time to be a big brain and figure it out, then you pop up having done it and then some!
I'm currently making a landscape material from scratch due to using Voxel Plugin, I haven't needed one yet.
After that I'm gonna attempt to get it working with multiplayer, as having two capture BPs overwriting each other based on two separate player locations is a nightmare.
If you're interested in helping a scrub out, lemme know!
Ooh that will be an interesting one to figure out. I think you would only need 1 capture per client because if I'm player 1, player 2 will be affecting the capture that is attached to me. I'm not sure how multiplayer works yet, but I'm sure there's a way to have a single capture and attach it to whichever player the client is controlling on their local side
@@PrismaticaDev So I restarted after setting up a landscape material, and now I'm noticing some weird issues with the areas outside/the edges of the scene capture area.
When you're pulling off of the mask (R) node after the Spiral Blur, you're skipping/not using the MF_MaskUV0-1 (You made your own called UV Thing, just so you know what I mean) and looking back over Tommy's tutorial, that's the Function that clamps changes to the area of the capture itself. Do you get weird stretching on the edges of your capture, or tiling of your scene capture across the map?
I'll fully admit I may have messed something else unrelated to these things up, but if I can troubleshoot this for anyone scrolling the comments in the future, I'd like to.
Thanks again!
@@scorchedthrone4869 ah I think you're right actually! I never noticed it since I use a top-down camera. I'll double check it and fix it up in my material and post a screenshot at the top of the description. Hopefully I can add an annotation or something in the video as well. Thanks for that one!
@@PrismaticaDev So I've been going through trying to figure out a solution, but a small workaround for now is to take a pyramid gradient (square getting brighter towards the center) and multiply the DrawTo material by it. The downside is this immediately fills in deformation as the character moves. You can also multiply the gradient by a higher value (I've settled on 25 for now) and it will act as a "frame" of black around the edge of the capture. It's a noticeable square following you if you're looking for it though, haha. I have limited time to throw at this, but hopefully it helps.
The failed methods I tried involved using the mask in multiplication for the lerp alpha, as well as multiplying the result of the lerp. This "worked" however the color/normal/emissive would only be shown *in* the render area.
@@scorchedthrone4869 Something that I did later on that I forgot to mention was to multiply a Radial mask right after the Render Target within the landscape material - I think that's why I never noticed the stretching and stuff because the edges of the texture were always a 0 value
So, with Tommy's tutorial, the trouble now is what do we do since Tessellation has been deprecated for UE5 (and in theory replaced with Nanite)? Now I'm unsure what to do...maybe just plug everything into WPO instead?
So friend, have you figured out how to achieve this in UE5 now?
@@kolerdev Unfortunately not. We just have to wait until they bring it back, or provide an alternative. Seems a bit backwards to have taken it out. :( Because in theory, yeah, they replaced it with Nanite, but tessellation is good for this because nanite isn't compatible with anything that moves/has WPO applied, whereas tess was.
@@Maladrum What about an RVT based deformation?
Edit: NM, I figured it out. I had to call to the actual component from the Component section. Not the Variable that Is the component :/ Simply put, I had to drag SceneCapture from "Components" section itself, not from "My Blueprint subsection Components" Often times i hate blueprints, but i screw things up worse trying to do c++
Original:
Hey, this is great stuff. Thank you. I do have a problem with a step before all of this that has stopped me dead in my tracks. The conversation within Tommy Trans tutorial is closed, so i am hoping someone here can help. at the point where i need to do this: Go back to BP_Capture and add the highlighted nodes to Event BeginPlay. Make sure to set Collection to MPC_Capture and Parameter Name to CaptureSize."" The picture below shows a conversion between 'Scene Capture --> Target --- Ortho Width --> Parameter Value' Now, I can copy directly from his completed project, but this teaches me nothing. No matter what i do, i cannot reconstruct that node structure. Scene Capture will not convert/go into defining Ortho Width. Thumbs crossed that someone here can help. www.raywenderlich.com/5760-creating-snow-trails-in-unreal-engine-4 Thanks again. (Maybe fingers crossed, but i sure feel like all thumbs right now :/ )
I'm glad you got it figured out :) Yeah it can definitely be confusing sometimes, I often get frustrated trying to do something with the Actor instead of the Actor Reference (pre vs. post Cast) and it takes me a few minutes to figure out what I'm doing wrong haha. If you need any other help throughout the tutorial, I have a section in my discord dedicated to helping as I create these tutorials on the fly and am susceptible to skipping little tidbits. discord.gg/7wTZhGuw
@@PrismaticaDev Cool deal, thanks :)
DUDE! Thank you so much for this.
You're very welcome! You can join our Discord server if you run in to any issues and feel free to share this video around if you found it useful :)
Thank you for taking this amazing tutorial !!
I found the snow height was gone when the camera distance increased (I've tried to change LOD things...)
I'm sure someone has said this, but I've had success eliminating the spiral blur by just downsampling the persistent render target and setting the downsample method to "unfiltered". I don't need resolution accuracy for my usage, which is currently just foliage bending. Seems to be working for me, and a few dozen instructions cheaper.
Yep absolutely :) That's one way of going about it haha. In the following videos (part 2 and 3) we move the blur to a secondary render target so it's only processed once and shared between anything that needs it. Worth checking out for the other optimizations as well! :)
do you have a discord? Awesome tutorial!!! Thanks for sharing
Hey Alf! I'm in the process of creating one, I'll comment again when it's ready to go :)
Here we go :) discord.gg/3Up2mctF
Hey, first of all thanks for your tutorials!
I am working with the Ue4.26 and have a strange bug.
So far I have only tried to implement the system of Tommy Tran. Capturing certain objects in a render target works fine. But as soon as I want to make it all percistent a strange bug occurs. Around objects with a custom render pass everything gets blurred and " wanders " until it finally reaches the end of the render target (like water or so). I have tried many things (different render target formats, diffrent mipmaps settings) to fix this problem, but nothing helps. Also there are frame drops as soon as I don't look into the captured area or don't look at the landscape material.
I would really like to work with render targets as it would be best suited for my project. Unfortunately I can not change the project version to 4.27. ):
Maybe you can be my knight in shining armor...
Hey Nico! It sounds like there might be a mismatch between the size of the render target and one of the values inside your capture blueprint. Maybe double check that they all match, since if it's writing back and forth at different resolutions it will blur over time
Why do i get the urge to play runescape xD
Don't resist the urge :P
It looks so cool. I would love to add this to my game but I'm a SUPER noob. I spent two days to make an auto-landscape with 3 textures lol. If I make those effects, I have no clue how to add them to the landscape... =(
hey, first, thank you so much for your tutorial! It's amazing to me that you are just using UE since about a year and I was following your channel for a while. I did three landscape deformation tutorials before and always had issues with either their quality or scalability. I was very close to just buying a marketplace asset. Now I did everything from Tommy's tutorial and it works perfectly except I can't get the BP_Capture to move with my character at all. I went over every single node like 5 times and feel like I'm going insane. But I think I have to find a different solution anyways. For my project I'd need a (reasonably performant) way to get permanent deformation on the entire map - how could I implement this?
(edit: and I have a weird bug right now where no mesh is able to deform the landscape except the cubes I copied from the demo map. Even if i make a new cube with the exact same values. Wtf is going on there?)
Hey Jonas! For the objects not affecting the deformation issue, make sure that Custom Render Depth is enabled on them (double check after they're placed as well, in the Details section)
As for long-term permanent deformation, it really depends on how accurate you want it to be. If you just want general tracks/trails, you could possibly try generating a Spline along with the actors and printing it to a Runtime Virtual Texture channel and leaving the spline in place - this way when you come back to that area, the spline actor will still be there and still be printing to the RVT. I really would like to know a more efficient way to deal with permanent deformation so if you come across any neat solutions I'd love to hear about it :)
@@PrismaticaDev ah I see, now it's working great! For now I'll keep it following the player and work on other things. Out of curiosity, which sizes of Scene Capture/ Ortho Width and Render Target textures do you have in your project?
@@jonasr1482 My ortho width is 4096, and render target was 512 although recently moved to 1024 so I could do blood effects with it as well. I'm going to make an update video for this whole system with some optimizations for the Scene capture which will save a tonne of performance , namely checking the "Show Flags" in the scene capture component and making sure you're only rendering what you need (specifically no lighting) as well as reducing the capture's FPS to 30. Hope you're looking forward to it!
@@PrismaticaDev Nice!! I can't wait to further improve my landscape (also your Texture Variation Node tutorial came in very handy)! Definitely looking forward to it!
Hi, tell me a tutorial on texturing large objects, such as high-rise buildings in a residential area. To make the base texture non-repeating, it was supplemented with random cracks, traces of water stains with rust, traces of material burnout, graffiti and other elements that add realism.
Hey NOlogic! Sounds like something that could be solved using Vertex Paint - this is something that I’ll be making a tutorial on soon! You could also look in to using Decals as well. I think there is a free decal pack on the marketplace which you would find very useful :)
Yooo0000ooooo0000oooo this is crazy.
Could you revisit this since tesselation has now been replaced with nanite?
Heyo! The tessellation/displacement part can be plugged in to the WPO of the Nanite mesh thingo. I haven't used Nanite myself so I can't attest to how easy it is to set up haha. You could also look in to Virtual Heightfield Mesh.
I'll be covering both methods as a part of my new plugin's next update which is a much faster and detailed version of this system.
Thanks a lot!
Legend
Wow
Appreciated :) Feel free to share this with anyone!
Besides Spiral-Blur -Texture is there any other way to tackle and add gradient to a render target ?
how would i go about using physical surfaces to add different footstep sounds when snow is applied?
how to work this in UE5 because there is no DIsplacement
How come the displacements remain when you move the scene capture with you and those parts are no longer in range?
Hi,
What is the -1,1 node at 2:17 (the yellow one) i cannot figure out how to get that node
Hey Marlon! It’s a 2vector - you can get one by holding 2 and left clicking :)
@@PrismaticaDev thank you!!
Hi Sorry to bother again! I ran into an issue and i cannot figure it out for the life of me.
The way i have my land scape is i have an RVT for just colors, and then i have another layer blend for the textures so i can see them. How can i combine both of those, the RVT and the ground texture layer blend to work with the snow? I can provide pictures on discord of the landscape material if you need me to.
Cheers.
What is that debug material made out of I am trying to figure it out but I keep doing it wrong?
Hey, don't know if you will ever see this since it's an older video of yours, but my grass doesn't go down at all, I've done everything exactly how you shown, checked multiple times and it just doesnt go down at all, I've checked the render targets, they are rendering like they should, but still no movement..
Hey hey! If the render targets look how they should, then the issue must be somewhere in your Grass material. Feel free to get in touch on Discord and we can sort it out :)
@@PrismaticaDev Thank you mate, you are fucking awesome.. I will doodle on my own to try and figure out what is going on, if not..I'll come to you eventually.
Keep doing what you're doing brother, it is really cool and helpful!
@@ShounenN Really appreciated :) Hope you can figure it out!
@@PrismaticaDevFigured it out! So what my grass was before is just a plane with texture painted on it and an alpha to show the grass only, that worked really fine for me, performance and looks wise.
-So as far as I can see is that this method of deformation doesn't really work on that type of geometry. I quickly made some grass in blender similar to what you have and it all works now perfectly fine. So I will be using that from now on 😅
Your vids really made me dive deep into the material spectrum of ue4 and it's making me grow a lot, thanks again!
Hey Question: How did you avoid your landscape grass being added to the rendertarget? I suppose mine does go beneath the landscape mesh alittle, but I'd imagine all grass does to avoid seen hovering at angles.
Lawl there is a show flags list that includes foliage and grass... Typical figure it out right after asking.
I really want to follow along with this but those original tutorials by Tommy Tran are incomplete, since you can't access the original project files anymore. Does anybody have suggestions for following along without them? In particular I need access to the custom material function MF_MaskUVO-1. Help appreciated!
Did you get this sorted out?
I just downloaded them today they're available.
But hey you could put the code in a function and have a bunch of code from the two different uses and only have to blur the texture once
I've done that currently - I blur the texture and also create the direction-map in Render Targets that can then get used anywhere they're needed :) I'll make another video at some point about it haha
23:10 How you do it in unreal engine?
So in your editor window, go to the Modes dropdown (where you select Landscape/Foliage etc) click on Mesh Paint. Select your desired object in the world, hit the "paint" button and do your thing. When you've got it how you want it, hit the "apply" button and it will apply that vertex paint to the original mesh.
@@PrismaticaDev I implemented this because i already was using the Tommy's tutorials. I am using quixel for my grass and i cannot make it to work smooth. I believe it is because of the vertex gradient.
@@alf3977 if you go into the Static Mesh viewer and click the Vertex Colour button in the top toolbar, what does it look like? Is it all white or does it have some odd colours? Also you might just need to adjust some of the deform strengths for the grass, a good rule of thumb is to set the downwards deformation value to the same height as the grass
@@PrismaticaDev The grass is not like a flat color, it has a gradient, but is not black white, more like red yellow etc. I got it working better now, the height for my custom depth camera was too low.
Different topic. I want to have different height for the camera in the postprocess for snow and for grass. Is there any way to do this?
Is it possible to do the same in Virtual Tecture?
Ah not really, since the RVT needs an object to write to it and doesn't update frequently enough. You could possibly do it with a particle-based deformation system but then you would lose the accuracy and scalability of a depth based one
@@PrismaticaDev Then the whole landscape in the RVT and the texture of the snow on top of the RVT layers, as I understand it, you did it?
@@PrismaticaDev I haven't worked with rvt yet
Vert colors looks nice in blender on my grass, but in ue4 it's all white. Wtf?
You might have to check your import settings - sometimes it can be set to ignore or replace
@@PrismaticaDev Thankyou Charlie, your the best. A true WIZARD.
Does it work on mobile???
I don't think so, since it uses the Depth buffer in the scene capture and you'll be using Forward rendering for mobile projects. Unless there is some way to do it in forward rendering!
Hmm i know this is old but whats the "UV thing" function?
It’s a part of Tommy’s tutorial which is linked in the description :)
@@PrismaticaDev ah he doesnt explain how it works in there, he just says what it does... or maybe i missed it?
@@shaqm0bile essentially all it does is return 0 for anything outside the UV space so that the render target doesn't repeat over and over outside the boundary :)
@@PrismaticaDev yeah i whipped up my own that works without If node. btw hows your game going man? havent nudged you a while and it looks liek yoru channel is growing! :)
well, this tutorial is dead, because Tommy's tutorial using tessellation, which one doesn't exist anymore in UE5
There are ways around it - I’ll be making an updated video in a few weeks for UE5
@@PrismaticaDev thats awesome , im already excited to watch it
@@PrismaticaDev This would be amazing! Need this so bad lol can't wait
@@PrismaticaDev wow you are amazing I am waiting
hey is there any news?