From 8f24e460dd620ef2434357fbf4b08b32d762359d Mon Sep 17 00:00:00 2001 From: "re.kovalev" Date: Tue, 24 Oct 2023 17:15:22 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9D=D0=B5=D0=BE=D0=BF=D1=82=D0=B8=D0=BC?= =?UTF-8?q?=D0=B8=D0=B7=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=BD=D0=B0?= =?UTF-8?q?=D1=8F=20=D0=B7=D0=B0=D0=B3=D1=80=D1=83=D0=B7=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Lights.cpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/Lights.cpp b/src/Lights.cpp index dc32e82..35bb116 100644 --- a/src/Lights.cpp +++ b/src/Lights.cpp @@ -18,7 +18,23 @@ void Light::upload(UBO& lights_data) GLuint LightDataSize = sizeof(LightData); // Одного экземпляра структуры LightData if (count) - lights_data.loadSub(data, sizeof(LightData)*count); // Загрузка данных об источниках + { + for (int i = 0; i < MAX_LIGHTS; i++) + { + lights[i].recalcMatrices(); // Пересчитаем матрицы по необходимости (проверка внутри метода) + + // Если требуется загрузка + if (lights[i].uploadReq) + { + lights[i].toData(); // Перевод ноды в данные для шейдера + + lights[i].uploadReq = false; // Сброс флага + } + } + + // Загрузка данных об источниках + lights_data.loadSub(data, sizeof(LightData)*count); + } // Загружаем кол-во источников lights_data.loadSub(&count, sizeof(count), LightDataSize*MAX_LIGHTS);