HLSL без WPF или XNA? - PullRequest
       41

HLSL без WPF или XNA?

2 голосов
/ 31 декабря 2011

У меня есть большое научное приложение, написанное на VB .NET 4.0 с использованием winforms.Я нахожу потребность в пиксельных шейдерах.Чтобы использовать пиксельные шейдеры в этой ситуации, я предполагаю, что мне нужно, например, запустить форму WPF, сделать немного магии графики, а затем исчезнуть из формы.Это кажется неловким.Итак, у меня вопрос: есть ли способ использовать пиксельные шейдеры HLSL в приложении winforms без WPF или XNA?

Большое спасибо.

Кэтрин

Ответы [ 4 ]

3 голосов
/ 03 января 2012

Вы определенно не хотите использовать MDX (управляемый DirectX устарел) или вызывать нативный DirectX (заново изобретать колесо).Вам гораздо лучше использовать SlimDX или SharpDX , две библиотеки с открытым исходным кодом и новейшие библиотеки.

Аналогично, если OpenGL является опцией, то естьбиблиотеки вроде OpenTK для этого.

2 голосов
/ 03 января 2012

HLSL действительно то, что вы хотите?Если это научное приложение, вам лучше использовать более обобщенный язык шейдеров, такой как CG .

. Чтобы ответить на ваш вопрос, WPF и XNA требуют HLSL, но зависимость только однапуть.Лучше всего, вероятно, прибегнуть к собственному коду C ++ и интерфейсу с DirectX или OpenGL таким образом - этот нативный интерфейс может быть интегрирован с вашим приложением VB4 через COM .Это не симпатичное решение, но устаревшие приложения никогда не бывают:)

РЕДАКТИРОВАТЬ: я только что увидел, что вы используете VB.NET с .NET 4.0.Я думал, что вы использовали очень старый Visual Basic 4!В этом случае ответы, в которых упоминается управляемая оболочка DirectX (SlimDX), - ваш лучший вариант:)

1 голос
/ 03 января 2012

Да, вы можете использовать шейдер HLSL без WPF и XNA с помощью DirectX. Вам нужно создать файл шейдера (.fx), а затем использовать его в C # или VB.NET с помощью библиотеки MDX. Здесь - это образец, который вам поможет

0 голосов
/ 03 января 2012

Вы можете использовать нативный DirectX.Xna в Windows - это, по сути, оболочка DirectX.Если вы используете нативную библиотеку DirectX, вы, вероятно, сможете выяснить большинство из них самостоятельно, если вы знакомы с Xna, но есть много руководств.Самая сложная часть для эмуляции - конвейер содержимого.

Для этого просто загрузите последний пакет DirectX SDK, установите его и добавьте ссылки на библиотеки Microsoft.DirectX. *.

...