I don’t know what causes it, I thought it was the tonemapper so I modified it to output linear colors and got closer to the target graphics but it still isn’t enough.
Also if I understand correctly UDK does lighting differently which is why the materials look wet, that’s not an issue for me if I can get the colors to look as good.
Does anyone have an idea of how I can get the same graphics from UDK in UE4?
Thanks for the reply, I found some tips for better lighting (all the way up to ArchViz quality if necessary), is there any way to disable the tonemapper without editing the engine files?
The post processing method still doesn’t get rid of the look that makes it easy to tell it’s unreal engine 4.
A large part of it will be down to what aesthetic in particular you’re looking to achieve.
To @Arkiras’ point, the whole way shading is done is different. UDK uses a non-energy conserving phong for specular, whereas UE4 uses GGX calibrated to PBR standards. Diffuse lighting is lambert in both, but fundamentally, PBR workflows mean that light math is just done differently. There could absolutely be tonemapper differences that contribute to the look, but you’re also talking about completely different technical paradigms.
That said, this is also something that I’ve been wondering about for a while: UDK and UE4 do have different aesthetics, and I’ve often found something sterile about the way stock UE4 looks that wasn’t true in UDK. If you can put your finger on it, please LMK.
UDK games look interesting even with low quality graphics, UE4 looks washed out and plastic, UE5 looks realistic but still generic somehow, like something is missing. I really can’t put it into words that well, something seems off in UE4 and UE5
I think this has more to do with modern approaches to asset creation in PBR shading. The way that we make assets for PBR just does not scale down well, they are explicitly built to be viewed with all of the shading/lighting features enabled and when you start turning them off, it falls apart.
In ancient times, we would paint a lot of lighting information for each asset into a single color texture, because we could not afford to do things like normal mapping or specular reflections.
In the age of UDK/UE3, despite having specular reflections and normal maps most games could not afford a separate AO map and indirect lighting was completely static, and lighting for moveable meshes was baked without any directionality. This meant in order to get decent results you still had to put quite a lot of ambient lighting information into the diffuse texture (hence why it was called “diffuse” and not “base color” as it is in UE4)
Why does this matter? Because when you start turning off lighting/shading features, you’re increasingly left with only the material information that is in the base color… which is completely flat now because all of our materials were explicitly built to rely on pixel shaders to do the work of combining all of the individual attributes of the material split up in multiple textures, into the final lighting that is presented to the player on screen.
In modern games, characters are usually the most obvious example of this, SSS can be expensive so it is frequently disabled on low scalability. Again though, the base color for characters was designed with the assumption that SSS would be softening the features of the mesh and as soon as you turn it off, the character looks like a mannequin wearing a leather flesh suit.
We work this way… quite simply because it looks better at the target quality level. You get more accurate lighting and shading. But it doesn’t scale down… In an ideal world, we would fall back to a separate material with different textures, specifically made for lower scalability levels. The reality though is that this creates a lot of additional work for artists/designers and it bloats the install size of the game for everyone because now you have to pack a separate set of materials/textures into the game. So we just don’t do it, and we accept that the game is going to look horrendous at lower quality levels.
Honestly that’s a pretty good argument for the differences UDK-UE4. Balancing stylization with PBR accuracy has always been a challenge, and I think there is a level of extra life to be found in handpainted textures even when things were otherwise quite inaccurate.
And to your point on scalability, the callisto protocol people gave an awesome SIGGRAPH talk, with most of it being dedicated to the danger of misapplying PBR principals and getting bad art as a result. Your lighting and your shading models both need to be correct for the final product to be, and having a great lighting setup interact with bad shader models will still result in a bad final image. The Callisto team reminded people that since PBR is imperfect, you need to be able to tweak things to account for when it gets things wrong.
I think that real-time GI really was an essential piece for bringing lighting all the way to where it should be, but as the Epic team reminded people in the first lumen talk, PBR values won’t necessarily give good results: you need to brighten the albedo to really get a kick of GI. I think that one of the reasons UDK may feel better is that a lot of developers still aren’t totally sure how to stylize in the framework of PBR.