Как писать шейдеры в юнити. Часть 1. Поверхностный шейдер

Поділитися
Вставка
  • Опубліковано 18 чер 2024
  • Что такое поверхностный шейдер и как он работает. Для чего нужный uv координаты и как умножается цвет. Чем отличается float от fixed. Об этом и многом другом в первом ролике курса по шейдерам в юнити.
    Ссылка на Discord - / discord
    Шейдер CD диска - • Юнити шейдер сд диска
    Видео про instancing - • Оптимизация игр на uni...
    Шейдер космоса - • Как создать космос в ю...
    "00:00 - Введение"
    "00:20 - Название шейдера и его категория"
    "00:52 - Параметры шейдера"
    "02:26 - Что такое subshader"
    "04:00 - Какие типы используются в шейдере"
    "07:20 - Вычисление в поверхностном шейдере"
    "08:44 - Инверсия цвета в шейдере"
    "09:53 - Градиент цвета в шейдере"
    "11:31 - Анимация uv координат"
    Поддержка канала:
    Patreon - www.patreon.com/user?u=32502669
    В крипте:
    BTC - 16WmTb4VTFGYrwEjjnMKNNMMzsMB1rPEqD
    ETH - 0x8d35406f8317b846528d0a9ea4a34ce59968dff2
    XRP - rLW9gnQo7BQhU6igk5keqYnH3TVrCxGRzm (TAG - 1438215071)
    LTC- MNSWdzdVsUMnozSU5HhUPEscfxaUK3Fdck
    #unity3d #shader #surfaceshader #gamedev #ityoutubersru

