From 3038b952d48a2a089f5c5400e8ed54746358e859 Mon Sep 17 00:00:00 2001 From: "georgiy.m.markelov@gmail.com" Date: Mon, 11 Sep 2023 18:27:42 +0300 Subject: [PATCH 1/9] Hydra: add MaterialX definition and ifdefs --- source/blender/io/usd/CMakeLists.txt | 1 + source/blender/io/usd/hydra/material.cc | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/source/blender/io/usd/CMakeLists.txt b/source/blender/io/usd/CMakeLists.txt index d913410f8341..e1aeffb5349b 100644 --- a/source/blender/io/usd/CMakeLists.txt +++ b/source/blender/io/usd/CMakeLists.txt @@ -210,6 +210,7 @@ if(WITH_OPENVDB) endif() if(WITH_MATERIALX) + add_definitions(-DWITH_MATERIALX) list(APPEND LIB MaterialXCore) endif() diff --git a/source/blender/io/usd/hydra/material.cc b/source/blender/io/usd/hydra/material.cc index e986e6e20164..2ce3f52e5e26 100644 --- a/source/blender/io/usd/hydra/material.cc +++ b/source/blender/io/usd/hydra/material.cc @@ -12,8 +12,10 @@ #include #include +#ifdef WITH_MATERIALX #include #include +#endif #include "MEM_guardedalloc.h" @@ -73,6 +75,7 @@ void MaterialData::init() image_cache_file_path()}; /* Create USD material. */ pxr::UsdShadeMaterial usd_material; +#ifdef WITH_MATERIALX if (scene_delegate_->use_materialx) { MaterialX::DocumentPtr doc = blender::nodes::materialx::export_to_materialx( scene_delegate_->depsgraph, (Material *)id); @@ -85,8 +88,12 @@ void MaterialData::init() } } else { +#endif usd_material = usd::create_usd_material(export_context, material_path, (Material *)id, "st"); +#ifdef WITH_MATERIALX } +#endif + /* Convert USD material to Hydra material network map, adapted for render delegate. */ const pxr::HdRenderDelegate *render_delegate = -- 2.30.2 From 339c16bcf8afc7ed6347082ef984d443c488a9ee Mon Sep 17 00:00:00 2001 From: "georgiy.m.markelov@gmail.com" Date: Tue, 12 Sep 2023 14:21:42 +0300 Subject: [PATCH 2/9] MaterialX: moved clog includes to general list --- source/blender/nodes/shader/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/blender/nodes/shader/CMakeLists.txt b/source/blender/nodes/shader/CMakeLists.txt index d1e953629e80..4d557db93119 100644 --- a/source/blender/nodes/shader/CMakeLists.txt +++ b/source/blender/nodes/shader/CMakeLists.txt @@ -16,6 +16,7 @@ set(INC ../../makesrna ../../render ../../windowmanager + ../../../../intern/clog ../../../../intern/sky/include # RNA_prototypes.h ${CMAKE_BINARY_DIR}/source/blender/makesrna @@ -24,8 +25,7 @@ set(INC if(WITH_HYDRA) list(APPEND INC ../../io/usd - ../../../../intern/clog -) + ) add_definitions(-DWITH_HYDRA) endif() -- 2.30.2 From 54a22c7e6fbdcaf176a2264fd11242bf6f1f9ed8 Mon Sep 17 00:00:00 2001 From: "georgiy.m.markelov@gmail.com" Date: Tue, 12 Sep 2023 15:07:34 +0300 Subject: [PATCH 3/9] MaterialX: added comment about NodeItem class --- source/blender/nodes/shader/materialx/nodes/node_item.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/blender/nodes/shader/materialx/nodes/node_item.h b/source/blender/nodes/shader/materialx/nodes/node_item.h index f67adcd11133..8c624fef7157 100644 --- a/source/blender/nodes/shader/materialx/nodes/node_item.h +++ b/source/blender/nodes/shader/materialx/nodes/node_item.h @@ -8,6 +8,9 @@ namespace blender::nodes::materialx { +/* This class serves as abstraction from MateralX API. It implements arithmetic operations, + * convertions between different types, adding new nodes, setting inputs, etc. + * All work should be done via this class instead of using MaterialX API directly. */ class NodeItem { public: enum class Type { -- 2.30.2 From c9ae63a427201996f84202c022e78ef9c78bf012 Mon Sep 17 00:00:00 2001 From: "georgiy.m.markelov@gmail.com" Date: Tue, 12 Sep 2023 15:18:18 +0300 Subject: [PATCH 4/9] MaterialX: make format --- source/blender/io/usd/hydra/material.cc | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/source/blender/io/usd/hydra/material.cc b/source/blender/io/usd/hydra/material.cc index 2ce3f52e5e26..afef403f5761 100644 --- a/source/blender/io/usd/hydra/material.cc +++ b/source/blender/io/usd/hydra/material.cc @@ -13,8 +13,8 @@ #include #ifdef WITH_MATERIALX -#include -#include +# include +# include #endif #include "MEM_guardedalloc.h" @@ -94,7 +94,6 @@ void MaterialData::init() } #endif - /* Convert USD material to Hydra material network map, adapted for render delegate. */ const pxr::HdRenderDelegate *render_delegate = scene_delegate_->GetRenderIndex().GetRenderDelegate(); -- 2.30.2 From e61abdf738be7a29b1f08e523066aae1843f4b69 Mon Sep 17 00:00:00 2001 From: "georgiy.m.markelov@gmail.com" Date: Tue, 12 Sep 2023 19:29:10 +0300 Subject: [PATCH 5/9] Hydra: added ifdef for MaterialX --- source/blender/io/usd/hydra/material.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/source/blender/io/usd/hydra/material.cc b/source/blender/io/usd/hydra/material.cc index afef403f5761..9cd87568b02a 100644 --- a/source/blender/io/usd/hydra/material.cc +++ b/source/blender/io/usd/hydra/material.cc @@ -35,8 +35,9 @@ #include "intern/usd_exporter_context.h" #include "intern/usd_writer_material.h" -#include "shader/materialx/material.h" - +#ifdef WITH_MATERIALX +# include "shader/materialx/material.h" +#endif namespace blender::io::hydra { MaterialData::MaterialData(HydraSceneDelegate *scene_delegate, -- 2.30.2 From b9dcad1f863a933424872553c8ec614d222c2959 Mon Sep 17 00:00:00 2001 From: "georgiy.m.markelov@gmail.com" Date: Wed, 13 Sep 2023 16:29:49 +0300 Subject: [PATCH 6/9] MaterialX: add #ifdef WITH_MATERIALX --- source/blender/nodes/shader/node_shader_util.hh | 8 +++++++- .../blender/nodes/shader/nodes/node_shader_add_shader.cc | 3 +++ .../blender/nodes/shader/nodes/node_shader_blackbody.cc | 2 ++ .../blender/nodes/shader/nodes/node_shader_brightness.cc | 2 ++ .../nodes/shader/nodes/node_shader_bsdf_diffuse.cc | 2 ++ .../nodes/shader/nodes/node_shader_bsdf_principled.cc | 2 ++ source/blender/nodes/shader/nodes/node_shader_clamp.cc | 2 ++ .../blender/nodes/shader/nodes/node_shader_color_ramp.cc | 3 +++ source/blender/nodes/shader/nodes/node_shader_curves.cc | 6 ++++++ source/blender/nodes/shader/nodes/node_shader_emission.cc | 2 ++ source/blender/nodes/shader/nodes/node_shader_gamma.cc | 2 ++ .../blender/nodes/shader/nodes/node_shader_hueSatVal.cc | 2 ++ source/blender/nodes/shader/nodes/node_shader_invert.cc | 2 ++ .../nodes/shader/nodes/node_shader_light_falloff.cc | 2 ++ .../blender/nodes/shader/nodes/node_shader_light_path.cc | 2 ++ .../blender/nodes/shader/nodes/node_shader_map_range.cc | 2 ++ source/blender/nodes/shader/nodes/node_shader_math.cc | 2 ++ source/blender/nodes/shader/nodes/node_shader_mix_rgb.cc | 2 ++ .../blender/nodes/shader/nodes/node_shader_mix_shader.cc | 2 ++ .../blender/nodes/shader/nodes/node_shader_normal_map.cc | 2 ++ .../nodes/shader/nodes/node_shader_output_material.cc | 2 ++ .../blender/nodes/shader/nodes/node_shader_rgb_to_bw.cc | 2 ++ .../nodes/shader/nodes/node_shader_sepcomb_color.cc | 4 ++++ .../blender/nodes/shader/nodes/node_shader_sepcomb_xyz.cc | 4 ++++ .../blender/nodes/shader/nodes/node_shader_tex_checker.cc | 2 ++ .../nodes/shader/nodes/node_shader_tex_environment.cc | 2 ++ .../blender/nodes/shader/nodes/node_shader_tex_image.cc | 2 ++ .../blender/nodes/shader/nodes/node_shader_tex_noise.cc | 2 ++ .../blender/nodes/shader/nodes/node_shader_vector_math.cc | 2 ++ 29 files changed, 73 insertions(+), 1 deletion(-) diff --git a/source/blender/nodes/shader/node_shader_util.hh b/source/blender/nodes/shader/node_shader_util.hh index a19b849136e7..dd81c6b509ac 100644 --- a/source/blender/nodes/shader/node_shader_util.hh +++ b/source/blender/nodes/shader/node_shader_util.hh @@ -22,7 +22,13 @@ #include "node_shader_register.hh" -#include "materialx/node_parser.h" +#ifdef WITH_MATERIALX +# include "materialx/node_parser.h" +#else +# define NODE_SHADER_MATERIALX_BEGIN \ + void node_shader_materialx(void *data, struct bNode *node, struct bNodeSocket *out) +# define NODE_SHADER_MATERIALX_END +#endif struct bContext; typedef struct bContext bContext; diff --git a/source/blender/nodes/shader/nodes/node_shader_add_shader.cc b/source/blender/nodes/shader/nodes/node_shader_add_shader.cc index ae520a0131e1..091d35c4b806 100644 --- a/source/blender/nodes/shader/nodes/node_shader_add_shader.cc +++ b/source/blender/nodes/shader/nodes/node_shader_add_shader.cc @@ -24,6 +24,7 @@ static int node_shader_gpu_add_shader(GPUMaterial *mat, NODE_SHADER_MATERIALX_BEGIN { + #ifdef WITH_MATERIALX NodeItem res = empty(); switch (to_type_) { case NodeItem::Type::BSDF: @@ -54,6 +55,7 @@ NODE_SHADER_MATERIALX_BEGIN BLI_assert_unreachable(); } return res; + #endif } NODE_SHADER_MATERIALX_END @@ -69,6 +71,7 @@ void register_node_type_sh_add_shader() sh_node_type_base(&ntype, SH_NODE_ADD_SHADER, "Add Shader", NODE_CLASS_SHADER); ntype.declare = file_ns::node_declare; ntype.gpu_fn = file_ns::node_shader_gpu_add_shader; + ntype.materialx_fn = file_ns::node_shader_materialx; nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_blackbody.cc b/source/blender/nodes/shader/nodes/node_shader_blackbody.cc index a84b0d3414e2..b5f6da387e2a 100644 --- a/source/blender/nodes/shader/nodes/node_shader_blackbody.cc +++ b/source/blender/nodes/shader/nodes/node_shader_blackbody.cc @@ -33,6 +33,7 @@ static int node_shader_gpu_blackbody(GPUMaterial *mat, NODE_SHADER_MATERIALX_BEGIN { +#ifdef WITH_MATERIALX /* TODO: This node doesn't have an implementation in MaterialX 1.38.6. * It's added in MaterialX 1.38.8. Uncomment this code after switching to 1.38.8. * @@ -42,6 +43,7 @@ NODE_SHADER_MATERIALX_BEGIN * res.set_input("temperature", temperature); * return res; */ return empty(); +#endif } NODE_SHADER_MATERIALX_END diff --git a/source/blender/nodes/shader/nodes/node_shader_brightness.cc b/source/blender/nodes/shader/nodes/node_shader_brightness.cc index 1172ebf1b926..f5fb4d9a4419 100644 --- a/source/blender/nodes/shader/nodes/node_shader_brightness.cc +++ b/source/blender/nodes/shader/nodes/node_shader_brightness.cc @@ -25,12 +25,14 @@ static int gpu_shader_brightcontrast(GPUMaterial *mat, NODE_SHADER_MATERIALX_BEGIN { +#ifdef WITH_MATERIALX NodeItem color = get_input_value("Color", NodeItem::Type::Color3); NodeItem bright = get_input_value("Bright", NodeItem::Type::Float); NodeItem contrast = get_input_value("Contrast", NodeItem::Type::Float); /* This formula was given from OSL shader code in Cycles. */ return (bright + color * (contrast + val(1.0f)) - contrast * val(0.5f)).max(val(0.0f)); +#endif } NODE_SHADER_MATERIALX_END diff --git a/source/blender/nodes/shader/nodes/node_shader_bsdf_diffuse.cc b/source/blender/nodes/shader/nodes/node_shader_bsdf_diffuse.cc index 3e05d4fd2027..57715f945434 100644 --- a/source/blender/nodes/shader/nodes/node_shader_bsdf_diffuse.cc +++ b/source/blender/nodes/shader/nodes/node_shader_bsdf_diffuse.cc @@ -36,6 +36,7 @@ static int node_shader_gpu_bsdf_diffuse(GPUMaterial *mat, NODE_SHADER_MATERIALX_BEGIN { +#ifdef WITH_MATERIALX if (to_type_ != NodeItem::Type::BSDF) { return empty(); } @@ -51,6 +52,7 @@ NODE_SHADER_MATERIALX_BEGIN res.set_input("normal", normal); } return res; +#endif } NODE_SHADER_MATERIALX_END diff --git a/source/blender/nodes/shader/nodes/node_shader_bsdf_principled.cc b/source/blender/nodes/shader/nodes/node_shader_bsdf_principled.cc index 55d55a8ca37e..e7dc87f24bef 100644 --- a/source/blender/nodes/shader/nodes/node_shader_bsdf_principled.cc +++ b/source/blender/nodes/shader/nodes/node_shader_bsdf_principled.cc @@ -255,6 +255,7 @@ static void node_shader_update_principled(bNodeTree *ntree, bNode *node) NODE_SHADER_MATERIALX_BEGIN { +#ifdef WITH_MATERIALX if (to_type_ != NodeItem::Type::SurfaceShader) { /* TODO: implement for BSDF and EDF */ return empty(); @@ -343,6 +344,7 @@ NODE_SHADER_MATERIALX_BEGIN res.set_input("emission_color", emission); return res; +#endif } NODE_SHADER_MATERIALX_END diff --git a/source/blender/nodes/shader/nodes/node_shader_clamp.cc b/source/blender/nodes/shader/nodes/node_shader_clamp.cc index 576b8eebee40..360472658809 100644 --- a/source/blender/nodes/shader/nodes/node_shader_clamp.cc +++ b/source/blender/nodes/shader/nodes/node_shader_clamp.cc @@ -72,6 +72,7 @@ static void sh_node_clamp_build_multi_function(NodeMultiFunctionBuilder &builder NODE_SHADER_MATERIALX_BEGIN { +#ifdef WITH_MATERIALX auto type = node_->custom1; NodeItem value = get_input_value("Value", NodeItem::Type::Float); NodeItem min = get_input_value("Min", NodeItem::Type::Float); @@ -86,6 +87,7 @@ NODE_SHADER_MATERIALX_BEGIN res = value.clamp(min, max); } return res; +#endif } NODE_SHADER_MATERIALX_END diff --git a/source/blender/nodes/shader/nodes/node_shader_color_ramp.cc b/source/blender/nodes/shader/nodes/node_shader_color_ramp.cc index dbac50fa0e01..c9f9a4f98909 100644 --- a/source/blender/nodes/shader/nodes/node_shader_color_ramp.cc +++ b/source/blender/nodes/shader/nodes/node_shader_color_ramp.cc @@ -138,8 +138,11 @@ static void sh_node_valtorgb_build_multi_function(nodes::NodeMultiFunctionBuilde NODE_SHADER_MATERIALX_BEGIN { +#ifdef WITH_MATERIALX + /* TODO: Implement */ return empty(); +#endif } NODE_SHADER_MATERIALX_END diff --git a/source/blender/nodes/shader/nodes/node_shader_curves.cc b/source/blender/nodes/shader/nodes/node_shader_curves.cc index 046d16d84b1e..f2de3359db54 100644 --- a/source/blender/nodes/shader/nodes/node_shader_curves.cc +++ b/source/blender/nodes/shader/nodes/node_shader_curves.cc @@ -111,8 +111,10 @@ static void sh_node_curve_vec_build_multi_function(NodeMultiFunctionBuilder &bui NODE_SHADER_MATERIALX_BEGIN { +#ifdef WITH_MATERIALX /* TODO: implement */ return get_input_value("Value", NodeItem::Type::Vector3); +#endif } NODE_SHADER_MATERIALX_END @@ -261,8 +263,10 @@ static void sh_node_curve_rgb_build_multi_function(NodeMultiFunctionBuilder &bui NODE_SHADER_MATERIALX_BEGIN { +#ifdef WITH_MATERIALX /* TODO: implement */ return get_input_value("Color", NodeItem::Type::Color4); +#endif } NODE_SHADER_MATERIALX_END @@ -387,8 +391,10 @@ static void sh_node_curve_float_build_multi_function(NodeMultiFunctionBuilder &b NODE_SHADER_MATERIALX_BEGIN { +#ifdef WITH_MATERIALX /* TODO: implement */ return get_input_value("Value", NodeItem::Type::Float); +#endif } NODE_SHADER_MATERIALX_END diff --git a/source/blender/nodes/shader/nodes/node_shader_emission.cc b/source/blender/nodes/shader/nodes/node_shader_emission.cc index 5f2778c8cb54..aa74b06b5866 100644 --- a/source/blender/nodes/shader/nodes/node_shader_emission.cc +++ b/source/blender/nodes/shader/nodes/node_shader_emission.cc @@ -26,6 +26,7 @@ static int node_shader_gpu_emission(GPUMaterial *mat, NODE_SHADER_MATERIALX_BEGIN { +#ifdef WITH_MATERIALX if (to_type_ != NodeItem::Type::EDF) { return empty(); } @@ -36,6 +37,7 @@ NODE_SHADER_MATERIALX_BEGIN NodeItem res = create_node("uniform_edf", NodeItem::Type::EDF); res.set_input("color", color * strength); return res; +#endif } NODE_SHADER_MATERIALX_END diff --git a/source/blender/nodes/shader/nodes/node_shader_gamma.cc b/source/blender/nodes/shader/nodes/node_shader_gamma.cc index 8492b44fc911..11855d70c3d6 100644 --- a/source/blender/nodes/shader/nodes/node_shader_gamma.cc +++ b/source/blender/nodes/shader/nodes/node_shader_gamma.cc @@ -24,9 +24,11 @@ static int node_shader_gpu_gamma(GPUMaterial *mat, } NODE_SHADER_MATERIALX_BEGIN { +#ifdef WITH_MATERIALX NodeItem color = get_input_value("Color", NodeItem::Type::Color4); NodeItem gamma = get_input_value("Gamma", NodeItem::Type::Float); return color ^ gamma; +#endif } NODE_SHADER_MATERIALX_END diff --git a/source/blender/nodes/shader/nodes/node_shader_hueSatVal.cc b/source/blender/nodes/shader/nodes/node_shader_hueSatVal.cc index afcef6cd59ce..7f8a6055398a 100644 --- a/source/blender/nodes/shader/nodes/node_shader_hueSatVal.cc +++ b/source/blender/nodes/shader/nodes/node_shader_hueSatVal.cc @@ -32,6 +32,7 @@ static int gpu_shader_hue_sat(GPUMaterial *mat, NODE_SHADER_MATERIALX_BEGIN { +#ifdef WITH_MATERIALX /* TODO: implement fac */ NodeItem hue = get_input_value("Hue", NodeItem::Type::Float); NodeItem saturation = get_input_value("Saturation", NodeItem::Type::Float); @@ -51,6 +52,7 @@ NODE_SHADER_MATERIALX_BEGIN res.set_input("in", color); res.set_input("amount", combine); return res; +#endif } NODE_SHADER_MATERIALX_END diff --git a/source/blender/nodes/shader/nodes/node_shader_invert.cc b/source/blender/nodes/shader/nodes/node_shader_invert.cc index ed0a520e9744..8fccf2516337 100644 --- a/source/blender/nodes/shader/nodes/node_shader_invert.cc +++ b/source/blender/nodes/shader/nodes/node_shader_invert.cc @@ -28,9 +28,11 @@ static int gpu_shader_invert(GPUMaterial *mat, NODE_SHADER_MATERIALX_BEGIN { +#ifdef WITH_MATERIALX NodeItem fac = get_input_value("Fac", NodeItem::Type::Float); NodeItem color = get_input_value("Color", NodeItem::Type::Color3); return fac.blend(color, fac.val(1.0f) - color); +#endif } NODE_SHADER_MATERIALX_END diff --git a/source/blender/nodes/shader/nodes/node_shader_light_falloff.cc b/source/blender/nodes/shader/nodes/node_shader_light_falloff.cc index 41eac7dfbf19..00d979554803 100644 --- a/source/blender/nodes/shader/nodes/node_shader_light_falloff.cc +++ b/source/blender/nodes/shader/nodes/node_shader_light_falloff.cc @@ -26,12 +26,14 @@ static int node_shader_gpu_light_falloff(GPUMaterial *mat, NODE_SHADER_MATERIALX_BEGIN { +#ifdef WITH_MATERIALX NodeItem strength = get_input_value("Strength", NodeItem::Type::Float); NodeItem smooth = get_input_value("Smooth", NodeItem::Type::Float); /* This node isn't supported by MaterialX. This formula was given from OSL shader code in Cycles * node_light_falloff.osl. Considered ray_length=1.0f. */ return strength * val(1.0f) / (smooth + val(1.0f)); +#endif } NODE_SHADER_MATERIALX_END diff --git a/source/blender/nodes/shader/nodes/node_shader_light_path.cc b/source/blender/nodes/shader/nodes/node_shader_light_path.cc index f3f3b314031d..a9be2342c3fb 100644 --- a/source/blender/nodes/shader/nodes/node_shader_light_path.cc +++ b/source/blender/nodes/shader/nodes/node_shader_light_path.cc @@ -34,6 +34,7 @@ static int node_shader_gpu_light_path(GPUMaterial *mat, NODE_SHADER_MATERIALX_BEGIN { +#ifdef WITH_MATERIALX /* This node isn't supported by MaterialX. Only default values returned. */ if (STREQ(socket_out_->name, "Is Camera Ray")) { return val(1.0f); @@ -42,6 +43,7 @@ NODE_SHADER_MATERIALX_BEGIN return val(1.0f); } return val(0.0f); +#endif } NODE_SHADER_MATERIALX_END diff --git a/source/blender/nodes/shader/nodes/node_shader_map_range.cc b/source/blender/nodes/shader/nodes/node_shader_map_range.cc index e2c8123d3fc6..cb22947014a5 100644 --- a/source/blender/nodes/shader/nodes/node_shader_map_range.cc +++ b/source/blender/nodes/shader/nodes/node_shader_map_range.cc @@ -444,6 +444,7 @@ static void sh_node_map_range_build_multi_function(NodeMultiFunctionBuilder &bui NODE_SHADER_MATERIALX_BEGIN { +#ifdef WITH_MATERIALX /* TODO: Implement steps */ const NodeMapRange *map_range = static_cast(node_->storage); @@ -482,6 +483,7 @@ NODE_SHADER_MATERIALX_BEGIN res.set_input("outhigh", to_max); res.set_input("doclamp", val(bool(map_range->clamp))); return res; +#endif } NODE_SHADER_MATERIALX_END diff --git a/source/blender/nodes/shader/nodes/node_shader_math.cc b/source/blender/nodes/shader/nodes/node_shader_math.cc index aacf978c962a..6903392d8557 100644 --- a/source/blender/nodes/shader/nodes/node_shader_math.cc +++ b/source/blender/nodes/shader/nodes/node_shader_math.cc @@ -179,6 +179,7 @@ static void sh_node_math_build_multi_function(NodeMultiFunctionBuilder &builder) NODE_SHADER_MATERIALX_BEGIN { +#ifdef WITH_MATERIALX CLG_LogRef *LOG_MATERIALX_SHADER = materialx::LOG_MATERIALX_SHADER; /* TODO: finish some math operations */ @@ -338,6 +339,7 @@ NODE_SHADER_MATERIALX_BEGIN } return res; +#endif } NODE_SHADER_MATERIALX_END diff --git a/source/blender/nodes/shader/nodes/node_shader_mix_rgb.cc b/source/blender/nodes/shader/nodes/node_shader_mix_rgb.cc index 2a3095468189..abb56d575a21 100644 --- a/source/blender/nodes/shader/nodes/node_shader_mix_rgb.cc +++ b/source/blender/nodes/shader/nodes/node_shader_mix_rgb.cc @@ -152,8 +152,10 @@ static void sh_node_mix_rgb_build_multi_function(NodeMultiFunctionBuilder &build NODE_SHADER_MATERIALX_BEGIN { +#ifdef WITH_MATERIALX /* TODO: Implement */ return empty(); +#endif } NODE_SHADER_MATERIALX_END diff --git a/source/blender/nodes/shader/nodes/node_shader_mix_shader.cc b/source/blender/nodes/shader/nodes/node_shader_mix_shader.cc index eae8ca96526b..f3d5101bec13 100644 --- a/source/blender/nodes/shader/nodes/node_shader_mix_shader.cc +++ b/source/blender/nodes/shader/nodes/node_shader_mix_shader.cc @@ -25,6 +25,7 @@ static int node_shader_gpu_mix_shader(GPUMaterial *mat, NODE_SHADER_MATERIALX_BEGIN { +#ifdef WITH_MATERIALX NodeItem res = empty(); switch (to_type_) { case NodeItem::Type::BSDF: @@ -59,6 +60,7 @@ NODE_SHADER_MATERIALX_BEGIN BLI_assert_unreachable(); } return res; +#endif } NODE_SHADER_MATERIALX_END diff --git a/source/blender/nodes/shader/nodes/node_shader_normal_map.cc b/source/blender/nodes/shader/nodes/node_shader_normal_map.cc index 0e54a44a1740..4fdee55319e9 100644 --- a/source/blender/nodes/shader/nodes/node_shader_normal_map.cc +++ b/source/blender/nodes/shader/nodes/node_shader_normal_map.cc @@ -124,6 +124,7 @@ static int gpu_shader_normal_map(GPUMaterial *mat, NODE_SHADER_MATERIALX_BEGIN { +#ifdef WITH_MATERIALX NodeShaderNormalMap *normal_map_node = static_cast(node_->storage); NodeItem color = get_input_value("Color", NodeItem::Type::Color3); NodeItem strength = get_input_value("Strength", NodeItem::Type::Float); @@ -151,6 +152,7 @@ NODE_SHADER_MATERIALX_BEGIN res.set_input("scale", strength); res.set_input("space", val(space)); return res; +#endif } NODE_SHADER_MATERIALX_END diff --git a/source/blender/nodes/shader/nodes/node_shader_output_material.cc b/source/blender/nodes/shader/nodes/node_shader_output_material.cc index db008c872622..bb5305c905fa 100644 --- a/source/blender/nodes/shader/nodes/node_shader_output_material.cc +++ b/source/blender/nodes/shader/nodes/node_shader_output_material.cc @@ -45,6 +45,7 @@ static int node_shader_gpu_output_material(GPUMaterial *mat, NODE_SHADER_MATERIALX_BEGIN { +#ifdef WITH_MATERIALX NodeItem bsdf = get_input_link("Surface", NodeItem::Type::BSDF); NodeItem edf = get_input_link("Surface", NodeItem::Type::EDF); NodeItem surface = empty(); @@ -63,6 +64,7 @@ NODE_SHADER_MATERIALX_BEGIN NodeItem res = create_node("surfacematerial", NodeItem::Type::Material); res.set_input("surfaceshader", surface); return res; +#endif } NODE_SHADER_MATERIALX_END diff --git a/source/blender/nodes/shader/nodes/node_shader_rgb_to_bw.cc b/source/blender/nodes/shader/nodes/node_shader_rgb_to_bw.cc index e7bb9c948e00..42d315a53704 100644 --- a/source/blender/nodes/shader/nodes/node_shader_rgb_to_bw.cc +++ b/source/blender/nodes/shader/nodes/node_shader_rgb_to_bw.cc @@ -29,11 +29,13 @@ static int gpu_shader_rgbtobw(GPUMaterial *mat, NODE_SHADER_MATERIALX_BEGIN { +#ifdef WITH_MATERIALX NodeItem color = get_input_value("Color", NodeItem::Type::Color4); NodeItem res = create_node("luminance", NodeItem::Type::Color4); res.set_input("in", color); return res; +#endif } NODE_SHADER_MATERIALX_END diff --git a/source/blender/nodes/shader/nodes/node_shader_sepcomb_color.cc b/source/blender/nodes/shader/nodes/node_shader_sepcomb_color.cc index e566eb838f47..a976b366420c 100644 --- a/source/blender/nodes/shader/nodes/node_shader_sepcomb_color.cc +++ b/source/blender/nodes/shader/nodes/node_shader_sepcomb_color.cc @@ -70,6 +70,7 @@ static int gpu_shader_sepcolor(GPUMaterial *mat, NODE_SHADER_MATERIALX_BEGIN { +#ifdef WITH_MATERIALX int mode = static_cast(node_->storage)->mode; NodeItem color = get_input_value("Color", NodeItem::Type::Color3); @@ -90,6 +91,7 @@ NODE_SHADER_MATERIALX_BEGIN int index = STREQ(socket_out_->name, "Red") ? 0 : STREQ(socket_out_->name, "Green") ? 1 : 2; return convert.extract(index); +#endif } NODE_SHADER_MATERIALX_END @@ -164,6 +166,7 @@ static int gpu_shader_combcolor(GPUMaterial *mat, NODE_SHADER_MATERIALX_BEGIN { +#ifdef WITH_MATERIALX int mode = static_cast(node_->storage)->mode; NodeItem red = get_input_value("Red", NodeItem::Type::Float); NodeItem green = get_input_value("Green", NodeItem::Type::Float); @@ -189,6 +192,7 @@ NODE_SHADER_MATERIALX_BEGIN BLI_assert_unreachable(); } return res; +#endif } NODE_SHADER_MATERIALX_END diff --git a/source/blender/nodes/shader/nodes/node_shader_sepcomb_xyz.cc b/source/blender/nodes/shader/nodes/node_shader_sepcomb_xyz.cc index bb4530c9fe10..48ef91b368d6 100644 --- a/source/blender/nodes/shader/nodes/node_shader_sepcomb_xyz.cc +++ b/source/blender/nodes/shader/nodes/node_shader_sepcomb_xyz.cc @@ -92,9 +92,11 @@ static void sh_node_sepxyz_build_multi_function(NodeMultiFunctionBuilder &builde NODE_SHADER_MATERIALX_BEGIN { +#ifdef WITH_MATERIALX NodeItem vector = get_input_value("Vector", NodeItem::Type::Vector3); int index = STREQ(socket_out_->name, "X") ? 0 : STREQ(socket_out_->name, "Y") ? 1 : 2; return vector.extract(index); +#endif } NODE_SHADER_MATERIALX_END @@ -146,6 +148,7 @@ static void sh_node_combxyz_build_multi_function(NodeMultiFunctionBuilder &build NODE_SHADER_MATERIALX_BEGIN { +#ifdef WITH_MATERIALX NodeItem x = get_input_value("X", NodeItem::Type::Float); NodeItem y = get_input_value("Y", NodeItem::Type::Float); NodeItem z = get_input_value("Z", NodeItem::Type::Float); @@ -155,6 +158,7 @@ NODE_SHADER_MATERIALX_BEGIN res.set_input("in2", y); res.set_input("in3", z); return res; +#endif } NODE_SHADER_MATERIALX_END diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_checker.cc b/source/blender/nodes/shader/nodes/node_shader_tex_checker.cc index 3ecfb83f0483..26710c7113c8 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_checker.cc +++ b/source/blender/nodes/shader/nodes/node_shader_tex_checker.cc @@ -104,6 +104,7 @@ static void sh_node_tex_checker_build_multi_function(NodeMultiFunctionBuilder &b NODE_SHADER_MATERIALX_BEGIN { +#ifdef WITH_MATERIALX NodeItem vector = get_input_link("Vector", NodeItem::Type::Vector2); if (!vector) { vector = texcoord_node(); @@ -119,6 +120,7 @@ NODE_SHADER_MATERIALX_BEGIN vector = (vector * scale) % val(2.0f); return (vector.extract(0).floor() + vector.extract(1).floor()) .if_else(NodeItem::CompareOp::Eq, val(1.0f), value1, value2); +#endif } NODE_SHADER_MATERIALX_END diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_environment.cc b/source/blender/nodes/shader/nodes/node_shader_tex_environment.cc index ff9935c411c4..2c9f8403d7eb 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_environment.cc +++ b/source/blender/nodes/shader/nodes/node_shader_tex_environment.cc @@ -129,8 +129,10 @@ static int node_shader_gpu_tex_environment(GPUMaterial *mat, NODE_SHADER_MATERIALX_BEGIN { +#ifdef WITH_MATERIALX /* TODO: Implement */ return empty(); +#endif } NODE_SHADER_MATERIALX_END diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_image.cc b/source/blender/nodes/shader/nodes/node_shader_tex_image.cc index 0e8ecf3aba3b..84c52253bf7f 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_image.cc +++ b/source/blender/nodes/shader/nodes/node_shader_tex_image.cc @@ -178,6 +178,7 @@ static int node_shader_gpu_tex_image(GPUMaterial *mat, NODE_SHADER_MATERIALX_BEGIN { +#ifdef WITH_MATERIALX NodeItem res = val(MaterialX::Color4(1.0f, 0.0f, 1.0f, 1.0f)); Image *image = (Image *)node_->id; @@ -242,6 +243,7 @@ NODE_SHADER_MATERIALX_BEGIN res = res.extract(3); } return res; +#endif } NODE_SHADER_MATERIALX_END diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_noise.cc b/source/blender/nodes/shader/nodes/node_shader_tex_noise.cc index bc6ff5a5cff0..5981913ad2f8 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_noise.cc +++ b/source/blender/nodes/shader/nodes/node_shader_tex_noise.cc @@ -259,6 +259,7 @@ static void sh_node_noise_build_multi_function(NodeMultiFunctionBuilder &builder NODE_SHADER_MATERIALX_BEGIN { +#ifdef WITH_MATERIALX NodeItem scale = get_input_value("Scale", NodeItem::Type::Float); NodeItem detail = get_input_value("Detail", NodeItem::Type::Float); NodeItem lacunarity = get_input_value("Lacunarity", NodeItem::Type::Float); @@ -273,6 +274,7 @@ NODE_SHADER_MATERIALX_BEGIN } res.set_input("lacunarity", lacunarity); return res; +#endif } NODE_SHADER_MATERIALX_END diff --git a/source/blender/nodes/shader/nodes/node_shader_vector_math.cc b/source/blender/nodes/shader/nodes/node_shader_vector_math.cc index bf072379705b..3137caf9abf5 100644 --- a/source/blender/nodes/shader/nodes/node_shader_vector_math.cc +++ b/source/blender/nodes/shader/nodes/node_shader_vector_math.cc @@ -318,6 +318,7 @@ static void sh_node_vector_math_build_multi_function(NodeMultiFunctionBuilder &b NODE_SHADER_MATERIALX_BEGIN { +#ifdef WITH_MATERIALX CLG_LogRef *LOG_MATERIALX_SHADER = materialx::LOG_MATERIALX_SHADER; /* TODO: finish some math operations */ @@ -428,6 +429,7 @@ NODE_SHADER_MATERIALX_BEGIN } return res; +#endif } NODE_SHADER_MATERIALX_END -- 2.30.2 From 7f72cfba3081448d73629dd231e5474e8b25e513 Mon Sep 17 00:00:00 2001 From: "georgiy.m.markelov@gmail.com" Date: Wed, 13 Sep 2023 16:31:06 +0300 Subject: [PATCH 7/9] MaterialX: make format --- source/blender/nodes/shader/nodes/node_shader_add_shader.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/blender/nodes/shader/nodes/node_shader_add_shader.cc b/source/blender/nodes/shader/nodes/node_shader_add_shader.cc index 091d35c4b806..f1aeda29585d 100644 --- a/source/blender/nodes/shader/nodes/node_shader_add_shader.cc +++ b/source/blender/nodes/shader/nodes/node_shader_add_shader.cc @@ -24,7 +24,7 @@ static int node_shader_gpu_add_shader(GPUMaterial *mat, NODE_SHADER_MATERIALX_BEGIN { - #ifdef WITH_MATERIALX +#ifdef WITH_MATERIALX NodeItem res = empty(); switch (to_type_) { case NodeItem::Type::BSDF: @@ -55,7 +55,7 @@ NODE_SHADER_MATERIALX_BEGIN BLI_assert_unreachable(); } return res; - #endif +#endif } NODE_SHADER_MATERIALX_END -- 2.30.2 From df6996f3a6eef591bed76b7cf8eea3e78c849cd4 Mon Sep 17 00:00:00 2001 From: "georgiy.m.markelov@gmail.com" Date: Wed, 13 Sep 2023 17:09:06 +0300 Subject: [PATCH 8/9] MaterialX: code improvements --- source/blender/io/usd/hydra/material.cc | 3 +-- source/blender/nodes/shader/node_shader_util.hh | 3 +-- .../nodes/shader/nodes/node_shader_add_shader.cc | 4 ++-- .../nodes/shader/nodes/node_shader_blackbody.cc | 4 ++-- .../nodes/shader/nodes/node_shader_brightness.cc | 4 ++-- .../nodes/shader/nodes/node_shader_bsdf_diffuse.cc | 4 ++-- .../shader/nodes/node_shader_bsdf_principled.cc | 4 ++-- .../blender/nodes/shader/nodes/node_shader_clamp.cc | 4 ++-- .../nodes/shader/nodes/node_shader_color_ramp.cc | 5 ++--- .../blender/nodes/shader/nodes/node_shader_curves.cc | 12 ++++++------ .../nodes/shader/nodes/node_shader_emission.cc | 4 ++-- .../blender/nodes/shader/nodes/node_shader_gamma.cc | 4 ++-- .../nodes/shader/nodes/node_shader_hueSatVal.cc | 4 ++-- .../blender/nodes/shader/nodes/node_shader_invert.cc | 4 ++-- .../nodes/shader/nodes/node_shader_light_falloff.cc | 4 ++-- .../nodes/shader/nodes/node_shader_light_path.cc | 4 ++-- .../nodes/shader/nodes/node_shader_map_range.cc | 4 ++-- .../blender/nodes/shader/nodes/node_shader_math.cc | 4 ++-- .../nodes/shader/nodes/node_shader_mix_rgb.cc | 4 ++-- .../nodes/shader/nodes/node_shader_mix_shader.cc | 4 ++-- .../nodes/shader/nodes/node_shader_normal_map.cc | 4 ++-- .../shader/nodes/node_shader_output_material.cc | 4 ++-- .../nodes/shader/nodes/node_shader_rgb_to_bw.cc | 4 ++-- .../nodes/shader/nodes/node_shader_sepcomb_color.cc | 8 ++++---- .../nodes/shader/nodes/node_shader_sepcomb_xyz.cc | 8 ++++---- .../nodes/shader/nodes/node_shader_tex_checker.cc | 4 ++-- .../shader/nodes/node_shader_tex_environment.cc | 4 ++-- .../nodes/shader/nodes/node_shader_tex_image.cc | 4 ++-- .../nodes/shader/nodes/node_shader_tex_noise.cc | 4 ++-- .../nodes/shader/nodes/node_shader_vector_math.cc | 4 ++-- 30 files changed, 66 insertions(+), 69 deletions(-) diff --git a/source/blender/io/usd/hydra/material.cc b/source/blender/io/usd/hydra/material.cc index 9cd87568b02a..6df0a798c21b 100644 --- a/source/blender/io/usd/hydra/material.cc +++ b/source/blender/io/usd/hydra/material.cc @@ -90,10 +90,9 @@ void MaterialData::init() } else { #endif + { usd_material = usd::create_usd_material(export_context, material_path, (Material *)id, "st"); -#ifdef WITH_MATERIALX } -#endif /* Convert USD material to Hydra material network map, adapted for render delegate. */ const pxr::HdRenderDelegate *render_delegate = diff --git a/source/blender/nodes/shader/node_shader_util.hh b/source/blender/nodes/shader/node_shader_util.hh index dd81c6b509ac..a1235fd969cf 100644 --- a/source/blender/nodes/shader/node_shader_util.hh +++ b/source/blender/nodes/shader/node_shader_util.hh @@ -25,8 +25,7 @@ #ifdef WITH_MATERIALX # include "materialx/node_parser.h" #else -# define NODE_SHADER_MATERIALX_BEGIN \ - void node_shader_materialx(void *data, struct bNode *node, struct bNodeSocket *out) +# define NODE_SHADER_MATERIALX_BEGIN NodeMaterialXExecFunction node_shader_materialx = nullptr; # define NODE_SHADER_MATERIALX_END #endif diff --git a/source/blender/nodes/shader/nodes/node_shader_add_shader.cc b/source/blender/nodes/shader/nodes/node_shader_add_shader.cc index f1aeda29585d..7f5ba0162d79 100644 --- a/source/blender/nodes/shader/nodes/node_shader_add_shader.cc +++ b/source/blender/nodes/shader/nodes/node_shader_add_shader.cc @@ -23,8 +23,8 @@ static int node_shader_gpu_add_shader(GPUMaterial *mat, } NODE_SHADER_MATERIALX_BEGIN -{ #ifdef WITH_MATERIALX +{ NodeItem res = empty(); switch (to_type_) { case NodeItem::Type::BSDF: @@ -55,8 +55,8 @@ NODE_SHADER_MATERIALX_BEGIN BLI_assert_unreachable(); } return res; -#endif } +#endif NODE_SHADER_MATERIALX_END } // namespace blender::nodes::node_shader_add_shader_cc diff --git a/source/blender/nodes/shader/nodes/node_shader_blackbody.cc b/source/blender/nodes/shader/nodes/node_shader_blackbody.cc index b5f6da387e2a..d88ae1d5d545 100644 --- a/source/blender/nodes/shader/nodes/node_shader_blackbody.cc +++ b/source/blender/nodes/shader/nodes/node_shader_blackbody.cc @@ -32,8 +32,8 @@ static int node_shader_gpu_blackbody(GPUMaterial *mat, } NODE_SHADER_MATERIALX_BEGIN -{ #ifdef WITH_MATERIALX +{ /* TODO: This node doesn't have an implementation in MaterialX 1.38.6. * It's added in MaterialX 1.38.8. Uncomment this code after switching to 1.38.8. * @@ -43,8 +43,8 @@ NODE_SHADER_MATERIALX_BEGIN * res.set_input("temperature", temperature); * return res; */ return empty(); -#endif } +#endif NODE_SHADER_MATERIALX_END } // namespace blender::nodes::node_shader_blackbody_cc diff --git a/source/blender/nodes/shader/nodes/node_shader_brightness.cc b/source/blender/nodes/shader/nodes/node_shader_brightness.cc index f5fb4d9a4419..1abc0c783ad4 100644 --- a/source/blender/nodes/shader/nodes/node_shader_brightness.cc +++ b/source/blender/nodes/shader/nodes/node_shader_brightness.cc @@ -24,16 +24,16 @@ static int gpu_shader_brightcontrast(GPUMaterial *mat, } NODE_SHADER_MATERIALX_BEGIN -{ #ifdef WITH_MATERIALX +{ NodeItem color = get_input_value("Color", NodeItem::Type::Color3); NodeItem bright = get_input_value("Bright", NodeItem::Type::Float); NodeItem contrast = get_input_value("Contrast", NodeItem::Type::Float); /* This formula was given from OSL shader code in Cycles. */ return (bright + color * (contrast + val(1.0f)) - contrast * val(0.5f)).max(val(0.0f)); -#endif } +#endif NODE_SHADER_MATERIALX_END } // namespace blender::nodes::node_shader_brightness_cc diff --git a/source/blender/nodes/shader/nodes/node_shader_bsdf_diffuse.cc b/source/blender/nodes/shader/nodes/node_shader_bsdf_diffuse.cc index 57715f945434..353edc5ef58e 100644 --- a/source/blender/nodes/shader/nodes/node_shader_bsdf_diffuse.cc +++ b/source/blender/nodes/shader/nodes/node_shader_bsdf_diffuse.cc @@ -35,8 +35,8 @@ static int node_shader_gpu_bsdf_diffuse(GPUMaterial *mat, } NODE_SHADER_MATERIALX_BEGIN -{ #ifdef WITH_MATERIALX +{ if (to_type_ != NodeItem::Type::BSDF) { return empty(); } @@ -52,8 +52,8 @@ NODE_SHADER_MATERIALX_BEGIN res.set_input("normal", normal); } return res; -#endif } +#endif NODE_SHADER_MATERIALX_END } // namespace blender::nodes::node_shader_bsdf_diffuse_cc diff --git a/source/blender/nodes/shader/nodes/node_shader_bsdf_principled.cc b/source/blender/nodes/shader/nodes/node_shader_bsdf_principled.cc index e7dc87f24bef..3c31389a0847 100644 --- a/source/blender/nodes/shader/nodes/node_shader_bsdf_principled.cc +++ b/source/blender/nodes/shader/nodes/node_shader_bsdf_principled.cc @@ -254,8 +254,8 @@ static void node_shader_update_principled(bNodeTree *ntree, bNode *node) } NODE_SHADER_MATERIALX_BEGIN -{ #ifdef WITH_MATERIALX +{ if (to_type_ != NodeItem::Type::SurfaceShader) { /* TODO: implement for BSDF and EDF */ return empty(); @@ -344,8 +344,8 @@ NODE_SHADER_MATERIALX_BEGIN res.set_input("emission_color", emission); return res; -#endif } +#endif NODE_SHADER_MATERIALX_END } // namespace blender::nodes::node_shader_bsdf_principled_cc diff --git a/source/blender/nodes/shader/nodes/node_shader_clamp.cc b/source/blender/nodes/shader/nodes/node_shader_clamp.cc index 360472658809..f294d8de7f83 100644 --- a/source/blender/nodes/shader/nodes/node_shader_clamp.cc +++ b/source/blender/nodes/shader/nodes/node_shader_clamp.cc @@ -71,8 +71,8 @@ static void sh_node_clamp_build_multi_function(NodeMultiFunctionBuilder &builder } NODE_SHADER_MATERIALX_BEGIN -{ #ifdef WITH_MATERIALX +{ auto type = node_->custom1; NodeItem value = get_input_value("Value", NodeItem::Type::Float); NodeItem min = get_input_value("Min", NodeItem::Type::Float); @@ -87,8 +87,8 @@ NODE_SHADER_MATERIALX_BEGIN res = value.clamp(min, max); } return res; -#endif } +#endif NODE_SHADER_MATERIALX_END } // namespace blender::nodes::node_shader_clamp_cc diff --git a/source/blender/nodes/shader/nodes/node_shader_color_ramp.cc b/source/blender/nodes/shader/nodes/node_shader_color_ramp.cc index c9f9a4f98909..1f4aace65c32 100644 --- a/source/blender/nodes/shader/nodes/node_shader_color_ramp.cc +++ b/source/blender/nodes/shader/nodes/node_shader_color_ramp.cc @@ -137,13 +137,12 @@ static void sh_node_valtorgb_build_multi_function(nodes::NodeMultiFunctionBuilde } NODE_SHADER_MATERIALX_BEGIN -{ #ifdef WITH_MATERIALX - +{ /* TODO: Implement */ return empty(); -#endif } +#endif NODE_SHADER_MATERIALX_END } // namespace blender::nodes::node_shader_color_ramp_cc diff --git a/source/blender/nodes/shader/nodes/node_shader_curves.cc b/source/blender/nodes/shader/nodes/node_shader_curves.cc index f2de3359db54..a59b99e7c4f7 100644 --- a/source/blender/nodes/shader/nodes/node_shader_curves.cc +++ b/source/blender/nodes/shader/nodes/node_shader_curves.cc @@ -110,12 +110,12 @@ static void sh_node_curve_vec_build_multi_function(NodeMultiFunctionBuilder &bui } NODE_SHADER_MATERIALX_BEGIN -{ #ifdef WITH_MATERIALX +{ /* TODO: implement */ return get_input_value("Value", NodeItem::Type::Vector3); -#endif } +#endif NODE_SHADER_MATERIALX_END } // namespace blender::nodes::node_shader_curves_cc::vec @@ -262,12 +262,12 @@ static void sh_node_curve_rgb_build_multi_function(NodeMultiFunctionBuilder &bui } NODE_SHADER_MATERIALX_BEGIN -{ #ifdef WITH_MATERIALX +{ /* TODO: implement */ return get_input_value("Color", NodeItem::Type::Color4); -#endif } +#endif NODE_SHADER_MATERIALX_END } // namespace blender::nodes::node_shader_curves_cc::rgb @@ -390,12 +390,12 @@ static void sh_node_curve_float_build_multi_function(NodeMultiFunctionBuilder &b } NODE_SHADER_MATERIALX_BEGIN -{ #ifdef WITH_MATERIALX +{ /* TODO: implement */ return get_input_value("Value", NodeItem::Type::Float); -#endif } +#endif NODE_SHADER_MATERIALX_END } // namespace blender::nodes::node_shader_curves_cc::flt diff --git a/source/blender/nodes/shader/nodes/node_shader_emission.cc b/source/blender/nodes/shader/nodes/node_shader_emission.cc index aa74b06b5866..dbd56fedc405 100644 --- a/source/blender/nodes/shader/nodes/node_shader_emission.cc +++ b/source/blender/nodes/shader/nodes/node_shader_emission.cc @@ -25,8 +25,8 @@ static int node_shader_gpu_emission(GPUMaterial *mat, } NODE_SHADER_MATERIALX_BEGIN -{ #ifdef WITH_MATERIALX +{ if (to_type_ != NodeItem::Type::EDF) { return empty(); } @@ -37,8 +37,8 @@ NODE_SHADER_MATERIALX_BEGIN NodeItem res = create_node("uniform_edf", NodeItem::Type::EDF); res.set_input("color", color * strength); return res; -#endif } +#endif NODE_SHADER_MATERIALX_END } // namespace blender::nodes::node_shader_emission_cc diff --git a/source/blender/nodes/shader/nodes/node_shader_gamma.cc b/source/blender/nodes/shader/nodes/node_shader_gamma.cc index 11855d70c3d6..13964192252e 100644 --- a/source/blender/nodes/shader/nodes/node_shader_gamma.cc +++ b/source/blender/nodes/shader/nodes/node_shader_gamma.cc @@ -23,13 +23,13 @@ static int node_shader_gpu_gamma(GPUMaterial *mat, return GPU_stack_link(mat, node, "node_gamma", in, out); } NODE_SHADER_MATERIALX_BEGIN -{ #ifdef WITH_MATERIALX +{ NodeItem color = get_input_value("Color", NodeItem::Type::Color4); NodeItem gamma = get_input_value("Gamma", NodeItem::Type::Float); return color ^ gamma; -#endif } +#endif NODE_SHADER_MATERIALX_END } // namespace blender::nodes::node_shader_gamma_cc diff --git a/source/blender/nodes/shader/nodes/node_shader_hueSatVal.cc b/source/blender/nodes/shader/nodes/node_shader_hueSatVal.cc index 7f8a6055398a..2c00df75e91a 100644 --- a/source/blender/nodes/shader/nodes/node_shader_hueSatVal.cc +++ b/source/blender/nodes/shader/nodes/node_shader_hueSatVal.cc @@ -31,8 +31,8 @@ static int gpu_shader_hue_sat(GPUMaterial *mat, } NODE_SHADER_MATERIALX_BEGIN -{ #ifdef WITH_MATERIALX +{ /* TODO: implement fac */ NodeItem hue = get_input_value("Hue", NodeItem::Type::Float); NodeItem saturation = get_input_value("Saturation", NodeItem::Type::Float); @@ -52,8 +52,8 @@ NODE_SHADER_MATERIALX_BEGIN res.set_input("in", color); res.set_input("amount", combine); return res; -#endif } +#endif NODE_SHADER_MATERIALX_END } // namespace blender::nodes::node_shader_hueSatVal_cc diff --git a/source/blender/nodes/shader/nodes/node_shader_invert.cc b/source/blender/nodes/shader/nodes/node_shader_invert.cc index 8fccf2516337..693950aa85dd 100644 --- a/source/blender/nodes/shader/nodes/node_shader_invert.cc +++ b/source/blender/nodes/shader/nodes/node_shader_invert.cc @@ -27,13 +27,13 @@ static int gpu_shader_invert(GPUMaterial *mat, } NODE_SHADER_MATERIALX_BEGIN -{ #ifdef WITH_MATERIALX +{ NodeItem fac = get_input_value("Fac", NodeItem::Type::Float); NodeItem color = get_input_value("Color", NodeItem::Type::Color3); return fac.blend(color, fac.val(1.0f) - color); -#endif } +#endif NODE_SHADER_MATERIALX_END } // namespace blender::nodes::node_shader_invert_cc diff --git a/source/blender/nodes/shader/nodes/node_shader_light_falloff.cc b/source/blender/nodes/shader/nodes/node_shader_light_falloff.cc index 00d979554803..bd5db49387f0 100644 --- a/source/blender/nodes/shader/nodes/node_shader_light_falloff.cc +++ b/source/blender/nodes/shader/nodes/node_shader_light_falloff.cc @@ -25,16 +25,16 @@ static int node_shader_gpu_light_falloff(GPUMaterial *mat, } NODE_SHADER_MATERIALX_BEGIN -{ #ifdef WITH_MATERIALX +{ NodeItem strength = get_input_value("Strength", NodeItem::Type::Float); NodeItem smooth = get_input_value("Smooth", NodeItem::Type::Float); /* This node isn't supported by MaterialX. This formula was given from OSL shader code in Cycles * node_light_falloff.osl. Considered ray_length=1.0f. */ return strength * val(1.0f) / (smooth + val(1.0f)); -#endif } +#endif NODE_SHADER_MATERIALX_END } // namespace blender::nodes::node_shader_light_falloff_cc diff --git a/source/blender/nodes/shader/nodes/node_shader_light_path.cc b/source/blender/nodes/shader/nodes/node_shader_light_path.cc index a9be2342c3fb..654688190dc4 100644 --- a/source/blender/nodes/shader/nodes/node_shader_light_path.cc +++ b/source/blender/nodes/shader/nodes/node_shader_light_path.cc @@ -33,8 +33,8 @@ static int node_shader_gpu_light_path(GPUMaterial *mat, } NODE_SHADER_MATERIALX_BEGIN -{ #ifdef WITH_MATERIALX +{ /* This node isn't supported by MaterialX. Only default values returned. */ if (STREQ(socket_out_->name, "Is Camera Ray")) { return val(1.0f); @@ -43,8 +43,8 @@ NODE_SHADER_MATERIALX_BEGIN return val(1.0f); } return val(0.0f); -#endif } +#endif NODE_SHADER_MATERIALX_END } // namespace blender::nodes::node_shader_light_path_cc diff --git a/source/blender/nodes/shader/nodes/node_shader_map_range.cc b/source/blender/nodes/shader/nodes/node_shader_map_range.cc index cb22947014a5..4823208e6e1c 100644 --- a/source/blender/nodes/shader/nodes/node_shader_map_range.cc +++ b/source/blender/nodes/shader/nodes/node_shader_map_range.cc @@ -443,8 +443,8 @@ static void sh_node_map_range_build_multi_function(NodeMultiFunctionBuilder &bui } NODE_SHADER_MATERIALX_BEGIN -{ #ifdef WITH_MATERIALX +{ /* TODO: Implement steps */ const NodeMapRange *map_range = static_cast(node_->storage); @@ -483,8 +483,8 @@ NODE_SHADER_MATERIALX_BEGIN res.set_input("outhigh", to_max); res.set_input("doclamp", val(bool(map_range->clamp))); return res; -#endif } +#endif NODE_SHADER_MATERIALX_END } // namespace blender::nodes::node_shader_map_range_cc diff --git a/source/blender/nodes/shader/nodes/node_shader_math.cc b/source/blender/nodes/shader/nodes/node_shader_math.cc index 6903392d8557..437b830d6a39 100644 --- a/source/blender/nodes/shader/nodes/node_shader_math.cc +++ b/source/blender/nodes/shader/nodes/node_shader_math.cc @@ -178,8 +178,8 @@ static void sh_node_math_build_multi_function(NodeMultiFunctionBuilder &builder) } NODE_SHADER_MATERIALX_BEGIN -{ #ifdef WITH_MATERIALX +{ CLG_LogRef *LOG_MATERIALX_SHADER = materialx::LOG_MATERIALX_SHADER; /* TODO: finish some math operations */ @@ -339,8 +339,8 @@ NODE_SHADER_MATERIALX_BEGIN } return res; -#endif } +#endif NODE_SHADER_MATERIALX_END } // namespace blender::nodes::node_shader_math_cc diff --git a/source/blender/nodes/shader/nodes/node_shader_mix_rgb.cc b/source/blender/nodes/shader/nodes/node_shader_mix_rgb.cc index abb56d575a21..322e06d74c3e 100644 --- a/source/blender/nodes/shader/nodes/node_shader_mix_rgb.cc +++ b/source/blender/nodes/shader/nodes/node_shader_mix_rgb.cc @@ -151,12 +151,12 @@ static void sh_node_mix_rgb_build_multi_function(NodeMultiFunctionBuilder &build } NODE_SHADER_MATERIALX_BEGIN -{ #ifdef WITH_MATERIALX +{ /* TODO: Implement */ return empty(); -#endif } +#endif NODE_SHADER_MATERIALX_END } // namespace blender::nodes::node_shader_mix_rgb_cc diff --git a/source/blender/nodes/shader/nodes/node_shader_mix_shader.cc b/source/blender/nodes/shader/nodes/node_shader_mix_shader.cc index f3d5101bec13..434b54515f05 100644 --- a/source/blender/nodes/shader/nodes/node_shader_mix_shader.cc +++ b/source/blender/nodes/shader/nodes/node_shader_mix_shader.cc @@ -24,8 +24,8 @@ static int node_shader_gpu_mix_shader(GPUMaterial *mat, } NODE_SHADER_MATERIALX_BEGIN -{ #ifdef WITH_MATERIALX +{ NodeItem res = empty(); switch (to_type_) { case NodeItem::Type::BSDF: @@ -60,8 +60,8 @@ NODE_SHADER_MATERIALX_BEGIN BLI_assert_unreachable(); } return res; -#endif } +#endif NODE_SHADER_MATERIALX_END } // namespace blender::nodes::node_shader_mix_shader_cc diff --git a/source/blender/nodes/shader/nodes/node_shader_normal_map.cc b/source/blender/nodes/shader/nodes/node_shader_normal_map.cc index 4fdee55319e9..44c162913f2d 100644 --- a/source/blender/nodes/shader/nodes/node_shader_normal_map.cc +++ b/source/blender/nodes/shader/nodes/node_shader_normal_map.cc @@ -123,8 +123,8 @@ static int gpu_shader_normal_map(GPUMaterial *mat, } NODE_SHADER_MATERIALX_BEGIN -{ #ifdef WITH_MATERIALX +{ NodeShaderNormalMap *normal_map_node = static_cast(node_->storage); NodeItem color = get_input_value("Color", NodeItem::Type::Color3); NodeItem strength = get_input_value("Strength", NodeItem::Type::Float); @@ -152,8 +152,8 @@ NODE_SHADER_MATERIALX_BEGIN res.set_input("scale", strength); res.set_input("space", val(space)); return res; -#endif } +#endif NODE_SHADER_MATERIALX_END } // namespace blender::nodes::node_shader_normal_map_cc diff --git a/source/blender/nodes/shader/nodes/node_shader_output_material.cc b/source/blender/nodes/shader/nodes/node_shader_output_material.cc index bb5305c905fa..1167bfb96772 100644 --- a/source/blender/nodes/shader/nodes/node_shader_output_material.cc +++ b/source/blender/nodes/shader/nodes/node_shader_output_material.cc @@ -44,8 +44,8 @@ static int node_shader_gpu_output_material(GPUMaterial *mat, } NODE_SHADER_MATERIALX_BEGIN -{ #ifdef WITH_MATERIALX +{ NodeItem bsdf = get_input_link("Surface", NodeItem::Type::BSDF); NodeItem edf = get_input_link("Surface", NodeItem::Type::EDF); NodeItem surface = empty(); @@ -64,8 +64,8 @@ NODE_SHADER_MATERIALX_BEGIN NodeItem res = create_node("surfacematerial", NodeItem::Type::Material); res.set_input("surfaceshader", surface); return res; -#endif } +#endif NODE_SHADER_MATERIALX_END } // namespace blender::nodes::node_shader_output_material_cc diff --git a/source/blender/nodes/shader/nodes/node_shader_rgb_to_bw.cc b/source/blender/nodes/shader/nodes/node_shader_rgb_to_bw.cc index 42d315a53704..77407b3b5156 100644 --- a/source/blender/nodes/shader/nodes/node_shader_rgb_to_bw.cc +++ b/source/blender/nodes/shader/nodes/node_shader_rgb_to_bw.cc @@ -28,15 +28,15 @@ static int gpu_shader_rgbtobw(GPUMaterial *mat, } NODE_SHADER_MATERIALX_BEGIN -{ #ifdef WITH_MATERIALX +{ NodeItem color = get_input_value("Color", NodeItem::Type::Color4); NodeItem res = create_node("luminance", NodeItem::Type::Color4); res.set_input("in", color); return res; -#endif } +#endif NODE_SHADER_MATERIALX_END } // namespace blender::nodes::node_shader_rgb_to_bw_cc diff --git a/source/blender/nodes/shader/nodes/node_shader_sepcomb_color.cc b/source/blender/nodes/shader/nodes/node_shader_sepcomb_color.cc index a976b366420c..e82856ab18e7 100644 --- a/source/blender/nodes/shader/nodes/node_shader_sepcomb_color.cc +++ b/source/blender/nodes/shader/nodes/node_shader_sepcomb_color.cc @@ -69,8 +69,8 @@ static int gpu_shader_sepcolor(GPUMaterial *mat, } NODE_SHADER_MATERIALX_BEGIN -{ #ifdef WITH_MATERIALX +{ int mode = static_cast(node_->storage)->mode; NodeItem color = get_input_value("Color", NodeItem::Type::Color3); @@ -91,8 +91,8 @@ NODE_SHADER_MATERIALX_BEGIN int index = STREQ(socket_out_->name, "Red") ? 0 : STREQ(socket_out_->name, "Green") ? 1 : 2; return convert.extract(index); -#endif } +#endif NODE_SHADER_MATERIALX_END } // namespace blender::nodes::node_shader_separate_color_cc @@ -165,8 +165,8 @@ static int gpu_shader_combcolor(GPUMaterial *mat, } NODE_SHADER_MATERIALX_BEGIN -{ #ifdef WITH_MATERIALX +{ int mode = static_cast(node_->storage)->mode; NodeItem red = get_input_value("Red", NodeItem::Type::Float); NodeItem green = get_input_value("Green", NodeItem::Type::Float); @@ -192,8 +192,8 @@ NODE_SHADER_MATERIALX_BEGIN BLI_assert_unreachable(); } return res; -#endif } +#endif NODE_SHADER_MATERIALX_END } // namespace blender::nodes::node_shader_combine_color_cc diff --git a/source/blender/nodes/shader/nodes/node_shader_sepcomb_xyz.cc b/source/blender/nodes/shader/nodes/node_shader_sepcomb_xyz.cc index 48ef91b368d6..b9f0b568e517 100644 --- a/source/blender/nodes/shader/nodes/node_shader_sepcomb_xyz.cc +++ b/source/blender/nodes/shader/nodes/node_shader_sepcomb_xyz.cc @@ -91,13 +91,13 @@ static void sh_node_sepxyz_build_multi_function(NodeMultiFunctionBuilder &builde } NODE_SHADER_MATERIALX_BEGIN -{ #ifdef WITH_MATERIALX +{ NodeItem vector = get_input_value("Vector", NodeItem::Type::Vector3); int index = STREQ(socket_out_->name, "X") ? 0 : STREQ(socket_out_->name, "Y") ? 1 : 2; return vector.extract(index); -#endif } +#endif NODE_SHADER_MATERIALX_END } // namespace blender::nodes::node_shader_sepcomb_xyz_cc::sep @@ -147,8 +147,8 @@ static void sh_node_combxyz_build_multi_function(NodeMultiFunctionBuilder &build } NODE_SHADER_MATERIALX_BEGIN -{ #ifdef WITH_MATERIALX +{ NodeItem x = get_input_value("X", NodeItem::Type::Float); NodeItem y = get_input_value("Y", NodeItem::Type::Float); NodeItem z = get_input_value("Z", NodeItem::Type::Float); @@ -158,8 +158,8 @@ NODE_SHADER_MATERIALX_BEGIN res.set_input("in2", y); res.set_input("in3", z); return res; -#endif } +#endif NODE_SHADER_MATERIALX_END } // namespace blender::nodes::node_shader_sepcomb_xyz_cc::comb diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_checker.cc b/source/blender/nodes/shader/nodes/node_shader_tex_checker.cc index 26710c7113c8..40dd136fafc8 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_checker.cc +++ b/source/blender/nodes/shader/nodes/node_shader_tex_checker.cc @@ -103,8 +103,8 @@ static void sh_node_tex_checker_build_multi_function(NodeMultiFunctionBuilder &b } NODE_SHADER_MATERIALX_BEGIN -{ #ifdef WITH_MATERIALX +{ NodeItem vector = get_input_link("Vector", NodeItem::Type::Vector2); if (!vector) { vector = texcoord_node(); @@ -120,8 +120,8 @@ NODE_SHADER_MATERIALX_BEGIN vector = (vector * scale) % val(2.0f); return (vector.extract(0).floor() + vector.extract(1).floor()) .if_else(NodeItem::CompareOp::Eq, val(1.0f), value1, value2); -#endif } +#endif NODE_SHADER_MATERIALX_END } // namespace blender::nodes::node_shader_tex_checker_cc diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_environment.cc b/source/blender/nodes/shader/nodes/node_shader_tex_environment.cc index 2c9f8403d7eb..cc828b8bdf4c 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_environment.cc +++ b/source/blender/nodes/shader/nodes/node_shader_tex_environment.cc @@ -128,12 +128,12 @@ static int node_shader_gpu_tex_environment(GPUMaterial *mat, } NODE_SHADER_MATERIALX_BEGIN -{ #ifdef WITH_MATERIALX +{ /* TODO: Implement */ return empty(); -#endif } +#endif NODE_SHADER_MATERIALX_END } // namespace blender::nodes::node_shader_tex_environment_cc diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_image.cc b/source/blender/nodes/shader/nodes/node_shader_tex_image.cc index 84c52253bf7f..c683db52e4ac 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_image.cc +++ b/source/blender/nodes/shader/nodes/node_shader_tex_image.cc @@ -177,8 +177,8 @@ static int node_shader_gpu_tex_image(GPUMaterial *mat, } NODE_SHADER_MATERIALX_BEGIN -{ #ifdef WITH_MATERIALX +{ NodeItem res = val(MaterialX::Color4(1.0f, 0.0f, 1.0f, 1.0f)); Image *image = (Image *)node_->id; @@ -243,8 +243,8 @@ NODE_SHADER_MATERIALX_BEGIN res = res.extract(3); } return res; -#endif } +#endif NODE_SHADER_MATERIALX_END } // namespace blender::nodes::node_shader_tex_image_cc diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_noise.cc b/source/blender/nodes/shader/nodes/node_shader_tex_noise.cc index 5981913ad2f8..8fe27900be4c 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_noise.cc +++ b/source/blender/nodes/shader/nodes/node_shader_tex_noise.cc @@ -258,8 +258,8 @@ static void sh_node_noise_build_multi_function(NodeMultiFunctionBuilder &builder } NODE_SHADER_MATERIALX_BEGIN -{ #ifdef WITH_MATERIALX +{ NodeItem scale = get_input_value("Scale", NodeItem::Type::Float); NodeItem detail = get_input_value("Detail", NodeItem::Type::Float); NodeItem lacunarity = get_input_value("Lacunarity", NodeItem::Type::Float); @@ -274,8 +274,8 @@ NODE_SHADER_MATERIALX_BEGIN } res.set_input("lacunarity", lacunarity); return res; -#endif } +#endif NODE_SHADER_MATERIALX_END } // namespace blender::nodes::node_shader_tex_noise_cc diff --git a/source/blender/nodes/shader/nodes/node_shader_vector_math.cc b/source/blender/nodes/shader/nodes/node_shader_vector_math.cc index 3137caf9abf5..fc1d5e917195 100644 --- a/source/blender/nodes/shader/nodes/node_shader_vector_math.cc +++ b/source/blender/nodes/shader/nodes/node_shader_vector_math.cc @@ -317,8 +317,8 @@ static void sh_node_vector_math_build_multi_function(NodeMultiFunctionBuilder &b } NODE_SHADER_MATERIALX_BEGIN -{ #ifdef WITH_MATERIALX +{ CLG_LogRef *LOG_MATERIALX_SHADER = materialx::LOG_MATERIALX_SHADER; /* TODO: finish some math operations */ @@ -429,8 +429,8 @@ NODE_SHADER_MATERIALX_BEGIN } return res; -#endif } +#endif NODE_SHADER_MATERIALX_END } // namespace blender::nodes::node_shader_vector_math_cc -- 2.30.2 From 2938eec7a0da2b1047ae29c323a8d22b9c196330 Mon Sep 17 00:00:00 2001 From: "georgiy.m.markelov@gmail.com" Date: Wed, 13 Sep 2023 19:45:16 +0300 Subject: [PATCH 9/9] MaterialX: fix for definition WITH_MATERIALX and rename callback --- source/blender/blenkernel/BKE_node.h | 4 ++-- source/blender/io/usd/hydra/material.cc | 2 +- source/blender/nodes/shader/CMakeLists.txt | 1 + source/blender/nodes/shader/node_shader_util.hh | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h index e14067f138e4..3e79e0547d01 100644 --- a/source/blender/blenkernel/BKE_node.h +++ b/source/blender/blenkernel/BKE_node.h @@ -225,7 +225,7 @@ typedef int (*NodeGPUExecFunction)(struct GPUMaterial *mat, struct bNodeExecData *execdata, struct GPUNodeStack *in, struct GPUNodeStack *out); -typedef void (*NodeMaterialXExecFunction)(void *data, +typedef void (*NodeMaterialXFunction)(void *data, struct bNode *node, struct bNodeSocket *out); @@ -343,7 +343,7 @@ typedef struct bNodeType { /* gpu */ NodeGPUExecFunction gpu_fn; /* MaterialX */ - NodeMaterialXExecFunction materialx_fn; + NodeMaterialXFunction materialx_fn; /* Get an instance of this node's compositor operation. Freeing the instance is the * responsibility of the caller. */ diff --git a/source/blender/io/usd/hydra/material.cc b/source/blender/io/usd/hydra/material.cc index 6df0a798c21b..a992dbdbfa36 100644 --- a/source/blender/io/usd/hydra/material.cc +++ b/source/blender/io/usd/hydra/material.cc @@ -88,7 +88,7 @@ void MaterialData::init() } } } - else { + else #endif { usd_material = usd::create_usd_material(export_context, material_path, (Material *)id, "st"); diff --git a/source/blender/nodes/shader/CMakeLists.txt b/source/blender/nodes/shader/CMakeLists.txt index 007a64b008c0..25990bdcd1ab 100644 --- a/source/blender/nodes/shader/CMakeLists.txt +++ b/source/blender/nodes/shader/CMakeLists.txt @@ -145,6 +145,7 @@ set(LIB ) if(WITH_MATERIALX) + add_definitions(-DWITH_MATERIALX) list(APPEND SRC materialx/material.cc materialx/node_item.cc diff --git a/source/blender/nodes/shader/node_shader_util.hh b/source/blender/nodes/shader/node_shader_util.hh index a1235fd969cf..fce47c0e7d7b 100644 --- a/source/blender/nodes/shader/node_shader_util.hh +++ b/source/blender/nodes/shader/node_shader_util.hh @@ -25,7 +25,7 @@ #ifdef WITH_MATERIALX # include "materialx/node_parser.h" #else -# define NODE_SHADER_MATERIALX_BEGIN NodeMaterialXExecFunction node_shader_materialx = nullptr; +# define NODE_SHADER_MATERIALX_BEGIN NodeMaterialXFunction node_shader_materialx = nullptr; # define NODE_SHADER_MATERIALX_END #endif -- 2.30.2