Как я могу использовать вершинный шейдер, чтобы умножить мои данные вершины на униформу? - PullRequest
1 голос
/ 24 июля 2011

Этот вопрос возник из более ранней проблемы, с которой я столкнулся .По сути, я пытался реализовать ортогональное масштабирование в своем шейдере, изменяя компоненты масштаба моей проекционной матрицы, но это было невозможно.На самом деле мне нужно было масштабировать верты перед тем, как «отправлять их» в мой шейдер через ничью.Это работает как шарм ...

Но, конечно, проблема в том, что теперь в программном обеспечении я отвечаю за масштабирование всех моих вертов, прежде чем передать их шейдеру.Это заставляет меня задуматься о том, можно ли сделать это с помощью вершинного шейдера.Я думаю, что это так, но я не могу понять это.

То, что я делаю, - это просто прохожу все 4 моих верта (содержится в float vertices[8]) и выполняю *= scale;.Чтобы быть немного более точным, я умножаю компоненты X и Y отдельно на scaleX и scaleY.

Как я могу сделать то же самое в вершинном шейдере?

1 Ответ

1 голос
/ 25 июля 2011

замените gl_Vertex на (gl_Vertex * scale) везде в вашем вершинном шейдере. Или, если вы используете пользовательский ввод для своей координаты, укажите * scale.

...