Roles (texture_paint)

Hi,

I can’t find anything I understand about how roles work within certain apps. For example, with the texture roles there seems to be 3 entries in config:

Once in the ‘roles’ section and twice as a colorspace entry.

roles:
color_picking: Output - Rec.709
color_timing: ACES - ACEScc
compositing_linear: ACES - ACEScg
compositing_log: Input - ADX - ADX10
data: Utility - Raw
default: ACES - ACEScg
matte_paint: Output - Rec.709
reference: Utility - Raw
rendering: ACES - ACEScg
scene_linear: ACES - ACEScg
texture_paint: srgb_texture

name: Role - texture_paint
family: Utility/Roles
equalitygroup: ""
bitdepth: 32f
description: |
  The ACEScc color space

  ACES Transform ID : ACEScsc.ACEScc_to_ACES
isdata: false
allocation: uniform
allocationvars: [-0.3584, 1.468]
to_reference: !<ColorSpaceTransform> {src: ACES - ACEScc, dst: ACES - ACES2065-1}

name: role_texture_paint
family: Utility/Aliases
equalitygroup: “”
bitdepth: 32f
description: |
The ACEScc color space

  ACES Transform ID : ACEScsc.ACEScc_to_ACES
isdata: false
allocation: uniform
allocationvars: [-0.3584, 1.468]
to_reference: !<ColorSpaceTransform> {src: ACES - ACEScc, dst: ACES - ACES2065-1}

The issue I have is that Houdini (mantra) seems to use the first entry in the ‘roles’ section and Nuke seems to use the colorspace definition and not the alias defined in the first entry. In this example, which I think is the default ACES config the colorspace entries are defining transforms from ACEScc.

So does this basically mean that when supporting roles in production all these entries need modified as desired? It just seems to defeat the purpose of the first entry which I assumed was the ‘master’ alias. For example if we want the texture_paint role to be srgb_texture.

Any help is greatly appreciated.

J

Hi,

Is it possible that the roles aliases are only meant for filename tagging and not for specifying colour spaces in app?

Cheers

J

Hi John,

I think you’re running into two issues here:

  1. the way that different apps (Maya, Nuke, Houdini, Mari) all work with OCIO is quite different, so it’s a challenge to get the config setup so it plays nice with each app, and this requires some shuffling to find the best fit for all the apps in your pipeline.

  2. The texture_paint roll is defaulting to a log color space, whereas you would typically want textures to be in Utility-sRGB-Texture space. Nuke uses the texture_paint roll as its default for 16 bit images which are typically used for matte paintings in log. You’d think that this would be what is defined by the matte_painting roll, but that one is what Nuke uses for its 8-bit images. I don’t use Houdini so I don’t know how that plays with OCIO exactly. In Maya you can set it up to do a color space conversion on diffuse textures based on the filename. That’s what I do instead of using a roll.

Anyway, if you are left scratching your head after all this, you’re not alone :slight_smile:

1 Like