Интерактивная визуализация объёмных данных методом

advertisement
Интерактивная визуализация
объѐмных данных методом
обратной трассировки лучей
на GPU
Гаврилов Николай
Аспирант кафедры МО ЭВМ
Факультет ВМК
ННГУ им. Лобачевского
CT-данные легочных сосудов
http://www.imagingeconomics.com/issues/articles/MI_2005-03_01.asp
Объѐмный рендеринг и его приложения
Научная визуализация,
как анализ физических процессов


Численное моделирование
Последующая визуализация
http://wwwnew.ispras.ru/ru/unicluster/technologies.php
Медицинская визуализация
Двумерные чѐрно-белые слои
Ренген (интегральная
Характеристика плотности)
Проекция максимальной
интенсивности (MIP)
Объѐмный рендеринг
(визуализация 3Д массива)
http://www.osirix-viewer.com/Snapshots.html
Мультипланарная
реконструкция (MPR)
Объѐмный рендеринг
сегментированных данных
Компьютерная томография – данные


Результат томографии – 3D матрица
(набор 2D слоѐв)
Сечения – традиционный метод визуализации
MRI
CT
Объѐмный рендеринг



Генерирует 2D проекцию 3D массива данных
Визуализация научных и медицинских данных
Визуализация природных эффектов (дым, огонь)
http://quasar9.blogspot.com/2007_02_01_archive.html
http://www.gfxtra.com/plugins/3ds-max-plugins/8959sitni-sati-fumefx-v20-for-3ds-max-20102011.html
Цели работы
Актуальные проблемы


Мульти-объѐмная интерактивная визуализация
Информативность визуализации ( выбор нужного
алгоритма рендеринга )
Цели


Высококачественная интерактивная визуализация
огромных массивов данных
Гибкая и полуавтоматическая настройка параметров
визуализации данных
http://www.volviz.com/topics/basics.php
Объѐмный рендеринг
Основные понятия
Объѐмные данные

Трѐхмерная матрица вокселей
Воксели лежат в узлах регулярной прямоугольной
сетки
Воксель – элемент объѐмных данных





Характирезует данные в окрестности
своего расположения
Может быть не только скаляром
(температура, плотность, …), но и
вектором, матрицей, и т.д.
Интерполяция

При выборке значения данных из
произвольной точки пространства
берѐтся интерполированное значение
http://rickwilsondmd.typepad.com/rick_wilson_dmds_blog/2010/08/invisaligns-vivera-retainers-voxels-ofstability.html
Формула билинейной интерполяции
1.0
U = a1*b1*V00 +
a0*b1*V10 +
a1*b0*V01 +
a0*b0*V11
a0
V00
V10
1.0
b0
U
a1=1 – a0
b1=1 – b0
V10
V11
Vij – значения вокселей
Геометрические центры вокселей
Изоповерхность

Место точек, где данные принимают
определѐнное значение L (изозначение)
F(X,Y,Z) =
2.0 - cos ( X + T * Y ) - cos ( X - T * Y ) cos ( Y + T * Z ) - cos ( Y - T * Z ) сos ( Z - T * X ) - cos ( Z + T * X ) = 0
Изоповерхность для
массива CT-данных
Вычисление градиента и нормали
G
G = Grad U(x,y) ≈ ( ( U(x + dx,y) – U(x – dx,y) ) / 2dx,
(U(x,y + dy) – U(x, y – dy)) / 2dy)
N
dy
N=G/|G|
dx
-dx
(x,y)
-dy
Передаточная функция (Transfer Function)

Любому возможному значению исходных данных
ставит в соответствие определѐнные оптические
свойства
Значение исходных
данных (число)

TF
Оптические свойства
(цвет, прозрачность, коэффициенты
для модели локального
освещения, и т.д.)
Можно раскрашивать пространство с данными в
соответствии с функцией переноса, в результате
получается разноцветные затуманенные области
Комбинация изоповерхностей и тумана
Изоповерхности для костей и
кожи, область жировой ткани
закрашена жѐлтым цветом
http://volumegraphics.de/solutions/voxels.html
Техники объѐмного рендеринга
Техники объѐмного рендеринга

Метод слоѐв


Производительность
Метод обратной трассировки
лучей


Качество
Гибкость
Course Notes 28 Real-Time Volume Graphics SIGGRAPH2004
Уравнения накопления цвета
Итоговый цвет
Текущий цвет
Накопленный

C – итоговый цвет

Ci – выборка цвета на i-ом
шаге
Aj – выборка степени непрозрачности на j-ом
шаге
n – число шагов луча


Возможности трассировки лучей


Вывод изоповерхностей и тумана
Тени, отражения, преломления
DVR
Изоповерхности
Изоповерхность с тенью
http://www.slashgear.com/nvidia-vp-criticises-intel-gpupolicy-unfair-to-entry-level-users-video-2783314/
Реализация на GPU
Объѐмный рендеринг на GPU
Инициализация
данных
Объѐмные
данные
(в 3D текстуре)
Программа трассировки луча
(в виде шейдерной программы)
При смене
параметров
Параметры просмотра
(в виде uniform-переменных
для шейдерной программы)
GPU
Генерация лучей


