GLSL ES 2.0 - альтернатива для UBO?
Из того, что я читал о invariant
Ключевое слово для GLSL ES 2.0 звучит как нечто, что можно считать синонимом функциональности, предоставляемой единым буферным объектом, в том смысле, что несколько шейдерных программ могут "совместно использовать" данные, предоставленные для различных входных данных. То, что я хотел бы знать, может ли это быть использовано как альтернатива для UBO в любом случае. Поскольку OpenGL ES 2.0, по-видимому, не обеспечивает поддержку UBO, и если invariant
Ключевое слово не может выступать в качестве альтернативы, возможно ли получить аналогичную функциональность, используя расширения или иным образом?
1 ответ
invariant
не имеет абсолютно ничего общего с равномерными буферами. invariant
означает, что если два отдельных шейдера имеют одинаковые входные значения и используют одно и то же выражение для вычисления invariant
-квалифицированный вывод, то на выходе будет гарантированно выдано одинаковое значение в обоих шейдерах. Без этого классификатора такой гарантии не существует.
invariant
не имеет никакого отношения к обмену "данными, предоставленными для различных входов". invariant
о том, как выход квалифицируется и вычисляется.
Что касается остальной части вашего вопроса, нет, OpenGL ES 2.0 не имеет ничего общего с UBO. Вам придется установить разные формы в разных программах на одно и то же значение.