Skip to content
This repository has been archived by the owner on Sep 20, 2024. It is now read-only.

Houdini Explicitly collect correct frame name even in case of single frame render when frameStart is provided #2676

Merged
merged 4 commits into from
Feb 11, 2022

Conversation

BigRoy
Copy link
Collaborator

@BigRoy BigRoy commented Feb 8, 2022

(cherry picked from commit 0f82a75)

Brief description

There was a bug in Houdini that whenever you do have a frame range set of just a single frame, e.g. 1001-1001 then collect_frames would actually eval the filename on the current frame instead of that start frame. Thus if you're writing to a file with $F the file would be named different than what the ROP node would actually output

Additional info

Here's an example error that could happen. The integrator here fails to copy the file becuase the ROP node actually rendered another file than was "collected" as expected resulting filename from the ROP node.

Instance: 
vdbcachesmoke_room (160) [1001.0 - 1001.0]
Message: 
[WinError -2147024894] The system cannot find the file specified
Line: 
933
Traceback: 
Traceback (most recent call last):
  File "C:\Program Files (x86)\OpenPype\dependencies\pyblish\plugin.py", line 522, in __explicit_process
    runner(*args)
  File "C:\Users\User\AppData\Local\pypeclub\openpype\openpype-v3.8.1\openpype\plugins\publish\integrate_new.py", line 138, in process
  File "C:\Program Files (x86)\OpenPype\dependencies\six.py", line 719, in reraise
    raise value
  File "C:\Users\User\AppData\Local\pypeclub\openpype\openpype-v3.8.1\openpype\plugins\publish\integrate_new.py", line 129, in process
  File "C:\Users\User\AppData\Local\pypeclub\openpype\openpype-v3.8.1\openpype\plugins\publish\integrate_new.py", line 597, in register
  File "C:\Users\User\AppData\Local\pypeclub\openpype\openpype-v3.8.1\openpype\plugins\publish\integrate_new.py", line 653, in integrate
  File "C:\Users\User\AppData\Local\pypeclub\openpype\openpype-v3.8.1\openpype\plugins\publish\integrate_new.py", line 699, in copy_file
  File "C:\Program Files (x86)\OpenPype\dependencies\speedcopy\__init__.py", line 289, in copyfile
    '\\\\?\\' + dest_file, None)
  File "_ctypes/callproc.c", line 933, in GetResult
OSError: [WinError -2147024894] The system cannot find the file specified

Testing notes:

  1. Create a vdbCache instance to extract from frame 1001 to 1001.
  2. Set current frame to 1002 in timeline.
  3. Publish.

The render rop will render 1001 however the collect_frames and thus integrator thinks 1002 should be published.

Additional Context

I've also added a warning if it's rendering without a frame range set and thus renders current frame - since that is less reliable in a production environment and thus discouraged?

…nder when `frameStart` is provided

(cherry picked from commit 0f82a75)
@BigRoy BigRoy changed the title Explicitly collect correct frame name even in case of single frame render when frameStart is provided Houdini Explicitly collect correct frame name even in case of single frame render when frameStart is provided Feb 8, 2022
@BigRoy
Copy link
Collaborator Author

BigRoy commented Feb 8, 2022

Sorry for that commit mess there - my app tried to be clever and exclude an edit from the commits each time. 🔥

@mkolar mkolar added host: Houdini type: bug Something isn't working labels Feb 10, 2022
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.

works perfectly

@antirotor antirotor merged commit a28ffb1 into ynput:develop Feb 11, 2022
@BigRoy BigRoy deleted the hou_fix_single_frame_render branch March 20, 2024 15:20
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
host: Houdini type: bug Something isn't working
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants