Landscape Displacement - Building Worlds In Unreal - Episode 6

Поделиться
HTML-код
  • Опубликовано: 10 фев 2025
  • Today we cover the topic of landscape tessellation and displacement in Unreal - to add some amazing looking detail to our landscape surface. Even though our landscape is using nice normal maps, it still looks pretty flat. In order to fix this, we turn on tessellation and create a mask that limits the tessellation to the area close to the player. Then we use the height maps from our material layers to push our tessellated vertices up or down to match the detail in the materials. The result is a stunning amount of landscape detail around the player.
    Here's the previous episode on fixing tiling artifacts on landscapes:
    • Fixing Landscape Tilin...
    And here's the playlist for the whole series:
    • Building Worlds in Unr...
    Here is the Landscape Displacement Function we created in this episode:
    www.bencloward...
    ------------------------------
    Learn more!!
    • Landscape Material Tut...
    • Brushify Bootcamp - La...
    Shader Book Recommendations
    www.bencloward...
    ------------------------------
    Theme Music
    Peace in the Circuitry - Glitch Hop
    teknoaxe.com/Li...
    Background Music
    Speo - Reminiscent
    • Speo - Reminiscent [Ta...
    #UnrealEngine #Landscape #Displacement

Комментарии • 185

  • @gabrielepardi5178
    @gabrielepardi5178 10 месяцев назад +3

    Great video. Straight to the point and most definitly one of the best video on this topic.

  • @unreal_metronomus678
    @unreal_metronomus678 4 года назад +9

    One of the best videos about tesselation and displacement. Good explanation of the used maths, not just "do this and do that". Well done! :-)

  • @cablekingtv6557
    @cablekingtv6557 4 года назад +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!!

  • @unreal_metronomus678
    @unreal_metronomus678 4 года назад +2

    I think you are the first guy I´ve seen on RUclips 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  4 года назад +2

      Thanks! It was a suggestion in the comments from one of my viewers. Always trying to get better at this!

  • @MyChannel-l4w
    @MyChannel-l4w 4 года назад +18

    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 года назад +3

      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.

  • @dinosyr
    @dinosyr 3 года назад +1

    I have started liking this video series before even starting the video since i know its going to be exactly what i need haha.

  • @franklinfisher6251
    @franklinfisher6251 3 года назад +4

    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 3 года назад +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.

  • @TheBugB
    @TheBugB 3 года назад +1

    I’m really glad I came across your channel this is real good stuff

  • @christuusgnosis
    @christuusgnosis 2 года назад +1

    great stuff

  • @sumityadav2177
    @sumityadav2177 3 года назад

    Sir Thankyou for Amazing Works And Efforts.

  • @coolzo2524
    @coolzo2524 4 года назад +2

    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  4 года назад +3

      My next video will be at 1.5 and you can tell me what you think. Thanks!

  • @Hotrood999
    @Hotrood999 4 года назад +2

    Awesome!

  • @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!

  • @tornadokaze8204
    @tornadokaze8204 3 года назад +13

    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 года назад +2

      It's been replaced on terrain by virtual heightfield mesh. For anything else just use nanite i guess :)

    • @unreasonablebastards753
      @unreasonablebastards753 3 года назад

      @@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 3 года назад

      @@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 3 года назад +1

      @@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:
      ruclips.net/video/cV2YhjAiogY/видео.html

  • @LeakySpigot
    @LeakySpigot Год назад +1

    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  Год назад +1

      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 Год назад +1

      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?

  • @MrZoid1980
    @MrZoid1980 4 года назад

    as always good stuff Ben. :)

  • @BlueprintProgrammer
    @BlueprintProgrammer 4 года назад +1

    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.

  • @brendanstocks821
    @brendanstocks821 4 года назад +5

    When tessellation doesn't kill performance, I'll be ballin with tears of joy XD

    • @ethanwasme4307
      @ethanwasme4307 4 года назад +2

      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 4 года назад

      @@brendanstocks821 if u find a suorce about this method . Till me plz

    • @alu5410
      @alu5410 4 года назад +1

      UE5 will let your tears down...🤣

  • @RobertOoghe
    @RobertOoghe 2 года назад +1

    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.

  • @afrikaansedude2525
    @afrikaansedude2525 4 года назад +1

    Hayyy!Love your videos

  • @eyeemotion1426
    @eyeemotion1426 Год назад +1

    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.

  • @shrapnelmaster117
    @shrapnelmaster117 2 года назад +1

    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

  • @SenEmChannel
    @SenEmChannel 4 года назад +2

    I try 1 day to follow your tutorial. Nearly to part 4. Wish me luck😅

  • @YASIR.K
    @YASIR.K 3 года назад +1

    Thanks

  • @pauloviniciuscoral1128
    @pauloviniciuscoral1128 4 года назад +1

    Amazing

  • @applenine991
    @applenine991 2 года назад +1

    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

  • @momomadi2
    @momomadi2 4 года назад +4

    i think u can do auto material fore the cliffs - before finishing the landscape material tuts

    • @BenCloward
      @BenCloward  4 года назад +5

      Yes, I will do another tutorial in the future that covers auto materials.

    • @cablekingtv6557
      @cablekingtv6557 4 года назад

      @@BenCloward you are a very good developer brother. I am loving the material you are covering. Thank you so much.

  • @Haukett
    @Haukett 4 года назад +1

    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 года назад +5

      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 4 года назад

      I'm really hoping this happened and I just haven't got there yet. You're very good at tutorials.

  • @GameDevDave-b8p
    @GameDevDave-b8p 4 года назад +2

    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 года назад +3

      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.

  • @Tomastage
    @Tomastage 2 года назад +1

    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

  • @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".

  • @dexterlohnes
    @dexterlohnes 4 года назад +1

    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  4 года назад

      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.

  • @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  Год назад +1

      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.

  • @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  Год назад +2

      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 года назад +2

    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

  • @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.

  • @Sus-nn8sv
    @Sus-nn8sv 4 года назад

    You could try creating another landscape layer blend to blend the height, though I don't know how much better/worse this is.

  • @jb5488
    @jb5488 4 года назад +1

    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 4 года назад

      fetching attributes like the multiplier in a layer stack never works for me, this is de only way if you have the alpha available :(

  • @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 ?

  • @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?

  • @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 года назад +1

      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

  • @Smittel
    @Smittel 4 года назад +1

    can tesselation be turned on and off using in game menus somehow, if using material instances?

    • @manbearfrink
      @manbearfrink 4 года назад

      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.

  • @JohnDowson100
    @JohnDowson100 4 года назад

    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  4 года назад +1

      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 4 года назад

      @@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  4 года назад

      @@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.

  • @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.

  • @LikeaBossk627
    @LikeaBossk627 4 года назад +2

    My landscape has weird black triangles when I zoom in instead of displacement. Why is this happenening?

  • @vivekanandb6697
    @vivekanandb6697 4 года назад +2

    If I enable Raytracing will there be any issues? does tesselation/displacement on these landscape materials work with Raytracing?

    • @BenCloward
      @BenCloward  4 года назад +1

      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 4 года назад +1

      @@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 4 года назад

      @@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 года назад +1

      I solved my issue party by watching this video: ruclips.net/video/7sQOcvyEBj8/видео.html
      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!

  • @mirrorunreal3675
    @mirrorunreal3675 3 года назад +1

    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

  • @hocestbellumchannel
    @hocestbellumchannel 4 года назад

    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  4 года назад +1

      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 4 года назад

      @@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.

  • @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 года назад +1

      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 года назад +2

      @@BenCloward Okay Ben, Thanks for your concern, found the issue, the static bool was false from the Vid5, My bad.. :)

    • @BenCloward
      @BenCloward  3 года назад +1

      @@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.. :)

  • @axelb4367
    @axelb4367 4 года назад

    Thx

  • @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 года назад +1

      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 года назад +1

      @@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.

  • @quantumdeconstructor
    @quantumdeconstructor 4 года назад +7

    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 4 года назад

      I think it was only because the river stones' height wasn't there in Layer blend, as it was being blended using Alpha.

  • @MissIroniQ
    @MissIroniQ 3 года назад +1

    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

  • @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?

  • @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.

  • @EthanVandal
    @EthanVandal 3 года назад +1

    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.

  • @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....ruclips.net/video/hpEr3MrTnLc/видео.html

    • @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

  • @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 года назад +1

      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.

  • @pakoo7715
    @pakoo7715 4 года назад +1

    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 4 года назад

      I have the exact same problem

    • @pakoo7715
      @pakoo7715 4 года назад +1

      @@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 4 года назад +1

      @@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 4 года назад

      @@pakoo7715 Noob question, how do i turn off landscape tesselation and lods?

    • @pakoo7715
      @pakoo7715 4 года назад

      @@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

  • @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.

  • @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.

  • @bigsky7617
    @bigsky7617 2 года назад

    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  2 года назад +1

      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 2 года назад

      @@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р 4 года назад +1

    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 4 года назад

      Did you find a solution for this?

    • @Короткоіясно-ь8р
      @Короткоіясно-ь8р 4 года назад +1

      @@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.

  • @KaustavMajumder
    @KaustavMajumder 3 года назад

    1:00 - The normals seem to be flipped.

  • @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.

  • @davidmistoffelees8459
    @davidmistoffelees8459 2 года назад

    cOmPiLiNg ShAdErS :D :D :D

  • @vogelpapafinn8156
    @vogelpapafinn8156 3 года назад

    I dont have enough polygons. My tessellation is pretty pretty bad because they are too big and I cant increase them :|

  • @JK-xj7ps
    @JK-xj7ps 2 года назад

    why subtract position to camera?

  • @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

  • @ShawnPaul86
    @ShawnPaul86 3 года назад

    This technique also is not reflected in collision, so your characters feet will sink into the terrain.

    • @BenCloward
      @BenCloward  3 года назад +1

      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.

  • @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:ruclips.net/video/37AhOd0HFH4/видео.html

    • @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.

  • @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 - (ruclips.net/video/w3tTbVNkuwA/видео.html). 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?