Обучение HLSL для написания шейдеров для Unity, UE5
Занимаюсь соло разработкой игр на Unity.(UE5 в процессе изучения) К сожалению,столкнулся с проблемой,что доступные ассеты не всегда соответствуют моим задумкам,поэтому решил изучить тему шейдеров самостоятельно. Потыкав в ассистентов разных форм и мастей,пришёл к выводу,что они толком не могут подать информацию как и с чем едят эти шейдеры. Потыкав самостоятельно ,понял как работают свойства и смешивания , а как использовать остальной функционал не хватает ума(или информации)что бы понять. В ютубе так же не нашёл нужной информации, всё подносилось как "Делай так и всё будет "ОК"!" ,но такой подход меня не устраивает,хочется понимать ,как всё это работает. Буду признателен ,если вы дадите мне точку для старта.
Ответы (1 шт):
Шейдеры очень сложные и многогранные, без математики увы не получиться сильно продвинуться, но вы сможете изучить всё на примерах и доступных ресурсах, тема очень старая и комьюнити предоставляет большое количество готовых и интересных примеров.
Основа
Самый главный ресурс по моему мнению, который сможет показать мощности шейдеров и заинтересовать вас своими примерами это - shadertoy.com.
После ознакомления с примерами можно начать фундаментальное изучение на - thebookofshaders.com.
Чтобы создавать что-то новое, вам необходимо углубиться в математику, отличным ресурсом будет канал - @3blue1brown.
Полезное
После прохождения первого этапа вам пригодятся готовые ресурсы под unity с примерами и объяснениями:
Так же вам пригодятся и другие источники которые решают немного другие задачи, но могут быть полезны:
- Форум - Real-Time VFX
- Визуальные эффекты - GabrielAguiarProd
- Курс по созданию эффектов с объяснением принципов
Оффтоп
Важно понимать, что шейдеры могут работать не только с текстурой, но и манипулировать вершинами модели, а именно - двигать точки. Поэтому вам необходимо держать в голове, если вы хотите просто работать с текстурой и изменять её - вы работаете с цветовой схемой, если вы хотите работать с моделькой - вы работаете с вершинами, это всё шейдеры, но решают разные задачи.
Прочее
При написании своих шейдеров, вам может помочь ресурс - RenderDoc, дебаг и изучение работы шейдера на GPU.