При передаче константы D3DCREATE_MIXED_VERTEXPR0CESSING по умолчанию тоже устанавливается аппаратная обработка, но ее можно переключить на программную обработку при помощи функции SetSoftwareVertexProcessi ngCBOOL bSoftware).

Если параметр bSoftware равен TRUE, то устанавливается программная обработка вершин. При успешном выполнении функция переключения обработки возвращает значение D3D_0K. При возникновении ошибки возвращается значение D3DERRJNVALIDCALL.

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

Вывод треугольников Порядок вывода примитивов после получения интерфейса IDi rect3DDevi се9 в DirectX аналогичен порядку действий, принятому в OpenGL. Сначала очищается поверхВывод треугольников ность рисования, затем настраивается графический конвейер. Разработчик задает область просмотра, включает тест глубины, контроль тыльных граней и указывает иные параметры. После этого выводятся примитивы, переключаются видимая и активная страницы. Перед завершением работы системы производится освобождение полученных интерфейсов и СОМ-объектов.

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

В OpenGL координаты каждой вершины и ее атрибуты передавались в конвейер отдельными функциями, а в DirectX вершина содержит все данные, которые необходимы конвейеру. Кроме координат описание вершины может содержать цвет, нормаль и текстурные координаты для текстур нескольких уровней. Поэтому примитив задается массивом вершин.


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