Skip to content

feat: add V-Ray export workflow with tile rendering#217

Open
ZainAallii wants to merge 1 commit intoaws-deadline:mainlinefrom
ZainAallii:feature/vray-standalone
Open

feat: add V-Ray export workflow with tile rendering#217
ZainAallii wants to merge 1 commit intoaws-deadline:mainlinefrom
ZainAallii:feature/vray-standalone

Conversation

@ZainAallii
Copy link
Copy Markdown
Contributor

@ZainAallii ZainAallii commented Mar 13, 2026

What was the problem/requirement? (What/Why)

3ds Max users with V-Ray needed the ability to export .vrscene files and render them using V-Ray Standalone on Deadline Cloud, with support for tile-based region rendering to handle high-resolution outputs. The existing submitter only supported direct 3ds Max rendering through the adaptor.

What was the solution? (How)

Added a V-Ray Standalone export workflow with two modes:

  • Local export: Export .vrscene on the workstation, then render on the farm
  • Farm export: Export and render entirely on the farm using 3dsmaxcmd + V-Ray Standalone

Tile rendering splits frames into an N×M grid using V-Ray's -region flag, renders each tile as a separate task, then merges them using additive compositing (Pillow for PNG/TIFF/JPG, OpenEXR+numpy for EXR). A V-Ray Export tab is injected into the existing submitter when V-Ray is the active renderer.

Key files: submitter logic, job template generation with embedded render/merge scripts, UI tab, settings dataclass, workflow registry, executable path discovery, and OS-agnostic path mapping.

What is the impact of this change?

  • Adds a new V-Ray Standalone submission workflow (no changes to existing 3ds Max adaptor workflow)
  • Modifies submit_dialog.py to inject V-Ray Export tab (only when V-Ray is detected)
  • Adds one constant to data_const.py
  • No changes to adaptor code

How was this change tested?

  • 52 new unit tests covering tile coordinate calculation, frame range parsing, output format validation, and vrscene filename generation (all passing)
  • Full test suite: 258 passed, 0 failed
  • Lint (ruff) and format (black) checks passing
  • Manual end-to-end testing: local export + render, farm export + render, tile rendering with merge, on Deadline Cloud farm with 3ds Max 2025 + V-Ray 6

Was this change documented?

Yes. Architecture doc at docs/design/vray-standalone-file-map.md and design specs under .kiro/specs/.

Did you modify schema files?

  • Yes
  • No

Is this a breaking change?

No. This is a new feature with no changes to existing workflows or APIs.


By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

test-results.txt
fmt-results.txt
lint-results.txt

@ZainAallii ZainAallii requested a review from a team as a code owner March 13, 2026 17:36
@github-actions github-actions bot added the waiting-on-maintainers Waiting on the maintainers to review. label Mar 13, 2026
from pathlib import Path
from typing import List

import pymxs # noqa

Check notice

Code scanning / CodeQL

Unused import Note

Import of 'pymxs' is not used.
@ZainAallii ZainAallii force-pushed the feature/vray-standalone branch 2 times, most recently from dd7be4f to 162d328 Compare March 30, 2026 23:09
@ZainAallii ZainAallii force-pushed the feature/vray-standalone branch 4 times, most recently from 477ed77 to ea30cdc Compare April 6, 2026 17:13
Signed-off-by: Zain Ali <55154081+ZainAallii@users.noreply.github.com>
@ZainAallii ZainAallii force-pushed the feature/vray-standalone branch from e97cdb3 to 1d89486 Compare April 10, 2026 21:23
@sonarqubecloud
Copy link
Copy Markdown

Copy link
Copy Markdown
Contributor

@seant-aws seant-aws left a comment

Choose a reason for hiding this comment

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

Looks good, thanks for the followup issues. This is some good stuff !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

waiting-on-maintainers Waiting on the maintainers to review.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants