Modding:Краткое руководство по Morrowind Graphics Extender

Материал из Tiarum
Перейти к: навигация, поиск
Morrowind Graphics Extender
45px-Scroll.png

автор: TJ (ака Иван II) и Владимир
редактор: Roland, Garin
ccылка на оригинал: Morrowind Graphics Extender
ссылка на сайт: The Elder Scrolls Modding
ver: 0.1


Предисловие (Garin):


Статья опубликована с любезного разрешения авторов. Респект, TJ и Владимир!

Статья написана несколько лет назад, на тот момент MGE имел версию 3.0.3. В настоящее время последняя версия MGE v3.3.2.

В данной статье TJ написал раздел об основных возможностях MGE v3.0.3, а Владимир осветил вопросы подключения и использования этой программы.


Примечание (TJ):


Статью по MGE не мешало бы обновить в связи с тем, что сама программа уже ушла далеко вперед со времен версии 3.0.3. =) Хотя может кто-то новую статью напишет, программа того достойна, а с технической стороны вызывает у новичков немало вопросов. Следует отметить, что 3.0.3 - это лишь начальные наработки Timeslip и Ко, особенно в отношении DistandLand'а


Ссылки:




Morrowind Graphics Extender

Революционные возможности в графике The Elder Scrolls III

Некоторое время назад на свет появилась обновленная версия (3.0.3.) программы «Morrowind Graphics Extender» (далее - MGE), которая является творением рук Timeslip (сайт) и еще целой группы людей. Эта программа предоставила доселе немыслимые возможности в улучшении графики The Elder Scrolls III. Однако по сей день многие люди еще ничего не слышали об MGE, а многие из тех, кто слышал, не могут понять, как ею пользоваться. Именно поэтому в данной статье мы попытаемся максимально подробно рассмотреть главные возможности MGE 3.0.3 и понять, как их использовать.


Что такое MGE и каковы ее основные возможности?

Morrowind Graphics Extender можно определить примерно так – это утилита, использующая возможности DirectX для улучшения графики, и позволяющая производить расширенное изменение основных графических и звуковых настроек TES III. К основным возможностям MGE в области графики относится возможность применения и тонкой настройки:

  • пиксельных шэйдеров
  • HDR – динамического освещения
  • антиалиазинга, т.е., сглаживания
  • анизотропной фильтрации
  • вертикальной синхронизации

Также MGE позволяет при желании запускать игру при 16-тибитном цвете и играть без звуковой карты. Ранее все это было недоступно. Замечательной способностью MGE является возможность ее совместной работы с утилитой «Morrowind FPS Optimiser». Однако и это еще не все. Самой интересной и «революционной» возможностью MGE является Distant Land (далее – Удаленный Ландшафт), то есть функция, позволяющая значительно увеличить дистанцию обзора в игре и видеть ландшафт местности, находящейся на очень большом от игрока расстоянии.


Distant Land (Удаленный Ландшафт)

Впервые функция Distant Land появилась в The Elder Scrolls IV: Oblivion. И эта возможность, когда взгляд игрока упирался не в туман, а в линию горизонта, неоднократно называлась большим прорывом в графике мира Elder Scrolls, в сравнении со 100-метровой дистанцией обзора в TES III. Отныне, благодаря MGE, функция Distant Land пришла и на просторы Морровинда, поэтому теперь, забравшись на высокий холм, мы сможем оглядеть весь остров, увидеть Красную Гору из Вивека и Солтсхейм с побережья Вварденфелла. А теперь давайте попробуем подробно рассмотреть возможности Distant Land в Морровинде в сравнении с одноименной функцией Обливиона.


Достоинства Удаленного Ландшафта в MGE

Первым и самым главным достоинством Distant Land в MGE является красота просторов острова Вварденфелл. Картина великолепна!


Скриншот Обливиона:

Скриншот Обливиона


Скриншот Морровинда:

Скриншот Морровинда


Вид на Горы Валус с Нибенейской долины:

Скриншот Обливиона


Вид на Красную Гору с Западного Нагорья:

(дальность обзора 3 ячейки, дальность до тумана 10 ячеек)

Скриншот Морровинда


Вторым достоинством системы Distant Land в MGE является тот факт, что она (при разумных настройках) практически не влияет на ФПС. Мы не делали точных замеров, но могу сказать, что ощутил лишь самое минимальное влияние Distant Land на уровень производительности.

