Merge branch 'develop' into feature/OP-4247_Data-Exchange-proxies

This commit is contained in:
Milan Kolar 2023-05-29 23:26:20 +02:00 committed by GitHub
commit fd07632068
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
379 changed files with 11607 additions and 5944 deletions

View file

@ -145,7 +145,7 @@ def get_default_render_folder(project_setting=None):
["default_render_image_folder"])
def set_framerange(start_frame, end_frame):
def set_render_frame_range(start_frame, end_frame):
"""
Note:
Frame range can be specified in different types. Possible values are:
@ -157,10 +157,10 @@ def set_framerange(start_frame, end_frame):
Todo:
Current type is hard-coded, there should be a custom setting for this.
"""
rt.rendTimeType = 4
rt.rendTimeType = 3
if start_frame is not None and end_frame is not None:
frame_range = "{0}-{1}".format(start_frame, end_frame)
rt.rendPickupFrames = frame_range
rt.rendStart = int(start_frame)
rt.rendEnd = int(end_frame)
def get_multipass_setting(project_setting=None):
@ -180,10 +180,16 @@ def set_scene_resolution(width: int, height: int):
None
"""
# make sure the render dialog is closed
# for the update of resolution
# Changing the Render Setup dialog settingsshould be done
# with the actual Render Setup dialog in a closed state.
if rt.renderSceneDialog.isOpen():
rt.renderSceneDialog.close()
rt.renderWidth = width
rt.renderHeight = height
def reset_scene_resolution():
"""Apply the scene resolution from the project definition
@ -246,10 +252,15 @@ def reset_frame_range(fps: bool = True):
fps_number = float(data_fps["data"]["fps"])
rt.frameRate = fps_number
frame_range = get_frame_range()
frame_start = frame_range["frameStart"] - int(frame_range["handleStart"])
frame_end = frame_range["frameEnd"] + int(frame_range["handleEnd"])
frange_cmd = f"animationRange = interval {frame_start} {frame_end}"
frame_start_handle = frame_range["frameStart"] - int(
frame_range["handleStart"]
)
frame_end_handle = frame_range["frameEnd"] + int(frame_range["handleEnd"])
frange_cmd = (
f"animationRange = interval {frame_start_handle} {frame_end_handle}"
)
rt.execute(frange_cmd)
set_render_frame_range(frame_start_handle, frame_end_handle)
def set_context_setting():
@ -266,6 +277,7 @@ def set_context_setting():
None
"""
reset_scene_resolution()
reset_frame_range()
def get_max_version():

View file

@ -36,8 +36,9 @@ class RenderProducts(object):
container)
context = get_current_project_asset()
startFrame = context["data"].get("frameStart")
endFrame = context["data"].get("frameEnd") + 1
# TODO: change the frame range follows the current render setting
startFrame = int(rt.rendStart)
endFrame = int(rt.rendEnd) + 1
img_fmt = self._project_settings["max"]["RenderSettings"]["image_format"] # noqa
full_render_list = self.beauty_render_product(output_file,

View file

@ -6,7 +6,7 @@ from openpype.pipeline import legacy_io
from openpype.pipeline.context_tools import get_current_project_asset
from openpype.hosts.max.api.lib import (
set_framerange,
set_render_frame_range,
get_current_renderer,
get_default_render_folder
)
@ -68,7 +68,7 @@ class RenderSettings(object):
# Set Frame Range
frame_start = context["data"].get("frame_start")
frame_end = context["data"].get("frame_end")
set_framerange(frame_start, frame_end)
set_render_frame_range(frame_start, frame_end)
# get the production render
renderer_class = get_current_renderer()
renderer = str(renderer_class).split(":")[0]
@ -105,6 +105,9 @@ class RenderSettings(object):
rt.rendSaveFile = True
if rt.renderSceneDialog.isOpen():
rt.renderSceneDialog.close()
def arnold_setup(self):
# get Arnold RenderView run in the background
# for setting up renderable camera

View file

@ -52,6 +52,7 @@ class MaxHost(HostBase, IWorkfileHost, ILoadHost, INewPublisher):
def context_setting():
return lib.set_context_setting()
rt.callbacks.addScript(rt.Name('systemPostNew'),
context_setting)