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

2024 ж. 2 Мам.
40 253 Рет қаралды

Что такое поверхностный шейдер и как он работает. Для чего нужный 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

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

    @firerun8599@firerun85992 жыл бұрын
    • Будет

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

    @Diyozen@Diyozen2 жыл бұрын
    • А вот этого не знал, спасибо

      @gaitavr1992@gaitavr19922 жыл бұрын
    • Респект, чувак, ты спас многол моего времени и нервов ))

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

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

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

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

    @AlekseyLoykuts@AlekseyLoykuts2 жыл бұрын
  • То что я ждал, спасибо большое

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

    @lisaftl270@lisaftl2702 жыл бұрын
  • Спасибо Максим, +10 к пониманию того как это работает)

    @user-cu5ky8qz2n@user-cu5ky8qz2n2 жыл бұрын
    • Буду продолжать)

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

    @press_the_x@press_the_x2 жыл бұрын
  • Пришло время учить шейдеры. Спасибо за урок!

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

    @dimonsamarenkov@dimonsamarenkov2 жыл бұрын
  • Офигенно! Спасибо за труд

    @Skyline8622@Skyline86222 жыл бұрын
  • Спасибо большое за разбор темы шейдеров!

    @yellowtilegames@yellowtilegames2 жыл бұрын
  • Мое почтение! Как всегда на уровне

    @bigbluepie8983@bigbluepie89832 жыл бұрын
  • Особенно круто что есть домашнее задание, спасибо за контент

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

    @vladisslavss@vladisslavss2 жыл бұрын
  • Оч доступно объясняешь! Спасибо!

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

    @dzheraz_6953@dzheraz_69532 жыл бұрын
  • Большое спасибо! Крайне подробно и интересно!

    @svetasemenova8679@svetasemenova86792 жыл бұрын
  • Годная тема! Спасибо

    @ode2877@ode28772 жыл бұрын
  • Спасибо большое за старания, отличный урок.

    @user-bc4me5kz7j@user-bc4me5kz7j2 жыл бұрын
  • Выглядит неплохо , ещё не смотрела , но круто , надо попробовать

    @Fire_Walker@Fire_Walker2 жыл бұрын
  • Спасибо, эта информация полезна для меня.

    @timsem2624@timsem26242 жыл бұрын
  • Комментарий в поддержку топового канала 👍

    @Yuriy-tk2pz@Yuriy-tk2pz2 жыл бұрын
  • комментарий в поддержку)

    @user-we6si4mi3x@user-we6si4mi3x Жыл бұрын
  • Жду следующую часть!

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

    @vladisslavss@vladisslavss2 жыл бұрын
  • Прошу не бросать тему с шейдерами , это очень интересно

    @askaranarbekov3145@askaranarbekov31452 жыл бұрын
  • Супер контент, ждем новых уроков!

    @daniilparokonnyy7980@daniilparokonnyy79802 жыл бұрын
    • Следующее видео будет тоже по это тематике

      @gaitavr1992@gaitavr19922 жыл бұрын
  • Жду продолжения)

    @ivanmayerle1333@ivanmayerle13332 жыл бұрын
  • Очень круто и полезно, а главное понятно. Ждём продолжения

    @Vadhannel@Vadhannel2 жыл бұрын
    • Хорошо, что понятно получилось)

      @gaitavr1992@gaitavr19922 жыл бұрын
  • Спасибо! очень круто!

    @AhahaStudioTM@AhahaStudioTM2 жыл бұрын
  • Отличное видео, большое спасибо

    @kiririn39m8@kiririn39m82 жыл бұрын
  • Большое спасибо за урок!

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

    @user-wv1to3sg9j@user-wv1to3sg9j2 жыл бұрын
  • Большое спасибо!

    @andreyzyablikov9891@andreyzyablikov98912 жыл бұрын
  • Дякую, Макс! Найкраще співвідношення теорії та практики для початківців, яке я наразі знайшла🙂

    @katerynakomar1375@katerynakomar13752 жыл бұрын
  • Отличное видео, спасибо большое! Лайк, подписка

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

    @user-ef4yx3mu2q@user-ef4yx3mu2q Жыл бұрын
  • Информация по шейдерам и на русском, я так тебя давно ждал

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

    @MaxTan_82@MaxTan_822 жыл бұрын
  • Кайф. Однозначно подписка

    @easycodeunity3d14@easycodeunity3d142 жыл бұрын
  • кайф. спасибо за урок!

    @artsemgorbatchev8999@artsemgorbatchev89992 жыл бұрын
  • Если будуt еще уроки - обязательно буду смотреть!

    @metal_burn@metal_burn2 жыл бұрын
  • лайк и подписка, спасибо за видео

    @Jicefrost@Jicefrost Жыл бұрын
  • лайк, подписка и плюсик в карму!

    @andreidemianenko2980@andreidemianenko29802 жыл бұрын
  • Лайк не глядя)

    @nokia_n-gage@nokia_n-gage2 жыл бұрын
  • Годно, мужик!

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

    @AlexStraga@AlexStraga2 жыл бұрын
    • Работает - не трогай?)

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

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

    @nailetes@nailetes Жыл бұрын
  • Топ контент!

    @tcunay1@tcunay12 жыл бұрын
  • Наконец-то!

    @MeaNX@MeaNX2 жыл бұрын
  • Подякував!

    @oleksandrshmalko626@oleksandrshmalko6267 ай бұрын
  • Наконец то. Подписка

    @redmanone6963@redmanone69632 жыл бұрын
  • Супер

    @woki4170@woki41702 жыл бұрын
  • Макс - лучший!

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

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

      @xephosbot@xephosbot2 жыл бұрын
  • Афигенно

    @titikuniverse@titikuniverse2 жыл бұрын
  • Лайк лайк

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

    @user-xx1cf5og6q@user-xx1cf5og6q2 жыл бұрын
  • Nice

    @mkdir699@mkdir6992 жыл бұрын
  • кайф

    @bob27111@bob271112 жыл бұрын
  • Молоток

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

    @TheTempterable@TheTempterable2 жыл бұрын
  • Наконец то

    @denisstakovich8040@denisstakovich8040 Жыл бұрын
  • Ура!

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

    @mypaxa003@mypaxa0032 жыл бұрын
    • Это ж только первый, вводный ролик

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

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

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

      @gaitavr1992@gaitavr19922 жыл бұрын
    • @@gaitavr1992 искренне преклоняюсь пред их математическим гением.

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

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

      @vicktoriashepard@vicktoriashepard2 жыл бұрын
    • @@vicktoriashepard ну это норма)

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

    @evesheppard2341@evesheppard23412 жыл бұрын
  • сложно но итересно... =)

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

    @user-ob1jz8yl6x@user-ob1jz8yl6x2 жыл бұрын
    • А где можно понять эти ненормальные математические термины

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

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

      @gaitavr1992@gaitavr19922 жыл бұрын
  • Методом проб и ошибок сделал функцию, которая делает вроде бы нечто похожее на ДЗ. 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) оно почему то не работает.

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

    @IvanToropelov@IvanToropelov2 жыл бұрын
    • Основное ограничение - нет возможности писать surface шейдера.

      @user-hu9dx8wr1d@user-hu9dx8wr1d2 жыл бұрын
    • @@user-hu9dx8wr1d Разве это ограничение?) Это счастье).

      @wellmor@wellmor2 жыл бұрын
  • Годно, когда продолжение планируется?

    @HeyWhoTheFuckAreYou@HeyWhoTheFuckAreYou2 жыл бұрын
    • Следующий видос точно

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

    @ivanmayerle1333@ivanmayerle13332 жыл бұрын
  • Ничего не понял, но очень интересно

    @user-nr6kc5re6y@user-nr6kc5re6y2 жыл бұрын
    • Жаль

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

    @user-cl6mq5id8x@user-cl6mq5id8x3 ай бұрын
  • Шейдеры это не сложно по сути, просто нужно знать все функции шейдерного языка, так как IDE нету для этого дела, по крайней мере я не нашел адекватного, если есть такое подскажите

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

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

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

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

      @gaitavr1992@gaitavr19922 жыл бұрын
  • «Двухкомпонентный вектор» - имеется ввиду однострочная матрица?

    @Grapeoff@Grapeoff2 жыл бұрын
    • Нет, это два значения

      @gaitavr1992@gaitavr19922 жыл бұрын
  • ищу double sided шейдер для URP

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

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

    @tiraniks1158@tiraniks11582 жыл бұрын
  • Кто нибудь поясните простым языком что такое шейдере, не могу найти ничего подробного

    @user-vv8ld3ci1u@user-vv8ld3ci1u2 жыл бұрын
  • а для чего тогда служит shader graph?

    @Pravda-bw3tj@Pravda-bw3tj2 жыл бұрын
    • Для визуального программирования шейдеров. Чем вызван подобный вопрос?

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

      @Pravda-bw3tj@Pravda-bw3tj2 жыл бұрын
    • Зная код, с графом проблем нет, а вот наоборот будут

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

    @xxxxxx5237@xxxxxx52372 жыл бұрын
    • А потом инди гавно в стиме 8 Гб оперативы кушает и топовую видеокарту просит :)

      @kirillsviderski4739@kirillsviderski47392 жыл бұрын
  • А что там по IDE?

    @ThePanSashko@ThePanSashko2 жыл бұрын
    • Не понял вопроса

      @gaitavr1992@gaitavr19922 жыл бұрын
    • Райдер. Или студия. Ну, или VSCode, хотя это не IDE.

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

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

    @ufir2416@ufir24162 жыл бұрын
  • Урок по Shader Graph бы... :)

    @DeepBunnyHole@DeepBunnyHole2 жыл бұрын
    • У меня есть пару видосов с shader graph

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

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

    @nightkot4917@nightkot49172 жыл бұрын
  • Все хорошо, но с «хаканьем» надо что-то делать!

    @GrinyaPLAY@GrinyaPLAY2 жыл бұрын
KZhead