Читать в оригинале

<< ПредыдущаяОглавлениеСледующая >>


3.3.2. ПЕРЕСЕЧЕНИЯ СВЕТОВОГО ЛУЧА С КОМБИНАЦИЕЙ ПРИМИТИВОВ

После того как задача определения точек пересечений решена для всех примитивов, входящих в состав объекта, необходимо выделить среди всей этой совокупности точку, ближайшую к наблюдателю, т.е. видимую. Однако формально ближайшая точка может не принадлежать поверхности объекта, как это бывает, например, для ближних к наблюдателю вычитающихся примитивов.

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

.

В общем случае размерность матрицы  составляет , матрицы  – . В каждой строке  первое число указывает номер поверхности, второе – номер примитива для точки, координаты которой помещены в одноименной строке .

Переформируем  так, чтобы в первой ее строке помещалась ближайшая к источнику луча точка, остальные же точки могут произвольно располагаться на более низких позициях. Соответственно и в том же порядке переставим строки матрицы , получим новую матрицу . Это необходимо для того, чтобы не потерять связь между точкой и конкретной поверхностью.

Теперь после выделения ближайшей точки  следует убедиться в том, что она принадлежит поверхности объекта. Для этого необходимо оценить положение точки по отношению к каждому примитиву, входящему в состав объекта, а затем, пользуясь формальными правилами (табл. 3.2.1), установить относительное положение точки и объекта. Положение точки и каждого примитива  определяется функцией принадлежности , вычисляемой в соответствии с правилами §3.2.4. Положение точки  и объекта  устанавливают путем попарной подстановки значений , , в формализованное описание (3.2.2) и (3.2.3) для объекта. Преобразования значений функции принадлежности над парами примитивов приведены в табл. 3.2.1.

Например, пусть объект  составлен из примитивов  (рис. 3.3.1). Световой луч пересекает эту комбинацию в точках 1-6. Ближайшей к источнику луча будет точка 1. Функции принадлежности этой точки и примитивов принимают значения ; ; ; тогда , . Таким образом, точка 1, будучи ближайшей к источнику луча, не является видимой, так как находится вне объекта.

80.jpg

Рис. 3.3.1. Пересечение светового луча со сложной комбинацией примитивов

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

Так как одновременно с каждым переформированием  однотипно переформировывалась , то номера поверхности и примитива для видимой точки прочитываются соответственно из первого и второго столбца первой строки .

В описанной процедуре используется алгоритм поиска ближайшей  точки к некоторой другой точке  среди множества точек , , которые все принадлежат одной прямой – световому лучу.

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

Применение последних трех правил оправдано только в том случае, когда априорно известна непараллельность любого светового луча плоскостям . Так, например, целесообразно использование последнего критерия при моделировании аэросъемки. В этом случае ни один трассирующий луч не параллелен плоскости Земли  на пути камера – объект и Солнце – объект.

В случае, когда объект и приемник света заданы в экранной системе координат, наиболее пригодным является следующий хорошо известный подход: .

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

 



<< ПредыдущаяОглавлениеСледующая >>