Программирование графики с использованием Direct3D




Глава 2


    Глава 2. Введение в трехмерную графику
    Концепции и терминология трехмерной графики Преобразования трехмерных объектов Наложение текстур Освещение Анимация Много томов было написано о трехмерной графике и данная глава еще один вклад в э...
    Трехмерные системы координат
    Целью трехмерной графики является получение двухмерного представления трехмерной сцены. Двухмерное представление необходимо, потому что поверхность, на которой изображается сцена в нашем случае эк...
    Начало системы координат
    Точка, в которой пересекаются все три координатных оси, называется началом системы координат (origin). Для этой точки координаты X, Y и Z равны нулю: 0,0,0. Чем больше координата точки отличается...
    Векторы
    Вектор (vector), подобно точке, определяется тремя значениями, но вектор описывает направление и скорость, а не расположение в пространстве. Возьмем для примера значения 0,1,0. Если мы считаем эти...
    Плоскости
    Плоскость (plane) это плоская поверхность, простирающаяся до бесконечности. Плоскость не является квадратом или прямоугольником, поскольку и квадрат и прямоугольник имеют грани и углы. Размер плос...
    Вершины
    Вершины (vertices) представляют собой точки, которые используются для определения положения в трехмерном пространстве таких объектов, как грани и сетки (мы поговорим о гранях и сетках чуть позже)....
    Грани
    В Direct3D грань (face) это плоский объект, определяемый своими вершинами. Каждая вершина определяет угол грани. Все вершины грани должны находиться в одной и той же плоскости; они должны определя...
    Сетки
    Сетка (mesh) это набор соединенных граней. Обычно сеть описывает один объект в сцене. Сетка может объединять одну или несколько граней, и может быть очень сложной. На рис.2.8 показан пример сетки....
    Нормали
    Нормали (normals) представляют собой векторы, используемые при вычислении цветов для граней и сеток. Существует два типа нормалей: нормали к грани и нормали к вершине. Нормаль к грани это вектор,...
    Преобразования
    Итак, мы узнали, как разместить объекты в трехмерном пространстве. Мы можем задать вершины, используя вершины определить грани, а из граней создать сетку. Теперь нам необходимо узнать способы изме...
    Перемещение
    Давайте попробуем переместить наш куб вверх от начала координат на две единицы. Мы можем выполнить это, используя перемещение 0,2,0. Результат изображен на рис.2.12. Рис. 2.12. Куб после перемещен...
    Масштабирование
    Выполнение операции масштабирования над сеткой или гранью изменяет ее размер и местоположение. Сначала давайте посмотрим, как с помощью операции масштабирования можно изменить размеры объекта. Есл...
    Вращение
    Операция вращения позволяет нам изменить ориентацию объекта. Для вращения объекта требуется, чтобы мы определили ось вращения и угол поворота. Мы можем использовать вектор, чтобы задать ось вращен...
    Наложение текстур
    Наложению текстур стали уделять большое внимание после выхода программы DOOM, выпущенной ID Software. Конечно, DOOM не первая программа, в которой применялось наложение текстур, но эта программа с...
    Природа текстуры
    Текстура представляет собой двухмерное цветное изображение. Часто текстуры хранятся в файлах типа BMP, PCX или GIF. Практически любое двухмерное изображение можно использовать как текстуру. Пример...
    Масштабирование текстуры
    Текстуры могут накладываться на объект несколькими различными способами. Один из способов изменения текстуры называется масштабированием текстур . Если текстура накладывается с увеличивающим разме...
    Способы наложения текстуры
    Способ наложения текстуры ( texture wrapping ) определяет, каким образом текстура будет соединяться с объектом. Простейший способ наложения предполагает, что текстура попадает на объект как выстре...
    Анимация текстуры
    Анимацией текстур называется последовательное наложение на один и тот же объект различных текстур либо изменение метода наложения текстуры. Простейшим примером является наложение на объект одной и...
    Освещение
    Наши перемещаемые, масштабируемые, вращаемые и текстурированые объекты могут существовать в трехмерном пространстве и никогда не будут замечены, если останутся в темноте. Прежде чем мы сможем что-...
    Цвет источника света
    Все источники света имеют один общий атрибут: цвет. Обычно источники света белые, соответственно все их цветовые составляющие имеют максимальную интенсивность. Цветовая система может изменяться от...
    Типы источников света
    Источники света могут быть нескольких типов. Типичные источники света это рассеянный свет, точечное освещение и зональное освещение....
    Рассеянный свет
    Простейший источник света это рассеянный свет (ambient light). Источник рассеянного света не имеет местоположения и освещает все объекты сцены с одинаковой интенсивностью. Это освещение удобно, по...
    Точечное освещение
    Точечный источник света (point light) излучает свет во всех направлениях. Точечный источник света имеет заданное местоположение, но не имеет ориентации. Точечное освещение требует значительного вр...
    Источник направленного света
    Более эффективной (в смысле количества вычислений) альтернативой точечному источнику света является источник направленного света (directional light). Источник направленного света имеет ориентацию,...
    Источник зонального света
    Источник зонального света , или прожектор, (spot light) имеет ориентацию и заданное местоположение, и излучает световой поток в форме конуса. Характеристики конуса определяются углами светового пя...
    Перспективное преобразование
    В начале этой главы я упомянул, что целью трехмерной графики является создание двухмерного представления трехмерной сцены. Мы обсудили совершение различных действий в невидимом, трехмерном простра...
    От трех измерений к двум
    Переход от трех измерений к двум требует, разделения трехмерного пространства на части, таким образом, чтобы двухмерное изображение могло быть легко получено. Это значит, что нам необходимо опреде...
    Техника удаления невидимых поверхностей
    В трехмерной графике очень важно определить, какие объекты являются видимыми, а какие скрыты другими объектами. Визуализация сцены без учета того, какие поверхности расположены ближе зрителю и зак...
    Z-буферизация
    Z-буферизация использует буфер памяти для того, чтобы определить, какие поверхности расположены ближе к зрителю. Значения Z, которые хранятся в этом буфере, не обязательно соответствуют оси Z; они...
    Z-буферизация: За и Против
    Z-буферизация один из самых простых и самых быстрых методов удаления невидимых поверхностей. Она обеспечивает точность визуализации до пикселя (некоторым алгоритмам это недоступно) и эффективно об...
    Методы визуализации
    Как только сцена была смоделирована в трех измерениях и преобразована в двухмерный вид, она готова к визуализации. Этот заключительный шаг создания изображения, которое будет выведено на ваш экран...
    Каркасный метод
    Каркасный метод визуализации (wireframe rendering) не предназначен для создания реалистичных изображений и не требует выполнения всех тех действий, которые мы обсуждали до этого. В каркасных модел...
    Неосвещенный метод
    Неосвещенный метод визуализации (unlit rendering) получил свое название из-за того, что при его применении наличие источников света игнорируется. Грани рисуются с использованием назначенных им цве...
    Равномерная закраска
    Равномерная закраска (flat shading) позволяет получить более реалистичное изображение, чем каркасный или неосвещенный методы визуализации. При равномерной закраске учитывается освещенность грани....
    Метод Гуро
    Закраска методом Гуро (Gouraud shading) подобна равномерной закраске, за исключением того, что нормали рассчитываются для каждой вершины вместо того, чтобы рассчитывать их для каждой грани. Грань...
    Метод Фонга
    Закраска по методу Фонга (Phong shading) является усовершенствованием метода Гуро. Подобно методу Гуро, в методе Фонга используются нормали вершин, однако, вместо интерполяции вычисленных для верш...
    Трассировка лучей
    Трассировка лучей (ray-tracing) позволяет получить наиболее реалистичное изображение по сравнению с любым другим методом визуализации. Действительно, трассировка лучей известна как способ получени...
    Анимация
    Трехмерная графика в реальном масштабе времени не доставит удовольствия без анимации. Трехмерная анимация может быть выполнена двумя путями: заданием параметров движения и с помощью ключевых кадро...
    Параметры движения
    Один из простейших способов анимации задание атрибутов движения (motion attributes). Атрибуты движения это операции перемещения, вращения и масштабирования, которые применяются к объекту или набор...
    Ключевые кадры
    Термин ключевые кадры (key-framing) пришел из традиционной техники анимации, где определяются только несколько ключевых кадров. Оставшиеся кадры создаются как промежуточные позиции между ключевыми...
    Заключение
    Хотя графические пакеты и отличаются друг от друга, существуют основные концепции и термины, являющиеся общими для всех. Концепции и термины, приводимые в этой главе, являются достаточно универсал...









Начало        




Книжный магазин