Distributed rendering of single images #104327

Merged
David Zhang merged 22 commits from David-Zhang-10/flamenco:single-image-render into main 2024-09-03 06:47:49 +02:00
5 changed files with 48 additions and 0 deletions
Showing only changes of commit 0ddaff10c1 - Show all commits

View File

@ -156,6 +156,12 @@ def register() -> None:
max=100,
)
bpy.types.Scene.flamenco_job_submit_as_paused = bpy.props.BoolProperty(
name="Flamenco Job Submit as Paused",
description="Whether the job is paused initially; Checked sets the job to `paused`, and Unchecked sets the job to `queued`",
default=False,
)
preferences.register()
worker_tags.register()
operators.register()

View File

@ -42,6 +42,7 @@ class FLAMENCO_PT_job_submission(bpy.types.Panel):
col = layout.column(align=True)
col.prop(context.scene, "flamenco_job_name", text="Job Name")
col.prop(context.scene, "flamenco_job_priority", text="Priority")
col.prop(context.scene, "flamenco_job_submit_as_paused", text="Submit as Paused")
# Refreshables:
col = layout.column(align=True)

View File

@ -33,6 +33,7 @@ log = logging.getLogger(__name__)
def job_for_scene(scene: bpy.types.Scene) -> Optional[_SubmittedJob]:
from flamenco.manager.models import SubmittedJob, JobMetadata
from flamenco.manager.model.job_status import JobStatus
propgroup = getattr(scene, "flamenco_job_settings", None)
assert isinstance(propgroup, JobTypePropertyGroup), "did not expect %s" % (
@ -44,6 +45,12 @@ def job_for_scene(scene: bpy.types.Scene) -> Optional[_SubmittedJob]:
priority = getattr(scene, "flamenco_job_priority", 50)
submit_as_paused = getattr(scene, "flamenco_job_submit_as_paused", False)
if submit_as_paused:
initial_status = JobStatus("paused")
else:
initial_status = JobStatus("queued")
job: SubmittedJob = SubmittedJob(
name=scene.flamenco_job_name,
type=propgroup.job_type.name,
@ -52,6 +59,7 @@ def job_for_scene(scene: bpy.types.Scene) -> Optional[_SubmittedJob]:
metadata=metadata,
submitter_platform=platform.system().lower(),
type_etag=propgroup.job_type.etag,
initial_status=initial_status,
)
worker_tag: str = getattr(scene, "flamenco_worker_tag", "")

View File

@ -224,3 +224,13 @@ well, and thus `\` becomes `\\`.
In other words, even though it looks strange, this is not a bug in Flamenco. The
aim is to prevent you from seeing these doublings as little as possible, but
unfortunately it cannot always be avoided.
### Assets are missing!
When your blend file references your assets (textures, linked blend files, etc.)
with an absolute path, **Flamenco assumes that this path is valid for all
Workers, and will not copy those assets to the shared storage.** This makes it
possible to store large files, like simulation caches, on the shared storage,
without Flamenco creating a copy for each render job.
Read more on this in [Absolute vs. Relative Paths](/usage/shared-storage/#absolute-vs-relative-paths).

View File

@ -92,3 +92,26 @@ have arrived on a specific worker, without waiting for *all* syncing to be
completed (as someone may have just submitted another job).
[jobtypes]: {{< ref "/usage/job-types" >}}
## Absolute vs. Relative Paths
Blender can reference assets (textures, linked blend files, etc.) in two ways:
- by **relative path**, like `//textures\my-favourite-brick.exr`, which is relative to the blend file, or
- by **absolute path**, like `D:\texture-library\my-favourite-brick.exr`, which is the full path of the file.
When an asset is referenced by an absolute path, **Flamenco assumes that this
path is valid for all Workers, and will not copy those assets to the shared
storage.** This makes it possible to store large files, like simulation caches,
on the shared storage, without Flamenco creating a copy for each render job.
{{< hint type=Warning >}} On Windows it is not possible to construct a relative
path to an asset when that asset is no a different drive than the main blend
file. If you still want Flamenco to copy such assets, there are two workarounds:
- Move your asset libraries to the same drive as your Blender projects.
- Use [symbolic links][symlinks-guide-windows] to make your assets available at
a suitable path.
[symlinks-guide-windows]: https://www.howtogeek.com/16226/complete-guide-to-symbolic-links-symlinks-on-windows-or-linux/
{{< /hint >}}