Опубликован: 13.07.2010 | Доступ: свободный | Студентов: 891 / 20 | Оценка: 4.40 / 4.20 | Длительность: 77:34:00
Самостоятельная работа 13:

Более совершенные технологии рендеринга в DirectX

Аннотация: В лекции рассматривается использование примитивов, отличных от треугольников. Рендеринг различных типов примитивов. Использование индексных буферов. Создание нескольких вращающихся кубов с применением буфера глубины.

Файлы к лабораторной работе Вы можете скачать здесь.

В этой работе мы рассмотрим следующее

  • Использование примитивов, отличных от треугольников
  • Использование индексных буферов для более управляемого рендеринга
  • Использование буферов глубины ( 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 функционирует нормально


На этом подготовительный этап к выполнению данной лабораторной работы завершен.