Having completed my test run fake trailer, I have lined up stuff to move on to a more demanding next projekt. I expect to need the systems upgrade I planned before the whole apokalypse thing. The goal was to utilize EEVEE to wildly accelerate rendering, but doing research, I now have doubts. I hope someone might help with that.
EEVEE is touted as ‘real-time’, but I keep seeing videos about seconds to render this and minutes to render that. When is it real-time, and when not, how do render times compare to Blender Internal from 2.79 and before, with reasonably similar complex tenders? I know this is a broad question, but I do not expect simple answers, either.
For example, bringing in a scene from a 2.79 project, how much faster might one expect it to render in 3.1 EEVEE?
Hello ! The the viewport is realtime however the rendering is not, but ofc depending on the complexity of your scene it should be very fast but it wont be realtime
Basically, between Cycles and EEVEE you simply have: two entirely-different approaches to rendering. (In particular, the two use “the GPU” in entirely (!!) different ways.) Because of these fundamental differences, EEVEE is generally [much …] faster at doing most things. But, the outcomes are not the same – nor are they intended to be. “The best way forward” depends 150% on your (!) project.
No matter what you do, you will encounter: “render time.” The amount of time will depend very much on exactly how you set-up the problem that you intend for the computer to solve, and the algorithms that it then uses to solve it.
Eevee when doing final rendering, renders the same frame multiple times (samples), when you play stuff realtime in viewport it renders only 1 sample. You generally need at least few samples for anti aliasing to work good enough and even more for effects like soft shadows and other jittering, stochastic and dithering based effects to look okay. How fast that is, is very scene dependant. Personally for me, on a GTX 1060, fast stuff can take few seconds per frame and slower things take 30 - 45 seconds per frame (can go up to minutes - but for animation I usually just take extra time to optimize the scene, if possible, at that point). Can’t compare with blender internal unfortunately, but rendering out animations with good quality takes time.
Why is rendering not realtime? What would I lose if it was? I can technically just run screen recording software while leaving the viewport animation to play, right…?
For the F12 render there’s additional overhead, so no. The Viewport Render Animation is usually faster. But both don’t render out a file in realtime. Even playing things in viewport usually doesn’t reach 24 fps. So, it’s not fully realtime there either, if “realtime” is target framerate. In addition effects don’t work as intended with 1 sample.
Most realtime renderers combine previous rendered frames with the current one for the same effect, but that leaves temporal artifacts on any movement. Unreal’s film export comes with additional sampling options that function same as in Eevee, but that very quickly also increases render time.
Just to be clear – EEVEE ≠ video game engine. Even there, a game engine has to do a lot of pre-baking and other trickery to work in real-time, taking all sorts of shortcuts that would be completely unacceptable for actual production work.
You’re not specifying anything about your hardware, and that plays a huge part in how fast EEVEE actually does what it needs to do. Are you on a 3090? Or are you on a 1060 or less? The amount of RAM on the GPU also plays a huge role.
Do you have volumetrics? What is the resolution of your textures? What is the resolution of your image? Are you using instancing? Is there motion blur? Is there DoF blur? Are you using soft shadows? Are you using Normals? Are you Displacing or Subdividing your mesh?
Are you can see there are a huge number of factors at play that determine the speed of EEVEE – but the most important takeaway from this is what I stated at the top which is that EEVEE ≠ game engine.
@embassy, “getting the results you seek” with any computer software is always a tradeoff. You have to choose a rendering strategy, then set up the problem in a way that the chosen strategy can deal with, then work back-and-forth to find whatever is for you and for your current project, the best available compromise between speed and results. A set-up for EEVEE won’t be right for Cycles and vice-versa.
EEVEE uses the computer’s accelerated graphics processors in more-or-less the ways that their designers intended, while Cycles uses the same hardware more-or-less as a matrix arithmetic engine. Their fundamental approaches to “the same problem” are entirely different. And so, this is the first decision that your project is going to have to make. (And this isn’t even considering the option of using external renderers!)
As for me – EEVEE gives me the speed that I need, and my hardware doesn’t run Cycles well. So, I adapt my project plans and my thinking to “the EEVEE way,” and thus I get the work done. (And yes, I still miss “Blender Internal!”)
It’s just to get some general idea of what I am dealing with, and how much investing in an EEVEE pipeline would be worth to me overall. It’s not a for one or two specific art pieces. Sorry.
If performance is that important, why even consider a desktop?
Send it to a render farm. I would bet you are not in a position to make a desktop with 8x48GB GPUs.
I just rendered a poster at 14400x9600 using cycles, in a scene with ca.6million polys and volumetric smoke. It took 33 minutes on a Basic plan, and cost me $1.23. How many frames would I need to render to equate to the cost of a desktop with 2x 11GB GPUs? And electricity on a lesser machine? Etc.
Because I like to consider al my options, basically. Renderfarms have been put on the table, but they have some other issues, and with bulk work, the price might or might not be a problem. I can only say once I have a much, much better grasp of ever option. Who knows, maybe in the end, building a desktop with dozens of cards might be the best solution. I don’t like the idea or think it would be, but at this point, what do I know?
Yes, I now use render farms for pretty much everything. Well, anything bigger than “web images” (>1920x1920 usually).
I recently received a work laptop with an RTX3000 in it, so I do now try small renders “in-house”. Obviously, a powerful machine helps - but there’s likely a good middle ground where the money you spend on a desktop is going to be inefficient compared to render farms.
Obviously, one downside is that tiny iterative changes are not efficient - it takes time to upload the file to a render farm, even if the render itself only takes 30 seconds. I suppose if everything you do is going to have huge volumetrics in them, then there’s no escaping the need for a powerful house machine, even just to preview the scene.
But overall I find render farms quite cost-effective compared to energy costs, plus I can use my machine for something else.
There is no specific investment in an EEVEE pipeline which IMHO is one of its biggest advantages. The very exact same shaders that work in EEVEE also work in Cycles. Hardware-wise – whatever is good for EEVEE is good for Cycles.
Development wise, much of the same shading tricks and techniques that you are applying to EEVEE apply to just about any render engine out there.
Based on what I’ve seen of your work, EEVEE seems like a great choice for you. It doesn’t seem like you’re pushing hundreds of millions of polys, nor that you’re doing displacement, or that you’re using incredibly intricate shading networks. I think back in your trailer thread, I might have even mentioned to you about using EEVEE for your work.
I think I posted this before, but this was rendered all in EEVEE and in some ways I think it can create even more realistic results than Cycles: https://vimeo.com/466375815
I think it was somewhere in the 10-30 seconds per frame, but closer to 10 for the most part. It’s pretty remarkable that I could literally take a lunch break, and come back to a full shot rendered.
By comparison, on my family monster machine using 3Delight render in Houdini I am rendering out a fairly lengthy shot at around 15 minutes per frame. It’s taken about 8 overnights to get the whole thing done!
I should also mention that typically studios render even slower as they have much more stringent quality than I do. I read that on the LEGO movie, it was over 10 hours per frame!