Здравствуйте, Hоmunculus, Вы писали:
H>Здравствуйте, kov_serg, Вы писали:
_>>Для начала внятно сформулировать требования и ограничения.
H>Ну пример. H>нода А. Генерит миллион точек какой-то поверхности (по 3 флоата), нормали (по 3 флоата) и индексы треугольников (по три инта). У ноды есть параметры — параметры построения повехрности. То есть при изменении парамера меняются точки, нормали и индексы треугольников самой поверхности. Ну и на каждой вершине пара аттрибутов, например цвет, UV текстуры, может вес какой-то. H>Тут как бы оптимизровать по памяти нечего. Миллион точек надо кидать в видюху и рендерить поверхность
H>нода В. Как А, но только другой алгоритм поверхности. Никак он А не зависит. Тоже свой массив данных.
H>нода С. На вход принимает ноду А и В и сшивает из них третью поверхность. Аттрибуты так же прнимаются с двух входов
H>Нода D — принимает на вход ноду С и как-то- искажает повехность
H>Нода Е — копируети поворачвает повехность от ноды D
H>Нода F — прнимает на вход D и E и делает булево вычитание поверхностей
H>Каждая нода может как-то рендриться. То есть мы должны кидать массив в видюху от любой ноды.
H>И!!! В чем собсвенно суть. Поменяв один параметр в ноде A все поверхности должны моментально пересроиться без копирования кучи данных между нодами.
H>Это возможно вообще?
H>Я говрю не про сами геометрческие алгоритмы. А именно про протаскивание кучи структур и оптимизацию этого
ПО сути надо построить графы зависимости и инвалидации.
1) можно хранить данные по ссылке и тогда при расчете все будет актуально
2) можно например построить граф зависмостей и построить дерево обновления.
В ноде А поменяли значение, значит надо пойти в граф зависимостей и пересчитать все значения.
Обновление данных можно делать в разное время: сразу или по какому-то сигналу, вопрос применения