Фрагмент шейдера OpenGl Скорость текстуры - PullRequest
1 голос
/ 22 июня 2011

У меня есть следующий фрагментный шейдер.

varying highp vec2 tCoord;

void main() {
    vec4 hc = texture2D(hair, tCoord);
    gl_FragColor = hc;
}

В моей программе я рисую около 15 изображений на экране (только 2D, без 3D манипуляций).Я позволяю пальцу перемещать все изображение.Поэтому, когда изображения на экране, я получаю 40 кадров в секунду, но когда я перемещаю их за экран (пальцем), я получаю 60 кадров в секунду.(Это устраняет любые узкие места в программе или вершинном шейдере).Я запускаю это на Galaxy Tab 7 ".

Так как это очень простой шейдер, я бы все время ожидал 60 кадров в секунду. Любая причина, почему это медленно?

Ответы [ 2 ]

2 голосов
/ 22 июня 2011

highp, вероятно, не ускоряется на встроенном оборудовании, таком как большинство устройств Android. Помогает ли это вообще использовать точность по умолчанию? Как вы думаете, зачем вам нужна такая высокая точность координат текстуры на экране с низким разрешением?

0 голосов
/ 14 июня 2012

Я работал на платформе Tegra с Android 3.2.1 и OpenGLES ES 2.0.

если вы можете жить без необходимости использования переменной между ними, попробуйте назначить напрямую. Я испытал создание переменной и назначение, чтобы быть дорогим как 3-5 кадров в секунду. Texture2d также стоит что-то в этом диапазоне в кадрах в секунду.

varying highp vec2 tCoord;

void main() {
    gl_FragColor = texture2D(hair, tCoord);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...