10-бит на канал (30-бит цвет) вывод. Как?
От: rean  
Дата: 26.09.18 20:32
Оценка:
Требуется вывести в Windows HDR 10-бит изображение, из памяти. С++
По моему гуглению, сейчас есть два способа:

— древный — через OpenGL (как раньше это начинал делать фотошоп).
https://nvidia.custhelp.com/app/answers/detail/a_id/2895/~/10-and-12-bit-grayscale-technology-technical-brief

— новый — через DirectX(DXGi) и HDR, используя
https://docs.microsoft.com/en-us/windows/desktop/direct3ddxgi/high-dynamic-range-and-wide-color-gamut

Два вопроса:

1. Хочется ссылок на проекты, какие можно скомпилировать, запустить и убедиться что все работает.
Но! Возможности проверить и отладить это на железе нет — есть Nvidia и AMD карты, но нет монитора с 10-бит.

2. Как это запрограммировать и отладить, не имея доступа к железу?
Забить на это дело и делать дизеринг не хочется. Предпочителен второй вариант (через DXGi).

3. Если использовать Direct2D, оно заработает автоматически?
CreateHwndRenderTarget с DXGI_FORMAT_R10G10B10A2_UNORM или DXGI_FORMAT_R16G16B16A16_UNORM или DXGI_FORMAT_R32G32B32A32_FLOAT выдает ошибку,
в т.ч. и при использовании D2D1_RENDER_TARGET_TYPE_SOFTWARE или D2D1_RENDER_TARGET_TYPE_HARDWARE.
В документации от MS написано, что они могут работать. "These formats may also work on an ID2D1HwndRenderTarget".
Но у меня не работают ни на интеловской карте, ни на Nvidia.

4. Или только хардкор — D2D не работает с этим без аппаратной поддержки?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.