Применение библиотеки DirectX

составляющей описание вершины, в пятой версии библиотеки DirectX были предусмотрены три различные структуры данных: D3DTLVERTEX, D3DLVERTEX и D3DVERTEX.

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

При выводе примитива DirectX осуществляет только отсечение и растровую развертку треугольников. Если это возможно, то библиотека передает эту работу акселератору.

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

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

Начиная с шестой версии DirectX программист сам определяет состав полей для описания точки, что позволяет достигать максимальной производительности графической системы, учитывая специфику задачи и выравнивания загрузки процессора и акселератора. Поля описания вершины могут содержать координаты точки на экранной плоскости и в пространстве, один или два кода цвета, характеризующих материал поверхности, вектор нормали и несколько пар текстурных координат. Информация о выбранной структуре заносится в конвейер при помощи метода SetFVFO интерфейса IDirect3DDevice9(), которому передается сочетание флагов, часть из которых приведена в следующем списке: О D3DFVF_XYZ - запись содержит координаты вершины в пространстве;


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