MaterialX 1.39.1
|
Abstract class for shader generation and rendering of a ShaderMaterial. More...
#include <ShaderMaterial.h>
Public Member Functions | |
void | setDocument (DocumentPtr doc) |
Set the renderable element associated with this ShaderMaterial. | |
DocumentPtr | getDocument () const |
Return the document associated with this ShaderMaterial. | |
void | setElement (TypedElementPtr val) |
Set the renderable element associated with this ShaderMaterial. | |
TypedElementPtr | getElement () const |
Return the renderable element associated with this ShaderMaterial. | |
void | setMaterialNode (NodePtr node) |
Set the ShaderMaterial node associated with this ShaderMaterial. | |
NodePtr | getMaterialNode () const |
Return the ShaderMaterial node associated with this ShaderMaterial. | |
void | setUdim (const std::string &val) |
Set udim identifier. | |
const std::string & | getUdim () |
Get any associated udim identifier. | |
virtual bool | loadSource (const FilePath &vertexShaderFile, const FilePath &pixelShaderFile, bool hasTransparency)=0 |
Load shader source from file. More... | |
virtual bool | generateShader (GenContext &context)=0 |
Generate a shader from our currently stored element and the given generator context. More... | |
virtual void | copyShader (MaterialPtr ShaderMaterial)=0 |
Copies shader and API specific generated program from ShaderMaterial to this one. More... | |
virtual bool | generateShader (ShaderPtr hwShader)=0 |
Generate a shader from the given hardware shader. More... | |
virtual bool | generateEnvironmentShader (GenContext &context, const FilePath &filename, DocumentPtr stdLib, const FilePath &imagePath) |
Generate an environment background shader. | |
ShaderPtr | getShader () const |
Return the underlying hardware shader. | |
bool | hasTransparency () const |
Return true if this ShaderMaterial has transparency. | |
virtual bool | bindShader () const =0 |
Bind shader. More... | |
virtual void | bindViewInformation (CameraPtr camera)=0 |
Bind viewing information for this ShaderMaterial. More... | |
virtual void | bindImages (ImageHandlerPtr imageHandler, const FileSearchPath &searchPath, bool enableMipmaps=true)=0 |
Bind all images for this ShaderMaterial. More... | |
virtual void | unbindImages (ImageHandlerPtr imageHandler)=0 |
Unbbind all images for this ShaderMaterial. More... | |
virtual ImagePtr | bindImage (const FilePath &filePath, const std::string &uniformName, ImageHandlerPtr imageHandler, const ImageSamplingProperties &samplingProperties)=0 |
Bind a single image. More... | |
virtual void | bindLighting (LightHandlerPtr lightHandler, ImageHandlerPtr imageHandler, const ShadowState &shadowState)=0 |
Bind lights to shader. More... | |
virtual void | bindMesh (MeshPtr mesh)=0 |
Bind the given mesh to this ShaderMaterial. More... | |
virtual bool | bindPartition (MeshPartitionPtr part) const =0 |
Bind a mesh partition to this ShaderMaterial. More... | |
virtual void | drawPartition (MeshPartitionPtr part) const =0 |
Draw the given mesh partition. More... | |
virtual void | unbindGeometry ()=0 |
Unbind all geometry from this ShaderMaterial. More... | |
virtual VariableBlock * | getPublicUniforms () const =0 |
Return the block of public uniforms for this ShaderMaterial. More... | |
virtual ShaderPort * | findUniform (const std::string &path) const =0 |
Find a public uniform from its MaterialX path. More... | |
virtual void | modifyUniform (const std::string &path, ConstValuePtr value, std::string valueString=EMPTY_STRING)=0 |
Modify the value of the uniform with the given path. More... | |
Protected Member Functions | |
virtual void | clearShader ()=0 |
Protected Attributes | |
ShaderPtr | _hwShader |
MeshPtr | _boundMesh |
DocumentPtr | _doc |
TypedElementPtr | _elem |
NodePtr | _materialNode |
std::string | _udim |
bool | _hasTransparency |
ImageVec | _boundImages |
Abstract class for shader generation and rendering of a ShaderMaterial.
|
pure virtual |
Bind a single image.
Implemented in GlslMaterial.
|
pure virtual |
Bind all images for this ShaderMaterial.
Implemented in GlslMaterial.
|
pure virtual |
Bind lights to shader.
Implemented in GlslMaterial.
|
pure virtual |
Bind the given mesh to this ShaderMaterial.
Implemented in GlslMaterial.
|
pure virtual |
Bind a mesh partition to this ShaderMaterial.
Implemented in GlslMaterial.
|
pure virtual |
Bind shader.
Implemented in GlslMaterial.
|
pure virtual |
Bind viewing information for this ShaderMaterial.
Implemented in GlslMaterial.
|
pure virtual |
Copies shader and API specific generated program from ShaderMaterial to this one.
Implemented in GlslMaterial.
|
pure virtual |
Draw the given mesh partition.
Implemented in GlslMaterial.
|
pure virtual |
Find a public uniform from its MaterialX path.
Implemented in GlslMaterial.
|
pure virtual |
Generate a shader from our currently stored element and the given generator context.
Implemented in GlslMaterial.
|
pure virtual |
Generate a shader from the given hardware shader.
Implemented in GlslMaterial.
|
pure virtual |
Return the block of public uniforms for this ShaderMaterial.
Implemented in GlslMaterial.
|
pure virtual |
Load shader source from file.
Implemented in GlslMaterial.
|
pure virtual |
Modify the value of the uniform with the given path.
Implemented in GlslMaterial.
|
pure virtual |
Unbind all geometry from this ShaderMaterial.
Implemented in GlslMaterial.
|
pure virtual |
Unbbind all images for this ShaderMaterial.
Implemented in GlslMaterial.