Landscape Displacement - Building Worlds In Unreal - Episode 6

  Рет қаралды 37,819

Ben Cloward

Ben Cloward

Күн бұрын

Пікірлер: 184
@gabrielepardi5178
@gabrielepardi5178 7 ай бұрын
Great video. Straight to the point and most definitly one of the best video on this topic.
@unreal_metronomus678
@unreal_metronomus678 3 жыл бұрын
One of the best videos about tesselation and displacement. Good explanation of the used maths, not just "do this and do that". Well done! :-)
@BenCloward
@BenCloward 3 жыл бұрын
Much appreciated!
@unreal_metronomus678
@unreal_metronomus678 3 жыл бұрын
I think you are the first guy I´ve seen on KZbin who changes the UE4 UI size. Thumbs up for that, Ben! It is sometimes so difficult to identify the nodes, even on high resolution. Thanks!
@BenCloward
@BenCloward 3 жыл бұрын
Thanks! It was a suggestion in the comments from one of my viewers. Always trying to get better at this!
@cablekingtv6557
@cablekingtv6557 3 жыл бұрын
Hey Ben. Just want to thank you again. I added in the displacement along with the changes to have this set up as a material instance. You gave me a lot to work with. I appreciate you. Now I've got to map out this world as I have a 4x4 terrain with the new water in 4.26. Once I nail down the values, I'll work on adding in some assets. Thanks again and have a happy and safe holiday brother!!
@MR3DDev
@MR3DDev 4 жыл бұрын
Very cool, I'll give this a shot since the displacement in the Quixel made material is a little wonky after the update.
@AdiusOmega
@AdiusOmega 4 жыл бұрын
Right? I'm a bit dissapointed that it's not very "plug and play" but I guess it gives me some experience making these with blueprints.
@franklinfisher6251
@franklinfisher6251 3 жыл бұрын
How do you not have more views, and subs? You really explain the ins and out's of how to work around UE4. I've been trying to find ways to incorporate Displacement, tessellation into landscape automaterials, with paint layers. You just have a great way of teaching people. Definitely earned my sub, and like.
@RigelOrionBeta
@RigelOrionBeta 2 жыл бұрын
Because too many tutorial makers are more focused on telling you how to do things, rather than teaching. And too many people would rather not learn, but be told.
@dinosyr
@dinosyr 3 жыл бұрын
I have started liking this video series before even starting the video since i know its going to be exactly what i need haha.
@TheBugB
@TheBugB 3 жыл бұрын
I’m really glad I came across your channel this is real good stuff
@tornadokaze8204
@tornadokaze8204 3 жыл бұрын
Hi Ben, It seems Ue5 has already canceled hardware Tessellation, do you have any idea about the landscape tessellation at 2:40?
@eggZ663
@eggZ663 3 жыл бұрын
It's been replaced on terrain by virtual heightfield mesh. For anything else just use nanite i guess :)
@unreasonablebastards753
@unreasonablebastards753 2 жыл бұрын
@@eggZ663 I don't think virtual heightfield mesh is really working properly yet, is it? Seems like a pretty hacky workaround for tessellation atm
@eggZ663
@eggZ663 2 жыл бұрын
@@unreasonablebastards753 It does work yeah, make 2 RVTs, render terrain into colour and height and you can then get displacement on the vhf, but it's still a bit flaky for me. There's also a bunch of other bugs with landscape that's put me off working with it for now. I am waiting to see if they get it sorted in the full version when it comes out. Great name btw 😀
@unreasonablebastards753
@unreasonablebastards753 2 жыл бұрын
@@eggZ663 haha thanks for the heads up ;) I saw in one of the presentations from UEs channel that VHF was still in development but happy to hear it might be working...still probably too experimental though to warrant including in projects it sounds like :'( All the same, cheers haha - and thx! :) I'm cautiously optimistic that UE5 full release will have some system for doing displacement...it has to, I can't imagine them thinking an engine without displacement is usable for open-world projects.
@alejandrovillegas5110
@alejandrovillegas5110 2 жыл бұрын
It's a pity that we are already in the second full release of ue5 and there is not something as straightforwrd as displacement and tesselation... VHF is what there is for now and it is still experimental. This video is a good tutorial to do what Ben does in this video with ue5: kzbin.info/www/bejne/mYeVipugds6inbs
@eyeemotion1426
@eyeemotion1426 Жыл бұрын
How do you tackle this in UE5(.1)? World Displacement and Tesselation Multiplier aren't available anymore. I've found something about the Geometry Script Plugin, but they apply it on a mesh. Don't know how to apply it on a Landscape or if that is even possible.
@christuusgnosis
@christuusgnosis 2 жыл бұрын
great stuff
@sumityadav2177
@sumityadav2177 3 жыл бұрын
Sir Thankyou for Amazing Works And Efforts.
@YASIR.K
@YASIR.K 3 жыл бұрын
Thanks
@shrapnelmaster117
@shrapnelmaster117 2 жыл бұрын
when I turn on tessellation it throws a bunch of errors and the shader won't compile. I think its because of the pixelnormalWS and pixel depth nodes being used as from my understanding they arent compatible with tessellation and displacement. How is yours working?? I thought we used PixelNormalWS in the MF_AngleBlend function in order to properly mask the materials blending together
@applenine991
@applenine991 Жыл бұрын
Well im trying to follow this tutorial on UE 5.1 but there is not tesselation option , any suggestions?? thanks in advance, or there will be a series about Nanite ?? or similar , also if u try to Enable Nanite , the Material Dissapears an turn black
@nfrancisj2122
@nfrancisj2122 Жыл бұрын
WOW! Displacements add so much to the scene! Looks Beautiful! I'm going to try it out next week. My character's view is through first person, so I'm curious to see if I can bias the radius more towards the front, and less on the back. I assume it's waste full to bump the landscape behind as the player will never see it. Thanks, again!
@coolzo2524
@coolzo2524 3 жыл бұрын
Great stuff! And upscaling the UI really helped! You should ensure you do that in your future videos because a lot of people like me watch your videos on a small phone screen. Maybe even try a value of x1.5
@BenCloward
@BenCloward 3 жыл бұрын
My next video will be at 1.5 and you can tell me what you think. Thanks!
@Tomastage
@Tomastage 2 жыл бұрын
Hello Ben, really loving this series but im running into an issue where UE5 does not have tessellation anymore and I want to use Parallax occlusion, Im not sure how to plug this in now though since we are using packed maps and POM required a texture object and can't work with float4 (which I get if I split up the texture object), would love to hear your thoughts on this
@Hotrood999
@Hotrood999 4 жыл бұрын
Awesome!
@brendanstocks821
@brendanstocks821 4 жыл бұрын
When tessellation doesn't kill performance, I'll be ballin with tears of joy XD
@ethanwasme4307
@ethanwasme4307 4 жыл бұрын
It's not so bad if you use the landscape actor's adjustments, bring your LOD0 down, use non-tess materials on "distant" LODs and use it for select layers only
@momomadi2
@momomadi2 4 жыл бұрын
@@ethanwasme4307 can u help were i can find this technique ?
@brendanstocks821
@brendanstocks821 4 жыл бұрын
@@ethanwasme4307 ooo Ima try that rn! Thanks man!
@momomadi2
@momomadi2 3 жыл бұрын
@@brendanstocks821 if u find a suorce about this method . Till me plz
@alu5410
@alu5410 3 жыл бұрын
UE5 will let your tears down...🤣
@LikeaBossk627
@LikeaBossk627 3 жыл бұрын
My landscape has weird black triangles when I zoom in instead of displacement. Why is this happenening?
@yongma1741
@yongma1741 3 жыл бұрын
me,too T_T
@michailisaakidis
@michailisaakidis Жыл бұрын
Thanks for your videos super informative. I have a question, how come you are saturating your values and not clamping them from 0-1?
@BenCloward
@BenCloward Жыл бұрын
Great question! Saturate and Clamp (0,1) accomplish exactly the same thing - preventing values from going higher than 1 or lower than 0. Saturate is a specific form of clamp that only does 0-1 clamping, so you can't change the high or low values. The advantage of saturate is that in most cases, the compiler can figure out how to perform that operation without using any math instructions. So it's essentially a free operation. Clamp, on the other hand, requires 8 cycles (on AMD hardware), so it's just a little bit more expensive than a multiply operation. So that's why I use saturate instead of clamp. Now, having said that, it is very likely that if you use a clamp and give it values of 0 and 1, the compiler will see that and convert it to a saturate automatically in the compile process, so in actual practice, you may not see any difference between the two.
@michailisaakidis
@michailisaakidis Жыл бұрын
@@BenCloward wow didnt know that, thanks! ☺
@philbax
@philbax 3 жыл бұрын
Question: is there a difference between calculating the camera distance like you do here vs using the CameraDepthFade node like you did in the previous video?
@Djmixtacy
@Djmixtacy 3 жыл бұрын
was wondering the same thing :D
@shrapnelmaster117
@shrapnelmaster117 2 жыл бұрын
@@Djmixtacy camera depth fade uses pixel depth and pixel information cant be used in combination with displacement from my understanding. Im having trouble figuring out how to rework some of my own shader to replace the pixel depth and pixel normal nodes to add displacement like this
@dexterlohnes
@dexterlohnes 3 жыл бұрын
Thanks for the wonderful tutorial Ben! One question that came up for me in using a similar workflow was about shader recompilation. Specifically, if I set up all my layers as unique Material Functions as you have done in this video, if I change their properties such as UV Tiling or Displacement amount within the Material Function, will that cause a recompilation? The alternative workflow I am using since I haven't dialed in these properties yet is to have one Material Function which takes in Input arguments for the various textures, UV tiling, and displacement amount, but I don't know if this results in a messier graph with no gain (i.e. no saved compilation step when I update properties).
@BenCloward
@BenCloward 3 жыл бұрын
If you're in the stage where you're tweaking and adjusting things, it makes sense to expose all of the params so that you can tweak visually and see the changes happening in real-time - so that workflow is fine. I didn't really show that because I had selected and dialed in the values that I wanted before hand - but it is useful to be able to adjust them and see things updating as you're making the changes. It is more expensive to have all of those parameters exposed though, so once you're happy with the values you have, you should go back in, remove the params, and set the values you settled on.
@mirrorunreal3675
@mirrorunreal3675 3 жыл бұрын
hi Ben. I undstand that Hight maps are Deprecated now, and that Unreal want us to use Virtual Heightfield meshes. how is this done in relation to this projects. Thanks in advance for any help that you can give. I will be using UE5 as soon as it's released and so this is important to me. thanks
@BenCloward
@BenCloward 3 жыл бұрын
This is unclear to me at this point. The demo they released seems to suggest that they intend for users to create content without using landscape tools at all, but this seems like a TON more work that should be necessary. It's also possible that they have landscape improvements coming but that they're just not ready to show so they were forced to build content without it. Not sure. I'm just taking a "wait and see" stance on it right now. UE5 is still too new to tell.
@mirrorunreal3675
@mirrorunreal3675 3 жыл бұрын
@@BenCloward Thanks for the reply Ben
@emmanuelrenquin2567
@emmanuelrenquin2567 2 жыл бұрын
Hello, I still have this "bubbly" effect, originally not too much noticeable, not as much as in the video, when following the flow of the river, but when going back and forth looking at the border of the river it is extremely noticeable. Also in the Material function there is a power node that is not present in the original logic. I do not see much difference when adding/removing it. What is its purpose ?
@RobertOoghe
@RobertOoghe 2 жыл бұрын
Hi Ben, big fan of your tutorials! These are so helpful. I was just wondering if you had any thoughts on updating your Displacement Episode for Virtual Heightfield Mesh? Anyway, this is great, just wondered.
@momomadi2
@momomadi2 4 жыл бұрын
i think u can do auto material fore the cliffs - before finishing the landscape material tuts
@BenCloward
@BenCloward 4 жыл бұрын
Yes, I will do another tutorial in the future that covers auto materials.
@cablekingtv6557
@cablekingtv6557 3 жыл бұрын
@@BenCloward you are a very good developer brother. I am loving the material you are covering. Thank you so much.
@SenEmChannel
@SenEmChannel 3 жыл бұрын
I try 1 day to follow your tutorial. Nearly to part 4. Wish me luck😅
@pauloviniciuscoral1128
@pauloviniciuscoral1128 4 жыл бұрын
Amazing
@BlueprintProgrammer
@BlueprintProgrammer 4 жыл бұрын
Very nice! Can you also make a tutorial on cone mapping? That's a very performant fake geometry technique that was used in Gears 5.
@mic007129
@mic007129 Жыл бұрын
Thank you for the amazing tutorial. I got a little question, for a topDown game, the player never need to see really far. Is it worth it to optimize the tesselation distance or I could just go with full tesselation for the whole screen?
@BenCloward
@BenCloward Жыл бұрын
Optimization for that case would be different for sure. You'd want full tessellation for everything on screen and no tessellation for anything off screen.
@MrZoid1980
@MrZoid1980 4 жыл бұрын
as always good stuff Ben. :)
@dannyl5771
@dannyl5771 2 жыл бұрын
Hi ! i'm starting your series of tutorial about building world and the recent series about shaders, really interesting and i just love that you can make thing understandable ! one question Ben : about this section of displacement, i'm studying unreal engine 5 and unfortunately Epic skip the displacement in Material which was incredible in this tutorial, i understand they want we work more with Nanite, but there is a way from your opinion, that we can still use landscape and have this effect of displacement with another method i'm not aware of ? i 'm asking that because i know landscape is more optimize than meshes for big terrain, and it's really efficient to blockout environment, more than making a mesh, importing it in unreal and "nanitize" it, i don't know i fill they skip an important part of real time rendering terrain, in profit of nanite, which is a complete different workflow. why landscape is still here, if we can't have this next gen feature on it ? Thank you so much Sir for all those tutorial !
@BenCloward
@BenCloward 2 жыл бұрын
It looks really nice, but Epic's implementation of displacement was REALLY costly for performance. I showed how to do it in this series, but I ended up removing it later because of the performance hit. I think this is one of the reasons that they removed it. As far as I know there isn't a good replacement.
@Smittel
@Smittel 3 жыл бұрын
can tesselation be turned on and off using in game menus somehow, if using material instances?
@manbearfrink
@manbearfrink 3 жыл бұрын
I'm assuming you ran into what I did where the tesselation wasn't happening. Try clicking on the Material Attributes node, then in the details panel, scroll down to Tesselation and set D3D11TesselationMode (or maybe something similar for other Direct3D versions) to either PN Triangles or Flat Tesselation.
@jb5488
@jb5488 4 жыл бұрын
For a second I was wondering why you where sampling the layers near the end of the video. I usually just do it per layer instead and just route them straight through from the attribute pins to the material inputs. That way you can control the intensity, falloff and multiplier per layer.
@ethanwasme4307
@ethanwasme4307 3 жыл бұрын
fetching attributes like the multiplier in a layer stack never works for me, this is de only way if you have the alpha available :(
@vivekanandb6697
@vivekanandb6697 4 жыл бұрын
If I enable Raytracing will there be any issues? does tesselation/displacement on these landscape materials work with Raytracing?
@BenCloward
@BenCloward 4 жыл бұрын
I'm not aware of any issues or conflicts between ray tracing and tessellation. Are you seeing anything wrong now, or just asking before trying it?
@starno6807
@starno6807 3 жыл бұрын
@@BenCloward I am seeing something wrong with ray tracing now , when I am using it, I found there is black spot shadow everywhere
@LikeaBossk627
@LikeaBossk627 3 жыл бұрын
@@starno6807 have this problem as well. Did you figure out a solution?
@David-jd3hc
@David-jd3hc 3 жыл бұрын
@@BenCloward Yes, when RT is enabled the area outside the mask becomes differently lit. So you get a darker spot on the ground texture, surrounding the camera. I love you videos and especially this one, so if you have any solutions for this issue that would be very appreciated. All the best, David
@David-jd3hc
@David-jd3hc 3 жыл бұрын
I solved my issue party by watching this video: kzbin.info/www/bejne/baS0gJasrqp1oJo I followed Ben's advice in the comments and made my displacement happening only on the positive side. I did this by deleting the Multiply by -1 after the Displacement Height constant value in the Displacement & Tessellation MF. I then added the height constant to the A input in the lerp (so nothing in B). I had to invert my displacement texture in PS to get the displacement right after this. Otherwise it was be inverted. Also, I created a new Landscape MF with all textures separated, so I easily could edit the displacement texture solely. This is probably not the most efficient way of doing it, but it seemed to work for me at least. Cheers!
@afrikaansedude2525
@afrikaansedude2525 4 жыл бұрын
Hayyy!Love your videos
@moddes3980
@moddes3980 3 жыл бұрын
I cant seem to get the layers to blend correctly when using the lerps. I am only using 2 layers and im getting the height data from my first layer but when i paint the second layer it seems to be keeping the 1st layers height data rather than its own. Any ideas?
@Sus-nn8sv
@Sus-nn8sv 3 жыл бұрын
You could try creating another landscape layer blend to blend the height, though I don't know how much better/worse this is.
@AdiusOmega
@AdiusOmega 4 жыл бұрын
Hello! If I wanted to tesselate for instance the side of a wall with brick. Would that tesselation work the same way but extending outward instead of up? I notice at the sides of the creek the displacement seems to kind of wig out and go "up" instead of the proper direction the stone would be going. Do you understand? I'd love a bit of insight. Thank you for these tutorials.
@sayanbiswas7364
@sayanbiswas7364 3 жыл бұрын
As I understand it's displacing along the normals, so if your normals face "sideways" from your mesh, that's the direction it'll displace.
@quantumdeconstructor
@quantumdeconstructor 4 жыл бұрын
Why not just blend World Displacement in Layer Blend node instead of lerps? by first adding it to the material attributes in the layer functions
@momomadi2
@momomadi2 4 жыл бұрын
+1
@artwizardsam3238
@artwizardsam3238 3 жыл бұрын
I think it was only because the river stones' height wasn't there in Layer blend, as it was being blended using Alpha.
@feloris
@feloris 4 жыл бұрын
These series are great! Thanks for showing us this process Ben! One thing though, when you were showing at the beginning the normal map channel, it looked like your normals were inverted, if you look at the rocks, they look like craters instead of popping out of the terrain, is it me or could it be something wrong with the normals?
@BenCloward
@BenCloward 4 жыл бұрын
Thank you for the heads-up. While it may appear that the normals are inverted, I have checked them both by confirming that all of the channels are facing the correct direction and by looking at the lighting result and moving the light source around to ensure that lighting is coming from the correct direction. In both cases I found everything to be working properly.
@mirrorunreal3675
@mirrorunreal3675 3 жыл бұрын
Hi Ben I have a 16k world composition landscape consisting of 64 x 2019 segments. No matter what I do your displacement simply refuses to work on my landscape. Please could you help me. Thanks in advance for any help you can give.
@BenCloward
@BenCloward 3 жыл бұрын
I'm pretty certain that world composition is a deprecated tech and that Epic is working on a replacement for it. So your choices now are to use world composition without displacement, skip world composition so you can use displacement, or wait for Epic to update their tech. I'd recommend getting by without displacement. I actually removed it in later videos because of how expensive it is.
@mirrorunreal3675
@mirrorunreal3675 3 жыл бұрын
@@BenCloward Thanks Ben, you have stopped me pulling my hair out lol. I'm really enjoying your lessons by the way; they are amazing, thanks so much.
@OptimumCode
@OptimumCode Жыл бұрын
Great explanation. I love how this displacement looks. I have a question about the technique you've used. In Unreal 5.2 there is a feature called Landscape Nanite. Does this replace the need of adding tessellation and displacement like you did and do it somehow automaticaly? Or is it completely different thing?
@BenCloward
@BenCloward Жыл бұрын
I haven't used Landscape Nanite, so I don't know for sure, but I do know that tessellation and displacement was completely removed from UE5. It was really expensive in UE4 - so I show how to set it up in this video, but I ended up getting rid of it later on because it was hurting performance.
@OptimumCode
@OptimumCode Жыл бұрын
@@BenCloward Is there a chance you can do a video about how the landscape material you create works with Nanite landscape? Maybe they can cooperate somehow. I might be telling nonsense but I am not very experienced with Unreal.
@avenoma
@avenoma Жыл бұрын
whatever location is yours\Desktop\Modeling\UE5\1st Projects\LandScapePractice_3\Config . Then open "DefaultEngine". Look for the Line "r.DefaultFeature.LocalExposure.ShadowContrastScale=0.8" Put in r.Nanite.AllowTessellation=1 and r.Nanite.Tessellation=1 under that line, each with its own line. Its in the "[/Script/Engine.RendererSettings]". Material meshes and landscape will now have a Nanite Enable option for landscape or 2 different ways to active for meshes(sorry im drawing a brank but its easy to find) . There will be "Displacement" unlocked on the Default Material Attribute Panel. Blue channel from your "Roughness" textures plugs into it. Red channel "Ambient Occlusion" and green channel into "Roughness".
@MissIroniQ
@MissIroniQ 3 жыл бұрын
Hey, I can't get it to work :/ Anyone has an idea? I get the message: Invalid node used in vertex/hull/domain shader input
@stephenfalk8854
@stephenfalk8854 2 жыл бұрын
Yeah I'm getting this too
@Haukett
@Haukett 4 жыл бұрын
love the effect! all of these tutorials have been wonderful. I do want to ask tho, is there a way to make auto material layers with this technique? so that hillsides would be a different texture without having to hand paint it?
@BenCloward
@BenCloward 4 жыл бұрын
Yes! I didn't go over setting up auto materials here, but I plan to make another set of tutorials in the future that covers that.
@Haukett
@Haukett 4 жыл бұрын
oh man fantastic!! thank you, I look forward to it :)
@jdpitt6
@jdpitt6 3 жыл бұрын
I'm really hoping this happened and I just haven't got there yet. You're very good at tutorials.
@LeakySpigot
@LeakySpigot Жыл бұрын
Ben, Fantastic videos man! Whenever I am working in unreal, its a guarantee I have at least one (if not 10) of your videos open on my second screen. I am going through these older videos while working in UE5, and I noticed that this method of landscape displacement is no longer supported. Do you have a way to achieve this in UE5, or can you recommend a video that goes over it? This series has been essential in the creation of my game, as I am making a game that requires small file sizes and fast load times, and these vids have made my landscapes far more performant that they otherwise would have been!
@BenCloward
@BenCloward Жыл бұрын
Tessellation and displacement was removed from UE5, you're right. The implementation in UE4 was pretty expensive on performance, so I'm guessing they removed it for that and because they want people to use Nanite instead. I don't think there is a good alternative unfortunately. Maybe they'll add it back in in a future release?
@LeakySpigot
@LeakySpigot Жыл бұрын
At one point I think I remember someone from Unreal mentioning that they are working on getting Nanite to work with landscapes, maybe there will be something within that framework that allows for use of displacement?
@bluegizmo1983
@bluegizmo1983 3 жыл бұрын
You could probably save even more performance by masking the tessellation to just the direction the camera is look plus a few degrees more than the field of view, vs just a range around the camera, yes?
@BenCloward
@BenCloward 3 жыл бұрын
That is a good thought, but I don't think it would help. The graphics card already clips out triangles that aren't in the field of view - and it does this very early, so it's not doing any extra work on those.
@bluegizmo1983
@bluegizmo1983 3 жыл бұрын
@@BenCloward Ah ok. I was thinking about that right after I posted that comment. Just wasn't sure if performance was only effected by what's in view or the whole scene
@EthanVandal
@EthanVandal 3 жыл бұрын
I got chunk generation, tiling, and noise generating. Now I'm trying to displace/tessellate based on a seed. Lots of trial and error + tutorials.
@hugolanda7255
@hugolanda7255 3 жыл бұрын
Hi Ben, i have a problem when i try to compile the material it shows the next error: [ SM5] Function Forest_Floor_M: (Node Pixel Depth) Invalid node used in hull/domain shader input!
@hugolanda7255
@hugolanda7255 3 жыл бұрын
also i have been following all the tutorials of this series so in theory i have the same thing, don't know what went wrong.
@mashonoid
@mashonoid 3 жыл бұрын
You must be using PixelNormalWS node to lerp between your normal maps. Use VertexNormalWS to lerp between Normal maps. PixelNormalWS for all the other maps, and VertexNormalWS for just Normal Maps. This is beacuse Normal map already has per pixel vector 3 information, if you then lerp it with PixelNormals then it will just not work.
@axelb4367
@axelb4367 3 жыл бұрын
Thx
@damz2289
@damz2289 3 жыл бұрын
The tessellation in wireframe for me is expanded more then the Texture.. what would cause this?
@BenCloward
@BenCloward 3 жыл бұрын
I'm not quite sure I understand what you're saying. Could you provide more detail? Do you mean that the landscape is being tessellated further away from the camera than it should? The tessellation factor input on the root node is used to control that. If you have set up your falloff mask correctly using the distance from the camera, that should control the tessellation factor so that it's tessellated near the camera, but not tessellated further away. Is that the problem you're having or is it something else?
@duxika
@duxika 2 жыл бұрын
I would like to ask for your help, I am completely stuck. Everything works perfectly until I do the displacement. I connect it to the "world displacement" and the map doesn't change anything it stays flat. I have tried alterative workarounds, but no way to solve it. Any suggestions, ideas?
@BenCloward
@BenCloward 2 жыл бұрын
If you switch to wireframe view, are the triangles being tessellated close to the camera?
@duxika
@duxika 2 жыл бұрын
@@BenCloward here is a video about it. Sorry for the queality i cant set the OBS....kzbin.info/www/bejne/nqGoo2aDp7mhgsU
@duxika
@duxika 2 жыл бұрын
@@BenCloward It seems like the NOH texture I made in part 5 doesn't include the data in the different channels, RGBA). I checked in Substance Designer and in MakingMaterial the input and output of albedo and normal map are fine, but in the others I get back a black image in the output (Roughness, AO, Cavity, Displacement). And after executing MakeCRNOH on it afterwards I get back a yellowish image, which is definitely not good. When I load LandscapeTools, it updates them to the new version and I think there is something wrong there, but unfortunately I can't figure out what. Perhaps you could have a look at what the problem might be? The CR and NOH I made in episode 3 worked perfectly. Thank you for your help.
@duxika
@duxika 2 жыл бұрын
I solved it
@JohnDowson100
@JohnDowson100 3 жыл бұрын
I love your tutorials! Question: why can't I plug directly the height attribute from the layer blend into the landscape displacement material function? Instead of the long chain of lerps? :) Would that be possible?
@BenCloward
@BenCloward 3 жыл бұрын
Have you tried doing that? It doesn’t work. The reason is that the tessellation and displacement of the verts are done in the hull and domain shaders and the rest of the data is done in the pixel shader. It’s not possible to blend data from two different parts of the pipeline in the same operation. So the tessellation and displacement have to be handled separately. It’s counter-intuitive when you see it in the node editor, but it makes sense when you understand what the hardware is doing.
@JohnDowson100
@JohnDowson100 3 жыл бұрын
@@BenCloward You are right, it does not work. I have tried to look for information on this hull and domain shader but I couldn't find anything on the UE4 docs. I trust your experience implicitly, but as a concept is a bit complicated to grasp I confess. What if I output the height map both as a height separate output, like you do (so I can use the Height Blend), and also in a unused channel like "Customized UV 0" for instance. Then I can extract it from the GetMaterialAttributes node and use this blended Height map as a input for the MF_Displacement? Would that work?
@BenCloward
@BenCloward 3 жыл бұрын
@@JohnDowson100 Try it and see! I haven't done that, so I don't know if it will work. It sounds like you're looking for a cleaner way to do it than what I showed.
@siddharthnair4414
@siddharthnair4414 3 жыл бұрын
Hi Ben. It'd be really helpful if you could make a tutorial about how to do displacements in UE5 as height maps are deprecated now. I tried other tutorials and found 0 success. So please help. Thanks
@BenCloward
@BenCloward 3 жыл бұрын
The reason I haven't done this is because UE5 is still in development and Epic has not developed any good method for doing it. The demo that they created doesn't use landscape at all. So we can either assume that they will get rid of landscape (which seems unlikely) or that they will develop a new method for doing displacement that's more efficient. Until then, we'll just have to wait for it, or use the tools already available in UE4.
@JK-xj7ps
@JK-xj7ps 2 жыл бұрын
why subtract position to camera?
@hocestbellumchannel
@hocestbellumchannel 3 жыл бұрын
Everything worked fine, except for the tesselation part. Instead of having a nice and detailed displacement like you are displaying in the video, my tesselation is far less detailed and the displacement looks like triangles. I have tried to scale up the texture just in case it was very small for a proper displacement, but still it doesn't look as good. Is that a version discrepancy, I am using the latest UE version, does anyone else have a similar problem? Thank you so much for your efforts and the amazing and informative content Ben!
@BenCloward
@BenCloward 3 жыл бұрын
Could you send me a screen shot of your results. (ben@bencloward.com) I'm not sure what you mean by "displacement looks like triangles" I'm using version 4.25 - but I doubt version is the issue.
@hocestbellumchannel
@hocestbellumchannel 3 жыл бұрын
@@BenCloward Thank you so much for the reply. I kinda made it work, but I had to scale up the landscape subdivisions, and that causes my 2070super to work like crazy, even without any foliage yet, hahaha. But I might send you a screenshot to check it for whenever you have time.
@deovan98
@deovan98 3 жыл бұрын
I found that resampling the landscape and changing the sections per component to 2x2 sections made it look more like it does in the video. I also reduced the section size to 127x127 Quads to reduce the following increase i got on the overall landscape from the change.
@zyu043
@zyu043 3 жыл бұрын
Is there any way to reduce the time of shader compile ? Thousands of shaders have to be recompiled every time when change a material, wastes a lot of time……
@BenCloward
@BenCloward 3 жыл бұрын
This happens more often when you have a large, complex shader like the landscape one. If you change something like the core material function, it makes it so a lot of other things have to be recompiled because they all depend on it. If you want to iterate on the core material function, it's best to work on it by itself instead of while it's hooked up to everything else. If you can isolate it and make something really simple that uses it, you'll be able to experiment with things faster and not have to wait for the entire landscape to compile. Then once you've got the core function working the way you want, then you can bring all of the other pieces together. I hope that helps.
@zyu043
@zyu043 3 жыл бұрын
@@BenCloward Thank you very much。This method did help, I tested the required functionality with a simple shader, and the number of shaders was much smaller. And I changed a 5800x CPU today, then shader compile is much faster. It really needs a lot of threads to do this.
@bigsky7617
@bigsky7617 Жыл бұрын
I know I'm late to the party, but does the fact I'm using an 8K texture change anything? My materials seem stretched out unnaturally with displacement/tessellation.
@BenCloward
@BenCloward Жыл бұрын
The texture is projected from the top down, so it doesn't wrap around all of the shapes. If you have a height map with hard edges between black and white, the sides will be completely vertical and you'll see stretching. (This is not caused by the resolution of the texture.) Two things that might help a bit are reducing the displacement and/or blurring the displacement map slightly. Of course it depends on how close your camera is getting to the surface, but IMO 8k textures are a massive overkill and a waist of resources.
@bigsky7617
@bigsky7617 Жыл бұрын
@@BenCloward wow I didn't expect the man himself to respond, thank you!! I think I'm expecting too much out of the visuals of the materials. That's why I tried 8K. I'll worry less about landscape displacement and start working with with foliage and assets. I'm working toward making a PCVR game, I may have my expectations of realism a bit high.
@Короткоіясно-ь8р
@Короткоіясно-ь8р 3 жыл бұрын
If I set Worl Position to exclude material offset I got [SM5] /Engine/Private/BasePassTessellationShaders.usf:102:54: error: expression is not assignable (FSharedBasePassInterpolants)O.BasePassInterpolants = (FSharedBasePassInterpolants)Interpolants.BasePassInterpolants; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ struggled for a while and results are disguisting. Actually, for some reason tesselated wireframe is much less dense than presentad on video and displaced terrain becomes just horribly triangulated
@Doofus369
@Doofus369 3 жыл бұрын
Did you find a solution for this?
@Короткоіясно-ь8р
@Короткоіясно-ь8р 3 жыл бұрын
@@Doofus369 looks like world position excluding material shader offsets option works only in 4.25 for now. I set LOD 0 screen size to 0.8-0.9, lod 0 to 1, other lods to 1.4 and it works pretty well.
@Gajd21
@Gajd21 3 жыл бұрын
Hi Ben, not sure is it late to ask this regarding your vid is from last Nov, but I'll try my luck. Did I miss something from your prev vid? I did everything and did check the nodes, however, once I connect height of my node, raises an error of: "[SM5] Function WetPebbleTiling_MF: (Node PixelDepth) Invalid node used in hull/domain shader input!"
@BenCloward
@BenCloward 3 жыл бұрын
I might be able to help you with this. Could you send me the time stamp in the video where you're getting the error?
@Gajd21
@Gajd21 3 жыл бұрын
I know what I forgot to add for my question, the TimeStamp :D If you stop the vid at 11:39, you can see the full picture, I mean your River_Stones Height output been connected below for the WD. (Note, I used the last technique from your previous vid for the tiling solution, for all of the nodes.)
@Gajd21
@Gajd21 3 жыл бұрын
@@BenCloward Okay Ben, Thanks for your concern, found the issue, the static bool was false from the Vid5, My bad.. :)
@BenCloward
@BenCloward 3 жыл бұрын
@@Gajd21 Glad to hear you got it working. Nice job!
@Gajd21
@Gajd21 3 жыл бұрын
@@BenCloward Thanks! I did write to your mail address tho, is it still alive? Just in case if I have a question.. :)
@arknet4973
@arknet4973 3 жыл бұрын
It seams that the landscape already have some fallof settings for tess
@morningsun6827
@morningsun6827 2 жыл бұрын
Uh oh UE5 got rid of tessellation of root materials. Is there a way to accomplish the tessellation from this video without using tessellation?
@cewok9068
@cewok9068 2 жыл бұрын
I'm pretty sure you can achieve similar results using Runtime Virtual Textures (RVT). Or with Parallax Occlusion Mapping (POM). From the research I've done that's the conclusion I've come to.
@pakoo7715
@pakoo7715 3 жыл бұрын
For some reason i have an issue with every single method i've seen - instead of tesselation i see lot's of triangles pushed off the landscape... but on preview everything looks good
@hocestbellumchannel
@hocestbellumchannel 3 жыл бұрын
I have the exact same problem
@pakoo7715
@pakoo7715 3 жыл бұрын
@@hocestbellumchannel so, listen. i fixed but even God don't know how. Try to do the following thing: download 4.18 version (i don't know how, but after this my tesselation started to work BUUUT) Also u should go to the engine settings, find UE_4.26\Engine\Shaders\Private\FlatTesseltion.ush or PNtriangles.ush and there change 2 variables: CompositeTessellationFactors = clamp( CompositeTessellationFactors, 1, (default is 15, i use 100 but this is very expensive );[maxtessfactor(the same value. By default is 15)]. Then, make sure, that u turn off lanscape tesselation and lods and play with diffrent parameters in ur material and inside the project settings/// I hope God of Randomness and holy spirit of bugs will help u)
@hocestbellumchannel
@hocestbellumchannel 3 жыл бұрын
@@pakoo7715 Oh, thank you very much! I am a total noob, but I will certainly try this out and let you know if I had any results! May the gods of randomness and luck guide our actions! haha
@hocestbellumchannel
@hocestbellumchannel 3 жыл бұрын
@@pakoo7715 Noob question, how do i turn off landscape tesselation and lods?
@pakoo7715
@pakoo7715 3 жыл бұрын
@@hocestbellumchannelclick on ur landscape. Find there string:tesselation and turn off everything or set on 0(0.01). Then find lods there and change -1 to 0. Turn on wireframe to see how exactly everything changes
@vogelpapafinn8156
@vogelpapafinn8156 3 жыл бұрын
I dont have enough polygons. My tessellation is pretty pretty bad because they are too big and I cant increase them :|
@Djmixtacy
@Djmixtacy 3 жыл бұрын
I'm really struggling to understand the math of the mask. The mask shows as white but by substracting 500 of the vectorlength and then dividing it by 500 somehow now you have a control for the mask start AND the fade of the mask. I tried outputting that into the debugger to see the actual value's and try to make sense of it. I can almost understand it but I feel like you have to be some kind of math genius to come up with this stuff. Its making me anxious that i'm just too dumb for this, and that it might seriously hinder my own ideas. :( Please whisper some kind words into my ear.
@hcl167
@hcl167 3 жыл бұрын
I don't know why there is no response. I guess it may be the problem of the high node, but I don't know what's wrong
@KaustavMajumder
@KaustavMajumder 3 жыл бұрын
1:00 - The normals seem to be flipped.
@davidmistoffelees8459
@davidmistoffelees8459 2 жыл бұрын
cOmPiLiNg ShAdErS :D :D :D
@ShawnPaul86
@ShawnPaul86 3 жыл бұрын
This technique also is not reflected in collision, so your characters feet will sink into the terrain.
@BenCloward
@BenCloward 3 жыл бұрын
That is correct. This is why I generally don't displace the terrain more than a few centimeters - because that amount still adds some nice realism to the landscape without looking too wrong for the character's feet.
@BIGTTSNORLAX
@BIGTTSNORLAX 4 жыл бұрын
Another awesome video! Would you be interested in exploring the Runtime Virtual Texture and using Streaming Virtual Texture as the low mip backup? This technique is used in Fortnite and described by Ryan Brucks here - (kzbin.info/www/bejne/rWTXhZWMg9CoraM). I know I would greatly benefit from your insight on the proper implementation of the RVT, and understanding just what kind of performance gains I should expect. For instance, would the RVT savings allow for a larger radius of tessellation or compensate for the effect in general?
@zyu043
@zyu043 3 жыл бұрын
I had a strange problem, when the camera was too close to the ground, it would have a strange error, like 8m texture instead of 1m, I don't know why the screenshot link will be deleted with a comment...No wonder no one answered my earlier questions……Try sending a video:kzbin.info/www/bejne/aWikmYKaZa15fpY
@zyu043
@zyu043 3 жыл бұрын
I mentioned this problem yesterday, and just now I found that it was really missing
@BenCloward
@BenCloward 3 жыл бұрын
It looks like your camera distance masks are backwards in inverted for both your displacement as well as for your 8m textures. Try flipping those masks and see if that fixes it.
@zyu043
@zyu043 3 жыл бұрын
@@BenCloward Thank you very much.I figured out where is wrong. I didn't assign the value of blendLength to the cameraDepthFade function...So there is a lack of gradient, resulting in very clear boundaries.As you said, I need to test these values for the final effect.
Rocks and Trees - Building Worlds In Unreal - Episode 7
27:09
Ben Cloward
Рет қаралды 15 М.
Yes, You Can Sculpt Landscape With PCG
17:19
BoroCG
Рет қаралды 60 М.
Osman Kalyoncu Sonu Üzücü Saddest Videos Dream Engine 275 #shorts
00:29
龟兔赛跑:好可爱的小乌龟#short #angel #clown
01:00
Super Beauty team
Рет қаралды 139 МЛН
The REAL Reason Unreal Engine VFX Looks FAKE
6:58
Joshua M Kerr
Рет қаралды 499 М.
Epic's Unreal Optimization Disaster | Why Nanite Tanks Performance!
13:07
Threat Interactive
Рет қаралды 233 М.
Creating water in UE4: Waves
10:17
Marpy
Рет қаралды 14 М.
How Hollywood Shot Actors with Arrows before CGI
15:12
Tyler Bell
Рет қаралды 3,4 МЛН