Элементы виртуальной реальности

13. Элементы виртуальной реальности Хотя этот метод все не попадающие в область видимости прямоугольники и не отбрасывает, однако он крайне прост и умножений и делений не требует.

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

Рассмотрим, каким образом осуществляется вычисление параметров текстуры для вертикальных стен произвольной ориентации. Основным моментом здесь является вычисление параметра текстуры (номера столбца текстуры) для соответствующего вертикального столбца стены. Рассмотрим, каким путем это можно сделать. Пусть у нас на плоскости (х, у) расположен отрезок стены с начальной точкой Zi) и концом в точке (х2, z2).

Пусть перспективное проектирование осуществляется по следующей формуле: с - x/z, где с - экранная координата точки (х, z), принадлежащей отрезку стены. Интересующий нас параметр текстуры / - это расстояние вдоль стены от точки (х\, z\) до точки (х, z) (рис. 13.23.).

Покажем, что величины І/z и t/z линейно зависят от с. Точку (х, z) можно выразить следующим образом: х = X\+t cos а,

Z-Z\ +t sin а.

Выразим / через z из этих соотношений:

t =-L.

sin а

Отсюда выразим х через z, используя предыдущее соотношение: х = Х\ 4- (z - Z] )ctga . Используя выражение для с, получим выражение для 1/z:

1 _ c-ctga

z Х\ - z\dga

Отсюда легко получить выражение для t/z: / _ z -Z] _ 1 Z\ 1 _ 1 Zj c-ctga z zsina sin a sin a z sin a sin a x\ - z\ctga

Легко видеть, что выличины 1/z и t/z действительно линейно зависят от с.

Таким образом, для вывода текстурированной стены достаточно кроме вычисления столбцов, занимаемых стеной, найти еще и искомые величины в концах стены. При выводе стены от столбца к столбцу параметр / находится как частное этих величин, а сами эти величины линейно изменяются от столбца к столбцу.


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