Улучшение частоты кадров сценарной геометрии
Я рендерил большое количество (миллионов) экземпляров геометрии. Сама геометрия проста, коробка без нижней грани. Визуализированная сцена на самом деле представляет собой трехмерный график, в котором прямоугольники представляют собой линии (только 3 грани отображаются одновременно с использованием отбора).
Когда сцена занимает небольшую область экрана (либо уменьшенное, либо маленькое окно), частота кадров в порядке, но когда она становится больше, частота кадров падает ниже допустимого уровня. Сцена не перерисовывается постоянно, только когда пользователь меняет вид (вращение, масштабирование) и частота кадров ограничена до 60 кадров в секунду.
Во-первых, выявление проблемы. Я не уверен, достигаю ли я предела скорости заполнения или предела пропускной способности пиксельного шейдера (слишком мало мультипроцессоров для обработки всех фрагментов). Пиксельный шейдер ничего не делает, просто выводит цвет, но это все равно должно привести к тому, что процессор запустит код. Я использую его на Nvidia 635m в архитектуре Optimus, и можно ожидать, что он подойдет для подобных мобильных графических процессоров. Как я могу определить, какая из них является проблемой?
И следующим шагом после выявления проблемы будет ее решение. Как правило, не так много фрагментов (как было бы, если бы я сделал комнату, а затем поставил перед ней стену), поэтому оптимизация в этом отношении имела бы незначительное улучшение. Каковы были бы другие способы улучшить частоту кадров?