Решение дифференциальных уравнений Примеры решения типовых задач Курс практики по математике Инженерная графика Машиностроительное черчение История дизайна Архитектура ПК Лабораторные работы Курс лекций по физике теплоэнергетика
USB-накопитель на флеш-памяти Кэш центрального процессора Дисковая подсистема ПК Понятие архитектуры и структуры ЭВМ Внешние интерфейсы Жесткий магнитный диск Визуализация трехмерных изображений

Курс лекций по персональному компьютеру

Визуализация трехмерных изображений

Проецирование трехмерных объектов на картинную плоскость

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

Проектирование – это преобразование, ставящее в соответствие точкам трехмерного пространства точки на некоторой плоскости, называемой картинной.

В компьютерной графике используются два основных вида проектирования: параллельное и перспективное.

Параллельное проектирование (рис. 25) Пусть уравнение плоскости задано в виде nxx + nyy + nzz + d = 0, где x, y, z – координаты произвольной точки p этой плоскости. Уравнение плоскости может быть записано в виде скалярного произведения векторов: n=(nx, ny, nz) и p=(x, y, z): (n, p) + d = 0.

Рассмотрим плоскость π: (n, p) + d = 0 в трехмерном пространстве, на которую будет осуществляться проектирование (картинную плоскость). Пусть задан вектор l, вдоль которого будет осуществляться проектирование. При этом будем считать, что (l, n) ≠ 0.

Для нахождения проекции произвольной точки q на плоскость π проведем через точку q прямую с направляющим вектором l. Точка пересечения этой прямой с плоскостью π – qпр – является проекцией точки q на плоскость π вдоль направления l.

Координаты произвольной точки q' прямой, проходящей через точку q и имеющей направляющий вектор l: Информационное обеспечение корпоративных информационных систем. Информационное обеспечение – совокупность единой системы классификации и кодирования информации, унифицированных систем документации, схем информационных потоков, циркулирующих в организации, а также методология построения баз данных.

q' = q + tl,  tÎR.

Тогда параметр t точки пересечения этой прямой и плоскости π можно найти, подставив уравнение прямой в уравнение плоскости:

(q + tl, n) + d = 0.

Отсюда получаем

Зная t, можно найти проекцию точки q по формуле  qпр = q + tl.

Так как параллельное преобразование является аффинным, то его можно задать при помощи матрицы однородного преобразования.

Приведем матрицу канонического параллельного проектирования, осуществляемого на плоскость Oxy вдоль оси Oz.

Несмотря на свою простоту, параллельное проектирование обычно малоприменимо для визуализации сложных трехмерных сцен.

Перспективное проектирование (рис. 26). Рассмотрим картинную плоскость π: (n, p) + d = 0 . Пусть задана точка c, которую будем называть центром проектирования. Тогда перспективной проекцией точки q назовем точку qпр пересечения плоскости π с лучом, выходящим из c и проходящим через q при условии, что точка q лежит в положительном полупространстве относительно плоскости π.

Пусть проекцией точки q является точка qпр. В силу того, что qпр лежит на отрезке [q, c], справедлива формула

qпр = (1 - t)c + tq, t Î [0, 1].

Тогда из условия принадлежности проекции плоскости получаем

Как видно из этой формулы, перспективное преобразование не является аффинным (принадлежит классу дробно-линейных преобразований). Тем не менее, его также можно записать при помощи матрицы однородного преобразования.

Выпишем каноническое уравнение перспективного преобразования. Пусть центр проектирования равен (0, 0, -1)Т, а картинная плоскость задается уравнением z = 1.

Уровни визуализации

Любой объект, в том числе и объемный, может быть изображен различными способами. В одном случае необходимо показать внутреннюю структуру объекта, в другом – его внешнюю форму, в третьем – имитировать реальную действительность.

Условно способы визуализации можно разделить по характеру изображений и по степени сложности соответствующих алгоритмов на уровни:

1) каркасная (проволочная) модель;

2) показ поверхностей в виде многоугольников с плоскими гранями или сплайнов с удалением невидимых точек;

3) показ поверхностей с использованием методов закрашивания объектов для имитации отражения света, затенения, прозрачности, наложения текстур.

Простейшая каркасная модель часто применяется в процессе редактирования объемных объектов.

Визуализация второго уровня используется для упрощенного показа объемных объектов. Например, для графиков функций
z = f(x, y) (в виде рельефа поверхности) часто достаточно показать все грани сетки одним цветом, но при этом необходимо обязательно удалить невидимые точки. Это более сложная процедура по сравнению с выводом каркасного изображения.

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

Каркасная визуализация

