Изменения состояния на самом деле не были дорогими в течение длительного времени. Пакеты стоят дорого. (И изменение состояния требует новой партии).Пакет - это, по сути, вызов функции Draw*Primitives
.
Этот документ от nVidia объясняет это подробно.Это также дает идеи по уменьшению количества ваших партий.
Партии - это ограничение на основе процессора (не GPU).В этом PDF-файле в качестве точки, в которой отправка пакетов доминирует над производительностью, указывается «<130 трис / пакет», а графический процессор бездействует в ожидании новых пакетов (<a href="http://blogs.msdn.com/b/shawnhar/archive/2008/03/31/an-elf-in-a-box.aspx" rel="nofollow noreferrer"> подробнее ).В нем также говорится, что вы получаете около 400 пакетов на кадр со скоростью 60 кадров в секунду на 1 ГГц процессорной мощности, выделенной для отправки пакетов.(Хотя PDF-файл немного устарел, поэтому эти цифры немного устарели.)
Мой ответ на сайте gamedev на аналогичный вопрос должен предоставить некоторые дополнительные сведения. Это тоже .