Третьим достоинством Distant Land в MGE является возможность его тонкой настройки вручную, исходя из ваших запросов к красоте картинки и возможностей компьютера. В Обливионе такая возможность отсутствует.


Во-первых, в зависимости от возможностей вашего компьютера и ваших потребностей вы можете самостоятельно выбрать, насколько высокой будет степень детализации удаленного ландшафта (степень детализации моделей и размер текстур);

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

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

Таким образом, система Distant Land в MGE гораздо более гибкая, чем в Обливионе.


Недоработки Distant Land в MGE

Первое

Сначала опишем то, к чему нужно стремиться. Систему Удаленного Ландшафта с Обливионе образуют три составляющих:

  • сам удаленный ландшафт, Эта составляющая способна отображать только сам ландшафт местности, то есть высоты и низменности, воду и вид почвы. При генерировании моделей мира Distant Land учитывается только ландшафт, даже самые крупные объекты окружающего мира, как, например, статика (Static) не учитываются.
  • удаленные деревья, Эта составляющая способна при помощи простых текстур отображать некоторые деревья, находящиеся на очень большом расстоянии от игрока. Удаленные деревья «растут» на самом удаленном ландшафте.
  • удаленные здания, Эта составляющая способна получать информацию о крупных объектах статики, зданиях, городских сооружениях, находящихся на большом от игрока расстоянии и отображать их (но другие крупные объекты, кроме статики не отображаются).


Таким образом, все три элемента в Обливионе дают просто великолепную картину. Поэтому красотами Сиродиила можно любоваться часами.

В MGE система Distant Land на сегодняшний день исчерпывается только лишь возможностью отображать сам удаленный ландшафт. В игре это выглядит так (на скриншоте данмерская крепость Хлоромарен).


Скриншот Морровинда


Второе

Еще одним маленьким недочетом является особенность обработки и прорисовки объектов (статика, предметы), которые попадают в границы видимости игрока. Эти объекты, как бы «выплывают из ниоткуда», постепенно появляясь по частям. Порой это выглядит не очень эстетично.

Вот что мы видим, подлетев поближе к крепости:


Скриншот Морровинда


В то же время в Обливионе объекты, попадая в поле видимости игрока, появляются сразу целиком. Однако это можно исправить, если использовать MGE совместно с fps Optimiser’ом.


Третье

Еще одним недостатком Distant Land в MGE, и на это указывают и сами авторы, называя свою воду словом «crap», является некорректное отображение удаленной воды, а точнее, через сотню метров красивая шейдерная водичка Морровинда резко превращается в простую синюю текстуру. Но авторы надеются исправить это в будущих версиях. В игре это выглядит так.


Однако это не повод расстраиваться. Впервые функция Distant Land появилась в MGE версии 2.6 и, как показывает практика, она постоянно совершенствуется, что дает все основания надеяться на то, что в будущем все недоработки будут исправлены и возможности системы Удаленного Ландшафта будут расширены. Совсем недавно нам стало известно, что авторы в будущих версиях MGE обещают дополнить Distant Land системой удаленных зданий!


Впрочем, все это мелочи. Вряд ли вы их заметите, когда впервые увидите величественную Красную Гору из Вивека, или остров Солтсхейм из Хуула.


Shaders (Пиксельные шэйдеры)

MGE позволяет улучшить качество картинки с помощью использования полноэкранных шейдеров – HDR, Bloom или просто использовать (даже в модах) различные интересные эффекты – зрение животного, ослепление, размытие, ночное видение.


Системные требования (или где что найти)

Прежде всего вам понадобится сам MGE. Скачать программу (меньше 1MB) можно с сайта автора или с зеркала на TESSource.


Тут надо отметить, что MGE можно скачать в двух видах – в инсталляторе или просто архив с файлами (разницы между ними нет). Если вы скачали версию с инсталлятором, то просто следуйте его инструкциям, если в архиве, то его надо распаковать в папку с игрой (…/Morrowind/…) – туда где находится morrowind.exe, не в Data Files. Для распаковки архива нужен архиватор 7zip, который Вы можете скачать с нашего сайта.


Далее. Для работы MGE необходим «Microsoft .NET Framework», версии 2.0 (более ранние версии не позволят вам использовать MGE). Эту утилиту можно скачать с сайта MS. Но можно пойти и более простым путем, ибо доподлинно известно, что .NET Framework», версии 2.0 есть на DVD официальной русской версии игры Neverwinter Nights 2.


