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

#include <GR_MaterialTypes.h>

+ Inheritance diagram for GR_MatXMaterial:

Public Member Functions

bool bindInt (const UT_StringRef &name, int32 value)
 
bool bindInts (const UT_StringRef &name, const UT_Array< int32 > &values)
 
bool bindFloat (const UT_StringRef &name, fpreal32 value)
 
bool bindFloats (const UT_StringRef &name, const UT_Array< fpreal32 > &values)
 
bool bindFloat2 (const UT_StringRef &name, const UT_Vector2D &value)
 
bool bindFloat3 (const UT_StringRef &name, const UT_Vector3D &value)
 
bool bindFloat4 (const UT_StringRef &name, const UT_Vector4D &value)
 
bool bindMatrix3 (const UT_StringRef &name, const UT_Matrix3D &value)
 
bool bindMatrix4 (const UT_StringRef &name, const UT_Matrix4D &value)
 
bool bindTexture (const UT_StringRef &name, const UT_StringRef &map_path, bool is_color, int ncomps, const UT_Vector4F &fallback_color, const RV_TextureParms *tex_parms=nullptr)
 
void setSurfaceShader (exint id)
 
void setCurveShader (exint id)
 
void setDisplaceShader (exint id)
 
void clearShaders ()
 
bool areShadersValid () const
 
RV_ShaderProgramgetSurfaceShader () const override
 
RV_ShaderProgramgetCurveShader () const override
 
RV_ShaderComputegetDisplaceShader () const override
 
UT_StringMap
< GR_Material::InputType > & 
inputs ()
 
void update (const GR_MaterialParms &options) override
 
bool initMaterialSetForRender (RV_Render *r, RV_ShaderProgramBase *shader, bool &created) override
 
bool initBlocks (RV_Render *r, const GR_DisplayOption *opts) override
 
void setCachedName (UT_StringHolder &name)
 
const UT_StringHoldercachedName () const
 
void makeUniqueCachedName (UT_WorkBuffer &name) const
 
void makeCachedCurveName (UT_WorkBuffer &name) const
 
void setShaderDirty (bool dirty)
 
bool isShaderDirty () const
 
void setMatXNodeVersion (int64 version)
 
int64 getMatXNodeVersion () const
 
void dirtyTextures () override
 
void setShaderCompiled (bool comp)
 
bool isShaderCompiled () const
 
void setSurfShaderAssigned (bool comp)
 
bool isSurfShaderAssigned () const
 
void setCurveShaderAssigned (bool comp)
 
bool isCurveShaderAssigned () const
 
void setDisplaceShaderAssigned (bool comp)
 
bool isDisplaceShaderAssigned () const
 
void setShaderCompileKey (UT_StringHolder &key)
 
const UT_StringHoldershaderCompileKey ()
 
void setFreeCB (UT_Functor1< void, GR_MatXMaterial * > cb)
 
bool bindForCompute (RV_Render *r, RV_ShaderProgramBase *shader, const GR_DisplayOption &opts) override
 
- Public Member Functions inherited from GR_SimpleMaterial
 MATPARM (UT_Vector3F, Diff)
 
 MATPARM (UT_Vector3F, Spec)
 
 MATPARM (UT_Vector3F, Emit)
 
 MATPARM (UT_Vector3F, MetalColor)
 
 MATPARM (UT_Vector3F, SheenColor)
 
 MATPARM (fpreal32, DiffRough)
 
 MATPARM (fpreal32, SpecRough)
 
 MATPARM (fpreal32, SpecTint)
 
 MATPARM (fpreal32, Metal)
 
 MATPARM (fpreal32, IOR)
 
 MATPARM (fpreal32, Alpha)
 
 MATPARM (fpreal32, AlphaPara)
 
 MATPARM (fpreal32, AlphaCutoff)
 
 MATPARM (int32, AlphaMode)
 
 MATPARM (fpreal32, CoatIntensity)
 
 MATPARM (fpreal32, CoatRough)
 
 MATPARM (fpreal32, SheenIntensity)
 
 MATPARM (fpreal32, SheenRough)
 
 MATPARM (int32, SpecModel)
 
 MATPARM (int32, CoatSpecModel)
 
 MATPARM (int32, UseGeoColor)
 
 MATPARM (int32, UsePackedColor)
 
 MATPARM (int32, HasTextures)
 
