|
|||||||||||||||||||||||||
Меню:
Главная
Форум
Литература: Программирование и ремонт Импульсные блоки питания Неисправности и замена Радиоэлектронная аппаратура Микросхема в ТА Рубрикатор ТА Кабельные линии Обмотки и изоляция Радиоаппаратура Гибкие диски часть 2 часть 3 часть 4 часть 5 Ремонт компьютера часть 2 Аналитика: Монтаж Справочник Электроника Мощные высокочастотные транзисторы 200 микросхем Полупроводники ч.1 Часть 2 Алгоритмические проблемы 500 микросхем 500 микросхем Сортировка и поиск Монады Передача сигнала Электроника Прием сигнала Телевидиние Проектирование Эвм Оптимизация Автомобильная электроника Поляковтрансиверы Форт Тензодатчик Силовые полевые транзисторы Распределение частот Резисторные и термопарные Оберон Открытые системы шифрования Удк |
[15] 1-й бит: y > z 2-й бит: y <- z 3-й бит: x > z 4-й бит: x <- z 5-й бит: z > 1 6-й бит: z < zmm Для эффективного решения задачи удаления невидимых ребер/граней преобразуем нормированный видимый объем к каноническому виду, как показано на рис. 33.
Рис. 33. Канонический видимый объем. Это достигается с помощью матрицы M 0 0 0 1 0 00 0 0 1 1 - z 1 min - z . min 1 - z 01 0 1 0 После применения матрицы M нормированный видимый объем становится прямоугольным параллелепипедом, что позволяет перейти от центральной перспективной к параллельной проекции. Легко проверить, что IIII как показано на рис. 32, 33: D = DMp, A = AM , B = BMp, C = CMp, а также, например, [zmm , zmm, zmm ,1] Mp > [1,1,0,1]. Итак, нормирующие преобразования видимого объема могут производиться за два шага. 1шаг - преобразование к нормированному видимому объему и отсечение по 3-х мерному алгоритму Коэна-Сазерленда. 2шаг - преобразование к прямоугольному параллелепипеду с помощью матрицы Mp и удаление скрытых поверхностей при условии равенства координат х и у. Алгоритмы удаления невидимых ребер и граней Алгоритмы удаления невидимых граней могут быть условно поделены на два класса в зависимости от принципов, заложенных для их реализации. Первый класс - это алгоритмы работающие в пространстве объекта. Это означает, что для определения видимости данной грани сравнивается ее взаимное расположение со всеми остальными гранями в трехмерной сцене. Пусть N - количество граней в трехмерной сцене. Для построения трехмерной сцены в этом случае необходимо сравнить положение каждой грани с оставшимися, что требует порядка N операций. Например, пусть количество граней в трехмерной сцене N = 1000, тогда время работы алгоритмов этого класса порядка 1,000,000 операций. Другой класс алгоритмов - работающих в пространстве изображения, основан на нахождении точки ближайшей грани которую пересекает луч зрения, проходящий через заданную точку на растре. Поскольку число точек на растровом экране фиксировано, то алгоритмы этого класса менее чувствительны к увеличению количества объектов в трехмерной сцене. Пусть n - число точек на растровом экране. Тогда количество операций, необходимых для построения трехмерной сцены будет порядка n N. Например, для экранного разрешения 320 х200 точек, n = 64000, тогда количество операций для N = 1000 граней будет порядка 64,000,000. Выбор класса алгоритма может зависеть от особенностей конкретной задачи, а также от способов реализации алгоритма. Рассмотрим алгоритм удаления невидимых граней с использованием z-буфера, который является одним из наиболее часто используемых в современных приложениях компьютерной графики. Он работает в пространстве изображения и применяется в таких популярных графических библиотеках как OpenGL и Direct3D. Алгоритм работает в параллельной проекции. Пусть размеры окна вывода или экрана составляют X точек в ширину и Y точек в высоту. В качестве z-буфера заведем двумерный прямоугольный массив чисел по размерности совпадающий с окном вывода или экрана, т.е. Xx Y. В z-буфере будут храниться текущие значения z-координат каждого пиксела. В начале работы алгоритма в z-буфер заносятся значения, соответствующие бесконечности. Каждая грань трехмерного объекта, представленная в виде многоугольника, преобразуется в растровую форму. При разложении в растр для каждой точки многоугольника вычисляется значение ее z-координаты. Если z-координата оказалась меньше чем текущее значение в z-буфере, то в z-буфер заносится z-координата точки, и на экране рисуется точка цветом текущего многоугольника. После разложения в растр всех многоугольников изображение трехмерной сцены построено. Рассмотрим способ ускоренного вычисления z-координат при разложении многоугольников в растр. Запишем уравнение плоскости, образуемой многоугольником в пространстве: Ax + By + Cz + D = 0 . Выразим z0 = f(x0> y0 ). z-координату точки: z= D - Ax - By Найдем z-координату z1 = f (x0 + Ax, y0) - D - A(x0 + Ax) - By0 C z 0 AAx C для соседней D - Ax0 - By0 AAx -C AAx f (x, y). Пусть точки C Для соседнего пиксела на экране Ax = 1, тогда Const CC отсюда следует, что z1 = z0 - Const. Таким образом, вычисление координаты соседнего пиксела сводится к одной операции вычитания. z- Рассмотрим далее алгоритм удаления невидимых граней методом сортировки по глубине (авторы: Ньюэлл, Ньюэлл, Санча). Часть этого метода работает в пространстве объекта, а часть в пространстве изображения. Он также работает для параллельной проекции, то есть с учетом того что произведено перспективное преобразование. Введем определение пространственной оболочки. Пространственной оболочкой трехмерного объекта называется минимальный прямоугольный параллелепипед, целиком содержащий внутри |
Среды: Smalltalk80 MicroCap Local bus Bios Pci 12С ML Микроконтроллеры: Atmel Intel Holtek AVR MSP430 Microchip Книги: Емкостный датчик 500 схем для радиолюбителей часть 2 (4) Структура компьютерных программ Автоматическая коммутация Кондиционирование и вентиляция Ошибки при монтаже Схемы звуковоспроизведения Дроссели для питания Блоки питания Детекторы перемещения Теория электропривода Адаптивное управление Измерение параметров Печатная плата pcad pcb Физика цвета Управлении софтверными проектами Математический аппарат Битовые строки Микроконтроллер nios Команды управления выполнением программы Перехода от ahdl к vhdl Холодный спай Усилители hi-fi Электронные часы Сердечники из распылённого железа Анализ алгоритмов 8-разрядные КМОП Классификация МПК История Устройства автоматики Системы и сети Частотность Справочник микросхем Вторичного электропитания Типы видеомониторов Радиобиблиотека Электронные системы Бесконтекстный язык Управление техническими системами Монтаж печатных плат Работа с коммуникациями Создание библиотечного компонента Нейрокомпьютерная техника Parser Пи-регулятор ч.1 ПИ-регулятор ч.2 Обработка списков Интегральные схемы Шина ISAВ Шина PCI Прикладная криптография Нетематическое: Взрывной автогидролиз Нечеткая логика Бытовые установки (укр) Автоматизация проектирования Сбор и защита Дискретная математика Kb радиостанция Энергетика Ретро: Прием в автомобиле Управление шаговым двигателем Магнитная запись Ремонт микроволновки Дискретные системы часть 2 | |||||||||||||||||||||||