Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Poirier <theeth@yahoo.com>2011-12-20 00:36:52 +0400
committerMartin Poirier <theeth@yahoo.com>2011-12-20 00:36:52 +0400
commit252dff515fa4b045ac94655cdee0450627caf4f8 (patch)
tree15545d30f84bf42982ac2c865ad349873eec885e /netrender
parentdbe3331a31fa8391e70f79f6bf4743b8f669bf88 (diff)
[#29564] Patch to enable choice between BLENDER_RENDER and CYCLES
[#29648] patch for netrender: correctly send smoke cache domain Both by Philippe Van Hecke Render engine support was expended to be able to specify non-builtin engines.
Diffstat (limited to 'netrender')
-rw-r--r--netrender/__init__.py2
-rw-r--r--netrender/client.py9
-rw-r--r--netrender/master.py2
-rw-r--r--netrender/model.py7
-rw-r--r--netrender/slave.py3
-rw-r--r--netrender/ui.py34
6 files changed, 38 insertions, 19 deletions
diff --git a/netrender/__init__.py b/netrender/__init__.py
index 5ae4b774..3e7c6e7a 100644
--- a/netrender/__init__.py
+++ b/netrender/__init__.py
@@ -21,7 +21,7 @@
bl_info = {
"name": "Network Renderer",
"author": "Martin Poirier",
- "version": (1, 3),
+ "version": (1, 4),
"blender": (2, 5, 6),
"api": 35011,
"location": "Render > Engine > Network Render",
diff --git a/netrender/client.py b/netrender/client.py
index b992f37d..7b43b0fc 100644
--- a/netrender/client.py
+++ b/netrender/client.py
@@ -101,7 +101,12 @@ def fillCommonJobSettings(job, job_name, netsettings):
job.chunks = netsettings.chunks
job.priority = netsettings.priority
-
+
+ if netsettings.job_render_engine == "OTHER":
+ job.render = netsettings.job_render_engine_other
+ else:
+ job.render = netsettings.job_render_engine
+
if netsettings.job_type == "JOB_BLENDER":
job.type = netrender.model.JOB_BLENDER
elif netsettings.job_type == "JOB_PROCESS":
@@ -225,7 +230,7 @@ def clientSendJobBlender(conn, scene, anim = False):
addPointCache(job, object, modifier.point_cache, default_path)
elif modifier.type == "SOFT_BODY":
addPointCache(job, object, modifier.point_cache, default_path)
- elif modifier.type == "SMOKE" and modifier.smoke_type == "TYPE_DOMAIN":
+ elif modifier.type == "SMOKE" and modifier.smoke_type == "DOMAIN":
addPointCache(job, object, modifier.domain_settings.point_cache, default_path)
elif modifier.type == "MULTIRES" and modifier.is_external:
file_path = bpy.path.abspath(modifier.filepath)
diff --git a/netrender/master.py b/netrender/master.py
index c2f46c17..b2a58b3f 100644
--- a/netrender/master.py
+++ b/netrender/master.py
@@ -434,7 +434,6 @@ class RenderHandler(http.server.BaseHTTPRequestHandler):
self.send_head(headers={"job-id": job.id})
message = job.serialize(frames)
-
self.wfile.write(bytes(json.dumps(message), encoding='utf8'))
self.server.stats("", "Sending job to slave")
@@ -512,7 +511,6 @@ class RenderHandler(http.server.BaseHTTPRequestHandler):
length = int(self.headers['content-length'])
job_info = netrender.model.RenderJob.materialize(json.loads(str(self.rfile.read(length), encoding='utf8')))
-
job_id = self.server.nextJobID()
job = MRenderJob(job_id, job_info)
diff --git a/netrender/model.py b/netrender/model.py
index cab619f2..5fbf46ce 100644
--- a/netrender/model.py
+++ b/netrender/model.py
@@ -193,7 +193,7 @@ class RenderJob:
self.chunks = 0
self.priority = 0
self.blacklist = []
-
+ self.render = "BLENDER_RENDER"
self.version_info = None
self.resolution = None
@@ -212,6 +212,7 @@ class RenderJob:
self.priority = job_info.priority
self.blacklist = job_info.blacklist
self.version_info = job_info.version_info
+ self.render = job_info.render
def hasRenderResult(self):
return self.type in (JOB_BLENDER, JOB_VCS)
@@ -292,7 +293,8 @@ class RenderJob:
"blacklist": self.blacklist,
"last_dispatched": self.last_dispatched,
"version_info": self.version_info.serialize() if self.version_info else None,
- "resolution": self.resolution
+ "resolution": self.resolution,
+ "render": self.render
}
@staticmethod
@@ -314,6 +316,7 @@ class RenderJob:
job.blacklist = data["blacklist"]
job.last_dispatched = data["last_dispatched"]
job.resolution = data["resolution"]
+ job.render=data["render"]
version_info = data.get("version_info", None)
if version_info:
diff --git a/netrender/slave.py b/netrender/slave.py
index f31bddee..c7f3a8cb 100644
--- a/netrender/slave.py
+++ b/netrender/slave.py
@@ -238,7 +238,7 @@ def render_slave(engine, netsettings, threads):
frame_args += ["-f", str(frame.number)]
val = SetErrorMode()
- process = subprocess.Popen([BLENDER_PATH, "-b", "-noaudio", job_full_path, "-t", str(threads), "-o", os.path.join(JOB_PREFIX, "######"), "-E", "BLENDER_RENDER", "-F", "MULTILAYER"] + frame_args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
+ process = subprocess.Popen([BLENDER_PATH, "-b", "-noaudio", job_full_path, "-t", str(threads), "-o", os.path.join(JOB_PREFIX, "######"), "-E", job.render, "-F", "MULTILAYER"] + frame_args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
RestoreErrorMode(val)
elif job.type == netrender.model.JOB_PROCESS:
command = job.frames[0].command
@@ -272,6 +272,7 @@ def render_slave(engine, netsettings, threads):
run_t = current_t
if testCancel(conn, job.id, first_frame):
+ engine.update_stats("", "Job canceled by Master")
cancelled = True
if job.type == netrender.model.JOB_BLENDER:
diff --git a/netrender/ui.py b/netrender/ui.py
index 068d77b3..d36e96dc 100644
--- a/netrender/ui.py
+++ b/netrender/ui.py
@@ -211,17 +211,13 @@ class RENDER_PT_network_job(NetRenderButtonsPanel, bpy.types.Panel):
row.operator("render.render", text="Get Image", icon='RENDER_STILL')
row.operator("render.render", text="Get Animation", icon='RENDER_ANIMATION').animation = True
- split = layout.split(percentage=0.3)
-
- col = split.column()
- col.label(text="Type:")
- col.label(text="Name:")
- col.label(text="Category:")
-
- col = split.column()
- col.prop(netsettings, "job_type", text="")
- col.prop(netsettings, "job_name", text="")
- col.prop(netsettings, "job_category", text="")
+ layout.prop(netsettings, "job_type", text="Type")
+ layout.prop(netsettings, "job_name", text="Name")
+ layout.prop(netsettings, "job_category", text="Category")
+ layout.prop(netsettings, "job_render_engine", text="Engine")
+
+ if netsettings.job_render_engine == "OTHER":
+ layout.prop(netsettings, "job_render_engine_other", text="Other Engine")
row = layout.row()
row.prop(netsettings, "priority")
@@ -462,6 +458,22 @@ class NetRenderSettings(bpy.types.PropertyGroup):
description="Category of the job",
maxlen = 128,
default = "")
+
+ NetRenderSettings.job_render_engine = EnumProperty(
+ items = (
+ ("BLENDER_RENDER", "BLENDER", "Standard Blender Render"),
+ ("CYCLES", "CYCLES", "Cycle Render"),
+ ("OTHER", "OTHER", "Other non-default Render"),
+ ),
+ name="render",
+ description="Render engine used to render this job",
+ default="BLENDER_RENDER")
+
+ NetRenderSettings.job_render_engine_other = StringProperty(
+ name="Render engine",
+ description="Render engine other than the builtin defaults (POVRAY_RENDER, ...)",
+ maxlen = 128,
+ default = "")
NetRenderSettings.chunks = IntProperty(
name="Chunks",