Может ли кто-нибудь объяснить мне довольно простые основы взаимодействия пиксельных и вершинных шейдеров.
Очевидные факты: вершинные шейдеры получают базовые свойства вершин, а затем repass некоторыеиз них в настоящий пиксельный шейдер .
Но как происходит фактический vertex->pixel
переход? Я знаю, что, очевидно, все типы конвейеров включают в себя изменение растеризатора, которое способно интерполировать параметры вершин и может применять текстуры на основе определенных координат текстуры.
И, насколько я понимаюони также интерполированы (не совсем уверены в этом моменте, что-то слышали о сложной математике, производной от УФ, но я предполагаю, что мы можем сказать , что они интерполируются).
ИтакВот несколько «целевых» вопросов.
Как работает пиксельный шейдер?Я имею в виду, что пиксельный шейдер, очевидно, выполняет некоторые действия "на пиксель" , но из-за неочевидной вершины-> пиксельного перехода это вызывает некоторые вопросы.
Могу ли я предположить,что если я оцениваю матрично-векторное произведение один раз в моем пиксельном шейдере, он будет оцениваться один раз при растеризации изображения?Или было бы лучше оценить все, что возможно в моем вершинном шейдере, а затем передать его в пиксельный шейдер?
Кроме того, если бы кто-то мог указать статьи / рефераты на эту тему, я был бы очень признателен за это.
Спасибо.
ОБНОВЛЕНИЕ
Я думал, что на самом деле это не имеет значения, потому что взаимодействие должно быть почти одинаковым везде.Я разрабатываю приложения для визуализации и игры для настольных компьютеров, используя HLSL / GLSL / Nvidia CG для шейдеров и в основном C ++ в качестве базового языка.