Hi there,
I am trying to render the same scene using multiple cameras (multiple view angles, etc.) via 3dsmaxbatch.exe WITHOUT 3ds max restart (I cannot afford that).
I am using pymxs for that and I’m getting OOM errors as my RAM is being eaten alive!
outp_file = os.path.join(frames_dir, "render.png")
bitmap = rt.render(
frameRange=rt.Interval(start_frame, end_frame),
outputFile=outp_file,
# progressbar=False,
vfb=False
)
How can I free used memory before each render?
This is what I already tried (DOES NOT WORK):
# try GC twice in case either python or maxscript version works, DOES NOT WORK
rt.execute('gc()')
rt.gc()
# saw these in docs, DOES NOT WORK
rt.execute('freescenebitmaps()')
rt.execute('clearUndoBuffer()')
# figured it might help to release "occupied memory" as owner i.e. the plugin will be reloaded hence resource released? DOES NOT WORK
rt.execute('LoadDllsFromDir ((getDir #maxroot) +"applicationplugins\\vray3dsmax2025\\plugins") "*.dll"')
# HACK: Set different renderer to free memory, really stupid but in case it works? DOES NOT WORK
all_renderers = rt.rendererClass.classes
vray_gpu_renderer_class = [renderer for renderer in all_renderers if "V_Ray_GPU" not in str(renderer)][0]
renderer = vray_gpu_renderer_class()
rt.renderers.current = renderer
rt.execute('freescenebitmaps()')
How can I fix RAM issue please?
P.S. I am using recommended GPU drivers (The current Recommended Windows Driver is a 566.14 Studio driver for GeForce cards)
Petr