По заверениям авторов MGE может работать даже в том случае, если у вас установлен DirectX 8x (читайте об этом в справке), однако лучше всего иметь DirectX 9.0c. Лично я ставил MGE на компьютер с установленным DirectX 9.0c с изменениями на август 2005 года, но, конечно, чем новее, тем лучше, благо он обычно идет на диске с любой игрушкой (в этом отношении опять же сгодится NWN2).

Еще необходимо приблизительно 1ГB дополнительного места на жестком диске для генерирования Удаленного Ландшафта.

Для нормального использования всех функций MGE требуется «Bloodmoon» или последний патч для Морровинда.

Наличие или отсутствие плагинов, в том числе и реплэйсеров, судя по моему опыту, никак не сказывается на работе программы. Я ставил MGE не на «чистый» Морровинд. У меня было установлено множество различных плагинов и реплэйсеров текстур ландшафта и никаких проблем ни разу не возникло.


Краткое руководство по настройке MGE

Описание основных настроек MGE

Итак, наконец вы все скачали и установили. Теперь можно запускать MGEgui.exe.


При первом запуске MGE предложит вам выбрать какую длл использовать, и выдаст окошко со списком из шести dll (позже изменить свой выбор можно будет нажав на кнопку Select DLL на вкладке Main):

  • DX8-Basic
  • DX8-Debug
  • DX8-Full
  • DX9-Basic
  • DX9-Debug
  • DX9-Full

Как видим, тут, собственно, два вида dll: DX8/DX9, что соответственно определяет, будут ли использоваться возможности DX9, или же только DX8, под который и написан Морровинд.


При использовании DX8-xxx.dll невозможно использование пиксельных и вершинных шейдеров выше версии 1.4 и 1.1 соответственно - например HDR-освещения и Bloom - также использование шейдеров, написанных на языке HLSL, даже если они 1.х версии


Зато использование DX8 даст некоторый прирост производительности перед DX9, правда, весьма незначительный. Но если вы используете MGE только для включения Distant Land, то проще использовать DX8.


Basic/Debug/Full: Basic dll-ки несколько быстрее, стабильнее и меньше чем Full, но имеют ограничения, например при использовании Distant Land могут возникнуть самые различные глюки с удаленным ландшафтом – будет отображаться в помещениях, на нем будут черные пятна, или еще что-нибудь.. также в таком случае невозможно с помощью макро-функций изменять проигрываемую музыку, дистанцию обзора/аи, скрипты под MWSE работать вообще не будут, причем даже не выдавая никакой ошибки.. и еще много "приятного", так что их стоит использовать только при невозможности использовать полную.

DХ8/9-full.dll лишена подобных ограничений, но официально локализованная (1С) версия Морровинда не поддерживается, у некоторых людей игра просто не запускается, хотя у большинства все нормально. При выборе full dll MGE выдаст предупреждение о том, что текущая версия игры не распознана, но в общем все должно работать нормально. У вас должен быть установлен Bloodmoon или же последний патч к Морровинду - версия игры должна быть 1.6.820.

Debug dll предназначены для отладки MGE и модов под него – это аналог full dll, только все события записываются в лог, что поможет модмейкерам.


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


На вкладке Main:

  • Best performance - устанавливает все опции на максимальное быстродействие. К использованию крайне не рекомендуется, т.к. выглядит убого, реальный прирост будет только на системах с очень слабой видеокартой.
  • Best quality - устанавливает все опции на максимальное качество. Лучше выбрать это, только вручную настроить нужный уровень сглаживания(Anti-Aliasing) и фильтрации текстур.
  • Morrowind defaults - Возврат всех опций к значениям, используемым Морровиндом по умолчанию.


На вкладке Global Graphics:

  • MGE позволяет запускать морровинд в 16-битном цвете, что может значительно повысить производительность на очень старых видеокартах, для этого поставьте флажок 16-bit colour.

Еще стоит снять галочку с Allow multithreaded DX calls, это может несколько увеличить производительность.

  • Если ваша видеокарта имеет меньше 32мб видеопамяти, то рекомендуется снять галочку с Allow MGE to allocate graphics memory – иначе Морровинд может просто вылететь при запуске, или же запустится, но будут значительные тормоза. Впрочем, при такой карте MGE послужит разве что для ухудшения графики в обмен на производительность.

