updated render settings to support recent changes.

options like saveBuffers are available from Python and threads can be set from 1 to 8
usefull for python based renderfarms.
This commit is contained in:
Campbell Barton 2007-01-30 03:02:58 +00:00
parent 9c1ae55017
commit dcc834f3fa
3 changed files with 76 additions and 24 deletions

@ -181,7 +181,7 @@ def imageFromObjectsOrtho(objects, path, width, height, smooth, alpha= True, cam
Blender.Window.RedrawAll() Blender.Window.RedrawAll()
render_context.threads= True # good for dual core cpu's render_context.threads= 2 # good for dual core cpu's
render_context.render() render_context.render()
render_context.saveRenderedImage(path) render_context.saveRenderedImage(path)
Render.CloseRenderWindow() Render.CloseRenderWindow()

@ -54,7 +54,7 @@ boolean attributes.
- MBLUR: Motion blur enabled - MBLUR: Motion blur enabled
- UNIFIED: Unified Renderer enabled - UNIFIED: Unified Renderer enabled
- RAYTRACING: Ray tracing enabled - RAYTRACING: Ray tracing enabled
- THREADS: Render in two threads enabled - THREADS: Render in two threads enabled (Deprecated, use L{RenderData.threads})
@type SceModes: readonly dictionary @type SceModes: readonly dictionary
@var SceModes: Constant dict used for with L{RenderData.sceneMode} bitfield attribute. @var SceModes: Constant dict used for with L{RenderData.sceneMode} bitfield attribute.
@ -62,6 +62,8 @@ Values can be ORed together. Individual bits can also be set/cleared with
boolean attributes. boolean attributes.
- SEQUENCER: Enables sequencer output rendering. - SEQUENCER: Enables sequencer output rendering.
- EXTENSION: Adds extensions to the output when rendering animations. - EXTENSION: Adds extensions to the output when rendering animations.
- SAVE_BUFFERS: Save render tiles to disk to save memory.
- FREE_IMAGES: Free images used by textures after each render.
@type FramingModes: readonly dictionary @type FramingModes: readonly dictionary
@var FramingModes: Constant dict used for with L{RenderData.gameFrame} @var FramingModes: Constant dict used for with L{RenderData.gameFrame}
@ -215,9 +217,8 @@ class RenderData:
Valid values are 0 (display in image editor view), 1 (display in render Valid values are 0 (display in image editor view), 1 (display in render
window), or 2 (display full screen). window), or 2 (display full screen).
@type displayMode: int @type displayMode: int
@ivar threads: Render in two threads enabled. @ivar threads: Number of threads to render, clamed [1-8]
Also see B{THREADS} in L{Modes} constant dict. @type threads: int
@type threads: boolean
@ivar backbufPath: Path to a background image (setting loads image). @ivar backbufPath: Path to a background image (setting loads image).
@type backbufPath: string @type backbufPath: string
@ivar toonShading: Toon edge shading enabled. @ivar toonShading: Toon edge shading enabled.
@ -229,18 +230,33 @@ class RenderData:
@ivar gameFrameColor: RGB color triplet for bars. @ivar gameFrameColor: RGB color triplet for bars.
Values are clamped in the range [0.0,1.0]. Values are clamped in the range [0.0,1.0].
@type gameFrameColor: list of RGB 3 floats @type gameFrameColor: list of RGB 3 floats
@ivar extensions: Add extensions to output (when rendering animations). @ivar saveBuffers: Save tiles for all renderlayers to disk saving memory.
Also see B{EXTENSION} in L{SceModes} constant dict. Also see B{SAVE_BUFFERS} in L{SceModes} constant dict.
@type extensions: boolean @type saveBuffers: boolean
@ivar sizeY: Image height (in pixels). @ivar sizeY: Image height (in pixels).
Values are clamped to the range [4,10000]. Values are clamped to the range [4,10000].
@type sizeY: int @type sizeY: int
@ivar renderer: Rendering engine choice. @ivar renderer: Rendering engine choice.
Valid values are 0 (internal) or 1 (Yafray). Valid values are 0 (internal) or 1 (Yafray).
@type renderer: int @type renderer: int
@ivar sequencer: Enables sequencer output rendering. @ivar sequencer: Enables sequencer output rendering.
Also see B{SEQUENCER} in L{SceModes} constant dict. Also see B{SEQUENCER} in L{SceModes} constant dict.
@type sequencer: boolean @type sequencer: boolean
@ivar extensions: Add extensions to output (when rendering animations).
Also see B{EXTENSION} in L{SceModes} constant dict.
@type extensions: boolean
@ivar compositor: 'Do Compositor' enabled.
@type compositor: boolean
@ivar freeImages: 'Do Compositor' enabled.
@type freeImages: boolean
@ivar singleLayer: Only render the active layer.
@type singleLayer: boolean
@ivar saveBuffers: Save render buffers to disk while rendering, saves memory.
@type saveBuffers: boolean
@ivar compositeFree: Free nodes that are not used while composite.
@type compositeFree: boolean
@ivar panorama: Panorama rendering enabled. @ivar panorama: Panorama rendering enabled.
Also see B{PANORAMA} in L{Modes} constant dict. Also see B{PANORAMA} in L{Modes} constant dict.
@type panorama: boolean @type panorama: boolean

@ -540,12 +540,6 @@ PyObject *RenderData_EnableBackbuf( BPy_RenderData * self, PyObject * args )
&self->renderContext->bufflag ); &self->renderContext->bufflag );
} }
PyObject *RenderData_EnableThreads( BPy_RenderData * self, PyObject * args )
{
return M_Render_BitToggleInt( args, R_THREADS,
&self->renderContext->mode );
}
PyObject *RenderData_EnableExtensions( BPy_RenderData * self, PyObject * args ) PyObject *RenderData_EnableExtensions( BPy_RenderData * self, PyObject * args )
{ {
return M_Render_BitToggleShort( args, R_EXTENSION, return M_Render_BitToggleShort( args, R_EXTENSION,
@ -1968,6 +1962,28 @@ static int RenderData_setSet( BPy_RenderData *self, PyObject *value )
return 0; return 0;
} }
PyObject *RenderData_getThreads( BPy_RenderData * self )
{
return PyInt_FromLong( (long) self->renderContext->threads );
}
static int RenderData_setThreads( BPy_RenderData *self, PyObject *value )
{
int threads;
if( !PyInt_CheckExact( value ) )
return EXPP_ReturnIntError( PyExc_TypeError, "Error, threads must be an int" );
threads = PyInt_AsLong( value );
if (threads<1) threads = 1;
else if (threads>8) threads = 8;
self->renderContext->threads = (short)threads;
EXPP_allqueue( REDRAWBUTSSCENE, 0 );
return 0;
}
/***************************************************************************/ /***************************************************************************/
/* BPy_RenderData attribute def */ /* BPy_RenderData attribute def */
/***************************************************************************/ /***************************************************************************/
@ -2032,24 +2048,47 @@ static PyGetSetDef BPy_RenderData_getseters[] = {
(void *)R_RAYTRACE}, (void *)R_RAYTRACE},
/* R_GAUSS unused */ /* R_GAUSS unused */
/* R_FBUF unused */ /* R_FBUF unused */
/* R_THREADS unused */
{"threads", {"threads",
(getter)RenderData_getModeBit, (setter)RenderData_setModeBit, (getter)RenderData_getThreads, (setter)RenderData_setThreads,
"Render in two threads enabled", "Number of threads used to render",
(void *)R_THREADS}, NULL},
/* R_SPEED unused */ /* R_SPEED unused */
{"mode", {"mode",
(getter)RenderData_getMode, (setter)RenderData_setMode, (getter)RenderData_getMode, (setter)RenderData_setMode,
"Mode bitfield", "Mode bitfield",
NULL}, NULL},
{"extensions", /* scene modes */
(getter)RenderData_getSceModeBits, (setter)RenderData_setSceModeBits,
"Add extensions to output (when rendering animations) enabled",
(void *)R_EXTENSION},
{"sequencer", {"sequencer",
(getter)RenderData_getSceModeBits, (setter)RenderData_setSceModeBits, (getter)RenderData_getSceModeBits, (setter)RenderData_setSceModeBits,
"'Do Sequence' enabled", "'Do Sequence' enabled",
(void *)R_DOSEQ}, (void *)R_DOSEQ},
{"extensions",
(getter)RenderData_getSceModeBits, (setter)RenderData_setSceModeBits,
"Add extensions to output (when rendering animations) enabled",
(void *)R_EXTENSION},
{"compositor",
(getter)RenderData_getSceModeBits, (setter)RenderData_setSceModeBits,
"'Do Compositor' enabled.",
(void *)R_DOCOMP},
{"freeImages",
(getter)RenderData_getSceModeBits, (setter)RenderData_setSceModeBits,
"Free texture images after render.",
(void *)R_FREE_IMAGE},
{"singleLayer",
(getter)RenderData_getSceModeBits, (setter)RenderData_setSceModeBits,
"Only render the active layer.",
(void *)R_SINGLE_LAYER},
{"saveBuffers",
(getter)RenderData_getSceModeBits, (setter)RenderData_setSceModeBits,
"Save render buffers to disk while rendering, saves memory.",
(void *)R_EXR_TILE_FILE},
{"compositeFree",
(getter)RenderData_getSceModeBits, (setter)RenderData_setSceModeBits,
"Free nodes that are not used while composite.",
(void *)R_COMP_FREE},
{"sceneMode", {"sceneMode",
(getter)RenderData_getSceMode, (setter)RenderData_setSceMode, (getter)RenderData_getSceMode, (setter)RenderData_setSceMode,
"Scene mode bitfield", "Scene mode bitfield",
@ -2213,9 +2252,6 @@ static PyMethodDef BPy_RenderData_methods[] = {
{"enableBackbuf", ( PyCFunction ) RenderData_EnableBackbuf, {"enableBackbuf", ( PyCFunction ) RenderData_EnableBackbuf,
METH_VARARGS, METH_VARARGS,
"(bool) - enable/disable the backbuf image"}, "(bool) - enable/disable the backbuf image"},
{"enableThreads", ( PyCFunction ) RenderData_EnableThreads,
METH_VARARGS,
"(bool) - enable/disable threaded rendering"},
{"setFtypePath", ( PyCFunction ) RenderData_SetFtypePath, METH_VARARGS, {"setFtypePath", ( PyCFunction ) RenderData_SetFtypePath, METH_VARARGS,
"(string) - get/set the path to output the Ftype file"}, "(string) - get/set the path to output the Ftype file"},
{"getFtypePath", ( PyCFunction ) RenderData_getFtypePath, METH_NOARGS, {"getFtypePath", ( PyCFunction ) RenderData_getFtypePath, METH_NOARGS,