Ребят, кто шарит в гуде-питоне?
Сделал ассет коп-фильтр, пытаюсь читать данные (SOP Import) и потом их отпарсить своим фильтром.
В итоге в превью (композит вью) я вижу исходные данные корректными, а фильтр их получает в виде около 100 штук данных (вроде бы), потом порядка полутысячи нулей, снова 100 данных, снова полтысячи нулей (определил это выведя данные в файл)...
Создавал фильтр по гудиневскому тутору: файл, нью ассет, питон, композишен фильтр.
Уже крыша едет 🤪
Полный код фильтра:
import array
import inlinecpp
import numpy as np
import struct
def output_planes_to_cook(cop_node):
# This sample only modifies the color plane.
return ("C",)
def required_input_planes(cop_node, output_plane):
# This sample requires the color and alpha planes from the first input.
if output_plane == "C":
return ("0", "height")
return ()
def cook(cop_node, plane, resolution):
assert(plane == "C")
input_cop = cop_node.inputs()[0]
filename = cop_node.evalParm('fileName')
f = open(filename, mode='wb');
height = array.array("f", input_cop.allPixelsAsString("height"))
for c in color:
cf32 = np.float32(c)
f.write(cf32);
f.close();
Канал Height в исходнике есть, я его вижу в превью, он корректный.