Best engine for cinematics?

Started by
7 comments, last by Puggyboy 8 years, 9 months ago

Hi,

apologies if this has been discussed before, but my company (animation studio) is currently investigating engines as a possibly alternative to raytracers for making movies. So far, I've concentrated on UE4, which I've found to be a very impressive tool. We actually delivered a short trailer made in Unreal recently, which shows how easy to use it is!

However, we are running into issues, and I want to understand how many of those are fundamental to Unreal, and whether we might be better off with Unity or CryEngine (or even Source2). I'm guessing that some of these are a consequence of UE4 being a (mainly) deferred renderer, but I don't really know. I'm pretty much a beginner with DirectX, so I'm currently a bit limited in my ability to hack any engine. Our issues include:

antialiasing - generally terrible, and I'm now rendering at enormous resolutions and downsampling.

transparent/translucent materials - having many problems with things like glass and water, due to the need for transparency and specular reflections.

related to both of the above, rendering of hair/fur is terrible.

motion blur and depth of field pretty low quality, although I think these have recently improved.

inability to have a selected light only affect selected meshes - we use this all the time to tweak certain shots.

On the render output side (i.e. Matinee):

no 16-bit or higher outputs.

no ability to render separate layers (e.g. foreground only, background only, effects only etc).

I'm guessing that these two could be addressed relatively easily though.

My question is: is it worth moving to another engine? Or would it be easier to extend Unreal?

Any thoughts gratefully received!

Advertisement

Well, a game engine is tailored for real-time rendering. Using it for cinematics and expecting the same quality like a offline renderer is problematic. All what you have mentioned is most likely true for all the other game engines around.


Or would it be easier to extend Unreal?

You will have some hard time to extend features like translucent material etc, other features will be more easily added. A game engine has still a long way to go to compete with real raytracers.

But my real question is: why do you want to use a game engine instead of an offline renderer ?

You could take a look at Crytek's Cinebox,

All the tech from CryEngine (and much, much more) inside an application specifically targeting animation / previs.

See this fx guide thread

Not publicly available but already used by animation studios, so you sould contact Crytek for more info.



But my real question is: why do you want to use a game engine instead of an offline renderer ?

thanks for the reply :)

Basically, it's all down to time (and money). We currently use Houdini and Mantra to render, which takes huge amounts of time on a dedicated render farm. A significant part of the project costs is down to this, plus it's much faster to iterate in a real-time engine. For some types of project, we don't really need the full raytraced solution anyway.

You could take a look at Crytek's Cinebox,

All the tech from CryEngine (and much, much more) inside an application specifically targeting animation / previs.

See this fx guide thread

Not publicly available but already used by animation studios, so you sould contact Crytek for more info.

Ah yes - I'd forgotten about Cinebox... seem to remember we did contact them without response, but that's a good reminder, I'll try them again.

antialiasing - generally terrible, and I'm now rendering at enormous resolutions and downsampling.

Many of the features used by realtime engines aren't antialising friendly.
What you're doing right now is called "Supersampling Antialising" and is considered the ultimate form of antialising (it's pure brute force).
Offline renderers often use SSAA too. So you should probably continue to do it that way.

You only need AA in the final render, so you can disable SSAA during production.

If you hit hardware limits when doing SSAA (e.g. huge resolutions result in out of of GPU memory errors), render the movie 4 times, rendering 1/4th of the viewport on each pass; and then composite the 4 sections into one. (You'll have to do this manually or externally)

transparent/translucent materials - having many problems with things like glass and water, due to the need for transparency and specular reflections.

I'm afraid this is a short coming of most deferred renderers. I do not know UE4, checkout if they have a Forward+ interface.
Also hiring an experienced dev in UE4 to fix it / adapt it to your particular needs can help.
Translucent materials like glass are often rendered through hacks. Lots of hacks.

related to both of the above, rendering of hair/fur is terrible.

This is again something realtime engines suck at. A dev. for hire may be able to integrate TressFX. But if that's not enough, there are a few brute force algorithms for hair and fur. But they're not fast and hence not part of the usual game engine toolset.

motion blur and depth of field pretty low quality, although I think these have recently improved.

I don't know what your bar for "high quality" is, but this is usually easy to fix. Very high quality DoF postprocess effects aren't fast though.


On the render output side (i.e. Matinee):
no 16-bit or higher outputs.
no ability to render separate layers (e.g. foreground only, background only, effects only etc).

I'm not into UE4, but since it is being sold with source code access, I want to believe it is reasonable well coded, and a dev-for-hire should be able to add these features for you.

My question is: is it worth moving to another engine? Or would it be easier to extend Unreal?

You'll likely hit these problems in any game engine, perhaps except Cinebox which was specifically tailored for movie production.

Well ... http://www.v-ray.com/


If you hit hardware limits when doing SSAA (e.g. huge resolutions result in out of of GPU memory errors), render the movie 4 times, rendering 1/4th of the viewport on each pass; and then composite the 4 sections into one. (You'll have to do this manually or externally)

yeah, that's a good idea - Unreal removed tile rendering in UE4, but it should be easy to add back in. Thanks for the suggestion.


I'm afraid this is a short coming of most deferred renderers. I do not know UE4, checkout if they have a Forward+ interface.
Also hiring an experienced dev in UE4 to fix it / adapt it to your particular needs can help.
Translucent materials like glass are often rendered through hacks. Lots of hacks.

Well that's why I was curious about other engines. e.g. Source2 apparently being Forward+. What I'm not sure about, is how much benefit that's actually going to give me though...


Puggyboy, on 15 Jul 2015 - 11:06 AM, said:
related to both of the above, rendering of hair/fur is terrible.
This is again something realtime engines suck at. A dev. for hire may be able to integrate TressFX. But if that's not enough, there are a few brute force algorithms for hair and fur. But they're not fast and hence not part of the usual game engine toolset.

Yes, TressFX is on my radar. I've got a build of UE4 with nVidia HairWorks, which is obviously a work in progress as there are loads of artefacts, but yes, it would make sense to hire a dev!

I've mentally put VRay in the same category as Redshift/Octane/Fabric etc, i.e. fast raytracers/pathtracers, but not interactive in the sense that a game engine can be. These are definitely interesting options though :)

This topic is closed to new replies.

Advertisement