From c99e918e93374ed2a1c9b9e5b8f48824d1ab4479 Mon Sep 17 00:00:00 2001 From: zhxx1987 Date: Wed, 13 Dec 2023 13:12:03 +0800 Subject: [PATCH] smart shader tex 2d bug fix --- zeno/src/nodes/mtl/ShaderTexture.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/zeno/src/nodes/mtl/ShaderTexture.cpp b/zeno/src/nodes/mtl/ShaderTexture.cpp index d377434c07..a33dc65d08 100644 --- a/zeno/src/nodes/mtl/ShaderTexture.cpp +++ b/zeno/src/nodes/mtl/ShaderTexture.cpp @@ -189,21 +189,21 @@ struct SmartTexture2D : ShaderNodeClone if(!std::filesystem::exists(texture_path)){ zeno::log_warn("texture file not found!"); auto type = get_input2("type"); - auto number = get_input2("value"); + auto number = em->determineType(get_input("value").get()); if (type == "float" || type == "R") - em->emitCode(zeno::format("{}",number[0])); + em->emitCode(zeno::format("vec4({}).x",number)); else if (type == "G") - em->emitCode(zeno::format("{}",number[1])); + em->emitCode(zeno::format("vec4({}).y",number)); else if (type == "B") - em->emitCode(zeno::format("{}",number[2])); + em->emitCode(zeno::format("vec4({}).z",number)); else if (type == "A") - em->emitCode(zeno::format("{}",number[3])); + em->emitCode(zeno::format("vec4({}).w",number)); else if (type == "vec2") - em->emitCode(zeno::format("vec2({},{})",number[0],number[1])); + em->emitCode(zeno::format("vec2({})",number)); else if (type == "vec3") - em->emitCode(zeno::format("vec3({},{},{})",number[0],number[1],number[2])); + em->emitCode(zeno::format("vec3({})",number)); else if (type == "vec4") - em->emitCode(zeno::format("vec3({},{},{},{})",number[0],number[1],number[2],number[4])); + em->emitCode(zeno::format("vec4({})",number)); else throw zeno::Exception("ShaderTexture2D got bad type: " + type);