На этот раз это будет большой релиз. Постепенно мы все ближе и ближе к оригинальной игре в реализации!![]()
Новое в этой версии:
- Исправление вылета игры перед заходом в новый загружаемый мир с последующим открытием "Панели редактора";
- Добавлены настройки для фильтрации теней;
- Серьезно снижена вероятность мерцания теней;
- Более тонкая настройка HDR, чтобы мир не был ярким и очень красочным;
- Добавлены текстуры простых облаков;
- Исправление, игра больше не вылетает при её закрытии;
- Исправление ошибки связанной с Переполнением массива/Array-Overflow, которая проявлялась иногда при использовании и загрузке мешей/Meshes, например, некоторых доспехов из аддона;
- Они теперь снова видимы, и это должно также разрешить некоторые проблемы совместимости с другими модами которые были ранее.
- Реализован простой шейдеры воды, который максимально приближен к оригиналу, но выглядящий более современно, эффекты: Преломления/Refraction, Френеля/Fresnel, Дисторсия/Distortion;
- Исправление динамического освещения, теперь оно не будет появляться/пропадать в любое время;
- Снижена базовая интенсивность точечных источников света, чтобы они соответствовали первоначальному виду оригинала (особенно важно для Возвращения!);
- Исправление дистанция-выбраковки/Distance-Culling, из-за очень большого числа огней не учитывался их радиус (гигантский свет на Хоринисе в Возвращении);
- Добавлена возможность "Подавления/Unterdrücken" рендера конкретных текстур для меша мира игры, работает как "Удаление/Löschen" в части секции мирового меша. Таким образом, вы можете удалить, например, воду, чтобы установить другую, или позже заменить кусок меша мира на другой меш;
- Реализована возможность "Сохранения/Загрузки" для: растительности, подавленных-текстур, патчинга-океана;
- Теперь обработка нажатий клавиш на цифровой клавиатуре будет отключена, если активно меню редактора, [F11];
- Теперь кнопки цифровой клавиатуры: Numpad 2 и 3 добавляют "Патчинг-Окена" для камеры на высоте -700(уровень океана в Г2);
- Во вкладку "Общие/General" добавлена опция: "GothicUIScale"(в самом низу), активация редактора по клавише [F11]. Для корректной работы сначала нужно открыть и закрыть окно редактора(нажмите клавишу [ESC] дважды), чтобы все необходимые обновления вступили в силу;
- Исправление FOV, ошибка в оригинальной "Готике"(фикс для широко-форматных мониторов);
- Теперь вы можете изменять размер травы или использовать кисть с функцией удаления с помощью колёсика мышки;
- Добавлен элемент управления "Ползунок/Slider-Control" для пользовательского интерфейса/UI-Framework;
- Реализованы дополнительные настройки для выбранных пучков травы: "Плотность/Density", "Масштаб/Scale";
- Теперь пучки растительности(травы) при вставке их в мир, распределяются лучше, более универсальным способом на трианглах;
- Исправление проблем связанных с неправильным затенением внутренних частей мира, тени теперь правильно накладываются в помещениях, и только там где это нужно(портал Яркендара);
- Увеличен диапазон наложения стандартных теней;
- У внутренних миров/Indoor-Welten больше не рендерится небо и/или эффекты тумана;
- Теперь модель игрока больше не отображается когда Гг находится в режиме от первого лица;
- Добавлены настройки управления разрешением для карт теней/Shadowmap;
- Дополнительная оптимизация рендеринга теней;
- Исправление для динамически порождаемых эффектов-частиц/particle-effects во время игры, теперь они не вызывают крашения игры при их удалении из мира;
- Поэтому они были включены! К сожалению, по непонятной пока для меня причине, магические эффекты не работают.
- Реализована возможность "Сохранения/Загрузки" для мира игры, кнопки: "Save/Load-Buttons", снизу на "Панели редактора";
- Подстройка стиля для пользовательского интерфейса/UI-Style;
- Реализованы: "модель-масштабирования/Model-Scale" и "модель-телосложения/Model-Fatness" для анимированных мешей на скелете.
Полезное для модостроителей в этой версии, среди прочих функций, добавления и регулирования параметрами растительности, то, что теперь вы наконец-то сможете сохранить свой результат!
Примечание: Для примера, я добавил немного травы перед башней Ксардаса, которую вы можете попробовать сохранить.
Все сохраняемые файлы будут помещены в каталог игры: "..\system\GD3D11\ZENResources".
Внимание: Начиная с этой версии, внешние широкоформатные фиксы больше не требуются, запуск теперь возможен с любым разрешением в стандартном режиме!
Скриншоты текущей версии в сравнении, оригинал и GD3D11_X7:
![]()
Хорошего времяпрепровождения!![]()
Тесселяция (Tessellation)
"Концерт, по вашим заявкам"..
Для тех, кто хотел увидеть видео с новой водой:
Вот так это выглядит в данный момент, вода ещё немного плоская.. Позже я подумаю о том чтобы избежать явных повторений в её колебаниях, как и над реализацией прозрачности для неё.
Освещение временное, но сгодится для первого предварительного обзора.![]()
Исправление ошибок, улучшение общей производительности и HBAO+ !
Новое в этой версии:
- Улучшена производительность рендера мешей мира игры;
- Реализовано инстанцирование для вобов/Instancing für VOBs, что также повышает производительность при рендеринге в игре;
- Исправление ошибки связанной с переполнением некоторых индексных буферов;
- Исправление D3D11 при отработке пиксельных шейдеров не связанных с 4k-рендером/4k-Rendertarget при визуализации теней;
- Пиксельный шейдер/Pixel Shader используется только там, где это действительно необходимо (деревья, кустарники)!
- Исправление некоторых вобов/VOBs многократно добавляемых в перезаписываемый BSP-кэш, при каждой перезагрузке мира игры;
- Это уменьшает время загрузки при загрузке сохраненной игры;
- Исправление, теперь BSP-кэш очищается в нужное время, потому что ранее он не очищался вообще, так как не вызывалась требуемая функция после загрузки игры из сохранения;
- Решает проблемы с производительностью при загрузке новых объектов игры и светящимися огнями в гавани;
- Исправление вылетов игры связанных с драконами. У них по-прежнему много костей и рендер может отработать с ошибками;
- Наконец-то мне удалось выяснить, какие текстуры используют свой альфа-канал, а какие нет!
- Исправление панели управления в редакторе, при его вызове программа не знала какие кнопки отрисовывать в начале;
- Добавлены эффекты HBAO+. Настройки смотрите в меню, клавиша [F11];
- Добавлены настройки управления разрешением для карт теней/Shadowmap;
- Дополнительная оптимизация рендеринга теней;
- Стандартное разрешение для карт-теней в настоящее время снижено до 1024 пикселей;
- Добавлена опция отключения "DisableWatermark", в настройках управления - "Общие";
- Немного снижен эффект работы алгоритма для отрисовки теней из-за ошибки "Peter-Panning", эффект "Питера Пена"(оттенялись не только принадлежащие тени объекты).
Скриншоты текущей версии с модом Gothic 2: L'HIVER Edition:
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Хорошего времяпрепровождения!![]()
Руководство пользователя/модостроителя
Я подготовил небольшое руководство по использованию редактора и его материалов:
Основные функции редактора(Basic editor functionality):
Растительность(Vegetation):Для открытия и закрытия панели редактора используйте клавишу [F1]. При этом вы окажетесь(точнее, ваш Гг) в том состоянии, когда фокус камеры в игре будет отделён от его модели и перемещён на боковую панель редактора с левой стороны экрана.
Инструкцию о том как перемещаться в нём выводится в верхней левой части экрана. Перемещение такое-же как в UnrealEngine(в случае, если вы знакомы с ним), сделал его аналогичным, только потому, что больше всего мне понравились виды перемещения в 3D-сценах, именно там. При первом перемещении в нём, камера будет цепляться к углу экрана, впрочем, это - известный баг.
Для быстрой телепортации вашего Гг на новое место в мире игры, нужно просто перейти к требуемой части локации и при нажатой клавише [Shift], щёлкнуть на его новое месторасположение.
Ещё один момент, вы будете видеть его всякий раз, когда вы перемещаете курсор на одну из частей меша мира игры, это будет сопровождаться наложением красной каркасной сетки. Просто щёлкните её для выбора. При этом будут выделены все трианглы(triangles) использующие ту же текстуру в текущей секции. Размер одной секции меша равен: 16000x16000 в системе мировых единиц(сантиметры).
Тесселяция(Tesselation):Простой способ добавления новой растительности. Для этого, активируйте редактор, клавиша [F1], выделите определённую часть меша игры и перейдите в панели редактора на вкладку: "Растительность/Vegetation", в верхнем левом углу, после чего щёлкните на кнопку: "Заполнить выделенное/Fill selection". Это автоматически заполнит выделенную вами часть мира травой, при этом, к текстурам травы будет применён цвет поверхности мира на которую она была вставлена.
Также, вы можете самостоятельно размещать небольшие участки растительности. Для этого нажмите кнопку: "Добавить растительность/Add Vegetation", чтобы получить бокс прикреплённый к вашему курсору мыши. Поместите его в мир игры, щёлкнув курсором мыши в любом месте мира для его размещения. При этом, основную информацию о цвете, вставленная вами трава получит из первого найденного триангла(triangle).
Для получения наилучших результатов, используйте чек-боксы(checkboxes): "Текстура определена/Texture aware" и "Округлая форма", проставьте галочки, где параметр "Текстура определена", ограничивает размещённую вами траву, текстурой по которой вы щёлкнули.
Чтобы удалить некоторые части ранее добавленной растительности, используйте кнопку: "Удалить/Remove". После её нажатия, к вашему курсору будет применена новая кисть, для удаления лишней травы используйте зажатой клавишу [Ctrl] и левую кнопку мыши. Для выхода из режима удаления нажмите повторно кнопку "Удалить" в панели редактора.
Важное примечание:
Имейте в виду, что пока не реализовано никакого способа для сохранения вашей работы!
Карты нормалей/смещения(Normal/Displacement-Maps):Эта версия отличается простым способом тесселяции, основанном на анализе смещения вершин(vertices) из меша мира игры. Он по-прежнему имеет несколько существенных недостатков, но главное, это работает уже сейчас.
Для применения тесселяции к части меша мира, вам просто нужно выделить что-нибудь на нём с полностью повторяемой черепичной текстурой(как например, камни или трава) и нажать на клавишу "Пробел/Spacebar". Выделение должно окрасится в жёлтый цвет, а каркасная сетка меша получить дополнительные трианглы(wireframe-triangles). Это не количество аппаратных треугольников(hardware triangles), меш получит их позднее с рендером визуализации! Это касается только программной стороны!
Кроме того, все текстурные координаты(UV-Coords) для выделенного меша будут сброшены, и к нему будет применено проецирование трёхпланарного-текстурного-шейдера. Это не будет корректно работать для домов, дорог или текстуры камня с травой поверх него.
После того как это будет сделано, вы можете попробовать настроить некоторые дополнительные параметры, чтобы сделать её вид немного лучше. Для этого, выберите ваш меш с тесселяцией и нажмите клавишу [F11]. На экране появится несколько других окон. Наиболее интересным из них является окно: "Настройки текстуры/Texture settings", в котором вы можете управлять различным поведением проецирования трёхпланарного-шейдера, как например: масштаб(scale) и подсветка краев модели(rim-lighting(fresnel)) или сила смещения(displacement-strength).
Для того чтобы немного увеличить силу тесселяции(tesselation-factor), просто нажмите на клавишу "Пробел/Space" снова, или используйте команду: General/TesselationFactor-variable.
Пожалуйста, имейте в виду, что это ещё предварительная реализация возможности, и поскольку карты смещения генерируются автоматически, то это не будет выглядеть очень хорошо в большинстве случаев. Кроме того, все меши использующие текстуры после применения к ним "тесселяции", будут использовать в качестве текстуры - трёхпланарный шейдер.
Хорошим примером для этого являются горы в порту Хориниса. Я установил свойства материалов для некоторых из них, так-что вам нужно просто выбрать место и нажать пару раз на клавишу пробел, чтобы сделать их вид в игре немного лучше.
Вкратце:
Нажмите клавишу [F1], перейдите в порт, выберите гору, нажмите клавишу [Пробел/Spacebar], дважды.![]()
Использование собственных карт нормалей/смещений. Для этого нужно иметь эти карты в уже готовом виде или создавать их самому. Это можно сделать с помощью инструментария программ: "Фотошоп/Photoshop" или "DXTBmp".
При создании этих карт не забывайте, что: "Карта нормалей" должна располагаться в стандартных слоях для текстур с RGB-каналами, а "Карта смещений" должна быть помещена в слой альфа-канала.
При сохранении текстуры именуйте её как: "TextureNameInGothic_normal.dds", где - именованиеTextureNameInGothic, это оригинальное название текстуры в игре. И убедитесь, что вы сохраняете её в формате DXT5!
После чего, поместите готовую текстуру в каталог: "..\System\GD3D11\textures\replacements", с подтверждением перезаписи старых файлов, если они есть.
Всё, ваша текстура готова к работе в игре.
Примечание:
Для сохранения текстур в формате *.dds, необходимо установить плагин: NVIDIA Texture Tools for Adobe Photoshop, если он не установлен. Подходит для большинства версий Photoshop: 5.0, 5.1, 6.0, 7.0, CS, CS2, CS3, CS4, CS5 and CS6.
Там же на странице загрузки, можно скачать дополнительный набор утилит: DDS Utilities, для работы с файлами этого формата, смотрите его в самом низу страницы.
Важно: Имейте в виду, что большинство из этого все ещё является предметом возможного изменения в будущем. Проект ещё только в самом начале своего пути, и в данный момент представляет собой только ранний, предварительный обзор того, что я собираюсь делать с редактором в дальнейшем.
В этой версии реализовано долгожданное исправление некоторых старых багов, а также добавлен ряд новых, полезных функций для модостроителей, в том числе, совершенно новый способ быстрого перемещения куда-либо!
Новое в этой версии:
- Новые средства управления перемещением редактора;
- Возможность выбора и удаления информации о размещенной растительности;
- Исправление для накладываемых объектов в меню;
- Реализован собственный обработчик исключений с трассировкой стека/stack-tracer;
- Водяной знак/Watermark(не совсем понял что здесь имеется ввиду ?!);
- Исправление, теперь нельзя заполнить растительностью один и тот-же меш, дважды;
- Возможность установки стартовой позиции игрока с помощью редактора;
- Реализована кисть для удаления растительности;
- Исправление багов связанных с исчезновением некоторых объектов(Полки в башне Ксардаса);
- Исправление багов с незарегистрированными вобами/VOBs, появляющихся и видимых после загрузки игры(Факела);
- Исправление багов с переключением флагов оружия для Непесей/NPC, не происходила смена оружия для меша меча(избиение Нпс луком);
- Исправление багов для Непесей/NPC, связанных с невозможностью смены брони/одежды;
- Реализована возможность обнаружения границ для мешей;
- Реализована простая тесселяция/Tesselation для меша мира/WorldMesh;
- Реализована аппаратная тесселяция/Hardwaretesselation и необходимые свойства материалов/MaterialProperties;
- Реализована возможность перезаписи шейдеров/Shader-Overwrite для специфичных мешей;
- Заменяемый меш мира/WorldMesh игры теперь загружается в правильных координатах пространства;
- Реализован эффект Френеля(с подсветкой краев модели)/Fresnel-Effect(Rim-Lighting), для мешей с использованием трёхпланарного-текстурного-шейдера/Triplanar-Texture-Shader и тесселяции;
- Добавлена возможность выбора текстур;
- Реализована более агрессивная выборка для рендера теней. Могут быть проблемы когда солнце находится очень низко, хотя;
- Небольшое улучшение производительности для обычного рендеринга мира.
Важно: Имейте в виду, что большинство из этого все ещё является предметом возможного изменения в будущем. Проект ещё только в самом начале своего пути, и в данный момент представляет собой только ранний, предварительный обзор того, что я собираюсь делать с редактором в дальнейшем.
Дополнительные материалы
Если вы собираетесь использовать оригинальную игру "Г2:НВ" или моды и/или текстурные пакеты на её основе с рендером визуализации GD3D11, то вам понадобятся специально подготовленные для них пакеты карт нормалей в формате *.dds
1. Replacements_dds.7z — пакет карт нормалей/Normalmap Pack, для игры "Готика 2: Ночь Ворона".
Примечание: Никаких изменений в него не вносилось, поэтому нет необходимости его повторно загружать, если он у вас уже установлен.
2. Replacements_vurt.zip — пакет карт нормалей/Normalmap Pack, для текстурного мода Gothic 2: Graphics Overhaul, за авторством Vurts'a.
Примечание: По-мимо этого, у вас должен быть установлен оригинальный пакет текстур этого мода, а затем, просто объедините новый пакет со старым оригиналом мода.
Установка: распаковать в каталог игры:
"..\System\GD3D11\textures\replacements".
Примечание: В случае установки карт нормалей для текстурных модов и паков, сначала нужно скачать и установить(распаковать) в указанный каталог пакет для оригинальной игры "Г2: Ночь Ворона", после чего, распаковать в него пакет карт нормалей для конкретного мода(ели он есть), с подтверждение замены файлов, если это потребуется.
Удачи!![]()
Тесселяция (Tessellation)
Тесселяция-шейдеров, продолжение...
Ранее уже были некоторые тесты с тесселяцией, но сегодня мне удалось продвинутся в этом немного дальше обычного, потребовалось лишь немного больше желания для всего этого и, мы можем уже двигаться дальше.
Было много проблем с тем что в "Готике" меши мира игры не связаны, из-за чего каждый отдельно взятый треугольник становился видимым. Я добавил функцию которая выделяет вертексы обращенные в другую плоскость, и находящихся на краях мешей.
По-мимо этого, был включен специальный шейдер работающий без текстурных координат, накладывающий до 3-х различных текстур со всех сторон на меш.
Так что теперь я могу отвязать меш от его текстурных координат(кто виноват в том что его треугольники не связаны?!) и применить к нему тесселяцию-шейдера(Tessellation-Shader) без опасения того, что меш будет разрушен из-за этого.
Конечно, на данный момент ещё есть ряд факторов, гарантирующий, хоть и редкое, но разрушение меша.. Позже, я и об этом позабочусь тоже..![]()
Тесселяция применялась к горе в портовой части Хориниса, выглядит это таким образом, в порядке слава-направо:
![]()
![]()
![]()
1-Тесселяция отключена; 2-Тесселяция включена; 3-Обкатывание тесселяции на булыжниках в редакторе; 4-Тесселяция в моде Vurts'a.
Новые возможности, из запланированного:
Здесь только то, что я всегда хотел сделать, было бы только желание.. Напишу вкратце.:
— Тесселяция с использованием текстурных карт высот со смещением(Tessellation/POM: Parallax Occlusion Mapping)
— Тени для точечных источников света(PointLight-Shadows)
— Атмосферное мульти-рассеивание (Atmospheric MultiScattering)
— Лучи(Godrays)
— Улучшенная система частиц, возможно, с использованием PhysX или Bullet(Besseres Partikelsystem, vielleicht mit PhysX oder Bullet)
— Отражения, в целом касается старой воды(Reflektionen, allgemein wieder Wasserkram)
— Преграждение окружающего света в экранном пространстве(SSAO: Screen Space Ambient Occlusion)
— Визуализация водной поверхности на GPU, или аналогичное(FFT-Ocean, о. Ä.)
— Удобный редактор(Ein komfortabler Editor).
Ps. Также, скорее всего сегодня ночью, я постараюсь загрузить на сервер карты нормалей(Normalmaps) для текстурного мода Vurts'a. ну а если нет, заглядывайте почаще, значит позже будут...![]()