278

Как определить угловой размер в компьютерных играх

Всем доброго времени суток
Когда возникает желание что-то посчитать в игре, то нередко приходится определять размеры объектов по их изображению, то есть иметь дело с угловыми размерами объектов. Например, есть за картой звездолет и хочется узнать, насколько он большой. Для этого как раз нужно в том числе и определять его угловой размер. Что это такое и как его найти и будет рассказано в этом посте

Что такое угловой размер

Угловой размер - это мера того, насколько большим мы видим объект. И пожалуй объясню это на примере
Представьте, что вы стоите напротив шара диаметром 3 метра и смотрите на него. Сперва вы смотрите на него с расстояния в 1 метр, затем отходите подальше и смотрите уже с 4 метров. Сам шар размеры свои не изменил, однако для вас он стал меньше, потому что вы удалились. И вот как раз то, насколько большим вы его видите, угловой размер и показывает:

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

Как строится изображение

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

Спроецируем все объекты, которые мы можем увидеть из некоторой точки на какую-то поверхность. Вот только на какую? Так как по любому направлению проецироваться объекты должны одинаково, то очевидным будет сделать проекцию на сферу, в центре которой находится наблюдатель. На этой сфере находятся все объекты, которые может увидеть наблюдатель, изменяя только направление своего взгляда. Естественно, из-за ограниченного угла обзора наблюдатель видит только часть этой сферы
Однако мониторы прямоугольные и, в основном, плоские, поэтому теперь видимый кусок сферы нужно спроецировать на прямоугольник. Отсечем от сферы те части, которые наблюдатель не видит, а из концов отрезанного куска проведем прямые, пересекающиеся в центре. На этих отрезках и будет лежать прямоугольник, и для удобства его можно построить прямо на концах куска сферы:

Зеленая плоскость - это как раз плоскость монитора

И теперь, чтобы спроецировать некоторую точку на плоскость монитора, проведем прямую от этой точки на сфере до центра сферы. Точка пересечения с плоскостью и будет проекцией точки на эту плоскость. Кстати, такой метод проецирования объясняет, почему по краям изображение растягивается

Находим угловые размеры

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

Сперва введем 2 системы координат: одна 3-мерная, из центра сферы, другая 2-мерная, связанная с плоскостью монитора:

Здесь L - длина изображения в пикселях, D - высота, что, впрочем, видно и по рисунку. Также здесь у нас появилась неизвестная H, которую надо бы найти. Рассекаем объекты с рисунка плоскостью xOy и, соединяя с началом координат края сечения монитора получим следующую картину:

Так как начало координат находится ровно над центром монитора, то мы получаем равнобедренный треугольник. Теперь можем из FOV-а (угла обзора) и длины изображения выразить неизвестную:

Изначально мы будем знать координаты точки в системе координат монитора (например, координата пикселя в Paint-е), поэтому из них определим координаты уже в системе Oxyz для некоторой точки:

Не забываем, что Oxyz находится над центром монитора

Теперь вернемся к исходной картинке, нанесем на плоскость точки A и B, которые будут границами нашего отрезка и проведем вектора из наблюдателя (нуля Oxyz) в эти точки:

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

Вторая картинка - та же формула, но с записью обозначений, чтобы ее можно было сохранить и потом быстро ею воспользоваться

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

Ну а на этом все, удачи вам в расчетах и вычислениях)

Лига упоротых расчетов

515 постов7K подписчиков

Правила сообщества

Лига занимается странными веселыми подсчетами на основании уже имеющихся в общем информационном доступе знаний. Расчеты - ради лулзов и хорошего настроения. Не нудите сами и не занудничайте в адрес других, играть в Шелдона Купера хорошо до определенного предела.

14
Автор поста оценил этот комментарий

Это пример кода КАК ДЕЛАТЬ НЕЛЬЗЯ

раскрыть ветку (1)
21
Автор поста оценил этот комментарий
Работает - значит можно)
показать ответы
3
Автор поста оценил этот комментарий
я сферу использовал просто чтобы представить все объекты в виде изображения
Ну так это же влияет на способ расчета. При разных способах проекции угловой размер будет вычисляться по-разному.
Так кстати что со сферой, что без сферы одинаково проецироваться будет