void setVertexOverrides (const UT_StringMap< UT_StringHolder > &ovr)
 
const UT_StringMap
< UT_StringHolder > & 
vertexOverrides () const
 
- Public Member Functions inherited from GR_Material
MaterialType type () const
 
int getNodeID () const
 
void setNodeID (int id)
 
UT_StringHolder getNodePath () const
 
void setTimeDependent (bool timedep, fpreal t=0.0)
 
void setOPTimeDependent (bool timedep, fpreal t=0.0)
 
bool isTimeDependent () const
 
bool isOPTimeDependent () const
 
fpreal getCurrentTime () const
 
bool isDirty (fpreal time)
 
void dirty (bool dirty=true)
 
bool isTextured () const
 
void setTextured (bool has_tex)
 
bool hasUDIM () const
 
void setHasUDIM (bool has_udim)
 
bool hasDisplacement () const
 
void setHasDisplacement (bool has_disp)
 
bool needsUVs () const
 
void setNeedsUVs (bool uvs)
 
bool needsTangents () const
 
void setNeedsTangents (bool tan)
 
bool isTransparent () const
 
void setTransparent (bool has_tex)
 
bool texturesLoaded () const
 
void setTexturesLoaded (bool loaded)
 
bool bindWithoutUpdate (RV_Render *r, RV_ShaderProgramBase *shader, const GR_DisplayOption *opts, bool for_curve=false)
 
bool bind (RV_Render *r, RV_ShaderProgramBase *shader, const GR_DisplayOption *opts, bool for_curve=false)
 
bool checkCompatible (RV_Render *r, RV_ShaderProgramBase *sh, bool for_curve=false) const
 
bool bindSets (RV_Render *r, RV_ShaderProgramBase *shader, bool for_curve)
 
DEP_MicroNodedependencies ()
 
bool opDependenciesDirty () const
 
void clearOpDependenciesDirty ()
 
const UT_Set< intopDependencies () const
 
void setOverrides (const UT_Options *overrides)
 
const UT_OptionsgetOverrides () const
 
void setFallbacks (const UT_Options *attrib_fallbacks)
 
const UT_OptionsgetFallbacks () const
 
void setExtraInputs (const UT_StringMap< InputType > &extra_inputs)
 
const UT_StringMap< InputType > & extraInputs () const
 
- Public Member Functions inherited from GR_SceneItem
const UT_StringHoldername () const
 
exint id () const
 
int64 getVersion () const
 
void setVersion (int64 v)
 
void incref ()
 
void decref ()
 
void setName (const UT_StringHolder &name)
 
void setID (int id)
 

Protected Member Functions

 GR_MatXMaterial (const UT_StringHolder &name)
 
 ~GR_MatXMaterial () override
 
 UT_NON_COPYABLE (GR_MatXMaterial)
 
void resetResources ()
 
- Protected Member Functions inherited from GR_SimpleMaterial
 GR_SimpleMaterial (const UT_StringHolder &name, MaterialType type=SIMPLE_SURFACE)
 
 UT_NON_COPYABLE (GR_SimpleMaterial)
 
- Protected Member Functions inherited from GR_Material
 GR_Material (const UT_StringHolder &name, MaterialType type)
 
 ~GR_Material () override
 
 UT_NON_COPYABLE (GR_Material)
 
void clearOpIDs ()
 
void addOpID (int id)
 
bool timeChangeCheck () const
 
void initTextureParms (RV_TextureParms &parms, const GR_DisplayOption *opts, RV_ImageDim tex_type, RV_TextureFilter filter=RV_FILTER_LINEAR)
 
- Protected Member Functions inherited from GR_SceneItem
 GR_SceneItem (const UT_StringHolder &name, int id)
 
virtual ~GR_SceneItem ()
 
 UT_NON_COPYABLE (GR_SceneItem)
 

Friends

class GR_Material
 

Additional Inherited Members

