Compute shader в юнити. Основы

Поділитися
Вставка
  • Опубліковано 28 чер 2024
  • В этом видео мы разберем основы compute шейдеров в юнити. Рассмотрим 3 варианта применения и подготовим основу для дальнейшего изучения материала.
    Ссылка на Discord - / discord
    Видео про рейтрейсинг - • Ray tracing in unity. ...
    Исходный код - github.com/gaitavr/computeSha...
    Паблик игроделов - special3d
    "00:00 - Введение"
    "00:28 - Почему на процессоре медленнее"
    "01:23 - Реализация на видеокарте"
    "03:10 - Идентификаторы потоков в compute shader"
    "04:48 - Как использовать compute shader в c#"
    "06:58 - Фрактал Мандельброта"
    "08:25 - Движение объектов с помощью вычислительного шейдера"
    Поддержка канала:
    Patreon - www.patreon.com/user?u=32502669
    В крипте:
    BTC - 16WmTb4VTFGYrwEjjnMKNNMMzsMB1rPEqD
    ETH - 0x8d35406f8317b846528d0a9ea4a34ce59968dff2
    XRP - rLW9gnQo7BQhU6igk5keqYnH3TVrCxGRzm (TAG - 1438215071)
    LTC- MNSWdzdVsUMnozSU5HhUPEscfxaUK3Fdck
    #unity3d #shader #computeshader #gamedev #ityoutubersru

КОМЕНТАРІ • 112

  • @mariacho8174
    @mariacho8174 2 роки тому +40

    Видео подразумевалось как вводное к шейдерам, но по-моему к нему нужно еще вводное)

  • @tcunay1
    @tcunay1 2 роки тому +22

    Пока сложно для меня, но комментарий оставлю) Спасибо)

  • @skippythemagnificent8103
    @skippythemagnificent8103 2 роки тому +4

    Very few video tutorials have made me this happy. At first I thought you went a little quick, then I appreciated how well you packed so much information in, so clearly, then, I didnt want the videoto end, LOL. Again great video, cant wait for the next and please, keep the subtitle option CC on for all your wonderful video's for us Brit's to enjoy :)

  • @vladkrutenyuk6715
    @vladkrutenyuk6715 2 роки тому

    Всё супер понятно! Видос кайф
    Жду ещё больше видосов на эту тему, давно хотел расширить свои скиллы до компьют шейдеров

  • @inskips
    @inskips 2 роки тому

    Большое спасибо вам Максим. Очень полезные и интересные уроки. Тема очень интересная!

  • @SCHCOMM
    @SCHCOMM 2 роки тому

    Проявляю активность)
    Спасибо за видео!

  • @grinde_wald6888
    @grinde_wald6888 2 роки тому

    лучший канал с туториалами по юнити. Будем ждать продолжение. Спасибо

  • @user-yb7ed5ms2q
    @user-yb7ed5ms2q 2 роки тому +2

    Спасибо. Наконец то о Compute shader понятным языком. Жду еще видосов на эту тему. Например было бы интересно узнать как можно использовать shader для генерации терейна. Так как например в майн крафт.

    • @not_even_toxic
      @not_even_toxic 2 роки тому

      вот как раз с этой темой я сейчас вожусь. Я сделал генерацию и даже добавил сглаживание. Но теперь для меня сложная задача: перенести всё на GPU. Надеюсь заведу свои 2 канала на ютубе, где буду показывать как делал игры, на одном что-то по типу Dani. А на втором канале - гайды простым объяснением сложных тем. Туда думаю войдут Compute Shader'ы, так что следующему поколению будет на чём учиться, чтобы стать умным и быстрее уехать из этой долбанной страны ;p

  • @vladyslavhorbatiuk3089
    @vladyslavhorbatiuk3089 2 роки тому

    Не переставай делать видео!
    Превосходные и наглядные решения.

  • @user-gf6mf2qm9v
    @user-gf6mf2qm9v 2 роки тому

    Очень интересно, жду продолжения с нетерпением

  • @Skyline8622
    @Skyline8622 2 роки тому +1

    Контент ТОП) Огромное спасибо🙂

  • @AlexPlayer1000
    @AlexPlayer1000 2 роки тому +1

    Понравилось продолжай про шейдеры

  • @nikolayantonovsky1131
    @nikolayantonovsky1131 Рік тому

    Отлично объясняешь, очень подробно, c наглядными слайдами.

  • @andyunity
    @andyunity 2 роки тому +1

    Всё ещё жду авторские курсы)) Видосы просто супер!)

    • @gaitavr1992
      @gaitavr1992  2 роки тому

      Ох уж не знаю с курсами

    • @richardgreen9787
      @richardgreen9787 2 роки тому

      @@gaitavr1992 Здравствуйте, очень ценю ваш труд, вы один из лучший блогеров! Курсы у вас получились бы отличные. Думаю курсы для чайников дофига, а вот про паттерны, делегаты, события, наследование, интерфейсы и многое другое очень мало. Особенно с примерами и дз. Конечно можно найти короткие курсы про ооп, полиморфизм и т.д., но на деле их никто не показывает т.е. в коде. Исходя из этого хер поймешь где и когда все это использовать.

  • @user-ih9rh3pc9p
    @user-ih9rh3pc9p 2 роки тому

    Большое спасибо !) Крайне полезное видео. )))

  • @ve1c0m
    @ve1c0m 2 роки тому +12

    нот бэд, для новичков в данной теме примеры сложноватые и хочется более простые и больше пошаговых движений, написание кода например по шагам с объяснением.

  • @AlexStraga
    @AlexStraga 2 роки тому +1

    Очень нужная тема. Шейдеры вещь крутая)

  • @mdvulfix
    @mdvulfix 2 роки тому +1

    Супер контент =)) Мои извилины уже напряглись в предвкушении. Подсцыкивают.

  • @ericettoo
    @ericettoo 2 роки тому +1

    Лайк поставил, комментарий написал :D

  • @user-xj9hn3fg8n
    @user-xj9hn3fg8n 2 роки тому

    Отличное объяснение, браво!

  • @ruslan_yefimov
    @ruslan_yefimov 2 роки тому

    Нужно больше компут шейдеров)

  • @ecosmile4212
    @ecosmile4212 2 роки тому +2

    Бошка аж закипает но интересно, спасибо большое!

  • @romanilyin
    @romanilyin 2 роки тому

    Спасибо, крутое видео. Было бы здорово ещё пример с ViewShed (поверхностью видимости по карте высот) разобрать. Например, просчет видимости объемной для нескольких юнитов или просчет зоны которую будет видно со всех точек дороги.

  • @amateursdream
    @amateursdream 2 роки тому

    Оставляю комментарий, тема интересная

  • @yevheniihladkykh1015
    @yevheniihladkykh1015 2 роки тому

    Спасибо, очень полезно!

  • @vano2vano
    @vano2vano 2 роки тому

    здорово, спасибо!

  • @ranger2703
    @ranger2703 Рік тому

    Большое спасибо. Подобной инфы в инете мало, а вот всякой хрени по типу как создать простой фпс много

  • @Dan.398
    @Dan.398 2 роки тому +2

    Спасибо за видео. Тема занятна и очень интересна. Хотя я не могу вспомнить реальные случаи из, скажем, выпущенных игр, где такой массив мелких объектов мог бы применяться (хотя только одно - сцены загрузок из Control. Но там можно просто прирендерить абстракции и выгружать видеорядом). Да и ботов через ЦП просчитывать можно, ибо 500 шт ни ГПУ, ни сам игрок не вывезут. А так с нетерпением жду продолжения.

    • @il35215
      @il35215 2 роки тому +1

      разработчики Alto's Adventure на какой то из конференций расказывали что они столкнулись с тем что на CPU их игра давала пару фпс из-за чего они перенесли весь просчет частиц снега в GPU и выпустили игру со стабильным хорошим fps.

    • @not_even_toxic
      @not_even_toxic 2 роки тому

      Весь прикол этой системы кроется в неявной ситуативности. Например, процедурная генерация мешей, симуляция жидкости, поиск путей для NPC. То что кажется простым и естественным, но из-за своих масштабов становится сложной задачей, решаемой только засчёт GPU

  • @nest0p
    @nest0p 2 роки тому

    Спасибо!

  • @DmitryTimofeev_general
    @DmitryTimofeev_general 2 роки тому +1

    Класс

  • @Dimetroc
    @Dimetroc 2 роки тому +1

    Я бы порекомендовал заострить внимание на роли буффера: процессе переноса данных с CPU на GPU и обратно. А то буфер мы юзаем, а его роль, а самое главное, что за этим кроется не совсем понятно будет для новичков. Также рассказать болле детально про область применения Compute Shaders. Примеры хорошие, но нужно чуть больше теории дать.

  • @user-go7qv2yc6z
    @user-go7qv2yc6z 2 роки тому

    Очень интересно! Сразу понимаешь профессиональный разрыв между 90% материалов в сети и тем, как надо делать. Придется не раз пересмотреть. Вопрос к продвинутым коллегам - есть примеры как правильно организовать взаимодействие между условной рекламой в ЭддМобс и основным потоком. Сталкиваюсь, что в редакторе все ок, а на Андроиде начинаются чудеса. Спасибо.

  • @foly9032
    @foly9032 2 роки тому

    жду)

  • @saurontheblack6566
    @saurontheblack6566 Рік тому

    не работал с шейдерами Юнити, но работал с шейдерами OpenGL так что урок в принципе понятен

  • @kiririn39m8
    @kiririn39m8 2 роки тому

    Наконец то я понял зачем атрибут numthreads а как его вычислять

  • @MooNDesigns
    @MooNDesigns 2 роки тому

    спасибо

  • @user-cc5wr9nl6l
    @user-cc5wr9nl6l 9 місяців тому

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

  • @voltionboal9390
    @voltionboal9390 2 роки тому +1

    Спасибо большое, очень интересна эта тема, отдельное спасибо за 3 примера, но всё ровно сложнова-то, полезу пожалуй в код, а потом на второй круг видео)
    Подскажите пожалуйста, а на мобилках они работают без проблем?

    • @gaitavr1992
      @gaitavr1992  2 роки тому +1

      Некоторые не поддерживают. Вот есть свойство, которое покажет - поддерживается или нет.
      docs.unity3d.com/ScriptReference/SystemInfo-supportsComputeShaders.html

  • @rahatbakum7852
    @rahatbakum7852 Рік тому

    кайффф

  • @jesco3921
    @jesco3921 2 роки тому

    nice

  • @user-nm5zh2zb8c
    @user-nm5zh2zb8c 2 роки тому

    Нужно разбираться, в идеале повторить все видео на канале)

  • @STARasGAMES
    @STARasGAMES 2 роки тому

    Есчо, хочу есчо)

  • @TeJIeqpoH
    @TeJIeqpoH 2 роки тому +1

    В последнем примере возможно стоит GetData сделать в лейт апдейте, т.к. Dispatch же не сразу выполняется.

  • @Elledan3101
    @Elledan3101 2 роки тому

    Добротный материал! Все довольно понятно, а украинский говор создаёт впечатление, что человек отлично понимает то, о чем говорит 👍

  • @user-yn6jj1yi2v
    @user-yn6jj1yi2v 2 роки тому +4

    Блин, чувак, поделись пожалуйста, какие материалы учил, что бы научиться работать с вычислительными щейдерами!

    • @gaitavr1992
      @gaitavr1992  2 роки тому

      Англоязычные источники и документацию, ничего сверхъестественного

    • @user-yn6jj1yi2v
      @user-yn6jj1yi2v 2 роки тому

      @@gaitavr1992 Понял. Ты упоминал запуск на телефонах компьют щейдера. Тебе доводилось делать полноценные приложения или игры с помощью них? Если да, то как на самом деле обстоят дела с поддержкой ? Есть смысл пилить на телефоне массовые приложухи с компьют щейдерами ?

    • @user-yn6jj1yi2v
      @user-yn6jj1yi2v 2 роки тому

      @Boris Nikolaev спасибо за инфу !

  • @user-tp1qn2wt6t
    @user-tp1qn2wt6t 2 роки тому

    Какой компилятор для вычислительных шейдеров используешь?

  • @4ESTER011A
    @4ESTER011A 2 роки тому

    Привет сделай видео про зенджект пожалуйста

  • @igorfomichev1718
    @igorfomichev1718 2 роки тому

    Крутая штука, но на мобилах тяжело применима так как требует openGL ES 3.1, а это достаточно современные девайсы

  • @RemusCroft
    @RemusCroft 2 роки тому

    Шо по производительности compute shader на мобилках, APU и прочих девайсах с кастрированным GPU?

  • @krivodeling7925
    @krivodeling7925 8 місяців тому

    +

  • @mrkitties14
    @mrkitties14 8 місяців тому

    Да, блендер мне не светит сеть у меня АМД видюха и он ренлерит всё на процессоре...

  • @DivineOwl
    @DivineOwl Рік тому

    Вот только GetData медленный ппц.. всю малину портит если в Update ставить. 512 на 512 структур уже ниже 60 fps у меня падает. Еще и основной поток приостанавливается. Есть вроде асинхронный, но не думаю что спасет. Если есть идеи как этот момент обойти буду благодарен.

  • @user-su7yd6og7y
    @user-su7yd6og7y 2 роки тому

    Доброго времени года.
    Знаю, что поздно задаю вопрос.
    Ваши ролики по шейдерам очень интересны, но сложны.
    С чего можно начать их изучение?
    Где находится "точка входа" в эту тему?
    В тех материалах, что самостоятельно находил материал дают, аля: "Просто повторяй как обезьянка." - в итоге нет никакого понимания(

    • @gaitavr1992
      @gaitavr1992  2 роки тому +1

      У меня уже есть два видео для начинающих

  • @timurnikolaev1438
    @timurnikolaev1438 2 роки тому

    привет, вы проводите частные уроки?

  • @user-gx3ii6sn7b
    @user-gx3ii6sn7b 2 роки тому

    А что с поддержкой на мобильных девайсах? Пробовал реализацию compute шейдеров на Three js в свое время, и на некоторых девайсах были проблемы.

    • @gaitavr1992
      @gaitavr1992  2 роки тому

      На большинстве поддерживается, если что есть системное свойство, которое юнити предоставляет

    • @user-gx3ii6sn7b
      @user-gx3ii6sn7b 2 роки тому

      @@gaitavr1992 Просто еще почему думается, что могут быть проблемы. VFX граф который и работает на GPU ломается на некоторых графических ускорителях Adreno.

    • @user-gx3ii6sn7b
      @user-gx3ii6sn7b 2 роки тому

      Во всяком случае год назад так было)

    • @gaitavr1992
      @gaitavr1992  2 роки тому

      Вполне возможно, что могут быть проблемы, лучше тестировать и применять в случае хотя бы совместимости железа

  • @andruha341
    @andruha341 2 роки тому

    и на фига я это смотрю в 2 часа ночи?! кто мне скажет? всё ровно как баран на новые ворота, не хрена не понятно..эээ

  • @user-oh5jk6kf4x
    @user-oh5jk6kf4x 2 роки тому

    Это все замечательно, но очень глупо рассказывать новичкам сложный пример в теме, которую человек хочет освоить

    • @gaitavr1992
      @gaitavr1992  2 роки тому

      Там нет сложных примеров

    • @user-oh5jk6kf4x
      @user-oh5jk6kf4x 2 роки тому

      @@gaitavr1992 нет сложных примеров это описание каких то основ или синтаксиса, это делается очень быстро при желании. Любое обучение обычно делается с помощью образов или ассоциаций, даже здесь это вполне реально придумать, в ином случае это методичка для уже освоившего шейдеры и лишь подкрепляющего свои знания

    • @gaitavr1992
      @gaitavr1992  2 роки тому

      Выпустите видео с образами и ассоциациями. Я не делаю контент для совсем маленьких, для них полно информации

    • @user-oh5jk6kf4x
      @user-oh5jk6kf4x 2 роки тому +1

      @@gaitavr1992 по шейдерам нет

  • @user-gb2mn4px8o
    @user-gb2mn4px8o 2 роки тому

    Максим, ты из Украины или нет?

    • @gaitavr1992
      @gaitavr1992  2 роки тому

      Из Украины

    • @user-gb2mn4px8o
      @user-gb2mn4px8o 2 роки тому

      @@gaitavr1992 Понятно, я так и думал, понял я это по по твоему произношению буквы 'г'

  • @GrinyaPLAY
    @GrinyaPLAY 2 роки тому

    Материал хороший, но твоё "гыканье" невозможно слушать. Отключил звук и включил субтитры.

    • @gaitavr1992
      @gaitavr1992  2 роки тому +7

      Отлично, я буду стараться употреблять еще больше слов с Г, удачи с субтитрами

    • @alexsklyarov6792
      @alexsklyarov6792 2 роки тому

      Смешные люди))), "гыканье" ему не нравиться... Хорошо что не индус на индусо-английском)))), кажется человеку не к чему придраться)))