-
Notifications
You must be signed in to change notification settings - Fork 3
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
The AOVs from render layer nodes always connected to the Output File Node #82
base: develop
Are you sure you want to change the base?
The AOVs from render layer nodes always connected to the Output File Node #82
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@moonyuet it still does not work and to me it seems that it does not take the Ideally we should first collect any Im really not aware how much of this we already have in place (in terms of code) and which parts we miss completely atm... |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Its getting better and better... now we have correct subpaths for each ViewLayer
and also layer name included within filename
which is good and desirable!
Now there are 2 more issues found:
-
When having set some
AOV
s in the AYON addons settings, those are just propagated to the very firstViewLayer
and not any other
-
when user does not create
Scene node
manually to introduce new additionalViewLayer.001
in Composite tree, AYON does not pick it up and just ignores the fact there is additional viewlayer(s) within the scene and uses just the defaultViewLayer
and use this forFile Output
node...
So if setting all manually I am able to get the desired node tree with proper outputs for any ViewLayer
present in the scene... like on the following scrn:
And lastly (for consideration) is the limitation comming with the way we prepare AOVs
via Addons settings...
as now if user have some AOVs turned on within his blender scene and triggers creation of Render
instance it follows the addons settings so if no any matching AOVs present it will just remove any present AOVs - basically destroying all present AOV setups...
So here is example when Ayon addons settings have Before: After triggering We should probably think about approach that when no AOVs preconfigured, it wont force remove any existing |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So I have made another testing round with following findings:
-
now all AOVs got propagated from addons settings into blender once hitting create>Render
-
unfortunatelly it also removes any existing
AOV
s during creation - big no no. -
Blender freezes if more then one
Scene
node present when hitting create>Render instance (only when present tho see img below)
if just single Scene node
present and more than one ViewLayer
present it doesnt freeze and sort of works...
there is a however issue that it multiplies even the already present Scene node
which is not desirable as it mixes up connections to File Output
node and results into duplicate outputs...
We should check if any Scene nodes
already exists in the scene...to not create redundant ones...as seen here:
…es not fall into infinite loop
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Now all works really well and been tested in different conditions...
single / multiple ViewLayers
, present / absent AOVs
and full / empty AOVs preset in Addons Settings - seem all working nicely!
If any issue then there is one questionable thing regarding the Compositing
aov...as there always exists just single node tree and output.
Right now there is created input for composite
for each ViewLayer
which results into multiplied inputs and also empty ones (as only the first ViewLayer
got connected)
We should introduce some logic and create/hook just the very first ViewLayer
I guesss (it happens atm but there are also redundant other composite inputs which results into blank images and we shouldnt ideally create those at all)...cant think now if any occasion that might not be working with it...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
After another testing round now there is just single Composite
input into File Output
node which is correct!
Also no any freeze of Blender happening if scene compositor pre occupied with multiple Scene
nodes...also good!
There is only one flaw regarding the Composite
AOV and that is created as an output for non default ViewLayer
but for ViewLayer.001
minor flaw but we should use that default viewLayer instead...
Other than that all good!
…annel-format-missing-rendered-frames
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Now gives me following error after hit Create > Render
Traceback (most recent call last):
File "C:\Users\lbate\AppData\Local\Ynput\AYON\addons\core_1.0.12+dev\ayon_core\pipeline\create\context.py", line 2126, in _create_with_unified_error
result = creator.create(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\lbate\AppData\Local\Ynput\AYON\addons\blender_0.2.7+dev\ayon_blender\plugins\create\create_render.py", line 28, in create
prepare_rendering(collection)
File "C:\Users\lbate\AppData\Local\Ynput\AYON\addons\blender_0.2.7+dev\ayon_blender\api\render_lib.py", line 422, in prepare_rendering
aov_file_product = set_node_tree(
^^^^^^^^^^^^^^
File "C:\Users\lbate\AppData\Local\Ynput\AYON\addons\blender_0.2.7+dev\ayon_blender\api\render_lib.py", line 308, in set_node_tree
output.base_path = render_product if multi_exr else str(output_path)
^^^^^^^^^^^^^^^^
TypeError: bpy_struct: item.attr = val: CompositorNodeOutputFile.base_path expected a string type, not list
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Now all seems correct and Render
instance got created without any issues, also all inputs got connected into File Output
node and only main aka default ViewLayer
got outputted its Composite
so all good on this front too..
there is one thing worth noting and that is Repair
action for Output folder
mess up the node tree and disconnects some inputs... probably not directly related but need to be resolved otherwise the setup will be broken as soon as triggering the repair action by user.
Resulting into following (note the File Output and disconnected inputs):
Changelog Description
This PR is to make sure the AOVs from render layer nodes always connected to the Output File Node.
Resolve #37
Additional review information
n/a
Testing notes: