diff --git a/src/renderer/renderer.cpp b/src/renderer/renderer.cpp index 8ca31da..8812e96 100644 --- a/src/renderer/renderer.cpp +++ b/src/renderer/renderer.cpp @@ -75,6 +75,8 @@ void Renderer::Render(entt::registry& registry) { return; } + m_shader.setBool("isLight", registry.all_of(entity)); + m_model = glm::mat4(1.0f); // Apply translation diff --git a/src/shaders/simple.fs b/src/shaders/simple.fs index 9cef70b..de95a02 100644 --- a/src/shaders/simple.fs +++ b/src/shaders/simple.fs @@ -27,6 +27,8 @@ uniform float opacity; uniform sampler2D diffuseTex; uniform bool useTexture; +uniform bool isLight; + #define LIGHT_COLOR vec3(1.0, 1.0, 1.0) void main() @@ -57,5 +59,11 @@ void main() vec3 result = (ambient + diffuse + specular) * texColor; + if (isLight) { + vec3 emissive = LIGHT_COLOR * 10.0; // big intensity + FragColor = vec4(emissive, 1.0); + return; + } + FragColor = vec4(result, opacity); } \ No newline at end of file