5
$\begingroup$

The un-rendered image, from afarEssentially, my problem is that i am trying to render a scene, however, blender crashes on me early during the render. I only have about 14 total objects in the scene. (It's not that complex) I tried to render a different blender file which was bigger than the one that i am having problems with, and the scene renders just fine. There is no difference in the render presets for both of these files. However, i still cannot render the other scene. It gets to preparing scene data, but then it crashes.

Thank you. The pre-rendered version of it, not the fully rendered version

$\endgroup$
  • 2
    $\begingroup$ Can you post your blend file? $\endgroup$ – Denis Apr 8 '15 at 3:11
  • $\begingroup$ How do i import a .blend file. $\endgroup$ – Krillinslosingstreak Apr 8 '15 at 16:35
  • 1
    $\begingroup$ use blend-exchange.giantcowfilms.com $\endgroup$ – cegaton Apr 8 '15 at 16:38
  • 1
    $\begingroup$ @ZacharyGaiski You only really need one in most cases, as you can increase/decrease the levels to any number you could want within reason on a single modifier. I think using one large modifier should be more memory efficient than using a bunch of small ones, but I'm not sure. How much memory do you have? $\endgroup$ – gandalf3 Apr 8 '15 at 17:09
  • 1
    $\begingroup$ @ZacharyGaiski why did you upload 3 copies??? do you need all of them to be there or can I remove the old ones? $\endgroup$ – GiantCowFilms Apr 8 '15 at 22:45
6
$\begingroup$

Short Answer

You are exaggerating with the subdivision.

Using large values on for subsurf or adding mutliple instances of the modifier will stress your system in no time.

It is better to use proper modeling and efficient topology, and keep the subdivision to low values. Less than 3 levels of subdivision should be enough for most projects.

Long answer

In this case you are using multiple subsurf modifiers on some of the objects.

Doing that is not only going to cripple the performance of your computer but can even make it crash.

enter image description here

What exaclty is the is the issue with subsurf then?

From the blender manual:

Subdivision Surface is a method of subdividing the faces of a mesh to give a smooth appearance, to enable modeling of complex smooth surfaces with simple, low-vertex meshes. This allows high resolution mesh modeling without the need to save and maintain huge amounts of data and gives a smooth organic look to the object.

This process creates virtual geometry that is generated non-destructively without modifying the original mesh

Creating virtual subdivisions on your geometry saves you the trouble of creating smooth curved surfaces, but when you do the final render blender has to compute all of that "virtual" geometry as if it was real anyway.

With each one of the modifiers on the stack your geometry is getting subdivided: out of every quad at least 4 virtual quads will be created. A second (or third) subsurf modifier will subdivide it even further, creating a very large number of vertices in no time!

So what can you do to prevent this?

For most models it is likely you can get decent results with proper modeling and adequate topology, and using only one subsurf modifier with low values.

If the edges on your model are not round enough, consider reworking your mesh to have a greater level of detail, or cautiously increase the number of subdivisions in a single modifier. You should hardly ever need more than level 2 or 3:

enter image description here

What is important to keep in mind is that for every subdivision level the number of polygons increases exponentially: It's very easy to end up with a number of vertices that exceeds what your computer can handle.

(Again from the manual)

Great levels of Subsurf demand more video memory, and a faster graphics card. Blender could potentially crash if your level of Subsurf surpasses your system memory.

Note about potential crashes: Be aware that the Subsurf Modifier will need more and more memory at higher levels of subsurf, and the more dense your base mesh, the more memory you will need. In 32 bit systems, Blender could potentially crash with malloc errors, when you surpass 2~3 GiB of memory used. This is not a Blender bug. Blender, when paired with a 64 bit system, could use 64 GiB of memory, thus reducing the chances of malloc() errors.

To get an idea of how many vertices are created with every subdivision level take a look at this charts:

glkj garg

(click on the images to enlarge)

But what if I still need high levels or more than one Subsurf modifer in the stack?

Sometimes you do need to use a subsurf modifier to create denser geometry for other modifiers to work, and then you need to have a second subsurf modifier to smooth out the result. For example when using a displace modifier:

enter image description here

In those cases you might want to consider applying the modifiers and/or decimating or retopologizing your mesh, all in the interest of having a number of vertices that is reasonable enough, so that your system can handle it.

$\endgroup$
  • $\begingroup$ In case of GPU rendering: what would help, hardware wise, to handle his sort of calculations better? $\endgroup$ – jspr Sep 22 '18 at 9:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.