Ответы Mail.ru: Работа графического конвейера

Eternally Against (239094) 3 года назад

Процессор занимается всем, что не связано с графикой, прежде чем приступать к отрисовке, надо рассчитать все что нужно для работы игры\движка (нельзя нарисовать кадр с выстрелом из пистолета, если вообще нет выстрела, пистолета, "физической" модели [если это игра] и прочего).
После того, как все предварительные расчеты завершены, ПРОЦЕССОР строит полигоны и ПРОЦЕССОР отправляет вызов на отрисовку в API, который уже интерпретирует запрос и отправляет его видеокарте (говорит как-бы "эй, я тут вот все подготовил, передай видеокарте мои пожелания, а я пока дальше пойду работать"). Объекты в кадре рисуются по очереди, процессор подготавливает полигональную сетку и запросы с описанием того, как их рисовать, отправляет их видеокарте и продолжает подготавливать следующие, пока видеокарта рисует то, что ей процессор запросил.
После того как весь кадр отрисуется, все повторяется по кругу для следующего кадра.
То, как устроен движок, может влиять на алгоритм работы, вероятно, какие-то задачи процессор может начать выполнять после того как закончит с первым кадром, но до того, как видеокарта закончит работу с первым кадром. Но в любом случае, раньше чем видеокарта сможет отрисовать кадр, построение следующего не начнется.

ВовчикПросветленный

3 года назад

Есть два момента, которые я хотел бы прояснить...
Вызовы на отрисовку, получается отправляет cpu, обращаясь к api? Я думал, что gpu при построении кадра, обращается к движку (api). Или это не так работает?
Cpu некоторые задачи в играх может решать наперед для лучшей оптимизации?