MaterialX 1.39.1
|
A helper class for baking procedural material content to textures. More...
#include <TextureBaker.h>
Classes | |
class | BakedConstant |
class | BakedImage |
Public Member Functions | |
void | setExtension (const string &extension) |
Set the file extension for baked textures. | |
const string & | getExtension () const |
Return the file extension for baked textures. | |
void | setColorSpace (const string &colorSpace) |
Set the color space in which color textures are encoded. More... | |
const string & | getColorSpace () const |
Return the color space in which color textures are encoded. | |
void | setDistanceUnit (const string &unitSpace) |
Set the distance unit to which textures are baked. Defaults to meters. | |
const string & | getDistanceUnit () const |
Return the distance unit to which textures are baked. | |
void | setAverageImages (bool enable) |
Set whether images should be averaged to generate constants. Defaults to false. | |
bool | getAverageImages () const |
Return whether images should be averaged to generate constants. | |
void | setOptimizeConstants (bool enable) |
Set whether uniform textures should be stored as constants. Defaults to true. | |
bool | getOptimizeConstants () const |
Return whether uniform textures should be stored as constants. | |
void | setOutputImagePath (const FilePath &outputImagePath) |
Set the output location for baked texture images. More... | |
const FilePath & | getOutputImagePath () |
Get the current output location for baked texture images. | |
void | setBakedGraphName (const string &name) |
Set the name of the baked graph element. | |
const string & | getBakedGraphName () const |
Return the name of the baked graph element. | |
void | setBakedGeomInfoName (const string &name) |
Set the name of the baked geometry info element. | |
const string & | getBakedGeomInfoName () const |
Return the name of the baked geometry info element. | |
const string & | getTextureFilenameTemplate () const |
Get the texture filename template. | |
void | setTextureFilenameTemplate (const string &filenameTemplate) |
Set the texture filename template. | |
void | setFilenameTemplateVarOverride (const string &key, const string &value) |
Set texFilenameOverrides if template variable exists. | |
void | setOutputStream (std::ostream *outputStream) |
Set the output stream for reporting progress and warnings. Defaults to std::cout. | |
std::ostream * | getOutputStream () const |
Return the output stream for reporting progress and warnings. | |
void | setHashImageNames (bool enable) |
Set whether to create a short name for baked images by hashing the baked image filenames This is useful for file systems which may have a maximum limit on filename size. More... | |
bool | getHashImageNames () const |
Return whether automatic baked texture resolution is set. | |
void | setTextureSpaceMin (const Vector2 &min) |
Set the minimum texcoords used in texture baking. Defaults to 0, 0. | |
Vector2 | getTextureSpaceMin () const |
Return the minimum texcoords used in texture baking. | |
void | setTextureSpaceMax (const Vector2 &max) |
Set the maximum texcoords used in texture baking. Defaults to 1, 1. | |
Vector2 | getTextureSpaceMax () const |
Return the maximum texcoords used in texture baking. | |
void | setupUnitSystem (DocumentPtr unitDefinitions) |
Set up the unit definitions to be used in baking. | |
void | bakeShaderInputs (NodePtr material, NodePtr shader, GenContext &context, const string &udim=EMPTY_STRING) |
Bake textures for all graph inputs of the given shader. | |
void | bakeGraphOutput (OutputPtr output, GenContext &context, const StringMap &filenameTemplateMap) |
Bake a texture for the given graph output. | |
void | optimizeBakedTextures (NodePtr shader) |
Optimize baked textures before writing. | |
DocumentPtr | bakeMaterialToDoc (DocumentPtr doc, const FileSearchPath &searchPath, const string &materialPath, const StringVec &udimSet, std::string &documentName) |
Bake material to document in memory and write baked textures to disk. | |
void | bakeAllMaterials (DocumentPtr doc, const FileSearchPath &searchPath, const FilePath &outputFileName) |
Bake materials in the given document and write them to disk. More... | |
void | writeDocumentPerMaterial (bool value) |
Set whether to write a separate document per material when calling bakeAllMaterials. More... | |
string | getValueStringFromColor (const Color4 &color, const string &type) |
Protected Types | |
using | BakedImageVec = vector< BakedImage > |
using | BakedImageMap = std::unordered_map< OutputPtr, BakedImageVec > |
using | BakedConstantMap = std::unordered_map< OutputPtr, BakedConstant > |
Protected Member Functions | |
TextureBaker (unsigned int width, unsigned int height, Image::BaseType baseType, bool flipSavedImage) | |
StringMap | initializeFileTemplateMap (InputPtr input, NodePtr shader, const string &udim=EMPTY_STRING) |
size_t | findVarInTemplate (const string &filename, const string &var, size_t start=0) |
FilePath | generateTextureFilename (const StringMap &fileTemplateMap) |
DocumentPtr | generateNewDocumentFromShader (NodePtr shader, const StringVec &udimSet) |
bool | writeBakedImage (const BakedImage &baked, ImagePtr image) |
Protected Attributes | |
string | _extension |
string | _colorSpace |
string | _distanceUnit |
bool | _averageImages |
bool | _optimizeConstants |
FilePath | _outputImagePath |
string | _bakedGraphName |
string | _bakedGeomInfoName |
string | _textureFilenameTemplate |
std::ostream * | _outputStream |
bool | _hashImageNames |
Vector2 | _textureSpaceMin |
Vector2 | _textureSpaceMax |
ShaderGeneratorPtr | _generator |
ConstNodePtr | _material |
ImagePtr | _frameCaptureImage |
BakedImageMap | _bakedImageMap |
BakedConstantMap | _bakedConstantMap |
StringSet | _permittedOverrides |
StringMap | _texTemplateOverrides |
StringMap | _bakedInputMap |
std::unordered_map< string, NodePtr > | _worldSpaceNodes |
bool | _flipSavedImage |
bool | _writeDocumentPerMaterial |
DocumentPtr | _bakedTextureDoc |
A helper class for baking procedural material content to textures.
TODO: Add support for graphs containing geometric nodes such as position and normal.
void bakeAllMaterials | ( | DocumentPtr | doc, |
const FileSearchPath & | searchPath, | ||
const FilePath & | outputFileName | ||
) |
Bake materials in the given document and write them to disk.
If multiple documents are written, then the given output filename will be used as a template.
|
inline |
Set the color space in which color textures are encoded.
By default, this color space is srgb_texture, and color inputs are automatically transformed to this space by the baker. If another color space is set, then the input graph is responsible for transforming colors to this space.
|
inline |
Set whether to create a short name for baked images by hashing the baked image filenames This is useful for file systems which may have a maximum limit on filename size.
By default names are not hashed.
|
inline |
Set the output location for baked texture images.
Defaults to the root folder of the destination material.
|
inline |
Set whether to write a separate document per material when calling bakeAllMaterials.
By default separate documents are written.