Visualization Toolkit ( VTK ) — это бесплатная система программного обеспечения для трехмерной компьютерной графики , обработки изображений и научной визуализации . [3]
VTK распространяется по 3-пунктовой лицензии BSD, одобренной GNU [ 4] и FSF [5] . [6]
VTK состоит из библиотеки классов C++ и нескольких интерпретируемых слоев интерфейса, включая Tcl/Tk , Java и Python . Набор инструментов создан и поддерживается командой Kitware . VTK поддерживает различные алгоритмы визуализации, включая: скалярные , векторные , тензорные , текстурные и объемные методы; а также передовые методы моделирования, такие как неявное моделирование, уменьшение полигонов, сглаживание сетки, резка, контурирование и триангуляция Делоне . VTK имеет структуру визуализации информации , набор виджетов трехмерного взаимодействия, поддерживает параллельную обработку и интегрируется с различными базами данных и наборами инструментов графического интерфейса, такими как Qt и Tk . VTK является кроссплатформенным и работает на платформах Linux, Windows, Mac и Unix. Ядро VTK реализовано как набор инструментов C++, требующий от пользователей создания приложений путем объединения различных объектов в приложение. Система также поддерживает автоматическую переноску ядра C++ в Python, Java и Tcl, так что приложения VTK также можно писать с использованием этих языков программирования. [3]
Первоначально VTK был создан в 1993 году как сопутствующее программное обеспечение к книге The Visualization Toolkit: An Object-Oriented Approach to 3D Graphics . [7] Книга и программное обеспечение были написаны тремя исследователями (Уиллом Шредером, Кеном Мартином и Биллом Лоренсеном) в свое время и с разрешения General Electric (таким образом, право собственности на программное обеспечение принадлежало и продолжает принадлежать авторам). ). После того, как ядро VTK было написано, пользователи и разработчики по всему миру начали улучшать и применять систему для решения реальных задач. [3]
С созданием Kitware сообщество VTK быстро росло, а использование набора инструментов расширилось до академических, исследовательских и коммерческих приложений. Ряд крупных компаний и организаций, таких как Sandia National Laboratories , Ливерморская национальная лаборатория , Лос-Аламосская национальная лаборатория, финансировали разработку VTK и даже сами разработали ряд модулей VTK. [3] VTK составляет ядро приложения биомедицинских вычислений 3DSlicer , и на основе VTK появилось множество исследовательских работ на IEEE Visualization и других конференциях. VTK использовался на большом 1024-процессорном компьютере в Национальной лаборатории Лос-Аламоса для обработки почти петабайта данных.
Позже VTK был расширен для поддержки приема, обработки и отображения информационных данных. Эта работа была поддержана Национальными лабораториями Сандии в рамках проекта «Титан». [8]
В 2013 году в обзорном документе по визуализации для лучевой терапии было отмечено, что, хотя VTK является мощным и широко известным набором инструментов, ему не хватает ряда важных функций, таких как многотомный рендеринг, нет поддержки библиотек GPGPU , таких как CUDA , нет поддержки внешних вычислений . одноядерный рендеринг огромных наборов данных и отсутствие встроенной поддержки визуализации объемных данных, зависящих от времени. [9]
Однако с 2013 года появились такие усовершенствования, как VTK-m, которые могут ускорять и распараллеливать определенные вычислительно интенсивные задачи с помощью ускорителей, таких как GPGPU . [10] VTK также используется в конвейере визуализации программного обеспечения для радиологической визуализации, такого как MEDInria или Starviewer, которое выполняет многообъемную (также называемую слиянием) и зависимую от времени (также называемую фазовой) визуализацию. [11] [12]