Say есть много различного зацепления с преобразованиями, что изменения более или менее каждый кадр, что бы вообще быть быстрее этими методы рисования:Рисование Сетки с Трансформацией
- Для каждого кадра заполнить большую вершину буфер с преобразованными вершинами сетки (преобразование выполняется на CPU и вершины, скопированные в буфер каждый кадр).
- Для каждого создания объекта вставляйте неотвержденные вершины сетки, затем при рисовании отправляйте преобразование каждой сетки в виде однородного параметра (преобразование, выполняемое на GPU, вершины копируются при создании сетки).
Мы можем предположить, что все сетки рисуются каждый кадр, а не копирование вершин для случая 1) не имеет значения.
Как насчет стоимости установки преобразования в качестве параметра шейдера униформы/констант для каждого кадра и каждого меша, как требуется в # 2, но не # 1? Это накладные расходы незначительны? –
Это стоимость «~ M bus transfer», на которую ссылается мой ответ. Накладные расходы не являются незначительными в приложении, которое использует только подход № 2, но на несколько порядков меньше стоимости предварительного преобразования всей сетки, а затем выполняет другую передачу стоимости стоимости N. Это связано с тем, что большую часть времени N на много порядков больше, чем M, а также графические процессоры гораздо эффективнее при преобразовании на вершину, чем у процессоров. – MooseBoys