Мне любопытно, как блендер объединяет атрибуты (нормали, ультрафиолетовые лучи...) посредством процесса прореживания.
Поэтому я попробовал посмотреть исходный код. Функция, в которой они смешиваются, выглядит так:
Мне любопытно, как блендер объединяет атрибуты (нормали, ультрафиолетовые лучи...) посредством процесса прореживания. Поэтому я попробовал посмотреть исходный код. Функция, в которой они смешиваются, выглядит так: [code]CustomData_bmesh_interp_n[/code], здесь. [code]void CustomData_bmesh_interp_n(CustomData *data, const void **src_blocks_ofs, const float *weights, const float *sub_weights, int count, void *dst_block_ofs, int n) { BLI_assert(weights != nullptr); BLI_assert(count > 0);
typeInfo->interp(src_blocks_ofs, weights, sub_weights, count, dst_block_ofs); } [/code] Все, что нужно сделать, — это получить некоторые веса и отложить другой вызов. У меня возникли проблемы: [list] [*]Нахождение конкретной функции interp, которая вызывается, поскольку это очень распространенное слово в проекте, что усложняет ее поиск. [*]Понимание того, как он обрабатывает разрывы в атрибутах. [/list]