Удаление скрытых линий у поверхности.


Следует выводить те поверхности или рёбра, которые относительно центра проекции или точки взгляда (с формальной точки зрения). Основано на анализе расстояния от точки взгляда до поверхности или ребра. Объект, расположенный дальше, перекрывается близлежащим и отображать его не нужно. Даже для простого по форме объекта, анализ без применения специальных меток получается громоздким. Для формализации таких действий разработано около 20 алгоритмов. Независимо от того, какой алгоритм мы будем применять, определение видимости или невидимости объекта выполняется в трёхмерном пространстве до получения проекции на плоскость. В общем случае нужно провести проекционный луч и на нём сортировать по глубине, то есть по координате Z каждую пару точек. Условия принадлежности к одному лучу (проектору) описывается по-разному.

для центральной проекции: для параллельной проекции:

У центральной проекции неудобно проверять такие условия. Делают формальное преобразование, центр проекции относим в бесконечность. Тогда мы получаем параллельную проекцию, у которой видимый объём не куб, а параллелепипед. Он определяется уравнением:

Формально, нужно умножить изображение каждой точки на матрицу M:

Если возможно, то «дальше-ближе» определяется так же как и при параллельной проекции. А именно: при равных координатах x,y сравниваются z1 и z2. Применять такой метод можно только при самых простых объектах. Самый простой алгоритм – это алгоритм Ньюэлла. Этот алгоритм выполняет сортировку по глубине на основании особенностей вывода изображений на экран. На экране выводится содержимое видеобуфера по ячейкам. В видеобуфер элементы заносятся в порядке от наиболее удалённых к наименее удалённым. Естественно увеличивается время записи в видеобуфер. На первом этапе у каждого элемента изображения определяются Zmax. Затем сортируются в порядке возрастания по Zmax. Перевод изображения в растровую форму. Первым записывается самый дальний объект. Затем поверх в этот буфер заносятся следующие элементы по вычисленному ряду. Более ближний элемент перекроет более дальний. В результате в буфере остаются только видимые части. Последний окажется элемент, расположенный ближе всего к нам. В ряде случаев нужно разрешать конфликтные ситуации, это неперекрывающиеся элементы и параллельные линии плоскости. Этот алгоритм можно применять для удаления скрытых рёбер, считая их элементами, которые будут подвергаться анализу. Часть алгоритмов работают для тех объектов, которые заданы плоскостями, а часть – отрезками. Фактически для объектов заданных кривыми третьего порядка, алгоритмов не существует. Если мы такой алгоритм увидим, то это значит, что кривая была заменена отрезками.

Рекомендуется на первом этапе определить плоскости или отрезки, которые не перекрываются не по Х, не по У и в дальнейшем исключить из обработки.

 



Дата добавления: 2016-07-27; просмотров: 1260;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.041 сек.