Как блендер реализует смешивание атрибутов для схлопывания краев?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как блендер реализует смешивание атрибутов для схлопывания краев?

Сообщение Anonymous »

Мне любопытно, как блендер объединяет атрибуты (нормали, ультрафиолетовые лучи...) посредством процесса прореживания.
Поэтому я попробовал посмотреть исходный код. Функция, в которой они смешиваются, выглядит так:

Код: Выделить всё

CustomData_bmesh_interp_n
, здесь.

Код: Выделить всё

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);

CustomDataLayer *layer = &data->layers[n];
const LayerTypeInfo *typeInfo = layerType_getInfo(layer->type);

typeInfo->interp(src_blocks_ofs, weights, sub_weights, count, dst_block_ofs);
}
Все, что нужно сделать, — это получить некоторые веса и отложить другой вызов.
У меня возникли проблемы:
  • Нахождение конкретной функции interp, которая вызывается, поскольку это очень распространенное слово в проекте, что усложняет ее поиск.
  • Понимание того, как он обрабатывает разрывы в атрибутах.


Подробнее здесь: https://stackoverflow.com/questions/791 ... -collapses
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»