Это зависит от того, что вы делаете точно.Как отметил Дэвид Хеффернан, одна из целей Direct3D - перенести как можно больше обработки на графический процессор.С появлением вершинных шейдеров, пиксельных шейдеров и многого другого мы стали ближе к этой реальности, чем когда-либо.
Конечно, учитывая бесконечное время и ресурсы, вы обычно можете создавать более эффективные алгоритмы на C ++, чем на C #.Это повлияет на производительность на уровне процессора.Сегодня обработка, не связанная с графикой, по-прежнему в основном выполняется на процессоре.Существуют такие вещи, как CUDA, OpenCL и даже будущие версии DirectX, которые откроют возможности для переноса любого параллельного алгоритма на GPU.Но уровень внедрения этих технологий (и видеокарт, которые его поддерживают) пока еще не совсем мейнстрим.
Итак, для каких типов ресурсоемких алгоритмов стоит рассмотреть C ++?
- Искусственный интеллект
- Двигатели частиц / симуляции n-тела
- Быстрое преобразование Фурье
Это только первые вещи, о которых я могу думать.По крайней мере, первые два очень распространены в играх сегодня.В играх ИИ часто делается скомпрометированным, чтобы запускаться как можно быстрее, просто потому что он может быть настолько ресурсоемким.И тогда двигатели частиц повсюду.