Prepar3Dv5 Hotfix 1: просто о сложном

Prepar3Dv5 Hotfix 1: просто о сложном

02.05.2020 10 Автор AlexZander_D

Итак… Вышел 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.

Prepar3Dv5 Hotfix 1: просто о сложном, изображение №1

Из самого важного при этом варианте установки это удалить файл prepar3d.cfg находящийся в папке AppData\Roaming\Lockheed Martin\Prepar3D v5. Не переживайте, при следующем запуске игры он восстановится.

Prepar3Dv5 Hotfix 1: просто о сложном, изображение №2

И еще очень важно очистить папку шейдеров. Она находится тут: AppData\Local\Lockheed Martin\Prepar3D v5\Shaders.

Prepar3Dv5 Hotfix 1: просто о сложном, изображение №3

ВНИМАНИЕ: УДАЛЯЙТЕ СОДЕРЖИМОЕ ПАПКИ, А НЕ ЕЁ САМУ!

Промежуточный чекпоинт:

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

· Обновите драйвера видеокарты

Даже если у вас установлены самые распоследние драйвера, то однозначно стоит сделать удаление драйверов с использованием Display Driver Unistaller. История такова, что драйвера видеокарты иногда в себе держат прошлые шейдеры и если у вас нет утилиты для очистки кэша шейдеров, то DDU ваш путь.

Еще раз: это не очистка папки, это «чистка видеокарты».

Prepar3Dv5 Hotfix 1: просто о сложном, изображение №4

И хоть я и позволяю себе эксперименты с этим, но вам однозначно советую ставить последние или предпоследние СТАБИЛЬНЫЕ драйвера от производителя вашего видеоадаптера. Инструкции про то, как использовать 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 больше не будет «сферической настройкой в вакууме». То есть, да, огромный перечень настроек и что еще важнее поддержка этих технологий теперь будут влиять на то, что вы получите в игре. «А у меня включено, но не работает ничего», скажет кто-то из моих читателей. А я в ответ задам вопрос: Друг, а ты точно уверен, что твоя пара «видеокарта-монитор» поддерживают одну из перечисленных технологий? Про «зеленых» могу сказать так: есть мониторы ПОДДЕРЖИВАЮЩИЕ данную технологию и есть СОВМЕСТИМЫЕ, а есть не заявленные в списке совместимых УСЛОВНО ПОДДЕРЖИВАЮЩИЕ.

Prepar3Dv5 Hotfix 1: просто о сложном, изображение №5

Промежуточный чекпоинт:

Мы можем начать использовать больше возможностей драйвера видеокарты без дополнительных утилит (я знаю, что есть еще тут те кто использует NVIDIA Inspector), если у вас есть монитор с поддержкой G-Sync или FreeSync, то теперь эта технология будет работать и в Prepar3D, мы получили мощный инструмент который в ближайшее время оценят владельцы VR, а если эту технологию будут использовать еще и разработчики сложных самолётов со «стеклянной кабиной», то Flight Sim Labs перестанет показывать 20FPS и будет весьма плавным.

· Dynamic Texture Streaming

Второе важное нововведение в симуляторе от Lockheed Martin и опять же очень важное. Вы же слышали такое словосочетание как «MIP Mappings» или «MIP текстурирование». Если говорить максимально простым языком, то это метод процесса текстурирования использующий несколько копий ОДНОЙ текстуры с РАЗНЫМ разрешением.

Кому хочется сложно, то вот:

Prepar3Dv5 Hotfix 1: просто о сложном, изображение №6

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

Суть в том, что симулятор показывает нам разные текстуры в зависимости от нашего удаления от объекта, то есть чем мы ближе тем выше разрешение, чем дальше, тем ниже. Логично, правда? Зачем мне домик с разрешением текстур 4096*4096, если до него еще 10 километров? Обсчет этой математики идет всеми возможностями вашего ПК: процессором, видеокартой, оперативной памятью (а я много раз говорил про этот момент, но меня не слушали). А еще с этим сталкивались все в этой группе: помните тормоза при повороте головы или смене видов, черные здания при смене камеры, падение FPS при приближении к аэропорту или городу с плотным автогеном. Знакомо? Я так и думал. Кстати, мерцание текстур тоже с этим связано. У этого даже есть название в индустрии – Z-Fighting.

Prepar3Dv5 Hotfix 1: просто о сложном, изображение №7

И снова знакомый термин – LOD Radius (или LOD Level). В настройках симулятора эта опция находится в разделе «World» и носит название «Level of detail radius». И вот почему это важно, потому что в Prepar3Dv5 есть DirectX 12. Помните массовое помешательство на майнинге, когда купить видеокарту стало сложно и цены на них взлетели? Знаете, почему майнеры брали именно видеокарты? Потому что «считать» они умеют намного быстрее процессора! И вот как раз-таки DirectX 12 и привносит расчеты текстур на видеокарту. И теперь достаточно определить минимальные и максимальные значения текстур, «отдать» их видеокарте для обсчета. И опять же это не все! Все остальные переменные (помните формулу выше?) тоже можно отдать видеокарте! А к чему это ведет? Правильно! К разгрузке ЦП, ОЗУ и даже линий PCI-E (а именно они связывают видеокарту и процессор).

Еще записи по этой теме  А вот и FlyTampa отчиталась
Prepar3Dv5 Hotfix 1: просто о сложном, изображение №8

Промежуточный чекпоинт:

Не прорыв ли это для авиасимуляторов с открытым миром? Конечно! Но вот проблема в снова в сторонних разработчиках, как они поступят с этим? Будут ли использовать? А может просто портируют существующие решения без каких-либо изменений? Я не буду рекламировать, но кое-кто из авторов уже это понял и использует, его работы меня радуют в плане цифр на счетчике 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 // второй треугольник

Prepar3Dv5 Hotfix 1: просто о сложном, изображение №9

И… Всё! Магия! Мы определили точки, мы определили «маршрут» рендеринга и разгрузили вычислительные мощности нашего компьютера если не на половину, то очень и очень сильно.

Промежуточный чекпоинт:

Новые возможности для рендеринга с ростом 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

Господа, для меня честь быть знакомым с вами и работать с вами!

2 359 Просмотров