我在 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)
我无法重现这一点,但您的屏幕截图显示两个控制点均为零。您的插值颜色是否可能已变为 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 驱动程序未正确处理两个样本极其接近的问题。
我还会检查渲染结果,看看硬件和软件渲染器是否以不同的方式处理它。