2009-09-15 5 views
20

Я слышал некоторые хорошие отзывы о Visualization ToolKit (VTK) от разработчиков. Но насколько это мощно? Например, может ли он обрабатывать визуализацию всего нефтяного резервуара (в симуляторе) с миллиардами точек сетки? Большинство промышленных резервуаров-симуляторов работают на параллельных процессорах. Я знаю, что VTK поддерживает параллельную обработку, но опять же, насколько стабильным может быть использование параллельных процессоров при запуске чего-то вроде моделирования коллектора? Кто-нибудь использовал VTK в таком масштабном проекте?Насколько хороша VTK?

Mathematica поддерживает некоторые простые моделирования коллектора, но я думаю, что он использует библиотеки Java Swing. Итак, кто-нибудь имеет представление о том, что VTK используется для мощной визуализации, отличной от 3DSplice? Кроме того, может кто-нибудь сказать что-нибудь о времени разработки с помощью VTK?

ответ

11

VTK кодируется на C++ и может использоваться в C++, Python, Tcl/Tk, Java. Лаборатории, такие как Sandia (включая, я считаю, их усилия Titan), Лос-Аламос и Ливермор, используют VTK для визуализации в масштабах, достаточно больших, чтобы конкурировать с вашими амбициями (конечно, это делается с огромным количеством аппаратного обеспечения в поддержке, и чрезвычайно опытные программисты, очень опытные с VTK и всеми другими технологиями, которые используются в проекте - «миллиарды точек сетки» - это не проект, который нужно решать, пока у вас нет команды с такими экстремальными навыками, а не с помощью ЛЮБОГО инструментария).

Я не утверждаю этого (проект визуализации яростно амбициозного масштаба, который вы имеете в виду) будет ЛЕГКО, независимо от того, как вы его решаете, - но я не могу думать о каких-либо альтернативных рамках, которые могли бы сделать это будет проще, чем VTK! -)

+0

В принципе, я инженер-нефтяник, но я очень увлечен программированием (я знаю, что есть разница между тем, чтобы быть страстным и квалифицированным). У нас есть команда опытных программистов, которые участвовали в разработке имитаторов резервуаров. В последнее время мы думаем о ВТК. Итак, как насчет времени разработки? –

+1

Время разработки может быть быстрее любого другого подобного инструментария, о котором я когда-либо слышал, но тонкую настройку и оптимизацию для запуска визуализации миллиардов узлов. FAST на огромных кластерах по-прежнему будет чувствовать, что это происходит навсегда - это неотъемлемая проблема HARD. Я не знаю какого-либо инструмента, который делает ваше развитие быстрее, чем VTK, но это не значит, что вам понравится объем усилий, связанных даже с VTK (так что альтернатива - ничего не делать, поскольку это слишком сложно?)). –

+0

Есть и некоторые недостатки (из моего короткого личного опыта с ним): * Документация может быть (намного) лучше. * Только список рассылки, без форума. * Если что-то не работает, трудно понять, почему. * Качество API так себе (Odd Names, Duplicate functions, нечетные понятия) – Bim

-2

Определение того, как «мощный» VTK (или любая библиотека) невозможно. Все зависит от ваших потребностей. Это не похоже на то, что вы можете выбросить любую сетку в VTK, усилить нагрузку на множество аппаратных средств и ожидать, что она будет работать бесперебойно. VTK не ориентирован на огромные модели - однако есть библиотека с именем Paraview, которая пытается поддержать это.

Sidenote: мы визуализируем модели мобильных телефонов в интерактивном режиме на простых ноутбуках (не используя VTK/Paraview). Как? Я думаю, это секрет ... :)

+0

Я хочу, чтобы это упоминалось в ParaView, но ParaView - это отдельная программа, а не «библиотека». Кроме того, его роль не добавляет поддержку больших объемов данных VTK. На данный момент я вынужден проголосовать за -1 за то, что он технически неверен. – Eric

3

Мой личный опыт работы с VTK позитивен, но только с небольшими наборами данных. Это может быть очень медленно, если у вас есть большие наборы данных, как в вашем случае. С положительной стороны, он так много режимов визуализации, что немыслимо переписать их в чистом OpenGL. Я не знаю, откуда происходит медленность VTK, но архитектура трубопровода, вероятно, не помогает. Кроме того, многое зависит от используемого вами фильтра. Объемный график, например, безумно медленный по конструкции (много параллельных прозрачных плоскостей).

Решение, которое нашлось полезным, заключалось в том, чтобы обрезать набор данных до минимума перед его графикой. Очень часто потеря визуальной точности незначительна. Вы также можете попробовать с фильтром LevelOfDetail (LOD), но у меня нет опыта с ним.

7

VTK - довольно мощный инструментарий в том, что он предлагает разумно эффективные реализации широкого спектра алгоритмов визуализации. Чтобы увидеть некоторые из возможностей VTK, я рекомендую проверить ParaView. ParaView создает полезное приложение вокруг VTK, поэтому вы можете сразу визуализировать данные, объединив различные компоненты VTK.

Чтобы более точно решить ваши вопросы, параллельная обработка в VTK используется для ускорения создания визуализации. Это должно быть стабильным, но не зависящим от вашего расчета моделирования. Изучение использования VTK занимает некоторое время, но есть книга, которую вы можете купить, которая объясняет многие аспекты ее использования. Экспериментировать с упаковками Python - это хороший способ ускорить процесс использования VTK.

Для ваших приложений я не уверен, что VTK является наиболее подходящим решением.Я бы рекомендовал некоторые небольшие эксперименты, используя привязки ParaView или Python VTK, чтобы увидеть, можете ли вы создать разумную визуализацию ваших симуляций.

+0

+1 Для справки ParaView. Обратите внимание, что есть также [VisIt] (https://wci.llnl.gov/codes/visit/), который выполняет аналогичную работу. Также полезно отметить, что визуализация ParaView и VisIt может быть написана с использованием Python. – Chris