При активной галочке доступны интересные нам опции:

  • AA color fix – думаю, все замечали, что при включении анти-алисинга во время загрузки области экран перекрашивается в какой-то цвет. Эта опция устраняет этот баг.
  • Hardware/Software shader – разрешает использование программных и аппаратных полноэкранных шейдеров, это нужно, например, для HDR.


На вкладке Input:

  • Поставив галочку в wrap input device, мы включаем перехват нажатий клавиш – можно назначить различные функции на любую клавишу(Macro Editor), замену одной клавиши на другую (например, чтобы при нажатии пробела игра считала, что вы нажали Shift... ну, это может помочь, если у вас сломалась какая-то клавиша :D, для этого нажмите Launch Remapper), отключить консоль (disable console), а также сделать управление в бою подобным тому, как это было в Даггерфоле (allow alternate combat controls) – чтобы провести рубящий удар, теперь надо будет зажать левую кнопку мыши и двигать мышкой сверху вниз, вперед-назад для колющего и по диагонали для рубящего удара. Мне лично показалось весьма неудобно, но как знать, может вам понравится.


На вкладке MWSE:

  • Для того, чтобы избежать конфликтов между MGE и MWSE, на этой вкладке необходимо выбрать, использовать ли оригинальный Morrowind Script Extender'(MWSE.exe должен быть в той же папке, что и MGEgui.exe – это вариант Default), встроенный в MGE базирующийся на версии 0.92, но с некоторыми дополнительными функциями (вариант Custom – NT or XP / 98 or ME) или же не использовать вообще – None.
  • Check for active plugins that require MGE – перед выходом из программы все активные плагины будут проверяться на предмет использования функций MWSE, если таковых не обнаружено, а использование MWSE включено, или плагины найдены, а MWSE отключен, то программа сообщит нам об этом. Галочку лучше отключить, т.к. при большом кол-ве плагинов это может занять продолжительное время, при этом то же самое можно сделать, нажав на кнопку Check Now.


Как настроить работу Distant Land

Итак, что же надо сделать для того, чтобы включить Distant Land? Здесь нет одной галочки вкл/выкл, иначе я не стал бы так подробно все расписывать.

Сначала необходимо сгенерить модели и текстуры ландшафта.

Для этого идем на вкладку Tools – нас интересуют две нижние кнопочки, Distant Land texture и Mesh creator Automatic/Advanced mode. Те, кто не хочет разбираться, смело нажимают Automatic mode, и ждут, пока все сгенерится – 10-30 мин в зависимости от компьютера, а те же, кому интересно и хочется все настроить самому, жмут Advanced mode. Кстати, позаботьтесь предварительно освободить 500-1000MB дискового пространства для моделей и текстур ландшафта.


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

  • Generate textures – создавать текстуры ячеек, в выпадающем меню выбираем необходимое разрешение, 512 по умолчанию оптимально, даже если выбрать больше, то красивей не станет, а памяти будет занимать больше. Или же выбираем 256 – чуть более размыто, 128 - это минимум, выбираем разве что для видеокарты с 64MB и менее видеопамяти.
  • Compress textures – сжимать текстуры, убирать флажок не советую т.к. это значительно экономит видеопамять, а на качестве если и отражается, то совершенно незаметно.
  • Generate mipmap – генерировать мип-уровни для текстур, тоже убирать не стоит. Чтобы не накладывать большую текстуру на объект, который находится от нас достаточно далеко, при сохранении текстуры также сохраняются еще несколько её копий, только каждая уменьшена вдвое относительно предыдущей – это позволяет как экономить ресурсы видеокарты, так и избежать шума на текстурах. Так что если убрать галочку, мы получим либо лишние тормоза, либо более долгую загрузку – Морровинд будет сам генерить недостающие уровни.
  • Generate heightmap – создавать карту высот. Это, в принципе просто фича, т.к. на игру она никак не влияет. Если выбрать это, то кроме моделей и текстур ландшафта, мы получим файл heightmap.png, в котором можно увидеть ландшафт Морровинда в топографическом виде, черное обозначает минимальную высоту, белое – максимальную.
  • Alternate colour – карта будет не черно-белой, а цветной. По ходу это можно использовать для генерации ландшафта в TESIII CS.
  • Generate meshes – создавать модели ячеек, на которые будут накладываться текстуры, о которых писалось выше.
  • Generate world texture – создавать текстуру мира (острова Вварденфелл). В выпадающем списке выбираем нужное нам разрешение, тут экономить не стоит, на производительности оно особо не скажется, но текстуры размером 4096*4096 поддерживаются только видеокартами Radeon серии х1хх и GeForce 6xxx и выше.
  • Compress world texture – сжимать её.
  • Generate mipmaps – создавать мип-уровни для текстуры мира, вот тут можно отключить, ибо они для текстуры мира не нужны.
  • Generate world mesh – создавать модель (трехмерную, на которую будет накладываться вышеозначенная текстура) мира (ландшафта). В выпадающем списке выбираем нужную нам детализацию. Эта опция значительно влияет на производительность, рекомендую использовать Medium или High. Максимальная детализация вызовет тормоза даже на топовых системах. Также для генерации модели мира требуется очень много оперативной памяти, так что если вы получаете ошибку, то уменьшите детализацию.
  • Average vertex heights – В игре может оказаться так, что некоторые мелкие островки будут полностью скрыты водой, эта опция должна исправить этот баг. Я, правда, такого бага не увидел, так что точно сказать ничего не могу.
  • Use plugin list in morrowind.ini – генерировать ландшафт, учитывая все подключенные плагины.
  • Run – начать процесс создания ландшафта, как я писал выше, это займет 10-30 минут в зависимости от компьютера.

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

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


  • Владимир: На моей системе AthlonXP 2.2GHz 1024 Radeon 9600 128 при детализации мира High, 2048*2048 world texture, и текстурах ячеек разрешением 256*256 падение фпс было в р-не 20-30%, что неприятно, но вполне терпимо и оправданно.
  • TJ: Athlon 1800+ 1,5Ггц, 384 мб. SDRAM, Radeon 9600 128 (дальность ближнего обзора 3 клетки, дальность прорисовки Удаленного ландшафта 9-10 клеток, настройки текстур такие же, как у Владимира) – падение ФПС было минимальным.


