Помощь - Поиск - Пользователи - Календарь
Полная версия: Пирамида и конус видимости
Форум «Всё о Паскале» > Другое > Свободное общение
mitz
Добрый вечер!
Нужно найти ответ на следующий вопрос (поисковики типа "Гугл" не в помощь):
"Что такое пирамида видимости? Как вы думаете, если вместо пирамиды использовать конус видимости, чем это будет лучше, чем хуже?".
Помогите, пожалуйста, найти ответ на этот вопрос.
volvo
Цитата
поисковики типа "Гугл" не в помощь
Это почему еще? Как раз поисковик выводит тебя на ответ по поводу "пирамиды видимости" в несколько секунд. Вот тут читай: http://www.uraldev.ru/articles/id/6 По поводу ответа на второй вопрос - он так же легко ищется через поисковик, но это уже самостоятельно. За тебя может еще и диплом получить?
mitz
Цитата(volvo @ 9.12.2010 21:48) *

За тебя может еще и диплом получить?

А может не надо грубить? Типа администратор и можно так себя вести что-ль? norespect.gif
Поди также спрашивали вопросы подобного рода, но, получается, "мне можно, а остальным - нельзя!". Такая тактика провальна...
З.Ы. Если хотите получить диплом, то получайте - я буду очень рад lol.gif

А вообще-то я просто попросил о помощи, причём вежливо и не затрагивая никого, - помочь мне. И без всяких грубостей, которые "вернутся непременно"! Вот так.

Насчёт ссылки спасибо (всё-таки), если кто-нибудь поможет найти подробно про конус видимости (я нашёл, но как-то очень мало), то тому большая благодарность!
Lapp
Цитата(mitz @ 9.12.2010 22:25) *
А может не надо грубить? Типа администратор и можно так себя вести что-ль? norespect.gif
Поди также спрашивали вопросы подобного рода, но, получается, "мне можно, а остальным - нельзя!". Такая тактика провальна...
З.Ы. Если хотите получить диплом, то получайте - я буду очень рад lol.gif

А вообще-то я просто попросил о помощи, причём вежливо и не затрагивая никого, - помочь мне. И без всяких грубостей, которые "вернутся непременно"! Вот так.
Дорогой mitz. Тебе следует поучиться общению с коллегами.
Ты сказал:
Цитата
поисковики типа "Гугл" не в помощь
Твои слова? Твои. Что из них (плюс простейший поиск по двум словам) следует? То, что ты даже не пытался искать, НО стал вешать лапшу на уши, что типа не нашел.
Что это есть, по твоему, уважаемый непримиримый враг грубости? Это есть типичнейшее неуважение к собеседникам (у которых ты же и ищешь помощи).
Да, volvo, намекнул тебе на эту ситуацию (что искать пришлось ЗА ТЕБЯ), причем достаточно корректно (особенно, учитывая, что не ты первый такой и, не ты последний, кто говорит, что не нашел, хотя сам и не искал). И, кстати, любой участник мог тебе сказать то же самое, уверяю тебя - volvo тут выступал в роли обычного твоего собеседника, а не администратора. Тебе бы тут признать свой промах, извиниться - и поднять мнение о себе в глазах окружающих! Но ты предпочитаешь лезть в бутылку?

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

Пожалуйста, извинись за свое поведение, и я буду считать конфликт исчерпаным. Ошибки нужно уметь признавать.
mitz
Здравствуйте, Lapp.
Цитаты:
Цитата(Lapp @ 10.12.2010 4:03) *

То, что ты даже не пытался искать, НО стал вешать лапшу на уши, что типа не нашел.

Вот в том то и дело, что искал, а ничего подробного найти не смог, особенно вторая половина вопроса: "Как вы думаете, если вместо пирамиды использовать конус видимости, чем это будет лучше, чем хуже?". Поэтому я так и написал, что не в помощь. Я же не говорил так, что искал, но не нашёл, или не хочу искать! Такого не было!

Цитата(Lapp @ 10.12.2010 4:03) *

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

Да, собственно, кого я не уважаю-то? Я просто вежливо попросил мне помочь ответить, а в ответ получаю какие-то грубости, типа "За тебя ещё диплом получить"? К чему это? Показать себя офигенно умным, продвинутым? У того, кто ответил так плохо, настроение плохое? Да сути моего вопроса, заданного в этой теме, это всё никак не касается! Прямо какой-то закрытый клуб, в котором малоактивных пользователей здесь недолюбливают или ЧСВ завышенное.

Цитата(Lapp @ 10.12.2010 4:03) *

Пожалуйста, извинись за свое поведение, и я буду считать конфликт исчерпаным. Ошибки нужно уметь признавать.

Хорошо, прошу прощения, но всё же стоит пересмотреть свои взгляды по отношению к пользователям, которые хотят получить помощь без всяких наездов, типа "ты кто такой тут, за тебя всё делать, а я умный, хочу выразить своё неуважение". Разве не так? Это же очевидно всё.

