|
| | 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 () |
| |
| void | activate (SLCamera *cam, SLVLight *lights, SLSkybox *skybox=nullptr) |
| |
| SLint | passToUniforms (SLGLProgram *program, SLint nextTexUnit) |
| | Passes all material parameters as uniforms to the passed shader program. More...
|
| |
| 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.