RV - OCIO with LUT file


Currently I trying to apply a LUT file with OCIO configuration. I can make it work in Nuke but I am not able to get the same result in RV.

Nuke: I create a OCIOFileTransform node where I apply the cube file (3D LUT) and then use a OCIOColorspace to put it in the correct color-space

In RV I'm using the rv_ocio_setup where I used the color, display and look but I do not know where to load the file, so I skipped the OCIO look and instead I use the RVLookLUT node to load the file and activate it.

This is where I get stuck, because even tho it loads the LUT file, it's not applied in the correct color-space because (I am guessing here, so I might be wrong and please feel free to correct me) the RVLookLUT does not know anything about OCIO config.

So in other words, I have a LUT cube file, I'm working in OCIO color-space how I can applied the LUT file using OCIO?

In the documentation for OCIO it says that the OCIOFileTransform is not supported yet. So my question if someone can help me to achieve this? or this is impossible to achieve?

I really appreciate an answer even if the answer is not, so I stop trying.




  • 1
    (Michael) Kessler

    Hi Carlos,

    For this, I would recommend defining your full desired transform in an OCIO look complete with transforms to allow it to return back to your process space.


    Looks can contain a GroupTransform that will describe that process for all of your OCIO aware applications that implement look groups.  There is a convenience key called process_space that provides a transform to and from that space from your reference space:

    process_space: lnf

    If your pre/post transform need to be done to and from the same space, that is useful.  However, if your to/from are different spaces, you'll need to describe this in a group transform.

    For instance, if your look is called "MyLook", then your look might be configured like this:

      - !<Look>
        name: MyLook
        transform: !<GroupTransform>
            - !<Some_OCIO_Transform_To_Prepare_File_Transform> {parameter:value}
            - !<FileTransform> {src: mylook.spi1d, interpolation: nearest}
    - !<Some_OCIO_Transform_to_Return_To_Reference_Space> {parameter:value}


    This is an application-neutral method of describing a look that transforms properly with pre-luts and post-lut transforms.  Then, to apply this in RV, you would specify that look with the OCIOLook node in the RVLookPipelineGroup



    Alternatively, if you are wanting to stay with the RVLookLUT node, you can place appropriate space transform nodes into the RVLookPipeline group around the RVLookLUT node, of which there are many: http://www.tweaksoftware.com/static/documentation/rv/current/html/rv_reference.html#Chapter_17_Additional_GLSL_Node_Reference_


    The look definitions, however, would be the most appropriate way to stay within OCIO (note, however, that I would avoid applying them as Looks on a display, as this breaks the concept of the display representing physical characteristics of your display device).


    I hope that helps, but feel free to ask for any clarifications.

  • 1
    Carlos Garcia

    Hi Michael,

    I will try and let you know how it goes.



    P.S. Valerie and Paulo are asking about the next doughnut delivery.

Please sign in to leave a comment.