Our company license account is [email protected]. We are trying to adjust the Out-of-Core (OOC) memory parameters in Octane Settings via Python, so that we can configure these values before command-line rendering on our render farm. This is important for preventing VRAM-related render failures.
We are able to retrieve the parameter IDs and modify their values through Python, but the changes do not take effect in the UI, nor do they appear to be applied internally. In contrast, other parameters such as those under Settings/Paths or Log Output can be modified successfully.
Below is a minimal test script. As shown in the screenshot, the values can be read and set, but do not apply:
import c4d OCTANE_LIVEPLUGIN_ID = 1029499 # Octane Live plugin ID OCTANE_RENDERER_ID = 1031195 # Octane renderer ID def main(): data = c4d.plugins.GetWorldPluginData(OCTANE_RENDERER_ID) Ocversion = data[5001] print(f"version: {Ocversion}") world_bc = c4d.plugins.GetWorldPluginData(OCTANE_LIVEPLUGIN_ID) for cid, value in world_bc: if cid == 52: print(f"outOfCoreRamLimit: {value}") world_bc.SetFloat(52, 12.0) if cid == 53: print(f"outOfCoreGpuHeadroom: {value}") world_bc.SetFloat(53, 2048.0) c4d.EventAdd() c4d.CallCommand(OCTANE_RENDERER_ID) if __name__ == '__main__': main()
Currently, our workaround is to manually copy and replace the Octane preference files before rendering. However, we would like to adjust the OOC settings dynamically during pipeline execution.
Could you please advise:
Whether OOC parameters can be modified programmatically in C4D.
If so, what is the correct API or method to apply and persist these values.
Whether these settings are intentionally restricted or only modifiable through preference files.
Any guidance or workaround would be greatly appreciated, as this impacts our automated rendering workflow.
Thank you.