3D estereoscópico no WPF

Eu tenho que mostrar gráficos 3D estereoscópicos em um controle WPF.

Eu já tenho o código que cria duas texturas do DirectX-9 para mostrar, uma textura para cada olho.

Eu quero usar o 3D Vision (não anaglyph).

Eu considerei as seguintes maneiras de mostrar as duas imagens como estéreo 3D:

Usando OpenGL ou DirectX 11.1 Stereo API.Usando NvAPI_Stereo_SetActiveEye como descrito aqui:http://www.nvidia.com/docs/IO/40505/WP-05482-001_v01-final.pdfUsando a assinatura estéreo NVidia conforme descrito aqui:NV_STEREO_IMAGE_SIGNATURE e DirectX 10/11 (nVidia 3D Vision)Tentando renderizar as duas imagens uma após a outra, esperando que CompositionTarget.Rendering não perca muito VSyncs e sincronize se VSyncs únicos forem perdidos. Além disso, ligar o emissor do 3D Vision por algum controle invisível que renderiza uma imagem estereoscópica fictícia.Renderizando cena 3D e permitindo que o driver NVidia o torne estereoscópico automaticamente.Renderização para algum controle real do Windows (como o controle Winform) e usando o host WPF (como o WinFormHost) para mostrar o conteúdo.

Os problemas com os métodos acima são:

1-3: Uma das três primeiras formas parece ser a solução direta, mas não é possível no WPF, pois não consigo criar o Dispositivo / Contexto e controlar o modo como a imagem é renderizada.

4: Com CompositionTarget.Rendering eu recebo apenas cerca de 60Hz em vez de 120Hz. Eu acho que o problema é que EndScene () é chamado duas vezes - um na minha cena renderizada e outro no mecanismo de processamento do WPF, mas não tenho certeza. De qualquer forma, mesmo se vai funcionar - essa solução parece ser instável.

5: Renderização Cena 3D não é possível no meu caso, por algumas razões técnicas que me obriga a processar as duas imagens para os dois olhos por mim.

6: O problema com o WinFormHost e seus amigos é que ele não é um controle do WPF e tem comportamento inesperado em termos de controles do WPF. Por exemplo, o controle WinForm irá ocultar os controles WPF, que são mais altos na árvore lógica, não podem ser girados usando RotateTransform e muito mais.

Por enquanto eu escolhi a última solução - usando o WinFormHost. Alguém sabe uma solução para essa parede inquebrável com a realização de 3D estereoscópico dentro do controle real do WPF?

questionAnswers(0)

yourAnswerToTheQuestion