Skip to content

Commit da444d5

Browse files
authored
Add Python bindings for generation and rendering (#1386)
Most of these wrapper updates are related to exposing missing APIs in Python for code gen and rendering.
1 parent a8dffbd commit da444d5

4 files changed

Lines changed: 29 additions & 0 deletions

File tree

source/PyMaterialX/PyMaterialXCore/PyDefinition.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,9 @@ void bindPyDefinition(py::module& mod)
4343
.def("getFunction", &mx::Implementation::getFunction)
4444
.def("setNodeDef", &mx::Implementation::setNodeDef)
4545
.def("getNodeDef", &mx::Implementation::getNodeDef)
46+
.def("setNodeGraph", &mx::Implementation::setNodeGraph)
47+
.def("hasNodeGraph", &mx::Implementation::hasNodeGraph)
48+
.def("getNodeGraph", &mx::Implementation::getNodeGraph)
4649
.def_readonly_static("CATEGORY", &mx::Implementation::CATEGORY)
4750
.def_readonly_static("FILE_ATTRIBUTE", &mx::Implementation::FILE_ATTRIBUTE)
4851
.def_readonly_static("FUNCTION_ATTRIBUTE", &mx::Implementation::FUNCTION_ATTRIBUTE);

source/PyMaterialX/PyMaterialXGenShader/PyGenOptions.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,18 @@ void bindPyGenOptions(py::module& mod)
2727
.def_readwrite("shaderInterfaceType", &mx::GenOptions::shaderInterfaceType)
2828
.def_readwrite("fileTextureVerticalFlip", &mx::GenOptions::fileTextureVerticalFlip)
2929
.def_readwrite("targetColorSpaceOverride", &mx::GenOptions::targetColorSpaceOverride)
30+
.def_readwrite("addUpstreamDependencies", &mx::GenOptions::addUpstreamDependencies)
31+
.def_readwrite("libraryPrefix", &mx::GenOptions::libraryPrefix)
3032
.def_readwrite("targetDistanceUnit", &mx::GenOptions::targetDistanceUnit)
3133
.def_readwrite("hwTransparency", &mx::GenOptions::hwTransparency)
3234
.def_readwrite("hwSpecularEnvironmentMethod", &mx::GenOptions::hwSpecularEnvironmentMethod)
35+
.def_readwrite("hwWriteDepthMoments", &mx::GenOptions::hwWriteDepthMoments)
36+
.def_readwrite("hwShadowMap", &mx::GenOptions::hwShadowMap)
3337
.def_readwrite("hwMaxActiveLightSources", &mx::GenOptions::hwMaxActiveLightSources)
3438
.def_readwrite("hwNormalizeUdimTexCoords", &mx::GenOptions::hwNormalizeUdimTexCoords)
39+
.def_readwrite("hwAmbientOcclusion", &mx::GenOptions::hwAmbientOcclusion)
3540
.def_readwrite("hwWriteAlbedoTable", &mx::GenOptions::hwWriteAlbedoTable)
41+
.def_readwrite("hwImplicitBitangents", &mx::GenOptions::hwImplicitBitangents)
3642
.def_readwrite("emitColorTransforms", &mx::GenOptions::emitColorTransforms)
3743
.def(py::init<>());
3844
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
//
2+
// Copyright Contributors to the MaterialX Project
3+
// SPDX-License-Identifier: Apache-2.0
4+
//
5+
6+
#include <PyMaterialX/PyMaterialX.h>
7+
#include <MaterialXRender/CgltfLoader.h>
8+
9+
namespace py = pybind11;
10+
namespace mx = MaterialX;
11+
12+
void bindPyCgltfLoader(py::module& mod)
13+
{
14+
py::class_<mx::CgltfLoader, mx::CgltfLoaderPtr, mx::GeometryLoader>(mod, "CgltfLoader")
15+
.def_static("create", &mx::CgltfLoader::create)
16+
.def(py::init<>())
17+
.def("load", &mx::CgltfLoader::load);
18+
}

source/PyMaterialX/PyMaterialXRender/PyLightHandler.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ void bindPyLightHandler(py::module& mod)
3131
.def("getAlbedoTable", &mx::LightHandler::getAlbedoTable)
3232
.def("setEnvSampleCount", &mx::LightHandler::setEnvSampleCount)
3333
.def("getEnvSampleCount", &mx::LightHandler::getEnvSampleCount)
34+
.def("setRefractionTwoSided", &mx::LightHandler::setRefractionTwoSided)
35+
.def("getRefractionTwoSided", &mx::LightHandler::getRefractionTwoSided)
3436
.def("addLightSource", &mx::LightHandler::addLightSource)
3537
.def("setLightSources", &mx::LightHandler::setLightSources)
3638
.def("getLightSources", &mx::LightHandler::getLightSources)

0 commit comments

Comments
 (0)