Functions like scene->createLight is in work. Engine is not ready. TODO for this year is scene improvement: frustum culling, loading static geometry, lighting, scene optimizations etc.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Материалы прикрепляются по имени. В меше есть субмеши, использующие материалы, у них у каждого своё имя. К этим именам материалы и прикрепляются. Например в меше есть субмеш, у которого материал называется "bricks". Создаём "material_list.xml" с материалами, один из которых будет с именем: <material name="bricks"></material>. В одной этой xml может быть много материалов прописано. Потом загружаем её через "shRoot->getMaterials()->loadMaterialsList ("material_list.xml");". Файлы материалов по умолчанию должны лежать в папке "../Models", так же как и меши.
Last edit: Nickolay Sosnovikov 2015-05-16
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Ну я бы не сказал, что рано. Я уже больше года, наверное, слежу за выходом обновлений. На движок наткнулся случайно, когда на форуме GameDev прочитал про конкурс гонок. Странно, кстати, что ваше демо в тройку лучших не вошла. Мне кажется, что просто времени не хватило закончить игру до конца. А за описание об материалах - спасибо! Кстати, а материалы формата .obj не работают в движке? Файл .mtl вроде бы считывается.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Файлы mtl движок не читает. Для материалов сейчас только движковый xml. Проблема в том, что mtl не полностью совместим с движком, есть тонкости. Например не поддерживается хранение прозрачности (alpha) в отдельной текстуре, прозрачность должна храниться как 4-ый канал текстуры диффузии. В прочем, так сделано почти во всех движках.
Кстати, этот движок я делаю как раз для ремейка своей игры Running Racer.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Я не думаю, что дело в модели, т.к. это не единичный случай. Это происходит даже в способе реализации, к примеру:
Считываю int из файла для установки уровня LOD:
shRoot->getMaterials()->setTexturesLod(считанный_int);
В этом случае меш и деформируется в плоскость, а если напишу просто:
shRoot->getMaterials()->setTexturesLod(3);
все в порядке. Так может дело в LOD? Кстати, насколько большие модели поддерживает сцена?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
У меня ничего подобного не наблюдается. Если ставить очень большое или отрицательное значение в методе shRoot->getMaterials()->setTexturesLod();, то отображаются последние текстурные мипы. Не понятно при чём тут меши. Текстурные лоды не могут влиять на геометрию.
Ограничений на количество треугольников в модели нет. На сколько памяти хватит, столько и можно грузить.
Last edit: Nickolay Sosnovikov 2015-05-18
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Всё-таки хотелось бы посмотреть на эту модель. И на будущее, это не обсуждение архитектуры движка, а обсуждение багов при его использовании. Для этого отдельный раздел есть.
Last edit: Nickolay Sosnovikov 2015-05-18
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
А, ну всё понятно. Ограничения на количество вершин в меше нет, но есть ограничение на количество вершин в одном субмеше (65536). Сейчас сделал чтобы при загрузке в obj такие огромные субмеши разбивались бы на несколько.
Только не пугайтесь такому низкому fps, ведь сейчас сцена рисуется 7 раз без отсечения невидимого.
Спасибо за тестирование.
Last edit: Nickolay Sosnovikov 2015-05-18
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Недавно пробовал использовать физическую библиотеку Newton. Очень понравилась, т.к. качество симуляции на высоте. Жаль только, что из-за этого требовательна к ресурсам, но для небольших игр - самое то!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
What do you think about sh-engine architecture?
Подгружаю сцену, но почему-то не рендерятся текстуры.
Текстуры для материалов нужно задавать в xml-файлах. Здесь есть описание формата: https://sourceforge.net/p/shengine/wiki/Формат%20материала/
Functions like scene->createLight is in work. Engine is not ready. TODO for this year is scene improvement: frustum culling, loading static geometry, lighting, scene optimizations etc.
Про материалы понятно. Не понятно, как их добавить конкретно к мешу.
Материалы прикрепляются по имени. В меше есть субмеши, использующие материалы, у них у каждого своё имя. К этим именам материалы и прикрепляются. Например в меше есть субмеш, у которого материал называется "bricks". Создаём "material_list.xml" с материалами, один из которых будет с именем: <material name="bricks"></material>. В одной этой xml может быть много материалов прописано. Потом загружаем её через "shRoot->getMaterials()->loadMaterialsList ("material_list.xml");". Файлы материалов по умолчанию должны лежать в папке "../Models", так же как и меши.
Last edit: Nickolay Sosnovikov 2015-05-16
Вообще по идее мне надо было бы сделать ряд примеров как пользоваться движком. Я не ожидал что кто-то заинтересуется так рано.
Ну я бы не сказал, что рано. Я уже больше года, наверное, слежу за выходом обновлений. На движок наткнулся случайно, когда на форуме GameDev прочитал про конкурс гонок. Странно, кстати, что ваше демо в тройку лучших не вошла. Мне кажется, что просто времени не хватило закончить игру до конца. А за описание об материалах - спасибо! Кстати, а материалы формата .obj не работают в движке? Файл .mtl вроде бы считывается.
Файлы mtl движок не читает. Для материалов сейчас только движковый xml. Проблема в том, что mtl не полностью совместим с движком, есть тонкости. Например не поддерживается хранение прозрачности (alpha) в отдельной текстуре, прозрачность должна храниться как 4-ый канал текстуры диффузии. В прочем, так сделано почти во всех движках.
Кстати, этот движок я делаю как раз для ремейка своей игры Running Racer.
Надо написать конвертер mtl > xml + свои параметры. Я думаю это, наверное, лучший выбор для экспорта моделей из 3D-редактора.
Такая проблема: При движении камеры от центра координат, все чаще и чаще начинает дергаться скайбокс. Это из-за шейдера, я думаю?
О, прикольно. Раньше не замечал такое. Возможно это из-за вычислений float при больших значениях. Надо будет подумать над этим.
Еще бывает, что при импорте моделей меш сжимается в одну плоскость. Короче говоря, все треугольники в перемешку.
Выложите, пожалуйста, модель, на которой так происходит.
Я не думаю, что дело в модели, т.к. это не единичный случай. Это происходит даже в способе реализации, к примеру:
Считываю int из файла для установки уровня LOD:
shRoot->getMaterials()->setTexturesLod(считанный_int);
В этом случае меш и деформируется в плоскость, а если напишу просто:
shRoot->getMaterials()->setTexturesLod(3);
все в порядке. Так может дело в LOD? Кстати, насколько большие модели поддерживает сцена?
У меня ничего подобного не наблюдается. Если ставить очень большое или отрицательное значение в методе shRoot->getMaterials()->setTexturesLod();, то отображаются последние текстурные мипы. Не понятно при чём тут меши. Текстурные лоды не могут влиять на геометрию.
Ограничений на количество треугольников в модели нет. На сколько памяти хватит, столько и можно грузить.
Last edit: Nickolay Sosnovikov 2015-05-18
Забыл, модель массивная, около 300000 полигонов, возможно что и из-за этого.
Всё-таки хотелось бы посмотреть на эту модель. И на будущее, это не обсуждение архитектуры движка, а обсуждение багов при его использовании. Для этого отдельный раздел есть.
Last edit: Nickolay Sosnovikov 2015-05-18
Вот она
А, ну всё понятно. Ограничения на количество вершин в меше нет, но есть ограничение на количество вершин в одном субмеше (65536). Сейчас сделал чтобы при загрузке в obj такие огромные субмеши разбивались бы на несколько.
Только не пугайтесь такому низкому fps, ведь сейчас сцена рисуется 7 раз без отсечения невидимого.
Спасибо за тестирование.
Last edit: Nickolay Sosnovikov 2015-05-18
Не за что.
https://github.com/nvpro-samples - примеры алгоритмов и эффектов от NVIDIA. Также есть occlusion culling, базированный на шейдере, посмотрите.
Недавно пробовал использовать физическую библиотеку Newton. Очень понравилась, т.к. качество симуляции на высоте. Жаль только, что из-за этого требовательна к ресурсам, но для небольших игр - самое то!