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

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

У меня есть две разные сетки с плавающей точкой (плотность) для одного и того же пространства.

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

Я могу подтвердить, что сетки в предварительном просмотре (в 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...

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

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

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

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

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

1 ответ

Решение

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

Другие вопросы по тегам