Я не могу комментировать, как заставить DirectX11 работать с этим примером, но 5% CPU, который вы наблюдаете, вероятно, является циклом рендеринга при вращении DirectX, но без работы.
Цикл рендеринга обычно используется в играх для рендеринга «так быстро, как вы можете» при обновлении сцены / физики / ИИ в другом потоке.В настольных приложениях визуализации это обычно не требуется.
Для научных приложений визуализации, где обновления GUI происходят только тогда, когда пользователь взаимодействует (например, перетаскивает элемент, перемещает область просмотра). Я переработал цикл рендеринга, чтобы он отображался только при наличии обновления.То есть: после вашей работы по панорамированию области просмотра при перемещении мыши вы заставляете DirectX перерисовывать, устанавливая флаг или подобное.Таким образом, «рисование, когда вам это нужно» уменьшит ваш процессор почти до нуля, пока приложение не работает, и больше подходит для настольных приложений.