» Пиксельные шейдеры для новичков
This site relies heavily on Javascript. You should enable it if you want the full experience. Learn more.

Пиксельные шейдеры для новичков

English

01 Введение

Это упражнение для абсолютных новичков в общении с шейдерами. Это значит, что мы бегло пройдем по основным аспектам пиксельных шейдеров, старясь объяснить все более-менее простым языком.
Пиксельные шейдеры гораздо легче для понимания, чем вертексные (вершинные) шейдеры, поэтому сейчас это однозначно правильный выбор для вас.

01.1 Зачем мне использовать шейдеры?

Прежде всего из-за производительности: шейдеры очень легкие быстрые. Эти небольшие программки запускаются «независимо» от остального патча, прямо в вашей видеокарте. Но самое главное: они дают почти безграничные возможности визуализации. Можно сделать столько всего!

01.2 Как поставить шейдер в ваш патч

Шейдеры (все шейдеры объединены в категорию Эффекты – EX9.Effect) – это небольшие программы, написанные на языке (HLSL "high level shader language") но представленные в vvvv как обычные ноды. Главное отличие от обычных нодов в том, что если вы кликните правой кнопкой мыши по ноду эффекта, откроется дополнительное окно с кодом шейдера. Это встроенный в vvvv редактор языка HLSL, вы можете вносить изменения, не останавливая работу патча!

В пакет vvvv включено несколько шейдеров (это файлы с разрешением .fx) в папке \effects. Если вы пишите новый шейдер или скачиваете его с сайта, просто скопируйте файл в эту папку. После поиска обновлений (Alt-E или Rescan for Externals в меню ), он будет доступен через всплывающий список нодов. Шейдер можно открыть в патче, как и любой другой нод, через всплывающий список, набирая название или сочетанием Shift+Ctrl+O

Все шейдеры, которые мы сделаем в этом упражнении, основаны на файле шейдера «template.fx» (он поэтому так и называется – «шаблон»), потому что это хорошая отправная точка для всех новых шейдеров.

Для использования примеров из этого упражнения вам нужна видеокарта, поддерживающая пиксельные шейдеры 2.0 (PS 2.0)! Уже более 5 лет все более-менее нормальные видеокарты поддерживают эти шейдеры.

01.3 Четыре основные части в файле шейдера

1. PARAMETERS здесь задаются входные пины и значения параметров
2. VERTEXSHADERS вертексные (вершинные) эффекты
3. PIXELSHADERS пиксельные эффекты (сейчас мы будем работать в основном с этой частью)
4. TECHNIQUES задается техника обработки и поддерживаемая версия шейдера

Несколько важных замечаний, прежде чем мы начнем писать свой первый шейдер:

  • старайтесь делать код как можно более лаконичным, например, вместо if (col.r > threshold) col.r = 1, пишите col.r = (col.r > threshold)
  • часто лучшие результаты достигаются двойным рендером и двумя шейдерами, например размытие (blur) лучше сделать сначала горизонтальным блюром, а получившийся результат обработать вертикальным блюром.

Но хватит теории! Приступаем к написанию вашего первого шейдера! И не забудьте выкладывать на сайте ваши новые крутые шейдеры!
Перед началом упражнений, скачайте пакет патчей и шейдеров, используемых в них:
pixelshader_for_newbies_20050922.zip

ссылки:

Наберите в google "morphologic filter" или "kernel filters" и найдете много подходящих сайтов

если вы хотите запостить код шейдера на форуме, не забудьте заменить < сочетанием ~lt~ ,а > сочетанием ~gt~

спасибо MrBenefit перевод bo27

anonymous user login

Shoutbox

~2d ago

joreg: Workshop on 09 05: Deepdive into the Stride 3D Engine. Signup here: https://thenodeinstitute.org/courses/ss24-vvvv-advanced-3d-rendering-in-vvvv-with-stride/

~2d ago

tekcor: Dear vvvv community, I am leaving my personal fundraiser here because I know many of you personally, sending love https://t.ly/iV9l_

~3d ago

joreg: Rewatch the 24th vvvvorldwide meetup here: https://www.youtube.com/live/gNszIiRAjDo?si=0RXF0pW73EUaRqGk

~3d ago

joreg: LINK - the vvvv summer camp 2024 is announced: https://visualprogramming.net/blog/2024/link-the-vvvv-summer-camp-24/

~5d ago

joreg: Tonight, May 3, vvvv meetup in Berlin or via stream: https://visualprogramming.net/blog/2024/24.-vvvv-worldwide-meetup/

~9d ago

joreg: Workshop on 02 05: Intro to the Stride 3D Engine. Signup here: https://thenodeinstitute.org/courses/ss24-vvvv-intro-to-the-stride-3d-engine-in-vvvv/

~10d ago

joreg: The new vvvv Show-Off-Reel is out: https://vimeo.com/930568091

~16d ago

joreg: The summer season of vvvv workshops at The NODE Institute is out: https://thenodeinstitute.org/ss24-vvvv-intermediates/