З.Ы.
Нашёл хорошие определения из одной книжки про конус и пирамиду видимости, причём я их переделал:
Для конкретной прорисовки тех объектов, которые мы видим на данный момент на экране, кроме тех, которые остаются за кадром, используется отсечение по пирамиде видимости.
Пирамида видимости – это часть пространства, в которой находятся все объекты, видимые из данной точки в данный момент. Она определяется шестью гранями усеченной пирамиды (т.е. пирамиды со срезанной вершиной). Если какая-то точка находится внутри пирамиды видимости, ее видно. Если вне пирамиды, значит, эту точку не видно.
(Точка видима, хотя это не совсем так. Ее может закрывать другой объект, но она, по крайней мере, в поле зрения.)
При этом плоскость можно представить как бесконечно широкий и длинный лист бумаги. Любая точка пространства либо принадлежит плоскости, либо «спереди» от плоскости, либо «за» плоскостью.
Плоскость определяется четырьмя числами: A,B,C и D, где {A,B,C} – вектор нормали к этой плоскости, а D – расстояние до начала координат.
Для определения чисел, определяющих текущую пирамиду видимости, используется двумерный массив 6*4 (шесть плоскостей, для каждой четыре числа: A, B, C, и D)
Для проверки видимости объекта начнем с точки, которая будет располагаться в пирамиде.
Точка будет в пирамиде, если она находится перед всеми, либо за всеми плоскостями одновременно.
(Это так, потому что 6 векторов нормалей вида {A,B,C} лежат в пирамиде (т.е. все плоскости как бы смотрят внутрь пирамиды). Если бы было наоборот, то точка бы лежала ЗА всеми плоскостями.)
Для того чтобы понять, находится ли точка перед плоскостью или нет, необходимо посчитать расстояние от точки плоскости. Если расстояние положительно, значит, точка лежит перед плоскостью, отрицательна – значит за плоскостью.
Формула для вычисления расстояния точки до плоскости:
distance = A * X + B * Y + C * Z + D
Где A, B, C, и D - четыре числа, которые определяют плоскость и X, Y, и Z - координаты точки.
Проекция — это способ представления трехмерного объекта в двухмерном пространстве, например проекция куба на экран компьютера. В перспективной проекции используется конус видимости, прямоугольная пирамида, для моделирования и проецирования трехмерного пространства и его объектов на экране. Конус видимости значительно расширяется по мере удаления от исходного положения точки обзора. Исходным положением точки обзора может являться камера или глаза наблюдателя, смотрящего на экран. Спроецированная перспектива создает иллюзию трехмерного пространства с глубиной и расстоянием, в котором объекты, расположенные ближе к экрану, имеют большие размеры, чем объекты, расположенные на удаленном расстоянии от экрана.


Осталось найти ответ на вопрос: "Как вы думаете, если вместо пирамиды использовать конус видимости, чем это будет лучше, чем хуже?".
andriano
Уважаемый, mitz, Ваш вопрос некорректен.
Чтобы сделать его корректным, следует указать, по какому критерию определять, что лучше, а что хуже.

На бытовом уровне можно предположить, что если мы наблюдаем что-то через круглое окно, то "лучше", будет конус видимости, а если через "угловатое", то - пирамида, причем количество углов основания пирамиды должно быть равно количеству углов окна.
mitz
Цитата(andriano @ 17.12.2010 18:24) *

Уважаемый, mitz, Ваш вопрос некорректен.
Чтобы сделать его корректным, следует указать, по какому критерию определять, что лучше, а что хуже.

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

Спасибо за разъяснение.
Тогда немного подредактирую вопрос, т.к. он действительно некорректен. Т.е. вопрос теперь поставлен так, что нужно сказать, что какие достоинства и недостатки есть у конуса и пирамиды видимости.
andriano
Вопрос, опять же, в критериях, что считать достоинством, а что - недостатком.
Можно предположить, что лишняя работа - это недостаток, а ее минимизация - достоинство.
Работа может заключаться по меньше мере в:
1. проверке на попадание в конус/пирамиду видимости,
2. отрисовке (или попытке отрисовки) объектов, которые прошли проверку на шаге 1.
Для проверки важно, в какой СК мы работаем. Если в полярной, вероятно, затраты на проверку попадания будут меньше в случае конуса. Если же система декартова, то для конуса вычисления + 1 проверка, а для пирамиды - 4 проверки без вычислений. Что быстрее - вопрос сложный. Впрочем, нередко и вычисления и проверка проводятся аппаратно, так что нужно знать особенности аппаратуры.
С точки зрения отрисовки обычно можно считать, что чем меньше отношение площади экрана к площади фигуры, отсекаемой конусом/пирамидой в плоскости экрана, тем лучше. Т.е. ответ зависит от формы экрана.
mitz
Цитата(andriano @ 21.12.2010 21:51) *

Вопрос, опять же, в критериях, что считать достоинством, а что - недостатком.
Можно предположить, что лишняя работа - это недостаток, а ее минимизация - достоинство.
Работа может заключаться по меньше мере в:
1. проверке на попадание в конус/пирамиду видимости,
2. отрисовке (или попытке отрисовки) объектов, которые прошли проверку на шаге 1.
Для проверки важно, в какой СК мы работаем. Если в полярной, вероятно, затраты на проверку попадания будут меньше в случае конуса. Если же система декартова, то для конуса вычисления + 1 проверка, а для пирамиды - 4 проверки без вычислений. Что быстрее - вопрос сложный. Впрочем, нередко и вычисления и проверка проводятся аппаратно, так что нужно знать особенности аппаратуры.
С точки зрения отрисовки обычно можно считать, что чем меньше отношение площади экрана к площади фигуры, отсекаемой конусом/пирамидой в плоскости экрана, тем лучше. Т.е. ответ зависит от формы экрана.

Спасибо за ответ, разобрался в критериях, а суть вопроса состоит в том, что речь идёт об отсечении объектов, т.е. как легче проверить входимость точки в объём видимости - работая с пирамидой или работая с конусом?
andriano
Излагайте.
А мы попытаемся подсказать, чего можно ожидать в Вашем конкретном случае.

В общем случае обычно отрисовка объекта существенно более трудоемка, чем отсечение. Поэтому обычно наиболее эффективна та фигура, которая наиболее близко подходит по форме объему видимости. Так что тезис о круглом или угловатом экране остается в силе.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.