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

แชร์
ฝัง
  • เผยแพร่เมื่อ 20 ก.ค. 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 3 ปีที่แล้ว +41

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

  • @tcunay1
    @tcunay1 3 ปีที่แล้ว +23

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

  • @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 3 ปีที่แล้ว

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

  • @inskips
    @inskips 2 ปีที่แล้ว

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

  • @SCHCOMM
    @SCHCOMM 3 ปีที่แล้ว

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

  • @vladyslavhorbatiuk3089
    @vladyslavhorbatiuk3089 3 ปีที่แล้ว

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

  • @grinde_wald6888
    @grinde_wald6888 3 ปีที่แล้ว

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

  • @user-gf6mf2qm9v
    @user-gf6mf2qm9v 2 ปีที่แล้ว

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

  • @Skyline8622
    @Skyline8622 3 ปีที่แล้ว +1

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

  • @nikolayantonovsky1131
    @nikolayantonovsky1131 ปีที่แล้ว

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

  • @user-yb7ed5ms2q
    @user-yb7ed5ms2q 2 ปีที่แล้ว +2

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

    • @not_even_toxic
      @not_even_toxic 2 ปีที่แล้ว

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

  • @user-ih9rh3pc9p
    @user-ih9rh3pc9p 2 ปีที่แล้ว

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

  • @AlexStraga
    @AlexStraga 3 ปีที่แล้ว +1

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

  • @ruslan_yefimov
    @ruslan_yefimov 2 ปีที่แล้ว

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

  • @AlexPlayer1000
    @AlexPlayer1000 3 ปีที่แล้ว +1

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

  • @ve1c0m
    @ve1c0m 3 ปีที่แล้ว +12

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

    • @user-xj9hn3fg8n
      @user-xj9hn3fg8n 2 ปีที่แล้ว

      Всё сделано чётко

  • @user-xj9hn3fg8n
    @user-xj9hn3fg8n 2 ปีที่แล้ว

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

  • @romanilyin
    @romanilyin 2 ปีที่แล้ว

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

  • @mdvulfix
    @mdvulfix 3 ปีที่แล้ว +1

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

  • @ranger2703
    @ranger2703 ปีที่แล้ว

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

  • @ericettoo
    @ericettoo 3 ปีที่แล้ว +1

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

  • @ecosmile4212
    @ecosmile4212 3 ปีที่แล้ว +2

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

  • @andyunity
    @andyunity 3 ปีที่แล้ว +1

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

    • @gaitavr1992
      @gaitavr1992  3 ปีที่แล้ว

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

    • @richardgreen9787
      @richardgreen9787 2 ปีที่แล้ว

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

  • @yevheniihladkykh1015
    @yevheniihladkykh1015 3 ปีที่แล้ว

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

  • @amateursdream
    @amateursdream 3 ปีที่แล้ว

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

  • @vano2vano
    @vano2vano 3 ปีที่แล้ว

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

  • @Dan.398
    @Dan.398 3 ปีที่แล้ว +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 ปีที่แล้ว

    Спасибо!

  • @saurontheblack6566
    @saurontheblack6566 ปีที่แล้ว

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

  • @DmitryTimofeev_general
    @DmitryTimofeev_general 3 ปีที่แล้ว +1

    Класс

  • @user-go7qv2yc6z
    @user-go7qv2yc6z 2 ปีที่แล้ว

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

  • @Dimetroc
    @Dimetroc 3 ปีที่แล้ว +1

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

  • @foly9032
    @foly9032 3 ปีที่แล้ว

    жду)

  • @user-cc5wr9nl6l
    @user-cc5wr9nl6l 10 หลายเดือนก่อน

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

  • @kiririn39m8
    @kiririn39m8 2 ปีที่แล้ว

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

  • @user-nm5zh2zb8c
    @user-nm5zh2zb8c 3 ปีที่แล้ว

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

  • @rahatbakum7852
    @rahatbakum7852 ปีที่แล้ว

    кайффф

  • @MooNDesigns
    @MooNDesigns 3 ปีที่แล้ว

    спасибо

  • @voltionboal9390
    @voltionboal9390 3 ปีที่แล้ว +1

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

    • @gaitavr1992
      @gaitavr1992  3 ปีที่แล้ว +1

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

  • @jesco3921
    @jesco3921 3 ปีที่แล้ว

    nice

  • @Elledan3101
    @Elledan3101 2 ปีที่แล้ว

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

  • @STARasGAMES
    @STARasGAMES 3 ปีที่แล้ว

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

  • @TeJIeqpoH
    @TeJIeqpoH 3 ปีที่แล้ว +1

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

    • @gaitavr1992
      @gaitavr1992  3 ปีที่แล้ว +1

      Имеет смысл

  • @krivodeling7925
    @krivodeling7925 9 หลายเดือนก่อน

    +

  • @igorfomichev1718
    @igorfomichev1718 2 ปีที่แล้ว

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

  • @user-tp1qn2wt6t
    @user-tp1qn2wt6t 3 ปีที่แล้ว

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

  • @4ESTER011A
    @4ESTER011A 3 ปีที่แล้ว

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

  • @user-yn6jj1yi2v
    @user-yn6jj1yi2v 3 ปีที่แล้ว +4

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

    • @gaitavr1992
      @gaitavr1992  3 ปีที่แล้ว

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

    • @user-yn6jj1yi2v
      @user-yn6jj1yi2v 3 ปีที่แล้ว

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

    • @user-yn6jj1yi2v
      @user-yn6jj1yi2v 3 ปีที่แล้ว

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

  • @DivineOwl
    @DivineOwl ปีที่แล้ว

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

  • @RemusCroft
    @RemusCroft 3 ปีที่แล้ว

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

  • @mrkities
    @mrkities 9 หลายเดือนก่อน

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

  • @user-su7yd6og7y
    @user-su7yd6og7y 2 ปีที่แล้ว

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

    • @gaitavr1992
      @gaitavr1992  2 ปีที่แล้ว +1

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

  • @wppf
    @wppf 3 ปีที่แล้ว

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

    • @gaitavr1992
      @gaitavr1992  3 ปีที่แล้ว

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

    • @wppf
      @wppf 3 ปีที่แล้ว

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

    • @wppf
      @wppf 3 ปีที่แล้ว

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

    • @gaitavr1992
      @gaitavr1992  3 ปีที่แล้ว

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

  • @timurnikolaev1438
    @timurnikolaev1438 2 ปีที่แล้ว

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

    • @gaitavr1992
      @gaitavr1992  2 ปีที่แล้ว

      Привет, нет

  • @andruha341
    @andruha341 3 ปีที่แล้ว

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

  • @user-gb2mn4px8o
    @user-gb2mn4px8o 3 ปีที่แล้ว

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

    • @gaitavr1992
      @gaitavr1992  3 ปีที่แล้ว

      Из Украины

    • @user-gb2mn4px8o
      @user-gb2mn4px8o 3 ปีที่แล้ว

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

  • @user-oh5jk6kf4x
    @user-oh5jk6kf4x 3 ปีที่แล้ว

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

    • @gaitavr1992
      @gaitavr1992  3 ปีที่แล้ว

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

    • @user-oh5jk6kf4x
      @user-oh5jk6kf4x 3 ปีที่แล้ว

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

    • @gaitavr1992
      @gaitavr1992  3 ปีที่แล้ว

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

    • @user-oh5jk6kf4x
      @user-oh5jk6kf4x 3 ปีที่แล้ว +1

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

  • @GrinyaPLAY
    @GrinyaPLAY 3 ปีที่แล้ว

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

    • @gaitavr1992
      @gaitavr1992  3 ปีที่แล้ว +7

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

    • @alexsklyarov6792
      @alexsklyarov6792 3 ปีที่แล้ว

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