Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.79/29: Рейтинг темы: голосов - 29, средняя оценка - 4.79
Phankon
1

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

27.09.2006, 23:41. Просмотров 5402. Ответов 1
Метки нет (Все метки)


В общем где можно найти любое описание и/или реализацию алгоритма удаления невидимых линий, именно линий, т.е. дан массивы треугольников и линий необходимо рассчитать, какие линии или их части видны наблюдателю.
По мимо алгоритма желательно информация по его оптимизации, например с помощью BSP и критерии построения дерева
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.09.2006, 23:41
Ответы с готовыми решениями:

Алгоритм удаления невидимых линий и алгоритм закраски Гуро
Как применить алгоритм удаления невидимых линий и алгоритм закраски Гуро? в данном коде, заранее...

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

Проекция куба. Алгоритм удаления невидимых граней
Всем Здравствуйте! Мне необходимо реализовать алгоритм удаления невидимых граней, при этом создаю...

Удаление невидимых линий(Z-буфер)
Здравствуйте! С графикой не знаком, а нужно нарисовать сложную 3D фигуру: 1)с удалением невидимых...

1
voodooz
21.10.2006, 17:33 2
Сложность задачи удаления невидимых линий и поверхностей привела к появлению большого числа различных способов ее решения. Многие из них ориентированы на специализированные приложения. Наилучшего решения обшей задачи удаления невидимых линий и поверхностей не существует. Для моделирования процессов в реальном времени, например, для авиатренажеров, требуются быстрые алгоритмы, которые могут порождать результаты с частотой видеогенерации (30 кадр/с). Для машинной мультипликации, например, требуются алгоритмы, которые могут генерировать сложные реалистические изображения, в которых представлены тени, прозрачность и фактура, учитывающие эффекты отражения и преломления цвета в мельчайших оттенках. Подобные алгоритмы работают медленно, и зачастую на вычисления требуется несколько минут или даже часов. Строго говоря, учет эффектов прозрачности, фактуры, отражения и т. п. не входит в задачу удаления невидимых линий или поверхностей. Естественнее считать их частью процесса визуализации изображения. Процесс визуализации является интерпретацией или представлением изображения или сцены в реалистической манере. Такие эффекты подробно обсуждаются в гл. 5. Однако многие из этих эффектов встроены в алгоритмы удаления невидимых поверхностей и поэтому будут затронуты в данной главе. Существует тесная взаимосвязь между скоростью работы алгоритма и детальностью его результата. Ни один из алгоритмов не может достигнуть хороших оценок для этих двух показателей одновременно. По мере создания все более быстрых алгоритмов можно строить все более детальные изображения. Реальные задачи, однако, всегда будут требовать учета еще большего количества деталей.

Все алгоритмы удаления невидимых линий (поверхностей) включают в себя сортировку [1]. Порядок, в котором производится сортировка координат объектов, вообще говоря, не влияет на эффективность этих алгоритмов. Главная сортировка ведется по геометрическому расстоянию от тела, поверхности, ребра или точки до точки наблюдения. Основная идея, положенная в основу сортировки по расстоянию, заключается в том, что чем дальше расположен объект от точки наблюдения, тем больше вероятность, что он будет полностью или частично заслонен одним из объектов, более близких к точке наблюдения. После определения расстояний или приоритетов по глубине остается провести сортировку по горизонтали и по вертикали, чтобы выяснить, будет ли рассматриваемый объект действительно заслонен объектом, расположенным ближе к точке наблюдения. Эффективность любого алгоритма удаления невидимых линий или поверхностей в большой мере зависит от эффективности процесса сортировки. Для повышения эффективности сортировки используется также когерентность сцены, т.е. тенденция неизменяемости характеристик сцены в малом. В растровой графике использование когерентности для улучшения результатов сортировки в алгоритмах удаления невидимых поверхностей приводит к алгоритмам, которые очень напоминают алгоритмы растровой развертки, обсуждавшиеся ранее в гл. 2.

Алгоритмы удаления невидимых линий или поверхностей можно классифицировать по способу выбора системы координат или пространства, в котором они работают [1]. Алгоритмы, работающие в объектном пространстве, имеют дело с физической системой координат, в которой описаны эти объекты. При этом получаются весьма точные результаты, ограниченные, вообще говоря, лишь точностью вычислений. Полученные изображения можно свободно увеличивать во много раз. Алгоритмы, работающие в объектном пространстве, особенно полезны в тех приложениях, где необходима высокая точность. Алгоритмы же, работающие в пространстве изображения, имеют дело с системой координат того экрана, на котором объекты визуализируются. При этом точность вычислений ограничена разрешающей способностью экрана. Обычно разрешение экрана бывает довольно низким, типичный пример - 512х512 точек. Результаты, полученные в пространстве изображения, а затем увеличенные во много раз, не будут соответствовать исходной сцене. Например, могут не совпасть концы отрезков. Алгоритмы, формирующие список приоритетов, работают попеременно в обеих упомянутых системах координат.

Объем вычислений для любого алгоритма, работающего в объектном пространстве, и сравнивающего каждый объект сцены со всеми остальными объектами этой сцены, растет теоретически как квадрат числа объектов n2. Аналогично, объем вычислений любого алгоритма, работающего в пространстве изображения и сравнивающего каждый объект сцены с позициями всех пикселов в системе координат экрана, растет теоретически, как nN. Здесь n обозначает количество объектов (тел, плоскостей или ребер) в сцене, а N - число пикселов. Теоретически трудоемкость алгоритмов, работающих в объектном пространстве, меньше трудоемкости алгоритмов, работающих в пространстве изображения, при n<N. Поскольку N обычно равно (512)2, то теоретически большинство алгоритмов следует реализовывать в объектном пространстве. Однако на практике это не так. Дело в том, что алгоритмы, работающие в пространстве изображения, более эффективны потому, что для них легче воспользоваться преимуществом когерентности при растровой реализации.

http://graphics.cs.msu.su/graf... _8_1_2.htm
http://graphics.cs.msu.su/graf... _8_2_1.htm
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.10.2006, 17:33

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Удаление невидимых линий и поверхностей
1.Представить тело (рисунок) как совокупность выпуклых многогранников. 2.Составить программу для...

OpenGL отсечение невидимых линий
На первом рисунке то что есть. На втором - как хотелось бы. Т.е. вроде бы и каркасный...

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

Составьте программу построения куба с рисование невидимых линий
Помогите написать программу построения куба с рисование невидимых линий.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.