Файлы к лабораторной работе Вы можете скачать
здесь.
В этой работе мы рассмотрим следующее
- Использование примитивов, отличных от треугольников
- Использование индексных буферов для более управляемого
рендеринга
- Использование буферов глубины ( Z -буферов) для более реалистичного
рендеринга
Для аппроксимации трехмерных объектов в Direct3D имеются
следующие примитивы:
- Microsoft.DirectX.Direct3D.PrimitiveType. PointList -
отображает на экране объект в виде набора точек. Этот
тип можно использовать для рисования индексных примитивов.
- Microsoft.DirectX.Direct3D.PrimitiveType. LineList - набор
линий, соединяющих пары вершин. При использовании этого
примитива нужно иметь для соединения четное число вершин.
- Microsoft.DirectX.Direct3D.PrimitiveType. LineStrip -
набор ломаных прямых, соединяющих между собой последовательно
все вершины объекта. Должно быть минимум две вершины для
соединения с использованием этого примитива.
- Microsoft.DirectX.Direct3D.PrimitiveType. TriangleList -
Отображает набор трех вершин как отдельный изолированный
треугольник. Прорисовка невидимой поверхности определяется
текущим состоянием рендера отбора (device.RenderState.CullMode
= Cull.None - не скрывать обратную сторону плоской фигуры)
- Microsoft.DirectX.Direct3D.PrimitiveType. TriangleStrip -
непрерывная треугольная ферма, когда каждый следующий треугольник
рисуется на базе двух вершин предыдущего треугольника и
одной новой вершины. По умолчанию отображаются все четные
треугольники.
- Microsoft.DirectX.Direct3D.PrimitiveType. TriangleFan
- веер из треугольников, имеющих одну общую вершину.
При рисовании можно использовать одни и те же данные о вершинах
для любого из этих типов примитивов. Приложение будет интерпретировать
при каждом рисовании тот тип примитива, который мы ему сообщаем.
Испытаем на практике новые типы примитивов.
Создание заготовки приложения
-
Постройте
новый пустой проект для C# с именем RenderBest
-
Добавьте
через меню Project командой Add
Reference, удерживая клавишу Ctrl, ссылки на
библиотечные сборки
- System.dll
- System.Drawing.dll
- System.Windows.Forms.dll
- Microsoft.DirectX.dll
- Microsoft.DirectX.Direct3D.dll
-
Через
меню Project оболочки командой Add
Existing Item добавьте к проекту файл Form1.cs из
лабораторной работы №12
-
Отключите
консольное окно, вызвав окно свойств проекта через меню Project оболочки
и установив
во вкладке Application свойство Output type в
значение Windows
Application
-
Запустите
приложение, чтобы проверить, что вариант Form1 работы №12 функционирует
нормально
На этом подготовительный этап к выполнению данной лабораторной
работы завершен.