OpenGL ES glClearColor при 0,5 становится белым

#android #opengl-es #android-ndk

#Android #opengl-es #android-ndk

Вопрос:

Я устанавливаю glClearColor (0.5f, 0.5f, 0.5f, 1.0f), и когда он рисует, на краткий момент я вижу, что все нормально, но он очень быстро становится полностью белым. Я также замечаю, что этот эффект также происходит с одной из моих текстур, которые используют те же цифры, что и фон. По какой причине это делается, и что нужно сделать, чтобы заставить его просто отображать цвет # 7f7f7f, что, я надеюсь, решит мою проблему с текстурой, которая, похоже, страдает от того же эффекта.

Комментарии:

1. Это единственное место, которое вы вызываете glClearColor?

2. Что вызывает исчезновение? Что-то где-то вызывает «затухание» с течением времени, в чем причина?

3. Может ли такое поведение вызвать сначала рендеринг в текстуру?

4. также может быть вызвано функцией наложения?

Ответ №1:

Похоже, это было как-то связано с функцией наложения. Возврат к glBlendFunc(GL_COLOR_SRC, GL_ONE) или чему-то в этих строках, предшествовавшим glClearColor, заставил его вести себя так, как он делал изначально (я играл с функцией blend). Вероятно, это могло бы решить мою проблему с текстурой, если бы у меня было время. Однако все еще не уверен, будет ли рендеринг текстуры первым способствовать этому в любом случае.

ОБНОВЛЕНИЕ: Это было связано с функцией blend, и похоже, что рендеринг текстуры действительно меняет результаты. Ввод glBlendFunc(GL_ONE, GL_ZERO) перед выводом на экран полностью изменил внешний вид.