Каркас обычно состоит из отрезков прямых линий (соответствует многограннику), хотя можно строить его и на основе кривых, в частности сплайновых кривых Безье. Все ребра, показанные в окне вывода видны – как ближние, так и дальние.

Для построения каркасного изображения необходимо:

● получить координаты всех вершин в мировой системе координат;

● преобразовать координаты каждой вершины в экранные координаты в соответствии с выбранной проекцией;

● выполнить цикл вывода в плоскости экрана всех ребер как отрезков прямых или кривых, соединяющих вершины.

42 . Расчет нормали к объекту

Во всех формулах для освещенности у нас так или иначе будет фигурировать вектор N - нормаль к объекту в точке P. Сразу возникает вопрос, а как же этот вектор считать.

Обычно придерживаются такой логики. Модель у нас состоит из плоских граней, но эта сетка плоских граней приближает какой-то искривленный объект. Нормаль к этому искривленному объекту меняется в каждой точке, а для плоских граней она постоянна для всех точек грани, и резко меняется при переходе на другую грань. Поэтому нормаль к объекту обычно приближают следующим образом: считают нормали в вершинах, а нормаль в какой-то точке грани линейно интерполируют между вершинами; то есть линейно интерполируют по грани все три координаты нормали.

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

Для вящей понятности приведу кусок псевдокода:

// ...

for (i = 0; i < numberOfVertics; i++) {

 vertexNormal[i].x = 0;

 vertexNormal[i].y = 0;

 vertexNormal[i].z = 0;

}

for (i = 0; i < numberOfVertics; i++) {

 for (j = 0; j < numberOfFaces; j++) {

 if (face[j].vertex0 == i ||

  face[j].vertex1 == i ||

 face[j].vertex2 == i)

 {

 vertexNormal[i].x += faceNormal[j].x;

 vertexNormal[i].y += faceNormal[j].x;

 vertexNormal[i].z += faceNormal[j].x;

 }

 }

}

// ...

Визуальное представление информации.

Взаимосвязь компьютерной геометрии и графики.

История развития компьютерной графики.

Анализ, синтез и обработка изображений.

Пользователи, интерфейсы, стандарты и компьютерная графика. Графические библиотеки в языках программирования.

Виртуальные графические устройства (CGI).

Системы координат. Понятие графического вывода.

Устройства графического ввода. Режимы ввода. Графический пользовательский интерфейс (GUI).

Графические библиотеки в языках программирования. Графический конвейер.

Аппаратная и программная реализация этапов графического конвейера. Графика в Internet-e.

Особенности восприятия растровых изображений. Критическая частота мелькания.

Системы кодирования цвета. Геометрические особенности зрительного восприятия.

Устройства вывода изображений. Дисплеи. Качество изображения.

Виртуальные поверхности отображения. Кадровый буфер и таблица цветности.

Особенности преобразования вектор - растр. Алгоритмы прочерчивания отрезков прямых.

Генерация дуг окружности и эллипса. Алгоритмы заполнения площади. Графические контроллеры. Графические процессоры.

Алгоритмы удаления невидимых линий и поверхностей. Основные понятия и определения.

Классификация алгоритмов удаления невидимых линий и поверхностей. Алгоритм плавающего горизонта.

Алгоритм использующий Z-буфер.

Алгоритм построчного сканирования.

Алгоритм “художника”.

Модели освещения. Flat-закраска.

Закраска методами Гуро и Фонга.

Геометрическое моделирование и интерактивная машинная графика. История развития моделирования поверхностей.

Аналитические способы задания поверхностей.

Преимущества параметрического способа задания кривых и поверхностей.

Отсечение нелицевых граней.

Однородные координаты и их особенности.

Параметрическое описание кривых.

Кубические кривые в форме Безье.

Формат файлов для хранения растровых изображений

Аддитивная цветовая модель RGB

Цветовая модель CMY

Аффинные преобразования на плоскости

Проекции. Основные типы

Модели описания поверхностей. Аналитическая модель

Модели описания поверхностей. Векторная полигональная модель

Модели описания поверхностей. Воксельная модель

Модели описания поверхностей. Равномерная сетка

Модели описания поверхностей. Неравномерная сетка. Изолинии.

Визуализация объёмных изображений. Каркасная визуализация

Алгебра векторов. Вычисление нормалей

Компьютерная графика в ГИС

Процессор (центральный процессор, ЦП) - программно-управляемое устройство, осуществляющее процесс обработки цифровой информации, управление этим процессом и координацию работы всех устройств компьютера. Процессор, построенный на одной или нескольких больших интегральных схемах (БИС), называют микропроцессором (МП). Многообразие процессоров не дает возможность указать их типовую структуру. Поэтому ограничимся перечислением основных компонентов, присущих любому процессору
Курс лекций по персональному компьютеру