I wonder if someone can help me to unsderstand what is wrong about my file that it is impossible to render.
It says all the time out of GPU memory.
My computer specs are:
1.81TB (247GB available atm)
RAM: 32GB
Graphic card: NVIDIA GeForce RTX3090
Processor :AMD Ryzen 7 3700X 8-Core, 3593 Mhz, 8 main processors, 16 logic processors
I can send the file to someone else, please help me.
I’ll take a look at it, but it’s probably what it says on the tin. Your system just doesn’t have enough GPU to render. Do you have particle systems in it?
See how much memory your scene is consuming, if it is more than what you have available. One way to render is to switch from GPU to CPU (it’s slower).
This is game engine section…
Oh sorry! I got it wrong!
In theory a mod will move it to tech support.
That aside, a screen shot of the scene with overall stats, etc may help, but given you have a 3090 which has 24GB VRAM, it is either a very big scene or it uses a number of 8K textures, etc.
yeah it can help to show us what kind of scene you are dealing with.
The most common case for out of memory situations are too many image textures and too many geometry…
Image textures is in fact more about their resolutions rather than the actual number of textures in your file.
Basically when doing a 3D scene, and especially with a complex scene you have to make sure everything fits in the memory.
Yeah GPU rendering is amazing for it’s speed and all but VRAM is simply a bottleneck. Even thou you own card with 24GB VRAM and everybody is like WOW that so much. In reality it is actually not much at all. Especially when you wanna work in archviz field where Corona/Vray renderers are kings and everybody is using 12-64 core CPUs and 128/256 GB RAM. You can buy 4X 3090 and NVLINK them but good luck to fund these.
Blender/cycles is supposed to have OUT of CORE rendering (going for system RAM when VRAM is not enough) but that doesn’T seem to work all that well (been reading about this for years but still clunky if working at all)
So either render via CPU(which in your case is a bummer :/) or consider switching to OCTANE renderer (that has working OUT of CORE)
You might find more detailed info here : GPU Memory Management for beginners - #17 by dakta
That can be a good starting point !
problem mostly caused by Adaptive Subdivision especially if object is near camera because Adaptive Subdivision work by allowing nearer objects to get more subdivisions and far objects to get less. use bigger Dicing Scale number for less detail.
or you can switch to CUDA if you are on optic. cuda is more stable in dense scenes.
I got this message also on a super simple scene, blend file is about 400mb. I knew it was a oacked blend file and tried something. I unpacked the scene and then it rendered just fine. I was googleing the issue and bumped into this section.
It was an old splash screen, the 2.81 blend scene “The Junk Shop”. I noticed it also had Adaptive Subdive on very all objects. Made this super simple script to uncheck all objects.
Perhaps it can help others
import bpy
for ob in bpy.data.objects:
for mod in ob.modifiers:
if mod.name == 'Subsurf':
if ob.cycles.use_adaptive_subdivision:
ob.cycles.use_adaptive_subdivision = False
Adaptive subdivision doesn’t have to be that heavy and it can even help performance compared with basic subdivision if you know it well. There are just a few things to understand about it to optimize its performance.
-
First, make sure you don’t also have basic subdivision levels. There is this problem / UI oversight where both the regular and adaptive subdivisions are used at the same time. Switch the modifier back to regular mode, set the “render” levels to 0, then put it back in adaptive mode. When both subdiv types are superposed, you lose the memory savings that adaptive is supposed to give, as it just gets uselessly layered on top instead.
-
Check the dicing scale (both on the modifier and in the render settings). If an object is using adaptive subdiv with detailed displacement, the default of 1 should be as small as you ever need. If the object is just using adaptive subdiv as a way to smoothly subdivide the object (no displacement), then 3 or 4 should be enough and will consume less memory. If you have 0.5 or finer, that’s just going to consume loads of memory for no visual gain.
-
The dicing scale number is a width in pixels and depends on the render’s resolution. If you render at a huge resolution, adaptive subdiv will increase in quality (and memory consumption) to match. If your render resolution is huge, you should probably increase the global dicing scale to compensate.
My issue was due to the scene being packed. I still need to ask this on devTalk, thanks for reminding me.
When I unpacked the scene. It rendered just fine. Perhaps because it was packed, it does something to the memory. That just a guess of course
I have been working a lot with packed scenes, I’m curious about it now.