5#include <MaterialXFormat/XmlIo.h>
36 res.
node->setName(
"Material_Default");
44 {{
"base_color",
val(MaterialX::Color3(1.0f, 0.0f, 1.0f))}});
47 res.
node->setName(
"Material_Error");
54 const std::string &material_name,
59 MaterialX::DocumentPtr doc = MaterialX::createDocument();
62 if (material->use_nodes) {
63 material->nodetree->ensure_topology_cache();
65 if (output_node && output_node->
typeinfo->materialx_fn) {
73 output_node->
typeinfo->materialx_fn(&data, output_node,
nullptr);
74 output_item = data.result;
100 if (output_item.
node) {
101 output_item.
node->setName(material_name);
108 MaterialX::writeToXmlString(doc).c_str());
#define CLOG_INFO(clg_ref, level,...)
struct bNode * ntreeShaderOutputNode(struct bNodeTree *ntree, int target)
NodeItem compute() override
const Material * material_
NodeParser(MaterialX::GraphElement *graph, const Depsgraph *depsgraph, const Material *material, const bNode *node, const bNodeSocket *socket_out, NodeItem::Type to_type, GroupNodeParser *group_parser, const ExportParams &export_params)
NodeItem create_node(const std::string &category, NodeItem::Type type)
NodeItem val(const T &data) const
const Depsgraph * depsgraph
struct CLG_LogRef * LOG_MATERIALX_SHADER
MaterialX::DocumentPtr export_to_materialx(Depsgraph *depsgraph, Material *material, const std::string &material_name, const ExportParams &export_params)
bNodeTypeHandle * typeinfo