Interested Article - Объёмный рендеринг
- 2021-06-16
- 1
Объёмный рендеринг — техника, используемая для получения плоского изображения ( проекции ) трехмерного дискретного набора данных.
Под входным набором данных часто подразумевается множество плоских изображений слоев, полученное при компьютерной томографии или магнитно-резонансной томографии . Обычно слои имеют равную толщину (например, фотографируется один слой на миллиметр) и равное количество пикселей на каждый слой. Таким образом, входными данными является вокселов , где каждому вокселу соответствует усредненное значение (температура, плотность материала) в данной точке трехмерного объекта.
Объёмная модель может быть получена либо путём построения полигональной сетки на основе входных данных, либо прямым объёмным рендерингом. Алгоритм Marching cubes является стандартным для преобразования набора вокселей в полигональную модель. Прямой объемный рендеринг является сложной вычислительной задачей, которую можно выполнить несколькими способами.
Прямой объёмный рендеринг
Прямой объёмный рендерер [1] [2] сопоставляет значению каждого воксела цвет и прозрачность. Это делается при помощи передаточной функции, которая может задаваться кусочно-линейной функцией или таблицей значений. После этого полученное RGBA значение выводится в кадровый буфер. После прорисовки всего объёма получается цельная картинка.
Объёмный рейкастинг
Объёмный рейкастинг является применением уравнения рендеринга на практике и дает очень качественные изображения.
Сплэттинг
Более быстрый способ, дающий изображения худшего качества. называет этот способ «бросанием снежков» (англ. splatting ). Вокселы «бросаются» на поверхность просмотра в порядке удаленности от неё, от дальних к близким. Получившиеся «следы от снежков» (сплэты) рендерятся как диски, цвет и прозрачность которых изменяется в зависимости от диаметра в соответствии с нормальным (гауссовым) распределением . В различных реализациях могут использоваться другие элементы или же другие распределения.
Аппаратное ускорение объемного рендеринга
Благодаря тому, что объёмный рендеринг легко распараллеливается, специализированное оборудование для его проведения являлось предметом многочисленных научных исследований, до того момента, когда обычные видеокарты стали справляться с этой задачей за приемлемое время. Наиболее популярной технологией являлась VolumePro [3] , которая требовала много памяти и использовала неоптимизированный рейкастинг в качестве базового алгоритма.
Оптимизация
Пропуск пустого пространства
Часто система объемного рендеринга получает на вход дополнительную информацию, определяющую области, которые не содержат материала, требующего отрисовки. Эта информация может быть использована для того, чтобы не тратить время на отрисовку заведомо прозрачных областей [4] .
Ранняя остановка луча
Эта техника используется при рендеринге от ближней плоскости отображения к дальней. Фактически является поверхностным рейкастингом .
Октодерево и BSP
Использование таких иерархических структур, как октодерево и BSP-дерево , может быть полезным как при сжатии входных данных, так и при оптимизации .
Сегментация пространства
Выделив неинтересные для отображения части пространства ещё до рендеринга, можно значительно уменьшить количество вычислений при рейкастинге или смешивании текстур. В зависимости от используемого алгоритма, вычислительная сложность уменьшится от O(n) до O(log n) для n последовательных вокселей. Применении сегментации пространства помогает значительно ускорить алгоритмы рендеринга, использующие рейкастинг.
Представление со множественным и адаптивным разрешением
Менее интересные для отображения области можно также выводить с меньшим разрешением, тем самым избавившись от необходимости обрабатывать лишние входные данные. При необходимости разглядеть данные области поближе можно дополнительно детализировать их, считав соответствующую информацию с диска и проведя дополнительный рендеринг, либо использовать интерполяцию .
См. также
- V3D — свободная и быстрая платформа для объемного рендеринга и анализа изображений для больших изображений (использует OpenGL)
- — an Open Source GPU volume slicing and ray casting implementation
- — volume slicing and rendering software
- — volume rendering engine (a framework for rapid prototyping of volume visualizations)
Примечания
- Marc Levoy, «Display of Surfaces from Volume Data», IEEE CG&A, May 1988. от 29 марта 2010 на Wayback Machine
- Drebin, R.A., Carpenter, L., Hanrahan, P., «Volume Rendering», Computer Graphics, SIGGRAPH88.
- от 3 ноября 2020 на Wayback Machine
- Pfister H., Hardenbergh J., Knittel J., Lauer H., Seiler L.: The VolumePro real-time ray-casting system In Proceeding of SIGGRAPH99
- Sherbondy A., Houston M., Napel S.: Fast volume segmentation with simultaneous visualization using programmable graphics hardware. In Proceedings of IEEE Visualization (2003), pp. 171—176.
- Max N., Hanrahan P., Crawfis R.: Area and volume coherence for efficient visualization of 3D scalar functions. In Computer Graphics (San Diego Workshop on Volume Visualization) (1990) vol. 24, pp. 27-33.
- Stein C., Backer B., Max N.: Sorting and hardware assisted rendering for volume visualization. In Symposium on Volume Visualization (1994), pp. 83-90.
- Engel K., Kraus M., Ertl T.: High-quality pre-integrated volume rendering using hardware-accelerated pixel shading. In Proceedings of Eurographics/SIGGRAPH Workshop on Graphics Hardware (2001), pp. 9-16.
- Lum E., Wilson B., Ma K.: High-Quality Lighting and Efficient Pre-Integration for Volume Rendering. In Eurographics/IEEE Symposium on Visualization 2004.
- Barthold Lichtenbelt, Randy Crane, Shaz Naqvi, Introduction to Volume Rendering (Hewlett-Packard Professional Books) , Hewlett-Packard Company 1998.
- Peng H., Ruan, Z, Long, F, Simpson, JH, Myers, EW: V3D enables real-time 3D visualization and quantitative analysis of large-scale biological image data sets. Nature Biotechnology, 2010 (DOI: 10.1038/nbt.1612) .
Ссылки
- от 7 мая 2021 на Wayback Machine is a free open source toolkit, which implements several CPU and GPU volume rendering methods in C++ using OpenGL, and can be used from python, tcl and java wrappers.
- от 24 июля 2008 на Wayback Machine is a free open source rendering engine with GPU raycasting capabilities.
- 2021-06-16
- 1