Введение в программирование трехмерных игр с DX9


Вычисление вершин



13.2.1. Вычисление вершин

Во время последующего обсуждения смотрите на Рисунок  13.4. Чтобы создать вершины нашей сетки мы просто начинаем генерировать данные вершин с той, которая отмечена на рисунке словом start и заполняем вершины ряд за рядом, пока не дойдем до той, которая отмечена словом end; при этом расстояние между вершинами задается параметром cellSpacing. Это позволяет нам получить координаты X и Z, но как насчет координаты Y? Координата Y берется из соответствующего элемента загруженной карты высот.

ПРИМЕЧАНИЕ

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


При вычислении координат текстуры, учитывая Рисунок  13.5, получаем простой сценарий, определяющий соответствие координат текстуры (uv) вершине ландшафта (ij) по следующей формуле:





- Начало -  - Назад -  - Вперед -