Введение

Визуализационный инструментарий (VTK) — это программная система с открытым исходным кодом для 3D-компьютерной графики, обработки изображений и визуализации данных. VTK распространяется под лицензией BSD 3, одобренной GNU и FSF.

Функциональность

VTK состоит из библиотеки классов C++ и нескольких интерпретируемых интерфейсных уровней, включая Tcl/Tk, Java и Python. Этот инструментарий разработан и поддерживается командой Kitware. VTK поддерживает разнообразные алгоритмы визуализации, в том числе: скалярные, векторные, тензорные, текстурные и объемные методы, а также передовые методы моделирования, такие как: неявное моделирование, упрощение полигонов, сглаживание сетки, операции разрезания, построение контуров и триангуляция Делоне. VTK предоставляет фреймворк для визуализации информации, набор 3D-виджетов для взаимодействия, поддерживает параллельную обработку и интегрируется с различными базами данных и графическими инструментами, такими как Qt и Tk. VTK является кроссплатформенным и работает в операционных системах Linux, Windows, Mac и Unix. Ядро VTK реализовано как набор инструментов C++, требующий от пользователей создавать приложения путем комбинирования различных объектов. Система также поддерживает автоматическую обертку ядра C++ для Python, Java и Tcl, позволяя разрабатывать VTK-приложения на этих языках программирования. Книга и программное обеспечение были написаны тремя исследователями (Уиллом Шрёдером, Кеном Мартином и Биллом Лоренсеном) в свободное время и с разрешения General Electric, в связи с чем права на программное обеспечение принадлежат и продолжают принадлежать авторам. После создания ядра VTK пользователи и разработчики по всему миру начали улучшать и применять систему для решения реальных задач.

Критика

В 2013 году в обзорной статье по визуализации для лучевой терапии отмечалось, что, несмотря на то, что VTK является мощным и широко известным инструментом, ему не хватало ряда важных функций, таких как мультиобъемный рендеринг, отсутствовала поддержка библиотек GPGPU, таких как CUDA, не поддерживался рендеринг огромных наборов данных вне оперативной памяти и не было встроенной поддержки визуализации объемных данных, изменяющихся во времени. Однако с 2013 года произошли улучшения, например, VTK-m, который позволяет ускорить и распараллелить некоторые вычислительно сложные задачи с использованием ускорителей, таких как GPGPU. VTK также используется в конвейере визуализации программного обеспечения радиологической визуализации, такого как MEDInria или Starviewer, которое выполняет мультиобъемную (также называемую слиянием изображений) и визуализацию данных, зависящих от времени (также называемую фазовой визуализацией).