Графический интерфейс пользователя (GUI: Graphical User Interface)
Судя по тестам производительности в Бенчмарке(Benchmark), можно сказать что визуализация на данный момент медленнее рендера теней, чем следовало бы. Надо будет еще поработать над этим.
Вообщем, я пока ещё не очень доволен общей производительностью.
Тем не менее, вы уже можете посмотреть первый скриншот из игры с небольшим тестом графического интерфейса пользователя(GUI-Test), с выделенными участками сети меша миры игры:
Серая боковая панель, слева на картинке, будет выводится сразу по нажатию клавиши [F11].
Эта опция располагается после текстур, в которой по-мимо прочего, можно будет непосредственно настраивать параметры текстур, или рассадить везде траву, по всему миру, или еще что нибудь сделать с ней.
Основа интерфейса готова, и полностью написана мной с помощью Direct2D, сейчас я медленно переношу её на GD3D11. Таким образом, благодаря технологии Direct2D он обзаведётся собственной аппаратной поддержкой.
Разработка еще далека от завершения, пожалуйста, имейте это ввиду..
Зы, Я всегда открыт для обсуждения и идей связанных с графическим интерфейсом пользователя и редактора в целом.
Новая растительность (New Vegetation)
Травушка муравушка или ленивые эксперименты, продолжение..
Закончил написание функции по выборке полигонов для мешей мира. Таким образом, станет возможным размещение небольших объемов растительности при помощи мыши.
Также, вы сможете выбрать, ограничивать ли "пучки травы" в объеме или нет, по нажатию кнопкой мыши по её текстуре. Я немного побегал в игре с этими надстройками и как мне кажется получаются довольно не плохие результаты:
Конечно, есть еще много всего, слишком высокая трава, всегда один и тот же меш мира игры.., просто я хочу показать, что это уже возможно в игре.
Помимо этого, я начал разработку системы пользовательского интерфейса(GUI-System), которую я написал несколько лет назад, и теперь использую ее и включу в GD3D11. О ней пока могу сказать лишь то, что вижу ее как нечто большее, нежели просто кнопки и чек-боксы.
Новая растительность (New Vegetation)
Травушка муравушка или ленивые эксперименты, продолжение..
Всё также продолжаю возится с травой, увеличил немного производительность. В мире игры "Г2", без травы я получаю на 50 FPS больше. Тем не менее, показатель FPS в игре даже сейчас очень большой, особенно на отдалении. Разумеется, многое еще не завершено, или очень далеко от завершения. Иначе, я бы уже вернулся к прежней работе с визуализацией..
Этим я буду заниматься позднее. Ну, и цвета по-прежнему не ахти, нормальный луг так не выглядит, согласен, но нам программистам, как говорится не до эстетики..
Новая растительность (New Vegetation)
Здесь представлена небольшая графическая фича:
Давно я хотел добавить что-то на подобие этого, и сегодня, после обнаружения большой утечкой памяти, засел за работу, в том числе и по этой части.
К сожалению, у меня есть в наличии только один вариант меша травы, и текстура, - не самого приятного вида. Впрочем, вы это и сами видите..
Что это дает и как работает:
В пакете имеется клавиша при нажатии которой вы сможете создать специальный бокс и вставить его в мир игры. Он создается с учетом позиций положения камеры и имеет фиксированный размер.
Затем этот бокс отыскивает все полигоны меша мира игры находящиеся внутри границ его блока и сканирует случайные положения их позиций на его поверхности.
Если позиция находится во внутренних рамках границ бокса, то она будет сохранена.
Затем пойдет отрисовка травы на меше, которая в равной степени будет обращена к каждой из этих точек(позиций), со случайными параметрами её вращения и величиной.
При этом, трава может быть реализована инстанциями в пакете. Но на данный момент, это ещё до конца не реализовано.
Инстанциями это все делается довольно быстро, в любом случае, я точно знаю что меня ожидает с этим боксом, я должен буду провести дополнительную оптимизацию для получения более высокой производительности. По-мимо этого, должен затенить "пучки травы" в зависимости от дистанции обзора, что естественно, не может быть не реализовано.
В конце-концов, вы получите простой метод для распределения "пучков травы" в мире игры, там, где это вам нужно.
Поскольку очевидно, что эти боксы нельзя было просто так взять и приспособить к мешу мира игры, которые бы рассаживали траву вдоль дороги, на стволах деревьях или земле. Появилась идея все это дело повесить "на аналог" некоторых текстур, которые появляются в боксе и отображаются на меше мира игры.
Кроме того, я должен буду предоставить пользователю интерфейс с помощью которого он сможет распределять специфические для рендера GD3D11 объекты в мире игры. А также, некий художественный редактор для модификаций...
Версия X3 перезалита, добавлена новая версия X3.1, исправлены некоторые проблемы с разрешением.
Тесселяция (Tessellation)
Реализовал небольшой экспресс тест по изучению работы тесселяции и её взаимодействии с миром игры. В итоге, все прошло более чем успешно, при её реализации на процессоре (CPU) для всех полигонов с определенной текстурой и при наличии правильной карты смещения/Displacement-Map..
Но там есть ещё много чего, над чем предстоит поработать, в данный момент используется только тестовый код.
Однако, я планирую более тонко рассчитать модель затенения/Ambient-Occlusion для мира игры с Тесселяцией/Tesselation. Для этого мне придется написать небольшую программу CUDA-Tracer, который будет все рассчитывать для мешей игры Г2. Но, это все много позже, и в данный момент пока только на уровне идей..
Тестовый скрин рендера с тесселяцией:
В этом выпуске я в основном делал упор на коррекцию всей базы кода для повышения стабильности и исправления некоторых ошибок. Поэтому, не стоит ожидать в ней чего-то совершенно нового..
Новое в этой версии:
- Реализована система частиц/ParticleEffects, в статике (Динамически порождаемые эффекты частиц могут привести к сбоям в игре и в данный момент отключены);
- Переработан рендер HDR, сейчас с ним используется FilmicTonemapping (ночи теперь действительно темные);
- Исправление мерцания карт нормалей/Normalmaps на вобах/VOBs и анимированных мешей на скелете;
- Исправление внутренних помещений/интерьеров, имеющих проблемы с освещением;
- Улучшение производительности для ПК с более слабыми процессорами;
- Улучшение производительности и скорости рендеринга теней;
- Добавлена функция быстрого рендеринга теней/Shadow-Rendering-Mode;
Управление в консоли: ([F11] → General → Fast Shadows)
— данная версия работает, но есть некоторые огрехи, связанны с неправильным просчетом и рендерингом теней отбрасываемых от деревьев и/или кустарников.- Общее улучшение стабильности;
- Добавлен режим каркасного вывода/wireframe-mode для мира игры/WorldMesh и вобов/VOBs;
- Исправление разрешения без привязки к разрешению рабочего стола;
- И много других мелкий настроек и исправлений..
Известные ошибки и отсутствующие возможности:
- Анимированные меши на скелете (например, оружие или факела) не могут быть изменены;
- Лица персонажей статичные;
- Вода ещё не полностью реализована;
- Эффекты частиц/ParticleEffects не будут отображены если они были добавлены после загрузки игрового уровня, для предотвращения краха игры;
- Видео не воспроизводится;
- Гг получает неправильную текстуру если он без брони;
- Анимированные текстуры не анимируются, чтобы предотвратить крах игры;
- Режим быстрых теней/Fast-Mode shadows не корректно работает с деревьями и/или кустарниками;
- Время загрузки игры значительно увеличилось из-за всех предварительных подготовок и проверок, код еще не оптимизировался;
- Исчезновение некоторых объектов во внутренних интерьерах игры..
Удачи..