masqu3rad3 / tik_manager4

Tik Manager is a Python-based Pipeline and Project Management platform designed for VFX and Animation Projects.
GNU General Public License v3.0
79 stars 4 forks source link

[Katana] Publish/Ingest Lookfiles #110

Open vNicolini opened 1 month ago

vNicolini commented 1 month ago

Is your feature request related to a problem? Please describe. Currently no function/feature to publish lookfiles

Describe the solution you'd like When in a lookdev/surfacing context in Katana, you want to write a lookfile to pass down to lighting that then only have to load said lookfile to get the lookdev/surfacing/attributes loaded in. (see is as a sort of -but not really- HDA in Houdini dedicated for lookdev/shading/attributes)

Having the ability to publish and ingest Lookfiles in Katana to and from Tik4 is a "must have" in term of workflow efficiency.

If you want/need, i can share with you my katana lookdev template (build for Arnold or Prman) so you already have a sort of working structure defined to built upon said feature.

Cheers, VNI

masqu3rad3 commented 1 month ago

Hi @vNicolini thank you for the input. Yes any, template, documentation or example for workflows would be very beneficial.

The publishing and ingesting mechanism of Tik Manager is fairly extendable. If I can find some time I want to make a developer oriented tutorials for anyone to be able to write their own publishers / ingestors.

Having that said, if the proposed solution is something applicable for everyone, I would be glad to integrate it into the core. I tend not to include any dcc specific files into the repository, you may notice there are no .mb, .hip etc files in the project, only python and json files. Maybe we can find a workflow to connect the templates.

What is (are) the extension of the lookfiles you are mentioning? Forgive my ignorance, I am not a lookdev artist but wouldn't be an USD authoring workflow would be more applicable?

vNicolini commented 1 month ago

Hey @masqu3rad3, you'll find attached an exemple scene that shows my lookdev template (which also is fairly close to what i've used in production) and demonstrate the lookfile workflow in Katana.

What is (are) the extension of the lookfiles you are mentioning

The extension is KLF (for Katana LookFile).

I tend not to include any dcc specific files

The lookfile approach/workflow is "unique" to Katana, i don't think it should be in the core but rather part of Katana's integration. See it sort of like maps you're baking out of Mari or Substance, but for attributes and shaders and only for Katana.

I tend not to include any dcc specific files into the repository, you may notice there are no .mb, .hip etc files in the project, only python and json files. Maybe we can find a workflow to connect the templates

I think this refers more to #107 , i'm fine for not shipping/having DCC specific files in the repo, but maybe have something like Prism offer where you can define locations where templated files are located to then have the ability to base new work files on them, if that makes sense ?

Cheers, VNI LookDev_and_KLF_Template_Example_ktoa.zip

masqu3rad3 commented 1 month ago

Okay, I am still trying to wrap my head around it but in a nutshell can we make these assumptions:

- An extractor for Katana where we can export the lookfiles during publish. My problem is that, I have no idea where to put the LookFileBake node and how to validate its input dependencies. There may be a mechanism that collects all LookFileBake nodes present in the scene and temporarily change their outputs to save them into locations that Tik Manager resolve for publish slots.

-template for lookfiles As you mentioned, this will probably covered with #107. Essentially there will be a place where the user can store the templates and the function will either iterate the version with that template or create a new one. By the way, I am changing my mind slightly for not shipping the DCC specific files. But I would probably rather rely contributions of others on that topic, especially for areas I am not familiar with.

-ingestion This is the area I have no clue now. How can we ingest the lookfiles for houdini for example? Or even in Katana? which node is used for that? Would it be okay just to ingest the lookfile as a naked single node? Because if it involves the templating, that will complicate things a lot.

vNicolini commented 1 month ago

An extractor for Katana where we can export the lookfiles during publish.

In a surfacing/lookdev context there's only 2 things (3 if we include USD layer) that will come out of Katana. The lookfile (or USD layer) and the render output.

I have no idea where to put the LookFileBake node and how to validate its input dependencies

It doesn't have dependencies per se, aside from its two inputs to be connected and the rootLocations parameter to be populated (in theory it could match the name parameter and call it a day)

There may be a mechanism that collects all LookFileBake nodes present in the scene and temporarily change their outputs to save them into locations that Tik Manager resolve for publish slots.

In my experience you usually (98% of the time) only have 1 LookFileBake per asset and per lookdev work file so no real need to fetch "all" LookFileBake nodes. You have the ability to have different "passes" in the same file, see them as "material variant" in USD terms.

How can we ingest the lookfiles for houdini

Lookfile is a Katana only type of file. See it as a sort of "very specialized" HDA in Houdini.

[...] in Katana? which node is used for that? Would it be okay just to ingest the lookfile as a naked single node? Because if it involves the templating

To ingest/load a lookfile in Katana you just need 1 node, and preferably 3 (+ 1 switch) for better "control":

I very well could see a macro (or livegroup) being built encapsulating those nodes and only expose the needed parameters, should be fairly easy to build. Aside from linking it to Tik4 for me that is.

template for lookfiles

Just to be clear in regard to templates, it should be user-made templates, not provided by Tik4 itself. What i shared is the template i personally use and would like to use alongside Tik4 for the I/O part and should only be considered as an helper/reference file for your to understand how the data flows in Katana.

What i'm asking in #107 is just to have EmptyScene Files available in a location or a somewhere in the global Tik4 settings to define one or multiple location where to look for when creating new file(s). Hope that clear things out!

Cheers, VNI

masqu3rad3 commented 1 month ago

great information. Thanks a lot.