Актуальность проблемы. Задача рендеринга в реальном времени объемных данных – сегодня объект приложения усилий многих исследовательских групп. Оценка количества вычислений, требующихся для рендеринга объема с высоким разрешением в реальном времени, составляет сотни TFLOPS. И, тем не менее, потребность в таком рендеринге постоянно возрастает со стороны нарождающихся технологий, таких, как виртуальная хирургия и быстрое прототипирование [3–5].
Целью данной работы является программная реализация параллельных алгоритмов и технологий платформы Windows Presentation Foundation (WPF) при рендеринге трехмерных сцен и исследование их влияния на скорость генерации растровых изображений.
Для достижения поставленной цели решаются следующие взаимосвязанные научные задачи:
– построение параллельных алгоритмов при рендеринге трехмерной сцены с удалением невидимых точек методом Z-буфера;
– построение алгоритмов вывода растрового изображения с использованием технологий платформы WPF [2].
Объектом исследования является процесс рендеринга трехмерных сцен.
Предметом исследования являются параметры, влияющие на скорость рендеринга трехмерных сцен.
Методы исследования:
– программная реализация последовательных вычислений при удалении невидимых точек методом Z-буфера и вывода растрового изображения на экран средствами GDI [1];
– программная реализация параллельных вычислений (использовался подход, основанный на параллелизме задач, при этом было реализовано 2, 6 и 10 параллельных потоков) при удалении невидимых точек методом Z-буфера и вывода растрового изображения на экран средствами WPF;
– исследование влияния использования параллельных вычислений и технологий платформы WPF на скорость рендеринга по сравнению с использованием последовательных вычислений и средств GDI.
Научная новизна работы заключается в применении многопоточности к алгоритму удаления невидимых точек Z-буфера (известно, что исключительно удачно подходит для параллельных вычислений метод трассировки лучей, а не метод Z-буфера [6]) и исследование применения совместного использования параллельных вычислений и новых технологий WPF для увеличения скорости рендеринга. В работе получены следующие результаты.
Для исследования было выбрано три компьютера со следующими характеристиками:
1 – Intel® Core™2 DUO CPU E7500 @ 2.93GHz, 2 ядра, ОЗУ 2 ГБ, видеоадаптер NVIDIA GeForce GT 240 с объемом видеопамяти 512 МБ;
2 – Intel® Core™ i7-3770K CPU @ 3.50GHz, 4 ядра, ОЗУ 8 ГБ, видеоадаптер NVIDIA GeForce GT 240 с объемом видеопамяти 512 МБ;
3 – Intel® Core™ i5-3230M CPU @ 2.60GHz, 2 ядра, ОЗУ 8 ГБ, видеоадаптер Intel® HD Graphics 4000 с объемом видеопамяти 2176 МБ.
Результаты исследований (на примере трехмерной сцены с 10 объектами) показывают, что самым медленным по времени является вариант проведения последовательных вычислений и вывод с помощью средств GDI, а самым быстрым – параллельное выполнение 10 задач с технологией вывода WPF. Поэтому на компьютере 1 можно увеличить скорость рендеринга в 2,14 раза, на компьютере 2 – в 3,36 раза, на компьютере 3 – 2,41 раза (соответственно) [7]. Дальнейшее усовершенствование алгоритма рендеринга и увеличение его скорости может быть достигнуто улучшением математических моделей, используемых для вычисления пересечений прямых (лучей) с объектами сцены или за счет использования другого алгоритма удаления невидимых точек (например, метода обратной трассировки луча, который может быть значительно ускорен за счет применения многопоточности).