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

  Рет қаралды 40,839

Максим Крюков

Максим Крюков

Күн бұрын

Что такое поверхностный шейдер и как он работает. Для чего нужный 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 жыл бұрын
О, наконец то уроки по шеидерам, надеюсь по ним будет много уроков
@gaitavr1992
@gaitavr1992 2 жыл бұрын
Будет
@Diyozen
@Diyozen 2 жыл бұрын
Как всегда - топ! Важное уточнение, в верхней панели сцены, рядом с настройками включения-выключения звука и света, по кнопке (где нарисовано две плоскости и плюсик) можно включить Always Refresh, что будет обновлять шейдер и без запуска. Это очень помогает, потому что в какой-то момент постоянные клики по Play начинают выводить из себя. Особенно, когда очень часто что-то проверяешь.
@gaitavr1992
@gaitavr1992 2 жыл бұрын
А вот этого не знал, спасибо
@FIGHTERSANOYK
@FIGHTERSANOYK 2 жыл бұрын
Респект, чувак, ты спас многол моего времени и нервов ))
@5uDouble
@5uDouble Жыл бұрын
Я уверенный мидл, но с твоими уроками всегда нахожу что-то полезное для себя! Спасибо за уроки по шейдерам - для меня они особенно полезны
@protudorin
@protudorin 2 жыл бұрын
спасибо большое за видео! тема шейдеров мне кажется отлично подходит, чтобы наглядно показать красоту математики в целом и в деле создания игр в частности. буду ждать следующих роликов на эту тему!
@dzheraz_6953
@dzheraz_6953 2 жыл бұрын
Твои ролики самые лучшие на русском ютубе. Никакой воды, все чётко и наглядно. Очевидно что ты очень хорошо разбираешься в том что говоришь, а не как подавляющее большинсво "что-то получилось, я не понял как, но запишу гайд"
@afesdaller162
@afesdaller162 2 жыл бұрын
Спасибо, это было прекрасно. Жду продолжения.
@lisaftl270
@lisaftl270 2 жыл бұрын
Спасибо большое за урок по шейдерам, хотелось бы побольше видео на эту тему
@user-cu5ky8qz2n
@user-cu5ky8qz2n 2 жыл бұрын
Спасибо Максим, +10 к пониманию того как это работает)
@gaitavr1992
@gaitavr1992 2 жыл бұрын
Буду продолжать)
@dimonsamarenkov
@dimonsamarenkov 2 жыл бұрын
Ооо.. годнота подъехала, буду ждать новые ролики по шейдерам))
@AlekseyLoykuts
@AlekseyLoykuts 2 жыл бұрын
Очень круто, спасибо. Особенно за разбор структуры файла, специфичного для юнити
@press_the_x
@press_the_x 2 жыл бұрын
Очень круто, давно ждал настолько подробного и понятного урока 😊👍
@katerynakomar1375
@katerynakomar1375 2 жыл бұрын
Дякую, Макс! Найкраще співвідношення теорії та практики для початківців, яке я наразі знайшла🙂
@daniilparokonnyy7980
@daniilparokonnyy7980 2 жыл бұрын
Супер контент, ждем новых уроков!
@gaitavr1992
@gaitavr1992 2 жыл бұрын
Следующее видео будет тоже по это тематике
@corvius
@corvius Жыл бұрын
Пришло время учить шейдеры. Спасибо за урок!
@vladisslavss
@vladisslavss 2 жыл бұрын
Увидел ролик и очень хочу посмотреть. Обложка очень манит! Жду вечера.! Огонь только за наличие 🔥🔥🔥
@user-wv1to3sg9j
@user-wv1to3sg9j 2 жыл бұрын
Просто зачёт) обожаю когда объясняют шейдеры в код, а не только визуальным программированием) полезно править ассеты потом) А можно еще видосы по рефакторингу кода? Только не совсем джунов, а то от прошлых видео волосы дыбом, совсем там зеленые были, которые даже не работали еще, только учились) Сакутин конечно круть ревьюер, но особо не объясняет) нужно понимать что у миддлов иногда западают некоторые штуки в силу специфики работы, когда не используешь и под капот не лезешь и чудишь по мелочам) хочется разбор ошибок в коде посерьезнее) такое очень помогает)
@bigbluepie8983
@bigbluepie8983 2 жыл бұрын
Мое почтение! Как всегда на уровне
@DaronRUS
@DaronRUS 2 жыл бұрын
То что я ждал, спасибо большое
@Vadhannel
@Vadhannel 2 жыл бұрын
Очень круто и полезно, а главное понятно. Ждём продолжения
@gaitavr1992
@gaitavr1992 2 жыл бұрын
Хорошо, что понятно получилось)
@Skyline8622
@Skyline8622 2 жыл бұрын
Офигенно! Спасибо за труд
@Yuriy-tk2pz
@Yuriy-tk2pz 2 жыл бұрын
Комментарий в поддержку топового канала 👍
@AlexanderPavliuchik
@AlexanderPavliuchik 2 жыл бұрын
Оч доступно объясняешь! Спасибо!
@vladisslavss
@vladisslavss 2 жыл бұрын
Круть! Нужна новая рубрика!!!! Лукас и коммент в поддержку автора канала🔥🔥🔥
@yellowtilegames
@yellowtilegames 2 жыл бұрын
Спасибо большое за разбор темы шейдеров!
@user-sf8lc4np3l
@user-sf8lc4np3l 2 жыл бұрын
Особенно круто что есть домашнее задание, спасибо за контент
@user-bc4me5kz7j
@user-bc4me5kz7j 2 жыл бұрын
Спасибо большое за старания, отличный урок.
@Fire_Walker
@Fire_Walker 2 жыл бұрын
Выглядит неплохо , ещё не смотрела , но круто , надо попробовать
@svetasemenova8679
@svetasemenova8679 2 жыл бұрын
Большое спасибо! Крайне подробно и интересно!
@ode2877
@ode2877 2 жыл бұрын
Годная тема! Спасибо
@kiririn39m8
@kiririn39m8 2 жыл бұрын
Отличное видео, большое спасибо
@user-ef4yx3mu2q
@user-ef4yx3mu2q Жыл бұрын
Наконец-то я нашел приличный русскоязычный канал с инфой по юнити. До этого еще Сакутин был, но тот больше по стебу других проггеров. Спасибо за видео!
@alexgolovaschenko8391
@alexgolovaschenko8391 2 жыл бұрын
Жду следующую часть!
@timsem2624
@timsem2624 2 жыл бұрын
Спасибо, эта информация полезна для меня.
@paupertony
@paupertony Жыл бұрын
Отличное видео, спасибо большое! Лайк, подписка
@mikhailturchin3413
@mikhailturchin3413 2 жыл бұрын
Информация по шейдерам и на русском, я так тебя давно ждал
@user-we6si4mi3x
@user-we6si4mi3x Жыл бұрын
комментарий в поддержку)
@ivanmayerle1333
@ivanmayerle1333 2 жыл бұрын
Жду продолжения)
@AlexStraga
@AlexStraga 2 жыл бұрын
Спасибо, очень полезно. Приятно осозновать что 95% инфы я таки уже понимал ) А вот наименования в Input было неожиданным. Обычно тупо копировал целые блоки и "ничего не трогал" ) Ждем продолжения.
@gaitavr1992
@gaitavr1992 2 жыл бұрын
Работает - не трогай?)
@AlexStraga
@AlexStraga 2 жыл бұрын
@@gaitavr1992 отчасти) Чаще "хз откуда оно берет данные, лучше не буду трогать")
@askaranarbekov3145
@askaranarbekov3145 2 жыл бұрын
Прошу не бросать тему с шейдерами , это очень интересно
@nailetes
@nailetes Жыл бұрын
Спасибо! Очень классный урок, в минимум времени максимум информации без "воды". Очень рада, что наткнулась на этот ролик, и посмотрю еще остальные видео обязательно и наверно не один раз. Давно хочу разобраться с шейдерами, но инфа в основном разрозненная и сложно усваивается, особенно для гуманитариев типо меня. Что за окно, в котором редактируете шейдер? Он сразу компилится?
@AhahaStudioTM
@AhahaStudioTM 2 жыл бұрын
Спасибо! очень круто!
@Shineglow
@Shineglow Жыл бұрын
Большое спасибо за урок!
@metal_burn
@metal_burn 2 жыл бұрын
Если будуt еще уроки - обязательно буду смотреть!
@MaxTan_82
@MaxTan_82 2 жыл бұрын
Круто! Надо будет все повторить. Я работая в Maya привык к нодам, а в unity использую Amplify shader editor. Но всегда мечтал уметь писать шейдера.
@nokia_n-gage
@nokia_n-gage 2 жыл бұрын
Лайк не глядя)
@artsemgorbatchev8999
@artsemgorbatchev8999 2 жыл бұрын
кайф. спасибо за урок!
@easycodeunity3d14
@easycodeunity3d14 2 жыл бұрын
Кайф. Однозначно подписка
@andreyzyablikov9891
@andreyzyablikov9891 2 жыл бұрын
Большое спасибо!
@Jicefrost
@Jicefrost Жыл бұрын
лайк и подписка, спасибо за видео
@andreidemianenko2980
@andreidemianenko2980 2 жыл бұрын
лайк, подписка и плюсик в карму!
@MeaNX
@MeaNX 2 жыл бұрын
Наконец-то!
@user-wv4cz4ls4l
@user-wv4cz4ls4l 2 жыл бұрын
Годно, мужик!
@user-xx1cf5og6q
@user-xx1cf5og6q 2 жыл бұрын
Как всегда топ,какой паттерн больше всего подходит для реализации магазина оружия в шутере ?
@tcunay1
@tcunay1 2 жыл бұрын
Топ контент!
@user-ob1jz8yl6x
@user-ob1jz8yl6x 2 жыл бұрын
Лютейший ТОП! Очень подробная и качественная подача! Вопрос: А нельзя как-то сделать подсветку синтаксиса языка шейдеров?
@redmanone6963
@redmanone6963 2 жыл бұрын
Наконец то. Подписка
@Magic__Man
@Magic__Man Жыл бұрын
Макс - лучший!
@nerfitplz4863
@nerfitplz4863 2 жыл бұрын
Хороший видос. Для меня в шейдерах остаётся самым сложным это изменение вершин текстуры. Такие эффекты как падаешь в воду, а гладь воды идëт волнами. Постоянно ищу видосы с такими примерами
@xephosbot
@xephosbot 2 жыл бұрын
Это не сложно, не так давно искал что-то подобное. Правда в моем случае нужны были воксельные волны)
@woki4170
@woki4170 2 жыл бұрын
Супер
@TitikUniverse
@TitikUniverse 2 жыл бұрын
Афигенно
@TheTempterable
@TheTempterable 2 жыл бұрын
Хотелось бы больше информации по встроенным алгоритмам. Когда впервые столкнулся с шейдерами в юнити, огромное кол-во вопросов было именно про "магические слова" после #pragma и т.д...
@mypaxa003
@mypaxa003 2 жыл бұрын
Отличный урок. Хотелось бы уроки по всем нюансам шейдеров и юнити. З-буфер и т. д...
@gaitavr1992
@gaitavr1992 2 жыл бұрын
Это ж только первый, вводный ролик
@mypaxa003
@mypaxa003 2 жыл бұрын
@@gaitavr1992 Я понимаю. Я имел ввиду, что надеюсь на продолжение темы, со всеми вытекающими.
@kroniecraft8339
@kroniecraft8339 2 жыл бұрын
Лайк лайк
@oleksandrshmalko626
@oleksandrshmalko626 9 ай бұрын
Подякував!
@petrosaslanidis
@petrosaslanidis 2 жыл бұрын
Молоток
@mkdir699
@mkdir699 2 жыл бұрын
Nice
@evesheppard2341
@evesheppard2341 2 жыл бұрын
Привет, сделай видео про управление от 3го лица, не могу понять концепцию кватернионов, вот прям для деревянных объясни и покажи на как это работает в юнити =) p.s подписался, колокольчик жмякнул
@user-kp8db4nz6n
@user-kp8db4nz6n 2 жыл бұрын
Ура!
@denisstakovich8040
@denisstakovich8040 Жыл бұрын
Наконец то
@bob27111
@bob27111 2 жыл бұрын
кайф
@vicktoriashepard
@vicktoriashepard 2 жыл бұрын
Востребованная тема, отличный контент! з.ы. Увы еще раз убедилась что шейдеры это "не про меня"
@gaitavr1992
@gaitavr1992 2 жыл бұрын
В любом случае полезно находить общий язык с тех артом, особенно если ты тим лид
@vicktoriashepard
@vicktoriashepard 2 жыл бұрын
@@gaitavr1992 искренне преклоняюсь пред их математическим гением.
@AlexStraga
@AlexStraga 2 жыл бұрын
@@vicktoriashepard На самом деле это не так сложно для базового понимания. другое дело да использовать вские формулы в которых экспоненты, синусы и косинусы чтобы добиться нужного эффекта. Тут да, тут чаще всего особые мозги нужны )
@vicktoriashepard
@vicktoriashepard 2 жыл бұрын
@@AlexStraga базовое понимание есть, даже shader graph пользуюсь, правда не всегда понимаю что какая нода делает 😂
@AlexStraga
@AlexStraga 2 жыл бұрын
@@vicktoriashepard ну это норма)
@HeyWhoTheFuckAreYou
@HeyWhoTheFuckAreYou 2 жыл бұрын
Годно, когда продолжение планируется?
@gaitavr1992
@gaitavr1992 2 жыл бұрын
Следующий видос точно
@bibyter6451
@bibyter6451 2 жыл бұрын
Привет! Подскажи, как сделать outline всегда одной ширины? Как в 2d мультиках, это через постпроцесс надо ?
@gaitavr1992
@gaitavr1992 2 жыл бұрын
У меня из старых видосов было два пост процесса, может подойдет
@mdvulfix
@mdvulfix 2 жыл бұрын
сложно но итересно... =)
@verigin094
@verigin094 2 жыл бұрын
А нельзя ли записывать уроки по написанию шейдера вместе с созданием его в shader graph? Ну то есть чтоб одновременно можно было учиться писать код и понимать как сделать тоже самое в shader graph. А то хочется уметь создавать шейдера двумя способами))
@gaitavr1992
@gaitavr1992 2 жыл бұрын
Если вы будете писать шейдеры, то граф не проблема вообще
@Black_Raven-
@Black_Raven- 2 жыл бұрын
Блин, это конечно круто, что вы используете нативный код для шейдеров, и что в некоторых случаях это действительно может быть очень полезно. Но почему не используете Shader Graph?
@gaitavr1992
@gaitavr1992 2 жыл бұрын
Разработчик, который может написать шейдер кодом, легко реализует его в графе. Наоборот это не работает, особенно интересно получится, когда встанет вопрос оптимизации
@user-nr6kc5re6y
@user-nr6kc5re6y 2 жыл бұрын
Ничего не понял, но очень интересно
@gaitavr1992
@gaitavr1992 2 жыл бұрын
Жаль
@IvanToropelov
@IvanToropelov 2 жыл бұрын
А renderpipeline не может ограничить какие-либо фичи в шейдерах? Я могу например в URP сделать PBR шейдер?
@user-hu9dx8wr1d
@user-hu9dx8wr1d 2 жыл бұрын
Основное ограничение - нет возможности писать surface шейдера.
@wellmor
@wellmor 2 жыл бұрын
@@user-hu9dx8wr1d Разве это ограничение?) Это счастье).
@ivanmayerle1333
@ivanmayerle1333 2 жыл бұрын
В своё время нужно было написать шейдер и сам допер до всего что было в этом ролике, но вот за 5 дней
@Grapeoff
@Grapeoff 2 жыл бұрын
«Двухкомпонентный вектор» - имеется ввиду однострочная матрица?
@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) оно почему то не работает.
@Carrion-Crow
@Carrion-Crow 2 жыл бұрын
Шейдеры это не сложно по сути, просто нужно знать все функции шейдерного языка, так как IDE нету для этого дела, по крайней мере я не нашел адекватного, если есть такое подскажите
@user-cl6mq5id8x
@user-cl6mq5id8x 5 ай бұрын
спасибо огромное за видео столкнулся с такой проблемой что при создании шейдера он розовый и особо не как не чиниться . полез на оверфлоу нашел что то вроде .. """Итак, после небольшого исследования выяснилось, что шейдерный граф/шейдеры получили обновление, и создание шейдера через окно, предоставляемое Unity, больше не работает. Как кто-то упомянул в комментариях, можно создать шейдер шейдерграфа, скомпилировать его и работать оттуда, однако это 5000 строк кода.""" я понимаю что это мои проблемы. но какие вообще у меня есть варианты? или только через шейдер граф что то делать. на оверфлоу предлагают какой то другой шаблон для шейдера использовать но он выглядит в разы сложнее ... или вообще забить на это и пробовать что то другое.
@user-pq9rd9kk6c
@user-pq9rd9kk6c Ай бұрын
А я думаю -"почему у меня симуляция уравнения дефузии нихера не пашит" - а тут блять отрицательные значения в float4 в цвете берут с модумел. Так что делать, засовывать отрицательные значения в другой канал, или есть способ убрать этот модуль для цвета?Подскажите.
@DeepBunnyHole
@DeepBunnyHole 2 жыл бұрын
Урок по Shader Graph бы... :)
@gaitavr1992
@gaitavr1992 2 жыл бұрын
У меня есть пару видосов с shader graph
@DeepBunnyHole
@DeepBunnyHole 2 жыл бұрын
@@gaitavr1992 обязательно посмотрю, спасибо :)
@tiraniks1158
@tiraniks1158 2 жыл бұрын
Привет всем, столько непонятных терминов, может ли кто-то посоветовать или книгу или ещё какие-то либо уроки по шейдерам с полнейшего нуля?(Я понял, здесь даже с базовым знанием математики(которого у меня нет😁) даже делать нечего)
@Pravda-bw3tj
@Pravda-bw3tj 2 жыл бұрын
а для чего тогда служит shader graph?
@gaitavr1992
@gaitavr1992 2 жыл бұрын
Для визуального программирования шейдеров. Чем вызван подобный вопрос?
@Pravda-bw3tj
@Pravda-bw3tj 2 жыл бұрын
@@gaitavr1992 Большинство мне рекомендовало использовать Shader Graph для того чтобы писать шейдеры, для меня это впервые писать шейдеры кодом)
@gaitavr1992
@gaitavr1992 2 жыл бұрын
Зная код, с графом проблем нет, а вот наоборот будут
@yarosyari3516
@yarosyari3516 9 ай бұрын
ищу double sided шейдер для URP
@user-vv8ld3ci1u
@user-vv8ld3ci1u 2 жыл бұрын
Кто нибудь поясните простым языком что такое шейдере, не могу найти ничего подробного
@ThePanSashko
@ThePanSashko 2 жыл бұрын
А что там по IDE?
@gaitavr1992
@gaitavr1992 2 жыл бұрын
Не понял вопроса
@wellmor
@wellmor 2 жыл бұрын
Райдер. Или студия. Ну, или VSCode, хотя это не IDE.
@AlexStraga
@AlexStraga 2 жыл бұрын
@@gaitavr1992 Типа на чем можно писать шейдеры чтобы ИДЕ могла подсказывать правильные названия встроенных функций и чтобы при этом не лезть в Юнити чтобы он уже проверял на ошибки.
@xxxxxx5237
@xxxxxx5237 2 жыл бұрын
Граф гораздо проще изучить начинающим, по нему и документация доступна и ускоряет разработку, тем более что он и в эффектах не сильно меняется. Я по знаниям мимо проходил, хобби не больше, но кажется учиться кодить шейдеры непрактично - вчерашний скилл.
@kirillsviderski4739
@kirillsviderski4739 2 жыл бұрын
А потом инди гавно в стиме 8 Гб оперативы кушает и топовую видеокарту просит :)
@ufir2416
@ufir2416 2 жыл бұрын
а почему уже не шейдер граф бы изучать? Старые шейдера потихоньку не актуальными становятся
@nightkot4917
@nightkot4917 2 жыл бұрын
НУ НАКОНЕЦ ТО КТО ТО НОРМАЛЬНО ОБЪЯСНИЛ, как работают шейдеры. А то "некоторые псевдо-учителя" разведут на три часа канитель в три лица. Больше между собой "лайки-чмоки" разводят пустопорожний треп. Потом "очнутся", и не помнят, о чем вообще рассказывали.
@GrinyaPLAY
@GrinyaPLAY 2 жыл бұрын
Все хорошо, но с «хаканьем» надо что-то делать!
Как писать шейдеры в юнити. Часть 2. Unlit shader
10:45
Максим Крюков
Рет қаралды 18 М.
Cosmic Dread
1:30
diego mellizo
Рет қаралды 14
The delivery rescued them
00:52
Mamasoboliha
Рет қаралды 7 МЛН
Super gymnastics 😍🫣
00:15
Lexa_Merin
Рет қаралды 21 МЛН
How many pencils can hold me up?
00:40
A4
Рет қаралды 19 МЛН
Уроки Unity / Как добавить персонажа (бегает и прыгает)
8:28
Изучаем мир ИТ / Олег Шпагин / Программирование
Рет қаралды 73 М.
Оптимизация игр на unity. Material instancing
8:19
Максим Крюков
Рет қаралды 17 М.
The delivery rescued them
00:52
Mamasoboliha
Рет қаралды 7 МЛН