Процедурная генерация зданий на C++ в Unreal Engine 5. Многопоточность, оптимизация.

Поділитися
Вставка
  • Опубліковано 20 кві 2023
  • В данном ролике демонстрируется работа с потоками через ParallelFor и методом RotateAngleAxis, позволяющими легко и быстро генерировать различные постройки в Instanced Static Mesh.
    ___________________________________________________
    Поддержать на Boosty boosty.to/cubeip
    ___________________________________________________
    #unrealengine5
    ___________________________________________________
    Статья о ParallelFor
    isaratech.com/ue4-improving-s...

КОМЕНТАРІ • 20

  • @RedFi6h
    @RedFi6h 2 місяці тому +2

    про то что проц меньше напрягаеться не знал, круто

  • @qwerty6vov
    @qwerty6vov Рік тому +4

    Интересно, спасибо за видео!!
    А такой вопрос, разве создание кучи кирпичей не скажется на производительности ? Оьвчно рендеринг одного меша проще происходит чел кучи маленьких, если только не работает батяинг. Даже намного быстрее ,с таким больших количеством мешей.
    Пробовали сравнить производительность одного большого сеша и такого собранного в игре?

    • @Cubeap
      @Cubeap  Рік тому +3

      В видео используется Instanced Static Mesh, так что каждый кирпич не самостоятелен и вызовы на отрисовку сокращены ценой некоторых ограничений. Производительность заранее смоделированного меша с такой же детализацией будет значительно хуже и сглаживаться только использованием штук вроде Nanite.

  • @Hfufjcjcjf976tthc
    @Hfufjcjcjf976tthc Місяць тому

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

    • @Cubeap
      @Cubeap  Місяць тому

      Нет, не каждый кирпич дроукол, если использовать инстанс статик меши. Лишние полигоны да, проблема, но процессор такая постройка наоборот разгрузит, в любом случае. Тут ещё, как отметили уже в комментах, индивидуальная коллизия у каждого кирпича запускается при столкновении и желательно сделать какую-нибудь одну невидимую коробку столкновений, а у них коллизию выключить. И тогда всё будет почти отлично. Ещё есть вопрос рендеринга пересекающихся мешей, тут врать не буду, не знаю, насколько он влияет на производительность на стороне видеокарты.

  • @xaartofering7494
    @xaartofering7494 3 місяці тому

    прикольное упражнение. можно поиграться, а потом пойти и сделать игру на колапсе волновой ф

  • @solt_main
    @solt_main 9 місяців тому +1

    А можно ли наделить каждый отдельный такой кубик самостоятельными переменными, делая его независимым, но все еще относящимся к группе блоков?
    Так, например, можно ли разрушить только один из кубиков, не повлияв на остальные?
    Можно ли такую группу блоков передвигать в пространстве?
    Иными словами можно ли с помощью таких логических фигур составлять конкуренцию вокселям?

    • @Cubeap
      @Cubeap  9 місяців тому

      К отдельным инстансам можно обращаться по индексу или выбирать их с помощью трассировки. Затем удалять или обновлять их FTransform. Фактически, они являются самостоятельными переменными в гп и при необходимости цп, конечно, может, менять их там.

  • @andrey.shpilevoy
    @andrey.shpilevoy 6 місяців тому +1

    А движку всеравно на количество обьектов?

    • @Cubeap
      @Cubeap  6 місяців тому +3

      Смотря, что это значит. На стороне процессора количество объектов, грубо говоря, не увеличивается, потому что это инстансы одного меша. Видеокарта их честно отрисовывает и память они честно занимают. Так что и да, и нет.

    • @_Anton_Semenov_
      @_Anton_Semenov_ 3 місяці тому

      @@Cubeap На стороне процессора будет нагрузка, когда надо будет считать коллизии каждого кирпича с бегающими и прыгающими по ней персонажами и противниками, а так же обсчитывать выстрелы и взрывы (даже без разрушаемости). Коллизия с одной коробкой - это одно. Коллизия с тысячей коробок - это другое.

  • @lordew9476
    @lordew9476 5 місяців тому

    слюньки текут но нет )) боюсь боюсь боюсь

  • @chelovekrazumni
    @chelovekrazumni 7 місяців тому +1

    Какой фпс? Я смотрю у тебя в редакторе всё виснет.

    • @Cubeap
      @Cubeap  7 місяців тому +1

      Вручную сделанный пролёт камеры с резкими движениями мыши + запись экрана напрямую. В редакторе фризов нет.

    • @chelovekrazumni
      @chelovekrazumni 7 місяців тому

      @@Cubeap а что по фпс?

    • @chelovekrazumni
      @chelovekrazumni 7 місяців тому

      @@Cubeap и что во время спавна показывает statunitgraph,скачков нету?

  • @chelovekrazumni
    @chelovekrazumni 7 місяців тому

    ну и я думаю лучше использовать HISM

    • @Cubeap
      @Cubeap  7 місяців тому

      HISM при использовании лодов, ISM для нанитов.

    • @chelovekrazumni
      @chelovekrazumni 7 місяців тому

      @@Cubeap знаю) наниты грузят много

  • @mike1pmov
    @mike1pmov Місяць тому

    Просто поиграться прикольно, не более