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

Пример программы, реализующей основные методы текстурирования (точное, аффинное, линейное, квадратическое и кубическое) можно найти на прилагающемся к книге компакт-диске.

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

Дополнительную информацию по текстурированию можно найти в Интернете по следующим адресам:

www.geocities.eom/SiliconValley/2151 /tmap.html
www.geocities.com/SiliconValley/Parky9784/perspect.html
www.unm.edu/~strider7/texture__mapping.html

13.6. Пирамидальное фильтрование (т1ртарр^)

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

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

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

13. Элементы виртуальной реальности Пусть исходное изображение имеет размер 2П на 2П пикселов. Построим по нему изображение 2П~' на 2""1 пикселов следующим образом: объединим пикселы исходного изображения в группы по 4 (2 на 2), усредним их цвета и назначим получившийся цвет (ближайшее к нему значение из палитры) соответствующей точке нового изображения. Затем по полученному изображению тем же методом построим изображение размеров 2П~2 на 2П~2.


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