Стереоскопическое 3D на WPF

Я должен показать стереоскопическую 3D-графику на элементе управления WPF.

У меня уже есть код, который создает две текстуры DirectX-9 для показа, по одной текстуре для каждого глаза.

Я хочу использовать 3D Vision (не анаглиф).

Я рассмотрел следующие способы отображения двух изображений в качестве 3D-стерео:

Использование OpenGL или DirectX 11.1 Stereo API.Используя NvAPI_Stereo_SetActiveEye, как описано здесь:http://www.nvidia.com/docs/IO/40505/WP-05482-001_v01-final.pdfИспользуя стерео подпись NVidia, как описано здесь:NV_STEREO_IMAGE_SIGNATURE и DirectX 10/11 (nVidia 3D Vision)Попытка рендеринга двух изображений один за другим, надеясь, что CompositionTarget.Rendering не потеряет слишком много VSyncs, и синхронизирует, если отдельные VSyncs будут потеряны. Кроме того, включив излучатель 3D Vision с помощью невидимого элемента управления, создающего вымышленное стереоскопическое изображение.Рендеринг 3D-сцены и возможность драйвера NVidia сделать его стереоскопическим автоматически.Рендеринг на некоторый настоящий элемент управления Windows (например, элемент управления Winform) и использование хоста WPF (например, WinFormHost) для отображения содержимого.

Проблемы с вышеуказанными методами:

1-3. Один из первых трех способов кажется простым решением, но он невозможен в WPF, поскольку я не могу создать устройство / контекст и управлять способом визуализации изображения.

4: С CompositionTarget.Rendering я получаю только около 60 Гц вместо 120 Гц. Я предполагаю, что проблема в том, что EndScene () вызывается дважды - один в моей отрисованной сцене, а другой в механизме рендеринга WPF, но я не уверен. В любом случае, даже если это сработает - это решение кажется нестабильным.

5: рендеринг трехмерной сцены в моем случае невозможен по некоторым техническим причинам, что вынуждает меня самостоятельно визуализировать два изображения для двух глаз.

6. Проблема с WinFormHost и его друзьями заключается в том, что он не является элементом управления WPF и имеет неожиданное поведение с точки зрения элементов управления WPF. Например, элемент управления WinForm будет скрывать элементы управления WPF, расположенные выше в логическом дереве, его нельзя повернуть с помощью RotateTransform и т. Д.

На данный момент я выбрал последнее решение - с помощью WinFormHost. Кто-нибудь знает решение для этой небьющейся стены с созданием стереоскопического 3D в реальном контроле WPF?

Ответы на вопрос(0)

Ваш ответ на вопрос