2016-06-08 13 views
5

Potrzebuję obsługi wyświetlania 10 bitów na piksel (aka 30 bitowych kolorów) w aplikacji do wyświetlania obrazu WPF.Czy obsługa WPF nie obsługuje monitorów 10-bitowych (również 30-bitowych)?

mam setup (ekran 10bit i Nvidia Quadro) pracuje gdzie byłem w stanie sprawdzić, czy prac pomocniczych 10 bit testując z gradientem w Photoshopie: (http://www.tedlansingphotography.com/blog/?p=287) i program demo NEC (zarówno przy użyciu OpenGL o ile widzę).

Jednak nie mogę pobrać mojej aplikacji WPF, aby wyświetlała ładny gradient bez pasów. Próbowałem proceduralnego generowania WritableBitmap za pomocą PixelFormats.Rgb48 i PixelFormats.Bgr101010, ale kiedy rysuję go na ekranie (przypisując go do System.Windows.Controls.Image.Souce) nadal widzę pasmowanie.

  1. Czy obsługa WPF nie obsługuje monitorów 10-bitowych?
  2. Czy są dostępne alternatywne interfejsy API zgodne z WPF, które je obsługują (czy muszę przepisać program w OpenGL)?

Odpowiedz

0

Funkcja Wpf nie obsługuje wyświetlania 10 bitów na kanał (bpc); tylko 8 bpc pomimo manipulacji plikami 10bpc oraz fakt, że WPF współpracuje z DirectX.

Aby mieć 10 bpc wewnątrz WPF, możesz chcieć wstrzyknąć wyświetlacz OpenGL lub DirectX; zaletą korzystania z DirectX przez OpenGL jest to, że wyświetlacz 10bpc będzie obsługiwany także kartami graficznymi Geforce; Wyświetlacz OpenGL 10 bpc jest obsługiwany tylko przez Quadro, jeśli mogę wymienić producenta GPU, którego znam.

Photoshop używa OpenGL do wyświetlania, dlatego wyświetlacz 10bpc z Photoshopem jest funkcjonalny tylko w Quadro (wynika to z pełniejszej funkcjonalności OpenGL obsługiwanej przez sterowniki Quadro).

https://github.com/Microsoft/WPFDXInterop

https://www.codeproject.com/Articles/23736/Creating-OpenGL-Windows-in-WPF

https://www.codeproject.com/Articles/265903/Using-OpenGL-in-a-WPF-Application

Powiązane problemy