Модераторы: Rickert
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Принцип невидимых линий. 
:(
    Опции темы
America
Дата 10.12.2006, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 11.12.2005
Где: USA

Репутация: 1
Всего: 1



Обьясните пожалуйста как убраются невидимые линии. У меня есть каркас ( 3д-обект). Нужен сам принцип.
PM MAIL   Вверх
ZC1989
Дата 10.12.2006, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 468
Регистрация: 17.7.2006
Где: Нижний Новгород; Россия

Репутация: нет
Всего: 1



America, принцип такой: просчитывается проекция точек каждого треугольника на плоскость (экран) и если все 3 вершины не попадают в область экрана или она находятся дальше по оси Z то треугольник игнорируется... так, по крайней мере Zbuffer аботает

ЗЫ: линии редко просчитываются, общепринято треугольниками обходиться  smile 

Это сообщение отредактировал(а) ZC1989 - 10.12.2006, 15:02


--------------------
озарение настанет позже, когда поймём больше... (Сo. Stigmata)
PM MAIL ICQ   Вверх
America
Дата 11.12.2006, 01:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 11.12.2005
Где: USA

Репутация: 1
Всего: 1



Цитата(ZC1989 @  10.12.2006,  15:01 Найти цитируемый пост)
просчитывается проекция точек каждого треугольника на плоскость (экран)

таак..

Цитата(ZC1989 @  10.12.2006,  15:01 Найти цитируемый пост)
если все 3 вершины не попадают в область экрана

Представил себе большой треугольник за ним маленький, оба лицом к нам smile , большой полностью закрывает маленький, все 3 точки проекции маленького лежат на экране его рисуем, большой тоже... противоречие... значит что-то  я не так догоняю... smile 


PM MAIL   Вверх
ZC1989
Дата 11.12.2006, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 468
Регистрация: 17.7.2006
Где: Нижний Новгород; Россия

Репутация: нет
Всего: 1



America, так всю облость спроецированного большого в Z буффере надо заполнить Z координатой этого треугольника, а потом спроецировав маленький, надо сверить ещё и Z отдаление, если дальше, не рисуем, если больше, рисуем - так дирекстовый работает, поищи подробное описание работы Z буффера, так это хорошо объясняется, и если хошь, я могу статьи которые у меня есть выслать... smile 


--------------------
озарение настанет позже, когда поймём больше... (Сo. Stigmata)
PM MAIL ICQ   Вверх
Arks
Дата 11.12.2006, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 7.5.2006
Где: Барнаул

Репутация: нет
Всего: нет



Я не так давно курсовик делал на тему удаления невидимых поверхностей. Там у меня вкратце перечислены разные методы и подробно разобрано использование восьмеричных деревьев. Могу дать глянуть. Не идеал (не доработан кое-где), но основные моменты освещены.
PM MAIL ICQ Skype MSN   Вверх
ZC1989
Дата 11.12.2006, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 468
Регистрация: 17.7.2006
Где: Нижний Новгород; Россия

Репутация: нет
Всего: 1



Arks, тебе не кажется что для простого коркаса дерево применять неразумно? если уже сложная сцена с можеством движущихся объектов и ещё кучей ереси, то да, деревья в переди, но каркас рисовать, по-моему, проще с этой проверкой z-отдаления... по треугольникам... smile 


--------------------
озарение настанет позже, когда поймём больше... (Сo. Stigmata)
PM MAIL ICQ   Вверх
Arks
Дата 11.12.2006, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 7.5.2006
Где: Барнаул

Репутация: нет
Всего: нет



Да, в принципе я согласен, что деревья лучше подходят для сцен со множеством объектов, и на вхождение в узлы дерева стоит проверять эти объекты, а не отдельные полигоны. Тем не менее это не исключает применения деревьев для статики. Представь себе ограмную статическую сцену с миллионами полигонов. Z-буффер не избавит от необходимости проверять ВСЕ полигоны и CPU просто задохнётся на этом. Тут как раз и пригодятся деревья и прочие хитрые способы отсечения невидимой геометрии не по одному, а сразу группами.
Кстати, я как раз и делал по полигонам - не хватало мне в курсовике ещё кучу объектов грузить и мучиться с ними  smile 

И ещё, вот что у меня про z-buffer в чистом виде написано:
Z-буфер.
Одним из самых простых алгоритмов удаления невидимых граней является метод 
z-буфера (буфера глубины). Его суть:
1)    Создаем массив (буфер), размером в экран (например, 800х600)
2)    Заполняем этот буфер максимально возможным большим числом, например 0x7FFFFFFF.
3)    Далее рисуем сцену: рисуем полигоны по порядку, для каждой отрисовываемой точки сцены считаем z-координату, если она меньше, чем в буфере, то рисуем эту точку и заносим в буфер значение этой z-координаты.
Метод z-буфера работает исключительно в пространстве картинной плоскости и не требует никакой предварительной обработки данных. Порядок, в котором грани выводятся на экран, не играет никакой роли.
К недостаткам метода можно отнести большой расход памяти и избыточность вычислений: осуществляется вывод всех граней вне зависимости от того, видны они или нет.
Средние временные затраты этого метода: O(n), где n – общее количество граней.
Однако современные видеокарты имеют аппаратную реализацию z-буфера и обеспечивают очень высокую скорость рендеринга.

PM MAIL ICQ Skype MSN   Вверх
ZC1989
Дата 11.12.2006, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 468
Регистрация: 17.7.2006
Где: Нижний Новгород; Россия

Репутация: нет
Всего: 1



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

ответы получились такие:
1 - использовать z-буффер дирекста или написать подобное...
2 - испльзовать деревья

зависит всё от цели, кубик отрисовать или монстра с под-объектами и анимацией smile 


--------------------
озарение настанет позже, когда поймём больше... (Сo. Stigmata)
PM MAIL ICQ   Вверх
Arks
Дата 12.12.2006, 07:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 7.5.2006
Где: Барнаул

Репутация: нет
Всего: нет



Ну дык мы как-то скатились на буффер, а ведь для линий свои методы есть.
Тут напр. есть про алгоритм Робертсона: http://algolist.manual.ru/graphics/delinvis.php
PM MAIL ICQ Skype MSN   Вверх
ZC1989
Дата 12.12.2006, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 468
Регистрация: 17.7.2006
Где: Нижний Новгород; Россия

Репутация: нет
Всего: 1



Arks, согласен, можно и это... smile 


--------------------
озарение настанет позже, когда поймём больше... (Сo. Stigmata)
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование игр, графики и искуственного интеллекта"
Rickert

НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание что новые темы касающиеся новых вопросов создаются кнопкой "Новая тема" а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих тематических темах будут удалены а их авторы, при рецедиве, забанены.

  • Литературу, связанную с программированием графики, обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы связанные с программированием графики и мультимедии на языках С++ и Delphi
  • Вопросы по реализации алгоритмов рассматриваются здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование игр, графики и искусственного интеллекта | Следующая тема »


 




[ Время генерации скрипта: 0.0565 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.