Язык шейдинга OpenGL ES (2.0): как ввести логическое значение в вершинный шейдер и перейти к фрагментному шейдеру?

Я впервые пытаюсь передать логическое значение в свой вершинный шейдер; До сих пор я использовал только поплавки.

Рассматриваемое логическое значение зависит от примитивов, поэтому не может быть передано как униформа. Однако он имеет одинаковое значение для всех вершин любого данного примитива.

Из спецификации Khronos кажется, что «варьирование» - это единственный способ передать данные во фрагментный шейдер, но неудивительно, что «изменяющийся bool my_bool; вызывает ошибку парсера при определении в моем вершинном шейдере.

Я передаю логическое значение в свой вершинный шейдер как:

attribute bool a_my_bool;

Я определяю варьирование в попытке передать фрагментному шейдеру:

varying bool v_my_bool;
void main() {
    // ...
    v_my_bool = a_my_bool;
}

Не могли бы кто-нибудь сказать мне, как я могу достичь того, что я намерен?

10
задан genpfault 4 September 2019 в 15:27
поделиться