diff --git a/src/Lights.cpp b/src/Lights.cpp index 0efae7b..4852fcf 100644 --- a/src/Lights.cpp +++ b/src/Lights.cpp @@ -181,17 +181,24 @@ void Light::render(ShaderProgram &shaderProgram, UBO &material_buffer) { // Загрузка модели лампочки при первом вызове функции static Scene bulb = loadOBJtoScene("../resources/models/bulb.obj", "../resources/models/", "../resources/textures/"); + static Model sphere = genShpere(1, 16, &bulb.root); // Цикл по источникам света for (int i = 0; i < count; i++) { // Сдвиг на позицию источника bulb.root.e_position() = data[i].position; + sphere.e_scale() = glm::vec3(data[i].attenuation.r); // Масштабирование сферы // Задание цвета - bulb.models.begin()->material.ka = data[i].color; + bulb.models.begin()->material.ka = sphere.material.ka = data[i].color; // Вызов отрисовки - bulb.render(shaderProgram, material_buffer); + bulb.render(shaderProgram, material_buffer); + + // Рисование сферы покрытия источника в режиме линий + glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); + sphere.render(shaderProgram, material_buffer); + glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); } }