struct hiro::shader::Light
Overview
Definition of scene light. More…
#include <ShaderApi.h> struct Light { // fields glm::mat4 view { 1.0f }; glm::vec4 position { 0.0f }; cogs::Color3f color { cogs::color::WHITE }; float ambient_intensity { 0.1f }; float in_camera_space { false }; bool cast_shadow { false }; uint8_t __padding0 { 0 }; uint16_t __padding1 { 0 }; glm::vec2 __padding2 { 0.0f }; // methods static hiro::shader::Light CreateLight(const glm::vec4& position, const cogs::Color3f& color, float ambient_intensity, bool in_camera_space); static hiro::shader::Light CreatePointLight(const glm::vec3& position, const cogs::Color3f& color, float ambient_intensity); static hiro::shader::Light CreateDirectionalLight(const glm::vec3& direction, const cogs::Color3f& color, float ambient_intensity); static hiro::shader::Light CreateHeadLight(const cogs::Color3f& color); static hiro::shader::Light CreateShadowSunLight(const glm::vec3& direction, const cogs::Color3f& color, float ambient_intensity, const geom::Sphere& scene_bounds); static hiro::shader::Light CreateShadowSpotlight(const glm::vec3& position, const glm::mat4& view, const glm::mat4& projection, const cogs::Color3f& color); static hiro::shader::Light CreateShadowPointLight(const glm::vec3& position, const cogs::Color3f& color, float ambient_intensity, const geom::Sphere& scene_bounds); };
Detailed Documentation
Definition of scene light.
Fields
glm::vec4 position { 0.0f }
Lighting position or direction (defined by homogeneous coordinate).
cogs::Color3f color { cogs::color::WHITE }
Generated color influence of light.
float ambient_intensity { 0.1f }
Ambient color influence of light.
float in_camera_space { false }
Whether is light position defined in camera space.
Methods
static hiro::shader::Light CreateHeadLight(const cogs::Color3f& color)
A point light whose position is at the position of the camera, oriented in direction of view.
static hiro::shader::Light CreateShadowSunLight(const glm::vec3& direction, const cogs::Color3f& color, float ambient_intensity, const geom::Sphere& scene_bounds)
An experimental version of directional light that is able to cast shadows.
static hiro::shader::Light CreateShadowSpotlight(const glm::vec3& position, const glm::mat4& view, const glm::mat4& projection, const cogs::Color3f& color)
An experimental version of spot light that is able to cast shadows.
static hiro::shader::Light CreateShadowPointLight(const glm::vec3& position, const cogs::Color3f& color, float ambient_intensity, const geom::Sphere& scene_bounds)
An experimental version of point light that is able to cast shadows.