Вредно ли сбрасывать производительность программы в OpenGL?

я читалэто статья, а автор пишет:

Вот как написать высокопроизводительные приложения для каждой платформы в два простых шага:
[...]
Следуйте лучшим практикам. В случае Android и OpenGL это включает в себя такие вещи, как «вызовы пакетной отрисовки», «не использовать сброс в фрагментных шейдерах» и так далее.

Я никогда раньше не слышал, чтобы отбрасывание отрицательно сказывалось на производительности или тому подобном, и использовал его, чтобы избежать смешивания, когда детальная альфа не нужна.

Может кто-нибудь объяснить, почему и когда использование discard может считаться плохой практикой, и как discard + deeptest сравнивается с alpha + blend?

Редактировать: После получения ответа на этот вопрос я провел некоторое тестирование, отрисовав фоновый градиент с текстурированным квадратом поверх этого.

Использование GL_DEPTH_TEST и фрагмент-шейдера, заканчивающегося строкой "if( gl_FragColor.a < 0.5 ){ discard; }"дал о32 кадра в секунду.Удаление оператора if / discard из фрагментного шейдера увеличило скорость рендеринга примерно до44 кадра в секунду.Использование GL_BLEND с функцией наложения "(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)" вместо GL_DEPTH_TEST также привело к примерно44 кадра в секунду.

Ответы на вопрос(1)

Ваш ответ на вопрос