HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
TextureBakerGlsl Class Reference

#include <TextureBaker.h>

+ Inheritance diagram for TextureBakerGlsl:

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. More...
 
const stringgetExtension () const
 Return the file extension for baked textures. More...
 
void setColorSpace (const string &colorSpace)
 
const stringgetColorSpace () const
 Return the color space in which color textures are encoded. More...
 
void setDistanceUnit (const string &unitSpace)
 Set the distance unit to which textures are baked. Defaults to meters. More...
 
const stringgetDistanceUnit () const
 Return the distance unit to which textures are baked. More...
 
void setAverageImages (bool enable)
 Set whether images should be averaged to generate constants. Defaults to false. More...
 
bool getAverageImages () const
 Return whether images should be averaged to generate constants. More...
 
void setOptimizeConstants (bool enable)
 Set whether uniform textures should be stored as constants. Defaults to true. More...
 
bool getOptimizeConstants () const
 Return whether uniform textures should be stored as constants. More...
 
void setOutputImagePath (const FilePath &outputImagePath)
 
const FilePathgetOutputImagePath ()
 Get the current output location for baked texture images. More...
 
void setBakedGraphName (const string &name)
 Set the name of the baked graph element. More...
 
const stringgetBakedGraphName () const
 Return the name of the baked graph element. More...
 
void setBakedGeomInfoName (const string &name)
 Set the name of the baked geometry info element. More...
 
const stringgetBakedGeomInfoName () const
 Return the name of the baked geometry info element. More...
 
const stringgetTextureFilenameTemplate () const
 Get the texture filename template. More...
 
void setTextureFilenameTemplate (const string &filenameTemplate)
 Set the texture filename template. More...
 
void setFilenameTemplateVarOverride (const string &key, const string &value)
 Set texFilenameOverrides if template variable exists. More...
 
void setOutputStream (std::ostream *outputStream)
 Set the output stream for reporting progress and warnings. Defaults to std::cout. More...
 
std::ostream * getOutputStream () const
 Return the output stream for reporting progress and warnings. More...
 
void setHashImageNames (bool enable)
 
bool getHashImageNames () const
 Return whether automatic baked texture resolution is set. More...
 
void setTextureSpaceMin (const Vector2 &min)
 Set the minimum texcoords used in texture baking. Defaults to 0, 0. More...
 
Vector2 getTextureSpaceMin () const
 Return the minimum texcoords used in texture baking. More...
 
void setTextureSpaceMax (const Vector2 &max)
 Set the maximum texcoords used in texture baking. Defaults to 1, 1. More...
 
Vector2 getTextureSpaceMax () const
 Return the maximum texcoords used in texture baking. More...
 
void setupUnitSystem (DocumentPtr unitDefinitions)
 Set up the unit definitions to be used in baking. More...
 
void bakeShaderInputs (NodePtr material, NodePtr shader, GenContext &context, const string &udim=EMPTY_STRING)
 Bake textures for all graph inputs of the given shader. More...
 
void bakeGraphOutput (OutputPtr output, GenContext &context, const StringMap &filenameTemplateMap)
 Bake a texture for the given graph output. More...
 
void optimizeBakedTextures (NodePtr shader)
 Optimize baked textures before writing. More...
 
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. More...
 
void bakeAllMaterials (DocumentPtr doc, const FileSearchPath &searchPath, const FilePath &outputFileName)
 
void writeDocumentPerMaterial (bool value)
 
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. More...
 
virtual ~GlslRenderer ()
 Destructor. More...
 
void initialize (RenderContextHandle renderContextHandle=nullptr) override
 
void createProgram (ShaderPtr shader) override
 
void createProgram (const StageMap &stages) override
 
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. More...
 
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. More...
 
GlslProgramPtr getProgram ()
 Return the GLSL program. More...
 
void drawScreenSpaceQuad (const Vector2 &uvMin=Vector2(0.0f), const Vector2 &uvMax=Vector2(1.0f))
 Submit geometry for a screen-space quad. More...
 
void setScreenColor (const Color3 &screenColor)
 Set the screen background color. More...
 
Color3 getScreenColor () const
 Return the screen background color. More...
 
- Public Member Functions inherited from ShaderRenderer
virtual ~ShaderRenderer ()
 
void setCamera (CameraPtr camera)
 Set the camera. More...
 
CameraPtr getCamera () const
 Return the camera. More...
 
void setImageHandler (ImageHandlerPtr imageHandler)
 Set the image handler used by this renderer for image I/O. More...
 
ImageHandlerPtr getImageHandler () const
 Return the image handler. More...
 
void setLightHandler (LightHandlerPtr lightHandler)
 Set the light handler used by this renderer for light bindings. More...
 
LightHandlerPtr getLightHandler () const
 Return the light handler. More...
 
void setGeometryHandler (GeometryHandlerPtr geometryHandler)
 Set the geometry handler. More...
 
GeometryHandlerPtr getGeometryHandler () const
 Return the geometry handler. More...
 

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. More...
 

Additional Inherited Members

- Public Types inherited from ShaderRenderer
enum  MatrixConvention { MatrixConvention::OpenGL = 0, MatrixConvention::Metal = 1 }
 Viewing API matrix conventions designation (default to OpenGL). More...
 
using StageMap = StringMap
 A map with name and source code for each shader stage. More...
 
- 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
 

Detailed Description

An implementation of TextureBaker based on GLSL shader generation.

Definition at line 33 of file TextureBaker.h.

Constructor & Destructor Documentation

TextureBakerGlsl::TextureBakerGlsl ( unsigned int  width,
unsigned int  height,
Image::BaseType  baseType 
)

Member Function Documentation

static TextureBakerPtr TextureBakerGlsl::create ( unsigned int  width = 1024,
unsigned int  height = 1024,
Image::BaseType  baseType = Image::BaseType::UINT8 
)
inlinestatic

Definition at line 36 of file TextureBaker.h.


The documentation for this class was generated from the following file: