отключить текстуры opengl es ios - PullRequest
0 голосов
/ 11 января 2012

Как мне временно отключить текстуры в opengl es 2.x для ios в функции рендера?Я осуществляю выбор цвета.

Я не использую glkit.Я использую шейдеры, поэтому glDisable(GL_TEXTURE_2D) не работает и glBindTexture(GL_TEXTURE_2D,0)

1 Ответ

3 голосов
/ 11 января 2012

Зависит от того, чего вы хотите достичь.Если вы отключите текстуру, что вы ожидаете иметь при рендеринге?

Если ваш шейдер вычисляет цвет фрагмента на основе образца текстуры, если вы не привязываете какую-либо текстуру, что он должен использовать на местетекстуры?Цвет?

Я вижу 2 варианта:

A - использовать 2 шейдера, один с поддержкой текстур, другой с использованием фиксированных цветов (или вершинных цветов, если вы загружаете атрибут)

B - используйте один шейдер и управляйте рендерингом (текстурой или цветами), используя униформу.

Опция B обеспечивает гораздо большую производительность.

Правка первого вопроса о том, как это сделать:

if (Texture == 0) {
    gl_FragColor = vec4(1.0,0.0,0.0,0.0);  //red color
} else{
    gl_FragColor = texture2D(Texture, TexCoordOut);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...