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