Игнорирование случаев многопоточного кодирования, которые несколько продвинуты, основная причина, по которой вы хотите создать несколько кодировщиков команд рендеринга во время фрейма, заключается в том, что вам нужно изменить, какие текстуры вы рендерите.
Вы Вы заметите, что вам нужно предоставить дескриптор прохода рендеринга при создании кодировщика команды рендеринга. По этой причине мы часто говорим, что последовательность команд, принадлежащих конкретному кодеру, составляет проход визуализации . Вложения этого дескриптора ссылаются на текстуры, которые будут записаны командами, закодированными кодировщиком.
Многие различные методы, включая отображение теней и эффекты постобработки, такие как Блум, требуют нескольких проходов. Поскольку вы не можете изменить вложения в середине прохода, создание нового кодировщика является единственным способом кодирования нескольких проходов в кадре.
Соответственно, вы должны обычно использовать один буфер команд на кадр. Однако иногда вы можете сократить время кадра, разделив ваши проходы между несколькими буферами команд, но это сильно зависит от формы вашей рабочей нагрузки и должно выполняться только в тандеме с профилированием, поскольку это не всегда является оптимизацией.