Managed DirectX, конвертация из MDX в SlimDX (1/3)

Опубликовано Апр 2, 2010 в .NET, DirectX | 1 коммент.

Как обстоят дела с использование DirectX в .NET?

MDX to SlimDX converted code sample render

Состояние дел на текущий момент:

1. Имеется «чистый» DirectX, с которым напрямую, без interop обёртки работать из .NET невозможно.

2. Не обновляемый и официально закрытый с 2006-го года проект от Microsoft — MDX (Managed DirectX). Вышла версия 1.1, версия 2.0 вышла только в бете, после чего MS прикрыло этот проект, порекомендовав разработчикам следующее:
Использовать либо чистый DirectX «для профессионалов», XNA «для энтузиастов» или XNA с отчислениями в MS если вы хотите разрабатывать сетевые игры с использованием XNA или игры под Xbox360.

3. XNA — SDK для разработки игровых 2D и 3D приложения в .NET. Включает продукт XNA Game Studio, который интегрируется с Visual Studio 2008 и позволяет вести удобную разработку с XNA. 3-я версия XNA Game Studio позволяет разрабатывать приложения под Windows, Xbox360 и Zune. А последняя, 4-я версия, на текущий момент существующая в бета версии позволит вести разработки и для Windows 7 Phone. Из недостатков — существенные изменения API от версии к версии.

Если вы разрабатываете 2D или 3D игры под эти платформы, ваш выбор — использовать XNA.

Но, что, если наша задача — не разработка игр, а некое более абстрактное использование 3D графики с перевесом в сторону «чистого» использования DirectX, но под .NET?

4. Остаётся последний путь. Open source проект SlimDX — тонкая обёртка над DirectX, обеспечивает работу с DirectX из .NET. С библиотеками SlimDX можно работать из .NET 2.0, однако без проблем эти же библиотеки можно использовать и из .NET 4.0, причём без перекомпиляции исходников SlimDX как советуют некоторые источники.

Вот именно на нём мы и остановимся (дальше о конвертации MDX кода в SlimDX).


Большинство примеров, которые можно найти в сети при запросах «.NET DirectX», «Managed DirectX» ведут на примеры для не поддерживаемого MDX. И если DirectX код в SlimDX портируется почти один к одному, то при конвертации проектов из MDX в SlimDX возникает множество затруднений. Именно этим проблемам и посвящена эта статья. Я не нашел в сети подробного описания подобной конвертации, некоторые моменты заняли довольно много времени, поэтому вот готовое блюдо:

Конвертация MDX проекта в SlimDX

В качестве примера используем замечательное MDX приложение Terrain Viewer от Patrick Murris (к сожалению, автор не продлил свой домен, где вёл блог NASA World Wind Plugins и оригинальная страничка больше недоступна). Вот его другой блог http://patmurris.blogspot.com/ но в нём Патрик пишет только на Java.

В следующих заметках, мы рассмотрим все особенности, которые встречаются при портировании Managed DirectX в SlimDX framework, на примере MDX приложения Патрика Мурриса Terrain Viewer.

Один комментарий : “Managed DirectX, конвертация из MDX в SlimDX (1/3)”

  1. barkadron пишет:

    Интересная тема…
    Было бы неплохо, если б разобрали какой-нить рабочий пример на SlimDX…

Оставить комментарий