Я пытаюсь использовать HDR-рендеринг в видеоплеере, над которым работаю, и не могу активировать HDR на своем дисплее (да, мой дисплей поддерживает HDR) во всех примерах кода, которые я видел, все указывает на установку цветового формата R10G10B10A2_UNorm (я использую SharpDX) и ссылаюсь на все статьи в этой статье https://www.asawicki.info/news_1703_programming_hdr_monitor_support_in_direct3d, но я по-прежнему не могу включить HDR на своем дисплее.
Например, если вы знаете, что madVR действительно может это сделать (это может заставить ваш дисплей включить HDR без использования Windows 10). Я думаю, это называется HDR passthrough. Как это делается?
Вот код, который у меня есть, и он действительно может рисовать белый экран.
this.d3dDevice = new D3D11.Device(DriverType.Hardware, DeviceCreationFlags.None, new[] { FeatureLevel.Level_11_1, FeatureLevel.Level_11_0, });
SharpDX.DXGI.SwapChainDescription1 swapChainDescription_ = new SharpDX.DXGI.SwapChainDescription1()
{
AlphaMode = SharpDX.DXGI.AlphaMode.Ignore,
Width = Proc2.Width,
Height = Proc2.Height,
Format = Format.R10G10B10A2_UNorm,
Scaling = SharpDX.DXGI.Scaling.None,
BufferCount = 3,
SwapEffect = SharpDX.DXGI.SwapEffect.FlipDiscard,
Flags = SharpDX.DXGI.SwapChainFlags.AllowModeSwitch,
Usage = SharpDX.DXGI.Usage.BackBuffer | SharpDX.DXGI.Usage.RenderTargetOutput,
SampleDescription = new SharpDX.DXGI.SampleDescription() { Count = 1, Quality = 0 },
Stereo = false,
};
parentSwapchain = new SharpDX.DXGI.SwapChain1(factory2, d3dDevice, this.renderForm.Handle, ref swapChainDescription_, new SharpDX.DXGI.SwapChainFullScreenDescription()
{
RefreshRate = new Rational(144, 1),
Scaling = SharpDX.DXGI.DisplayModeScaling.Unspecified,
Windowed = true,
ScanlineOrdering = SharpDX.DXGI.DisplayModeScanlineOrder.Unspecified,
}
);
Может ли кто-нибудь указать мне, какую часть мне не хватает? Я просто хочу заставить свой дисплей включить HDR, используя мой код Direct3D.