«Делаю ли я выводы, основываясь на слишком малой информации и понимании?»
Не так плохо, как все мы, но одним словом: да.
То, что делает GPU, обычно зависит от драйвера GPU и вашего метода доступа. Большую часть времени вам действительно все равно или нужно знать (кроме любопытства и общего понимания).
Для mViewProj = mView * mProj; это, скорее всего, происходит на процессоре. Но это не большая нагрузка (не более 100 циклов). Настоящий трюк - применение новой матрицы представлений о «мире». Каждую вершину нужно более или менее трансформировать вместе с затенением, текстурами, освещением и т. Д. Все, если эта работа будет выполняться в графическом процессоре (если она выполняется на процессоре, все будет очень быстро замедляться).
Как правило, вы вносите в мир изменения высокого уровня, возможно, 20 вычислений с привязкой к ЦП, а графический процессор выполняет миллионы или миллиарды вычислений, необходимых для визуализации мира на основе этих изменений.
В вашем примере с 10 кубами: вы предоставляете преобразование для каждого куба, любая математика, необходимая для создания преобразования, связана с ЦП (за исключением). Вы также предоставляете преобразование для представления, опять же создание матрицы преобразования может быть связано с ЦП. Когда у вас есть 11 новых матриц, вы применяете их к миру. С аппаратной точки зрения необходимо скопировать 11 матриц в GPU ... это произойдет очень, очень быстро ... после того, как будет выполнено копирование CPU, и GPU пересчитывает мир на основе новых данных и отображает их буфер и покачивает его на экране. Таким образом, для ваших 10 кубов вычисления, связанные с процессором, тривиальны.
Посмотрите на некоторый отраженный код для проекта XNA, и вы увидите, где заканчиваются ваши вычисления и начинается XNA (XNA сделает все возможное в GPU).