From 8c28838ea3598d3fca8c6d8332faa57348fdc863 Mon Sep 17 00:00:00 2001 From: Vasyl-Pidhirskyi Date: Thu, 17 Aug 2023 13:23:12 +0300 Subject: [PATCH 1/2] Python API: Property for RenderEngine to use MaterialX export for Hydra When `bl_use_materialx` is set, MaterialX is utilized for exporting materials to Hydra. --- source/blender/makesrna/intern/rna_render.cc | 5 +++++ source/blender/render/RE_engine.h | 1 + 2 files changed, 6 insertions(+) diff --git a/source/blender/makesrna/intern/rna_render.cc b/source/blender/makesrna/intern/rna_render.cc index be59c0832f85..75efabbb1a55 100644 --- a/source/blender/makesrna/intern/rna_render.cc +++ b/source/blender/makesrna/intern/rna_render.cc @@ -1007,6 +1007,11 @@ static void rna_def_render_engine(BlenderRNA *brna) RNA_def_property_ui_text( prop, "Use Alembic Procedural", "Support loading Alembic data at render time"); + prop = RNA_def_property(srna, "bl_use_materialx", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, nullptr, "type->flag", RE_USE_MATERIALX); + RNA_def_property_flag(prop, PROP_REGISTER_OPTIONAL); + RNA_def_property_ui_text(prop, "Use Material", "Use MaterialX for exporting materials to Hydra"); + RNA_define_verify_sdna(true); } diff --git a/source/blender/render/RE_engine.h b/source/blender/render/RE_engine.h index fde6014b2d86..4d837c0451d1 100644 --- a/source/blender/render/RE_engine.h +++ b/source/blender/render/RE_engine.h @@ -55,6 +55,7 @@ enum RenderEngineTypeFlag { RE_USE_CUSTOM_FREESTYLE = (1 << 8), RE_USE_NO_IMAGE_SAVE = (1 << 9), RE_USE_ALEMBIC_PROCEDURAL = (1 << 10), + RE_USE_MATERIALX = (1 << 11), }; /** #RenderEngine.flag */ -- 2.30.2 From a459bdac51ced9da3ad9f3a93955909b72b5c9c9 Mon Sep 17 00:00:00 2001 From: "georgiy.m.markelov@gmail.com" Date: Thu, 24 Aug 2023 12:50:15 +0300 Subject: [PATCH 2/2] MaterialX: added comment --- source/blender/nodes/shader/materialx/nodes/image.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/blender/nodes/shader/materialx/nodes/image.cc b/source/blender/nodes/shader/materialx/nodes/image.cc index 7faf20485e44..f7f192ace407 100644 --- a/source/blender/nodes/shader/materialx/nodes/image.cc +++ b/source/blender/nodes/shader/materialx/nodes/image.cc @@ -29,6 +29,8 @@ MaterialX::NodePtr MaterialXTexImageNode::convert() Scene *scene = DEG_get_input_scene(depsgraph); Main *bmain = DEG_get_bmain(depsgraph); std::string image_path; + /* TODO: What if Blender built without Hydra? Also io::hydra::cache_or_get_image_file contain + * pretty general code, so could be moved from bf_usd project. */ #ifdef WITH_HYDRA image_path = io::hydra::cache_or_get_image_file(bmain, scene, image, &tex->iuser); #endif -- 2.30.2