Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #64, МАРТ 2006 г.

неуправляемый directx

ФЛЕНОВ МИХАИЛ AKA HORRIFIC

Спецвыпуск: Хакер, номер #064, стр. 064-008-2


Все эти интерфейсы можно использовать в следующих языках программирования:

MICROSOFT VISUAL C#;

MICROSOFT VISUAL BASIC .NET;

MICROSOFT VISUAL C++;

MICROSOFT JSCRIPT .NET.

Самое интересное — последний язык. Судя по всему, Managed DirectX планируют использовать в интернете для создания сервисов с поддержкой 3D-графики!

тест производительности

Попробуем провести достаточно простой тест производительности. Так как примеры, которые идут в поставке с DX SDK, схожи по выполняемым функциям и притом выводится FPS, нам будет достаточно сначала запустить на одном компьютере пример на классическом DirectX, а потом — с использованием Managed DirectX. В качестве примера возьмем плавающего дельфина DXSDK\Samples\C#\Direct3D\DolphinVS.

На ноутбуке Pentium M 1.7 (видео от ATI Mobility Radeon 9700) получились следующие результаты FPS для плавающего дельфина: 1) программа на C# с использованием Managed DirectX в среднем показала 540 FPS; 2) программа на C с использованием классического DirectX в среднем показала 620 FPS.

Разница в 80 FPS (в данном случае — примерно 15%) оставляет двусмысленное впечатление. С одной стороны, разработчики хорошо постарались и для управляемого кода получилась достаточно высокая производительность. Не забываем, что код C# выполняется как бы в виртуальной машине. С другой стороны, падение производительности на 15% неоправданно, я бы просто зажал их. Лучше потратить драгоценные потерянные такты процессора на что-то пополезнее.

И все же для Managed DirectX найдется применение в простых играх, а разработчики на таких языках, как C# и VB.NET, будут очень довольны. Раньше создание игр на VB было сущей каторгой!

источники информации

Как все уже заметили, пока распространилось очень мало информации о Managed DirectX, потому что технология новая и многие относятся к ней с опаской. Самый лучший источник — это блог Тома Миллера. Том является одним из разработчиков API для Managed DirectX. Кто как не он знает все тонкости и последние новости?

Кроме того, Том написал даже целую книгу, в которой подробно описал Managed DirectX девятой версии. Книга посвящена разработке графики и игр и называется Managed DirectX 9 Graphics and Game Programming (Sams Publishing, 2004). В России эта книга была переведена в издательстве «КомБук», причем название книги и ее обложка не изменились.

субъективные размышления

Технология Managed DirectX — мощное средство создания игр. Представь себе игру, написанную на C# в сочетании с Managed DirectX. По заявлениям MS, программы .NET могут выполняться на любой платформе при наличии соответствующего .NET Framework, следовательно, мы получаем межплатформенную игру. Однако с последним есть серьезные проблемы. Во-первых, не существует .NET, нормально портированной на системы, отличные от Windows. Есть лишь попытки сделать что-то под Linux, но они неработоспособны на все 100%.

Как мне кажется, нормальные люди вообще не будут портировать DirectX, потому что не хотят нарываться на серьезные проблемы. Managed DirectX использует библиотеки неуправляемого DirectX, портировать который - мегасложно из-за применения технологии COM. Одну эту технологию много раз пытались перенести на Linux, половина попыток закончилась неудачно, а остальные накрылись медным тазом. То же самое может ожидать Managed DirectX. Если вспомнить, что есть еще такие ОС, как Sun, FreeBSD, MacOS, в которые не ступала нога .NET, то все поймут, что межплатформенность — мечта, которая может и не сбыться.

Назад на стр. 064-008-1  Содержание  Вперед на стр. 064-008-3