Самый эффективный способ текстуры Splat OpenGL? - PullRequest
0 голосов
/ 30 января 2011

Мне нужно объединить до 17 текстур, а затем визуализировать их в четырехугольник (ну, 2 треугольника), используя openGL.Мне нужно отрисовать большую часть этих четырехугольников - возможно, 500.

Мне было интересно, какой самый быстрый / лучший способ сделать это:

A.рендеринг за много проходов B. объединение текстур в FBO и рендеринг за один раз C. использование мультитекстуры opengl и рендеринг за несколько проходов D. объединение текстур с процессором, загрузка в текстуру opengl, а затем рендеринг E. прочее?

Ответы [ 2 ]

1 голос
/ 22 февраля 2011

Несколько проходов означает выполнение нескольких пиксельных шейдеров, а также несколько операций ROP / смешивания, которые могут легко стать узким местом как на оборудовании последнего поколения, так и на оборудовании текущего поколения. Таким образом, вставка всего в один проход или несколько проходов (C) должна быть выгодной.

Я не уверен насчет «объединить в FBO», хотя я не могу предоставить убедительных доказательств этого, похоже, что это будет медленнее (поскольку у вас будет как минимум 2 повторных FBO и, по крайней мере один трубопроводный киоск). Хотя, конечно, это зависит ... если вы объедините 17 одинаковых текстур один раз и нарисуете одну объединенную текстуру тысячу раз, это может быть быстрее. Если у вас есть дюжина или около того различных комбинаций того, как объединяются эти 17 текстур, это, вероятно, будет выглядеть по-другому.

Современные графические процессоры не должны иметь проблем с выборкой до 17 текстур в фрагментном шейдере (аппаратное обеспечение GL 3.x имеет минимум 48), и это просто.

0 голосов
/ 30 января 2011

A, B и C должны иметь одинаковую производительность.

Все зависит от того, насколько мощны ваш графический процессор и процессор.Это решило бы, использовать ли один из a, b или c, или d.

...