MaterialX 1.39.1
|
An implementation of TextureBaker based on GLSL shader generation. More...
#include <TextureBaker.h>
Public Member Functions | |
TextureBakerGlsl (unsigned int width, unsigned int height, Image::BaseType baseType) | |
Public Member Functions inherited from TextureBaker< GlslRenderer, GlslShaderGenerator > | |
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) |
Public Member Functions inherited from GlslRenderer | |
ImageHandlerPtr | createImageHandler (ImageLoaderPtr imageLoader) |
Create a texture handler for OpenGL textures. | |
virtual | ~GlslRenderer () |
Destructor. | |
void | initialize (RenderContextHandle renderContextHandle=nullptr) override |
Internal initialization of stages and OpenGL constructs required for program validation and rendering. More... | |
void | createProgram (ShaderPtr shader) override |
Create GLSL program based on an input shader. More... | |
void | createProgram (const StageMap &stages) override |
Create GLSL program based on shader stage source code. More... | |
void | validateInputs () override |
Validate inputs for the program. More... | |
void | updateUniform (const string &name, ConstValuePtr value) override |
Update the program with value of the uniform. More... | |
void | setSize (unsigned int width, unsigned int height) override |
Set the size of the rendered image. More... | |
void | render () override |
Render the current program to an offscreen buffer. More... | |
void | renderTextureSpace (const Vector2 &uvMin, const Vector2 &uvMax) |
Render the current program in texture space to an off-screen buffer. | |
ImagePtr | captureImage (ImagePtr image=nullptr) override |
Capture the current contents of the off-screen hardware buffer as an image. More... | |
GLFramebufferPtr | getFramebuffer () const |
Return the GL frame buffer. | |
GlslProgramPtr | getProgram () |
Return the GLSL program. | |
void | drawScreenSpaceQuad (const Vector2 &uvMin=Vector2(0.0f), const Vector2 &uvMax=Vector2(1.0f)) |
Submit geometry for a screen-space quad. | |
void | setScreenColor (const Color3 &screenColor) |
Set the screen background color. | |
Color3 | getScreenColor () const |
Return the screen background color. | |
Public Member Functions inherited from ShaderRenderer | |
void | setCamera (CameraPtr camera) |
Set the camera. | |
CameraPtr | getCamera () const |
Return the camera. | |
void | setImageHandler (ImageHandlerPtr imageHandler) |
Set the image handler used by this renderer for image I/O. | |
ImageHandlerPtr | getImageHandler () const |
Return the image handler. | |
void | setLightHandler (LightHandlerPtr lightHandler) |
Set the light handler used by this renderer for light bindings. | |
LightHandlerPtr | getLightHandler () const |
Return the light handler. | |
void | setGeometryHandler (GeometryHandlerPtr geometryHandler) |
Set the geometry handler. | |
GeometryHandlerPtr | getGeometryHandler () const |
Return the geometry handler. | |
Static Public Member Functions | |
static TextureBakerPtr | create (unsigned int width=1024, unsigned int height=1024, Image::BaseType baseType=Image::BaseType::UINT8) |
Static Public Member Functions inherited from GlslRenderer | |
static GlslRendererPtr | create (unsigned int width=512, unsigned int height=512, Image::BaseType baseType=Image::BaseType::UINT8) |
Create a GLSL renderer instance. | |
Additional Inherited Members | |
Public Types inherited from ShaderRenderer | |
enum class | MatrixConvention { OpenGL = 0 , Metal = 1 } |
Viewing API matrix conventions designation (default to OpenGL). | |
using | StageMap = StringMap |
A map with name and source code for each shader stage. | |
Protected Types inherited from TextureBaker< GlslRenderer, GlslShaderGenerator > | |
using | BakedImageVec = vector< BakedImage > |
using | BakedImageMap = std::unordered_map< OutputPtr, BakedImageVec > |
using | BakedConstantMap = std::unordered_map< OutputPtr, BakedConstant > |
Protected Member Functions inherited from TextureBaker< GlslRenderer, GlslShaderGenerator > | |
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 Member Functions inherited from GlslRenderer | |
GlslRenderer (unsigned int width, unsigned int height, Image::BaseType baseType) | |
Protected Member Functions inherited from ShaderRenderer | |
ShaderRenderer (unsigned int width, unsigned int height, Image::BaseType baseType, MatrixConvention matrixConvention=MatrixConvention::OpenGL) | |
Protected Attributes inherited from TextureBaker< GlslRenderer, GlslShaderGenerator > | |
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 |
Protected Attributes inherited from ShaderRenderer | |
unsigned int | _width |
unsigned int | _height |
Image::BaseType | _baseType |
MatrixConvention | _matrixConvention |
CameraPtr | _camera |
ImageHandlerPtr | _imageHandler |
GeometryHandlerPtr | _geometryHandler |
LightHandlerPtr | _lightHandler |
An implementation of TextureBaker based on GLSL shader generation.