Да нет, по-разному. Вот на рисунке красная точка при проекции напрямую на плоскость попадает в одно место, а при проекции сначала на сферу - в другую. В плане искажения они будут в каком-то смысле работать наоборот: в геншине (на скринах), например, проекция, видимо, сразу на плоскость, поэтому Луна, которая в центре экрана выглядит круглой, в углу получается вытянутой от центра к краю. А если проецировать через сферу, то она была бы наоборот сжатой от центра к краю, а вытянутой - по окружности вокруг центра экрана. Примеров под рукой, увы, нет, но это несложно просто в голове представить.

Иллюстрация к комментарию
Иллюстрация к комментарию
Иллюстрация к комментарию
раскрыть ветку (1)
3
Автор поста оценил этот комментарий
Подождите, вы со сферы проецируете на плоскость ортогонально, то бишь поводите из сферы перпендикуляр на плоскость, а у меня в посте центральная проекция с центром в центре сферы. Если проводить центральную проекцию, то прямые совпадают, и проекция остаётся такой же и без сферы. А при ортогональной проекции по краям все будет скукоживаться, что вообще неверно
показать ответы
3
Автор поста оценил этот комментарий
Значит если диаметр луны почти в 4 раза меньше чем земли,то размер земли с поверхности Луны будет тоже почти в 4 раза больше,чем размер луны с земли?
раскрыть ветку (1)
5
Автор поста оценил этот комментарий

Ввиду малости угловых размеров да. Но в общем случае это не совсем так, потому что связь между угловым и линейным размерами нелинейная (через триг функции)

Автор поста оценил этот комментарий

Лучше спроси у чатгпт. Нельзя так писать на языке высокого уровня, в котором уже есть миллион функций как написать это в две строчки, а цикл по char, с функцией с if-ами захардкоженными это дичь, ты не на ассемблере пишешь.

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

Вот пример от чатгпт:

int number;

while (!int.TryParse(Console.ReadLine(), out number))

{

            Console.WriteLine("Некорректный ввод. Введите целое число:");

  }

  return number;

раскрыть ветку (1)
13
Автор поста оценил этот комментарий
>"Нельзя так писать на языке высокого уровня"
Будьте добры свои выебоны про нельзя так писать оставить при себе. Я не программист, и мне не нужно знать овер дохуя функций, так как я пишу небольшие консольные приложения для себя, это вообще первое, которое я куда-то выкладываю. Мне проще самому сделать код, чем регаться на чатгпт или скроллить интернет, лишь бы НатуральноРожденномуЧлену понравилось. Примеры как опытные люди делают я благополучно посмотрел благодаря адекватным комментаторам, к коим вы не относитесь
показать ответы
6
Автор поста оценил этот комментарий
Я так понял, таким вот образом мы введённое пользователем разрешение экрана (например, 800*600 в виде строки) разбираем, чтобы выяснить, что надо было сразу отдельно спросить высоту и ширину и хуйню не творить)
раскрыть ветку (1)
6
Автор поста оценил этот комментарий

Ну конкретно тот пиздец это функция для превращения символа в цифру

показать ответы
1
Пивной инженер
Автор поста оценил этот комментарий

Верх цинизма давать людям не читаемый код для того, чтобы разобраться :) Чтобы ЭТО разобрать нужен опыт в чтении чужого кода, а у новичков он вряд ли есть. В этом то и суть моего коммента. Таким кодом только новичков отпугивать. Я чертежи не выкладываю, чтобы людей не запутывать. Просто по работе часто встречаю нечто подобное от людей, которые за подобную работу еще и деньги немалые просят. И проблема в том, что учились они на подобных примерах или вообще на шаблонах 50ти летней давности.

раскрыть ветку (1)
2
Автор поста оценил этот комментарий
Блин, я вас понимаю, но все же. Я не заставляю кого-то читать мой код, я его оставил, чтобы, кому интересно, было видно, что я вообще за программу написал
показать ответы
Пивной инженер
Автор поста оценил этот комментарий

Лучше не выкладывать подобный код. Писать код надо так, как будто поддерживать его будет маньяк, знающий где ты живешь. Тут же абсолютно не читаемый код. Или учится делать правильно, или не выкладывать. Яж например не выкладываю чертежи своих поделок, так как знаю, что я не инженер и не умею правильно их оформлять.

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Я в посте написал:

вдруг кто захочет разобраться

Кому надо узнать, что я напрограммировал в той программе, которую выложил для скачки, тот может посмотреть код, кому не надо - тот может не смотреть

