Оптимизация загрузки
This commit is contained in:
		
							parent
							
								
									e63a899e67
								
							
						
					
					
						commit
						5b67ded158
					
				| @ -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)); // Загрузка данных об источниках
 | ||||
|     } | ||||
| 
 | ||||
|     // Загружаем кол-во источников
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user