Для использования Distant Land необходима видеокарта с поддержкой первых шейдеров – Radeon 8500 и старше, GeForce 3/4 Ti (не MX) и старше. Хотя вполне возможно, что кое-как будет работать и на видеокарте без поддержки шейдеров, проверить возможности небыло, но, думаю, производительность при этом будет слишком мала.


Дождавшись, когда все сгенерится, нам осталось только включить Distant Land, для этого перейдем на вкладку Misc и поставим там галочку Distant Land.

Там же есть два значения:

  • Land Distance – количество отображаемых соседних ячеек, поначалу не трогайте, и
  • Fog Distance – после какого количества ячеек остальные будут плавно затуманиваться, поначалу тоже не трогайте.

Всего от южной части Вварденфелла до Дагон Фела около 40 ячеек, при значении 25 из Вивека Красную Гору видно уже в легкой дымке, что выглядит весьма реалистично.


Вот, собственно, и все, можно запускать игру.

Сразу после загрузки сохранения игра замрет на несколько секунд – MGE подгружает модели мира и ячеек – после чего вы все увидите сами.


Как использовать шейдеры

Как подключить какой-либо из шейдеров?

Вернемся на вкладку Tools и нажмем на кнопочку Shader Editor. В левом верхнем углу окошка находится список шейдеров. Выбрав любой из них, мы можем просмотреть его код и посмотреть, что он делает, нажав на кнопочку Preview. При этом шейдер компилируется, и, если в нем, конечно, нет ошибок, мы видим обработанное изображение.


Вверху рядом со списком шейдеров есть галочка - DX9 mode – она, соответственно, нужна для проверки работы шейдера под DX9 (это понадобится, если мы используем DX9xxx.dll). Под DX9 должны работать все шейдеры, а под DX8 – все, кроме тех, которые называются DX9 HLSL... Так что мы, поставив или убрав галочку, выбираем шейдер из списка, нажимаем Preview – и, если понравилось, то читаем дальше, что надо сделать, чтобы увидеть такой же эффект в Морровинде:

  • Нажимаем рядом кнопочку Edit Active.
  • Находим нужный шейдер в списке и дважды кликаем на него, чтобы добавить в цепочку активных шейдеров – как можно догадаться, использовать можно несколько шейдеров сразу.
  • Выбираем нужное, добавляем в список, если надо, меняем кто за кем будет и нажимаем Save.
  • Вверху справа кнопочка Preview Active Chain, соответственно, посмотреть как будет выглядеть картинка после того, как мы все это включили.
  • Теперь надо включить использование шейдеров вообще, переходим на вкладку Render State, нажимаем галочку Hardware shader.


Все, можно закрывать программу и играть.



Авторы статьи: TJ & Владимир