1
Шейдерную программу трассировки луча делаем
текущей
Вывод геометрии для генерации лучей
лучи
2
Объѐм данных
экран
наблюдатель
Шейдеры в графическом
конвейере
Операции над
фрагментами
(определение
цвета)
Описание
сцены
вершины
примитивы
фрагменты
Растровое
изображени
е
пиксели
Course Notes 28 Real-Time Volume Graphics SIGGRAPH2004
http://graphicsrunner.blogspot.com/
Оптимизационные стратегии
Проблема производительности

Типичные CT-данные имеют размер 512³
Чем больше данные, тем дольше к ним
доступ
Возможные оптимизации

Раннее завершение луча
 Сравнение накопленной
непрозрачности с порогом

Игнорирование пустых областей
 Хранить диапазоны значений
блоков ячеек
 Хранить расстояние до ближайшего
непустого вокселя
 Использовать список примитивов
(параллелепипедов, сфер, полупрос
транств), ограничивающих видимые
данные
“Интересная” область
Ускоряющая структура

Луч пропускает “неинтересные” области
наблюдатель
Артефакты объѐмного рендеринга
Стартовые позиции лучей
Случайный сдвиг луча в начале на step*RND01
Step – шаг луча (вектор)
RND01– случайное число из [0,1]
Зашумление артефактов
Накопление кадров
Вычисляем среднее изображений, полученных при различных
(случайных) начальных позициях луча
Усреднѐнное изображение
http://www.anl.gov/Media_Center/News/2009/news090730.html
Различные алгоритмы
объѐмного рендеринга
Архитектура системы
Алгоритм
рендеринга
(шейдер)
N
1
Параметры
алгоритма
рендеринга
1
N
N
Массив данных
(3D текстура)
1
Глобальные
параметры
визуализации
http://franstatic.files.wordpress.com/2009/12/2010newy
ear_colour-preview.jpg
Заключение
Публикации прошедшего полугода

Николай Гаврилов, Александра Белокаменская,
Стерео-визуализация
научных
и
медицинских
объемных данных трассировкой лучей в реальном
времени // метериалы конференции ГрафиКон'2010,
20-24 сентября, Санкт-Петербург, Россия


Николай Гаврилов, Александра Белокаменская,
Организация потоковых вычислений на GPU в
задаче
стереовизуализации
томограмм
//
метериалы
Х
Международной
конференции
"Высокопроизводительные
параллельные
вычисления на кластерных системах" 1-3 ноября
2010г, Пермь, Россия, стр. 58-61
Результаты работы

Интерактивный мульти-объѐмный рендеринг

Режим одновременного просмотра нескольких
техник рендеринга

Опция трикубической интерполяции данных
вместо трилинейной

Вывод произвольного числа полупрозрачных
изоповерхностей для нескольких полей
Тесты производительности
Размер окна вывода: 1280x1024
Тестовые данные: 512 x 512 x 512, 16-бит
Длина шага луча: 0.0004 (0,2 от размера вокселя)
Текущая работа

Обработка объѐмных данных на GPU
 Подавление шума
 Изменение разрешения данных

Исследование и реализация всевозможных
алгоритмов трассировки луча для
обеспечения гибкости системы
1
2
3
4
1
2
3
4
Литература

Klaus Engel, Markus Hadwiger, Joe M. Kniss, Aaron E. Lefohn, Christof Rezk
Salama, Daniel Weiskopf; Real-Time Volume Graphics, SIGGRAPH-2004
http://old.vrvis.at/via/resources/course-volgraphics-2004/

Ятченко А.М., Крылов А.С., Гаврилов А.В., Архипов И.В. Построение 3D
модели кровеносных сосудов по серии КТ изображений печени / Conf. Proc.
of the 19th International Conference on Computer Graphics and Vision
“GraphiCon’2009”, Moscow, 2009

Friedemann Roßler, Eduardo Tejada, Thomas Fangmeier, Thomas Ertl, Markus
Knauff, GPU-based Multi-Volume Rendering for the Visualization of Functional
Brain
Images
http://www.vis.unistuttgart.de/ger/research/pub/pub2006/simvis06-roessler.pdf

Ralph Brecheisen, Anna Vilanova i Bartroli, Bram Platel, Bart ter Haar Romeny.
Flexible GPU-Based Multi-Volume Ray-Casting // Technical University of
Eindhoven http://www.yp.wtb.tue.nl/pdfs/9881.pdf

Beyer Johanna. GPU-based Multi-Volume Rendering of Complex Data in
Neuroscience and Neurosurgery. - Dissertation/ Vienna University of
Technology, okt.2009, 131p

The scientific computing and imagine institute at the university of Utah
http://www.sci.utah.edu/download/IV3DData.html
Download