Смешивание DirectX и OpenGL - PullRequest
       32

Смешивание DirectX и OpenGL

5 голосов
/ 07 октября 2011

Я хочу иметь возможность рендерить в окно рендеринга OpenGL, используя DirectX.Это потому, что функции, которые мне нужны, поддерживаются только в DirectX.

Я слышал, что это можно сделать несколько лет назад, и я надеюсь, что это все еще возможно.

Я полагаю, что это будет включать указание DirectX на правильную часть VRAM и правильный буфер глубины.

Также очень полезно руководство или просто объяснение.

Ответы [ 4 ]

3 голосов
/ 07 октября 2011

По крайней мере, у NVIDIA есть расширение NV_DX_interop , которое позволяет использовать буферы / текстуры / поверхности Direct3D 9 непосредственно как буферы / текстуры / рендеринг буфера OpenGL (следовательно, наоборот).Но у меня нет никакого опыта с этим, и я не знаю, широко ли он поддерживается или действительно работает хорошо.

Было бы более интересно, какие функции, по вашему мнению, доступны только в Direct3D.Может быть, мы сможем показать вам, как этого добиться с помощью OpenGL, поскольку существует не так много функций (если таковые имеются), которые доступны в Direct3D, а не в OpenGL.Хотя если у вас есть карта ATI, то быть доступным и работать правильно может иногда быть двумя разными вещами.

2 голосов
/ 07 октября 2011

Смешивание OpenGL и Direct3D не будет работать, и AFAIK никогда не использовался.Могу ли я спросить, какие функции Direct3D вам требуются, которые OpenGL не предлагает?

0 голосов
/ 19 марта 2014

Один конкретный пример различия между OpenGL и Direct3D, который я сам исследую, - это то, что в DirectShow (подмножество Direct3D) есть фильтры захвата видео для моих камер на базе Panasonic DVCPRO-HD. Поэтому живые потоки, собранные через этот API, я хотел бы использовать в качестве входных данных для библиотек OpenGL. Одной из таких библиотек является OpenFrameWorks, которая основана на OpenGL. Я смотрю, как эффективно я могу сделать этот перевод. Существующий OpenFrameWorks Video API использует немного устаревший и устаревший API DirectShow и использует стратегию грубой силы для передачи пикселей из DirectShow в OpenFrameWorks.

0 голосов
/ 08 января 2013

Можно. По крайней мере, для NVIDIA! Проверьте NV_DX_interop. Но, тем не менее, каждая функция DirectX поддерживается в OpenGL, так как OpenGL более RAW / Low, чем DirectX! То, как это реализовано, может быть другим. Опять же, скажите нам, КАКУЮ особенность DirectX вы хотите, и я могу подсказать вам, как ее реализовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...