И знаете, картинки я тоже не идеально делаю, мне их теперь не выкладывать? Объяснять ультрапонятно я тоже не умею, мне теперь посты не писать?

Точно также и вам не обязательно писать чертежи по ЕСКД, чтобы их выложить

показать ответы
0
DELETED
Автор поста оценил этот комментарий

А есть для ЛЛ? на 2к мониторе 27 дюймов сколько ставить фов?

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Эм, в играх обычно FOV не настраивается. Да и это просто угол обзора, он никак не связан с монитором

показать ответы
0
Автор поста оценил этот комментарий

Я просто не могу понять, зачем вообще вычислять угловые размеры? Где это применяется?

раскрыть ветку (1)
2
Автор поста оценил этот комментарий
Сидишь ты такой, играешь, и смотришь, за картой находится какой-то объект, который не приклеен к скайбоксу. Берёшь всю свою волю в кулак, в другой кулак ручку с тетрадью и считаешь, каких размеров этот объект) Для этого нужен угловой размер
показать ответы
4
Автор поста оценил этот комментарий

Можно и лампочку в жопу засунуть, но не каждый захочет))

раскрыть ветку (1)
3
Автор поста оценил этот комментарий
Ну так человек с лампочкой в жопе и работать будет не особо)
показать ответы
6
DELETED
Автор поста оценил этот комментарий

Накодировал, конечно, ты, друг, знатно. Exception driven development в кучу с goto. За математику респект, конечно, но все же.

раскрыть ветку (1)
2
Автор поста оценил этот комментарий
Ну блин, я все таки не программист. Знаю базу по C# и C++, для собственного пользования мне хватает. Обработку исключений добавил, чтобы скачанная программа, если она кому нужна, не крашилась при неправильных данных, ну а чтоб по новой данные вводить сделал goto, других способов я не знаю
2
Автор поста оценил этот комментарий
ЧатГПТ код писала?
раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Нет, я сам

показать ответы
0
Автор поста оценил этот комментарий

Угол обзора - это же тупо расстояние камеры до проекции. Нахера такие сложности? Меняем расстояние и перемножаем матрицы и все.

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Как угол может быть равен метрам?

показать ответы
15
Автор поста оценил этот комментарий

Насколько я знаю, обычно в играх пропускают шаг с проецированием 3D объекта на сферу и проецируют сразу на прямоугольник. Это вычислительно быстрее, а недочеты с растяжением картинки есть в обоих случаях. Но вообще есть разные варианты, конечно.

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

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

Так кстати что со сферой, что без сферы одинаково проецироваться будет, тк прямая через точку и через наблюдателя должна проходить и по проекции точки на сферу, и по проекции на плоскость

показать ответы
DELETED
Автор поста оценил этот комментарий

штош, долбоебов до сих пор не лечат.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Жаль, так бы тебя вылечили
DELETED
Автор поста оценил этот комментарий

представь себе: читаешь пикабу, и какойто еблан тупорылый на полном серьезе сделал из говна и палок рокету, захуевертил туда петард для тяги, нашел помощников таких же ебанутых, как и он сам, организовал испытания этой шлоеботины, отсчет, зажигание, ебанистический прыжок на 100м вверх, ясен хуй тут же возвращение на Землю, чудом выжил, стал похож на С. Хокинга во всем кроме интеллекта. И вот он на основании своего успеха (это же объективно успех, да?) выкладывает размытые фото чертежей этого говнища, и типа такой "ребят, если вам не нравится моя метода, идите нахуй, я гинеколог-бетонщик, я ебал чето там учить физика хуизика, типа вот."

Надеюсь, ты понял. Если не понял - значит не прочитал.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Я понял, что ты быдло высокомерное. То есть по твоему мнению в треде про ракеты авторский контент должен быть по типу "спроектировал дома, собрал в гараже и запустил с Байконура модификацию Союза-5, вот вам 100500 листов техдокументации по ЕСКД"? Почему человек не может показать, что сделал вот что-то то? И где и кого я посылал нахуй? Я выложил код на случай, если кому интересно программу почитать, не хочешь - не читай. И я адекватно и лояльно отвечал на адекватную критику и слова о том, как можно сделать по другому, лишь добавляя, что я не прогер, поэтому так
Зато после обсерания ТС-ов за неидеальность постов ты и ещё тысячи таких же пойдете ныть в горячее о том, что на пикабу нет авторского контента, одни картинки да котолампы
показать ответы
1
Пивной инженер
Автор поста оценил этот комментарий

