Stereoskopowy 3D na WPF

Muszę pokazać stereoskopową grafikę 3D na kontrolce WPF.

Mam już kod, który tworzy dwie tekstury DirectX-9 do pokazania, jedną teksturę dla każdego oka.

Chcę używać 3D Vision (nie anaglif).

Zastanawiałem się nad następującymi sposobami pokazania dwóch obrazów jako stereo 3D:

Korzystanie z OpenGL lub DirectX 11.1 Stereo API.Używając NvAPI_Stereo_SetActiveEye jak opisano tutaj:http://www.nvidia.com/docs/IO/40505/WP-05482-001_v01-final.pdfUżywając podpisu stereo NVidia, jak opisano tutaj:NV_STEREO_IMAGE_SIGNATURE i DirectX 10/11 (nVidia 3D Vision)Próbując renderować dwa obrazy jeden po drugim, mając nadzieję, że CompositionTarget.Rendering nie traci zbyt wiele VSyncs i synchronizuje, jeśli pojedyncze VSyncs zostaną utracone. Dodatkowo włączenie nadajnika 3D Vision za pomocą niewidzialnej kontroli renderującej fikcyjny obraz stereoskopowy.Renderowanie sceny 3D i umożliwienie sterownikowi NVidia automatycznego tworzenia stereoskopowego.Renderowanie do jakiejś prawdziwej kontroli Windows (takiej jak kontrolka Winform) i użycie hosta WPF (takiego jak WinFormHost), aby pokazać zawartość.

Problemy z powyższymi metodami to:

1-3: Jedno z pierwszych trzech sposobów wydaje się prostym rozwiązaniem, ale nie jest możliwe w WPF, ponieważ nie mogę utworzyć urządzenia / kontekstu i kontrolować sposobu renderowania obrazu.

4: Z CompositionTarget.Rendering dostaję tylko około ~ 60Hz zamiast 120Hz. Myślę, że problem polega na tym, że EndScene () jest wywoływany dwukrotnie - jeden w mojej renderowanej scenie, a drugi w mechanizmie renderowania WPF, ale nie jestem pewien. Zresztą nawet jeśli będzie działać - to rozwiązanie wydaje się niestabilne.

5: Rendering sceny 3D nie jest w moim przypadku możliwy z pewnych przyczyn technicznych, które zmuszają mnie do renderowania dwóch obrazów dla dwóch oczu przeze mnie.

6: Problem z WinFormHost i jego przyjaciółmi polega na tym, że nie jest to formant WPF i ma nieoczekiwane zachowanie w zakresie formantów WPF. Na przykład kontrolka WinForm ukryje kontrolki WPF, które są wyższe na drzewie logicznym, nie może być obracane za pomocą RotateTransform i więcej.

Na razie wybrałem ostatnie rozwiązanie - używając WinFormHost. Czy ktoś zna rozwiązanie dla tej nierozerwalnej ściany z tworzeniem stereoskopowego 3D w prawdziwej kontroli WPF?

questionAnswers(0)

yourAnswerToTheQuestion