Не мог бы кто-нибудь объяснить мне симпатичные основы взаимодействия пиксельных и вершинных шейдеров.Вопрос оптимизации шейдера C++
Очевидные вещи, которые вершинные шейдеры получают основные свойства вершин, а затем снова проходить некоторые из них к фактической пиксельных шейдеров.
Но как происходит фактический переход vertex->pixel
? Я знаю, что очевидно, что все типы конвейеров включают в себя изменение растеризатора, которое способно интерполировать параметры вершин и может применять текстуры на основе определенных координат текстуры.
И насколько я понимаю, те же интерполированное (не совсем уверен, что этот момент, что-то слышал о сложной УФ производной по математике, но я полагаю, что мы можем сказать, , что их интерполяция).
Итак, вот некоторые «целевые» вопросы.
Как работает пиксельный шейдер? Я имею в виду, что пиксельный шейдер, очевидно, выполняет некоторые действия «за пиксель», но из-за неочевидного перехода вершины-> пикселя это дает некоторые вопросы.
Могу ли я считать, что если я оцениваю матрица - векторное произведениераз в моем пиксельного шейдера, это будет оцениваться раз когда изображение растеризации? Или было бы лучше оценить все, что возможно в моем вершинном шейдере, а затем передать его в пиксельный шейдер?
Кроме того, если кто-то может указать статьи/тезисы на эту тему, я был бы очень признателен.
спасибо.
UPDATE
Я думал, что это на самом деле не имеет значения, потому что взаимодействие должно быть достаточно везде одинаково. Я разрабатываю приложения для визуализации и игры для настольных компьютеров, используя HLSL/GLSL/Nvidia CG для шейдеров и в основном C++ в качестве базового языка.
Вы можете получить лучше ответ, если вы объясните, что платформа/API вы пытаетесь использовать. Вероятно, вам не хватает тега темы или двух. Как бы то ни было, я даже не знаю, о чем вы говорите. – 2010-11-24 20:03:26
@Noah См. Обновление – 2010-11-24 20:07:51