在alpha通道上工作时,Nuke查看器LUT设置

时间:2017-12-07 15:57:40

标签: python alpha color-space nuke

据我所知,LUT意在应用于颜色通道(RGB),因为我们正在进行颜色空间转换。但Nuke的查看器LUT设置也会影响alpha通道。我知道查看器LUT不会改变原始像素值,只会根据LUT设置设置显示它们,但是我们不应该在alpha通道上工作时关闭查看器LUT吗?比如拉一把钥匙或做roto?

我们不应该在线性色彩空间中查看alpha吗?我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:2)

你是对的,NUKE Viewer的LookUp Table根本不会改变alpha,但会影响它。您需要使用查看器的f/8(乘数)滑块和y(伽马)滑块来更改您键入时的Alpha外观。 NUKE的工作色彩空间为 LINEAR ,但默认 monitor8-bit16-bit文件的LUT设置是 superRGB 更正:

enter image description here

阅读有关NUKE色彩空间和色彩转换的文章:HERE

为了补偿sRGB gamma以获得线性工作色彩空间,NUKE使用镜像gamma:

enter image description here

您可以随时更改任何默认LUT设置或关闭Alpha通道(或rgb或您想要的任何频道)。

执行此代码,然后使用 ctrl - i 快捷方式创建新的Viewer节点( cmd - i on一台Mac):

import nuke

# to change Viewers' properties globally
nuke.knobDefault('Viewer.channels', 'rgb')
nuke.knobDefault('Viewer.viewerProcess', 'rec709')  # use rec709, for instance

你会得到这个:

enter image description here

或者只是执行Viewer1的代码,将viewerProcess更改为None(线性颜色空间):

nuke.toNode('Viewer1').knob('channels').setValue('alpha')
nuke.toNode('Viewer1').knob('viewerProcess').setValue('None')

# then add these 3 lines to menu.py file (they'll work after restart)

nuke.knobDefault("Root.monitorLut", "linear")  # monitor LUT
nuke.knobDefault("Root.int8Lut", "linear")     # 8-bit files LUT
nuke.knobDefault("Root.int16Lut", "linear")    # 16-bit files LUT

enter image description here

enter image description here

此外,要对您当前的LUT进行物理转换,您可以使用OpenColorIO LUT工具栏菜单中的3D LUTColor个节点。

关于Pixel Analyzer面板的几句话:

Pixel Analyzer面板中的

CurrentMinMaxAverageMedian操作将应用于下拉菜单中的任意频道。如果您只需要alpha值或仅rgb值,只需从菜单中选择它即可。

enter image description here

但是。如果您将使用rgba模式,那没有错。核实。将Keyer节点应用于图像,您将看到RGB值是否与alpha相同(但仅当rgba未预乘时)。

而且很难过,但Pixel Analyzer面板仍无法通过Python访问API