lod ландшафта что такое

OpenSceneGraph: Уровни детализации (LOD) и фоновая загрузка объектов

lod ландшафта что такое

Введение

Одной из интереснейших задач, решаемых посредством трехмерной графики является создание «больших миров» — протяженных сцен, содержащих большое число объектов с возможностью неограниченного перемещения по сцене. Решение этой задачи упирается в понятные ограничения, присущие аппаратному обеспечению компьютера.

Типичный пример: «большой мир» при визуализации железной дороги на движке OSG. Не хватает только лангольеров, пожирающих мир за поездом.

1. Использование уровней детализации (LOD)

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

OSG предоставляет инструменты для реализации этого приема через класс osg::LOD, наследуемый от всё того же osg::Group. Этот класс позволяет представить один и тот же объект в нескольких уровнях детализации. Каждый уровень детализации характеризуется минимальной и максимальной дистанцией до наблюдателя, при соблюдении которой происходит переключение отображения объекта в этом уровне детализации.

osg::LOD позволяет задавать данный диапазон сразу при задании дочерней ноды, или позже, применением методы setRange()

Продолжаем мучать цессну и проиллюстрируем описанную технику примером

main.h

main.h

Для начала загружаем модель

Теперь необходимо генерировать несколько (ограничимся для примера двумя) моделек, с более низким уровнем детализации. Для этого скопируем загруженную ноду дважды, применяя методику так называемого «глубокого» копирования класса, для ноды реализуемого методом clone()

Теперь редуцируем геометрию этих моделей, используя класс osgUtil::Simplifer. Степень упрощение модели задается методом setSampleRatio() данного класса — чем меньше передаваемый параметр, тем менее детальной будет модель после применения процедуры редукции

Когда у нас есть модельки разного уровня детализации мы можем зарядить их в корневую ноду, созданную как умный указатель на osg::LOD. Для каждого уровня детализации задаем дистанцию отображения этого уровня

Под FLT_MAX понимается в некотором роде «бесконечно» большое расстояние до наблюдателя. После запуска вьювера получаем следующую картину

Уровень детализации 3

lod ландшафта что такое

Уровень детализации 2

lod ландшафта что такое

Уровень детализации 1

lod ландшафта что такое

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

2. Техника фоновой загрузки узлов сцены

В движке OSG представлены классы osg::ProxyNode и osg::PagedLOD, предназначенный для баллансировки нагрузки при рендеринге сцены. Оба класса наследуются от osg::Group.

Узел типа osg::ProxyNode уменьшает время запуска приложения до начала рендеринга, если в сцене огромное количество загружаемых с диска и отображаемых моделей. Он работает как интерфейс к внешним файлам, позволяя выполнять отложенную загрузку моделей. Для добавления дочерних узлов используется метод setFileName() (вместо addChild) чтобы установить имя файла модели на диске и загрузить его динамически.

Узел osg::PagedNode наследует методы osg::LOD и загружает и выгружает уровни детализации таким образом, чтобы избежать перегрузки конвейера OpenGL и обеспечить плавную отрисовку сцены.

3. Динамическая (runtime) загрузка модели

Посмотрим, как происходит процесс загрузки модели с применением osg::ProxyNode.

main.h

main.cpp

Процесс загрузки здесь немного отличается

Вместо явной загрузки модели коровы мы указываем корневой ноде имя файла, где содержится модель и индекс дочерней ноды, куда следует поместить эту модель после её загрузки. При выполнении программы мы получи такой результат

lod ландшафта что такое

Видно, что точка обзора выбрана не лучшим образом — камера упирается прямо в зеркальный бок коровы. Это произошло потому, что модель загрузилась уже после запуска рендера и инициализации камеры, когда нода 0 ещё не была видна. Вьювер просто не смог просчитать необходимые параметры камеры. Однако, модель загрузилась и мы может настроить режим её отображения путем манипуляций мышью

lod ландшафта что такое

Что происходит в рассмотренном примере? osg::ProxyNode и osg::PagedLOD работают в данном случае как контейнеры. Внутренний менеджер данных OSG будет посылать запросы и загружать данные в граф сцены по мере того, как возникнет необходимость в файлах моделей и уровнях детализации.

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

Движок автоматически обрабатывает узлы, не отображаемые в текущем вьюпорту и удаляет их из графа сцены когда рендер перегружен. Однако, такое поведение не затрагивает узлы osg::ProxyNode.

Как и прокси-узел, класса osg::PagedLOD также имеет метод setFileName() для задания пути к загружаемой модели, однако для его необходимо установить диапазон дистанции видимости, как для узла osg::LOD. При условии, что у нас имеется файл cessna.osg и низкополигональная модель уровня L1 мы можем организовать выгружаемую ноду следующим образом

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

При рендеринге внешне не видна разница между osg::LOD и osg::PagedLOD, если использовать только один уровень детализации модели. Интересной идеей будет организовать громадный кластер моделей Cessna, используя класс osg::MatrixTransform. Для этого можно использовать например такую функцию

Пример программы реализующей фоновую загрузку 10000 самолетов

main.h

main.cpp

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

lod ландшафта что такое

Заключение

Этот урок в цикле об OpenSceneGraph будет последним, выполненным в формате «How To». В рамках двенадцати статей удалось уместить базовые принципы работы и использования OpenSceneGraph на практике. Очень надеюсь, что данный движок стал более понятен русскоязычному разработчику.

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

Но я не прощаюсь, благодарю за внимание и до новых встреч!

Источник

СОДЕРЖАНИЕ

Историческая справка

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

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

Хорошо известные подходы

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

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

Подробная информация о дискретном уровне детализации

lod ландшафта что такое

Алгоритмы DLOD часто используются в ресурсоемких приложениях с небольшими наборами данных, которые легко помещаются в памяти. Хотя могут использоваться алгоритмы, не связанные с ядром, степень детализации информации не очень подходит для такого рода приложений. Этот тип алгоритма обычно легче запустить, поскольку он обеспечивает более высокую производительность и меньшую загрузку ЦП из-за небольшого количества операций.

Пример дискретного уровня детализации

Сравнение и измерения визуальных воздействий

670

Изображениеlod ландшафта что такоеlod ландшафта что такоеlod ландшафта что такоеlod ландшафта что такоеlod ландшафта что такое
Вершины140
ПримечанияМаксимальная детализация
для крупных планов.
Минимум деталей,
очень далекие объекты.

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

В следующей таблице сравнивается производительность рендеринга с учетом LOD и метода полной информации ( грубой силы ).

Сравнение и измерения визуальных воздействий

ГрубыйDLODСравнение
Визуализированные
изображения
lod ландшафта что такоеlod ландшафта что такоеlod ландшафта что такое
Время рендеринга27,27 мс1,29 мс21 × уменьшение
Вершины сцены2 328 480109 44021 × уменьшение

Иерархический LOD

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

Практическое применение

Видеоигры

В популярной игре о строительстве городов Cities: Skylines моды позволяют изменять уровень детализации.

В ГИС и 3D моделировании городов

Уровень детализации присутствует в ГИС и 3D моделях городов как схожая концепция. Он показывает, насколько тщательно были нанесены на карту особенности реального мира и насколько модель соответствует своему реальному аналогу. Помимо геометрической сложности, в LOD модели могут учитываться другие показатели, такие как пространственно-семантическая согласованность, разрешение текстуры и атрибуты. Стандартный CityGML содержит одну из самых известных категорий LOD.

Источник

Lod ландшафта что такое

lod ландшафта что такое

и так, сюда мы задаем самые наитупейшие вопросы (желательно с ответом, если знаете), в последствии, мы сделаем огромную такую ЧаВошку по программе! начинаем 😉

Q: какая видеокарта лучше для этой игры?
А: лучше NVidia (желательно, от 6хх версий), так как оптимизация игры сделана окончательно, на данный момент, именно для NVidia. конечно, вы можете пользоваться и решением от ATI, но тогда никто не гарантирует, что вы будете играть без багов.

Q: у меня топовая видеокарта! в баттлу на 300 FPS играю! а тут еле-еле 30 FPS выдает!
A: во-первых один компьютер даже с четырьмя топовыми видеокартами в SE выдаст вам не более 90 FPS. (так как стоит ограничение). если же вам не нравится, что игра держится на 5-8 FPS, просто понизьте настройки графики в настройках

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

Q: как найти землю.
А: нажмете F3, и в строке пишете «Earth». а можно Ctrl+h. сначала программа выделяет млечный путь, затем солнечную систему, затем землю.

Q: а солнце мне как найти?
А: точно так же: нажимаете F3, и в строке пишете «Sol». можно и способом, описанным выше.

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

Q: а в игре есть блуждающие планеты (планемо)?
A: нет. пока что, нет. скоро будет реализовано.

Q: а как сравнивать размер звезд?
А: ну уж точно, не на глаз. посмотрите на диаметр звезды в левом верхнем углу.

Q: а почему на глаз не сравнивают?
А: потому что это антинаучно XD

Q: Графика говорили обалденная.. А на деле фуфуфу. А можно сделать очень крутую графику??
A: конечно можно, это и есть суть SE! Во первых при генерации поверхности поставьте ползунок «LOD ландшафта» побольше. Ну и соответственно поставьте остальные настройки лучше. Главное не переусердствуйте, а то вашим компьютером можно будет дом отапливать.

Q: Почему у планет Солнечной системы отвратительные текстуры поверхности?
A: дело в том, что текстуры —это реальные фотографии Земли/Марса/Луны/etc. И сейчас технологии фотографирования естественно не соответствуют таким требованиям (максимально точное фотографирование) да и весить текстура будет ну не меньше 300Гб. Поэтому смысла нет. Планировалось, что текстуры всех планет будут генерироваться, но это позже. Намного позже.

Q: а карта высоты? Она тоже плохая?
A: они не плохие, просто недостаточно качественные. Но проблема с картами высот такая же, как и с текстурами, да.

Q: Я скачал пак качественных текстур для планет Солнечной системы, но текстуры все равно мыльные. Что делать?
A: Собственно, ничего. Это максимум, что на данный момент можно получить.

Q: а в игре машины будут?
A: ну вообще планировали. Но пока есть и другие дела, поважнее машин. Машинки будут 100%, но не скоро.

Q: Не могу найти ни одной Черной дыры. Как их искать и есть ли они вообще в SE?
A: Есть и во множестве! Они как правило находятся в центрах галактик и в звездных скоплениях. Также их можно искать через браузер звезд или на карте. Единственные совет при поиске черных дыр: маловероятно, что вы тыкая по звездам наткнетесь на черную дыру (таким способом черную дыру найти сложнее, чем циркониевую звезду), так что лучше пользуйтесь поиском звезд в окружении. Это проще.

Q: А почему симулятор не понимает русского языка?

Источник

Вопрос начинающим и не очень пользователям Spase Engine.

Но сначала небольшая ремарка минусаторам. Дорогой рядовой пикабушник! Если ты не знаешь что такое Spase Engine (это такой симулятор космоса) то ты логично не можешь помочь мне в возникших вопросах. Просто листай дальше и не ставь ничего этому посту. Если же все таки тебя заботит как бы мой ретинг не поднялся на пару плюсиков то я ничего сделать не могу: на данный момент рейтинг моего аккаунта минус 65 и я даже не могу оставить коменты для минусов.

Вопрос второй.
Поиск объектов осуществляется только на латинице и это никак не изменить? Если да то возникает вопрос а где же мне найти список оригинальных названий интересных космических объектов? Если например что такое Earth, Moon, Saturn, Jupiter, Sirius и т.п. знает любой болван то названия туманностей, черных дыр, нейтронных звезд и галактик приходится искать в педевикии а это долго и нудно.

Я очень надеюсь получить ответ хотя бы на малую часть своих вопросов прежде чем утону в минусах. Заранее благодарю всех отписавшихся по делу. Всем лучей добра 😀

LOD — Levels Of Detail, чем дальше объект, тем меньше он детализирован, а совсем далекие объекты рисуются в виде спрайтов. На максимальных настройках все объекты предстают в оригинальном 3D.

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

«Наткнулся я на днях на этот пост и в тот же вечер поставил Spase Engine версии 9.7.2»

пост про Space Engine, а ты поставил Spase Engine. Где логика?

lod ландшафта что такое

Подробный отзыв

lod ландшафта что такое

lod ландшафта что такое

Если съесть ментос и запить колой, то будет больно

lod ландшафта что такое

The Russian Шерлок Холмс и Доктор Ватсон

lod ландшафта что такое

Когда мне однажды сказали, что я зря не смотрел фильм “Шерлок Холмс и Доктор Ватсон”, так как сама Королева Елизавета II считала сериал из самых лучших, я не сразу поверил.

А вот зря… Её Величеству так понравился он, что она сделала главного актера почётным членом ордена Британской империи.

Зря ты не верил, Крэйг, very зря.

Ну вот. Меня многажды просили написать пост про ваш сериал. Вот пишу!

После первого эпизода, я решил сравнивать несколько британских версии с вашей и посмотрел несколько. И мне и моему патриотизму стало грустно. Я хорошего сериала (кроме современного, который попкорнуемый, но и у него есть некие недостатки) не нашел.

Знаете, когда смотришь на какую-то работу и прямо чувствуешь отсутствие души в ней? Все старые английские холмсы выглядит как будто их создали так:

— Нам нужен снимать какой-то фильм, любой, в принципе.

— Оригинальной идеи нет, посмотрим уже существующие рассказы.

— Сделаем из Ватсона толстого идиота, чтобы Холмс казался умным.

В этих сериалах нет души, нет харизмы, нет оригинальности. Я думаю можно спросить любого англичанина какие он помнит фильмы про Холмса и он сможет сказать только Sherlock или «эти там с Дауни Джуня».

Cheap, forgettable, lifeless.

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

Мне кажется, что сценаристы не знали как показать гениальный разум Холмса и решили сделать Ватсона (который в книге вполне умный и интеллигентный человек) тупым в сравнении. А на самом деле, единственный способ показать какой Холмс гениальный, это когда умный и способный Ватсон удивляется при его способностями! Так и сделали в советской версии.

Он интересный и активный участник в истории, не просто какой-то человек-фон. И директор кастинга (ФИО не мог найти) сделал отличный выбор когда взял Соломина. У него такая английская физиономия, он прямо выглядит как офицер в Британской Армии. Смотрите фото тут.

Так, про самого Холмса… Наши актеры играют его… как сказать… без особого энтузиазма или таланта. И сценаристы плохо пишут его реплики.

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

Про правило «show, don’t tell», они не знали видимо. Ну и как писать реплики, которые похожи на человеческую речь тоже еще не знали.

Все, дальше не буду говорить про британские версии. Никто же давно про них не говорит.

Про саундтрек только могу хлопать ладонями как морской котик. Клавикорд дает нужную атмосферу)) ну и остальные инструменты тоже😊 В. Дашкевич тоже хотел создать что-то настоящее, а не просто «музыку для забываемого сериала».

Дополнительный хлопы ладонями за сцены где герои пьют Sherry у камина

lod ландшафта что такое

lod ландшафта что такое

lod ландшафта что такое

lod ландшафта что такое

lod ландшафта что такое

lod ландшафта что такое

lod ландшафта что такое

Неважно зачем, но мне нужна эта вещь. Пикабу, помоги найти!

Почти всё перепробовали

lod ландшафта что такое

Разрушители мифов

Поделилась знакомая историей.

Работает на заводе генерирующим булки, хлеба и прочего жевательно-глотательного.

Дошла до завода очередь вакцинации.

По словам знакомой, какие только мифы не рассказывали про вакцинацию. Но в итоге все решили, что хуже не станет и решили уколоться.

После вакцинации спустя три месяца началась повальная беременность. Довольно много ушло в декрет.

Начальство в шоке. Раньше если уходило в отпуск от силы две-три женщины раз в пятилетку А тут сразу полцеха, и молодые и в возрасте.

Все оказалось просто. Кто-то пустил новый миф, что невозможно забеременеть. Женщины и решили, сразу после вакцинации лично проверять этот миф. Оказывается можно.

lod ландшафта что такое

lod ландшафта что такое

lod ландшафта что такое

Зато на входе сэкономил.

lod ландшафта что такое

lod ландшафта что такое

Платный автозапуск

lod ландшафта что такое

lod ландшафта что такое

lod ландшафта что такое

Бессовестные

lod ландшафта что такое

Ответ на пост «Уколы»

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

lod ландшафта что такое

lod ландшафта что такое

Плохо вытирал

lod ландшафта что такое

lod ландшафта что такое

Или хуже)

lod ландшафта что такое

lod ландшафта что такое

Пикабу образовательный

Grammar nazi не гадуют

lod ландшафта что такое

lod ландшафта что такое

Довыё.

lod ландшафта что такое

В Югре мигрантам запретили работать в качестве водителей такси и других видов общественного транспорта, постановление подписано губернатором ХМАО Натальей Комаровой.

Мигрантам запретили также вести деятельность по предоставлению продуктов питания и напитков и в сфере образования.

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

lod ландшафта что такое

Вызывайте антрополога!

lod ландшафта что такое

Вдогонку про бабок в очереди к гинекологу

lod ландшафта что такое

О важности правильных сравнений

lod ландшафта что такое

lod ландшафта что такое

Ответ на пост «Неочевидные выводы из очевидной ситуации»

lod ландшафта что такое

Что делать мужику 37 лет, если ты ничего не достиг? страшно.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *