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

2024 ж. 16 Мам.
13 242 Рет қаралды

В этом видео мы разберем основы compute шейдеров в юнити. Рассмотрим 3 варианта применения и подготовим основу для дальнейшего изучения материала.
Ссылка на Discord - / discord
Видео про рейтрейсинг - • Ray tracing in unity. ...
Исходный код - github.com/gaitavr/computeSha...
Паблик игроделов - vk.com/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

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

    @mariacho8174@mariacho81742 жыл бұрын
  • Пока сложно для меня, но комментарий оставлю) Спасибо)

    @tcunay1@tcunay12 жыл бұрын
  • 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 :)

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

    @vladkrutenyuk6715@vladkrutenyuk67152 жыл бұрын
  • Не переставай делать видео! Превосходные и наглядные решения.

    @vladyslavhorbatiuk3089@vladyslavhorbatiuk30892 жыл бұрын
  • Проявляю активность) Спасибо за видео!

    @SCHCOMM@SCHCOMM2 жыл бұрын
  • Контент ТОП) Огромное спасибо🙂

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

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

    @grinde_wald6888@grinde_wald68882 жыл бұрын
  • Очень интересно, жду продолжения с нетерпением

    @user-gf6mf2qm9v@user-gf6mf2qm9v2 жыл бұрын
  • Очень нужная тема. Шейдеры вещь крутая)

    @AlexStraga@AlexStraga2 жыл бұрын
  • Понравилось продолжай про шейдеры

    @AlexPlayer1000@AlexPlayer10002 жыл бұрын
  • Всё ещё жду авторские курсы)) Видосы просто супер!)

    @andyunity@andyunity2 жыл бұрын
    • Ох уж не знаю с курсами

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

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

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

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

    @nikolayantonovsky1131@nikolayantonovsky1131 Жыл бұрын
  • Бошка аж закипает но интересно, спасибо большое!

    @ecosmile4212@ecosmile42122 жыл бұрын
  • Большое спасибо !) Крайне полезное видео. )))

    @user-ih9rh3pc9p@user-ih9rh3pc9p2 жыл бұрын
  • Лайк поставил, комментарий написал :D

    @ericettoo@ericettoo2 жыл бұрын
  • Спасибо, очень полезно!

    @yevheniihladkykh1015@yevheniihladkykh10152 жыл бұрын
  • Отличное объяснение, браво!

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

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

    @ve1c0m@ve1c0m2 жыл бұрын
    • Всё сделано чётко

      @user-xj9hn3fg8n@user-xj9hn3fg8n2 жыл бұрын
  • Оставляю комментарий, тема интересная

    @amateursdream@amateursdream2 жыл бұрын
  • Нужно больше компут шейдеров)

    @ruslan_yefimov@ruslan_yefimov2 жыл бұрын
  • здорово, спасибо!

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

    @mdvulfix@mdvulfix2 жыл бұрын
  • Спасибо!

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

    @user-go7qv2yc6z@user-go7qv2yc6z2 жыл бұрын
  • жду)

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

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

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

      @tim_developer@tim_developer2 жыл бұрын
  • спасибо

    @MooNDesigns@MooNDesigns2 жыл бұрын
  • Класс

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

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

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

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

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

      @gaitavr1992@gaitavr19922 жыл бұрын
  • кайффф

    @rahatbakum7852@rahatbakum785211 ай бұрын
  • nice

    @jesco3921@jesco39212 жыл бұрын
  • Какой компилятор для вычислительных шейдеров используешь?

    @user-tp1qn2wt6t@user-tp1qn2wt6t2 жыл бұрын
  • Нужно разбираться, в идеале повторить все видео на канале)

    @user-nm5zh2zb8c@user-nm5zh2zb8c2 жыл бұрын
  • Наконец то я понял зачем атрибут numthreads а как его вычислять

    @kiririn39m8@kiririn39m82 жыл бұрын
  • не работал с шейдерами Юнити, но работал с шейдерами OpenGL так что урок в принципе понятен

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

    @TeJIeqpoH@TeJIeqpoH2 жыл бұрын
    • Имеет смысл

      @gaitavr1992@gaitavr19922 жыл бұрын
  • Привет сделай видео про зенджект пожалуйста

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

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

    @user-yn6jj1yi2v@user-yn6jj1yi2v2 жыл бұрын
    • Англоязычные источники и документацию, ничего сверхъестественного

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

      @user-yn6jj1yi2v@user-yn6jj1yi2v2 жыл бұрын
    • @Boris Nikolaev спасибо за инфу !

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

    @DivineOwl@DivineOwl Жыл бұрын
  • Есчо, хочу есчо)

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

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

    @user-su7yd6og7y@user-su7yd6og7y2 жыл бұрын
    • У меня уже есть два видео для начинающих

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

    @igorfomichev1718@igorfomichev17182 жыл бұрын
  • привет, вы проводите частные уроки?

    @timurnikolaev1438@timurnikolaev14382 жыл бұрын
    • Привет, нет

      @gaitavr1992@gaitavr19922 жыл бұрын
  • +

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

    @user-gx3ii6sn7b@user-gx3ii6sn7b2 жыл бұрын
    • На большинстве поддерживается, если что есть системное свойство, которое юнити предоставляет

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

      @user-gx3ii6sn7b@user-gx3ii6sn7b2 жыл бұрын
    • Во всяком случае год назад так было)

      @user-gx3ii6sn7b@user-gx3ii6sn7b2 жыл бұрын
    • Вполне возможно, что могут быть проблемы, лучше тестировать и применять в случае хотя бы совместимости железа

      @gaitavr1992@gaitavr19922 жыл бұрын
  • Да, блендер мне не светит сеть у меня АМД видюха и он ренлерит всё на процессоре...

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

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

    @user-oh5jk6kf4x@user-oh5jk6kf4x2 жыл бұрын
    • Там нет сложных примеров

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

      @user-oh5jk6kf4x@user-oh5jk6kf4x2 жыл бұрын
    • Выпустите видео с образами и ассоциациями. Я не делаю контент для совсем маленьких, для них полно информации

      @gaitavr1992@gaitavr19922 жыл бұрын
    • @@gaitavr1992 по шейдерам нет

      @user-oh5jk6kf4x@user-oh5jk6kf4x2 жыл бұрын
  • Максим, ты из Украины или нет?

    @user-gb2mn4px8o@user-gb2mn4px8o2 жыл бұрын
    • Из Украины

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

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

    @GrinyaPLAY@GrinyaPLAY2 жыл бұрын
    • Отлично, я буду стараться употреблять еще больше слов с Г, удачи с субтитрами

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

      @alexsklyarov6792@alexsklyarov67922 жыл бұрын
KZhead