Простой ответ здесь, возможно, XNA. И, возможно, WPF. Это зависит.
Если вы ищете что-то похожее на игру, XNA - это действительно хорошее решение, поскольку оно дает вам фреймворк, который отлично сочетается практически с любой реализацией трехмерного интерактивного мира. В дополнение к обработке всех трехмерных визуальных элементов вы получаете такие вещи, как обнаружение столкновений, освещение, время и камеры, которые очень легко подключаются. Если то, над чем вы работаете, это какое-то трехмерное виртуальное пространство, то, скорее всего, у вас есть что-то вроде игры, и XNA даст вам гораздо больше, кроме только графического конца.
В противном случае, если вы ищете трехмерный интерфейс или визуализацию данных, WPF, вероятно, больше, чем вы хотите. Там меньше ненужных накладных расходов, и другие вещи, которые вы включаете, такие как командование или привязка данных, вероятно, будут в любом случае более полезными для вас. Насколько я понимаю, он настроен на использование аппаратного ускорения на бэкэнде и будет обрабатывать шейдеры материалов и различные 3d-эффекты с помощью программного обеспечения, если это необходимо, чтобы пользователь получал визуально непротиворечивый опыт.
Если у вас есть пример, который не очень хорошо вписывается ни в один из этих лагерей, мне было бы интересно услышать об этом. Может быть хорошей возможностью для тех, кто хочет написать полезную графическую библиотеку ...