Great video. Straight to the point and most definitly one of the best video on this topic.
@unreal_metronomus6783 жыл бұрын
One of the best videos about tesselation and displacement. Good explanation of the used maths, not just "do this and do that". Well done! :-)
@BenCloward3 жыл бұрын
Much appreciated!
@unreal_metronomus6783 жыл бұрын
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!
@BenCloward3 жыл бұрын
Thanks! It was a suggestion in the comments from one of my viewers. Always trying to get better at this!
@cablekingtv65573 жыл бұрын
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!!
@MR3DDev4 жыл бұрын
Very cool, I'll give this a shot since the displacement in the Quixel made material is a little wonky after the update.
@AdiusOmega4 жыл бұрын
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.
@franklinfisher62513 жыл бұрын
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.
@RigelOrionBeta2 жыл бұрын
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.
@dinosyr3 жыл бұрын
I have started liking this video series before even starting the video since i know its going to be exactly what i need haha.
@TheBugB3 жыл бұрын
I’m really glad I came across your channel this is real good stuff
@tornadokaze82043 жыл бұрын
Hi Ben, It seems Ue5 has already canceled hardware Tessellation, do you have any idea about the landscape tessellation at 2:40?
@eggZ6633 жыл бұрын
It's been replaced on terrain by virtual heightfield mesh. For anything else just use nanite i guess :)
@unreasonablebastards7532 жыл бұрын
@@eggZ663 I don't think virtual heightfield mesh is really working properly yet, is it? Seems like a pretty hacky workaround for tessellation atm
@eggZ6632 жыл бұрын
@@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 😀
@unreasonablebastards7532 жыл бұрын
@@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.
@alejandrovillegas51102 жыл бұрын
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 Жыл бұрын
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.
@christuusgnosis2 жыл бұрын
great stuff
@sumityadav21773 жыл бұрын
Sir Thankyou for Amazing Works And Efforts.
@YASIR.K3 жыл бұрын
Thanks
@shrapnelmaster1172 жыл бұрын
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 Жыл бұрын
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 Жыл бұрын
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!
@coolzo25243 жыл бұрын
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
@BenCloward3 жыл бұрын
My next video will be at 1.5 and you can tell me what you think. Thanks!
@Tomastage2 жыл бұрын
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
@Hotrood9994 жыл бұрын
Awesome!
@brendanstocks8214 жыл бұрын
When tessellation doesn't kill performance, I'll be ballin with tears of joy XD
@ethanwasme43074 жыл бұрын
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
@momomadi24 жыл бұрын
@@ethanwasme4307 can u help were i can find this technique ?
@brendanstocks8214 жыл бұрын
@@ethanwasme4307 ooo Ima try that rn! Thanks man!
@momomadi23 жыл бұрын
@@brendanstocks821 if u find a suorce about this method . Till me plz
@alu54103 жыл бұрын
UE5 will let your tears down...🤣
@LikeaBossk6273 жыл бұрын
My landscape has weird black triangles when I zoom in instead of displacement. Why is this happenening?
@yongma17413 жыл бұрын
me,too T_T
@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 Жыл бұрын
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 Жыл бұрын
@@BenCloward wow didnt know that, thanks! ☺
@philbax3 жыл бұрын
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?
@Djmixtacy3 жыл бұрын
was wondering the same thing :D
@shrapnelmaster1172 жыл бұрын
@@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
@dexterlohnes3 жыл бұрын
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).
@BenCloward3 жыл бұрын
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.
@mirrorunreal36753 жыл бұрын
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
@BenCloward3 жыл бұрын
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.
@mirrorunreal36753 жыл бұрын
@@BenCloward Thanks for the reply Ben
@emmanuelrenquin25672 жыл бұрын
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 ?
@RobertOoghe2 жыл бұрын
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.
@momomadi24 жыл бұрын
i think u can do auto material fore the cliffs - before finishing the landscape material tuts
@BenCloward4 жыл бұрын
Yes, I will do another tutorial in the future that covers auto materials.
@cablekingtv65573 жыл бұрын
@@BenCloward you are a very good developer brother. I am loving the material you are covering. Thank you so much.
@SenEmChannel3 жыл бұрын
I try 1 day to follow your tutorial. Nearly to part 4. Wish me luck😅
@pauloviniciuscoral11284 жыл бұрын
Amazing
@BlueprintProgrammer4 жыл бұрын
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 Жыл бұрын
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 Жыл бұрын
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.
@MrZoid19804 жыл бұрын
as always good stuff Ben. :)
@dannyl57712 жыл бұрын
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 !
@BenCloward2 жыл бұрын
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.
@Smittel3 жыл бұрын
can tesselation be turned on and off using in game menus somehow, if using material instances?
@manbearfrink3 жыл бұрын
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.
@jb54884 жыл бұрын
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.
@ethanwasme43073 жыл бұрын
fetching attributes like the multiplier in a layer stack never works for me, this is de only way if you have the alpha available :(
@vivekanandb66974 жыл бұрын
If I enable Raytracing will there be any issues? does tesselation/displacement on these landscape materials work with Raytracing?
@BenCloward4 жыл бұрын
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?
@starno68073 жыл бұрын
@@BenCloward I am seeing something wrong with ray tracing now , when I am using it, I found there is black spot shadow everywhere
@LikeaBossk6273 жыл бұрын
@@starno6807 have this problem as well. Did you figure out a solution?
@David-jd3hc3 жыл бұрын
@@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-jd3hc3 жыл бұрын
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!
@afrikaansedude25254 жыл бұрын
Hayyy!Love your videos
@moddes39803 жыл бұрын
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-nn8sv3 жыл бұрын
You could try creating another landscape layer blend to blend the height, though I don't know how much better/worse this is.
@AdiusOmega4 жыл бұрын
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.
@sayanbiswas73643 жыл бұрын
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.
@quantumdeconstructor4 жыл бұрын
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
@momomadi24 жыл бұрын
+1
@artwizardsam32383 жыл бұрын
I think it was only because the river stones' height wasn't there in Layer blend, as it was being blended using Alpha.
@feloris4 жыл бұрын
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?
@BenCloward4 жыл бұрын
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.
@mirrorunreal36753 жыл бұрын
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.
@BenCloward3 жыл бұрын
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.
@mirrorunreal36753 жыл бұрын
@@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 Жыл бұрын
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 Жыл бұрын
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 Жыл бұрын
@@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 Жыл бұрын
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".
@MissIroniQ3 жыл бұрын
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
@stephenfalk88542 жыл бұрын
Yeah I'm getting this too
@Haukett4 жыл бұрын
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?
@BenCloward4 жыл бұрын
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.
@Haukett4 жыл бұрын
oh man fantastic!! thank you, I look forward to it :)
@jdpitt63 жыл бұрын
I'm really hoping this happened and I just haven't got there yet. You're very good at tutorials.
@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 Жыл бұрын
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 Жыл бұрын
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?
@bluegizmo19833 жыл бұрын
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?
@BenCloward3 жыл бұрын
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.
@bluegizmo19833 жыл бұрын
@@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
@EthanVandal3 жыл бұрын
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.
@hugolanda72553 жыл бұрын
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!
@hugolanda72553 жыл бұрын
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.
@mashonoid3 жыл бұрын
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.
@axelb43673 жыл бұрын
Thx
@damz22893 жыл бұрын
The tessellation in wireframe for me is expanded more then the Texture.. what would cause this?
@BenCloward3 жыл бұрын
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?
@duxika2 жыл бұрын
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?
@BenCloward2 жыл бұрын
If you switch to wireframe view, are the triangles being tessellated close to the camera?
@duxika2 жыл бұрын
@@BenCloward here is a video about it. Sorry for the queality i cant set the OBS....kzbin.info/www/bejne/nqGoo2aDp7mhgsU
@duxika2 жыл бұрын
@@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.
@duxika2 жыл бұрын
I solved it
@JohnDowson1003 жыл бұрын
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?
@BenCloward3 жыл бұрын
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.
@JohnDowson1003 жыл бұрын
@@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?
@BenCloward3 жыл бұрын
@@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.
@siddharthnair44143 жыл бұрын
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
@BenCloward3 жыл бұрын
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-xj7ps2 жыл бұрын
why subtract position to camera?
@hocestbellumchannel3 жыл бұрын
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!
@BenCloward3 жыл бұрын
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.
@hocestbellumchannel3 жыл бұрын
@@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.
@deovan983 жыл бұрын
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.
@zyu0433 жыл бұрын
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……
@BenCloward3 жыл бұрын
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.
@zyu0433 жыл бұрын
@@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 Жыл бұрын
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 Жыл бұрын
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 Жыл бұрын
@@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р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
@Doofus3693 жыл бұрын
Did you find a solution for this?
@Короткоіясно-ь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.
@Gajd213 жыл бұрын
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!"
@BenCloward3 жыл бұрын
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?
@Gajd213 жыл бұрын
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.)
@Gajd213 жыл бұрын
@@BenCloward Okay Ben, Thanks for your concern, found the issue, the static bool was false from the Vid5, My bad.. :)
@BenCloward3 жыл бұрын
@@Gajd21 Glad to hear you got it working. Nice job!
@Gajd213 жыл бұрын
@@BenCloward Thanks! I did write to your mail address tho, is it still alive? Just in case if I have a question.. :)
@arknet49733 жыл бұрын
It seams that the landscape already have some fallof settings for tess
@morningsun68272 жыл бұрын
Uh oh UE5 got rid of tessellation of root materials. Is there a way to accomplish the tessellation from this video without using tessellation?
@cewok90682 жыл бұрын
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.
@pakoo77153 жыл бұрын
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
@hocestbellumchannel3 жыл бұрын
I have the exact same problem
@pakoo77153 жыл бұрын
@@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)
@hocestbellumchannel3 жыл бұрын
@@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
@hocestbellumchannel3 жыл бұрын
@@pakoo7715 Noob question, how do i turn off landscape tesselation and lods?
@pakoo77153 жыл бұрын
@@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
@vogelpapafinn81563 жыл бұрын
I dont have enough polygons. My tessellation is pretty pretty bad because they are too big and I cant increase them :|
@Djmixtacy3 жыл бұрын
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.
@hcl1673 жыл бұрын
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
@KaustavMajumder3 жыл бұрын
1:00 - The normals seem to be flipped.
@davidmistoffelees84592 жыл бұрын
cOmPiLiNg ShAdErS :D :D :D
@ShawnPaul863 жыл бұрын
This technique also is not reflected in collision, so your characters feet will sink into the terrain.
@BenCloward3 жыл бұрын
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.
@BIGTTSNORLAX4 жыл бұрын
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?
@zyu0433 жыл бұрын
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
@zyu0433 жыл бұрын
I mentioned this problem yesterday, and just now I found that it was really missing
@BenCloward3 жыл бұрын
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.
@zyu0433 жыл бұрын
@@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.