Код бы хоть текстом к программе добавил. И я бы не рекомендовал проекты сохранять в папку профиля пользователя винды. :) К примеру у меня отдельный раздел под систему и отдельный раздел под данные. Так в случае чего проще восстановить. Телеграм есть?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Ну у меня нет каких то программ, которые было бы страшно потерять. Какие-то материалы (например, материал для постов) я сохраняю на флешку, чтобы их не потерять. Какие-то большие объёмы данных сохраняю на переносной жёсткий диск. Хотя пара программ у меня есть, но тк они все консольные, то я их храню на флешке в блокноте, чтобы, если надо, код скопировать, вставить и скомпилировать
1
Пивной инженер
Автор поста оценил этот комментарий

Код бы хоть текстом к программе добавил. И я бы не рекомендовал проекты сохранять в папку профиля пользователя винды. :) К примеру у меня отдельный раздел под систему и отдельный раздел под данные. Так в случае чего проще восстановить. Телеграм есть?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Да, @engineer0044 (ссыль на тг)

107
Автор поста оценил этот комментарий

Извиняюсь конечно, НО ЧТО ЭТО ЗА ПИЗДЕЦ?

Иллюстрация к комментарию
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Это функция convert))
А вообще обычное Convert.ToInt32 конвертирует символы в их кодовое значение по ASCII, поэтому сделал такую функцию)

показать ответы
1
Автор поста оценил этот комментарий

Я просто не очень понимаю, зачем это вычисление надо? Если мы говорим о зд графике, нас интересуют лишь три матрицы, матрица вида, проекции и мира. Так вот в матрице проекции у нас уже есть угол обзора, что по сути говорит нам, насколько камера близка к проекции. Изменение этой величины и меняет угол обзора. Эту величину можно самому задать и не надо ее искать. Ну или я вообще не понял суть топика :)

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Так мы угол обзора и не ищем. Угол обзора принимаем известным, а в посте ищем угловые размеры объектов по скриншоту из игры (ну собсна только так можно нормальное изображение сделать)

показать ответы
5
Автор поста оценил этот комментарий
Есть ещё такая тема, как фокусное расстояние. Скорее всего оно тоже применяется при разработке движка. По крайней мере при 3д моделировании и рендеринге оно есть
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Рендерингом не занимаюсь, а 3D-моделированием только в САПР, но фокусное расстояние - это же расстояние от линзы или зеркала или чего-то еще до фокуса, то есть до точки, в которой сходятся лучи или продолжения лучей после отражения от линзы, зеркала или чего-то еще (падающие лучи параллельны). Фокусы для гиперболы, параболы и эллипса также устроены, а вот про фокусы в рендеринге не слышал

показать ответы
6
Автор поста оценил этот комментарий

Только сейчас заметил что в примере char. В таком случае, если хочешь без промежуточной конвертации в string, то

char num = '1';

int i = (int)Char.GetNumericValue(num);

либо

int i = num - '0';

Еще рекомендую почитать про библиотеку Math (в ней, например, есть константа пи) и про парсинг строк (через str.Split(), например, парсить ввод было бы намного проще).

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Ну я и так не хотел промежуточной конвертации в string, поэтому есть 10 if-ов). Хотя как-то до -'0' я не додумался)

Число пи я сам знаю до 13 знаков после запятой, на это пофиг

Для ввода в строчку и парсинга у меня где-то был стыренный кусок кода, но искать его было лень. Да и прогаю я в C# довольно редко, сильно в прогу не углубляюсь

4
Автор поста оценил этот комментарий
Это понятно. Но про более широкий смысл происходящего — я прав?
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Да

показать ответы
7
Автор поста оценил этот комментарий

Эмм....

Иллюстрация к комментарию
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Вы конвертируете строку, а я конвертирую именно символы (переменная char). Char он конвертирует в асковский код

Иллюстрация к комментарию
показать ответы
3
Автор поста оценил этот комментарий
Кстати, такой метод проецирования объясняет, почему по краям изображение растягивается

Это растягивание очень заметно, особенно в шутерах. Но ведь в жизни изображение не растягивается. Значит, в принципе проецирования есть недочёт, причём глобальный!

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Даже если в реальной жизни изображение по бокам растягивается, вы этого просто не сможете увидеть, ибо нельзя нормально видеть то, что находится очень сбоку. Ну и к слову, в реальной жизни на плоскость ничего не проецируется, поэтому растяжения быть не должно. А вот на фотках и мониторах оно есть, ибо проецирование на плоскость