- Public Types inherited from GR_Material
enum  MaterialType {
  SIMPLE_SURFACE, UNLIT_SURFACE, FILM_SURFACE, HAIR_CURVE,
  HEIGHTFIELD_SURFACE, MATX_SURFACE, MATCAP_SURFACE
}
 
enum  SpecularMode { PHONG = 0, BLINN, GGX, SPEC_ANGLE }
 
enum  DisplaceMode { DISPLACE_NORMAL = 0, DISPLACE_VECTOR_TANGENT, DISPLACE_VECTOR_WORLD, DISPLACE_VECTOR_OBJECT }
 
enum  NormalMapType { NMLMAP_TANGENT = 0, NMLMAP_WORLD, NMLMAP_OBJECT }
 
enum  AlphaMode { ALPHA_BLEND = 0, ALPHA_CUTOUT, ALPHA_IGNORE }
 
enum  InputType {
  IN_INT, IN_FLOAT, IN_VEC2, IN_VEC3,
  IN_VEC4
}
 
- Static Public Member Functions inherited from GR_Material
static GR_MaterialPtr create (MaterialType type, const UT_StringHolder &name)
 
static exint getUniqueMaterialID ()
 
- Protected Attributes inherited from GR_Material
UT_UniquePtr
< RV_ShaderVariableSet
myMaterialSet
 
UT_UniquePtr
< RV_ShaderVariableSet
myTexMaterialSet
 
UT_UniquePtr
< RV_ShaderVariableSet
myTexCurveMaterialSet
 
bool myDirtyFlag
 
bool myBlockDirtyFlag
 

Detailed Description

Definition at line 593 of file GR_MaterialTypes.h.

Constructor & Destructor Documentation

GR_MatXMaterial::GR_MatXMaterial ( const UT_StringHolder name)
protected
GR_MatXMaterial::~GR_MatXMaterial ( )
overrideprotected

Member Function Documentation

bool GR_MatXMaterial::areShadersValid ( ) const
bool GR_MatXMaterial::bindFloat ( const UT_StringRef name,
fpreal32  value 
)
bool GR_MatXMaterial::bindFloat2 ( const UT_StringRef name,
const UT_Vector2D value 
)
bool GR_MatXMaterial::bindFloat3 ( const UT_StringRef name,
const UT_Vector3D value 
)
bool GR_MatXMaterial::bindFloat4 ( const UT_StringRef name,
const UT_Vector4D value 
)
bool GR_MatXMaterial::bindFloats ( const UT_StringRef name,
const UT_Array< fpreal32 > &  values 
)
bool GR_MatXMaterial::bindForCompute ( RV_Render r,
RV_ShaderProgramBase shader,
const GR_DisplayOption opts 
)
overridevirtual

Reimplemented from GR_Material.

bool GR_MatXMaterial::bindInt ( const UT_StringRef name,
int32  value 
)
bool GR_MatXMaterial::bindInts ( const UT_StringRef name,
const UT_Array< int32 > &  values 
)
bool GR_MatXMaterial::bindMatrix3 ( const UT_StringRef name,
const UT_Matrix3D value 
)
bool GR_MatXMaterial::bindMatrix4 ( const UT_StringRef name,
const UT_Matrix4D value 
)
bool GR_MatXMaterial::bindTexture ( const UT_StringRef name,
const UT_StringRef map_path,
bool  is_color,
int  ncomps,
const UT_Vector4F fallback_color,
const RV_TextureParms tex_parms = nullptr 
)
const UT_StringHolder& GR_MatXMaterial::cachedName ( ) const
inline

Definition at line 645 of file GR_MaterialTypes.h.

void GR_MatXMaterial::clearShaders ( )
inline

Definition at line 626 of file GR_MaterialTypes.h.

void GR_MatXMaterial::dirtyTextures ( )
inlineoverridevirtual

Reimplemented from GR_Material.

Definition at line 668 of file GR_MaterialTypes.h.

RV_ShaderProgram* GR_MatXMaterial::getCurveShader ( ) const
overridevirtual

Reimplemented from GR_Material.

RV_ShaderCompute* GR_MatXMaterial::getDisplaceShader ( ) const
overridevirtual

Reimplemented from GR_Material.

int64 GR_MatXMaterial::getMatXNodeVersion ( ) const
inline

