IMPORTANT: I was finally able to figure it out: In the tutorial he is skipping parts in the edit. Watch min 14:20. there is only a Grass MLB, then a couple secs later he has Rocks MLB and Sentiment MLB without ever creating them. I just got stuck for 3 days doubleclicking in the material instance and else trying to see how to access them. He just didn't record that he created MLBs for the other components other than grass. Later at min 22 he kinda explains what you have to do with the other MLBs, obviously makes sense that you have to switch the UV channel. So anyone that can't follow, simply duplicate the grass MLB and manually create the MLBs for Rock and Sentiment and adjust the copy to adress the correct UV. This must have just been a step missing in the edit of the video, so if your scene doesn work at this point, this is why.
@UndiniTuts Жыл бұрын
Thanks Oskar!
@sonic453255 ай бұрын
@@UndiniTuts Hello UDINI. I hope I dont sound thick as a plank. But, is this new landscape master material still using the Masks you created in Houdini. Please respond, I get confused easy, major dyslexic you know. Thanks so much in advance!
@sonic453255 ай бұрын
@@UndiniTuts Heeelllloooo Udini is this new landscape master material still using the Masks you created in Houdini. OMG
@jennymcelligott38355 ай бұрын
@@sonic45325 You can get maps like this in Houdini. It looks to me as a Gaea user that he's using maps out of Gaea. They'll function the same though~
@piterpunx2 жыл бұрын
dude, this is by far one of the best tutorials i've watched in the last 3 years of developing :) thanks for it!
@scottcourtney88782 жыл бұрын
Thank you so much for this video. I've been struggling with a complex automated landscape material that needs to support hand-painted layers for specific features. I encountered the same problem others have, the inability to directly query the layer weights from the landscape system within the material layer blend. This technique of passing that information packed into the extra UV channels was exactly what I needed. I had done things like this in other shaders, in other engines, but didn't know how to do so in UE with the material attributes system. It's easy to build the material blending directly into the master material, but that defeats the purpose of the layer attributes pattern. I'm glad to have avoided the need for such an inelegant solution.
@1d33f1x3 Жыл бұрын
I've been wanting to make a landscape material like this for months but had no idea how to go about it. Thank you very much!
@seancollett37602 жыл бұрын
My second time following this series of tuts and I am sure I will be coming back to these for a long time. Thank you so much! Words cannot fully describe how great this video series is. Great job!
@sonic453255 ай бұрын
Hello seancollett3760. I'm realy stuck on one point. Is this new master material still using the height masks created in houdini, in the last video. Please respond mate, getting frustrated.
@radbug2 жыл бұрын
FOR UE5 using Material Layer Blends system (multiple Layers on an INSTANCE of a master material), IF YOU WANT TO CUT HOLES IN IT (to make caves and stuff) You have to do these 3 things to activate the ability to SCULPT Visibility on landscapes with this Materials Layer system: First Duplicate the master material itself (not the instance) and add HOLE to the name (any name you want really just so you know which master material is which) then inside that new master material graph, add the SetMaterialAttributes node, add the Opacity Mask element on that node, attach the Landscape Visibility Mask node to that opacity mask. plug the SetMatAttribute into the MaterialAtributesLayers node (which you should already have) THEN click on the main material node and on the left Details panel change the Blend Mode to MASKED. Save this new master HOLE material. Second: Duplicate your previously created landscape material INSTANCE (the instance of the master material where layers are listed/controlled), go to the Details panel of this new Instance, and change the Parent to the new masterHOLEmaterial you made just now (first step i just explained), and finally VERY IMPORTANT ---> in this new instance, under Details, put a check mark in Blend Mode and set it to Masked (yes, it should already be set to mask since it inherits the Masked mode from the new HOLE master material, but for whatever dum reason Unreal needs you to FORCE it to recognize the Masked blend mode inside this new INSTANCE in order for it to work. Third and final: go to the details of the landscape object itself, and add the new INSTANCE (from step 2) to the Landscape Hole Material slot on that landscape. You leave the actual landscape material alone, it should still be the standard landscape instance you setup with the layers painted, and in Opaque blend mode (default blend mode, which is a lot less resource consuming than Masked mode) SaveAll and now it should work. the real important part is that forced blend mode on the details of the new Hole Material INSTANCE. without it, the landscape will show up but the holes wont. You dont have to change anything in actual individual layers graphs (dont need to add opacity mask in those layers or the blend graphs at all). Only changes need to be the new duplicate master material and the new Instance (The reason you Duplicate the old Instance is so that it keeps all your layer information from the landscape layers you already set up. and this also means if you ever make changes to the normal landscape material Instance Layers information (in the Layer Parameters tab of the normal INSTANCE... which you probably will... THEN you are going to have to duplicate it again and Repeat step 2 and 3 (ie, switch the parent of the duplicate to the HOLE master material, and FORCE the Masked Blend Mode in the new Instance. [[[ this WILL keep previously placed HOLES thank god ]]])) ALSO similarly, if you happen to make changes to your MASTER material at any point (sometimes you do though its more rare than changing the layers info in the instance), youll have to make those same changes to your master HOLE material, or repeat step 1 to create the hole master material again, otherwise it wont carry over the changes. basically if you ever change anything on either the Master Material OR the INSTANCE of the master material, you have to repeat the steps 1 2 and or 3 again to carry those changes over to the HOLE version of the texture, because when you paint a new Visibility hole on a terrain you havent painted vis on before, it actualyl SWAPS the ENTIRE TEXTURE /material of that entire landscape chunk to the new Hole INSTANCE material (with Masked blend mode). thats why you have to make sure both your normal landscape instance/master AND the Hole instance/master are Identical except for those specific differences (Opacity Mask linked to Visibility node in the new Hole Master Graph, as well as Blend Modes set and forced to Masked mode on both hole master and hole instance)
@cr3ap3r1 Жыл бұрын
Just wanted to clarify that the 'Landscape Hole Material slot' from step #3 can be found in Details->Landscape>Advanced in UE5.1 for anyone not able to locate it.
@wtfilmproductionsАй бұрын
Thank you so much for making this. I am a huge fan of your tutorials. BTW, I found out in recent UE5.4 testing that you can map landscapecoord to your blend layer and use an alpha map instead of needing to pipe the coordinates through the UVs. You just need to scale the landscapecoord parameter up to your landscape's resolution.
@JorgeAraujo972 жыл бұрын
Your tutorials are God send. I've never learned so much and so easily about Unreal Engine.
@sorosandras9334 Жыл бұрын
Thank you for that tutorial series! Its a basic guide line for me since I first saw them. I hope you will come back some new content soon.
@Derjyn2 жыл бұрын
I just subscribed, and think I was number 1000... Congrats! Even as a veteran UE nerd, I find your content refreshing and manage to learn new bits of knowledge here and there. Always cool to see different ways of doing things. Keep up the great work!
@UndiniTuts2 жыл бұрын
Thanks Nathan ☺️ means a lot! 1000 sounds a lot bigger than 999 haha
@noplaers3 ай бұрын
There is a way to use regular LandscapeLayerBlend (and stop passing masks into CustomizedUVs pins): just pipe your MLs into LandscapeLayerBlend and also add unconnected samplers for all your textures used in the modular layers, somewhere into landscape material, and it will work just like normal landscape, just with layers (and you don't need blend functions in that case)
@021shaw9 ай бұрын
There is no "Layer Parameters TAB" in the Material Instance in UE5.3! Does anyone knows a workaround or an updated solution?
@王诩-k7v4 ай бұрын
You can open the TAB in the windows or view tab in Material Edit
@brso5751Ай бұрын
THX for tuto. 14:39 in 5.4 : no more question mark problems. So don't have to do the trick in the material passing UVs
@hamzakamil43032 жыл бұрын
Great tutorial! I'm using UE5 and the Sediment and Rock materials aren't blending automatically, I just have the option to paint them over the grass material. Would you happen to know why? Thank you!
@Luca-yw4ib2 жыл бұрын
Incredible! This works so well with Houdini Terrains!
@radbug2 жыл бұрын
it should be pretty easy to make work with Gaia exports as well
@Vilde3212 жыл бұрын
At first I was afraid, I was ... lost.. then I realised I shouldn't assume to understand everything instantly and started slowly getting the hang of stuff. Still haven't finished watching but I'm progressing.
@UndiniTuts2 жыл бұрын
That's the spirit!
@Nevetsieg2 жыл бұрын
Great tutorial! I just don't understand why Epic invented this material layer work flow,but not intergrate it to the landscape, which need this work flow the most....Why we have to find a " work around" all by ourselves...
@UndiniTuts2 жыл бұрын
Agreed! Definitely lots of room for improvement.
@dzima-create11 ай бұрын
Nice. This trick with custom UVs was exactly that I was looking for. I was struggling with how can I use the material layer system with the landscape layers - not to repeat the complex logic for materials in landcape master material. Your video saved me a lot of time. Btw, unfortunately that there is no easier way to do it. But its ok.
@marknickells6097 Жыл бұрын
Outstanding! And , easy to follow along. I have been using Pixel mixer, " I guess to cheat my layers. This well done.
@gabrielepardi5178 Жыл бұрын
Great video. Thanks
@aizen_rhyme_schemes2 жыл бұрын
Hey there! Hope everything's going well with work and such, and I don't find you too busy with this message. My question is about height lerp and parallax occlusion mapping. How to implement height lerp blend and POM into this kind of landscape material that's made up of layers? I can't seem to find any info on youtube. Thanks a lot!
@Friefful2 жыл бұрын
Grate tutorial .. But I'm somehow missing where i should aplay these nice Blend maps from Houdini ...basically all my layers are opak...because the alpha is not in my MaterialLayer !?
@alejandrorugero9 ай бұрын
Hello, good tutorial, I have a question. How do you create the Layer Info of each material, do you create it in the plus sign or are they created alone when creating MLB_? It doesn't turn out like you, please explain to me why.
@CineSly2 жыл бұрын
first of all thanks for making this tutorial i have a few questions for you In the 23rd minute of the tutorial, the colors are set automatically for you, I don't change, they stay the same. It's very urgent, I would be happy if you help me.
@ThomasBerglund-y8f7 ай бұрын
This guy = legendary
@alexandermoyle90342 жыл бұрын
wow what a great tutorial series, learned a lot 🙂 thank you
@yuseitada453 ай бұрын
this tutorial is so good man
@Tylru2 жыл бұрын
In theory, you could set up a float parameter in the blend asset which selects which UV data to grab, meaning you only need one blend layer for all of your painted layers in the material. 0=UV1R, 1=UV1G, 2=UV2R, and so on :)
@UndiniTuts2 жыл бұрын
You've pre-empted the follow up to this video which will also go into runtime-virtual-texturing ;) Yes, this is absolutely the more friendly workflow in terms of simplicity and control.
@Tylru2 жыл бұрын
@@UndiniTuts Haha, awesome! Really enjoying these videos :)
@aukehuys22972 жыл бұрын
Hi @Tyler - but how would you achieve this? I tried several methods now and sadly, I couldn't get it to work. Since there is no multi switch parameter I do strugle to get it work. Yes, I could simply use multiple static switches and chain them up, but this does not seem very elegant. SO what would be the "float" way? A brief explanation would be totally fine - don't need a full graph :) Help would be very much appreciated!
@Tylru2 жыл бұрын
@@aukehuys2297 you would probably use a float, and pass it think a chain of if nodes. I forget the exact context of my comment, but that's how I'd probably approach it
@UndiniTuts2 жыл бұрын
@@aukehuys2297 hi Auk, you could do this one of a few ways. Take the output of the custom uvs and multiply them by a scalar. "Layer 1 influence", "layer 2 influence" etc. Then you take the resulting values and add them all together, or multiply them, or max them. I didn't do it this way In the initial tutorial since it makes the material itself more complex for newcomers. But it will be covered in the future along with numerous other expansions to the system under the layers paradigm for those who wish to explore the limits. It's also worth considering that this approach produces a shader with more instructions per component. This can be mitigated by using runtime virtual textures, but it's still a factor to consider. We will be doing a deep dive on this subject as i mentioned previously, but If you have any doubts, sticking to one sample per function is totally valid and in some ways better. You have to redo some work, but if you put the logic into a function and use that inside the blend, you can maintain most of the modularity.
@bestOskarEverxD Жыл бұрын
I don't have the MLB Rock and Sediment. How does he have access to those? Has this system changed yet again for UE 5.2 ?
@GalantiasWorld Жыл бұрын
I love this way of lanscaping , i just dont figured out how i can example : add a second sediment texture or grass to the Paint Layers =(. Help :D!
@abonil875 Жыл бұрын
Good morning everyone ? how did you place you layers in the canal RGB ? thx nice tuto .
@rasoamanantenafabiano69072 жыл бұрын
Hello, thank you for this wonderful tutorial. I am currently applying it on my project and it works great. I just have one question. Since the workflow does not go through the base landscape layer blend, is there a way to get the height blend to paint on the landscape? Thank you in advance for your answers 😊
@quackcharge Жыл бұрын
also wondering about this currently :/
@quackcharge Жыл бұрын
reply from Undini about this problem down below: "Hi Hauke, There's numerous ways to go about this. 1a.You hook in a displacement map inside the layer 1b.You getmaterialattributes inside the blend and read out the displacement, and then hook this into a heightblend function with the landscape weight as the transition phase 2a. You set up a texture sample directly inside the blend and plug in the displacement 2b. Plug this displacement into a heightblend with the landscape weight as a transition phase You could also write your own function instead of using the height-blend if you're unhappy with the results you get from that node. This will be covered in a future episode along with other material extensions."
@RikardHultman Жыл бұрын
Hi. Great tutorial! It's really hard to find this info online, for some reason. I'm having a problem: everything works as is shown in your video, but I get the "fringe error" someone else mentioned in the comments. Whenever I paint on a layer, the background layer shines through. How do I fix that? Thanks!
@Ka2Fa2 жыл бұрын
Can you show how to add displacement to this now?
@Fedsson Жыл бұрын
Hey! I have followed you tutorial, everything looks great, until I try to Package an example for Windows. When I try packaging for Windows I get black squares mostly on slopes. Any idea about this? Have you tried to package for windows? If not could you please give it a try to see if you get my issue? Thanks in advance!
@davidbata93542 жыл бұрын
hi, very nice tutorial, I tried to use the landscape layer blend function at the editor and the whole preview is a big black void, like it has't got right output. I set the preview weight to 1, tried to connect the argb to the height. I suffering under this for 2 week. Do you know what cause the problem, or how can review without the editors preview? ue 5.0.3, thank you very much in advance if you can help with this
@Geminiwoods422 жыл бұрын
Nice patch - hope UE see this
@UndiniTuts2 жыл бұрын
Hi, if you are a returning viewer who has already watched this full video, but wants to learn more about Detail Texturing only, check out this other video on my channel, which covers three different approaches to detail textures. kzbin.info/www/bejne/hZTKqYR9n9SJjcU
@sonic453255 ай бұрын
Is this new landscape master material still using the Masks you created in Houdini. Please respond, No one will help me, I was enjoying the series so much this far
@UndiniTuts5 ай бұрын
@@sonic45325 Hi! That's correct
@YarGolubev Жыл бұрын
I would like to know more about why Customized UV is chosen - this will limit the methods of mixing materials - for example, in height.
@KiwiHawk-downunder-nz Жыл бұрын
Can you use this to create a landscape layer that has height adjutment for creating islands where yu need a seabed and beach's please?
@astonyo7544 Жыл бұрын
Thanks for the amazing tutorial. Could you make a tutorial about adding a custom mask to spawn a procedural foliage?
@eyeemotion1426 Жыл бұрын
Very nice! I like this method a lot. Got a bit stuck during the Detailing Texturing, when you switched Color and DetailColor. You never actually switch those parameters in the video (or maybe during the sped up portion?), so I the texture slots were named wrong, that confused me during my testing (as I'm testing it on my own landscape, which is made in UE itself using bleuprint brushes). So that set me back an hour or so 😅. With the slopes, I didn't get the desired results at first, because I have really steep cliffs. So 1 layer would blend with the other on most spots, some even completely. But apparently I had so set the contrast way above 1, set it to 3. And the FalloffPower, I had to play with the 3 numbers after the comma. 0.46 would be let the normalmap seep into the ground layer, 0.45 would let the ground layer seep just too much into the tight slope, so had to go for 0.455. How can I make this less sensitive? Btw, those Quixel textures have changed a bit. I had the same Iceland cliff, but they put AO and Roughness into the same texture (together with Displacement). It had ORDp on the end, so I changed your Blueprint for Roughness to output the Green channel and for AO the to the Red Channel. I could switch to just 1 Param2D for this, as they are the same image. But how do you battle this when you have an asset that got this 3-in-1 texture set up differently? Also, since that texture also has a displacement channel (blue), how would I add that? As I don't see Displacement in the SetMaterialAttributes. Edit: Just saw some other problem I run into. There are some parts where the cliff texture is applied (because as set up, it needs to), but those are spots I don't need them in, as they are parts that 'people dug open' to get a road through. How can I override such parts? Because I tried painting over it with the weighlayers, but it doesn't seem to do it. Cheers
@eyeemotion1426 Жыл бұрын
I've gotten a whole lot further, but there are still some quirks about this method I can't seem to resolve. 15:08 - You are using a wheightmap created in Hudini. But how do you use this to paint on yourself? For overriding your AutoMaterial? For example, I have some spots where I have beachsand, because I set up my AutoMaterial to do so at that certain spot. But as those spots are further away from my ocean and lonely between all that grass, I want to override my AutoMaterial by telling it, that even though the height is lower, I want it to be grass. I get it to work with the 'traditional' setup for AutoMaterials, but when I try to paint, nothing changes (although my brush is white, so no errors). Also, I'm trying pass the Displacement Heightmap (for MegaScans, it's the blue channel of the ORDp file) to the MLB so I can add it to my heightmask/alpha, so I can blend both layers more naturally. Actually this method: kzbin.info/www/bejne/invEXqlrrqmsmKs I'm close to finishing up my Landscape AutoMaterial. I still have to follow your GrassFolliage tutorial to spread around big boulders around steep cliffs.
@Daniel_Crane2 жыл бұрын
@UNDINI thank you for this - it's hard to find tutorials of this caliber. Im going to be digging through the rest of your library after I finish this series. A couple quick questions I have though - At one point in the video you switch the scalar parameters for the detail texture scale and macro texture scale. Doesnt that then make it so the scaling values are controlling the opposite textures that they should be? As in, the "detail texture scaling" as is now controlling the macro texture? Also, after following along with this tutorial, I tried to use two different textures: one for closeup detail (a tiling texture of rocks and gravel) and a macro rocky texture, straight from the same Gaea map I used to generate the heightmap. But I could not get this to work. To get a setup like that to work, would I need to create a second texture parameter object for the Gaea texture, rather than having a single texture parameter obbject control both the high res and mip-biased texture samples? Thanks in advance for any advice you can offer!
@UndiniTuts Жыл бұрын
Hi, I did mix up the names of the parameters! You would need more texture samples to blend macro and detail :)
@Light_Is_Rotten Жыл бұрын
Hello! Loving this tutorial! I got stuck on 23rd minute though. I set everything up literally how it is shown in the video, however for some reason I am not getting this color distribution. The only layer that shows is the background one. I am using UE5. Please help :D Edit: Just fixed one of the Material Layer Blends(wrong referencing), and now I am seeing just one of the layers. Still need help xD
@clxrxw.3034 Жыл бұрын
Yeah would be amazing... I am stuck at the same problem and dont know how to fix that
@Light_Is_Rotten Жыл бұрын
@@clxrxw.3034 hey! I have figured out that there is a video before this one, so I had to come back one video back to get the explanation of that Though I want to see how can I use masks from World Machine and also I want to understand how to be able to control the masks overall. Good luck to you and I hope you will find all the answers!
@sofidarkrabbit Жыл бұрын
@@clxrxw.3034 im having the same problem
@moufiddechicha1613 Жыл бұрын
Hello, I'm using unreal 5.1 and I'm having an issue with this workflow. Basicaly the texture do not show up Mapped correctly using the texture coordinate or the landscape coordinate. They only work if projected in XY or triplanar. Would you happened to know why ?
@zakkatara10 ай бұрын
I love this method however I am encountering a really huge issue. It seems that when using more than 3 custom uv channels, it no longer passes the layer sample information through to the blend material, and defaults to the 0-1 gradient you would normally see in one of the custom uv channels if there was no data added. If anyone has seen this and has an answer to it, please please let me know. I am dying trying to figure this one out :)
@rolandmesaros69412 жыл бұрын
At 4:10 when you create a Material Attribute Layers it doesn't show me to set the parameter name. (I'm using UE 5.0.3) and thus at the material instance I don't have the Layers parameter on top. How can I fix this or what did I do wrong ? really followed it step by step. This is the important part, that the material instance doesn't have the Layers parameter. how can I set it up ?
@justingonsowski84392 жыл бұрын
same issue
@justingonsowski84392 жыл бұрын
i truly wish i could figure out why it would let us...
@seansopata51212 жыл бұрын
Did you try turning it on? Open your Material Instance, Go to Window -> Layer Parameters
@arielshpitzer Жыл бұрын
that's a 200 IQ trick !
@aneebartist72072 жыл бұрын
Noob like me watching this video in 0.25 speed. But I know If I will understand this method I can create something good . this guy is Monster (Master).
@100redeye Жыл бұрын
so what do we do when the layer parameters tab at 9:26 is empty? (edit: fixed it by deleting the instance and remaking it)
@lob.4502 жыл бұрын
HEy Undini. Thanks to spend time for us all. I got a question, only one layer appears at a time, moutains are full of grass. I checked all my materials twice and it's exactly the same as yours. Any help?
@kaushal.k6763 Жыл бұрын
it would be great to see rivers bed and water in this map
@haukehildebrandt13542 жыл бұрын
Hi, great tutorial, love the MaterialLayer system! I am struggling, though, to properly add height-based blending to the MLBs to get sharper transitions - could you give a hint how to achieve that?
@UndiniTuts2 жыл бұрын
Hi Hauke, There's numerous ways to go about this. 1a.You hook in a displacement map inside the layer 1b.You getmaterialattributes inside the blend and read out the displacement, and then hook this into a heightblend function with the landscape weight as the transition phase 2a. You set up a texture sample directly inside the blend and plug in the displacement 2b. Plug this displacement into a heightblend with the landscape weight as a transition phase You could also write your own function instead of using the height-blend if you're unhappy with the results you get from that node. This will be covered in a future episode along with other material extensions.
@robertoestrada39973 ай бұрын
PSA. When you get to the part of using the customized UV channels, never use the channel 0 because that's the channel that carries the texture UV information and the landscape won't display only garbage. Despite the video not falling into this error, I did so you don't have to lose time with that.
@sonic453255 ай бұрын
Hello UDINI. I hope I dont sound thick as a plank. But, is this new landscape master material still using the Masks you created in Houdini. Please respond, I get confused easy, major dyslexic you know. Thanks so much in advance!
@UndiniTuts5 ай бұрын
It is yes!
@sonic453255 ай бұрын
@@UndiniTuts You sir, are a legend. God bless you.
@guille_ibanez Жыл бұрын
great tutorial! However, I cant get it to work on my project. I can't never get for the layers to show on my landscape : ( Could a kind soul send me this Landscape material to check what's wrong with mine? many thanks!!!
@ilyinnikolay2663 ай бұрын
Any thoughts on how to make this work with nanite landscape?
@ilyinnikolay2663 ай бұрын
Ha! I figure it out! You just can't use nanite and Custom Uv3 at the same time! I'll say more - you can even use Custom Uv 4 or 7, but not Custom Uv 3))
@ravenik6855 Жыл бұрын
Hi, impressive that you managed to make this tutorial shorter then one hour :-) Before I follow your tutorials, please tell if we can restrict "proceduraly" spawned foliage to, say, one layer of landscape????? (I mean ProceduralFoliageVolume + ProceduralFoliageSpawner + StaticMeshFoliages) I try to do this with an auto material which I found on the web, but the procedural foliage spawner only spawns foliage on my manually painted layers, not on the layers generated by auto-material (I mean: after restricting spawning to above-said "inclusion" layers). I just have to paint on layers where I want to have foliage spawned. I would rather automatically spawn stones on some steep surfaces, shrubs on grass, etc. However procedural grass (LandscapeGrassType) works from auto-material but it is not as good as ProceduralFoliageSpawner + StaticMeshFoliages. Look forward to your advice. I would follow your tutorial if what I want is possible.
@xXJames90Xx2 жыл бұрын
Hi, first of this is a Tutorial series. I wanted to ask if you thought about a way of dealing with a material that includes different biomes? If i have 4 or 5 biomes and all need enough textures for variation on the Landscape but im restricted to a maximum of 16 layers with custom uvs ranging from 0 to 7. I could only think of doing the variation with a noise mask in the material layer but i'm not sure if that is the best way to go because of the additional Texture Samplers.
@eggZ6632 жыл бұрын
Ah you added in the missing bit, nice one! 👍
@UndiniTuts2 жыл бұрын
I did, but for a more succint and in-depth look at detail texturing, go here: kzbin.info/www/bejne/hZTKqYR9n9SJjcU
@Geminiwoods422 жыл бұрын
Hiya, great video. Landscape material looks fab BUT I can't paint with the landscape/paint tool.. it shows the layers but they dont' actually overlay the original landscape.. am i doing something wrong?? thanks
@UndiniTuts2 жыл бұрын
Humm, most curious! Could be a bunch of things. Send me an email with screenshots of your material and functions and I'll see if I can spot the issue
@NorisSpecter Жыл бұрын
My material came out not blended as expected - I have no layer info because i used different software to create bigger, sectored landscape but Is it possible to create Layer Info for terrain with multiple sectors using Your method? My landscape is way bigger and is in 64 parts can Houdini do something similar? To be honest I hope so, because this method looks lovely.
@bestOskarEverxD Жыл бұрын
It's also a little bit of putting, that we have all this "automation" for gernerating the material, but for it to blend properly, we need to make a new MLB each time and hook it up manually to the system. Question is, would it be possible to do that also with material functions? Or couldn't we just ignore the landscape system and use a opacity/opacity mask channel to do the same blending? edit: hmm opacity doesn't seem to really work with landscape system. ahhh why make it easy when you can make it difficult :D
@UndiniTuts Жыл бұрын
Hi Oskar, with this approach you only need 1 MLB. You can sample all the layers in the mlb, multiply each of them, and then "max" and "saturate" the result. The multiply acts as an "of-off" switch for the layer. Bear in mind this will increase permutations! Unreals standard weight map based approach is pretty inefficient for giant worlds, as I have learned. I might be making a return to youtube sometime soon :)
@bestOskarEverxD Жыл бұрын
@@UndiniTuts Hey, your tutorial series is absolutly amazing. However I'm really having trouble with understanding the underlaying architecture of the landscape system. I understood why spaghetti mode is kinda bad, but then it really shifts the complexity in another direction of managing all of it. I'm running into issues with the landscape system (layers disappearing, reappearing when you start painting, getting super slow because it complies all the time and stutters like crazy) Do you think there is a way I could have a chat with you for 20-30 min in a discord sometime to connect some of the missing dots?
@astonyo7544 Жыл бұрын
Also, how this layered material will fit on a different landscape sizes?
@babyrmedet73982 жыл бұрын
Amazing tutorial. Thanks a lot. I follow by tutorial till 23:25. I hope that it will work also in UE5, unfortunately it doesn`t display tints. Is anybody knows how to solve this in UE5? Thanks
@UndiniTuts2 жыл бұрын
Hi, sorry for the delay in getting back to you. Could you explain the issue in more detail?
@moddes39802 жыл бұрын
@@UndiniTuts Yeah i'm getting this same issue. It appears that in UE5 using the exact same method its not reading the Landscape Layers at all, the Background material is the only thing showing. I've checked the debug and the maps are still there but the shader isnt using any of the rock/sediment/grass layers for some reason. Could you try replicate in UE5 @Undini and see what you get?
@boblep0nge9272 жыл бұрын
@@moddes3980 i'm on eu 5.0 i think the problem here is that he got his layer already preset from the part 2 of his series at the 24:50 mark he set a placeholder material and he apply the weight layer info (he delete after in part 3 i think) then when you watch part 4 he got his layer there already but they display a question mark. what i did is to go watch part 2 - 24:50 Creating a placeholder material to display Weightmaps- i set one up like he did using the same material attribute (godtier) temporarily they should show up, apply the weight layer info (+) then import your mash also you can go lit/visualizer/layer debug and select red blue green in your layer (in the landscape/paint section lil square R G B show up below the layers)
@outerheaven28102 жыл бұрын
@@moddes3980 In UE5 go to Landscape Mode - Manage Tab - Under the Import Tab - Open the Layers section - Add the masks to each layer
@AhmedRassmy2 жыл бұрын
Very nice tutorial. But I was wondering if this setup could be used with layer painting, and how to approach something like this ?
@UndiniTuts2 жыл бұрын
Already works out of the box :)
@paulgabriel4360 Жыл бұрын
@@UndiniTuts Yes but when you paint, it paints an entire landscape grid square and doesn't blend. Did I miss something?
@barmaleevmax2 жыл бұрын
cool, buddy, thanks! And now, how to change the masks in LanscapeLayerSample, if it will be necessary. And how to add the next layer for painting in the "paint" section of the landscape settings
@barmaleevmax2 жыл бұрын
That's it, the question is closed, I figured it out on my own
@UndiniTuts2 жыл бұрын
Hey nice one figuring it out by yourself. The next session is gonna revisit the biome maps and extend the material a bit more :)
@silvera_tv39002 жыл бұрын
Hey man, I added all the usual stuff for an opacity mask slot on the material layer and then applied it to one single layer but when said layer blends with another, it applies the opacity map to both of them, thus creating a hole in the ground instead of just applying the mask to itself. Any help appreciated, great tutorial ill be using this work flow for landscaping from now on.
@radbug2 жыл бұрын
Opacity mask is for making holes in the terrain. FOR UE5 using Material Layer Blends system (multiple Layers on an INSTANCE of a master material), IF YOU WANT TO CUT HOLES IN IT (to make caves and stuff) You have to do these 3 things to activate the ability to SCULPT Visibility on landscapes with this Materials Layer system: First Duplicate the master material itself (not the instance) and add HOLE to the name (any name you want really just so you know which master material is which) then inside that new master material graph, add the SetMaterialAttributes node, add the Opacity Mask element on that node, attach the Landscape Visibility Mask node to that opacity mask. plug the SetMatAttribute into the MaterialAtributesLayers node (which you should already have) THEN click on the main material node and on the left Details panel change the Blend Mode to MASKED. Save this new master HOLE material. Second: Duplicate your previously created landscape material INSTANCE (the instance of the master material where layers are listed/controlled), go to the Details panel of this new Instance, and change the Parent to the new masterHOLEmaterial you made just now (first step i just explained), and finally VERY IMPORTANT ---> in this new instance, under Details, put a check mark in Blend Mode and set it to Masked (yes, it should already be set to mask since it inherits the Masked mode from the new HOLE master material, but for whatever dum reason Unreal needs you to FORCE it to recognize the Masked blend mode inside this new INSTANCE in order for it to work. Third and final: go to the details of the landscape object itself, and add the new INSTANCE (from step 2) to the Landscape Hole Material slot on that landscape. You leave the actual landscape material alone, it should still be the standard landscape instance you setup with the layers painted, and in Opaque blend mode (default blend mode, which is a lot less resource consuming than Masked mode) SaveAll and now it should work. the real important part is that forced blend mode on the details of the new Hole Material INSTANCE. without it, the landscape will show up but the holes wont. You dont have to change anything in actual individual layers graphs (dont need to add opacity mask in those layers or the blend graphs at all). Only changes need to be the new duplicate master material and the new Instance (The reason you Duplicate the old Instance is so that it keeps all your layer information from the landscape layers you already set up. and this also means if you ever make changes to the normal landscape material Instance Layers information (in the Layer Parameters tab of the normal INSTANCE... which you probably will... THEN you are going to have to duplicate it again and Repeat step 2 and 3 (ie, switch the parent of the duplicate to the HOLE master material, and FORCE the Masked Blend Mode in the new Instance. [[[ this WILL keep previously placed HOLES thank god ]]])) ALSO similarly, if you happen to make changes to your MASTER material at any point (sometimes you do though its more rare than changing the layers info in the instance), youll have to make those same changes to your master HOLE material, or repeat step 1 to create the hole master material again, otherwise it wont carry over the changes. basically if you ever change anything on either the Master Material OR the INSTANCE of the master material, you have to repeat the steps 1 2 and or 3 again to carry those changes over to the HOLE version of the texture, because when you paint a new Visibility hole on a terrain you havent painted vis on before, it actualyl SWAPS the ENTIRE TEXTURE /material of that entire landscape chunk to the new Hole INSTANCE material (with Masked blend mode). thats why you have to make sure both your normal landscape instance/master AND the Hole instance/master are Identical except for those specific differences (Opacity Mask linked to Visibility node in the new Hole Master Graph, as well as Blend Modes set and forced to Masked mode on both hole master and hole instance)
@kylemason012 жыл бұрын
Just wondering if in one of your future vidoes if you could cover how to optimise these landscapes by using Runtime Virtual Textures.
@UndiniTuts2 жыл бұрын
Certainly will, it's quite straightforward so nothing to worry about
@alessiobelli2 жыл бұрын
@@UndiniTuts Hi! Thanks for this great video, Just subscribed! I have some problem with this method and RVT, is there anything you can show about it?
@NeverMindYourOwn2 жыл бұрын
Excellent video. I followed you along and made something like thia too. But now I am having problems calling functions from a Material Layer, like you would do from normal materials too. It just seems impossible to do. Probably because passing parameters works differently. This basically makes using Material Layers useless. You have an answer to this? For instance: calling the built in Texture Bombing function won't work.
@UndiniTuts2 жыл бұрын
Hi, you should be able to call regular functions inside of both layers and blends. Could you describe the issue you are having in more detail?
@samuelmoser2 жыл бұрын
I have a problem when I try to recreate this. My layer are not showing up under the landscape tools => paint. I have made two Layer and I have a blend layer on one. But it isn't showing. When I apply the right Blend Material to every Layer, the background layer shines through. I don't see any layers except the background. What can I do? I think it is only a small thing. Does anyone have a tip for me? But great video. Love your content.
@UndiniTuts2 жыл бұрын
Try to reapply the material to the landscape :)
@wnetster Жыл бұрын
TNX DUDE!
@txetxu652 жыл бұрын
Hi,I have a problem, at minute 14.33 the layers have been created, but I have followed the tutorial several times and the 3 layers of the example do not appear, because if everything is correct.That you think why ?...Is possible send you a pic with all structure of materials for check the possible mistake??.Many thanks for all your jobs.B.regards
@CupMcCakers2 жыл бұрын
Hi, have you followed through the previous parts of this tutorial series? This material relies on landscape layer wieghts created in a previous section
@txetxu652 жыл бұрын
@@CupMcCakers Hi,i was imagine but i will think that this new form of layers for landscape are not togethers with other jobs,i will see your others jobs.Many thanks for all your best tutorials to us.))
@joeyparenti78152 жыл бұрын
@@CupMcCakers the hell you mean relies in the previous video now I need to backtrack?
@reliquary12672 жыл бұрын
How is the instruction count compared to the typical auto materials found on the marketplace?
@UndiniTuts2 жыл бұрын
Typically Lower. But of course, if you have a lot of layers, you'll increase the instruction count!
@baorichard43452 жыл бұрын
thanks for the tut!
@UndiniTuts2 жыл бұрын
You're welcome
@moufiddechicha16132 жыл бұрын
Some questions for you. Amazing tutorial first off all thank you for sharing all that hard work with us. My question for you is how to use the height blend that was previously located in the landscape layer blend node. I have seen your vidéo and It looks like we can only use some sort layer system Just like in photoshop how can we blend it with taking into account the height map of our surfaces.
@UndiniTuts2 жыл бұрын
In my latest video I touch on exactly this. I realise that there's a lot of little things like this information that can get a bit lost in hour long videos, so I will figure out some alternative ways to communicate vital information like this In addition to the workflow videos.
@NeverMindYourOwn2 жыл бұрын
Another question: how do you assign physical material to such layers?
@UndiniTuts2 жыл бұрын
Hi, my latest video details how to pass arbitrary data through the material attributes. This includes Grass, Layer Weightmaps and Physical material attributes. kzbin.info/www/bejne/mZ6vc62wh7uChtU
@Frog423 Жыл бұрын
Hi, I'm doing this tutorial in ue5, and it seems like I can't get any layer info for my textures, it just shows the base texture, is there any way to fix this? EDIT: Fixed it
@rostyslavsemenist5237 Жыл бұрын
Hi, how did you fixed that issue? Thanks
@Frog423 Жыл бұрын
@@rostyslavsemenist5237 I looked down the comments, and found out that these were pre-made from his first, or second video in this series, watch those, and you'll understand (mainly the second video) - note: you will need Houdini if you want to do it the way he does.
@josebringas5132 жыл бұрын
Hi Undini, great tutorial. I have a question for you. Maybe you already covered it but needed to ask it anyways: if sampling textures in shaders is expensive, wouldn't it be cool to have packed texture maps and then unpack them in the Material Layer to have fewer maps in regards of optimization? Once you unpack them, convert them into parameters and hook them up to the SetMaterialAttrib node. thanks for these tutorials. Great teaching!
@CupMcCakers2 жыл бұрын
I have not touched on this yet, but you are correct. Packed Textures and Texture Atlas' are a good way to go.
@pawpotsRS2 жыл бұрын
I'm having a problem with the two slope blend, if there's two nothing show, if I hide the other one the other start to appear, is UE5 not allowing to have two slopes at the same time in the landscape? edit: I tried experimenting with Toggle Visibility for each of the layers and it feels like I only have a maximum of 4 layers only because If I make it 5 or 6 everything disappears. ps: is anyone having this same problem. edit 2: I forgot to set the texture sample to shared wrap.
@UndiniTuts2 жыл бұрын
The order in which you layer them is important with layered materials, and also the direction of the slope blend is important. I have not tried this material in UE5 yet but I believe some people have got it successfully working.
@pingu32612 жыл бұрын
God tier indeed.
@bestOskarEverxD Жыл бұрын
He just presses enlarge and suddenly there are MLB_Rock and Sediment, even he has never opened them. How? I don't have acess to those in UE5.2
@RoflRAWR13372 жыл бұрын
Anyone find a solution to having to use custom UVs to pass data through? I am making a 30km x 30km open world and will need more that 16 layers and grass types. Thanks in advance and love these tutorials!
@UndiniTuts2 жыл бұрын
You can abuse any channel you want, so you can use clearcoat, subsurface,opacity, opacicty mask, emissive and all those others. Just the ones I've listed will give you another dozen or so slots. Just be sure to reset them all to 0 right before the final material attributes setting. yes this is of course very silly, and unreal should support adding as many pins as you want to pass through without having to do this ugly hack :) But it works! Don't think of the pins as anything other than plumbing routes , it's only what gets sent to the final material attributes that matters.
@radbug2 жыл бұрын
there is a processing hurdle when you do many many layers in one blend. ideally you are meant to create separate MATERIALS for each biome. but that means creating addition Materials on top of that that each have half of the textures so that you can blend two biomes together.
@sunwolz2 жыл бұрын
Thanks!!!
@I_Realism_2 жыл бұрын
Ia this related to gis and remote sensing
@Madlion2 жыл бұрын
Ive been experimenting with this technique and found that it is not very well suited firstly because the blending always creates a "fringe" of the base layer, then like others have mentioned this is very performance heavy.
@UndiniTuts2 жыл бұрын
There was a discussion regarding perf with one other experienced UE artist (Chosker) below and they agreed that in fact performance was no different to the traditional way of doing things without layers and they were mistaken to claim otherwise. Additionally, the blending works just the same as without layers, so any fringing you are seeing is not due to the technique itself, but your application of it. Therefore your experiments cannot have been very thorough, and your comment is quite misleading yet stated as fact, it would be far better to pose your concerns as questions so that you could overcome whatever obstacles that you are facing and avoid adding misinformation to the discussion.
@Madlion2 жыл бұрын
@@UndiniTuts Hi Thanks for your reply, what I mean is the "background layer" issue, in your video you made a None layer for background which may work well in your case because your terrain painting masks are procedurally generated. But when I do manual painting, there is always a darker fringe/edge around painted layers before it transition to layers below. I think this could be because the painting masks are not 100% tight somehow and causes this issue. Either way this is a very nice technique which I simultaneously came up with but could not figure out the edge fringing issue due to background layer so I searched around to find possible solutions. After testing further I found that using the traditional approach for landscape material is easier than this new approach, much more flexible blending and manipulations
@joeyparenti78152 жыл бұрын
I dont see my M_Landscape node do I need to make that node how do I get to it?
@UndiniTuts2 жыл бұрын
You need to change your material to "use material attributes" and that should do the trick, if I understood your issue.
@Chosker2 жыл бұрын
Hi, just a quick remark [edit] you are indeed correct, it works as expected [original statement] This setup does not discard unused layers (because all MLs are processed) so your performance is determined by the total amount of layers instead of the amount of layers painted per component (like Unreal does normally). Check your shader complexity view and compare it against a regular landscape material with varying amounts of painted layers per component. So while this solution is very convenient you'd need some more things in place to be scalable and usable in production!
@UndiniTuts2 жыл бұрын
Hi Chosker, usually you would be correct, however, in this case, layers are discarded because the sampling still takes place in the master material, and are then piped through to the layer blend assets , as shown in the tutorial. This is easily verifiable if you follow the tutorial when you switch on shader complexity, you can see that different components have different complexity. Your misunderstanding stems from the Unreal documentation page regarding Layered materials, which does state that you pay the cost of each layer. This is usually true, however I have addressed this in my solution - it costs no more than a regular landscape.
@Chosker2 жыл бұрын
@@UndiniTuts The landscape layers are sampled in the master material, but the material layers are not. Normally blending A and B with zero weight will still result in processing both A and B completely and then just output A, unless the compiler optimizes it out with constant folding (which is possible as the passed layer weight is a constant zero) I actually came up with this same method some months ago (didn't know this video existed!) and I did see same shader complexity on differently painted components. But I probably did something different so I'll try redoing it from scratch using your method :) btw you can pass more layers through unused materialattributes, you're not limited to CustomUVs :)
@UndiniTuts2 жыл бұрын
@@Chosker It took months of exploration to arrive at the setup I've got here. I must have tried it a half a dozen different times before stumbling on a setup that worked 😅 Yes, It's very useful, I feel like Epic should just allow users to add arbitrary slots with custom names, would be awesome. You can do very cool things with landscape grass using this setup too, and have their weights passed through uvs or other attributes, which makes the UI much more intuitive and iteration much easier. I describe this in a later video.
@Chosker2 жыл бұрын
@@UndiniTuts hey I just gave it another try with your setup and you're indeed correct. the entire unused MLs are probably subject to constant folding because the shader complexity view does show less complexity with less painted layers per component. I probably did something wrong before, even if the entire method was coincidentally the same. all good! It's a shame that there's no proper support for this with a more straightforward workflow, but even this exotic setup is an improvement over hand-making all nodes and requiring unique names for every param :) Even just adding the LandscapeLayerSample inside the MLB would be an improvement, but in c++ the node that samples the weightmap texture does not try to sample inside layers. btw your setup uses CustomUV1-6 so you're limited to 14 layers. you can actually use CustomUV0, you just have to clear it out before the final material otuput (make material attributes, pass everything except the CustomUVs). that leaves you with 16 layers limit. of course like I said you can use other unused outputs (i.e. Tangent, Refraction, etc) which could leave you with around 30 layers. or less, if you pass grass data per-layer. good but probably not enough for a multi-biome terrain I believe I'll have a working version with an even more exotic setup that allows unlimited layers (limit is painted layers per component, 16 if only using CustomUV0-7 which is more than enough) but requires a special c++ node. but still researching it
@CupMcCakers2 жыл бұрын
@@Chosker I'd love to hear more about the setup you might end up using. I was recently made aware that using native weightmaps is problematic for giant terrains, and that It can be better to paint a single ID map instead and then sample a texture atlas. (thanks deathrey). I got the sampling working, but painting the IDmap is something else, as ideally it would be paintable in editor. I've started looking at editor modes and passing slate inputs to editor widgets. Does this sound familiar by any chance? ^^
@holton12042 жыл бұрын
Hey man, super nice and indepth tutorials, do u have any idea how to merge some of the tifs from the websites, im trying to cover a specific spot in high fidelity but the scans only come in small bites of 800x600 so i need to merge a decent amount of them, cant seem to fint a way to get it done in houdini, + if their height and width are different they tend to course issues as well :/
@UndiniTuts2 жыл бұрын
Hi Peter, sorry for the delay in responding! Did you manage to solve this?
@holton12042 жыл бұрын
@@UndiniTuts kind of, made a merging in Houdini, and had to eyeball a bunch but that was kind of a daunting task, so i kinda scrapped it. But if u have suggestion that be nice 🙂 I'm currently just following along with a more similar landscape, so i don't get too stuck tho. Rly nice course.
@UndiniTuts2 жыл бұрын
@@holton1204 Thanks! Sounds daunting indeed, if all the pieces are like jigsaw pieces that fit together, you could assign each piece an index and then create a node-graph that snaps them all into place. If they do not fit together and have overlap regions, it's more daunting challenge for sure!
@holton12042 жыл бұрын
@@UndiniTuts they overlap and in the beginning they all seemed to have uniform overlapping but then i got to the second row, and the overlapping was varied, so having to eyeball it was kinda when i scrapped it.
@peter4862 жыл бұрын
is this done differently in UE 5?
@UndiniTuts2 жыл бұрын
Barely :)
@plasid22 жыл бұрын
Can you upload this material somewere?
@UndiniTuts2 жыл бұрын
I'll consider your request.
@StrichcodeDE Жыл бұрын
Funktioniert nicht in der UE5 :(
@bhampton19692 жыл бұрын
I have say this is an awesome tutorial series. I do have a question about "best practices ". I have watched and created several landscapes trying to find a process to get great results. I have noticed that many tutorials do not use "splatmaps" . Am I correct? Everything seems to be done procedurally. I like the use of splatmaps. Your opion on this please.
@UndiniTuts2 жыл бұрын
Good question, sorry for the late response. Marketplace auto-materials are a good entry point. As are basic auto-material tutorials. The truth is every game has extremely specific requirements regarding landscapes. The approach I show here is the kind that would be suitable for a Battlefield Style map where the focus is on high-quality and artistic control but doesn't require a huge amount of variation. Other approaches would be needed for giant open worlds like Read Dead where the number of layers needed quickly balloons beyond what unreals native landscape material systems can support. But that get's more complex still.
@coffeediction2 жыл бұрын
Arent you annoyed by the constant windows loading cursor? Its a bad sign too if it persist for so long....
@Atl3m Жыл бұрын
am i just stupid or it this missing important stuff, aka layer masks .
@UndiniTuts Жыл бұрын
You aren't stupid, but this is part of a series. Check out parts 1-3 first :)
@Atl3m Жыл бұрын
@@UndiniTuts any chance you can do a tuthorial not using that type of hight map blending . just the normal masking ?
@ibrahimakca8628 Жыл бұрын
please share this material here
@dmax0575 Жыл бұрын
Good tutorial but the pace is too fast to follow without constantly stopping and replaying.
@DKJens442 жыл бұрын
Tell me, are you still okay with your windows? They make your head spin.
@UndiniTuts2 жыл бұрын
Hey could you clarify what you mean?
@0805slawek2 жыл бұрын
It woud be great if made also tutorial about good looking and performance grass foliage, becouse I give up xD How its possible RDR2 have very far density grass and looking great I have 90fps but when I try make grass in UE4 I have low density and 40fps no matter what type method I use, many geometry, only planes and opacity etc, I spend month figure aout and I fail xD
@UndiniTuts2 жыл бұрын
Stay tuned 🙂
@MrPangahas2 жыл бұрын
LODS and culling perhaps?
@UndiniTuts2 жыл бұрын
@@MrPangahas that helps
@hardway777 Жыл бұрын
It may seem to you that you are watching a video at x2 speed, but this is not so. And get away from the computer people suffering from epilepsy.