From 311ccfdcd116de6ccb3417bc29fa038d708920b4 Mon Sep 17 00:00:00 2001 From: "re.kovalev" Date: Tue, 24 Oct 2023 17:16:25 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=BF=D1=82=D0=B8=D0=BC=D0=B8=D0=B7?= =?UTF-8?q?=D0=B0=D1=86=D0=B8=D1=8F=20=D0=B7=D0=B0=D0=B3=D1=80=D1=83=D0=B7?= =?UTF-8?q?=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Lights.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/Lights.cpp b/src/Lights.cpp index 35bb116..5122d6b 100644 --- a/src/Lights.cpp +++ b/src/Lights.cpp @@ -16,6 +16,7 @@ int Light::getUBOsize() void Light::upload(UBO& lights_data) { GLuint LightDataSize = sizeof(LightData); // Одного экземпляра структуры LightData + int first = MAX_LIGHTS, last = -1; // Начало и конец диапазона загрузки источников if (count) { @@ -28,12 +29,19 @@ void Light::upload(UBO& lights_data) { lights[i].toData(); // Перевод ноды в данные для шейдера + // Определение диапазона загрузки + if (first > lights[i].index) + first = lights[i].index; + if (last < lights[i].index) + last = lights[i].index; + lights[i].uploadReq = false; // Сброс флага } } - - // Загрузка данных об источниках - lights_data.loadSub(data, sizeof(LightData)*count); + + // Если есть что загрузить (определен диапазон) + if (last > -1) + lights_data.loadSub(data + first, LightDataSize*(last - first +1), LightDataSize*(first)); // Загрузка данных об источниках } // Загружаем кол-во источников