КОМЕНТАРІ • 128

  • @firerun8599
    @firerun8599 2 роки тому +55

    О, наконец то уроки по шеидерам, надеюсь по ним будет много уроков

  • @Diyozen
    @Diyozen 2 роки тому +30

    Как всегда - топ!
    Важное уточнение, в верхней панели сцены, рядом с настройками включения-выключения звука и света, по кнопке (где нарисовано две плоскости и плюсик) можно включить Always Refresh, что будет обновлять шейдер и без запуска. Это очень помогает, потому что в какой-то момент постоянные клики по Play начинают выводить из себя. Особенно, когда очень часто что-то проверяешь.

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

      А вот этого не знал, спасибо

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

      Респект, чувак, ты спас многол моего времени и нервов ))

  • @protudorin
    @protudorin 2 роки тому +3

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

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

    Спасибо Максим, +10 к пониманию того как это работает)

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

      Буду продолжать)

  • @5uDouble
    @5uDouble Рік тому +3

    Я уверенный мидл, но с твоими уроками всегда нахожу что-то полезное для себя! Спасибо за уроки по шейдерам - для меня они особенно полезны

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

    Очень круто, спасибо. Особенно за разбор структуры файла, специфичного для юнити

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

    Спасибо, это было прекрасно. Жду продолжения.

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

    Спасибо большое за урок по шейдерам, хотелось бы побольше видео на эту тему

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

    То что я ждал, спасибо большое

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

    Супер контент, ждем новых уроков!

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

      Следующее видео будет тоже по это тематике

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

    Очень круто, давно ждал настолько подробного и понятного урока 😊👍

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

    комментарий в поддержку)

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

    Мое почтение! Как всегда на уровне

  • @corvius
    @corvius Рік тому +1

    Пришло время учить шейдеры. Спасибо за урок!

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

    Очень круто и полезно, а главное понятно. Ждём продолжения

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

      Хорошо, что понятно получилось)

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

    Офигенно! Спасибо за труд

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

    Увидел ролик и очень хочу посмотреть. Обложка очень манит!
    Жду вечера.!
    Огонь только за наличие 🔥🔥🔥

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

    Спасибо большое за разбор темы шейдеров!

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

    Ооо.. годнота подъехала, буду ждать новые ролики по шейдерам))

  • @katerynakomar1375
    @katerynakomar1375 2 роки тому +3

    Дякую, Макс! Найкраще співвідношення теорії та практики для початківців, яке я наразі знайшла🙂

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

    Оч доступно объясняешь! Спасибо!

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

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

  • @ode2877
    @ode2877 2 роки тому +3

    Годная тема! Спасибо

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

    Спасибо большое за старания, отличный урок.

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

    Большое спасибо! Крайне подробно и интересно!

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

    Особенно круто что есть домашнее задание, спасибо за контент

  • @Yuriy-tk2pz
    @Yuriy-tk2pz 2 роки тому +1

    Комментарий в поддержку топового канала 👍

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

    Выглядит неплохо , ещё не смотрела , но круто , надо попробовать

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

    Отличное видео, большое спасибо

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

    Спасибо, эта информация полезна для меня.

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

    Жду следующую часть!

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

    Отличное видео, спасибо большое! Лайк, подписка

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

    Спасибо! очень круто!

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

    Круть!
    Нужна новая рубрика!!!!
    Лукас и коммент в поддержку автора канала🔥🔥🔥

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

    Жду продолжения)

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

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

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

    Большое спасибо за урок!

  • @user-ef4yx3mu2q
    @user-ef4yx3mu2q Рік тому

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

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

    Прошу не бросать тему с шейдерами ,
    это очень интересно

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

    Большое спасибо!

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

    Наконец-то!

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

    кайф. спасибо за урок!

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

    Круто! Надо будет все повторить. Я работая в Maya привык к нодам, а в unity использую Amplify shader editor. Но всегда мечтал уметь писать шейдера.

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

    Информация по шейдерам и на русском, я так тебя давно ждал

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

    Спасибо, очень полезно. Приятно осозновать что 95% инфы я таки уже понимал ) А вот наименования в Input было неожиданным. Обычно тупо копировал целые блоки и "ничего не трогал" ) Ждем продолжения.

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

      Работает - не трогай?)

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

      @@gaitavr1992 отчасти) Чаще "хз откуда оно берет данные, лучше не буду трогать")

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

    Если будуt еще уроки - обязательно буду смотреть!

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

    Кайф. Однозначно подписка

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

    Годно, мужик!

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

    Топ контент!

  • @nokia_n-gage
    @nokia_n-gage 2 роки тому

    Лайк не глядя)

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

    лайк, подписка и плюсик в карму!

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

    лайк и подписка, спасибо за видео

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

    Макс - лучший!

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

    Наконец то. Подписка

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

    Супер

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

    Подякував!

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

    Афигенно

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

    Молоток

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

    Спасибо! Очень классный урок, в минимум времени максимум информации без "воды". Очень рада, что наткнулась на этот ролик, и посмотрю еще остальные видео обязательно и наверно не один раз. Давно хочу разобраться с шейдерами, но инфа в основном разрозненная и сложно усваивается, особенно для гуманитариев типо меня. Что за окно, в котором редактируете шейдер? Он сразу компилится?

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

    Лайк лайк

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

    Хороший видос. Для меня в шейдерах остаётся самым сложным это изменение вершин текстуры. Такие эффекты как падаешь в воду, а гладь воды идëт волнами. Постоянно ищу видосы с такими примерами

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

      Это не сложно, не так давно искал что-то подобное. Правда в моем случае нужны были воксельные волны)

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

    Nice

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

    Наконец то

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

    кайф

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

    Хотелось бы больше информации по встроенным алгоритмам. Когда впервые столкнулся с шейдерами в юнити, огромное кол-во вопросов было именно про "магические слова" после #pragma и т.д...

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

    Ура!

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

    Отличный урок. Хотелось бы уроки по всем нюансам шейдеров и юнити. З-буфер и т. д...

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

      Это ж только первый, вводный ролик

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

      @@gaitavr1992 Я понимаю. Я имел ввиду, что надеюсь на продолжение темы, со всеми вытекающими.

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

    Как всегда топ,какой паттерн больше всего подходит для реализации магазина оружия в шутере ?

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

    Лютейший ТОП! Очень подробная и качественная подача! Вопрос: А нельзя как-то сделать подсветку синтаксиса языка шейдеров?

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

    Востребованная тема, отличный контент!
    з.ы. Увы еще раз убедилась что шейдеры это "не про меня"

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

      В любом случае полезно находить общий язык с тех артом, особенно если ты тим лид

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

      @@gaitavr1992 искренне преклоняюсь пред их математическим гением.

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

      @@vicktoriashepard На самом деле это не так сложно для базового понимания. другое дело да использовать вские формулы в которых экспоненты, синусы и косинусы чтобы добиться нужного эффекта. Тут да, тут чаще всего особые мозги нужны )

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

      @@AlexStraga базовое понимание есть, даже shader graph пользуюсь, правда не всегда понимаю что какая нода делает 😂

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

      @@vicktoriashepard ну это норма)

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

    Привет, сделай видео про управление от 3го лица, не могу понять концепцию кватернионов, вот прям для деревянных объясни и покажи на как это работает в юнити =)
    p.s подписался, колокольчик жмякнул

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

    сложно но итересно... =)

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

    Привет! Подскажи, как сделать outline всегда одной ширины? Как в 2d мультиках, это через постпроцесс надо ?

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

      У меня из старых видосов было два пост процесса, может подойдет

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

    А нельзя ли записывать уроки по написанию шейдера вместе с созданием его в shader graph? Ну то есть чтоб одновременно можно было учиться писать код и понимать как сделать тоже самое в shader graph. А то хочется уметь создавать шейдера двумя способами))

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

      Если вы будете писать шейдеры, то граф не проблема вообще

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

    Ничего не понял, но очень интересно

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

    А renderpipeline не может ограничить какие-либо фичи в шейдерах? Я могу например в URP сделать PBR шейдер?

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

      Основное ограничение - нет возможности писать surface шейдера.

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

      @@user-hu9dx8wr1d Разве это ограничение?) Это счастье).

  • @Black_Raven-
    @Black_Raven- 2 роки тому

    Блин, это конечно круто, что вы используете нативный код для шейдеров, и что в некоторых случаях это действительно может быть очень полезно.
    Но почему не используете Shader Graph?

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

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

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

    Годно, когда продолжение планируется?

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

      Следующий видос точно

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

    Методом проб и ошибок сделал функцию, которая делает вроде бы нечто похожее на ДЗ.
    uv.y += 0.25 * sin(uv.y * 3.14) * sin(uv.x * 3.14 - _Time.y);
    Я правда не особо осознаю как именно это работает. Рассуждал я примерно так: есть функция которая сдвигает все координаты на величину от -1 до 1. значит(?) нужно ограничить нулем её влияние в y = 1 и y = 0 - такое нам дает как раз статичный sin(y), а потом это надо разделить на 4 (?) потому что изначально было четыре множителя и чтобы якобы компенсировать это - делил на 4. Хотя, потом понял, что это лютый бред - 1 на 1 сколько не умножай будет 1, и компенсировать это не надо, но без этого деления(*0,25) оно почему то не работает.

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

    В своё время нужно было написать шейдер и сам допер до всего что было в этом ролике, но вот за 5 дней

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

    «Двухкомпонентный вектор» - имеется ввиду однострочная матрица?

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

      Нет, это два значения

  • @Carrion-Crow
    @Carrion-Crow 2 роки тому

    Шейдеры это не сложно по сути, просто нужно знать все функции шейдерного языка, так как IDE нету для этого дела, по крайней мере я не нашел адекватного, если есть такое подскажите

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

    Привет всем, столько непонятных терминов, может ли кто-то посоветовать или книгу или ещё какие-то либо уроки по шейдерам с полнейшего нуля?(Я понял, здесь даже с базовым знанием математики(которого у меня нет😁) даже делать нечего)

  • @user-cl6mq5id8x
    @user-cl6mq5id8x 5 місяців тому

    спасибо огромное за видео столкнулся с такой проблемой что при создании шейдера он розовый и особо не как не чиниться .
    полез на оверфлоу нашел что то вроде ..
    """Итак, после небольшого исследования выяснилось, что шейдерный граф/шейдеры получили обновление, и создание шейдера через окно, предоставляемое Unity, больше не работает. Как кто-то упомянул в комментариях, можно создать шейдер шейдерграфа, скомпилировать его и работать оттуда, однако это 5000 строк кода."""
    я понимаю что это мои проблемы.
    но какие вообще у меня есть варианты?
    или только через шейдер граф что то делать.
    на оверфлоу предлагают какой то другой шаблон для шейдера использовать но он выглядит в разы сложнее ...
    или вообще забить на это и пробовать что то другое.

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

    Урок по Shader Graph бы... :)

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

      У меня есть пару видосов с shader graph

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

      @@gaitavr1992 обязательно посмотрю, спасибо :)

  • @Pravda-bw3tj
    @Pravda-bw3tj 2 роки тому

    а для чего тогда служит shader graph?

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

      Для визуального программирования шейдеров. Чем вызван подобный вопрос?

    • @Pravda-bw3tj
      @Pravda-bw3tj 2 роки тому

      @@gaitavr1992 Большинство мне рекомендовало использовать Shader Graph для того чтобы писать шейдеры, для меня это впервые писать шейдеры кодом)

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

      Зная код, с графом проблем нет, а вот наоборот будут

  • @user-pq9rd9kk6c
    @user-pq9rd9kk6c Місяць тому

    А я думаю -"почему у меня симуляция уравнения дефузии нихера не пашит" - а тут блять отрицательные значения в float4 в цвете берут с модумел. Так что делать, засовывать отрицательные значения в другой канал, или есть способ убрать этот модуль для цвета?Подскажите.

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

    А что там по IDE?

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

      Не понял вопроса

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

      Райдер. Или студия. Ну, или VSCode, хотя это не IDE.

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

      @@gaitavr1992 Типа на чем можно писать шейдеры чтобы ИДЕ могла подсказывать правильные названия встроенных функций и чтобы при этом не лезть в Юнити чтобы он уже проверял на ошибки.

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

    Кто нибудь поясните простым языком что такое шейдере, не могу найти ничего подробного

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

    ищу double sided шейдер для URP

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

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

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

      А потом инди гавно в стиме 8 Гб оперативы кушает и топовую видеокарту просит :)

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

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

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

    НУ НАКОНЕЦ ТО КТО ТО НОРМАЛЬНО ОБЪЯСНИЛ, как работают шейдеры. А то "некоторые псевдо-учителя" разведут на три часа канитель в три лица. Больше между собой "лайки-чмоки" разводят пустопорожний треп. Потом "очнутся", и не помнят, о чем вообще рассказывали.

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

    Все хорошо, но с «хаканьем» надо что-то делать!