Что на самом деле делает пиксельный шейдер?

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

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

Вершинные шейдеры просты для понимания: вы организуете вершины объекта в единые структуры данных, которые связывают информацию о нем, такую ​​как положение и координаты текстуры, а затем передаете каждую вершину в шейдер для преобразования из 3D в 2D путем матриц преобразования. Пока я это понимаю, я могу понять, как его кодировать.

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

или я что-то совсем не так понял?

8
задан cdhowie 25 June 2012 в 17:48
поделиться