Контекст: Я только начинаю. Я даже не трогаю Direct3D 11 API, а вместо этого смотрю на понимание трубопровода и т. Д.При использовании Direct3D сколько математики выполняется на процессоре?
От взгляда на документацию и информацию, плавающие по сети, кажется, что некоторые вычисления обрабатываются приложением. То есть вместо простого представления матриц для умножения на GPU вычисления выполняются с помощью математической библиотеки, которая работает на CPU . У меня нет особых ресурсов, чтобы указать на это, хотя, я думаю, я могу указать на XNA Math Library или образцы, отправленные в феврале DX SDK. Когда вы видите код mViewProj = mView * mProj;
, этот прогноз рассчитывается на CPU. Или я ошибаюсь?
Если вы писали программу, на которой вы можете иметь 10 кубов на экране, где вы можете перемещать или поворачивать кубы, а также точку обзора, какие вычисления вы бы делали на CPU? Я думаю, что я бы сохранил геометрию для одного куба, а затем преобразовал матрицы, представляющие фактические экземпляры. И тогда мне кажется, что я буду использовать математическую библиотеку XNA или другую по своему выбору для преобразования каждого куба в пространстве модели. Затем получим координаты в мировом пространстве. Затем нажмите эту информацию на GPU.
Это довольно немного расчетов по процессору. Я ошибаюсь?
- Имею ли я выводы, основанные на слишком мало информации и понимании?
- Какие условия я должен использовать для Google, если ответ STFW?
- Или, если я прав, почему эти вычисления не переносятся на GPU?
EDIT: Кстати, я не использую XNA, но документация отмечает, что XNA Math Library заменяет предыдущую библиотеку DX Math. (я вижу библиотеку XNA в SDK как явную библиотеку шаблонов).
«Как правило, вы делаете изменения уровня в мире, возможно, 20 вычислений, связанных с процессором»: Даже для более сложных сцен? Вы бы переделали свою математическую библиотеку (скажем, надавливание вычислений, связанных с ЦП, на GPU)? Или это просто ошибочный дизайн, который имеет большое количество вычислений, связанных с процессором? (Также обратите внимание на мое редактирование, используя C++, а не C# + XNA). – user346582
Использование процессора не является злом: количество вычислений ЦП, которое вы можете выполнять и поддерживающее 60 FPS (минимальный целевой FPS для хорошего пользовательского интерфейса, IMHO), абсолютно безумный по сравнению с современным двухъядерным процессором и с 64-битным, 6-ядерным, 12-канальные 3.5 ГГц процессоры доступны для <$ 1000usd, он только улучшается. Конечно, допустимое% процессорного времени полностью зависит от вас. Существует несколько библиотек для вывода общего расчета на графический процессор: http://stackoverflow.com/questions/1249892/c-perform-operations-on-gpu-not-cpu-calculate-pi. Использование графического процессора в качестве математического сопроцессора определенно находится в движении. – Rusty
Я не считаю процессор злым, но я просто считаю странным, что вычисления, связанные с рендерингом графики, остаются в CPU, а затем есть передний край, чтобы переместить такие вычисления на самое устройство, которое ускоряет рендеринг. Несмотря на это, хорошо иметь подтверждение о вычислениях на процессоре. Спасибо, что нашли время ответить на мой вопрос. – user346582