2016-05-27 7 views
1

Я прочитал Batch,Batch,Batch.Какой из них более важен для дозирования в OpenGL?

В процессе Batching, есть две основные вещи:

1 Сохранить п число треугольников

2 SetState

Так какой из них является более центрального процессора много времени?

Или сам SetState фактически не имеет значения. Это имеет значение только потому, что, как только государство изменилось, мы снова должны представить треугольники?

+0

Итак, вы читаете 10-летний PDF-файл, в основном ориентированный на другой API (D3D). У него был один слайд на OpenGL, и этот слайд показал, что у GL нет проблемы, о которой он говорит. Или, по крайней мере, не так много). Почему, по-вашему, это ценная информация, которую вы можете усвоить и следовать? –

+0

@NicolBolas В настоящее время я использую Unity. Версия Unity 4 говорит о сокращении drawcall. Тогда версия Unity 5 сказала, что вызов вызова не имеет значения. Партийные вопросы. После того, как я провел несколько дней исследований, похоже, все они относятся к этому старому документу. Вот почему. – AlexWei

+0

@NicolBolas Спасибо. Это то, что я ищу. – AlexWei

ответ

0

В общем, это не имеет никакого значения (как вы говорите, в конце вашего вопроса)

  • Если вы делаете SetState без представления данных, чтобы сделать с этим государством, это просто глупо. Не используйте SetState.
  • Если вы рисуете несколько партий с одним и тем же состоянием, возможно, вы представили их как одну партию.

То, что делает «заданное состояние», будет очень зависимым от водителя и в котором вы будете изменять. Некоторым изменениям может потребоваться большая проверка, и это можно было бы сделать, когда вы установили состояние или когда оно действительно будет отправлено на GPU, и не знаете наверняка.

В целом, я считаю, что «подача ничьей» считается 1 партией, независимо от того, было ли изменено состояние перед тем, как это сделать или нет.