OGL Engine 1.2.0-dev
Loading...
Searching...
No Matches
Engine::Graphics::Material Class Reference

La classe Material définit un "material" graphique utilisé pour le rendu de meshes texturés. More...

#include <material.hpp>

Public Member Functions

 Material (Texture *texture=Defaults::texture, Shader *shader=Defaults::shader)
 Construit un nouveau Material.
void SetUniform (const std::string &name, const UniformValue &value)
 Enregistre un uniform dans le tableau interne du material.
UniformValue GetUniform (const std::string &name) const
 Renvoie la valeur d'un uniforme stockée dans le material.
void Bind () const
 Permet de lier le Material courant et de setup les uniforms avant un drawcall.

Public Attributes

Shadershader
 Pointeur vers un objet Shader préalablement compilé
Texturetexture
 Pointeur vers un objet Texture (peut être nullptr)
glm::vec4 color = {1.0f, 1.0f, 1.0f, 1.0f}
 La couleur du Material (automatiquement envoyée à l'uniform u_Color, peut être utilisée par les shaders)

Detailed Description

La classe Material définit un "material" graphique utilisé pour le rendu de meshes texturés.

Un Material doit nécessairement avoir un Shader associé pour le rendu. Il peut avoir une texture aussi. En plus de cela, le Material possède une "color" (qui peut être utilisée pour un rendu flat si pas de texture ou en mix avec la texture)

Constructor & Destructor Documentation

◆ Material()

Engine::Graphics::Material::Material ( Texture * texture = Defaults::texture,
Shader * shader = Defaults::shader )

Construit un nouveau Material.

Parameters
textureLa texture à utiliser (charger au préalable et gérer la mémoire)
shaderLe shader à utiliser (charger au préalable, et gérer la mémoire)

Member Function Documentation

◆ Bind()

void Engine::Graphics::Material::Bind ( ) const

Permet de lier le Material courant et de setup les uniforms avant un drawcall.

◆ GetUniform()

UniformValue Engine::Graphics::Material::GetUniform ( const std::string & name) const

Renvoie la valeur d'un uniforme stockée dans le material.

Parameters
name
Returns
UniformValue

◆ SetUniform()

void Engine::Graphics::Material::SetUniform ( const std::string & name,
const UniformValue & value )

Enregistre un uniform dans le tableau interne du material.

A chaque "Bind()", les uniforms stockés sont envoyés dans le Shader. Cela permet de rendre les Shader particulièrement customisables, sans pour autant mettre les mains dans le code des renderers puisuqe le binding à lieu ici.

Parameters
nameLe nom de l'uniform (doit matcher avec le nom utilisé dans le shader)
valueLa valeur à enregistrer (doit faire partie de UniformValue)

Member Data Documentation

◆ color

glm::vec4 Engine::Graphics::Material::color = {1.0f, 1.0f, 1.0f, 1.0f}

La couleur du Material (automatiquement envoyée à l'uniform u_Color, peut être utilisée par les shaders)

◆ shader

Shader* Engine::Graphics::Material::shader

Pointeur vers un objet Shader préalablement compilé

◆ texture

Texture* Engine::Graphics::Material::texture

Pointeur vers un objet Texture (peut être nullptr)


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