Replicating the look of Human Fall Flat's realtime shading

I’m a big fan of low-poly flat shading as implemented in games like Human Fall Flag (which uses Unity 2017 or thereabouts). But whenever I attempt the style, my scenes look hard / made of plastic. The softness and warmth is completely missing. Looking at the attached screenshot I can clearly see some bloom, a lot of simple (non-volumetric) fog, and some occlusion culling. But nonetheless the scenes almost look like they have global illumination enabled, which I doubt since the game allows fairly radical manipulation of the geometry in real time without any baked illumination artifacts. And it runs pretty fast even on very modest GPUs which is something I desire for my implementation as well.

The question is how to replicate this soft/warm/fuzzy look using URP or thereabouts. I think Human Fall Flat uses built in / core rendering given the age of the game, which I suppose I could use too, but it seems like URP is the future and I’d rather stick with something that’s going to be supported.

I’m not seeing the global illumination. The lighting looks pretty flat to me.

Could be that your lighting has too much contrast, or maybe realistic PBR reflections are too strong. The lighting in those screenshots is pretty minimal and there is absolutely no shininess and no apparent reflections. Could be a non-pbr shader but maybe you could achieve the same look with the right amount of ambient light.

In my project, I made some shaders with a custom lighting model to soften the impact of lighting. That’s using BiRP. Currently there’s no easy way to make a shader with custom lighting in URP, though. It’s not directly supported in Shadergraph, and there’s no equivalent to BiRP’s surface shader template (edit: looks like they’re working on it but it’s not finished yet).

There are some tutorials out there about how to do this in Shader graph, but when I attempted to port my shader, I could never figure out how to get it to cast and receive shadows. There’s also an SRP equivalent of surface shaders in development, but it’s still in early development. I have not tried it.

You can get this look by:

  • using the default shader
  • keeping metalness very low on the materials (make them not shiny/specular)
  • adding Ambient Occlusion
  • making the shadow color lighter

I would call this style “low effort”. I think that everything this game does is a testament to doing prototypes right and wasting zero time on other things.

For sure, it’s not global illumination. But it’s much softer/diffuse than the defaults for real time shading, don’t you think?

Low effort is also part of my agenda :wink:

BUT: perhaps it’s just me, but I think many of the human fall flat levels look pretty good, in a minimalistic/stylistic kind of way.

eg: