scg3
0.6
|
A core to set material properties for lighting to be applied to subsequent geometry. More...
#include "MaterialCore.h"
Public Member Functions | |
MaterialCore () | |
virtual | ~MaterialCore () |
MaterialCore * | setEmission (const glm::vec4 &color) |
MaterialCore * | setAmbient (const glm::vec4 &color) |
MaterialCore * | setAmbientAndDiffuse (const glm::vec4 &color) |
MaterialCore * | setDiffuse (const glm::vec4 &color) |
MaterialCore * | setSpecular (const glm::vec4 &color) |
MaterialCore * | setShininess (GLfloat shininess) |
void | init () |
virtual void | render (RenderState *renderState) |
virtual void | renderPost (RenderState *renderState) |
Public Member Functions inherited from scg::Core | |
Core () | |
virtual | ~Core ()=0 |
Static Public Member Functions | |
static MaterialCoreSP | create () |
Static Public Attributes | |
static const size_t | FLOAT_SIZE = 4 |
static const size_t | VEC4_SIZE = 16 |
static const size_t | EMISSION_OFFSET = 0 |
static const size_t | AMBIENT_OFFSET = 16 |
static const size_t | DIFFUSE_OFFSET = 32 |
static const size_t | SPECULAR_OFFSET = 48 |
static const size_t | SHININESS_OFFSET = 64 |
static const size_t | BUFFER_SIZE = 80 |
Protected Attributes | |
GLuint | ubo_ |
GLint | uboOld_ |
glm::vec4 | emission_ |
glm::vec4 | ambient_ |
glm::vec4 | diffuse_ |
glm::vec4 | specular_ |
GLfloat | shininess_ |
A core to set material properties for lighting to be applied to subsequent geometry.
The material properties are stored in a uniform buffer object (UBO), which is bound in render().
Definition at line 44 of file MaterialCore.h.
scg::MaterialCore::MaterialCore | ( | ) |
Constructor.
|
virtual |
Destructor.
|
static |
Create shared pointer.
void scg::MaterialCore::init | ( | ) |
Initialize material, i.e., create uniform buffer object (UBO).
|
virtual |
Render material, i.e., bind uniform buffer object (UBO).
Implements scg::Core.
|
virtual |
Render material after traversing sub-tree, i.e., restore previous material state.
Reimplemented from scg::Core.
MaterialCore* scg::MaterialCore::setAmbient | ( | const glm::vec4 & | color | ) |
Set ambient RGBA color.
MaterialCore* scg::MaterialCore::setAmbientAndDiffuse | ( | const glm::vec4 & | color | ) |
Set ambient and diffuse RGBA colors.
MaterialCore* scg::MaterialCore::setDiffuse | ( | const glm::vec4 & | color | ) |
Set diffuse RGBA color.
MaterialCore* scg::MaterialCore::setEmission | ( | const glm::vec4 & | color | ) |
Set emissive RGBA color.
MaterialCore* scg::MaterialCore::setShininess | ( | GLfloat | shininess | ) |
Set shininess (i.e., specular exponent).
MaterialCore* scg::MaterialCore::setSpecular | ( | const glm::vec4 & | color | ) |
Set specular RGBA color.
|
protected |
Definition at line 131 of file MaterialCore.h.
|
static |
Definition at line 120 of file MaterialCore.h.
|
static |
Definition at line 124 of file MaterialCore.h.
|
protected |
Definition at line 132 of file MaterialCore.h.
|
static |
Definition at line 121 of file MaterialCore.h.
|
protected |
Definition at line 130 of file MaterialCore.h.
|
static |
Definition at line 119 of file MaterialCore.h.
|
static |
Definition at line 117 of file MaterialCore.h.
|
protected |
Definition at line 134 of file MaterialCore.h.
|
static |
Definition at line 123 of file MaterialCore.h.
|
protected |
Definition at line 133 of file MaterialCore.h.
|
static |
Definition at line 122 of file MaterialCore.h.
|
protected |
Definition at line 128 of file MaterialCore.h.
|
protected |
Definition at line 129 of file MaterialCore.h.
|
static |
Definition at line 118 of file MaterialCore.h.