High Quality Rendering in Unreal (Tutorial)

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
all righty so i've been tagged a couple of times now uh in some uh posts on linkedin and facebook and stuff like that about um uh helping uh some people out with their render settings in unreal so i thought it's probably a high time i make a video about that um so i've i am in uh my star wars project from quite a while ago um oops uh so uh these the i'm gonna be going through and showing you all the tips and tricks and stuff like that to really push unreal's render quality so um like these tips and stuff i actually found out i've been collecting for a while now um i actually found out some most of these after making this project not before so that's why i never actually used them in this project um so let's get started i guess so first of all we're using ray tracing in this project because retracing looks better for everything um so i guess we'll go through uh a number of these settings uh we'll start with the project settings actually um and then we'll move on from there so uh the first one is ray tracing so if you don't know how to enable that you just type ray tracing or ray and there it is uh you'll also need to set your default rhi to direct x12 to get it to work um and you can tell if ray tracing is working because there will be this path tracing and this ray tracing debug options uh there's a path traced version alrighty so the next setting we're going to go and have a look at is our reflection captures um now you're probably wondering oh why use reflection captures if we're using ray tracing well i will tell you in just a minute uh essentially we want to up this to like 10 24 5 12 10 24 a sort of a higher resolution uh next we also want to go through uh and type exposure um so we just want to make sure enable pre-exposure is on uh and we will enable in the editor and the extended default luminance range as well uh yep yep that looks fine oh and then lastly we want to find the g buffer like so and the g buffer format we want to either store the high precision normals or s force everything to be at 16 bits um you probably don't need everything at 16 bits because chances are sort of the other things aren't actually 16 bit anyway but so we're just going to turn on high precision normals and so this is going to make sure it's reading back a higher quality normal than what it would normally do so we're going to go and restart that also make sure um i think it's on by default but the new render movie queue pretty sure it's undefined by default um that's the only sort of out there plug-in let's have a look at this movie around the cue here so i got it up there uh what shot was i on i'd be uh see it opens i'll just open the map first uh this project will not be available to patrons so this but uh yeah just how it be one shots five b there we go all right so you may not notice a like a huge difference straight off the bat with that but um it's gonna push things just that ever so slightly more um so next is time to render out a scene so uh if you turn off real time then unreal will stop rendering at 120 frames a second or whatever you can achieve in the viewport uh your graphics card is going to calm down and everything's going to run smoother alrighty so uh we're in the wrong version of unreal we're still in 4.25 so i've opened it back up in 4.26 uh and the reason i'm using 4.26 is there's a number of improvements to ray tracing and stuff like that makes it a bit better quality and high performance um so we're definitely going to use that alrighty um so once you've set these settings in your project settings we can go ahead and render this out although i forgot one thing so um so we upped the reflection capture resolution so what we want to do now is just add some reflection captures into our scene um so i'm just going to add one in front of our characters here and that'll be obvious in a second as to why but retracing is a bit how you going um now you can actually uh turn down the retracing quality in uh inside here so i can switch that to one bounce and i can change the max roughness today 0.2 [Music] um i can switch the area shadows just disabled for now and turn up translucent objects and turn oh turn retrace oh that's right none of them look good keep them undisabled i guess um yeah so there we go that's a bit better all right and i'll tell you i'll show you why in a second that we can do that um the other thing is i'm going to turn off real time because we don't need oops turn it back on there you go nice and noisy alrighty so what we want to do is go ahead and open the movie render queue we're going to add this shot into the movie render queue like so uh unsave config here we go perfect set our output uh where do we putting that in here in yeah say select and go all the way across and see its name like so all right so yeah the the tone code thing isn't in here anymore all right so what we're going to start with is our output format so there is prores in here and you can use prores if you want um but we're actually going to be using linear excels instead the erx e xr sequence uh and i'll tell you why that is uh when we finish rendering it out um but the basics is that we can get um sort of uh there is no data compression there is there's in a linear exr on a computer generated image there is no such thing as a blown out highlight or a shadow with no information um so we have complete freedom when it comes later down that one for the compression method piz like you can use no compression but depending on the scene um you get 100 megabyte exrs per frame uh so pi piz is probably the one i would recommend again grainy image zip is more compression but it doesn't work if there's like lots of noise like the ray tracing noise uh next what we're going to do is deferred rendering so there's a few different ways we can render it so if we wanted to render lighting um the path tracing one is like experimental so probably avoid that um we're just going to go to third rendering which is unreal standard renderer there's nothing else we can change in here next we're going to go color output and then under misc we're going to go disable tone curve so we can get proper linear exrs under camera we want to have the shutter on frame close the reason by that is on frame closed motion blur will trail an object on mid frame motion blur like the object will be in the middle of motion blur um so here's a nice diagram this one's actually for blender but it's the exact same thing the other thing is just double checking your post processing you have motion blur on yep 0.5 perfect next is our game overrides so we're going to use the move pipeline game mode it doesn't really matter because we don't if this was an actual game that would make more sense because uh you know it's like we don't want it to actually play as though it's a game we can tick the cinematic quality settings although we're going to be overriding some of that use the highest lod disable streaming in lods we could change the view distance uh that's fine um so texture streaming so you have a few options you don't you have done override which means it'll load mipmaps which means as textures get close to the cameras they'll increase in resolution that is um probably not good because you can visually see them change one option is to fully load all the used textures at their maximum resolution that is going to destroy your vram unless you have like a 3090 or or an a6000 uh with plenty of vram to spare the last option is disable streaming which means it'll load sort of to the highest resolution i think it'll ever need um so you're not necessarily going to have the texture at its maximum resolution but you're never going to see it switch either and that's the one i would recommend staying at all right so our last next we are going to do uh anti-aliasing all right so spatial count is how many times it renders the same frame temporal sample count is how many so like a temporal sample count will render different frames it'll render sort of so it's let's say it's on frame 35 it'll render frame frame 35.1 35.2 so it's like ever so slightly moved and then that means it can generate more accurate motion blur um and you sort of get an accumulation of those things um and that's the recom one i would recommend changing um that has another uh sort of benefit which i will talk to you which i'll talk about in a minute so um 32 or 64 is the way to go it'll give you a warning so just overwrite anti-aliasing and set it to none it doesn't matter um like temporal a uh yeah so you can't actually set it to any of oh you can set it at fx it essentially this is temporal anti-aliasing um that is okay we can use uh render warm-up frames um and we can render 2064 of those so temporal accumulation on things like array tracing needs time to accumulate enough data for that to actually make sense all right so the last thing is the console variables this is this is where things get like the the tricky part um which is is probably where you're going to find you know where i've sort of been collecting all my different things um so what we're going to start with alrighty so our motion blur quality um this is the quality which calculates motion blur so we're going to set that at four which is really high uh our motion blur separable this will render moving objects in separate passes which doesn't work for a video game but means that motion blur like won't smush into other things as much our depth of field quality that one is going to just increase our depth of you know the quality at which it's calculating depth of field our bloom quality that is the you know quality at which it renders bloom i'm gonna say that to five um so these work great on a 30 90 you it may cause a directx crash on yours uh so you may have to turn these down oh except for the motion blur separable that's a one or a zero um there's an r tone mapper quality but when we disable the tone mapping so we're gonna need that uh okay next is our ray tracing commands um so r ray tracing global illumination um setting that to one will turn on brute force uh yeah and then setting it to two is fine altogether um we have uh global illumination off in this scene i don't think it looks good with these guys so i'm actually not going to bother with this one the next one is r global illumination max bounces um so that's why i turned i didn't bother setting it in the post process because we can override it with console commands so i'm not sure although the post process has settings that make it just run smoothly um so this sets how many bounces it calculates for the global illumination so i'd recommend like two um all right here we go so you are ray tracing reflections max roughness this is the maximum roughness value for it to be you know have retraced reflections on it so sending it to one means everything in the scene no matter how rough and non-reflective will have retraced reflections our max ray tracing bounces is going to be how many bounces it does so this is what gives us ray trace reflections inside ray trace reflections uh our ray trace shadows reflection shadows this one set it to this means it'll sample area lights as though they're area lights so by default to save time unreal samples area lights as a spotlight so setting this to two in here means that it'll actually consider it as an area light and all of these does override the post process that's what so they're like disabled here that's what see hard shadows and area shadows alrighty so the other one which i didn't write down so i'm gonna write it in now is retracing uh reflections oops here we go reflection captures so on the last bounce of a ray trace reflection it's actually just going to sample black um which means uh your shadow your reflections will look a bit dark um so by having the r retracing reflection set to uh set to one that means on the last bounce is going to sample the uh reflection capture in this scene so essentially it's going to be like it has a hdri um and that's going to make just your shadow your reflections a bit brighter and everything a bit brighter which is nice all righty moving on r retracing reflection samples per pixel this is how many samples it takes per pixel now because our anti-aliasing is set to 64 frames 64 samples per frame then whatever this value is times it by 64 and that's going to get you what each frame actually gets so like setting this to 2 means we're actually going to be taking 128 samples per frame for reflections and so if you have a not as good retracing card um then setting this to a lower value and simply upping your anti-alias your temporal sample counts is going to be the same as having that as a lower value and this is a really high one so that's a way to avoid crashes is keep this low and keep the anti-aliasing temporal samples high these guys are really noisy and in my actual one i didn't do enough samples so they're flickering so i'm going to keep this really high because the 30 90 can do that are ray tracing shadows um what let me read it r ray tracing shadow samples per pixel this is how many samples a shadow gets um i'm just gonna leave it on probably two not twenty three two um there is another one which is r retracing global illumination samples per pixel which it looks like that um same thing for global illumination we're not using global illumination so we won't be using that okay next two more things all right so tone the temporal anti-aliasing to make everything look a bit soft uh which i'm not a big fan of um you have two options for this my recommendation would be to do this in your editing software that way you have a lot of fine tuning over it but if you don't want to for whatever reason or you want to include this in like a game um the r tone mapper sharpen is the command to add a sharpen effect to it um this can be beyond one um so you can set it like two two or 1.5 is probably a good value in my opinion uh so do that's something to keep in mind the other thing is unreal 4.26 has a new experimental temporal anti-aliasing algorithm which is our temporal a dot algorithm 1. it's supposed to be better and faster and more accurate um so we can set that here uh i haven't actually done side-by-side comparisons yet to see if it actually is better or not a few other ones to keep in mind in case you need them is i'm going to paste them in notepad off of my documents alrighty uh disable temporal effects these are sort of the accumulation of render samples over time which helps with noise so you need to disable that for if you're using the tile rendering in unreal which i'd recommend not using because there's a lot of things that doesn't work with it um but they're the commands for that let me make them a bit bigger um and then if you need to disable any of the denoisers ray tracing denoisers they are the uh codes for that as well um you know i might actually post all of the codes in there as well so there's your tone mapper sharpen and your temporal aea here is the recommended render settings so there's your um there we go motion blur motion blur depth of field bloom tone mapper global elimination elimination reflections reflective infections uh and then here is uh the uh sample ones which is samples per pixels they're all engine samples oh these ones are max bound um hopefully they're on screen long enough for you to pause the video and look at them um i may stick this tech stomach document somewhere i might just stick it on my patreon and then just make the post for you or something um i i have them written down elsewhere all right so now we have all of our settings um this will this will produce high quality results but be aware that this is just going to blow your render like this is not real time this is gonna just like destroy render times um so i'm gonna you can save this as a preset and i recommend doing that so like we'll call it high quality rpx or something save accept all right so the last thing we can do is the render local or render remote always do render remote render local is faster to load up however if render remote is good because if it crashes during rendering you won't have to reopen all of unreal um and the other thing is if it is going fine you can just close unreal and have the remote render running um we have real time off so the only because we've got real time if you leave real time off then unreal isn't actually taking up any gpu resources just vram and on a smaller card you know you would probably want to close unreal so it unloads it so it's not loading textures twice basically in my case i've got plenty of headroom for that so we're going to hit render remote it's going to load up ever so slowly oh and we've got a crash for some reason why let's try that again and try and figure out why i was crashing i think this scene was doing it before oh it's the yeah alrighty um well let me think how to turn that off that's not any of the render settings that's crashing it it's this steam audio uh so this project i used uh unreal's own audio system to mix audio how do i turn it off is that enough oh there we go nice and slow so another thing to note is the this little viewport is a little misleading in terms of the camera shot i think it zooms in slightly or not i mean it says quality so i will see you once this is done rendering alrighty so that took a while uh but it's finally finished so we have somewhere there yep so we have a bunch of exr files now of our animation um so obviously don't render out at that quality level until you're happy and it's like your final render um so uh just quickly uh finishing up i'd recommend using davinci resolve uh for editing the exr files simply because um it's a lot better at doing exr files than um you know something like premiere pro um so i use resolve i have the studio version of resolve i use that from usually for my animations and then i use uh premiere pro for uh uh editing these tutorials uh so we're gonna so if you navigate in i'm not this isn't really gonna be a resolve tutorial but if you can navigate to your folder in the media storage um it's gonna show up the exr sequence as a video file so you can import that um so it looks really contrasty and not what we saw in unreal so um if we enable color management uh so that's the cog at the bottom color management and we're gonna switch to ace's cct and then the out transform uh yours is probably going to be srgb but my monitor has been calibrated to red709 uh so that's okay so that's going to look different again then we'll right click so unreals rendering pipeline closely matches but not easy but isn't exactly aces cg but if you select aces cg you're going to get a pretty close result so now we can stick that on the cut timeline boop and that's going to give us you know our high quality oh i can't play back any xr file uh yeah where is generate optimized media obviously uh playing back an eax off exr files uh isn't easy because it's how big is this footage it's 151 frames and that's almost a gigabyte that's ridiculous uh use optimizer view available good so now nice and high quality so i'll put that at the end just so you can see the quality level but that is you know superb quality for unreal nice nice reflections in there a little bit of until if my monitors dirty or what [Music] um don't know or maybe that's just the texture on this stormtrooper oh no it doesn't seem to be moving all right i don't know what that is then um but yeah there we go and then uh obviously being exr we can go as absolutely as crazy as we want on uh the color grade although this actually looks not half bad as is uh at least i can't think of any adjustments to make uh yeah awesome so as i said before this i probably won't be providing this project just because it's sort of a personal project uh but there you have it alright so thank you for watching
Info
Channel: Aiden Wilson
Views: 23,733
Rating: undefined out of 5
Keywords: Unreal, UE4, UE5, Virtual, Production, How, To, Tutorial, Epic, Games, Indie, filmmaking, Composure, Vive, Oculus, Tracking, Camera
Id: 0mREy9vs3JA
Channel Id: undefined
Length: 26min 40sec (1600 seconds)
Published: Mon Mar 29 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.