Рисование сферы области действия источника

This commit is contained in:
parent 6d091e022d
commit 4785a46cca
1 changed files with 9 additions and 2 deletions

View File

@ -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 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++) for (int i = 0; i < count; i++)
{ {
// Сдвиг на позицию источника // Сдвиг на позицию источника
bulb.root.e_position() = data[i].position; 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);
} }
} }