In Unreal Engine 5.3 and later, displacement mapping (especially using Nanite and virtual heightfield meshes) doesn’t directly adapt to tiling changes as traditional displacement might in other engines or with older methods. Displacement is more heavily tied to the material setup and the geometry of the mesh itself.
@@sarkamari Thank you so much for your answer! So if I want the displacement map to be adapted to my textured model, then I should just not use tiling?
Yes, Unreal Engine’s displacement mapping can work with image sequence textures. This is useful for creating detailed and dynamic surface deformations that change over time, such as animated terrain or procedural surfaces. Just make sure your mesh has enough tessellation or subdivisions to properly display the displacement effect.
Hi Sarkamari! Awesome tutorial Thank you! Do you know how to get displacement working on a character rig and imported into Unreal as alembic, the disp does not work for that , only work on still geometry. I am trying to figure it out how to make it work. TY!
You can apply displacement at the material level using World Position Offset, but it may not be as efficient or accurate as with skeletal meshes, especially with very dense Alembic caches. Also give Geo Cache a try. Unreal supports Geometry Cache components for Alembic files. If you need fine displacement effects, this could be baked as part of the geometry cache and manipulated via materials.
Hi , I just wanted to check does anyone else have it that the landscape disappears as soon as you put the displacement texture on the landscape? Is there a way to fix it by chance?
Same, I even followed one of the suggestions in the comments to put the second command also in the .ini file, and still nothing. The mesh looks exactly the same regardless of whether I use a displacement map or not.
Hey man! Awesome tutorial! I followed everything as you mentioned but im not seeing any result even changing magnitude to a really big number. Im using UDIMS and using .EXR texture as displacement. Do you any idea of what could be causing this? thanks!
Ok so in case anyone else is experiencing this, i just found out the solution. instead of typing "r.Nanite.Tesellation 1" on the cmd on unreal, I just wrote it under the "r.Nanite.AllowTesellation=1" command, but in this way "r.Nanite.Tesellation=1" and that seems to do the trick.
Adjust the displacement scale to more reasonable values. Start with small increments and gradually increase until you get the desired effect. Also, ensure that tessellation is enabled in the material. Last tip, check the mesh in your 3D modeling software to ensure the geometry is clean and UVs are properly laid out. If all above are checked then increase the bounds scale for the mesh. This can be done in the mesh settings under “Build Settings” in the Static Mesh Editor by adjusting the “Build Scale” or “Positive Bounds Extension” and “Negative Bounds Extension”.
seems like there must be a more simple way to do this than going into the config folder, this seems like something that should be a default for all textures.
@fairal123 The reason the displacement map is red is because there's only information in the red channel. Green/Blue channels are black. This cuts down on file size and also (in some renderers) makes for a cleaner displacement. If you have info in all channels, some renderers average all the channels and you can end up getting a blurrier result. (Note: you want to make sure to only pipe the Red channel into the displacement when using this sort of map).
It doesnt seem to work for me. No problem enabling displacement, creating the plane and converting and creating the material with the added displacement option. Used the display override at the command line. But after making the mi and applying it, changing the magnitude of displacement just elevates the plane a little bit. Absolutely no disp details whatsoever. By just creating the rectangle and converting it to nanite, no extra tessellation was created - its literally just two triangles and it doesnt refine based on the displacement input. I tried creating a 500x500 rectangle, and then converting that to nanite, the but the nanite triangles are still way less than the original input and again doesnt refine for the displacement. I think this is why the plane just 'moves up' a bit.... theres not enough triangles to support any geometry deformation. Also, I noticed that beyond a magnitude of about 5 on the disp multiplier, nothing happens at all. Is the displacement functionality bounded somewhere else?
There must be a step missing here. Try to bring in a high poly plane from another app and give this a go. I am just curious as to what type of results that gives you. Also keep in mind that if you type in the console command incorrectly you won't get any error or warning so also double check both commands as well.
I dont have this Red Texture... only Normal, Main Texture and a ORDp (Greenish) Texture?? How to get this Displacement Texture?? I donwloaded this Surface Texture from Quixel and idk how to get this Red thing...
well it dont work for me, i dont know if its the materials i got that are the issue, since i dont have one i know would work, perhaps include the material you use in the future... or did they change something to make it not work, i mean my engine config did look different
Even with this workaround, displacement is in very unstable. Lots of disappearing meshes and shader compilations. Might be worth avoiding this until EG puts more time into it.
If a displacement node has been added to the material why are you having to use so many commands/code to get it to appear/work? Not sure why unreal would say it’s a new integrated feature when from what you’re saying here, it isnt…
Displacement is kind of deprecated due to nanite allowing very high detail meshes. This is the old more computationally expensive way older games used. Tessellation is an outdated tech. Though its probably still OK for rendering, not real time games
@@distorta Incorrect. The process is as valid today as it’s always been. Due to the speed of setup and how results can be gained from the simple use of texture mapping instead of or in addition to geometry. The fact that it is being introduced at all says all you need to know about its relevance in today’s workflow.
To understand at what step it fails Try : 1: import a high resolution flat plane from another app like maya, blender and repeat the steps. 2 download your textures from QUIXEL and repeat the steps The failed result should come from one of the two.
It will get integrated into the app soon. Just so you know Console command in UE is a shortcut to access a lot of tools especially when it comes to optimisation
Hello, thank you very much for this your video, it helps so much, but please allow me one questions: In another video /th-cam.com/video/V28mRmSTA_4/w-d-xo.htmlsi=0wocGO4PsZdgwBEU/ I learned that two commands should be added under EE, i.e. in addition to r.Nanite.AllowTessellation=1 also r.Nanite.Tessellation=1 it is necessary? Thank you and nice day. Krys
Thank you so much! I recently found you as a teacher and I am happy about it😍❤🔥. I appreciate for these awesome tutorials! keep moving please. 🙌
Great to hear that you have found the videos useful. Thank you 🙏
So sad this series is ended for now. I enjoyed a lot! Thanks Reza
I have weekly videos. So we’re nowhere near the end. Glad to see you’re finding the videos useful
@@sarkamari oooooooh Amazing mannn
We all love you!
Excellent tutorial and explanation. 👍👍
Cheers🙏🏼
fantastic video! thank you very much for sharing your knowledge!
I am very pleased to hear this. thank you 🙏
Grate info, thanks, keep on this
Thank you very much for your tutorial! Just had a quick question : with these nodes, does the displacement adapt to the tiling changes?
In Unreal Engine 5.3 and later, displacement mapping (especially using Nanite and virtual heightfield meshes) doesn’t directly adapt to tiling changes as traditional displacement might in other engines or with older methods. Displacement is more heavily tied to the material setup and the geometry of the mesh itself.
@@sarkamari Thank you so much for your answer! So if I want the displacement map to be adapted to my textured model, then I should just not use tiling?
Really wish displacement was enabled on the start like in UE4.
I would like to thank you very much for this wonderful explanation and the information you provided, brother... I will implement this...
great tutorial. thank you!
Works a treat!
Thank you for tutorial. Could you elaborate on the difference between Displacement/ Tessellation and Parallax Occlusion?
Unlike Displacement, Parallax occlusion is an illusion of a displacement so it doesn’t really change the silhouette of the geometry.
@@sarkamari Ah okay. Got it. Thank you for explanation
It worked! thank you so much
nice ! would that displacement work for a image sequence texture ? cheers from Rio
Yes, Unreal Engine’s displacement mapping can work with image sequence textures. This is useful for creating detailed and dynamic surface deformations that change over time, such as animated terrain or procedural surfaces.
Just make sure your mesh has enough tessellation or subdivisions to properly display the displacement effect.
Great explanation!! but when i render a sequence mith MRQ the displacement doesn't work is there a solution for it? thank you :D
its awesome thanks for this grate tutorial
سپاسگزارم
Hi Sarkamari! Awesome tutorial Thank you! Do you know how to get displacement working on a character rig and imported into Unreal as alembic, the disp does not work for that , only work on still geometry. I am trying to figure it out how to make it work. TY!
You can apply displacement at the material level using World Position Offset, but it may not be as efficient or accurate as with skeletal meshes, especially with very dense Alembic caches.
Also give Geo Cache a try.
Unreal supports Geometry Cache components for Alembic files. If you need fine displacement effects, this could be baked as part of the geometry cache and manipulated via materials.
Hi , I just wanted to check does anyone else have it that the landscape disappears as soon as you put the displacement texture on the landscape? Is there a way to fix it by chance?
I have a same problem . How did you fix that?
Hi, i've got the same problem. Did you find any solution for this ?
@@gameguardians646 I finded other one from my asset list
@@doniyorkhakimjonov8364 Hi, I haven't found a fix for it
I tried a couple off things but it didn't work. There is some issue with the Nanite triangle normals making it freak out.
I dunno know why, but it's not working for me !! I did every Step and it's not changing anything! any idea ? am on UE 5.3.2
Same, I even followed one of the suggestions in the comments to put the second command also in the .ini file, and still nothing. The mesh looks exactly the same regardless of whether I use a displacement map or not.
Hey, in the Details panel of the material I needed to go down to Nanite, then under Displacement and Enable Tessellation
Hey man! Awesome tutorial! I followed everything as you mentioned but im not seeing any result even changing magnitude to a really big number. Im using UDIMS and using .EXR texture as displacement. Do you any idea of what could be causing this? thanks!
Ok so in case anyone else is experiencing this, i just found out the solution. instead of typing "r.Nanite.Tesellation 1" on the cmd on unreal, I just wrote it under the "r.Nanite.AllowTesellation=1" command, but in this way "r.Nanite.Tesellation=1" and that seems to do the trick.
Interesting! Glad it’s working
Can Tessellation is usable for Pathtracer?🙏
does anyone know when i apply the displacement the edges get all messed up and separate from each other
hi, is there a way to apply vertex paint to displacement in nanites?
Is there any way to get Pathtracing to support displacement?
is there a way to keyframe mesh displacement in the sequencer? trying to create a sort of glitch effect on a mesh.
Thank you very much for your video. The other method was too difficult
Great Tutorial, i will try to use in Skeletal Mesh.
great!
how can I add macro variation with this
my mesh disappears as soon as I add displacement, do you know why that could be happening?
Adjust the displacement scale to more reasonable values. Start with small increments and gradually increase until you get the desired effect. Also, ensure that tessellation is enabled in the material. Last tip, check the mesh in your 3D modeling software to ensure the geometry is clean and UVs are properly laid out.
If all above are checked then increase the bounds scale for the mesh. This can be done in the mesh settings under “Build Settings” in the Static Mesh Editor by adjusting the “Build Scale” or “Positive Bounds Extension” and “Negative Bounds Extension”.
I wish I could give you more likes, thank you
It's easy to show displacement on flat surfaces but wahta about a box - can you hide seams on edges?
For seamless texturing you can make the texture see less before you import to UE.
Check my quick start to Adobe Sampler to see how it's done.
thank you very Clear
seems like there must be a more simple way to do this than going into the config folder, this seems like something that should be a default for all textures.
Can you use displacement map on deforming meshes / caches yet in 5.3? Like in vray or non - realtime renderers?
You can as long as it's identified as a Static Mesh actor.
How change tile size
This works with the landscape?
Sure does. The magic happens in the material graph so
..
I noticed that the displacement map you are using is red, is it work the same as the gray displacement?
@fairal123 The reason the displacement map is red is because there's only information in the red channel. Green/Blue channels are black. This cuts down on file size and also (in some renderers) makes for a cleaner displacement. If you have info in all channels, some renderers average all the channels and you can end up getting a blurrier result. (Note: you want to make sure to only pipe the Red channel into the displacement when using this sort of map).
It doesnt seem to work for me. No problem enabling displacement, creating the plane and converting and creating the material with the added displacement option. Used the display override at the command line. But after making the mi and applying it, changing the magnitude of displacement just elevates the plane a little bit. Absolutely no disp details whatsoever. By just creating the rectangle and converting it to nanite, no extra tessellation was created - its literally just two triangles and it doesnt refine based on the displacement input. I tried creating a 500x500 rectangle, and then converting that to nanite, the but the nanite triangles are still way less than the original input and again doesnt refine for the displacement. I think this is why the plane just 'moves up' a bit.... theres not enough triangles to support any geometry deformation. Also, I noticed that beyond a magnitude of about 5 on the disp multiplier, nothing happens at all. Is the displacement functionality bounded somewhere else?
There must be a step missing here. Try to bring in a high poly plane from another app and give this a go. I am just curious as to what type of results that gives you. Also keep in mind that if you type in the console command incorrectly you won't get any error or warning so also double check both commands as well.
Why my materials looks very grainy?? downloaded with Quixel bridge high resolution.
I dont have this Red Texture... only Normal, Main Texture and a ORDp (Greenish) Texture?? How to get this Displacement Texture?? I donwloaded this Surface Texture from Quixel and idk how to get this Red thing...
You can use ORD texture pack instead. Displacement comes from your blue channel.
well it dont work for me, i dont know if its the materials i got that are the issue, since i dont have one i know would work, perhaps include the material you use in the future... or did they change something to make it not work, i mean my engine config did look different
It doesn't work for me.
When I type the command "" my material disappears.
Does anyone know what could be happening?
Even with this workaround, displacement is in very unstable. Lots of disappearing meshes and shader compilations. Might be worth avoiding this until EG puts more time into it.
Correct.That’s why its in beta for this release
If a displacement node has been added to the material why are you having to use so many commands/code to get it to appear/work? Not sure why unreal would say it’s a new integrated feature when from what you’re saying here, it isnt…
It's new and it's in beta. So expect to have glitches and bugs. I am sure it'll be fully integrated and no code entry is needed in the near future
Displacement is kind of deprecated due to nanite allowing very high detail meshes. This is the old more computationally expensive way older games used. Tessellation is an outdated tech. Though its probably still OK for rendering, not real time games
@@distorta Incorrect. The process is as valid today as it’s always been. Due to the speed of setup and how results can be gained from the simple use of texture mapping instead of or in addition to geometry. The fact that it is being introduced at all says all you need to know about its relevance in today’s workflow.
Unfortunitly it dont work for me in 5,3. textures are still flat...
To understand at what step it fails Try :
1: import a high resolution flat plane from another app like maya, blender and repeat the steps.
2 download your textures from QUIXEL and repeat the steps
The failed result should come from one of the two.
thank you but it doesn'work ㅠㅠ shoud i remesh?
I don't understand why I have just 3 textures, default, normal map and masks. WHYYYYYY
Tryed this on mobile with nanite, idk what happened
My displacement is grayed out
+1
Did you enable tessellation on your main material after adding codes to the ini files?
Shame You can't use dissplacement while vertex paint multiple materials.. Really sad.
this is a horrible way to enalbe a basic feature iin a game engine. This is a joke
It will get integrated into the app soon. Just so you know Console command in UE is a shortcut to access a lot of tools especially when it comes to optimisation
I beg you differ, this works fantastic for architecture visualization, especially with that nanite feature
It was removed for a reason
Hello, thank you very much for this your video, it helps so much, but please allow me one questions:
In another video /th-cam.com/video/V28mRmSTA_4/w-d-xo.htmlsi=0wocGO4PsZdgwBEU/ I learned that two commands should be added under EE, i.e. in addition to r.Nanite.AllowTessellation=1 also r.Nanite.Tessellation=1
it is necessary?
Thank you and nice day.
Krys
Thx so load!!!