I’ve created a RV package, where I’ve set metadata such as project name, sequence, shot etc. on source node to identify them. I want to apply per-shot LUT based on the metadata that I’ve set.
What I’ve tried…
I’ve replaced RVNode in RVLookPipelineGroup with OCIOLook Node and have set the following properties.
ocio.active - 1
ocio.function – ‘look’
ocio.inColorSpace – ocio.Constants.ROLE_SCENE_LINEAR
ocio.ocio_context.SHOT – <shot name>
But it doesn’t seem to have any effect. What am I missing?
If you take a look at the Starting With OCIO guide, there’s a starter script called rv_ocio_setup_sample.py. If you download it, you can see how to set context per-node.
For example, setting up the Look pipe group:
elif (nodeType == "RVLookPipelineGroup"):
# If our config has a Look named shot_specific_look and uses the
# environment/context variable "$SHOT" to locate any required
# files on disk, then this is what that would likely look like
result = [
{"nodeType" : "OCIOLook",
"context" : {"SHOT" : os.environ.get("SHOT","def123")}
"properties" : {
"ocio.function" : "look",
"ocio.inColorSpace" : OCIO.Constants.ROLE_SCENE_LINEAR,
"ocio_look.look" : "shot_specific_look"}}]
Note that context here is grabbed from the environment variable that is set:
Thanks for replying alexaz. Can you please tell me what is ‘shot_specific_look’.
What I understand that looks are also defined in the OCIO configuration. But our project configuration has no looks defined. So what should I set ‘ocio_look.look’ to?
From my limited understanding of OCIO, I think some luts are applied in certain process space different than reference space. If that’s the case…
Would OCIO.Constants.ROLE_SCENE_LINEAR work fine?
If your project doesn’t have looks defined, then what are you defining per-shot? Do you have one OCIO config for the entire show for a specific colorspace? You can take a look at the config blurb I’ve posted above that shows how to set up a look to point to a per-shot cube. As a general rule of thumb, a look will have artistic color information rather than per-display color definitions. If you need to define colorspace for a display, you’ll need to set up an OCIODisplay node and author an OCIO config to feed into it.
This sounds similar to what I’m looking for, I need RV to apply a look from a cdl file relative to the media path of the EXR it’s currently playing. How do I get RV to get the filepath of the currently loaded media and then modify that path to find the cdl and then use that cdl in the look pipeline?