Пример 7.4.4. Псевдоглубина изменяется медленно, когда -Рг стремится к ¥ Пусть Ы~ 1 и ^= 100. Тогда а - -101/99, Ь = -200/99, следовательно, мы имеем:
* * * ,\ 101РГ +200 псевдоглубина рвеийойерЩ,,я^шт = -^-.
Эта функция обращается в -1 при Р^-Ы и в 1 при Р=-Р. Однако по мере приближения к -Рона изменяется очень медленно с изменением -Рг. Например, для значений -Р/=97, 98 и 99 значения функции равны соответственно 0,9993752, 0,9995877, 0,9997959.
Небольшие алгебраические выкладки (см. упражнения в конце раздела) показывают, что когда ЛГ значительно меньше, чем Р(а так оно обычно и бывает), псевдоглубина может быть приближенно записана в виде: псевдоглубина рзеийойерИп = 1 + -. (7.9)
Рг Эта функция тоже изменяется все более и более медленно, когда -Рг приближается к £ Однако ее изменение возрастает с увеличением значений N. Тогда ЛГ следовало бы установить сколь угодно большим, но, разумеется, не настолько, чтобы ближайшие к камере объекты были бы отсечены!
Использование однородных координат
Почему было принято решение использовать во всех членах уравнения (7.7) один и тот лее знаменатель? Как мы сейчас покажем, наличие одного и того же знаменателя делает возможным представлять все этапы графического конвейера в виде произведения матриц, что делает этот процесс эффективным и однотипным. (Микросхемы некоторых графических карт могут аппаратно умножать матрицу на точку, поэтому эта операция выполняется предельно быстро!) Кроме того, единый знаменатель позволит нам подготовиться к высоко эффективному и надежному этапу отсечения.
Этот новый подход требует, чтобы мы представляли точки в однородных координатах. Мы уже делали это раньше, поскольку такое представление упрощает преобразование вершин с помощью матрицы моделирования-вида. Однако мы собираемся расширить понятие представления в однородных координатах за пределы того, что мы делали до сих пор, и тем самым обретем новые возможности. В частности, с помощью матрицы можно будет выполнять не только аффинное преобразование, но также и «перспективное преобразование».