Опубликован: 13.07.2010 | Доступ: свободный | Студентов: 891 / 20 | Оценка: 4.40 / 4.20 | Длительность: 77:34:00
Тема: Программирование
Специальности: Программист, Архитектор программного обеспечения
Теги:
Самостоятельная работа 13:
Более совершенные технологии рендеринга в DirectX
Аннотация: В лекции рассматривается использование примитивов, отличных от треугольников. Рендеринг различных типов примитивов. Использование индексных буферов. Создание нескольких вращающихся кубов с применением буфера глубины.
Ключевые слова: аппроксимация, direct3d, directx, cull, приложение, EXISTS, файл, оболочка, отображение, испытание, Приращение, wide-angle, clicking, константы, алгоритм, генератор, объект, цикла, переменная, ключевое слово, ReadOnly, цвет фона, геометрия, координаты, список, память компьютера, массив, разрядность, буфер, копирование файлов, текущий каталог, переименование файлов, редактор кода, find, replaceability, over-current, namespace, startup, member, тело функции, short, функция, синтаксис, градиент, depth buffer, информация, растеризация
Файлы к лабораторной работе Вы можете скачать здесь.
В этой работе мы рассмотрим следующее
- Использование примитивов, отличных от треугольников
- Использование индексных буферов для более управляемого рендеринга
- Использование буферов глубины ( 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, ссылки на библиотечные сборки
- Через меню Project оболочки командой Add Existing Item добавьте к проекту файл Form1.cs из лабораторной работы №12
- Отключите консольное окно, вызвав окно свойств проекта через меню Project оболочки и установив во вкладке Application свойство Output type в значение Windows Application
- Запустите приложение, чтобы проверить, что вариант Form1 работы №12 функционирует нормально
На этом подготовительный этап к выполнению данной лабораторной работы завершен.