Tatooine
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Private Member Functions | List of all members
tatooine::rendering::interactive::cook_torrance_brdf_shader Struct Reference

#include <cook_torrance_brdf_shader.h>

Inheritance diagram for tatooine::rendering::interactive::cook_torrance_brdf_shader:
[legend]
Collaboration diagram for tatooine::rendering::interactive::cook_torrance_brdf_shader:
[legend]

Public Types

using this_type = cook_torrance_brdf_shader
 

Public Member Functions

auto set_view_matrix (Mat4< GLfloat > const &V) -> void
 
auto set_projection_matrix (Mat4< GLfloat > const &P) -> void
 
auto set_model_matrix (Mat4< GLfloat > const &M) -> void
 
auto set_solid_base_color (Vec3< GLfloat > const &b) -> void
 
auto set_roughness (GLfloat const r) -> void
 
auto set_metallic (GLfloat const m) -> void
 
auto set_reflectance (GLfloat const r) -> void
 
auto set_light_color (Vec4< GLfloat > const &l) -> void
 
auto set_irradi_perp (GLfloat const i) -> void
 
auto set_min (GLfloat const min) -> void
 
auto set_max (GLfloat const max) -> void
 
auto invert_scale (bool const invert) -> void
 
auto use_solid_base_color (bool const use) -> void
 
auto enable_lighting (bool const en) -> void
 
- Public Member Functions inherited from tatooine::gl::shader
 shader ()=default
 
 ~shader ()
 
template<typename T , typename... Args>
void add_stage (Args &&... args)
 
DLL_API void create ()
 
DLL_API void delete_shader ()
 
DLL_API void bind () const
 
DLL_API void unbind () const
 
DLL_API void add_uniform (const std::string &uniformVarName)
 
DLL_API void add_attribute (const std::string &attributeVarName)
 
DLL_API GLint uniform (const std::string &uniformVarName)
 
DLL_API GLint attribute (const std::string &attributeVarName)
 
DLL_API void set_uniform (const std::string &, GLfloat)
 
DLL_API void set_uniform (const std::string &, GLint)
 
DLL_API void set_uniform (const std::string &, GLuint)
 
DLL_API void set_uniform (const std::string &, GLboolean)
 
DLL_API void set_uniform (const std::string &, GLfloat, GLfloat)
 
DLL_API void set_uniform (const std::string &, GLfloat, GLfloat, GLfloat)
 
DLL_API void set_uniform (const std::string &, GLfloat, GLfloat, GLfloat, GLfloat)
 
DLL_API void set_uniform (const std::string &, std::array< GLfloat, 2 > const &data)
 
DLL_API void set_uniform (const std::string &, std::array< GLfloat, 3 > const &data)
 
DLL_API void set_uniform (const std::string &, std::array< GLfloat, 4 > const &data)
 
DLL_API void set_uniform (const std::string &, GLint, GLint)
 
DLL_API void set_uniform (const std::string &, GLint, GLint, GLint)
 
DLL_API void set_uniform (const std::string &, GLint, GLint, GLint, GLint)
 
DLL_API void set_uniform (const std::string &, std::array< GLint, 2 > const &data)
 
DLL_API void set_uniform (const std::string &, std::array< GLint, 3 > const &data)
 
DLL_API void set_uniform (const std::string &, std::array< GLint, 4 > const &data)
 
DLL_API void set_uniform (const std::string &, GLuint, GLuint)
 
DLL_API void set_uniform (const std::string &, GLuint, GLuint, GLuint)
 
DLL_API void set_uniform (const std::string &, GLuint, GLuint, GLuint, GLuint)
 
DLL_API void set_uniform (const std::string &, std::array< GLuint, 2 > const &data)
 
DLL_API void set_uniform (const std::string &, std::array< GLuint, 3 > const &data)
 
DLL_API void set_uniform (const std::string &, std::array< GLuint, 4 > const &data)
 
DLL_API void set_uniform (const std::string &, Vec2< GLfloat > const &)
 
DLL_API void set_uniform_vec2 (const std::string &, GLfloat const *)
 
DLL_API void set_uniform (const std::string &, Vec2< GLint > const &)
 
DLL_API void set_uniform_vec2 (const std::string &, GLint const *)
 
DLL_API void set_uniform (const std::string &, Vec2< GLuint > const &)
 
DLL_API void set_uniform_vec2 (const std::string &, GLuint const *)
 
DLL_API void set_uniform (const std::string &, Vec3< GLfloat > const &)
 
DLL_API void set_uniform_vec3 (const std::string &, GLfloat const *)
 
DLL_API void set_uniform (const std::string &, Vec3< GLint > const &)
 
DLL_API void set_uniform_vec3 (const std::string &, GLint const *)
 
DLL_API void set_uniform (const std::string &, Vec3< GLuint > const &)
 
DLL_API void set_uniform_vec3 (const std::string &, GLuint const *)
 
DLL_API void set_uniform (const std::string &, Vec4< GLfloat > const &)
 
DLL_API void set_uniform_vec4 (const std::string &, GLfloat const *)
 
DLL_API void set_uniform (const std::string &, Vec4< GLint > const &)
 
DLL_API void set_uniform_vec4 (const std::string &, GLint const *)
 
DLL_API void set_uniform (const std::string &, Vec4< GLuint > const &)
 
DLL_API void set_uniform_vec4 (const std::string &, GLuint const *)
 
DLL_API void set_uniform (const std::string &, Mat2< GLfloat > const &)
 
