forked from bartvdbraak/blender
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:
parent
9c1ae55017
commit
dcc834f3fa
@ -181,7 +181,7 @@ def imageFromObjectsOrtho(objects, path, width, height, smooth, alpha= True, cam
|
||||
|
||||
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.saveRenderedImage(path)
|
||||
Render.CloseRenderWindow()
|
||||
|
@ -54,7 +54,7 @@ boolean attributes.
|
||||
- MBLUR: Motion blur enabled
|
||||
- UNIFIED: Unified Renderer 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
|
||||
@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.
|
||||
- SEQUENCER: Enables sequencer output rendering.
|
||||
- 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
|
||||
@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
|
||||
window), or 2 (display full screen).
|
||||
@type displayMode: int
|
||||
@ivar threads: Render in two threads enabled.
|
||||
Also see B{THREADS} in L{Modes} constant dict.
|
||||
@type threads: boolean
|
||||
@ivar threads: Number of threads to render, clamed [1-8]
|
||||
@type threads: int
|
||||
@ivar backbufPath: Path to a background image (setting loads image).
|
||||
@type backbufPath: string
|
||||
@ivar toonShading: Toon edge shading enabled.
|
||||
@ -229,18 +230,33 @@ class RenderData:
|
||||
@ivar gameFrameColor: RGB color triplet for bars.
|
||||
Values are clamped in the range [0.0,1.0].
|
||||
@type gameFrameColor: list of RGB 3 floats
|
||||
@ivar extensions: Add extensions to output (when rendering animations).
|
||||
Also see B{EXTENSION} in L{SceModes} constant dict.
|
||||
@type extensions: boolean
|
||||
@ivar saveBuffers: Save tiles for all renderlayers to disk saving memory.
|
||||
Also see B{SAVE_BUFFERS} in L{SceModes} constant dict.
|
||||
@type saveBuffers: boolean
|
||||
@ivar sizeY: Image height (in pixels).
|
||||
Values are clamped to the range [4,10000].
|
||||
@type sizeY: int
|
||||
@ivar renderer: Rendering engine choice.
|
||||
Valid values are 0 (internal) or 1 (Yafray).
|
||||
@type renderer: int
|
||||
|
||||
@ivar sequencer: Enables sequencer output rendering.
|
||||
Also see B{SEQUENCER} in L{SceModes} constant dict.
|
||||
@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.
|
||||
Also see B{PANORAMA} in L{Modes} constant dict.
|
||||
@type panorama: boolean
|
||||
|
@ -540,12 +540,6 @@ PyObject *RenderData_EnableBackbuf( BPy_RenderData * self, PyObject * args )
|
||||
&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 )
|
||||
{
|
||||
return M_Render_BitToggleShort( args, R_EXTENSION,
|
||||
@ -1968,6 +1962,28 @@ static int RenderData_setSet( BPy_RenderData *self, PyObject *value )
|
||||
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 */
|
||||
/***************************************************************************/
|
||||
@ -2032,24 +2048,47 @@ static PyGetSetDef BPy_RenderData_getseters[] = {
|
||||
(void *)R_RAYTRACE},
|
||||
/* R_GAUSS unused */
|
||||
/* R_FBUF unused */
|
||||
/* R_THREADS unused */
|
||||
{"threads",
|
||||
(getter)RenderData_getModeBit, (setter)RenderData_setModeBit,
|
||||
"Render in two threads enabled",
|
||||
(void *)R_THREADS},
|
||||
(getter)RenderData_getThreads, (setter)RenderData_setThreads,
|
||||
"Number of threads used to render",
|
||||
NULL},
|
||||
/* R_SPEED unused */
|
||||
{"mode",
|
||||
(getter)RenderData_getMode, (setter)RenderData_setMode,
|
||||
"Mode bitfield",
|
||||
NULL},
|
||||
|
||||
{"extensions",
|
||||
(getter)RenderData_getSceModeBits, (setter)RenderData_setSceModeBits,
|
||||
"Add extensions to output (when rendering animations) enabled",
|
||||
(void *)R_EXTENSION},
|
||||
/* scene modes */
|
||||
{"sequencer",
|
||||
(getter)RenderData_getSceModeBits, (setter)RenderData_setSceModeBits,
|
||||
"'Do Sequence' enabled",
|
||||
(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",
|
||||
(getter)RenderData_getSceMode, (setter)RenderData_setSceMode,
|
||||
"Scene mode bitfield",
|
||||
@ -2213,9 +2252,6 @@ static PyMethodDef BPy_RenderData_methods[] = {
|
||||
{"enableBackbuf", ( PyCFunction ) RenderData_EnableBackbuf,
|
||||
METH_VARARGS,
|
||||
"(bool) - enable/disable the backbuf image"},
|
||||
{"enableThreads", ( PyCFunction ) RenderData_EnableThreads,
|
||||
METH_VARARGS,
|
||||
"(bool) - enable/disable threaded rendering"},
|
||||
{"setFtypePath", ( PyCFunction ) RenderData_SetFtypePath, METH_VARARGS,
|
||||
"(string) - get/set the path to output the Ftype file"},
|
||||
{"getFtypePath", ( PyCFunction ) RenderData_getFtypePath, METH_NOARGS,
|
||||
|
Loading…
Reference in New Issue
Block a user