Menu

sh-engine architecture

2015-03-16
2016-05-05
1 2 > >> (Page 1 of 2)
  • Nickolay Sosnovikov

    What do you think about sh-engine architecture?

     
  • Anonymous

    Anonymous - 2015-05-07
    Post awaiting moderation.
  • Anonymous

    Anonymous - 2015-05-09
    Post awaiting moderation.
  • Raizel

    Raizel - 2015-05-16

    Подгружаю сцену, но почему-то не рендерятся текстуры.

     
    • Nickolay Sosnovikov

      Текстуры для материалов нужно задавать в xml-файлах. Здесь есть описание формата: https://sourceforge.net/p/shengine/wiki/Формат%20материала/

       
  • Nickolay Sosnovikov

    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.

     
  • Raizel

    Raizel - 2015-05-16

    Про материалы понятно. Не понятно, как их добавить конкретно к мешу.

     
    • Nickolay Sosnovikov

      Материалы прикрепляются по имени. В меше есть субмеши, использующие материалы, у них у каждого своё имя. К этим именам материалы и прикрепляются. Например в меше есть субмеш, у которого материал называется "bricks". Создаём "material_list.xml" с материалами, один из которых будет с именем: <material name="bricks"></material>. В одной этой xml может быть много материалов прописано. Потом загружаем её через "shRoot->getMaterials()->loadMaterialsList ("material_list.xml");". Файлы материалов по умолчанию должны лежать в папке "../Models", так же как и меши.

       

      Last edit: Nickolay Sosnovikov 2015-05-16
    • Nickolay Sosnovikov

      Вообще по идее мне надо было бы сделать ряд примеров как пользоваться движком. Я не ожидал что кто-то заинтересуется так рано.

       
  • Raizel

    Raizel - 2015-05-16

    Ну я бы не сказал, что рано. Я уже больше года, наверное, слежу за выходом обновлений. На движок наткнулся случайно, когда на форуме GameDev прочитал про конкурс гонок. Странно, кстати, что ваше демо в тройку лучших не вошла. Мне кажется, что просто времени не хватило закончить игру до конца. А за описание об материалах - спасибо! Кстати, а материалы формата .obj не работают в движке? Файл .mtl вроде бы считывается.

     
    • Nickolay Sosnovikov

      Файлы mtl движок не читает. Для материалов сейчас только движковый xml. Проблема в том, что mtl не полностью совместим с движком, есть тонкости. Например не поддерживается хранение прозрачности (alpha) в отдельной текстуре, прозрачность должна храниться как 4-ый канал текстуры диффузии. В прочем, так сделано почти во всех движках.
      Кстати, этот движок я делаю как раз для ремейка своей игры Running Racer.

       
  • Raizel

    Raizel - 2015-05-16

    Надо написать конвертер mtl > xml + свои параметры. Я думаю это, наверное, лучший выбор для экспорта моделей из 3D-редактора.

     
  • Raizel

    Raizel - 2015-05-18

    Такая проблема: При движении камеры от центра координат, все чаще и чаще начинает дергаться скайбокс. Это из-за шейдера, я думаю?

     
    • Nickolay Sosnovikov

      О, прикольно. Раньше не замечал такое. Возможно это из-за вычислений float при больших значениях. Надо будет подумать над этим.

       
  • Raizel

    Raizel - 2015-05-18

    Еще бывает, что при импорте моделей меш сжимается в одну плоскость. Короче говоря, все треугольники в перемешку.

     
    • Nickolay Sosnovikov

      Выложите, пожалуйста, модель, на которой так происходит.

       
  • Raizel

    Raizel - 2015-05-18

    Я не думаю, что дело в модели, т.к. это не единичный случай. Это происходит даже в способе реализации, к примеру:
    Считываю int из файла для установки уровня LOD:
    shRoot->getMaterials()->setTexturesLod(считанный_int);
    В этом случае меш и деформируется в плоскость, а если напишу просто:
    shRoot->getMaterials()->setTexturesLod(3);
    все в порядке. Так может дело в LOD? Кстати, насколько большие модели поддерживает сцена?

     
    • Nickolay Sosnovikov

      У меня ничего подобного не наблюдается. Если ставить очень большое или отрицательное значение в методе shRoot->getMaterials()->setTexturesLod();, то отображаются последние текстурные мипы. Не понятно при чём тут меши. Текстурные лоды не могут влиять на геометрию.
      Ограничений на количество треугольников в модели нет. На сколько памяти хватит, столько и можно грузить.

       

      Last edit: Nickolay Sosnovikov 2015-05-18
  • Raizel

    Raizel - 2015-05-18

    Забыл, модель массивная, около 300000 полигонов, возможно что и из-за этого.

     
    • Nickolay Sosnovikov

      Всё-таки хотелось бы посмотреть на эту модель. И на будущее, это не обсуждение архитектуры движка, а обсуждение багов при его использовании. Для этого отдельный раздел есть.

       

      Last edit: Nickolay Sosnovikov 2015-05-18
  • Raizel

    Raizel - 2015-05-18

    Вот она

     
    • Nickolay Sosnovikov

      А, ну всё понятно. Ограничения на количество вершин в меше нет, но есть ограничение на количество вершин в одном субмеше (65536). Сейчас сделал чтобы при загрузке в obj такие огромные субмеши разбивались бы на несколько.
      Только не пугайтесь такому низкому fps, ведь сейчас сцена рисуется 7 раз без отсечения невидимого.
      Спасибо за тестирование.

       

      Last edit: Nickolay Sosnovikov 2015-05-18
  • Raizel

    Raizel - 2015-05-19

    Не за что.

     
  • Raizel

    Raizel - 2015-05-19

    https://github.com/nvpro-samples - примеры алгоритмов и эффектов от NVIDIA. Также есть occlusion culling, базированный на шейдере, посмотрите.

     
  • Raizel

    Raizel - 2015-05-31

    Недавно пробовал использовать физическую библиотеку Newton. Очень понравилась, т.к. качество симуляции на высоте. Жаль только, что из-за этого требовательна к ресурсам, но для небольших игр - самое то!

     
1 2 > >> (Page 1 of 2)

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.