Если обработка вокселей идет в порядке от дальних к ближним и пиксель-источник непрозрачен (as = 1 ), то пиксель-приемник также становится непрозрачным и ему присваивается цвет пикселя-источника. Если же пиксель-источник прозрачен, то цвет и коэффициент прозрачности пикселя-приемника сохраняются. Для реализации такого метода формирования изображения можно воспользоваться функцией смешивания OpenGL, заменив значение цвета С каждого вокселя значением аС и используя в качестве коэффициентов смешивания пикселя-источника и пикселя-приемника соответственно значения 1 и l-as. Основное преимущество метода формирования изображения от дальних вокселей к ближним состоит в том, что можно обрабатывать данные послойно, как бы накладывая друг на друга двухмерные изображения. При этом даже нет нужды держать весь массив вокселей в оперативной памяти в процессе формирования изображения. Правда, "эта медаль" имеет и обратную сторону - при послойной обработке утрачивается внутренняя связь между соседними вокселями, расположенными в разных слоях, а учет этих связей потенциально мог бы несколько ускорить процесс. Если, например, ближайшие к наблюдателю слои непрозрачны, то только они и будут присутствовать в окончательном изображении, а время, затраченное на обработку дальних слоев, оказывается потраченным впустую.

12.5.3. Трассировка лучей в скалярном поле Альтернативой описанному методу является формирование изображения в порядке от ближних вокселей к дальним посредством трассировки лучей (рис. 12.26). Пользуясь теми же формулами смешивания, можно определить момент, когда трассируемый луч "упрется" в непрозрачный воксель, и прекратить после этого дальнейшую трассировку данного луча. Недостаток алгоритма в том, что трассировка каждого луча требует просмотра массива вокселей "в глубину", а следовательно, приходится держать весь массив исходных данных в оперативной памяти.

Выбор между методом обработки вокселей в порядке от дальних к ближним или от ближних к дальним во многом напоминает выбор между методами отображения, опирающимися на пространство изображения или на пространство объектов. Фактически мы просто добавили в этот процесс учет прозрачности. Следовательно, алгоритм трассировки лучей в объеме скалярного поля способен на основании того же массива данных создавать изображение, в котором наглядно передается объемность. Но за это приходится платить увеличением коли-


⇐ Предыдущая| |Следующая ⇒