DLL_API void set_uniform_mat2 (const std::string &, GLfloat const *)
 
DLL_API void set_uniform (const std::string &, Mat3< GLfloat > const &)
 
DLL_API void set_uniform_mat3 (const std::string &, GLfloat const *)
 
DLL_API void set_uniform (const std::string &, Mat4< GLfloat > const &)
 
DLL_API void set_uniform_mat4 (const std::string &, GLfloat const *)
 
DLL_API std::optional< std::string > info_log ()
 
- Public Member Functions inherited from tatooine::gl::id_holder< GLuint >
 id_holder ()
 
 id_holder (GLuint _id)
 
 id_holder (id_holder const &other)=delete
 
 id_holder (id_holder &&other) noexcept
 
auto operator= (id_holder const &other) -> id_holder &=delete
 
auto operator= (id_holder &&other) noexcept -> id_holder &
 
 ~id_holder ()=default
 
auto id () const
 
void swap (id_holder &other)
 

Static Public Member Functions

static auto get () -> auto &
 

Static Public Attributes

static constexpr std::string_view vertex_shader_source
 
static constexpr std::string_view fragment_shader_source
 
- Static Public Attributes inherited from tatooine::gl::id_holder< GLuint >
static constexpr auto default_val
 

Private Member Functions

 cook_torrance_brdf_shader ()
 

Additional Inherited Members

- Protected Member Functions inherited from tatooine::gl::id_holder< GLuint >
void set_id (GLuint id)
 
auto id_ptr ()
 
auto id_ref () -> auto &
 

Member Typedef Documentation

◆ this_type

Constructor & Destructor Documentation

◆ cook_torrance_brdf_shader()

Member Function Documentation

◆ enable_lighting()

auto tatooine::rendering::interactive::cook_torrance_brdf_shader::enable_lighting ( bool const  en) -> void
inline

◆ get()

◆ invert_scale()

auto tatooine::rendering::interactive::cook_torrance_brdf_shader::invert_scale ( bool const  invert) -> void
inline

◆ set_irradi_perp()

auto tatooine::rendering::interactive::cook_torrance_brdf_shader::set_irradi_perp ( GLfloat const  i) -> void
inline

◆ set_light_color()

auto tatooine::rendering::interactive::cook_torrance_brdf_shader::set_light_color ( Vec4< GLfloat > const &  l) -> void
inline

◆ set_max()

auto tatooine::rendering::interactive::cook_torrance_brdf_shader::set_max ( GLfloat const  max) -> void
inline

◆ set_metallic()

auto tatooine::rendering::interactive::cook_torrance_brdf_shader::set_metallic ( GLfloat const  m) -> void
inline

◆ set_min()

auto tatooine::rendering::interactive::cook_torrance_brdf_shader::set_min ( GLfloat const  min) -> void
inline

◆ set_model_matrix()

auto tatooine::rendering::interactive::cook_torrance_brdf_shader::set_model_matrix ( Mat4< GLfloat > const &  M) -> void
inline

◆ set_projection_matrix()

auto tatooine::rendering::interactive::cook_torrance_brdf_shader::set_projection_matrix ( Mat4< GLfloat > const &  P) -> void
inline

◆ set_reflectance()

auto tatooine::rendering::interactive::cook_torrance_brdf_shader::set_reflectance ( GLfloat const  r) -> void
inline

◆ set_roughness()

auto tatooine::rendering::interactive::cook_torrance_brdf_shader::set_roughness ( GLfloat const  r) -> void
inline

◆ set_solid_base_color()

auto tatooine::rendering::interactive::cook_torrance_brdf_shader::set_solid_base_color ( Vec3< GLfloat > const &  b) -> void
inline

◆ set_view_matrix()

auto tatooine::rendering::interactive::cook_torrance_brdf_shader::set_view_matrix ( Mat4< GLfloat > const &  V) -> void
inline

◆ use_solid_base_color()

auto tatooine::rendering::interactive::cook_torrance_brdf_shader::use_solid_base_color ( bool const  use) -> void
inline

Member Data Documentation

◆ fragment_shader_source

constexpr std::string_view tatooine::rendering::interactive::cook_torrance_brdf_shader::fragment_shader_source
staticconstexpr

◆ vertex_shader_source

constexpr std::string_view tatooine::rendering::interactive::cook_torrance_brdf_shader::vertex_shader_source
staticconstexpr
Initial value:
=
"#version 330 core\n"
"in vec3 position; // input vertex position from mesh\n"
"in vec3 normal; // input vertex normal from mesh\n"
"in float scalar; // scalar per vertex\n"
"\n"
"uniform mat4 view_matrix; //camera look at matrix\n"
"uniform mat4 projection_matrix; //camera projection matrix\n"
"uniform mat4 model_matrix; // mesh transformation\n"
"uniform mat4 normal_matrix; // transposed inverse of model_matrix\n"
"\n"
"out vec3 wfn; // output fragment normal of vertex in world space\n"
"out vec3 view_vert_pos; // output 3D position in view space\n"
"out float interp_scalar;\n"
"\n"
"void main(){\n"
" wfn = (view_matrix * normal_matrix * vec4(normal, 0)).xyz;\n"
" vec4 view_vert_pos4 = view_matrix * model_matrix * vec4(position, 1.0);\n"
" view_vert_pos = vec3(view_vert_pos4) / view_vert_pos4.w;\n"
" interp_scalar = scalar;\n"
" gl_Position = projection_matrix * view_vert_pos4;\n"
"}\n"

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