Трассировка лучей

Метод затушевывания, описанный в предыдущем разделе, может использоваться в относительно простых условиях, когда один объект освещается далеко расположенными точечными источниками света. Однако он неприменим в случае множества объектов, особенно если некоторые из них прозрачны, а другие преломляют лучи. В сложных ситуациях используется метод трассировки лучей (ray tracing).

Основная идея метода заключается в следующем. Источники света испускают лучи во всех направлениях, и все эти лучи прослеживаются до тех пор, пока они не попадают в одну из точек экрана. В процессе прослеживания вычисляется изменение интенсивности и направления луча при падении его на какой-либо объект. Направление меняется по законам рассеяния, отражения и преломления. Каждая точка экрана (пиксел) окрашивается в цвет, соответствующий интенсивности пучка света в момент его падения на экран. Поскольку для заполнения экрана таким путем пришлось бы проследить бесконечно много лучей, такой подход на практике нереален. Нас интересуют цвета конечного числа пикселов экрана, поэтому рассматривать бесконечное количество лучей не обязательно. Нужно рассмотреть траектории конечного числа лучей в обратном направлении. Луч проходит из центра проекции сквозь каждый пиксел и прослеживается в обратную сторону до тех пор, пока он не выйдет из просматриваемого объема, не упадет на рассеивающую поверхность или не войдет в источник света (рис. 3.34). Если луч достиг источника света, это означает, что между источником и экраном отсутствуют непрозрачные препятствия, поэтому пиксел окрашивается в цвет источника. Если луч выходит из просматриваемого объема, значит, никакие объекты на данный пиксел не проецируются, и он должен быть окрашен в цвет фона. Если же луч падает на рассеивающую поверхность, проследить его траекторию дальше невозможно. В этом случае цвет пиксела окрашивается в цвет отражаемого данной поверхностью света. Следовательно, интенсивности света на рас сеивающих поверхностях должны быть вычислены заранее по методу затушевывания, описанному в предыдущем разделе.

 

Трассировка лучей

 

 

Смотрите также