Rasterization

Xtreme3D

Ray Tracing

Ray Tracing | Трассировка лучей
Метод рендеринга, при котором растровое изображение получается путем отслеживания хода лучей и их пересечений с трехмерными объектами. Трассировка лучей во многом аналогична тому, как получается фотографическое изображение в реальном мире, и позволяет получать изображения, приближенные по достоверности к фотографиям (порой до неотличимости).
Алгоритм трассировки выглядит следующим образом: для каждого пикселя изображения из позиции камеры выпускается луч, который затем проверяется на пересечение с объектами сцены. Исходя из точки и нормали пересечения, а также из характеристик поверхности и набора известных источников света, вычисляется цвет поверхности в данной точке, который и присваивается пикселю.
Алгоритм естественным образом поддерживает перспективную проекцию (лучи расходятся по мере отдаления от камеры), отбор по глубине (учитывается только ближайшее к экранной плоскости пересечение) и построение теней (для проверки, попадает ли точка в тень, строится еще один луч по направлению к источнику света - если он пересекает поверхность до того, как достигнет источника, то точка затеняется). Введением дополнительных лучей трассировка расширяется до поддержки мягких теней, отражений, преломлений, непрямого освещения и других оптических феноменов реального мира.
Недостатком трассировки лучей, который пока мешает полноценно использовать метод для рендеринга в реальном времени, является огромный объем покадровых вычислений. В последние годы появилась возможность распараллеливать трассировку при помощи GPU общего назначения - это позволяет надеяться на изменение ситуации в будущем. Уже сейчас возможности современных видеокарт позволяют организовать гибридный рендеринг - растеризацию с элементами трассировки для некоторых сложных эффектов вроде отражений.


См. также Rendering.