Landscape Material Blending With Runtime Virtual Textures - Building Worlds In Unreal - Episode 23

Поділитися
Вставка
  • Опубліковано 28 лис 2024

КОМЕНТАРІ •

  • @Madlion
    @Madlion 2 роки тому

    This technique skyrockets my shader complexity

  • @danielgraham4616
    @danielgraham4616 3 роки тому +4

    Thanks for this, very useful. Minor critique (well not so minor for me as I didn't understand :) ) when going through the nodes, I sometimes end up being not sure why I've added half of them. For example, @12:25 multiplying and multiplying again and the subtracting values, I literally had no idea why that was being done. Whilst I have the end result, I like to be able to apply knowledge in other use cases. I know some videos may take a decade if you were to explain every action, but in certain cases I think it could be super useful, as you can't always know the skill level of the viewer. Thanks!

    • @BenCloward
      @BenCloward  3 роки тому +1

      This is really good feedback, Daniel and I appreciate you sharing it with me. I don't always explain everything in as much detail as I should - mainly in the interest of keeping the video shorter. I try to do better at that.

  • @DebbieSmith_Kam
    @DebbieSmith_Kam 2 роки тому +2

    Excellent video - stumbled across your series via a random search yesterday and your material is exceptionally good. Thanks!

  • @lianghanli835
    @lianghanli835 3 роки тому +4

    Hello, Ben. You could use the node called "RuntimeVituralTextureSampleParameter" to expose RVT as a parameter then change it within your material instance.

    • @BenCloward
      @BenCloward  3 роки тому

      This sounds like it could be useful, but I don't understand. What are you suggesting I use it for?

    • @momomadi2
      @momomadi2 3 роки тому +1

      @@BenCloward there is literally a node on the material editor called RuntimeVituralTextureSampleParameter - witch is rvt but parameter and u can change it on instances

    • @0xSirius
      @0xSirius 3 роки тому

      @@BenCloward I think they refer to the problem you mention in 21:15

    • @BenCloward
      @BenCloward  3 роки тому +2

      @@momomadi2 Oh - this is a solution for the problem of needing to change which RVT is used depending on which map you place the asset in. Got it. Thank you, I'll give that a try!

    • @PeterLeban
      @PeterLeban 3 роки тому +2

      You can also sample the same RVT in different levels and it worked just fine in my case.

  • @WszelkieBro
    @WszelkieBro 2 роки тому +2

    Dear Ben that is a way to do camera blend testures with RVT :D Take View Properity node in virtual Texture Output Level mode and create power parametr with base2 nad exp of properity from view properity. Then multiply by 1000 and add start offset parametr then devide falof paramet saturate and voilà! :D you can use runtime texture replace node with old cameta depth fade to switch the modes. Greetings!

    • @BenCloward
      @BenCloward  2 роки тому

      Oh wow, this is super valuable. Thank you so much for sharing! I'm going to have to try this out!

    • @HaloDude557
      @HaloDude557 2 роки тому

      Can you post a screenshot of an example or forward me to a tutorial please? Thanks!

  • @alexandraminues
    @alexandraminues 3 роки тому +1

    This is brillant! Thank you for the amazing explanation

  • @mc.kenzey4936
    @mc.kenzey4936 3 роки тому +1

    Exactly what IAM currently looking for. Thanks again!

  • @andyjgough
    @andyjgough 3 роки тому +4

    Thanks for this tutorial and all the others. They have helped me immensely. I look forward to a solution to the problem of texture tiling on the landscape when using rvt if there is one.

    • @aukehuys2297
      @aukehuys2297 3 роки тому +1

      @Ben Cloward
      Yep, same here. You mentioned you would share a fix for this is on a later episode and since then I waited for it. Sadly this series is over now and I would really like to know your solution. Maybe any hint so I could figure it out on my side? Would be really appreciated :)
      Beside that, thanks for your awesome videos!

    • @hammertl2673
      @hammertl2673 3 роки тому

      @@aukehuys2297 use View Property as VIrtual Texture Output Level, it will output the miplevel that RVT currently used, and you can use this value to lerp the near and far tilling.

  • @JohnDowson100
    @JohnDowson100 3 роки тому +1

    Amazing lesson @Ben Cloward. Thanks for sharing!
    I was wondering.. what so you think of the texture-bombing node as an alternative strategy to the camera distance texture scaling which is breaking the RVT workflow?

  • @syedhs
    @syedhs 3 роки тому

    Very cool technique. But the previous was on how VT saves FPS.. but now the material seems more complicated - how much FPS drop? Or rather milliseconds? Probably good for some selected stones.

  • @순두부찌개순한맛
    @순두부찌개순한맛 3 роки тому

    We are now able to make the RVT Sample as a parameter and give change in the MI!

  • @dylantomberlin901
    @dylantomberlin901 3 роки тому

    To use this material in other scenes, can you pass the landscape virtual texture indirectly by having inputs for BaseColor, Specular, Roughness, and Normal? Thanks for another great video!

  • @pubudu781
    @pubudu781 3 роки тому +1

    I found out that using macro variations to break the tiling works really well with this.

    • @unrealdevop
      @unrealdevop 3 роки тому

      I believe that's what OpenLand uses, it looks really great. The only thing I didn't like about OpenLand is that if you get close you'll notice the mountain rock material looks like it's been clawed open and a grass material is left behind in those claw marks....looks pretty ugly up close but I'm sure you could add a falloff to that so that it's not so sharp or use a neutral material that won't stick out against the different types, like a dirt material maybe...I haven't looked at the bp for that too closely so I'm not real sure what the best approach would be.

    • @pubudu781
      @pubudu781 3 роки тому

      @@unrealdevop it's used on many auto mats,not only on open land, you can even use the default gold matireal macros from unreal content for that, works really well, however i won't stick only to macro variations, i would use somehing like texture splating or cellbombing with it. even maybe distace blending, but using distance blend with RVT is bit tricky also it somewhat messes up FPS becaus you can use RVT only in distance, i really hope unreal would come up with a solution for that. or someone find another method to do that.

    • @unrealdevop
      @unrealdevop 3 роки тому +1

      @@pubudu781 Yeah I was just pointing out the example I had seen. I'll having to look into those other methods you mentioned.

    • @FrecklesOpenMic
      @FrecklesOpenMic 3 роки тому

      @@pubudu781 why not rvt only close to the camera?

  • @jabirvp9813
    @jabirvp9813 3 роки тому +1

    Thank you so much!! Can you explain again RVT blending using new megascans materials pls..

    • @mrtobycook
      @mrtobycook 3 роки тому

      Yes it’s a problem as this video of Ben’s features an old Quixel material. :-( If it helps, the solution is to actually make your own variation of the MF_MapAdjustmenrs material function, then you basically do exactly what Ben does in his tutorial, sort of. :-) hopefully Ben will break protocol at some point and do an “out of sequence” video that is purely an update to getting rvt working again with quixel assets :-)

  • @andreyegorov4496
    @andreyegorov4496 3 роки тому +1

    Ben, thank you for tutorials. It's very helpful. Do you plan to do lighting tutorials?:)

    • @BenCloward
      @BenCloward  3 роки тому

      Here's a tutorial on lighting: ua-cam.com/video/rwonncJcqKs/v-deo.html I haven't applied these things to this new scene yet though. The lighting here still looks pretty plain.

  • @qwetry-j2u
    @qwetry-j2u 3 роки тому

    Hi Ben,
    I have a question for you. It's not exactly about landscape blending, but related to material blending in general (based on vertex paint). Actually I asked it yesterday here in the comments, but for some reason UA-cam has deleted my message. I'm going to ask my question again if you don't mind.
    What I want to make is a blend material representing an old brick wall covered with plaster, but the plaster fell off in some places showing the brick underneath. This effect can be easily done in Substance Painter or Designer. I also can make a basic blend in UE4 using a HightLerp node with addition of some noise to the mask, but there's one thing I have no idea how to achieve. How can I get a height difference effect on the edge between the two materials so that the brick layer looks under the plaster? Sorry for a vague eplanation, but I hope you can imagine what I'm talking about. It seems like I need to generate a normal map effect inside my shader, but how is it done in UE4? Could you please make a tutorial on that? I'm sure it will be interesting not only for me, but for others as well.
    Thanks in advance!

  • @benmiles7945
    @benmiles7945 3 роки тому +2

    Since this is a top down projection, where the rock has almost vertical edges, it stretches the landscape material and looks strange. How would you correct that?

    • @BenCloward
      @BenCloward  3 роки тому +2

      I would create a mask in the material based on slope angle and use it to not show the landscape material at those angles. I considered showing that in this video, but the issue wasn’t very bad so I just decided it wasn’t worth it.

  • @lukecagevans8596
    @lukecagevans8596 3 роки тому +1

    Suggestion: I think you should make some breakdowns of Paragon's effects materials. Triple A materials made by epic games and released for free. I am asking this because recently i saw a dude making the breakdown of aurora's Ice shader (a Very cool shader that grows with time, like materialize effect).

  • @manollobango
    @manollobango 2 роки тому

    Thanks for the helpful information!
    I only know this and the previous video from your tutorial, but I couldn't find out which version of the Unreal Engine you're using. Is this UE4 or already UE5?

    • @BenCloward
      @BenCloward  2 роки тому +1

      This series was in UE4.

    • @manollobango
      @manollobango 2 роки тому

      @@BenCloward
      Okay, thanks for the info!

  • @ripunjoyk3617
    @ripunjoyk3617 3 роки тому

    Sir, my height texture is just showing two colours, white on the left and black on the right half. The previous texture for landscape is working well. Only this heigh t texture is causing this problem.

  • @makeunrealthings
    @makeunrealthings Рік тому

    HI Ben, can you help me for this RVT feature? So what if I have dynamic puddles or snow deformation in my material so how RVT will work in this situation? Anyway thanks for gold tutorials.

    • @BenCloward
      @BenCloward  Рік тому

      RVT works best for static materials. The dynamic parts can be added in the section of the shader that comes after sampling from the RVT.

  • @medmel2160
    @medmel2160 3 роки тому

    Hello there, what a luck to get these learning materials from someone as experienced as you. It's highly appreciated.
    Question:
    how could I tackle terrain blending with stylized graphics not using texture? My terrain has a texture but my rocks are using a basic albedo with some noise.
    Have a good day sir

    • @BenCloward
      @BenCloward  3 роки тому +1

      Sounds like you need to blend between the basic albedo color of the rock to the color of the landscape. If your rocks use normal maps, you could also fade between the rock normal and the landscape normal.

    • @medmel2160
      @medmel2160 3 роки тому

      @@BenCloward thanks you!

  • @antoineflynn
    @antoineflynn 3 роки тому +2

    Amazing content! You're PC seems to struggle in the viewport though :P Thank you!

    • @BenCloward
      @BenCloward  3 роки тому +6

      It was the capture process that wasn't working right. I mistakenly had it set to only capture frames when the mouse moved. My bad. Hope everything is still clear enough.

  • @theobai8986
    @theobai8986 3 роки тому +1

    Transfer to local space to fix that hard edge of normal and blending would be more natural.

    • @theobai8986
      @theobai8986 3 роки тому

      sorry, *world space to tangent space

    • @BenCloward
      @BenCloward  3 роки тому

      Does the RVT store normal in world space?

    • @theobai8986
      @theobai8986 3 роки тому

      @@BenCloward After I check the normal buffer, it helps to hide the seam. So I think it stroes normal in world space.

  • @michaelblackmer8183
    @michaelblackmer8183 3 роки тому

    Might not be possible, but could you configure the landscape to blend between a runtime virtual texture (using only the far away texture sample) and the near texture based on the camera settings? So theoretically your only "Real-time" calculations would be the auto-material nearby, and then far away textures would sample the runtime virtual texture?

    • @Ki7suneGF
      @Ki7suneGF Рік тому

      Perhaps with a fresnel node

  • @tranceemerson8325
    @tranceemerson8325 3 роки тому +1

    what I think would be better is having another texture that is intermediate between the rocks and terrain that fills in the gap.

    • @BenCloward
      @BenCloward  3 роки тому

      The nice thing about this solution is that it happens automatically - so I don't have to make anything additional. It would be a LOT of work if I had to make a custom blend texture for every rock I placed.

  • @AvB.83
    @AvB.83 Рік тому

    Sounds cool, looks cool, but RVTs reliably are killing my project 😢 Tried to use it for the landscape using the previous tutorial (in UE 5.2) and it just freezes 3/4 times I start the editor. If it doesn't freeze at start, it will a few minutes later, but definitely if I try to do anything about the RVTs...

    • @BenCloward
      @BenCloward  Рік тому

      A couple of other people have mentioned that as well. I guess there are some bugs with RVTs in Unreal 5 that they need to work out.

  • @alienrenders
    @alienrenders 7 місяців тому

    My landscape height in the virtual texture is completely flat. Any ideas why this would be happening?

    • @alienrenders
      @alienrenders 7 місяців тому

      Found it. The Landscape material has to render out to the Runtime Virtual Texture Output node.

    • @alienrenders
      @alienrenders 7 місяців тому

      Except the height map is extremely low resolution.
      edit: Found it. Increase Virtual Texture Num LODs to 5 or something like that.

  • @turalmemmedov3648
    @turalmemmedov3648 3 роки тому

    Thank you, very much as always )) Is it possible to mask landscape part where specific meshes placed, to rise the part of that area of landscape with this technique? I mean, not only the material information blend to that mesh but actually deform that part of landscape and rise it with some noise texture to break straight line on the edge of for example house wall? To do it by hand is soo painfull.

    • @BenCloward
      @BenCloward  3 роки тому +1

      That's a super cool idea, Tural. I haven't tried it myself, but I imagine you could write into an RVT with you object and then read from that RVT in the landscape to displace it. I can't tell you how to do it since I haven't tried, but maybe there's another tutorial video that could . . .

    • @turalmemmedov3648
      @turalmemmedov3648 3 роки тому +1

      @@BenCloward Ohhh, actually yess, as you said, why I didnt think about it. We can right information to RVT. I will try it when I be free. Actually I saw something like this, who made it in UE as Star Wars battlefront did but I cant find it. Anyway, again Thank you very much again ))

  • @marcinesa1336
    @marcinesa1336 3 роки тому

    hello what do you recommend instead of virtual textures so that in the landscape and the object they were not visible this linking line ?? ?? I use dither but I'm not happy with it

    • @BenCloward
      @BenCloward  3 роки тому

      Sorry, I don't understand the question very well. You're looking for a different way to do this that doesn't require virtual textures?

    • @marcinesa1336
      @marcinesa1336 3 роки тому

      @@BenCloward yes :)

  • @unreal_metronomus678
    @unreal_metronomus678 3 роки тому

    Great Video, thanks. But does this work with tesselation? I haven‘t found any solution to get rvt and tesselation working together.

    • @BenCloward
      @BenCloward  3 роки тому +1

      Yes, if you set your RVT texture to use the format that has a mask, you can plug your heightmap into the mask input socket. Then when you sample the RVT, plug the mask output into the tessellation/displacement function, and connect the outputs of that into the root tessellation and displacement inputs.

    • @mrtobycook
      @mrtobycook 3 роки тому

      @@BenCloward This made my head explode, in a good way lol. :) So displacement CAN work with RVT on landscapes? I’m so confused 😂

  • @hasanjanamat8231
    @hasanjanamat8231 3 роки тому

    how we can fix Runtime Virtual Texturing and Stretching in some vertical side of rock plz let me know if there is way to get ride of this issue thanks

    • @BenCloward
      @BenCloward  3 роки тому +1

      I didn't cover that in my video since my landscape doesn't have any areas that were steep enough for it to be an issue. The RVT is always a top-down projection, so it will always have stretching if the landscape gets too steep. You could fix it by doing front and side projection of a cliff material after sampling the RVT and then creating a mask for the cliff material based on the slope. So the cliff material would be blended in on top of the RVT using that mask.

    • @hasanjanamat8231
      @hasanjanamat8231 3 роки тому

      @@BenCloward thanks a lot it help a lot alway root for u best wishes to u

  • @BruceWayne-bm2dk
    @BruceWayne-bm2dk 3 роки тому

    Please make a video on procedural river system and waterfalls.
    Thankyou

    • @BenCloward
      @BenCloward  3 роки тому

      Rivers coming in the next episode - this Thursday.

    • @BruceWayne-bm2dk
      @BruceWayne-bm2dk 3 роки тому

      @@BenCloward Thakyou sir

  • @superfluousvii9686
    @superfluousvii9686 3 роки тому

    i keep getting D3D compile exception error every time i apply, any help? Im on 4.26

    • @BenCloward
      @BenCloward  3 роки тому

      Can you send me a screen shot of your graph and another shot of the error? ben@bencloward.com

  • @liquaard2824
    @liquaard2824 Рік тому

    is Runtime virtual texture expensive ?

    • @BenCloward
      @BenCloward  Рік тому +1

      It depends. (This is a very common answer to questions about graphics features.) It uses a lot of texture memory - so it's expensive for that. But it bakes parts of your graph into a texture that only gets updated occasionally instead of every frame. So if you have an expensive shader, you can use RVT and the shader will only get run when the RVT is updated instead of always. Best thing to do if you're not sure if you should use it or not is implement it and compare before/after results.

    • @liquaard2824
      @liquaard2824 Рік тому

      @@BenCloward yes will definitly test that with Unreal's new perfomance analysing tools

  • @AndreaFromTokyo
    @AndreaFromTokyo 3 роки тому

    It ended up Not working for me sadly. if i rotate or put the object at a different altitude i would have to change the material instance parameters once again wich means pretty much useless (or one instance per object). I came up with something similar but using distance fields, it kinda works... i just have little control on the distance field itself
    ...but im no expert so i could do only so much

    • @BenCloward
      @BenCloward  3 роки тому

      Hmm, that doesn't sound right. The material is supposed to be set up so that you can place rocks anywhere on the landscape and they will blend correctly. I wonder what went wrong? I can try to help you troubleshoot it if you want.

    • @AndreaFromTokyo
      @AndreaFromTokyo 3 роки тому

      @@BenCloward Thanks for the offer, i wouldn't want to waste your time in such manner so don't worry.
      The funny thing is that my shader graph is basically like yours, the only thing that changes is that i blend with my textures rather than the megascan material's texture inputs.
      I have no clue but oh well.
      Still, i'm loving the series and i'm learning quite a lot from it! Thank you for sharing!

  • @deepakgiri.j1973
    @deepakgiri.j1973 3 роки тому

    How to fix blocky sharp landscape

    • @BenCloward
      @BenCloward  3 роки тому

      I'm sorry, I don't understand the question. Could you be more specific and provide more details?

    • @deepakgiri.j1973
      @deepakgiri.j1973 3 роки тому

      @@BenClowardthank you for reply my landscape looks lowpoly in some area its like blocky low resolution geometry I want it to smooth with out loosing the terrain detail

    • @BenCloward
      @BenCloward  3 роки тому

      @@deepakgiri.j1973 Have you tried adjusting the LOD 0 Screen Size, LOD 0, and Other LODs settings on your Landscape? I have mine set to 0.5, 1.0, and 1.6 - but you could adjust them a little to get better results.

  • @jukai4091
    @jukai4091 3 роки тому

    Ben again, ty for that great tuorial.
    i have some problem with raytracing and procedural-grown-foliage. if the meshes are all placed by procedural then i dont have any shadows from raytracing. if i place them by hand then they have raytraced shadows.
    also i got a problem with swarm agent.
    "[Interface:EndJobSpecification] Error: Das interne Array kann nicht mehr als Int32.MaxValue-Elementen erweitert werden. System.Runtime.Serialization.SerializationException: Das interne Array kann nicht mehr als Int32.MaxValue-Elementen erweitert werden."
    it says "the intern array cant even more than int32. ..." maybe anyone can help? :(
    if someone want ask me for my rig: AMD 5950X, RTX3090, 64GB Ram. so im sure its not my hardware

    • @BenCloward
      @BenCloward  3 роки тому

      I don't know the answer to that unfortunately.

  • @jukai4091
    @jukai4091 3 роки тому +1

    2. :D