The UsdTransform2d shader was previously ignored, and the material read would stop when it found these nodes. This resulted in many surfaces having their textures mapped incorrectly when imported into Blender, and worse, resulted in the loss of that data when round-tripping back out of Blender. This patch adds support for the Transform 2D node and also ensures that the wrap modes are similarly written correctly. Co-authored-by: Charles Wardlaw <kattkieru@users.noreply.github.com> Pull Request: https://projects.blender.org/blender/blender/pulls/114821
36 lines
1.1 KiB
C++
36 lines
1.1 KiB
C++
/* SPDX-FileCopyrightText: 2023 Blender Authors
|
|
*
|
|
* 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 ReportList;
|
|
|
|
namespace blender::io::usd {
|
|
|
|
struct USDExporterContext;
|
|
|
|
/* Create USDMaterial from Blender material.
|
|
*
|
|
* \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.
|
|
*/
|
|
pxr::UsdShadeMaterial create_usd_material(const USDExporterContext &usd_export_context,
|
|
pxr::SdfPath usd_path,
|
|
Material *material,
|
|
const std::string &active_uv,
|
|
ReportList *reports);
|
|
|
|
/* Returns a USDPreviewSurface token name for a given Blender shader Socket name,
|
|
* or an empty TfToken if the input name is not found in the map. */
|
|
const pxr::TfToken token_for_input(const char *input_name);
|
|
|
|
} // namespace blender::io::usd
|