Итак, я хочу рисовать много квадов (или даже кубов), и наткнулся на эту замечательную вещь, называемую геометрическим шейдером.
Теперь я примерно понимаю, как это работает, и, вероятно, я мог бы манипулировать им, чтобы нарисовать куб для каждой вершины в буфере вершин, но я не уверен, что это правильный способ сделать это. Геометрический шейдер располагается между вершинным шейдером и фрагментным шейдером, поэтому он работает с вершинами в пространстве экрана. Но они мне нужны в мировом пространстве для трансформаций.
Итак, можно ли, чтобы мой вершинный шейдер просто перенаправлял входные данные в геометрический шейдер, а геометрический шейдер умножался на матрицу modelviewproj после создания примитивов? Это не должно быть проблемой с унифицированной архитектурой шейдеров, но я все еще чувствую тошноту, когда делаю вершинный шейдер избыточным.
Есть ли альтернативы? Или это действительно «правильный» способ сделать это?