Foray Library
rapid prototyping framework for crossplatform development of vulkan hardware ray tracing applications
Loading...
Searching...
No Matches
foray_lights.hpp
Go to the documentation of this file.
1#pragma once
2#include "../foray_glm.hpp"
3
4namespace foray::scene {
5 enum class ELightType : uint32_t
6 {
7 Directional = 0,
8 Point = 1
9 };
10
12 struct alignas(16) SimpleLight
13 {
15 alignas(16) glm::vec3 Color;
19 alignas(16) glm::vec3 PosOrDir;
22 };
23
25 struct alignas(16) EmissiveTriangle
26 {
28 uint32_t Indices[3];
31 };
32} // namespace foray::scene
Definition foray_animation.hpp:8
ELightType
Definition foray_lights.hpp:6
float fp32_t
stdint.h style 32 bit floating point type alias (float)
Definition foray_basics.hpp:13
A reference to an emissive triangle.
Definition foray_lights.hpp:26
uint32_t MetaBufferIndex
Index into a foray::as::GeometryMetaBuffer.
Definition foray_lights.hpp:30
uint32_t Indices[3]
Indices into vertex buffer.
Definition foray_lights.hpp:28
Describes a simplified light source.
Definition foray_lights.hpp:13
ELightType Type
Type (see SimplifiedLightType enum values)
Definition foray_lights.hpp:17
fp32_t Intensity
Intensity (candela for point type, lux in directional lights)
Definition foray_lights.hpp:21
glm::vec3 PosOrDir
Position or direction, interprete based on type.
Definition foray_lights.hpp:19
glm::vec3 Color
Linear RGB color of emitted light.
Definition foray_lights.hpp:15