Definition at line 666 of file GR_MaterialTypes.h.

RV_ShaderProgram* GR_MatXMaterial::getSurfaceShader ( ) const
overridevirtual

Reimplemented from GR_Material.

bool GR_MatXMaterial::initBlocks ( RV_Render r,
const GR_DisplayOption opts 
)
overridevirtual

Reimplemented from GR_SimpleMaterial.

bool GR_MatXMaterial::initMaterialSetForRender ( RV_Render r,
RV_ShaderProgramBase shader,
bool &  created 
)
overridevirtual

Reimplemented from GR_SimpleMaterial.

UT_StringMap<GR_Material::InputType>& GR_MatXMaterial::inputs ( )
inline

Definition at line 634 of file GR_MaterialTypes.h.

bool GR_MatXMaterial::isCurveShaderAssigned ( ) const
inline

Definition at line 677 of file GR_MaterialTypes.h.

bool GR_MatXMaterial::isDisplaceShaderAssigned ( ) const
inline

Definition at line 680 of file GR_MaterialTypes.h.

bool GR_MatXMaterial::isShaderCompiled ( ) const
inline

Definition at line 671 of file GR_MaterialTypes.h.

bool GR_MatXMaterial::isShaderDirty ( ) const
inline

Definition at line 663 of file GR_MaterialTypes.h.

bool GR_MatXMaterial::isSurfShaderAssigned ( ) const
inline

Definition at line 674 of file GR_MaterialTypes.h.

void GR_MatXMaterial::makeCachedCurveName ( UT_WorkBuffer name) const
inline

Definition at line 655 of file GR_MaterialTypes.h.

void GR_MatXMaterial::makeUniqueCachedName ( UT_WorkBuffer name) const
inline

Definition at line 649 of file GR_MaterialTypes.h.

void GR_MatXMaterial::resetResources ( )
protected
void GR_MatXMaterial::setCachedName ( UT_StringHolder name)
inline

Definition at line 643 of file GR_MaterialTypes.h.

void GR_MatXMaterial::setCurveShader ( exint  id)
inline

Definition at line 619 of file GR_MaterialTypes.h.

void GR_MatXMaterial::setCurveShaderAssigned ( bool  comp)
inline

Definition at line 676 of file GR_MaterialTypes.h.

void GR_MatXMaterial::setDisplaceShader ( exint  id)
inline

Definition at line 622 of file GR_MaterialTypes.h.

void GR_MatXMaterial::setDisplaceShaderAssigned ( bool  comp)
inline

Definition at line 679 of file GR_MaterialTypes.h.

void GR_MatXMaterial::setFreeCB ( UT_Functor1< void, GR_MatXMaterial * >  cb)
inline

Definition at line 686 of file GR_MaterialTypes.h.

void GR_MatXMaterial::setMatXNodeVersion ( int64  version)
inline

Definition at line 665 of file GR_MaterialTypes.h.

void GR_MatXMaterial::setShaderCompiled ( bool  comp)
inline

Definition at line 670 of file GR_MaterialTypes.h.

void GR_MatXMaterial::setShaderCompileKey ( UT_StringHolder key)
inline

Definition at line 682 of file GR_MaterialTypes.h.

void GR_MatXMaterial::setShaderDirty ( bool  dirty)
inline

Definition at line 662 of file GR_MaterialTypes.h.

void GR_MatXMaterial::setSurfaceShader ( exint  id)
inline

Definition at line 615 of file GR_MaterialTypes.h.

void GR_MatXMaterial::setSurfShaderAssigned ( bool  comp)
inline

Definition at line 673 of file GR_MaterialTypes.h.

const UT_StringHolder& GR_MatXMaterial::shaderCompileKey ( )
inline

Definition at line 684 of file GR_MaterialTypes.h.

void GR_MatXMaterial::update ( const GR_MaterialParms options)
overridevirtual

Reimplemented from GR_SimpleMaterial.

GR_MatXMaterial::UT_NON_COPYABLE ( GR_MatXMaterial  )
protected

Friends And Related Function Documentation

friend class GR_Material
friend

Definition at line 698 of file GR_MaterialTypes.h.


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