|
| SLMaterial (SLAssetManager *am, const SLchar *name, const SLCol4f &amdi=SLCol4f::WHITE, const SLCol4f &spec=SLCol4f::WHITE, SLfloat shininess=100.0f, SLfloat kr=0.0, SLfloat kt=0.0f, SLfloat kn=1.0f, SLGLProgram *program=nullptr) |
| Default ctor for Blinn-Phong reflection model materials without textures. More...
|
|
| SLMaterial (SLAssetManager *am, const SLchar *name, SLGLTexture *texture1, SLGLTexture *texture2=nullptr, SLGLTexture *texture3=nullptr, SLGLTexture *texture4=nullptr, SLGLProgram *program=nullptr) |
| Ctor for textured Blinn-Phong reflection model materials. More...
|
|
| SLMaterial (SLAssetManager *am, const SLchar *name, SLSkybox *skybox, SLCol4f diffuse, SLfloat roughness, SLfloat metalness, SLGLProgram *program=nullptr) |
| Ctor for PBR material with Cook-Torrance material parameters. More...
|
|
| SLMaterial (SLAssetManager *am, const SLchar *name, SLSkybox *skybox, SLGLTexture *texture1, SLGLTexture *texture2=nullptr, SLGLTexture *texture3=nullptr, SLGLTexture *texture4=nullptr, SLGLTexture *texture5=nullptr, SLGLProgram *program=nullptr) |
| Ctor for PBR material with Cook-Torrance material textures. More...
|
|
| SLMaterial (SLAssetManager *am, const SLchar *name, SLParticleSystem *ps, SLGLTexture *texture, SLGLProgram *program=nullptr, SLGLProgram *programTF=nullptr) |
| Ctor for Particle System material with one texture (Draw and update) More...
|
|
| SLMaterial (SLAssetManager *am, SLGLProgram *colorUniformProgram, const SLCol4f &uniformColor, const SLchar *name=(const char *)"Uniform color") |
| Ctor for uniform color material without lighting. More...
|
|
| SLMaterial (SLAssetManager *am, const SLchar *name, SLGLProgram *program) |
| Ctor for only a program. More...
|
|
| ~SLMaterial () override |
|
void | generateProgramPS (bool drawInstanced=false) |
|
void | activate (SLCamera *cam, SLVLight *lights, SLbool supportGPUSkinning) |
|
SLint | passToUniforms (SLGLProgram *program, SLint nextTexUnit) |
| Passes all material parameters as uniforms to the passed shader program. More...
|
|
void | deleteDataGpu () |
|
SLbool | hasAlpha () |
| Returns true if there is any transparency in diffuse alpha or textures. More...
|
|
SLbool | has3DTexture () |
| Returns true if a material has a 3D texture. More...
|
|
SLbool | usesUVIndex (SLbyte uvIndex) |
| Returns true if the specified uvIndex is used by one of the textures. More...
|
|
SLbool | needsTangents () |
|
SLbool | hasTextureType (SLTextureType tt) |
|
SLbool | hasTextureTypeWithUVIndex (SLTextureType tt, SLuint texIndex, SLbyte uvIndex) |
|
void | removeTextureType (SLTextureType tt) |
|
void | addTexture (SLGLTexture *texture) |
| Adds the passed texture to the equivalent texture type vector. More...
|
|
SLstring | texturesString () |
| Returns a unique string that represent all textures used. More...
|
|
void | assetManager (SLAssetManager *am) |
|
void | reflectionModel (SLReflectionModel rm) |
|
void | ambient (const SLCol4f &ambi) |
|
void | diffuse (const SLCol4f &diff) |
|
void | ambientDiffuse (const SLCol4f &am_di) |
|
void | specular (const SLCol4f &spec) |
|
void | emissive (const SLCol4f &emis) |
|
void | transmissive (const SLCol4f &transm) |
|
void | translucency (SLfloat transl) |
|
void | shininess (SLfloat shin) |
|
void | roughness (SLfloat r) |
|
void | metalness (SLfloat m) |
|
void | kr (SLfloat kr) |
|
void | kt (SLfloat kt) |
|
void | kn (SLfloat kn) |
|
void | getsShadows (SLbool receivesShadows) |
|
void | program (SLGLProgram *sp) |
|
void | programTF (SLGLProgram *sp) |
|
void | skybox (SLSkybox *sb) |
|
void | ps (SLParticleSystem *ps) |
|
SLAssetManager * | assetManager () |
|
SLReflectionModel | reflectionModel () |
|
SLCol4f | ambient () |
|
SLCol4f | diffuse () |
|
SLCol4f | specular () |
|
SLCol4f | emissive () |
|
SLfloat | shininess () const |
|
SLfloat | roughness () const |
|
SLfloat | metalness () const |
|
SLCol4f | transmissive () |
|
SLfloat | translucency () const |
|
SLfloat | kr () const |
|
SLfloat | kt () const |
|
SLfloat | kn () const |
|
SLbool | getsShadows () const |
|
SLuint | numTextures () |
|
SLGLProgram * | program () |
|
SLGLProgram * | programTF () |
|
SLSkybox * | skybox () |
|
SLParticleSystem * | ps () |
|
SLVNode & | nodesVisible2D () |
|
SLVNode & | nodesVisible3D () |
|
SLVGLTexture & | textures (SLTextureType type) |
|
SLVGLTexture & | textures3d () |
|
| SLObject (const SLstring &Name="", const SLstring &url="") |
|
virtual | ~SLObject () |
|
void | name (const SLstring &Name) |
|
void | url (const SLstring &url) |
|
const SLstring & | name () const |
|
const SLstring & | url () const |
|
static SLfloat | K |
| PM: Constant of gloss calibration (slope of point light at dist 1) More...
|
|
static SLfloat | PERFECT = 1000.0f |
| PM: shininess/translucency limit. More...
|
|
SLAssetManager * | _assetManager |
| pointer to the asset manager (the owner) if available More...
|
|
SLReflectionModel | _reflectionModel |
| reflection model (RM_BlinnPhong or RM_CookTorrance) More...
|
|
SLCol4f | _ambient |
| ambient color (RGB reflection coefficients) More...
|
|
SLCol4f | _diffuse |
| diffuse color (RGB reflection coefficients) More...
|
|
SLCol4f | _specular |
| specular color (RGB reflection coefficients) More...
|
|
SLCol4f | _emissive |
| emissive color coefficients More...
|
|
SLfloat | _shininess |
| shininess exponent in Blinn-Phong model More...
|
|
SLfloat | _roughness |
| roughness property (0-1) in Cook-Torrance model More...
|
|
SLfloat | _metalness |
| metallic property (0-1) in Cook-Torrance model More...
|
|
SLCol4f | _transmissive |
| transmissive color (RGB reflection coefficients) for path tracing More...
|
|
SLfloat | _translucency |
| translucency exponent for light refraction for path tracing More...
|
|
SLfloat | _kr {} |
| reflection coefficient 0.0 - 1.0 used for ray and path tracing More...
|
|
SLfloat | _kt {} |
| transmission coefficient 0.0 - 1.0 used for ray and path tracing More...
|
|
SLfloat | _kn {} |
| refraction index More...
|
|
SLbool | _getsShadows |
| true if shadows are visible on this material More...
|
|
SLGLProgram * | _program {} |
| pointer to a GLSL shader program More...
|
|
SLGLProgram * | _programTF {} |
| pointer to a GLSL shader program for transformFeedback More...
|
|
SLint | _numTextures |
| number of textures in all _textures vectors array More...
|
|
SLSkybox * | _skybox |
| pointer to the skybox More...
|
|
SLParticleSystem * | _ps |
| pointer to a particle system More...
|
|
SLVGLTexture | _textures [TT_numTextureType] |
| array of texture vectors one for each type More...
|
|
SLVGLTexture | _textures3d |
| texture vector for diffuse 3D textures More...
|
|
SLGLTexture * | _errorTexture = nullptr |
| pointer to error texture that is shown if another texture fails More...
|
|
SLstring | _compileErrorTexFilePath |
| path to the error texture More...
|
|
SLVNode | _nodesVisible2D |
| Vector of all visible 2D nodes of with this material. More...
|
|
SLVNode | _nodesVisible3D |
| Vector of all visible 3D nodes of with this material. More...
|
|
SLstring | _name |
| name of an object More...
|
|
SLstring | _url |
| uniform resource locator More...
|
|
Global default gray color material for meshes that don't define their own.
Because the default material depends a default shader program (SLGLDefaultProgPerVrtBlinn or SLGLDefaultProgPerVrtBlinnTm) that itself depends on the scene configuration (e.g. the num. of lights) ist MUST be deleted at scene destruction.
Definition at line 283 of file SLMaterial.h.