Невозможно получить две сетки, работающие в одном файле OpenVDB

Проблема заключается в следующем:

У меня два разных поплавок оцененные (плотность) сетки для то же пространство.

Я могу написать им обоим один файл OpenVDB с кодом ниже. Но когда я пытаюсь сделать объемный рендеринг с Арнольд в майя, Кажется, обе сетки содержат одинаковые значения.

Я могу подтвердить, что сетки в предварительном просмотре (в Mantaflow) совершенно разные и что файл содержит две сетки.

Мне кажется, что значения первой сетки каким-то образом перезаписываются значениями второй сетки.

Вот соответствующая часть из плагина Mantaflow для записи файла OpenVDB:

void
write_grids_to_vdb(
const std::vector<
std::pair<const Grid<Real>&,
const std::string>
> & grids_names,
const std::string filename)
{

openvdb::initialize();
openvdb::GridPtrVec grids;

for (const auto& gn: grids_names) {

auto vdb_grid = openvdb::FloatGrid::create(0.0);
vdb_grid->setTransform(
openvdb::math::Transform::createLinearTransform(1.0));
vdb_grid->setGridClass(openvdb::GRID_FOG_VOLUME);
vdb_grid->setName(gn.second);

openvdb::Coord ijk;
typename openvdb::FloatGrid::Accessor
accessor = vdb_grid->getAccessor();
FOR_IJK(gn.first)
{
ijk[0] = i; ijk[1] = j; ijk[2] = k;
accessor.setValue(ijk, gn.first(i,j,k));
}

grids.push_back(vdb_grid);

}

openvdb::io::File file(filename);
file.write(grids);
file.close();
}

Поэтому я использую это, чтобы написать две сетки: «зеленую» и «красную», но на моей отрисованной картине обе должны выглядеть как красные.

А вот скриншот из моей соответствующей настройки для настройки Maya / Arnold …

Выбор обеих сеток в качестве входных данных

Я просто опробовал разные каналы от громкоговорителя и получил ту же картинку.

Можно изменить канал, оба выглядят как «красные»

И то, что стоит, вот как выглядят отрисованные картинки:

красный приходит сверху, зеленый отсутствует

0

Решение

Обходной путь: экспортируйте несколько файлов VDB и загрузите их в несколько томов arnold.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]