ynput / OpenPype

Main OpenPype repository and AYON openpype addon codebase
https://openpype.io
MIT License
280 stars 128 forks source link

Arnold Scene Source Raw - OP-8014 #6182

Closed tokejepsen closed 2 months ago

tokejepsen commented 5 months ago

Changelog Description

This PR is to try and re-instate some flexibility to the Arnold Scene Source family, which got restricted by https://github.com/ynput/OpenPype/pull/4449

The proxy workflow introduced was actually broken due to https://github.com/ynput/OpenPype/pull/4460.

We can now have any nodes directly in the instance set, which should be backwards compatible of the Arnold Scene Source before the overhaul in https://github.com/ynput/OpenPype/pull/4449. The content and proxy sets works as well, but not at the same time as the raw nodes directly in the instance set. There is a validator in place to prevent using a single instance for both workflows.

Now the question is whether we should have this as a single family or split somehow? The workflow of having nodes directly in the instance set, compared to content and proxy set, can be documented, so I see this as most a matter of terminology. Arnold Scene Source makes sense to have as a family, but only if its a the raw output with little to no validation, similar to Maya Scene. But then I'm not sure what to call the other family that has more of a workflow in place, which is similar to Model and Pointcache.

Testing notes:

  1. Follow Arnold guide for publishing; https://ayon.ynput.io/docs/addon_maya_arnold_artist. Ignoring the content_SET does not exists.
mkolar commented 4 months ago

@antirotor doesn't this solve the issue with ASS we talked about int he office?

antirotor commented 3 months ago

I am little struggling with it but - if Arnold Scene Source is to be "raw" form, we can have ASS Standin for the more restrictive one - loaders to support both of them. Truth to be told, I really don't know the right name for it. Maybe even something like Arnold Scene Source - Raw and Arnold Scene Source?

tokejepsen commented 3 months ago

How about Arnold Scene Source and Arnold Scene Source Proxy?

The workflow that is in place, is for proxy loading in the viewport. I think we should also get rid of the content objectset since we'll have two families anyways to differentiate workflows, so "content" nodes will just be in the root objectset for the Arnold Scene Source Proxy.

antirotor commented 3 months ago

How about Arnold Scene Source and Arnold Scene Source Proxy?

The workflow that is in place, is for proxy loading in the viewport. I think we should also get rid of the content objectset since we'll have two families anyways to differentiate workflows, so "content" nodes will just be in the root objectset for the Arnold Scene Source Proxy.

Yep, but we need to handle backwards compatibility with existing scenes

tokejepsen commented 3 months ago

Yep, but we need to handle backwards compatibility with existing scenes

@antirotor I think since the proxy workflow was broken due to https://github.com/ynput/OpenPype/pull/4460, there would only be roughly 2 months where people could have made valid proxy ass publishing. Then its been 1 year with the broken proxy workflow, which probably shows how much its used and that we dont need to worry about backward compatibility for Arnold Scene Source Proxy For Arnold Scene Source we would be restoring backward compatibility with this PR, so I dont think we need to worry about any backward compatibility.

LiborBatek commented 2 months ago

here for example successful Publish for pointcache with the same selection of objects...

image

tokejepsen commented 2 months ago

@LiborBatek could you show the instance or send me the workfile?

LiborBatek commented 2 months ago

Here is my Arnold scene source instance details...

Screenshot 2024-04-19 094405

tokejepsen commented 2 months ago

So my question is, should be this instance type so limited?? as I dont see any point constrain it so much for the user... why I should care about something outside of actual publish instance aka ass ??

@LiborBatek from the screen grab it looks like some geometries are being flagged as hidden but they might not be?

To debug this, could you maybe send me the rig you are using?

tokejepsen commented 2 months ago

@LiborBatek I've found the bug that caused the validator to falsely flag nodes as hidden. Give it another test when you have time.