Landscape Optimization Using Runtime Virtual Textures - Building Worlds In Unreal - Episode 22

  Рет қаралды 41,943

Ben Cloward

Ben Cloward

Күн бұрын

Пікірлер: 182
@BenCloward
@BenCloward 3 жыл бұрын
I'm excited to hear from each of you - how many GPU milliseconds does this technique save in your scene? Also, since I made this video, I found a technique I can use in my materials that makes the results much sharper and higher-resolution. I'll be sharing that next week.
@MR3DDev
@MR3DDev 3 жыл бұрын
I don't get what "much shader" means. Did you mean much shadier? I don't think you did but it sounds funny.
@BenCloward
@BenCloward 3 жыл бұрын
@@MR3DDev Thanks for pointing out my typo. I meant "sharper." It's fixed now.
@FerlinDev
@FerlinDev 3 жыл бұрын
My landscape went from 70 to 120 FPS Thanks a lot
@FerlinDev
@FerlinDev 3 жыл бұрын
Also, while using that technique. One does not have to multiply specular and AO in a single channel as only Specular is used
@BenCloward
@BenCloward 3 жыл бұрын
That’s so awesome to hear! Thanks for sharing that!
@Gorongirl
@Gorongirl 5 ай бұрын
If you have a black RVT after the setup (noobie me crashing into every problem haha) make sure you press Set Bounds in your Runtime Virtual Texture Volume > Transform from Bounds after selecting your Bounds Align Actor as your landscape, if you are in 5.3. Thanks again Ben!
@andreiblackfish1185
@andreiblackfish1185 9 ай бұрын
Iv seen alot of VRT videos in my days, but this one is by far the clearest.
@skol45
@skol45 Жыл бұрын
Its insane how calm, precise and understandable you describe what you are doing, its really something special that not a lot of Tutors have, looking forward to your channel!
@yahootube90
@yahootube90 3 жыл бұрын
Thanks for making all these shader tuts, Ben. Not many people around to teach these things with such depth and expertise. You should consider making a post over on places like r/gamedev and r/unrealengine etc., now and again to draw more attention to such great tutorials.
@Paul-xu6gt
@Paul-xu6gt 2 жыл бұрын
when i modify the coordinates of one material in its blueprint it modifies the coordinates of every material in my map, for example if i modify the coordinates of the material of my terrain, it also modify the coordinates of the tiles texture on my walls, why is that? ps im new to ue
@laughingjackaso8163
@laughingjackaso8163 Жыл бұрын
only 7 minutes in ... now i finally understand what/why RVT. not actually explained anywhere else i've found.
@cablekingtv6557
@cablekingtv6557 3 жыл бұрын
It’s crazy. For the past couple weeks I’ll explore a technique on my own and then BAM 💥 Ben drops a sick video about it 🤣🤣 Nice!!
@StarCourtesan
@StarCourtesan 8 күн бұрын
Please make more of these for the newer UE world partition HLODs and stuff, you explain things so well
@nk361
@nk361 3 жыл бұрын
Love it! Especially how you went through the detective work to find the problem instead of just giving the problem and solution. Also, I've seen a technique where people use a runtime virtual texture (I think) that has color data in it and then they use that color data to alter the look of all the textures in that area. This technique was used in a game called The Witness really well for colored trees, rocks, and all else. I've always wanted to know how to do it since it can really help get the Quixel megascans assets to blend well together. Thanks again for all you do. :)
@Zeriel00
@Zeriel00 2 жыл бұрын
Yea this, so many teachers just tell you, ok do this and this and that but never tell you why you do it or how you reached that conclusion and it's so hard to follow like a robot without knowing what you're doing.
@Al1987ac
@Al1987ac Жыл бұрын
Thank you very much for such concise tutorial! Once I understood that RVT basically is about baking shaders, it all clicked for me. Unreal docs on the topic were a little bit confusing.
@HOUCEMATE
@HOUCEMATE 2 жыл бұрын
I've been watching a bunch of tutorials on UE4 purely out of interest (haven't even tried it myself) and I gotta say the structure, pacing, and depth of your videos are perfect, well done man
@chlbrn
@chlbrn 3 жыл бұрын
This is great, exterior scene with landscape always takes a lot of time to render each frame, this helps optimizing scenes for a huge amount! Thanks man.
@gabrielepardi5178
@gabrielepardi5178 2 жыл бұрын
Great teachings here . Thank you very much for your time
@artemaung5274
@artemaung5274 3 жыл бұрын
Great tutorial as always! One note for those who want to do this on world composition - sadly it won't work. Runtime virtual textures have a hard limit of 7, but even if you never stream more than 7 tiles at once, as soon as you move beyond first seven tiles your landscape will stop rendering.
@pizzaman11
@pizzaman11 3 жыл бұрын
There are a lot of things that don't work as they're supposed to with RVT. They have the beginning of adaptive virtual textures implemented which allows for much larger higher resolution vt's but unfortunately I haven't got it working.
@wilismatrix9847
@wilismatrix9847 3 жыл бұрын
Thank you for the deep tech explanation. Learned a lot today !!
@ArcaneTurbulence
@ArcaneTurbulence 2 жыл бұрын
your streaming pool is going to take a pretty massive hit if you do this. I went from 1800 to 2350, and I'm trying to stay under 2000 budget. Granted my world is 128 sq Kilometers. For those using large worlds, definitely keep it in mind.
@pizzaman11
@pizzaman11 3 жыл бұрын
One thing to watch out for is the projection of the RVT on slopes. It causes some real bad stretching. Supposedly you can just use RVT for flatter areas and then use traditional methods for cliffs and hills, but I havent tried that yet to see if its performance viable. Also (you might have mentioned in one of your previous videos but just in case) the shader complexity visualization only accounts for the number of instructions for the shader, not the cost of each instruction on your hardware. So things can have low performance but still be labeled as green on the visualization and vice versa, at the end of the day your ms is what matters.
@weirdshit
@weirdshit 3 жыл бұрын
rvt is top down projection. I had performance issues with two landscapes side by side when using rvt in 4.25++. Hopefully performance has changed for the better.
@pizzaman11
@pizzaman11 3 жыл бұрын
@@weirdshit two landscapes in general should give you performance issues.
@weirdshit
@weirdshit 3 жыл бұрын
@@pizzaman11 that is with rvt as compared to normal landscape texturing.
@TorQueMoD
@TorQueMoD Жыл бұрын
You'd imagine you'd be able to set the landscape to Static or Stationary and then the engine would do all of the RVT automatically. It's weird this is something you have to implement manually. Fantastic video though!
@theobai8986
@theobai8986 3 жыл бұрын
Actually, you could use the mip level node of RVT to replace the distance blend, which could fix that blur landscape.
@BenCloward
@BenCloward 3 жыл бұрын
That's a really interesting idea. I'll give it a try. Thank you very much!
@lexmurden5221
@lexmurden5221 2 жыл бұрын
This is very good! It helped me a lot.
@tech-ii5sh
@tech-ii5sh 2 жыл бұрын
This is a great video, and I have one question. Do you have a video on RVT Cache?
@TelesphorosGAMEDEV
@TelesphorosGAMEDEV Жыл бұрын
Amazing tutorial, thanks again
@seansopata5121
@seansopata5121 3 жыл бұрын
After the last video, I have to say ... I'm having more fun than I probably should have using landscape splines to create roads and paths. Just have to modify my material so I can erase grass.
@pixelflow2180
@pixelflow2180 3 жыл бұрын
Nice but the tradeoff is huge, low res, no displacement, no ambient occlusion. Also tried it in world comp and it doesnt work very well.
@TheLordOfWolves
@TheLordOfWolves 3 жыл бұрын
I had so high hopes with RVT but when i saw the resolution on the textures + the lack of AO and Displacement... this is to be used on phones or something as it offers 2010 quality.
@cgkrab
@cgkrab 2 жыл бұрын
Great video! :D Do you happen to know if RVT resolution can be tiled or optimized for very large landscapes somehow? I was watching Epic's deep-dive video on RVT for landscapes and it seems to me that the largest RVT size you can make is too small for large, open-world landscapes...they acknowledged this as a problem in the video and mentioned expanding it in the future, but it seems to be mostly unchanged since then in newer UE versions. I might be misunderstanding the process, though, but it seems like this could kill your landscape texture resolution if your level is too big (and cause some major TD problems). Seems like potentially a big issue for UE5 since I think RVT is REQUIRED for Virtual Heightfield Meshes, which are the only current alternative for landscape displacement since tessellation was removed.
@ahmadnaweedrustami7354
@ahmadnaweedrustami7354 5 ай бұрын
Besides using more ram there is a bigger problem with rvt, that is if you have a fast moving object in your scene if it is interacting with landscape, a car for example. I used a rvt spline tool to create a road for a racing game that I was working on some years ago. When the car moved it left an ugly trail behind it which forced me to abandon rvt altogether.
@shoaibraza6019
@shoaibraza6019 Жыл бұрын
Thanx Sir Helped a lot
@oozly9291
@oozly9291 3 жыл бұрын
Fantastic channel!
@sams_3d_stuff
@sams_3d_stuff 3 жыл бұрын
Thank you sensei!
@well.8395
@well.8395 3 жыл бұрын
Hi Ben, thanks for the video. There’s a problem, I think? After 15:54 to 17:09 you can check the framerste and its still 45-46ish mark and the gpu stat still shows 21ms like before. When you went far back, it will obviously increase the fps as the grass won’t be rendered. Except the number of instruction reductions, there’s absolutely no change in the performance? Any thoughts? Thanks
@BenCloward
@BenCloward 3 жыл бұрын
Yep, you're right. I'll need to investigate this a bit and maybe get more scientific with my measurements. The second time I measured performance, it was from a slightly different camera angle, so that could be throwing things off. The other thing that will make performance worse for the non-RVT material is if I start painting layers. What we're looking at here is a version of the material that's only using the first material layer, but if I were to paint several of the other materials in this area, the complexity and cost for the non-RVT version would go up even more, so the RVT savings would be more obvious. What savings are you seeing when you implement it?
@well.8395
@well.8395 3 жыл бұрын
@@BenCloward Cool, that’s making a lot sense now. Multi layers make the shader complexity of those landscape components go really high. I’ll have to test it for my open world mobile game and let you know if theres some performance improvement. Thank you again, Ben. Keep them coming ❤️
@marekcahyna9342
@marekcahyna9342 Жыл бұрын
Hey Ben, Hope you can answer my idea, Am I able to make blend between two setups for landscape, Im pointing at next video where you had to plug only near/Micro detailed version. So how about to make 2 rvt for Micro and 2nd for Macro detailed and later blend Material attributes via some distance mask and then plug it into main Material output to be rendered? Also I would use use 3rd low res rvt only for BC for my Stylized grass meshes. What do you think about it? I think it could possibly work 😅 BTW great videos, Im fan since 2019! Thanks for them ❤
@BenCloward
@BenCloward Жыл бұрын
Yes, I believe that could work and it's an interesting idea. The one thing I'd be concerned about is the amount of texture memory that it would require as RVTs tend to take up a lot of space. So you may want to try it and check to see how much GPU memory you're using before you start depending on it.
@PijarnJangsawang
@PijarnJangsawang 3 жыл бұрын
amazing
@LordAssassinLych
@LordAssassinLych Жыл бұрын
UE 5.2 doesn't even crash. It just freezes completely when trying to pick that virtual texture.
@wolfwirestudios
@wolfwirestudios Жыл бұрын
Didn't work. I altered the material but when I save to apply it crashes with this "......Assertion failed : .... Failed to acquire space for VT (32 x 32).........". I'm using UE5.0.3
@Hotrood999
@Hotrood999 3 жыл бұрын
Thanks, Ben! You said we trade memory for performance, is it RAM or VRAM? looking forward to the next video
@BenCloward
@BenCloward 3 жыл бұрын
It’s VRAM.
@frycs1255
@frycs1255 17 күн бұрын
it seems impossible just in theory, but is there any way to distance blend between two virtual textures?
@ediksidorov5037
@ediksidorov5037 2 ай бұрын
Hey Ben, it’s amazing you helped me a lot with optimizing the landscape, but the objects that has rvt samplers in my scene red how can I make them green? I have tried the same method with rvt sampler but it’s not working maybe I’m doing something wrong? What is the right setup for meshes that have rvt in it?
@tr1tu
@tr1tu 3 жыл бұрын
Thanks for these great tutorials, Ben! How is the transition between near and far textures working when you enable RVT? Given that the textures are rendered only once, is it possible to use this transition? Or are we always using the far textures? Thank you in advance!
@BenCloward
@BenCloward 3 жыл бұрын
I'll be talking about this in next week's video.
@tr1tu
@tr1tu 3 жыл бұрын
@@BenCloward Ok! Thank you again :)
@Paul-xu6gt
@Paul-xu6gt 2 жыл бұрын
when i modify the coordinates of one material in its blueprint it modifies the coordinates of every material in my map, for example if i modify the coordinates of the material of my terrain, it also modify the coordinates of the tiles texture on my walls, why is that? ps im new to ue
@kinggore5229
@kinggore5229 3 жыл бұрын
Wait...I think there's a bake material button that could save our ass. :D
@mindped
@mindped 6 ай бұрын
curious... in previous videos you set up materials to have a far version of textures and a near version... do RVTs utilize that? Because it seems like ud need multiple RVTs for that.
@BenCloward
@BenCloward 5 ай бұрын
No they don't. When rendering to an RVT, there's no camera, so it's not possible to know how far from the camera you are.
@letsplaysomthing3799
@letsplaysomthing3799 Жыл бұрын
its realy good video thank you and i got so problems my landscape is much bigger and when i put max VT textures anyway blur how i can fix it?
@unrealdevop
@unrealdevop 3 жыл бұрын
Great Video this was super helpful. I have a strange bug though that's being caused by this technique. When launched in 'Standalone Game' mode, I get flickering at the tops of my mountains where the snow is. I didn't notice it until I did this so I tested it and I can confirm it stopped when I switched back to the old method. It seems to be going from solid snow to a combo of snow and stone. Update: So it has something to do with the size of my terrain vs the RVT resolution settings. Setting the Border Padding to 0 creates a white border at each tile but completely eliminates this effect I'm seeing
@unrealdevop
@unrealdevop 3 жыл бұрын
I figured it out....I turned down ''Size of each VT tile'' to see if it would fix it and it made it worse, so I turned it all the way up but then I was getting untiled tiles showing up randomly....Finally as a last resort I thought...let me try setting it to 0...and it fixed it. I ended up setting it to 1 and it still worked...So yeah I guess it just depends on the size of your terrain....
@tgykurtulus
@tgykurtulus Жыл бұрын
hello,great idea ana tutorial! In my case the fog partickle uses alot of source. Do you think virtual texture work with that? or what i can do for optimisation of such these partickles
@xnicktendox7501
@xnicktendox7501 11 ай бұрын
I just followed this tutorial up to the 12:40 mark and once I saved the material my entire project crashed. Now I can't open my project without it immediately crashing. Do you have any idea why or what I can do to fix it?
@Atl3m
@Atl3m 2 жыл бұрын
Can you make a video on dynamic landscape material and how to turn it on and off at run time. . aka turn on when snow and rain and turn off when sunny day
@HaloDude557
@HaloDude557 2 жыл бұрын
How could you make this work with a distance blend? The RVT is essentially caching my landscape's far distance UV scaling so it doesn't shrink and become more detailed as you move closer, making it look terrible.
@BenCloward
@BenCloward 2 жыл бұрын
In the next episode - #23, WszelkieBro posted a comment explaining how this can be done. I haven't tried it yet myself, but give it a shot and let me know how it goes.
@IRONFRIDGE
@IRONFRIDGE 2 жыл бұрын
Hi i use World Composition. Ue4 says its not supported for this kind of Maps?
@senopatict
@senopatict Жыл бұрын
I try thats and got better green optimazion but not foun texture or I see grey color, dont know whats wrong?
@ElShotte
@ElShotte 3 жыл бұрын
Hey Ben, quick question - do you know if RVT's work with level streaming?
@Paul-xu6gt
@Paul-xu6gt 2 жыл бұрын
when i modify the coordinates of one material in its blueprint it modifies the coordinates of every material in my map, for example if i modify the coordinates of the material of my terrain, it also modify the coordinates of the tiles texture on my walls, why is that? ps im new to ue
@greatsol2444
@greatsol2444 Жыл бұрын
If you lose some resolution using this method, can’t you just increase the resolution of the original texture to offset that? Also could you use runtime virtual textures for other things like buildings, or other static objects? Or non-static objects/vehicles?
@BenCloward
@BenCloward Жыл бұрын
Once the original textures are rendered to the virtual texture, it's the resolution of the virtual texture that matters, not the resolution of the original. Making the original a lot higher resolution than the virtual texture won't improve the result.
@Restart-Gaming
@Restart-Gaming 3 жыл бұрын
hey great but my landscape did not change its now just a big blur and its a bright red trees are green
@Ugly_Baby_Gaming
@Ugly_Baby_Gaming 3 жыл бұрын
what do I do about multiple landscapes using the same material? i.e world composition
@mic007129
@mic007129 3 жыл бұрын
I am wondering the same thing.
@Ugly_Baby_Gaming
@Ugly_Baby_Gaming 3 жыл бұрын
@@mic007129 i did get it to work by going to each level giving each a RVT but had stretching of textures worked it out and created an instance material for each level now it works not exactly ideal though but if you just use world composition to set up and build the levels then seperate them after it doesn't seem to get the stretching as its not getting confused to who the texture belongs to... will it work if loading more than one level using one RVT not tried it yet ???
@mic007129
@mic007129 3 жыл бұрын
@@Ugly_Baby_Gaming Thanks that is good to know, I need to learn a bit more about this but I will do some tests soon.
@TheJackalxy
@TheJackalxy 3 жыл бұрын
I don't know if it's correct but it hink the biggest problem trying to optimize this landscape is that it is HUUUUGE. I tried walking with the default third person mannequin from side to side and it took me 22 mins and 35 seconds. As reference, walking as much in skyrim (tried without sprinting, so with more or less the same speed) was enough to make the long side almost TWICE. I'm not sure if it is a correct way of mesuring, but if it is I think maybe there is a way for optimizing using more smaller landscape, culling the one out of sight?
@BenCloward
@BenCloward 3 жыл бұрын
Yes, making the landscape smaller will always make it go faster. But the real challenge is - how can you make a big landscape run fast? So if you don't need a big landscape, by all means, make a small one, and then you won't have to worry as much about making it fast. But if you need to create a big map for your project, you're going to need to find some other way of optimizing it, and RVT is one such solution. (I'm pretty impressed with your method for measuring size with walking speed, btw. That's cool!)
@TheJackalxy
@TheJackalxy 3 жыл бұрын
@@BenCloward Thank you very much for your answer :D I always appreciate your dedication to optimization, your video lessons are a treasure! I'll definitely try RVT, I think there is an enormous potential in those
@stephenmaloney424
@stephenmaloney424 3 жыл бұрын
Hi Ben! Quick suggestion for a future video - UE4 supports HLSL code in the custom node; is there any chance you could explain how that works a bit in a video? It seems to me like you might be the perfect person to explain/understand it. I've been able to do some very basic stuff with it, but I want to be able to make my own wireframe material (in order to make the wireframe thicker) and I can't figure out really where to start, because the custom node doesn't have much (any) documentation and it doesn't seem like you can just type any HLSL in there and it work. Thanks!
@BenCloward
@BenCloward 3 жыл бұрын
Thanks for the suggestion, Stephen. Are there some specific things you'd like to do with HLSL that you can't do with the regular node graph? The HLSL node is there for when you want to do something in the material that isn't possible to do with the available set of nodes. It would be easier for me to do a tutorial on HLSL if I had a specific thing I was trying to do with it.
@stephenmaloney424
@stephenmaloney424 3 жыл бұрын
@@BenCloward Thanks for the response Ben! The specific thing I was trying to do was to make my own wireframe material, so that I could control it's wire width. This way when I deploy the game to Quest, the wireframe hopefully would look less aliased. Currently in UE4 the only way to make a wireframe material I'm aware of is to use the wireframe check box, and it has no settings. So I searched for tutorials on how to make my own wireframe, and found a few small examples that I couldn't figure out how to translate into something I could use in UE4. For example: codea.io/talk/discussion/3170/render-a-mesh-as-wireframe
@BenCloward
@BenCloward 3 жыл бұрын
@@stephenmaloney424 Ok, I’ll see if I can find some time to play with this. It’s fairly off-topic for what my videos are focused on right now, it’s also interesting. I’ll see what I can do.
@allashama
@allashama Жыл бұрын
its working but gained no performance at all, dont know why.. before and after, my GPU still remains at 16ms. but the Shader complexity now show the landscape green everywhere, instead of multiple green tones as before.
@BenCloward
@BenCloward Жыл бұрын
You may need to build and run the project outside of the editor to see a difference. Did you try that?
@allashama
@allashama Жыл бұрын
@@BenCloward no i didnt try it, i'll try it thanks :P
@BenCloward
@BenCloward Жыл бұрын
@@allashama Very frequently, the performance characteristics of running the built version of the game are VERY different from what the editor is showing you, so when judging performance, it's always best to look at it outside of the editor.
@Atl3m
@Atl3m 2 жыл бұрын
@hammertl2673
@hammertl2673 3 жыл бұрын
Hi Ben, have no idea what is wrong with my material. When I am using runtime virtualtexture sample instead, the base pass shader increase from 115 to 234? It is really weird. (I am using 4.26)
@RiverFox_YT
@RiverFox_YT Жыл бұрын
when i do this, it makes no difference to the landscape whatsoever
@vegitoblue2187
@vegitoblue2187 3 жыл бұрын
so is this exclusive to terrain or it can be used on static meshes as well?
@semirukiya5308
@semirukiya5308 Жыл бұрын
This is really great, but do You have any idea why the landscape textures are all blurred and it takes them a while to sharpen out? The same goes for Virtual Texturing for normal meshes... And my PC is an actual monster, so it cannot be the case. Cheers!
@adriamedina2893
@adriamedina2893 Жыл бұрын
Did you manage to solve this issue? I'm having the same problem and can't seem to find a solution
@semirukiya5308
@semirukiya5308 Жыл бұрын
@@adriamedina2893 hi, unfortunately not. I had to give up RVT for good as no matter what I tried to use, I still had some blurriness from time to time which in my case is not acceptable :/ Even changing configs didn't help.
@adriamedina2893
@adriamedina2893 Жыл бұрын
@@semirukiya5308 If you still want to use it, I opted for using the Brushify free landscape material with the textures I was using for my project in custom layers and seems to be working well
@Restart-Gaming
@Restart-Gaming 3 жыл бұрын
hey just retried this and mine is still very very red I think this only work on your landscape material not any from the asset store if you have a discord could sent you a photo of my material and let me know where I went wrong?
@Restart-Gaming
@Restart-Gaming 3 жыл бұрын
Hope to hear from you soon should this be done after every thing is down like grass trees rocks etc
@BenCloward
@BenCloward 3 жыл бұрын
If you know of a way to make things render faster - I say go ahead and do it. There are a lot of people who say you should save the optimization until the end, but personally, I like to do it all along the way. If you have all of your grass, rocks, and trees placed when you apply the optimization, you'll get the most accurate measurement of how much of a difference the change makes - but if it's something you're going to do anyway, you might as well go ahead.
@fran.fernandez
@fran.fernandez 2 жыл бұрын
did this setup change in 4.26 ? all i get is black color but the texture is ok (content browser)
@fran.fernandez
@fran.fernandez 2 жыл бұрын
my fault, it wont work with tesellation
@oswinlost8786
@oswinlost8786 3 жыл бұрын
Hi Ben, Thanks again for the new video. I don't remember if you stated your system specs in other videos. I sent you an email with pictures of my material shader but cleaned up a lot in that shader I have way fewer base pass shader instructions and using only 1 texture sample the only thing I have done differently than you made functions for everything and place them into the master material my texture ps lookups are at 24 I am running a 1060 and getting around 100 fps without RTV Textures. If you could please check your email and look at those pictures maybe you can find something I did that made the master material lighter than yours (Functions is what I am thinking here) thanks again
@ShortBusTrip
@ShortBusTrip 2 жыл бұрын
Curious if you have solved the issue with the RVT not being compatible with the camera node? I went through the rest of the playlist and don't see a fix for this
@BenCloward
@BenCloward 2 жыл бұрын
It's not solvable. There is no camera when the RVT is rendered - so if you use RVT, you have to create a shader that doesn't depend on a changing camera location. Mine does unfortunately, so we'll need to re-think the method we use for breaking the tiling.
@primm4991
@primm4991 3 жыл бұрын
I was thinking that if it is rendered only once, it means that I can use all those expensive nodes like noise, texture boming etc. Well... Not exactly. I noticed that I get huge performance issues related to VT when I was moving my camera. I think that the whole terrain is not rendered once, but rather the "chunks" of RVT are generated when they are needed. Am I correct?
@BenCloward
@BenCloward 3 жыл бұрын
Yes, that's correct. RVT updates tiles based on what's visible in view. So if your landscape materials is super duper expensive, you'll get hitching as you move around and tiles are updated. It is true that you can make your landscape material a bit more expensive with RVT, but that doesn't mean you can make it ridiculously more expensive.
@vegitoblue2187
@vegitoblue2187 3 жыл бұрын
this virtual texuring sounds a lot like the megatexture tech John Carmak made for idtech 5 and 6. How would this be different considering they ditched it for texture streaming in idtech 7.
@BenCloward
@BenCloward 3 жыл бұрын
It's very much like megatexture - yes. It's ideally suited for terrain/landscapes. idtech attempted to use it for everything - which was a challenge, especially considering the disk speeds at the time.
@vegitoblue2187
@vegitoblue2187 3 жыл бұрын
@@BenCloward interesting. So I could use it for skeletal meshes too in theory? And what about static meshes in the environment?
@ethanwasme4307
@ethanwasme4307 3 жыл бұрын
Hey ben, what does it mean to move code to the vertex shader? I am aware of custom UVs, but they only save me an instruction or two per unique UV also when people say that they are only rendering X or Y texture per pixel instead of ghfghfghfhth (Distance blening uses both textures when it could be X or Y for example), is there some custom code that achieves this?
@BenCloward
@BenCloward 3 жыл бұрын
If you have a bunch of math to do that doesn't involve sampling textures, and especially if it does involve UVs, vertex colors, or vertex normals, it's best to do that math in the vertex shader instead of the pixel shader. You can do that with a Vertex Interpolator node, where data going into the node on the left will be done in the vertex shader and data coming out on the right will be interpolated from vertices to pixels and ready for use with the rest of the material. I don't understand the second question.
@Albert-III
@Albert-III 3 жыл бұрын
Have virtual textures changed since this tutorial was posted? (I'm using 4.26.1) I'm seeing different options in the RuntimeVirtualTextureVolume with a 'Virtual Texture Build' section and different 'Transform from Bounds' options.
@BenCloward
@BenCloward 3 жыл бұрын
I think I may have been using 4.25 for this tutorial. Under 4.26, you just need to select the landscape in the drop-down box called "Bounds Align Actor" and then hit the Set Bounds button.
@Albert-III
@Albert-III 3 жыл бұрын
@@BenCloward Thank you! That issue is now solved :) but still having trouble with my Virtual textures. I've disabled them like you for now and will look back at the tutorials another time
@keenanrvndr
@keenanrvndr 3 жыл бұрын
Hi sir. Do i need to Enable virtual Texture streaming at texture import settings for every texture that will going to RVT output? If i dont, is it possible to use texture 2d array for virtual texture?
@BenCloward
@BenCloward 3 жыл бұрын
I don't believe turning on virtual texture streaming is required for every texture, no. For the other question about using an array, that may be possible but I haven't tried it. My main concern would be the method that you're using to select which array element to use. You want to make sure it's a method that is static (not animated over time) so that the virtual texture can only update itself periodically and get consistent results.
@danielgraham4616
@danielgraham4616 3 жыл бұрын
Hey! I was wondering if it's possible to use methods to break up tiling landscapes with RVT, I can't seem to fit the workflow after connecting the RVT sample to the output as it seems to overide anything relating to my tiling breakups in material functions that route through to the RVT output.
@BenCloward
@BenCloward 3 жыл бұрын
RVT doesn’t have a camera, so if you’re using tiling breakup techniques that depend on distance from camera, you’ll need to replace those with methods that don’t use the camera. There’s a pretty nice method used in one of the standard materials that ships with Unreal. I think it might be the gold material. It uses octaves of noise. Take a look and see if you can find it.
@danielgraham4616
@danielgraham4616 3 жыл бұрын
@@BenCloward Got it thanks! Ah yes I remember you saying about RVT and Camera!
@nicolarre
@nicolarre 3 жыл бұрын
Hey Ben, you said the runtime texture updates only once in a while. Where can this setting be found? Can I tell the RVT to just render only once and never again?
@BenCloward
@BenCloward 3 жыл бұрын
There is not enough texture memory for the entire landscape to be rendered all at once. So the runtime texture only renders what is needed for the current view. When the view changes, it needs to re-render some of the tiles depending on how the view has changed. So the system manages the tile rendering based on what is needed for the view.
@eugeneamirov4533
@eugeneamirov4533 3 жыл бұрын
@@BenCloward , thank you for explaining this. Does it at least mean that, while we are concerned about memory, we can be less concerned about texture lookups in the material? I am asking because I am having an issue packing RG-normals for normal maps having negative Z (as deriving doesn’t get the sign accurately due to sqrt), so I need to have one more channel, which in case of 4+4 packing means that I am going to have another texture.
@Restart-Gaming
@Restart-Gaming 3 жыл бұрын
hey was trying this at 10:21 your show source actor mine show Bound align actor did that but there is no copy bound or copy rotation I have set bounds but its grayed out? then below that is snap to landscape?
@BenCloward
@BenCloward 3 жыл бұрын
Sounds like you're using a different version of Unreal.
@Restart-Gaming
@Restart-Gaming 3 жыл бұрын
@@BenCloward yes 4.26
@Albert-III
@Albert-III 3 жыл бұрын
Followed the whole series and somehow ended up with my landscape material having 963 instructions whereas Ben's has 324, I wonder where I went wrong! XD
@BenCloward
@BenCloward 3 жыл бұрын
I think you may have your project set to use the forward renderer instead of the deferred renderer. When you first created your project, did you set it for Maximum Quality and Desktop/Console, or did you select Mobile / Tablet?
@Albert-III
@Albert-III 3 жыл бұрын
@@BenCloward If I remember correctly I set it to Maximum quality and desktop/console
@argieforever
@argieforever 2 жыл бұрын
Hi. I was following all this superb playlist of tutorials on a Mac and got stuck in this one for lack of support for the platform. I bought a PC and restarted from here, with the Runtime Virtual Textures working like a charm, but a previous issue, that I thought was also related to the OS, popped up again. It seems that I exceeded the max amount of Texture Samplers with the material. To solve it on Mac I just disconnecet one of the detail levels at the Landscape MF, but I expected it to work on PC, which didn't happened: still exceeded the max (I have 12/16 with those nodes deactivated on the MF). Somebody have any idea on which step I'm doing wrong to having the excess on samplers? Thanks in advance. Best regards.
@BenCloward
@BenCloward 2 жыл бұрын
Select each of your texture sampler nodes and set the Sampler Source setting to Shared:Wrap. That will tell the engine to share/reuse texture samplers for all of the textures instead of using a unique one for each sample and will allow you to bypass the 16 sampler limit.
@argieforever
@argieforever 2 жыл бұрын
@@BenCloward Thanks! I'll try that.
@marcinesa1336
@marcinesa1336 3 жыл бұрын
hello Can you make a tutorial from start to finish how to make your landscape virtual textures I do not know how to connect further so that it works with disp
@BenCloward
@BenCloward 3 жыл бұрын
I chose not to use displacement since it was draining performance. You might be able to pass the height into the mask input of the RuntimeVirtualTexture Output node and then connect the Mask output of the Runtime Virtual Texture Sample node to the Height input of the MI_LandscapeDisplacement node. Then connect the displacement and tessellation outputs of that to the root. I just tried that and it worked. I also had to convert the the RuntimeVirtualTexture to YCoCg Base Color, Normal, Roughness, Specular, Mask - so that it would store the mask data. The results aren't that nice looking since the landscape resolution is only 1 vertex per meter. This means that the resulting tessellation isn't high enough to make the displacement look good. You can still do it of course, but I don't think the benefit is worth the extra cost.
@marcinesa1336
@marcinesa1336 3 жыл бұрын
@@BenCloward ok thanks but what do You recommend to use instead of virtual textures ?? make it all look better
@Restart-Gaming
@Restart-Gaming 3 жыл бұрын
Is it true that run time virtual texture will not work with large tiled landscape in world comp?
@BenCloward
@BenCloward 3 жыл бұрын
That is my understanding, yes. I read somewhere that Epic wasn't planning to support world comp going forward because they're going to replace it with something else, so they're not spending time making other systems support it.
@Restart-Gaming
@Restart-Gaming 3 жыл бұрын
@@BenCloward so its best to wait for my open world game until that time? still Great video learn a lot
@openroomxyz
@openroomxyz 2 жыл бұрын
Does Unreal 5 Suport Runtime Virtual Textures ?
@BenCloward
@BenCloward 2 жыл бұрын
I haven't tried it myself, but I believe it does.
@superfluousvii9686
@superfluousvii9686 3 жыл бұрын
i keep getting D3D compile exception error every time i apply, any help? Im on 4.26
@BenCloward
@BenCloward 3 жыл бұрын
When did you start getting this error? Was it during this episode or before? I noticed you posted the same comment in episode 23.
@Madlion
@Madlion 2 жыл бұрын
This technique is flawed when I use to blend with megascans, their shader complexity skyrockets
@hanye4701
@hanye4701 3 жыл бұрын
Who else found that intro clip so brainwashing?
@wilismatrix9847
@wilismatrix9847 3 жыл бұрын
😂🤣
@tylerevangelista8845
@tylerevangelista8845 3 жыл бұрын
my instructions went from 221 to 250 and my PS lookup went from 27 to 71 when implementing a RVT. Any idea what would cause this?
@BenCloward
@BenCloward 3 жыл бұрын
It sounds like your landscape wasn’t that complex to begin with. If you don’t plan on making it any more complex than that, you’re probably better off not using RVT.
@tylerevangelista8845
@tylerevangelista8845 3 жыл бұрын
@@BenCloward thanks for the quick response, shader complexity is showing as dark red so I had hoped to improve performance a bit in that area.
@ethanwasme4307
@ethanwasme4307 3 жыл бұрын
@@tylerevangelista8845 then your materials display of 221 is false... you need to set the preview weights in your layer blend node to see true instruction counts... for example, setting 4 layers to 1.0 preview will show the instructions as if 4 layers have been painted
@Restart-Gaming
@Restart-Gaming 3 жыл бұрын
I tried this on mine and getting all above 22 looks like my computer needs to be updated
@BenCloward
@BenCloward 3 жыл бұрын
I do have a fairly beefy machine. I'm running a Ryzen 3900X and a RTX 2070.
@Khalid_Looby
@Khalid_Looby 3 жыл бұрын
Then why my fps drop when i use virtual texture?
@BenCloward
@BenCloward 3 жыл бұрын
I don't have any way of knowing that. I don't have any details about your setup. If the technique isn't working well for you in your situation, then don't use it.
@Khalid_Looby
@Khalid_Looby 3 жыл бұрын
@@BenCloward im using it on mobile and using ver 4.25 they made it better in 26, ill install it and check
@marcinesa1336
@marcinesa1336 3 жыл бұрын
can I use paralax onclussion in lanscape with virtual textures ?
@BenCloward
@BenCloward 3 жыл бұрын
No, parallax occlusion requires a camera vector, and there is no camera when the material is rendered into the RVT.
@marcinesa1336
@marcinesa1336 3 жыл бұрын
@@BenCloward meaby bumpoffset ?? also not ?
@ethanwasme4307
@ethanwasme4307 3 жыл бұрын
@@marcinesa1336 also not... displace the vertices or use (wait for) virtual heightfields
@Zeriel00
@Zeriel00 2 жыл бұрын
RVTs in just 50 easy steps 😭
@TNTMEKKI
@TNTMEKKI 3 жыл бұрын
how to work your setting in Brushify Material bcs i buy Brushify material in market i make your settings in my Brushify material not work for me my landscape its red and my sky and water red can you help me how to fix that or maybe give me your material files
@TNTMEKKI
@TNTMEKKI 3 жыл бұрын
and sorry for bad english
@TNTMEKKI
@TNTMEKKI 3 жыл бұрын
i fix my landscape now its green but my water and sky its red
@BenCloward
@BenCloward 3 жыл бұрын
I've never seen or used the Brushify materials, so I'm not going to be much help with that. Also, this is a tutorial about landscapes. I haven't done anything with water or sky yet. I'm not really sure what you did to make them turn red.
@TNTMEKKI
@TNTMEKKI 3 жыл бұрын
@@BenCloward I bought the sea and sky mutant from marketplace
Epic's Unreal Optimization Disaster | Why Nanite Tanks Performance!
13:07
Threat Interactive
Рет қаралды 159 М.
Minecraft Creeper Family is back! #minecraft #funny #memes
00:26
Tierlisting the BEST (and worst) GAME ENGINES
33:51
BiteMe Games
Рет қаралды 224 М.
5 Tips to Optimize Environments in Unreal Engine 4
12:23
Jakub Hałuszczak
Рет қаралды 71 М.
Reducing Draw Calls in Unreal! [UE4/UE5/Blender] (Check Description!)
40:11
How Games Have Worked for 30 Years to Do Less Work
23:40
SimonDev
Рет қаралды 1,3 МЛН
The Witness - A Great Game That You Shouldn't Play
41:02
Joseph Anderson
Рет қаралды 6 МЛН
How to Optimize Performance in Unreal Engine 5
17:40
Nu Makes Games
Рет қаралды 31 М.
Gitlab DELETING Production Databases | Prime Reacts
17:27
ThePrimeTime
Рет қаралды 333 М.
Run-Time Virtual Textures | Landscapes | Build Worlds
35:20
Maximizing Your Game's Performance in Unreal Engine | Unreal Fest 2022
41:53