7

Relict Engine: DevLog 20260411

Серия Relict Engine

Краткий список изменений

  • RatTools теперь используется как пакетный рекурсивный импортер ресурсов.

  • Добавлена заготовка для системы материалов.


Материалы

Потихоньку идет работа над конвейером и импортером материалов. Идет тяжелее, чем надеялся, но идет (больше читаю спецификации, чем пишу + работа + РКН и моя личная борьба с ними).

Итак, что получается на данный момент.

За основу взял заготовку, о которой писал тут: Relict Engine: Шейдеры. Часть 2. Материалы. Синтаксис

Вписал в RatTools парсер трех словных команд по принципу: команда аргумент значение. Для примера: use domain Simple - use команда, domain аргумент, а Simple значение.

Сделал, пока откровенным говнокодом, обработку этого дела. Команда use (в указанном выше посте using) domain подгружает Vertex.glsl и Fragment.glsl из директории SHADERS/domain/%Значение%, считывает их. Подгружает дополнительные файлы glsl с помощью самодельной команды препроцессора #include и подставляет в нужные места значения команды set с выборкой по аргументу. Выглядит это на данный момент так:

inline vec3 Material_Offset()
{
#set return vOffset:vec3(0)
}

Допустим, есть у нас вот такая функция. Парсер видит самодельную команду препроцессор #set с двумя аргументами и селектором ':'. Обращается к хранилищу команды set и ищет там аргумент vOffset. Если находит, то подставляет его значение на место этой строки, если нет, то значение после селектора. В итоге функция превращается в

inline vec3 Material_Offset()
{
return vec3(0);
}

ну или, если vOffset присутствует в материале, то подставится его значение. Заместо return может быть имя переменной, тогда вместо return будет оператор присвоения, например


void Material_Offset(out vec3 MaterialOffset)
{
#set MaterialOffset vOffset:vec3(0)
}

вернет нам

void Material_Offset(out vec3 MaterialOffset)
{
MaterialOffset = vec3(0);
}

ну и тд, но до создания переменной заданного типа пока не доросли (и я не уверен, нужно ли это).

Прежде чем идти дальше (перегнать все это в SPIR-V формат и добавить недостающий функционал, типа ввода/вывода юниформов) хочу немного причесать код, да избавится от ряда костылей, которые появились пока я пробовал разные подходы к форматированию.

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции

- Выдавать чужой труд за свой

Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества