44 lines
1.4 KiB
C++
44 lines
1.4 KiB
C++
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
#pragma once
|
|
|
|
#include <pxr/pxr.h>
|
|
#include <pxr/usd/usd/prim.h>
|
|
#include <pxr/usd/usd/stage.h>
|
|
#include <pxr/usd/usdShade/material.h>
|
|
|
|
#include <string>
|
|
|
|
struct Material;
|
|
struct USDExportParams;
|
|
struct bNode;
|
|
struct bNodeTree;
|
|
|
|
namespace blender::io::usd {
|
|
|
|
struct USDExporterContext;
|
|
|
|
/**
|
|
* Entry point to create an approximate USD Preview Surface network from a Cycles node graph.
|
|
* Due to the limited nodes in the USD Preview Surface specification, only the following nodes
|
|
* are supported:
|
|
* - UVMap
|
|
* - Texture Coordinate
|
|
* - Image Texture
|
|
* - Principled BSDF
|
|
* More may be added in the future.
|
|
*
|
|
* \param default_uv: used as the default UV set name sampled by the `primvar`
|
|
* reader shaders generated for image texture nodes that don't have an attached UVMap node.
|
|
*/
|
|
void create_usd_preview_surface_material(const USDExporterContext &usd_export_context,
|
|
Material *material,
|
|
pxr::UsdShadeMaterial &usd_material,
|
|
const std::string &default_uv = "");
|
|
|
|
/* Entry point to create USD Shade Material network from Blender viewport display settings. */
|
|
void create_usd_viewport_material(const USDExporterContext &usd_export_context,
|
|
Material *material,
|
|
pxr::UsdShadeMaterial &usd_material);
|
|
|
|
} // namespace blender::io::usd
|