0
Автор поста оценил этот комментарий

А можно для ЛЛ и гумманитария.. так и сколько получилось ?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Получилась формула и программа, в которую вбита формула. Измеряешь нужные данные (разрешение изображения, угол обзора (FOV) и координаты концов измеряемого отрезка, ну то есть координаты, которые покажет Paint если в нем поставить курсор на начало и на конец отрезка)) подставляешь их в формулу или вводишь в программу и получаешь угловой размер чего-либо на изображении. Сам угловой размер, как я писал во введении, это мера того, насколько большим объект видит глаз/камера

Конкретного числа есенно не получилось, так как это вычисления в общем виде, то есть когда вместо чисел (переменных, это как раз вводимые данные) используются буквы
Автор поста оценил этот комментарий

Функция к тому же публичная, при это вызовов из вне класса не наблюдаем и её имя написано с маленькой буквы. Код ревью не пройдёт. Содержимое не рассматривает.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Вот знаете, я люблю адекватную критику. И не люблю, когда кто-то (например, вы) начинает устраивать выебоны. "Код ревью не пройдёт" - а я эту программу отправляю HR яндекса наверное, а не выкладываю на развлекательную площадку, при это не подразумевая её ключевой частью поста
То, что вы пишите аналогично той ситуации, когда кто-то придумает и соберёт вертолёт самодельный, выложит его эскизы, а ему начнут затирать "толщина линий не такая, шрифт не гостовский, да и вообще не по ескд выполнено, нормоконтроль не пропустит". При том, что человек это выкладывает на развлекательной площадке, а не отправляет в конструкторское бюро
1
Автор поста оценил этот комментарий
Что-то я немного подзабыл) в общем вот о чем я
Иллюстрация к комментарию
Иллюстрация к комментарию
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Ну собсна ортогональное и центральное проецирование знаю, но так и не понял про фокус. Это, как я понимаю, место пересечения лучей при центральной проекции? Ибо если брать первую картинку, то ползунки, которые видно (ползунок угла обзора), определят полностью изображение при добавлении координаты камеры (точки пересечения лучей)
0
DELETED
Автор поста оценил этот комментарий

чувак, в чем ты специалист, скажи просто для того, чтобы я привел тебе понятную для

тебя аналогию.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Ну пусть будет проектирование ракет

показать ответы
2
Автор поста оценил этот комментарий

Человек Вам рассказал про угловые вычисления, и для особо ленивых даже код написал, чтобы работало. А Вы смотрите на код только, а не на цель. Это ведь можно было и в экселе сделать. сразу бы накинулись что не использовал нормальный язык программирования??? стыдно

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Ну объективно, код по меркам нормального программирования хреновый. Но в целом, как минимум ничего плохого в критике кода нет, тут подбрасывают разные варианты того, что и как можно реализовать, может кому и поможет
DELETED
Автор поста оценил этот комментарий

Код? Ты ебанутый?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Ну на аксонометрическую проекцию или эпюры это похоже еще меньше)

показать ответы
2
Автор поста оценил этот комментарий

А, ну тогда да, будет одно и то же. Я просто не особо вчитывался, сори)

что вообще неверно

Ну как сказать, ни тот, ни другой вариант не являются "верными") Растяжение Луны на скрине - тому доказательство. "Верный" - только человеческий глаз, а как-то его сложно симулировать на экране компьютера. Может, в VR люди с этим справились, не знаю.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Ну как сказать, ни тот, ни другой вариант не являются "верными")

Ну да, я имею ввиду, что ортогональная проекция давала бы изображение не такое, как в играх. А вообще, можно за идеал принять камеру Обскура, так как она работает по похожему с глазом принципу, только у глаза "матрица" сферическая, а у камеры Обскура плоская. Ну и изображение, по идее, должно быть +- таким же, как в играх

3
Автор поста оценил этот комментарий
В сапре оно тоже есть, там это называется перспективой. Завтра на работе попробую сделать примеры
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Окидоки, буду ждать
показать ответы
0
Автор поста оценил этот комментарий

Было интересно прочитать,но для чего эта информация?

раскрыть ветку (1)
Автор поста оценил этот комментарий

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества