Итак… Вышел Prepar3Dv5 Hotfix 1. Для большинства из симмеров это лишь «заплатка», но на самом деле это обновление несет в себе куда больше и сейчас я попробую об этом рассказать, основываясь на своих знаниях и на знания одного специалиста из Сербии и моего «связного» в LM.
· Как установить?
Да, в отличие от многих других сервис-паков тут история не столь простая. Раньше можно было просто удалить, а потом установить компоненту «Client» и этого хватало, то с выходом 5.0.24.34874 рекомендуется полная переустановка. Путей у вас два: можно полностью «обнулить» (хе-хе) систему и накатить все с самого начала, а можно просто удалять и устанавливать обновленные компоненты. Для этого скачивайте весь архив, распаковывайте и вместо Setup_Prepar3D.exe воспользуйтесь файлами: Install_Client.msi, Install_Content.msi, Install_Scenery.msi. Да, что-то после этого может пострадать, но с вероятностью 99% восстановление симулятора в «рабочее состояние» у вас при этом займет не более часа. У меня лично это все заняло ровно 60 минут с учетом загрузки дистрибутива, процесса удаления/установки и выполнения процедуры верификации файлов в Orbx Central.
Из самого важного при этом варианте установки это удалить файл prepar3d.cfg находящийся в папке AppData\Roaming\Lockheed Martin\Prepar3D v5. Не переживайте, при следующем запуске игры он восстановится.
И еще очень важно очистить папку шейдеров. Она находится тут: AppData\Local\Lockheed Martin\Prepar3D v5\Shaders.
ВНИМАНИЕ: УДАЛЯЙТЕ СОДЕРЖИМОЕ ПАПКИ, А НЕ ЕЁ САМУ!
Промежуточный чекпоинт:
Мы обновили и подготовили к запуску сам симулятор, но дважды кликать по ярлыку на рабочем столе еще рано.
· Обновите драйвера видеокарты
Даже если у вас установлены самые распоследние драйвера, то однозначно стоит сделать удаление драйверов с использованием Display Driver Unistaller. История такова, что драйвера видеокарты иногда в себе держат прошлые шейдеры и если у вас нет утилиты для очистки кэша шейдеров, то DDU ваш путь.
Еще раз: это не очистка папки, это «чистка видеокарты».
И хоть я и позволяю себе эксперименты с этим, но вам однозначно советую ставить последние или предпоследние СТАБИЛЬНЫЕ драйвера от производителя вашего видеоадаптера. Инструкции про то, как использовать DDU я уже писал и думаю на этом останавливаться не стоит.
Промежуточный чекпоинт:
Мы подготовили наш видеоадаптер. И помните, что если вам хочется получить все новые возможности Prepar3Dv5 вам необходимо минимум 4Гб VRAM.
· Variable Refresh Rate
Ну вот теперь поговорим о высоком, о том, что многие из вас не заметили, не поняли и прочее, а точнее о том, что же там нового в 5.0.24.34874. Первым делом про Variable Refresh Rate или VRR. Многие из вас слышали про технологии G-Sync (NVIDIA) и FreeSync (AMD). И хоть технологии не новые, но полноценной их поддержки еще не предложил ни один симулятор (в полноценном виде). До сегодняшнего дня. Теперь оптимизация фреймрейта которую вы настроите в NVIDIA Control Panel или AMD Adrenalin больше не будет «сферической настройкой в вакууме». То есть, да, огромный перечень настроек и что еще важнее поддержка этих технологий теперь будут влиять на то, что вы получите в игре. «А у меня включено, но не работает ничего», скажет кто-то из моих читателей. А я в ответ задам вопрос: Друг, а ты точно уверен, что твоя пара «видеокарта-монитор» поддерживают одну из перечисленных технологий? Про «зеленых» могу сказать так: есть мониторы ПОДДЕРЖИВАЮЩИЕ данную технологию и есть СОВМЕСТИМЫЕ, а есть не заявленные в списке совместимых УСЛОВНО ПОДДЕРЖИВАЮЩИЕ.
Промежуточный чекпоинт:
Мы можем начать использовать больше возможностей драйвера видеокарты без дополнительных утилит (я знаю, что есть еще тут те кто использует NVIDIA Inspector), если у вас есть монитор с поддержкой G-Sync или FreeSync, то теперь эта технология будет работать и в Prepar3D, мы получили мощный инструмент который в ближайшее время оценят владельцы VR, а если эту технологию будут использовать еще и разработчики сложных самолётов со «стеклянной кабиной», то Flight Sim Labs перестанет показывать 20FPS и будет весьма плавным.
· Dynamic Texture Streaming
Второе важное нововведение в симуляторе от Lockheed Martin и опять же очень важное. Вы же слышали такое словосочетание как «MIP Mappings» или «MIP текстурирование». Если говорить максимально простым языком, то это метод процесса текстурирования использующий несколько копий ОДНОЙ текстуры с РАЗНЫМ разрешением.
Кому хочется сложно, то вот:
Это формула расчета выбора необходимой текстуры с учетом расстояния до объекта, но меня же читают дети, а поэтому больше не буду так пугать.
Суть в том, что симулятор показывает нам разные текстуры в зависимости от нашего удаления от объекта, то есть чем мы ближе тем выше разрешение, чем дальше, тем ниже. Логично, правда? Зачем мне домик с разрешением текстур 4096*4096, если до него еще 10 километров? Обсчет этой математики идет всеми возможностями вашего ПК: процессором, видеокартой, оперативной памятью (а я много раз говорил про этот момент, но меня не слушали). А еще с этим сталкивались все в этой группе: помните тормоза при повороте головы или смене видов, черные здания при смене камеры, падение FPS при приближении к аэропорту или городу с плотным автогеном. Знакомо? Я так и думал. Кстати, мерцание текстур тоже с этим связано. У этого даже есть название в индустрии – Z-Fighting.
И снова знакомый термин – LOD Radius (или LOD Level). В настройках симулятора эта опция находится в разделе «World» и носит название «Level of detail radius». И вот почему это важно, потому что в Prepar3Dv5 есть DirectX 12. Помните массовое помешательство на майнинге, когда купить видеокарту стало сложно и цены на них взлетели? Знаете, почему майнеры брали именно видеокарты? Потому что «считать» они умеют намного быстрее процессора! И вот как раз-таки DirectX 12 и привносит расчеты текстур на видеокарту. И теперь достаточно определить минимальные и максимальные значения текстур, «отдать» их видеокарте для обсчета. И опять же это не все! Все остальные переменные (помните формулу выше?) тоже можно отдать видеокарте! А к чему это ведет? Правильно! К разгрузке ЦП, ОЗУ и даже линий PCI-E (а именно они связывают видеокарту и процессор).
Промежуточный чекпоинт:
Не прорыв ли это для авиасимуляторов с открытым миром? Конечно! Но вот проблема в снова в сторонних разработчиках, как они поступят с этим? Будут ли использовать? А может просто портируют существующие решения без каких-либо изменений? Я не буду рекламировать, но кое-кто из авторов уже это понял и использует, его работы меня радуют в плане цифр на счетчике FPS, а кто-то (и печально, что это очень уважаемая студия) решил сделать вид, что ничего не поменялось и его красивые аэропорты безбожно тормозят.
· Compressed Index Buffers
А это что за зверь? А это друзья опять же новая вещь для авиасимуляторов, часть DirectX 12. Методика рисования объектов.
И тут я обращусь к труду человека по имени Милан Путник, который понимает в этом больше моего и с его позволения я приведу его примеры.
Итак… Нам надо нарисовать треугольник. Мы должны определить три его вершины или точки. Вот какую инструкцию получает ваша видеокарта:
{-0,5, 0,5, 0,5}, // верхняя левая точка
{0.5, -0.5, 0.5}, // нижняя правая точка
{-0,5, -0,5, 0,5}, // нижняя левая точка
А если нам нужен квадрат? То мы рисуем два треугольника отраженных вертикально:
// первый треугольник
{-0,5, 0,5, 0,5}, // верхняя левая точка
{0.5, -0.5, 0.5}, // нижняя правая точка
{-0,5, -0,5, 0,5}, // нижняя левая точка
// второй треугольник
{-0,5, 0,5, 0,5}, // верхняя левая точка
{0.5, 0.5, 0.5}, // верхняя правая точка
{0.5, -0.5, 0.5} // нижняя правая точка
И все что вы видите в вашем симуляторе: терминал, крыло, маршарллер на стоянке состоит из этих самых треугольников или точек. И получая координаты этих точек ваша видеокарта «рисует» картинку.
Но ведь при отрисовке треугольников у нас есть одна проблема: лишние строки. Всего две. Казалось бы мелочь, но ведь отрисовать квадрат лучше вот так:
{-0,5, 0,5, 0,5}, // верхняя левая точка
{0.5, -0.5, 0.5}, // нижняя правая точка
{-0,5, -0,5, 0,5}, // нижняя левая точка
{0.5, 0.5, 0.5} // верхняя правая точка
Если я не ошибаюсь, то 4 меньше 6. Согласны? Теперь осталось дело за малым, «объяснить» видеокарте как именно, в каком порядке рисовать линии от точек. Ведь именно отрисовка и создает картинку. И тут вступает в игру технология «Index Buffer». Мы создаем достаточно простую директиву:
позиции 0, 1, 2, // первый треугольник
позиции 0, 3, 1 // второй треугольник
И… Всё! Магия! Мы определили точки, мы определили «маршрут» рендеринга и разгрузили вычислительные мощности нашего компьютера если не на половину, то очень и очень сильно.
Промежуточный чекпоинт:
Новые возможности для рендеринга с ростом FPS это очень здорово, по сути дела сейчас меня лучше всех понимают… Иксплейнщики. Да, ребята, вы! Вы ждете релиза API Vulkan который по сути дела привнесёт это в ваш симулятор. Просто Prepar3D это полностью Windows решение и поэтому DirectX, а мултиплатформенность X-Plane 11 вынуждает (плохое словно, но как придумал) Laminar Research искать решение которое будет успешно работать в Windows, Linux, macOS и поэтому Vulkan.
Итоги и выводы
Пора бы закругляться и подводить итоги, я понимаю, что бумага все стерпит, но вы и так редко читаете что-то длиннее трех предложений…
Сейчас возникла ситуация схожая с переходом Prepar3D на x64. Разработчики стоят на перепутье, они могут пойти старым и проверенным путем: просто сделать конвертацию своих продуктов с минимальными затратами по деньгам, по времени и рискам, а мы получим все тот же симулятор просто с «новыми облачками и никому не нужной водичкой» о чем уже было сказано в этой группе неоднократно. А можно взять тайм-аут, изучить Direct X 12 и создать что-то абсолютно новое, которое сможет получить «100 FPS на максиалках». Ведь, по сути, сейчас симулятор от Lockheed Martin предлагает совершенно другой метод обработки данных, который призван снизить нагрузку на отдельные компоненты вашего компьютера, который позволит раскидывать ее более грамотно (у каждого ядра, у каждого конвейера будет СВОЯ задача). Это не просто шаг вперед, это новая эпоха которая по своей сути является первым шагом Lockheed Martin по расставанию с наследием Microsoft Flight Simulator X (которое все больше и больше проникает в MSFS2020, кстати) и сейчас мяч на стороне разработчиков дополнений, может быть не в текущей версии, но в Prepar3Dv6 мы получим мечту тысяч симмеров и сбудуться мечты тех из нас кто в этом хобби уже не первый десяток лет.
Спасибо за помощь в написании материала:
· Милану Путнику
· Кристоферу Метелю из Lockheed Martin
Господа, для меня честь быть знакомым с вами и работать с вами!
Спасибо Алексей.
Пожалуйста, но я Александр))))
Ну тогда держи… «будут ли разработчики использовать….», ЛМ предоставляет интерфейсы для взаимодействия с их системой, это типовые сервисы сформированные в API, которые в свою очередь собраны в SDK. Так вот владелец системы создавая интерфейсы, формирует и спецификации этих интерфейсов, а именно формат и состав данных, которые он хочет видеть. И тут уже не пмдг/фслабс и прочим решать, будут ли они использовать или нет. Если ЛМ дают выбор, то выбор не должен влиять на работу системы в целом, но мы пока видим только собранный из говна и палок продуктик, на который в спешном порядке лепят непонятно что. 5-й препар — это сборка кучи разных новых компонентов, которые,кмк, должны были выходить постепенно в виде мажорных обнов (5.1,5.2, etc). Давая время на отладку и фиксы. По факту, какой-то недалекий маркетолог сунул все в один релиз, что привело к глобальному ахтунгу, по итогу релизу идёт третья неделя, а пользователи сидеть без самолетов (о совместимости которых заявили многие, и да перекладывание файлов не вариант, это такая же заплатка). Я очень уважаю ЛМ за проделанную работу, и следил/пользовался ещё с первой версии этого симулятора. Но релиз пятерки — огромный факап.
И вот, Александр, вся эта статья написана в духе того самого обосравшегося маркетолога, благодаря которому мы имеем, то что есть. Мол «ребят, у нас вот есть это и это, и то» и ты веришь, ты же уже 7 лет в препар, да есть косяки, но терпимые, ну подумаешь ночью нельзя летать потому что самолёт взлетает, а фпс нет. И ты нажимаешь купить, жирная рука вынимает из твоего кошелька 5400 рублей, заходишь в личный кабинет, качаешь, запускаешь и понимаешь, что тебе просто в душу отложили личинку за твои же кровные.
Простите, но что то тут не так. Я не хотел покупать пятый препар, но посмотрел видео в ютубе и заметил, чио уж больно хорошо там летается на аналогичном моему недообновленном железе. Купил. Самолетов официально нет, правильно, ActiveSky нет, EZCA уже второй бета билд совместимый выпустила, SpadNext тоже обновился под пятерку, но кривовато. Включил мониторинг. Первое, что нашел — 8ГБ оперативки мало, постоянный своппинг на диск идет. Вытащил из другого компа родные 16 — другое дело. Дальше — видеокарта теперь работает, по полной. А вот ее я уже поменял на 2080 Супер. И — при очень тяжелых настройках система на древнем i7 мне показываеи офигительные fps и офигительные картинки. Сцены платные, тяжеловатые, для пятерки не адаптированные никак стоят. Да, не знаю, что будет с PMDG. Трафик стоит ого-го какой, типа MNT, индусский бесплатный, на трекере товарищ выложил сборку свою, а у индусов модели современней и тул как бы хороший прилагается. Система потянула даже не сжатые структуры большого расширения из envtex. Не понимаю, о каком быстродействии и fps Вы говорите. Пятерка это рывок в быстродействии после 4.5 во всяком случае для мощных видеокарт.
Сырость — согласен. Почему — понимаю, надо было зарелизить до MSFX2020 (но я уверен, что майкрософт отрелизит еще более сырой продукт). Но вот огульно я бы хаять пятерку бы не стал.
Большое спасибо Вам за труды и советы! Отличная статья.
Но по мне так нет смысла переходить на 5-ю версию. Не версия, а шлак. Дикие тормоза, фризы, мерцание текстур, полное отсутствие производительности и ухудшение картинки. Как какая-то ужасно сырая бета неоптимизированная новой игры. Летать невозможно. Кто сидит на версии 4.5, переходить не советую. Ничего не выиграете, а только потеряете. Нового и хорошо ничего нет особо, все через одно место работает. Ужас.
Спасибо, Александр, очень интересно. Немного отсебятины: полная переустановка препара и использование exe установщика не потребовала вообще каких-то действий после переустановки, сам удивился — все аддоны на месте, последовательность не нарушена, настройки до переустановки сохранены полностью.
Новые технологии. Есть такая бесплатная сцена Хельсинки Мальми, она представляет собой переконвертацию еще в fs2004 сцены в 4-й препар. И вот там до патча, встав мордой в сторону не то города, не то аэропорта Ваантаа, не то странноватой модели ангара распрекрасные fps на дефолте падали аж да 3-6, да, на пятом препаре. Повернув морду или самолет наблюдался рост fps аж до 60, нормальных для этой сцены. После установки патча этот эффект ушел.
Снизился расход видеопамяти чуть не на гиг. Препар на дефолтном самолете, но с ORBX и прочим плавно работает на невиданных ранее настройках и радует офигительными видами. Работает ли VRR сказать не могу, монитор с G-Sync, но как это должно быть выражено не знаю.
Остался только один существенный минус — первое ядро традиционно загружено на 100 процентов при отлынивании от работы остальных.
Ну я прокатывал Orbx, потому что часть я ставил в папку симулятора (так надо было по условиям прошлого теста), а так да… Кто умный тот уже давно хранит все аддоны ВНЕ папки самой игры и после переустановки они подключаются в момент.
Про загрузку ядра в курсе, уже собирают информацию об этом.
«Это формула расчета выбора необходимой текстуры с учетом расстояния до объекта, но меня же читают дети, а поэтому больше не буду так пугать»
так для кого статья с этими никому не нужными формулами …для детей …может лучше писать в детских книжках эту ахинею и там их пугать.
А вот эта похабщина кому тут адресована:
« но вы и так редко читаете что-то длиннее трех предложений»? Если разработчикам, то автора они уже про себя послали далеко, когда он учился писать, многие уже делом занимались, если читателям этого ресурса, то думаю большинство тут не оценит такой плоский школьный юмор уровня физрука.
Вот ничоси… Леша! Я мог ожидать такой коммент от Йофича, но точно не от тебя)