Ну вы же ведь расстеризатору не будете передавать вершины, вы будете передавать собранные примитивы :)
Всякие значение там интерполируются между вершинами собранного примитива: UV например, для пиксельного шейдера.
Я ни в коем случае не имею претензий к статье, очень кстати будет для новичков! Вы молодец!
Просто, я ожидал преобразование координат через матрицы ModelViewPort, и финт с (v1.x+1.)*width/2; не совсем понял.
P.S.
А пайплайн у вас в конечном счете будет иметь все стандартные этапы, типа вершинного шейдера, геометрического шейдера, растеризатора и пиксельного шейдера?
Подобный код ведь просто сожмет модель по оси Z и выведет её. А будете ли вы писать о матрицах трансформации (World, View, Projection и их аналоги в OpenGL) с переводом моделей в мировую систему координат, с реализацией камеры (View) для перевода в видовую систему координат и с Projection для перевода в «экранную» систему координат?
Я серьезно не понимаю о чем речь.
Что тут не так написано:
Deferred Rendering — один проход по геометрии с созданием GBuffer (Color+Normal+Depth).
Deferred Shading — один проход (рисование квада в самом простейшем случае) на один источник света с реконструированием позиции (исходя из Depth-буфера), с последующим посчетом освещения в Light Map
И собственно микс Light map с Albedo (Color). Где тут ошибка? Три прохода. На каждый DS — light pre-pass.
ARB_geometry_shader4
ARB_compute_shader
А чем по вашему занят геометрический шейдер, какая у него функция в пайплайне? :)
Всякие значение там интерполируются между вершинами собранного примитива: UV например, для пиксельного шейдера.
Просто, я ожидал преобразование координат через матрицы ModelViewPort, и финт с (v1.x+1.)*width/2; не совсем понял.
P.S.
А пайплайн у вас в конечном счете будет иметь все стандартные этапы, типа вершинного шейдера, геометрического шейдера, растеризатора и пиксельного шейдера?
P.S.:
На хабре приятно делиться знаниями, а не продавать их на ассет-сторе.
Что тут не так написано:
Deferred Rendering — один проход по геометрии с созданием GBuffer (Color+Normal+Depth).
Deferred Shading — один проход (рисование квада в самом простейшем случае) на один источник света с реконструированием позиции (исходя из Depth-буфера), с последующим посчетом освещения в Light Map
И собственно микс Light map с Albedo (Color). Где тут ошибка? Три прохода. На каждый DS — light pre-pass.
Deferred Shading — расчет освещения на основе данных GBuffer'a.
Их часто путают.
DR может включать DS, а может и не включать.
А вот DS включает в себя стадию DR всегда.
и Deferred Rendering, не находите?