使用 Python 控制 Maya 渐变纹理时出现错误的红点

问题描述 投票:0回答:1

我在 Maya 2022 中的 2d 斜坡纹理上使用 python 脚本以及 getAttr 和 setAttr Maya 命令。有时,它工作得很好,但有时我会在斜坡上添加额外的红点,而且它似乎变得混乱。我找不到关于它何时起作用或何时失效的模式。一旦坡道出现问题,问题似乎就会一直存在,但其他坡道工作正常。有其他人遇到过这个问题吗?是什么导致斜坡在被 getAttr 命令调用时触发额外的红色点?

   if cmds.attributeQuery('colorEntryList',node = ramp, ex = True ):
       number_of_entries = cmds.getAttr(ramp + '.colorEntryList', size = True)

python textures maya
1个回答
0
投票

我无法重现这一点,但您的屏幕截图显示两个控制点均为零。您的插值颜色是否可能已变为 NAN 值 - 例如,由于通过这两个共置点进行插值,Maya 中的某些内容试图除以零?

我尝试的第一件事是循环遍历颜色条目列表并打印出值:

ramp = "ramp1"
for n in range(cmds.getAttr(f"{ramp}.colorEntryList", size=True)):
    pos = cmds.getAttr(f"{ramp}.colorEntryList[{n}].position")
    col = cmds.getAttr(f"{ramp}.colorEntryList[{n}].color")
    print (f"{n}:\t{col} @ {pos}") 

如果您在彩色打印输出中看到红色,则问题出在节点正确的数据错误上,如果没有,则可能是 GL 驱动程序未正确处理两个样本极其接近的问题。

我还会检查渲染结果,看看硬件和软件渲染器是否以不同的方式处理它。

© www.soinside.com 2019 - 2024. All rights reserved.