A talk about Textures, MIPS, Compression, Streaming, and Memory in Unreal Engine Virtual Production

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hello so I just wanted to make a quick uh impromptu video here just talking about like textures and their role with um GPU memory um because I I um I just got off a call with a studio that was having render issues or having uh memory issues with their movie rental Q renders and um it's a pretty frequent call that I end up having um with you know kind of Studios who are new to using uh Unreal Engine for like you know VFX or linear animation um you know kind of in the beginning I always end up you know kind of start start starting to talk to them about like you know just general optimization and and you know seeing optimization and they you know kind of have this assumption that you know since they don't necessarily care about real-time renders you know that they don't you know like they don't care about 30 frames per second or 60 frames per second they're fine with you know 30 second per frame renders coming out of movie render queue you know they think that they don't necessarily have to you know play by the same optimization rules um and they could not be more wrong um yeah anyway so you know and then other time like a few weeks later I got a call or an email from them you know saying help you know our renters are crashing our scene is slow and we don't know what's going on um and we renders crashing at a movie render queue due to memory issues like 95 of the time it's because of textures um so I just wanted to you know kind of make a quick video where we talk about you know kind of textures and their role and the whole thing and just you know kind of the whole process um so when you bring a texture into Unreal Engine let's just go grab a checkerboard real quick um you know it just kind of plops in there right and I think people get this like false sense of security because there's no like GUI pop-up where you have different you know kind of import choices wait I know engine tries to make a lot of choices for you um and they might not necessarily be the the right choices they might not necessarily be the choices that you want I mean it does its best right um so you know you should follow this up right and have a look at this so you know kind of first things first right like um when yui brings or when you bring a texture into UE right like there's this texture here the source file at the bottom checkered underscore srgb.png so it's not a PNG anymore when it's in Unreal Engine it's uh engine makes a u asset out of this right so inside the U asset is the source pixels um in case you ever wanted to you know export this thing back out you can get back out exactly what what you put in so the source pixels and all of the mips generated um are held in the DDC right so that's here um so it's a u asset now it's no longer PNG it's no longer exr it's no longer a JPEG so it's all held in the DDC um so you know when you're syncing from perforce and you're sinking DDC and it takes a long time it's because you're thinking all your textures uh all the source pixels and then all of the mips right um now um we'll get the mips in a second um but just let's just have a look in here um at you know kind of choices that Unreal Engine has has you know kind of made for you um and make sure that you want those choices the first thing and I see this wrong all the time is srgb right I mean you know I'm not going to explain color space um until here I mean most everybody has a good handle on it um but most like most times I know engine will default a map to srgb right and you should make sure that you want the map to be represented in srgb space in the engine you know like a rule of thumb like base colors colored spec Maps colored emissive Maps you know those should be srgb like anything where you want that the color of that texture uh to to be represented you know as a color in your render um they should be srgb um I see you know it wrong mostly on pack Maps like you know when when like you know red is roughness map and green is is um you know height map and blue Is AO map or what whatever um I always see srgb on right so let's let's go grab a um let's go grabbing colored checkerboard here if I can find one Okay so let's say this is your pack map right and you have your different Channel you know like you you have your different grayscale maps and your different channels like you're gonna plug the red channel into roughness you're gonna plug the green channel into what whatever you're going to plug into you know by default on our engine thinks that this is an srgb map right and you don't want this to be an srgb map like you want the values of these pixels to be proper you don't want them converted so you want this map to be a linear map right um and you know if you're like in a scene and you're trying to like light this table right and this like spec highlight it's just not reacting the way that you think it should react like everything's just kind of flat and not Dynamic and really weird and you're just really struggling with the material I would go in here right and have a look that like these Maps are in the proper color space right so like the pack map you know you want in linear space the normal map you want in linear space the color math you want in srgb space um you know I see this all the time all the time all the time so you know that doesn't necessarily have anything to do with memories or crashing or anything I just want to bring this up because I see it all the time uh anyways so let's get back up to here and you know kind of what we were talking about what Unreal Engine does when it it you know brings in a UE and it makes the US set right it's got the source pixels and then it has mips right so you see the mips up here 12 12 um 12 mips are made um so now what's a MIP right a MIP uh for each MIP level engine is going to scale it by half on X and Y right so this is 10 10 24 by 1024. right this is 512 by 512 there's mip2 256 by 256 nip3 128 and it you know goes all the way down until it gets to 12 Maps or like you know probably like a one by one yeah which yeah there it is a one by one right so um and you know this doesn't have to be square this can be like a rectangular right so this is like 10 24 or sorry if this is 2048 by 1024 that works fine um it used to be the case in 5-0 and in ue4 where if your texture wasn't if if the texture resolution wasn't authored in a power of two um up here then Unreal Engine would not make mips um it's in 5-1 they made it so it will make mips so like if this texture resolution was authored it was like 5 13 by 513 or something like that um it would still make mips for you what it's going to do is it's just gonna pad the pixels up to the next um Power of Two right so if it was 5 13 by 513 it's gonna be 1024 by 1024 so it's it's going to be the same amount of memory on your GPU as a 1024 by 1024 texture but you're not going to get the extra pixel resolution out of it right so you might as well just author your Textures in power too which most Studios do which is fine um okay so you know why does UE make mips right and why does it want mips um so I know engine strives for a like a um how do I say this correctly uh it strives for a one-to-one uh rendered pixel to Texel density ratio right so like if you're if if in your rendered frame if this was like 256 by 256 in your rendered frame a normal engine would prefer to load a 256 by 256 texture for this like in a perfect world that's what's happening is it's representing the pixels one to one um so you know not only if you know if you have streaming turned on which we'll get that later um then you know it's great for memory but you know if you had a you know 2000 by 2000 texture jammed in here it would potentially flicker frame to frame right it would potentially um pixel fight or if it was smaller than that then it would stretch right it would get Scaled in stretch um so in UE kind of you know tries to load in the right MIP um for it sorry there's a evidently there's a fire outside of my house somewhere um so those are um mips right now um you know don't get confused there's this thing called um um streaming virtual textures which is kind of like Niagara for textures for lack of a better term for right where it will break up this this one like textured MIP in uh 128 by 128 tiles So like um let me see what's the best way to do this let me see if I can draw I'm gonna draw with a mouse so um so it's gonna it's gonna break these up in tiles I can't even draw a straight line with them um and in in 128 by 128 tiles right and what the advantage is excuse me and what the advantage is is you know instead of just loading you know MIP one here for this whole thing right it's only going to load nip one for these things and then it could load MIP you know two for these and then load map three for these and load map four of these um you know so you don't need to get you know just one whole texture MIP for the whole object right so it's incredibly performant in memory and it's you know and it's also can better keep that um one-to-one pixel to pixel density ratio another thing that's really good is is like you know in the case of um in the case of this right there's something blocking this edge of the table down here so for the things that it's being blocked by like these tiles it's it's just going to load in a super low resolution of that tile right like like say for this chair like if this was all virtual textures like everything that's under here it's just going to load in a super resolution a super low res tile and for um like if you want to use udem's streaming virtual textures are a must like you can't have udems without uh streaming virtual textures um so it's a good thing we used to like dissuade people um from using stream of streaming virtual Textures in um especially with moving render queue because like if there was a camera move like a fast camera move or if there was like a character that came you know kind of running into frame or you cut and there was a character there it would it could potentially take UE like a frame or two to figure out what what you know like what resolution of tile it needs to load in so you could potentially see like for a frame or two you know UE like you know updating this this tile to the proper resolution right um and it and you know it it and it was a problem um what in 5.1 there's something there's gonna be something called um cinematic pre-streaming it's a plug-in it's experimental uh but it's it's a plug-in um we use it on the Matrix awakens demo so if you go into movie renicue there's a cinematic there's pre-streaming recorder and basically it'll go through and kind of like cache what virtual texture bucket um you know versions it needs for the for the shot so it it'll kind of like pre-cache it all for lack of a better term and then you know it it kind of already knows what versions that it needs um when it goes to render out of movie render queue rather than trying to figure it out on the Fly um so in five one um that should be um text um okay so that's nips right um let's go back here and have a look uh the next thing that I want to have a look at here is compression right and this is a big one so you see your resource size here um that's gonna be the amount of memory that this texture takes up on your GPU when you send this thing to render right um so if you go down here and you look at compression um we'll see you know there's a bunch of different choices for compression and this is well documented like you know this is all in the docs and there's a bunch of videos about compression and all these different compression types um but the the beef but but the default here is bc1 like you'll see this in most of the textures in on engine um and it's a great compression so this is eight times smaller than a uncompressed texture right um and then for you know some like for for some better res for some better quality uh there's this bc5 right but if you look up here it's it's double the size so it's four times uh smaller than a uncompressed texture um and then there's you know kind of different ones like you you you see grayscale quite a bit you see Mass quite a bit normal Maps quite a bit um now you know why does this matter right is be because as I said before this is the amount of memory that it's going to take um up on your GPU right um and if you only have four gigs eight gigs of memory on your graphics card then you know 21 Megs for a 2K checkerboard is a lot right that's a lot um and you know people will kind of get picky about you know like roughest maps and normal Maps uh especially and you know if you're you know it's like if this is your shot and you have this really delicate intricate um you know kind of roughness map and you're seeing compression with you know uh with bc1 and you want to switch it to other bc7 or grayscale sure you know go ahead totally um but I just want to you know I just wanna have a look right it's a good there you go it's probably a good one to see them so let's have a look right at what's happening so this is a 4K um this is a 4K grayscale map right it's got bc1 uh compression and it's 11 Megs right and you zoom in here and you do see some compression if you switch this to uh bc7 right it oh uh it gets a little better right you know I mean it's definitely better if you switch this to grayscale right versus bc7 kinda it's kind of the same but if you look up here grayscale is 87 Megs right bc7 is 22 Megs bc1 is 11 Megs so you know if you're seeing this texture in in your render to this scale you know yeah sure but if you're seeing the texture in your render to this scale you know are you seeing any compression difference are you seeing any textual difference it's like you know let's see if we can go find this right it looks like a blanket or something yeah here it is okay right so it's this pillow right let's say you have like a shot where a character is sitting there um talking right if you go from here to here you know do you see a difference at all and this is you know 87 megabytes versus 11 megabytes sitting on your GPU you know I say this all the time you know when people think that they don't have to optimize their scene this all has to fit on your GPU any frame that you want to render everything has to fit on your GPU all at once like there's no delayed load there's none of that stuff it all has to fit all of your geometry has to fit all of your textures have to fit all of your effects have to fit everything has to fit on your GPU and if it doesn't fit on your GPU then your renders are going to crash or unreal is going to crash right so you know texture compression matters it really matters like don't just you know take it for granted um now another thing that I wanted to bring up especially when it comes to uh texture compression is exars right because you know most Studios that I worked at like you know maybe all um because of a rhythm used exr's were were like the standard image format right either for hdrs and for texture maps and for renders and comp renders I mean you know exrs were just the standard format that everything was held in so let's bring a half float uh checkerboard into Unreal Engine right so there's nothing wrong uh with bringing in exr in I know engine it it will Import in just as fast and efficiently as a PNG as a JPEG it will convert over into you asset you know it's not like it takes any longer to do that stuff it's just as fast um but when we double click it and we bring it in right so this is a 2K checkerboard right are as a exr this is almost 44 megabytes our 2K checkerboard as a PNG was three megabytes right okay well why if you look at this compression setting this is set to HDR compression so any exr that you bring in to Unreal Engine I know engine is going to assume that you know one you you want High dynamic range um you know and you might um if you have a spec map or something or a pack map or a mask map do you want High dynamic range I mean that's up to you but just be aware that it thinks that you want High dynamic range and a very um in a a a a very low compression file right um which is up to you but you know again like we just brought it in and it was fine and you loaded it up in your material and you hit render and it looks fine so people just don't follow it up so you know even if you did want High dynamic range you you can come in here and go to HDR compressed look at this five Megs five Megs versus the default 43 Megs right like let's just go let's grab like not even a checkerboard what's what's something that we can I just can't be all the textures is it yeah okay so here's a translucency map right so these are leaves these are leaves in the scene right and let's say that this is the exr don't remember the color change uh let's say that that this was the exr and this was brought in like right it was kicked out of your pipeline as the EXO and it was published so this is a 175 megabytes 175 megabytes for a leaf texture and if you have a four gigabyte card at eight gigabyte card 175 Megs for a leaf for for for a leaf Albedo map is a huge investment it's it's a huge investment right and it's a huge investment that you might not be aware that you're making um I mean you know whatever let's zoom in here and let's go to HDR compressed versus HDR right I mean you know you see a little bit of stuff especially out here but I mean you know this is probably even outside the UV borders right so it's your compressed I mean let's really move in here versus HDR it's ridiculous 175 Megs versus 22 minutes right and if you and and then you know if it's like that for every single texture in your project I mean think about how much memory you're leaving on the table and it's like you know this is this is not nothing right this is nothing for a project like this is you know this is nothing even for most scenes I mean this is a a this is a very controlled indoor scene right think about if you had some sort of like Epic you know outdoor environment right this is what you know 200 textures Maybe right I mean projects have thousands and thousands and thousands of textures and if you're not following up on your compression here then you're gonna have a bad time right um like your memory is going to fill up and your renders are just gonna crash and um you know which is a good time to talk about streaming right streaming textures because you know most people when I tell them that they say okay well you know why right like why does unwell engine do that when when you have streaming turned off so let me let me talk about the difference between streaming and non-streaming your textures right so when you have streaming turned off um which in movie render queue it is by the way right by default it's turned off um most people don't realize at first that even though this game overrides where is it even even though this is not active in the GUI it's still controlling your render right so if you look at here by by default texture streaming is turned off it says disable streaming so what's texture streaming versus not streaming when you're not texture streaming right um and UE goes into the shot and it says that it wants to run a shot right and it says okay you know this is you know you know x amount of of of pixels inside your render or XML close to camera you know I want MIP one for this I want MIP seven for this I want MIP you know 10 for this to you know keep that one to one uh ratio right so it's going to load all of those mips on um onto GPU to render but it's also going to load every other MIP right so it's going to load mips um 0 through 12 for this chair 0-12 this table 0 through 12 for um this radiator it's going to load every single texture and every single map for everything in your frame onto your memory card and it will do that without any sort of safety um like if there's not enough room on your GPU to load every single MIP for every single object in your render scene then you is just gonna crash right your GPU is going to get overwhelmed and you is going to crash so you see where you know compression you know makes makes you know compression makes a huge deal right where like um I don't even know if it shows anyways so anyways you know resource size right if if if you know if this is the case for every single texture you're saving 150 Megs for every single texture and let's say you know again this is a very controlled scene like what if you had some sort of you know outdoor or exterior and there was like you know a thousand objects in your scene and every map was this like huge 4K HDR you know compression really really really matters um so that's not streaming right and you see how potentially you know gpus can get overwhelmed right um just by textures so then you know it begs the question okay why you know you know like why does like why do that and why have that default um in movie render Cube right is because it's faster it's faster for your render right it's like so remember how we you know kind of talk about okay you know everything in here is loaded into memory right and then the camera pulls around here and it loads everything into memory right well to depending on how fast this is you know kind of happening you know Unreal Engine can take like a frame or two to you know kind of figure out like okay this chair is here and it's this density so I want you know MIP zero and to load nip zero and to put on the chair and to render it so sometimes you know you you can see it figuring that out in your rendered frame which is not good right so people turn streaming off and it's like okay you know all of these things are already in memory so it's a lot faster to pull that map and put her on there and render it rather than going and digging it out of your DDC loading it onto GPU and then rendering it right and if you have the room on your graphics card then you know why why not right like I've got let's see here I've got you know 48 gigs you know yeah go to town um but if you've got a lot of textures or you have um smaller graphics cards then it could be problematic right um so then you know people say okay well you know why can't Unreal Engine just you know have some sort of Fail-Safe where you know it won't just try and load every texture and every MIP um in View and crash by render right so we do and it's called um and it's called texture streaming um so you textual streaming in in the project um is normally enabled by default uh texture streaming here so what's the difference between streaming and non-streaming right so we're talking about non-streaming how it's going to load everything texture streaming is only going to load the mips that it wants into memory and render it right so it's going to go okay you know maybe zero MIP one MIP two MIP 10 whatever and it's only going to load those mips onto your GPU into memory to render now you know you run the chance of you know seeing a lower resolution MIP for a frame or two in here if if if you have a really fast camera move like a really fast camera move it's you know under engine's pretty good at being predictive um so you know it's not like you're just going to see that all the time but if you have a really fast move um or you have something that like really appears on screen um or if you run into memory pool issues um which we should talk about memory pools next uh then you could potentially see that um right so but you know most times when you see that in your render it's a issue with your memory pool um and a lot of people don't manage their memory pools which they should so you know I'm sure everybody has seen um like that you know over allocated red you know kind of texture area let's let's see if we can get it to uh uh by the way this is the new console variable tool that came out in five if you haven't if you're not using it you should use it because it's awesome uh anyways so I just set the streaming memory pool size to uh I think it's like 10 megabytes or something so we're over allocated now right by 1.287 gigs okay what does that mean right so um basically a memory pool is a dedicated allocation on your memory uh or sorry on your on your GPU right unknown engine is saying okay you know I've got whatever two gigs of um GPU memory that I'm going to use for textures right and as soon as you fill that up um you know it's it's not going to let you load any more right it's such it's not gonna let you fill up your GPU so this is streaming right so what's going to happen if you fill it up like if you run out of memory like let's say in this instance here right you see that we have this warning here um if we crank this up you know um what it's gonna do is it's gonna start loading in lower res mips Bennett wants to right so once you hit that that you know kind of memory pool um see if we can force it that's it's not going to be forced oh anyways um what it'll do is like once you hit that memory budget is instead of loading in MIP one for this it'll load in mip2 and instead of loading in you know nip 10 for this it'll load in MIP 12. so it'll keep going down lower and lower and lower um resolution until it can load in all the textures that it wants to use for that render right so it's not going to crash and it's not just going to like not load textures for other objects it'll just start throttling down um all of your mips right so it'll basically just start you know biasing all of your mips down saying like Okay you know for MIP zero I'm gonna load map two right so that's what's going to happen when that memory pool fills up right it's not going to crash um you can get a um you can see where you are get like a holistic view of your streaming and memory pool um just by typing stat uh stat streaming you know so you can kind of see like how much you're over allocated right like here's the required pool this is how much of your memory you're actually using um you know so you can kind of look at it here and manage your memory pools so this can be managed by a c bar um this is tied to scalability um let's see here we could probably see this so if you go to textures you go to Epic right so let me make sure that that's not what I'm doing so if you go to so if you go so um epic is set to a thousand if we go down high you'll see the pool size go to 800. and then if you go to cinematic right you'll see you go to 3000 so pool size is set to engine scalability automatically um if you look at movie render queue again in the game overrides um you're forcing cinematic quality settings so move around to cues forcing um this pool size so you you know you you can always override this in movie render queue if you want um you know size equals whatever so you can override that in movie render queue um but they're they're set in the default scalability right so you can set what these things for your whole project and you should set it for the whole project because you know in my experience like for linear VFX and linear animation the pool sizes are set are are really conservative by default like they're pretty conservative like most people um you know they don't necessarily have you know a6000s but they've you know they've got better cards like this is set for the masses right and this is you know and like a lot of these defaults are are set with like gaming in mind um um so you know anyways so let's talk about what happens um when the camera's moving around right because we talked about the memory pool and okay you know it either can or cannot load every MIP resolution that it wants to for this render right if there's room in the memory pool then it can great and you won't get this error if you cannot load it um then you'll get that error and it'll start um loading in lower and lower resolution mips so now you know let's say you've set this to like you know whatever like a ton right so it's loaded in this and it has room to spare right and then your camera goes over here and it's loaded in you know this Frame as well and it still has room to spare so just because this camera has moved over here it's not like all of the mips from this frame have been ejected from your GPU right they're still hanging around in memory because you have room in your pool size um and you know what what if the camera quickly goes back here right it's just faster to keep this in um on your GPU so but let's say you know you were over here and you loaded everything up and then you move over here and you know it gets to I mean you know it doesn't really like this but like you know let's say it gets to the top half of the frame and boom it's it's run out of pool size right what's gonna happen then it's gonna so what it's gonna do is it's gonna look into the pool and say like oh okay you know what's the texture that hasn't been accessed in a while right like what's what's the oldest texture hanging around um that has you know I want to say like that hasn't been accessed in the longest amount of time right let's say there was something over here and this hasn't been accessed in 15 frames this hasn't been accessed in 10 frames and they need this right now so what it's going to do is it's going to eject this from memory and it's going to load this right so it's not going to crash it's just going to eject things that it hasn't accessed and then you know load the new stuff um you know so you see where if you have a really low you know like if you have a really low pool size um you know not not only are you potentially not letting it uh load the mips that it wants to load um you know you're not kind of giving it a buffer right like you're you're not kind of giving it a texture memory size buffer right to you know be able to hang on to things that will potentially show up in your shot um you know again um you know so people complain about streaming because of those reasons right because they see blurry textures because they see you know because they the render wants nip one for this but it doesn't have enough room in the pool size and it loads in MIP 10. um and then you know also they complain about streaming just because you know it's like you have a very fast camera move just like I was saying it could take a frame or two um for you know this chair to figure itself out and you know like if you have a shot and like this chair is just being problematic you know and either you're you know kind of out of memory or or you've upped your pool size and blah blah blah you you you just you know you've done everything you think you can do and that chair is just being a problem for some reason just you know go into the texture for that chair and just hit never stream right instead of nuking the whole project by like you know shutting texture streaming off just go cherry pick that one thing um so you know I mostly recommend like you know I recommend to people unless you have a smaller scene or you or you have a humongous or a humongous graphics card um you know I normally recommend people you know go and hit don't override keep your texture streaming but just make sure that you set your pools um and again you could get you can get a look at that by stat streaming um you know another uh good um kind of a troubleshooting tool that I use all the time is statistics um is statistic texture stats if it's not already so like you know whenever I get a client project um that I'm trying to troubleshoot the first thing that I do is I pop in here right and like you'll see like some things will pop up here at the top that'll just be like you know glaringly wrong it'll be like you know 16k by 12K and it's got no compression and it's and it's you know like it's taking up all this memory right so right now you can see that you know 1.35 gigabytes is being taken up um and if you see like this uh there will be like a compression like bc8 G8 R8 whatever whatever um that means uncompressed um and and you know oh yeah there you go right so look at all these anchor press and people use uncompressed on purpose like you know for any sort of like HUD or GUI or UI um they want it uncompressed and so here's this like Cathedral wall frame it's it's 1600 by 1001. so um this won't compress the engine will not compress this um because um most game engines compress things on like two by two or four by four blocks right so if your resolution isn't two by two four by four it just can't compress it right so it just won't compress it uh oh another thing to bring up this is just kind of like a whatever point so with pack Maps um people you know are being super efficient with pack Maps right where like you know you're packing things in the red Channel you're packing things the green Channel you're packing things in the blue Channel and it's all a map and it's great um people some sometimes get super efficient and they pack something else in the alpha Channel so Alpha channels in an engine will not compress right so so you can use that to your advantage where like you know you have stuff in your RGB channels that you want compress and you want something in your Alpha channel that that you don't want compressed um but Alpha channels never compress so you know if you're making path Maps you know you can consider you know kind of do your own test but consider anything that you put in the alpha Channel you it may be better off putting in a different pack pack map that they don't compress um anyways yeah you know go in here and get a look at your scene right like you see you know all of these different kind of compression formats right like how how about you know like have a look and you can even um you know kind of go grab these things they highlight um and you go check them out right and you see hey what's going on here right this is set to break scale obviously right they probably wanted something for the floor um but you know again it's 21 Megs versus 10 Megs so you know it's up to you so yeah like when I'm troubleshooting clients themes like the first thing that I do is I pop this thing in here and I start to look for like these you know like glaringly obvious issues with um like with textures um so yeah you know I would unless you have a small scene or a big card I would turn on streaming you know like when you're rendering you know I would keep an eye on your GPU here you know every once in a while just you know go have just you know kind of go have a look see how you're doing like if it's starting to get up near the top like once once your memory card starts to fill up like all bets are off with Unreal Engine like it's it's just we you know either you're gonna crash or just weird things gonna happen like once you get high you know I would consider turning on texture streaming mess with your pool sizes um um oh if if you're doing virtual textures um you set the pools it's got a different pool size um so if you there's you know if you um go into the docks this will tell you how to set your pool size for virtual textures that's another thing that kind of gets people is they turn on Virtual textures they see blurry textures and they blame virtual textures and they're like cranking this right they're like cranking this number and they blame virtual textures but virtual textures has a different pool size yeah everything's got a has a pull a normal engine and the more you end up working with it the more you'll you know kind of see these things um so you know hopefully that will that you know kind of enlightening and it you know gives you like a holistic view on what's happening with textures and and how they're being loaded how they're being processed how they're being you know loaded on the GPU and why you know you know kind of optimization and color space and mips and compression like you know why all this stuff is very important and you know why you should you know absolutely follow this thing back up don't just drag it in the engine and hit save and um you know push it up to it to P4 because you know when you have big big big projects um you know and there's you know 10 20 30 people all jamming stuff in to the project in you some people are experienced with Unreal Engine and some people are not like you know this can get unruly fast right you have like uncompressed textures you have crazy resolutions you have things set to never stream like you've you've got you know things get nuts right things get crazy um and you know just like I said I mean this you know like this amount of textures here is nothing this is nothing compared to projects like you know it's like if you're doing a Netflix series this is nothing you know you're gonna have thousands and thousands and thousands and thousands of textures so you know stay on top of it right if you say on top of it then you're going to render quickly and efficiently and you're going to be able to work inside the engine quickly and efficiently and you're you know gonna have a better time all around so um yeah I'll type all this up and and and put this on the dev Hub you know in kind of a more coherent manner um but you know I just wanted to you know make this video real quick just because I have this conversation over and over and over again and you know hopefully it can save at least one or two people out there that are struggling um with memory with their renders um so yeah if you have a question or whatever just you know feel free to drop a comment um or just um hit me up and I'll try and help you out as best I can all right have a going
Info
Channel: Shaun Comly
Views: 1,767
Rating: undefined out of 5
Keywords:
Id: ibmSyKY6pmQ
Channel Id: undefined
Length: 47min 23sec (2843 seconds)
Published: Tue Oct 18 2022
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.