Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Max: Implementation of Validate Render Passes #6138

Merged
merged 16 commits into from May 3, 2024

Conversation

moonyuet
Copy link
Member

Changelog Description

This PR is to enhance the current validator of checking the render output before deadline publish. It does the following:

  1. The validator Render Output for Deadline would be renamed as Validate Render Passes
  2. The validator would not only check on the invalid render output folder but the invalid filename of render passes.

Additional info

n/a

Testing notes:

  1. Launch Max via Launcher
  2. Open a Renderable Scene
  3. Create Some AOVs in Render Setting
  4. Create Render Instance with your preferred camera(s)
  5. Publish
  6. If the AOVs dont have invalid name or render output folder doesn't match the max scene name, it will error out.
  7. You can perform repair action once you encounter 7.

@ynbot
Copy link
Contributor

ynbot commented Jan 16, 2024

Task linked: OP-7074 Validate Render Passes

@ynbot ynbot added type: enhancement Enhancements to existing functionality host: 3dsmax Autodesk 3dsmax module: Deadline AWS Deadline related features size/S Denotes a PR changes 100-499 lines, ignoring general files labels Jan 16, 2024
@moonyuet moonyuet marked this pull request as ready for review January 16, 2024 10:33
@moonyuet moonyuet requested a review from BigRoy January 16, 2024 11:27
@moonyuet moonyuet requested a review from BigRoy January 16, 2024 12:15
@moonyuet moonyuet requested a review from BigRoy January 17, 2024 12:27
@moonyuet moonyuet added target: AYON target: OpenPype sponsored Client endorsed or requested labels Jan 18, 2024
Copy link
Member

@LiborBatek LiborBatek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did test in max 2023 with arnold render and even tho the Validator works fine for output file path (Im not sure speaking of AOVs names because I kept those at defaults) it errrors out with following error:

image
DEBUG: Response <RestApiResponse [200]>
Traceback (most recent call last):
  File "C:\Users\lbate\AppData\Local\Ynput\AYON\dependency_packages\ayon_2401161802_windows.zip\dependencies\pyblish\plugin.py", line 527, in __explicit_process
    runner(*args)
  File "C:\Users\lbate\AppData\Local\Ynput\AYON\addons\openpype_3.18.5-nightly.3\openpype\hosts\max\plugins\publish\save_scenes_for_cameras.py", line 37, in process
    new_output = RenderSettings().get_batch_render_output(camera)       # noqa
  File "C:\Users\lbate\AppData\Local\Ynput\AYON\addons\openpype_3.18.5-nightly.3\openpype\hosts\max\api\lib_rendersettings.py", line 190, in get_batch_render_output
    target_layer = rt.batchRenderMgr.GetView(target_layer_no)
RuntimeError: Unknown MAXScript exception raised.

@moonyuet
Copy link
Member Author

I did test in max 2023 with arnold render and even tho the Validator works fine for output file path (Im not sure speaking of AOVs names because I kept those at defaults) it errrors out with following error:

image ``` DEBUG: Response Traceback (most recent call last): File "C:\Users\lbate\AppData\Local\Ynput\AYON\dependency_packages\ayon_2401161802_windows.zip\dependencies\pyblish\plugin.py", line 527, in __explicit_process runner(*args) File "C:\Users\lbate\AppData\Local\Ynput\AYON\addons\openpype_3.18.5-nightly.3\openpype\hosts\max\plugins\publish\save_scenes_for_cameras.py", line 37, in process new_output = RenderSettings().get_batch_render_output(camera) # noqa File "C:\Users\lbate\AppData\Local\Ynput\AYON\addons\openpype_3.18.5-nightly.3\openpype\hosts\max\api\lib_rendersettings.py", line 190, in get_batch_render_output target_layer = rt.batchRenderMgr.GetView(target_layer_no) RuntimeError: Unknown MAXScript exception raised. ```

it is more likely unrelated issue to the implementation of validator, I already created a PR to fix this issue: #6163

@moonyuet moonyuet force-pushed the enhancement/OP-7074_Validate-Render-Passes branch from 71fa50c to 410b111 Compare January 26, 2024 10:28
@LiborBatek
Copy link
Member

I have been testing arnold and redshift with on purpose wrong output file path and the Validator checks correctly and fails. Also Repair action does work and fix the wrong set output file path.

Screenshot 2024-01-26 122126

Whats still mystery to me being AOVs because neither in arnold nor redshift I was not able to produce any (as products) on DL. So only main_beauty being produced.

@moonyuet any insight how it should work or how to setup correctly?

@moonyuet
Copy link
Member Author

I have been testing arnold and redshift with on purpose wrong output file path and the Validator checks correctly and fails. Also Repair action does work and fix the wrong set output file path.

Screenshot 2024-01-26 122126 Whats still mystery to me being `AOVs` because neither in `arnold` nor `redshift` I was not able to produce any (as products) on DL. So only `main_beauty` being produced.

@moonyuet any insight how it should work or how to setup correctly?

It's normal case for Arnold not producing beauty as its API limitation doesn't allow to support AOVs temprarily.
But I will check out the issue found from Redshift.

@moonyuet
Copy link
Member Author

You need to make sure you turn on separate AOV Files for this case
image

Maybe we can somehow support for user to customize multilayering in different PRs.

@moonyuet
Copy link
Member Author

moonyuet commented Feb 2, 2024

@LiborBatek I have created an issue for multilayering support in the settings.
For the current stage, you need to dive into render settings and set separateAovFile to render AOVs in separate files.

Copy link
Member

@LiborBatek LiborBatek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

After checking that Separate files for AOVs which took me some time to find (thx @moonyuet ) it works as expected.

My publishing and render being correctly produced.

Copy link
Member

@antirotor antirotor left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've just quickly went throught the code and it looks fine

@mkolar mkolar merged commit 99a30d1 into develop May 3, 2024
1 check passed
@ynbot ynbot added this to the next-patch milestone May 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
host: 3dsmax Autodesk 3dsmax module: Deadline AWS Deadline related features port to AYON size/S Denotes a PR changes 100-499 lines, ignoring general files sponsored Client endorsed or requested target: AYON target: OpenPype type: enhancement Enhancements to existing functionality
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

None yet

6 participants