В этой статье расскажем о дополнительных инструментах для обработки файлов.
Шейдеры — это под программы, выполняют вычисления на графическом процессоре (GPU) и управляют тем, как объекты и эффекты отображаются на экране
О расположении шейдеров можно узнать тут
fragm — означает исходники для фрагментных шейдеровvertex — означает исходники для вершинных шейдеровdev_compilleShaders.cmd@echo off && cd Bin32\ && ME_Shaders "\fragm\video" && cd ..\Contents\shaders\fragm && ren *.bin *.chf && move *.chf .. && cd ..\..\..\Bin32\ && ME_Shaders "\vertex\video" && @echo off && cd ..\Contents\shaders\vertex && ren *.bin *.chv && move *.chv .. pause
dev_compilleShaders.cmd сценарий для компиляции шейдеровvideo.chf и video.chv
В шейдерных файлах должна быть первая стройка #MotionEngine_Shader_File для того, чтобы игровой движок смог понять, что этот файл для него создан. Также сохраняется обычно в формате *.assets.
пример файлов:
Фрагментный шейдер «video.assets» в папке «/Contents/shaders/fragm»
#MotionEngine_Shader_File
out vec4 FragColor;
in vec3 ourColor;
in vec2 TexCoord;
// texture sampler
uniform sampler2D texture1;
void main()
{
FragColor = texture(texture1, TexCoord);
}
Вершинный шейдер «video.assets» в папке «/Contents/shaders/vertex»
#MotionEngine_Shader_File
layout (location = 0) in vec3 aPos;
layout (location = 1) in vec3 aColor;
layout (location = 2) in vec2 aTexCoord;
out vec3 ourColor;
out vec2 TexCoord;
void main()
{
gl_Position = vec4(aPos.xy,0,0.5);
ourColor = aColor;
TexCoord = vec2(aTexCoord.x, -aTexCoord.y);
}
<название модели>.mep (meta prop ) Информационный файл (описание модели):
{"model":"<название модели>.ME2","author":"<автор>","published":"<когда создана была модель в формате: ГГГГ.ММ.ДД>"}
<название модели>.ME2 (Motion Engine версии 2) — Сама 3д-модель экспортированная
{"textures":[{"id":"Map1-image","name":"Map1","path":"solids/bed_01.gi"}]}
Но обращаем внимание, что файл автоматически генерируется при экспорте в формат ME2. Эти все перечисленные файлы они обязательные, иначе игровой движок не сможет запустить модели, либо же другой инструментарий.
Из своего опыта расскажем, что бывают непонятные проблемы с геометрией экспортированных 3д-моделей из программы Blender.
* Открываем Autodesk 3ds max нашу созданную новую 3д-модель
Проверяем, чтобы заданы параметры были также как на скриншоте:
Нажимаем на кнопку «System Unit Setup» откроется ещё настройка, тоже проверяем. Должно быть также как на скриншоте:
Нажимем ОК в двух окнах.
Создаем файл описания модели по формату, который ранее был показан в структуре — тут
На данный момент существует два способа конвертации файла 3д-модели в формат ME2 игрового движка.
MERadiant с помощью инструмента (подробнее смотрите тут)make.cmd в корневой папке игрового движка с содержимым и запустите (в этом случае текстуры необходимо из старого формата преобразовать в GI-формат - далее вручную обработаем текстуры):@echo off && cd Bin32\ && ME_TEXTURE "../Contents/objects/<ваше название модели>.dae" "../Contents/objects/<ваше название модели>.ME2"
Текстуры должны располагаться в папке «Contents/textures» в тематической папке для эффективного поиска текстур.
@echo off && cd Bin32\ && ME_TEXTURE GI "../Contents/textures/<пример под папки>/<текстура>.tga" "../Contents/textures/<пример под папки>/<текстура>.gi"
В этом разделе, сейчас настроим файл скинов, а именно заменим путь на относительный (игровой движок понимает только относительный путь от папки «Contents/textures/<папка которую знает движок>»)
<название модели.ME2.s0.mtx, открываем с помощью блокнота.path (не должно содержать: file: или полный путь с указанием букв диска), пример правильного пути: solids/geom_tunel2.giCTRL+S, закрываем.Поздравляем модель добавлена в игровой движок.