Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HDR output for HDR display #121

Open
0x4E69676874466F78 opened this issue Oct 18, 2021 · 3 comments
Open

HDR output for HDR display #121

0x4E69676874466F78 opened this issue Oct 18, 2021 · 3 comments
Assignees
Labels
enhancement New feature or request ray tracing

Comments

@0x4E69676874466F78
Copy link
Collaborator

0x4E69676874466F78 commented Oct 18, 2021

Разная информация
https://ubm-twvideo01.s3.amazonaws.com/o1/vault/gdc2017/Presentations/Fry_Alex_HighDynamicRange.pdf
https://www.youtube.com/watch?v=7z_EIjNG0pQ
https://github.com/Unity-Technologies/PostProcessing/blob/v2/PostProcessing/Shaders/Colors.hlsl
https://d29g4g2dyqv443.cloudfront.net/sites/default/files/akamai/gameworks/hdr/UHDColorForGames.pdf
https://ieeexplore.ieee.org/document/7291452

Требуется (устарело)

[x] vk_hdr 1|0 для вкл/выкл HDR. #249
[x] #202
[ ] нормализация или более правильный этап с тонемаппингом, возможно автоматом поможет #193
Если после текущего тонемаппинга добавляю / 1.3 то смотрится вполне сносно, но взрывы уже не такие яркие, видимо надо будет взрывам более задирать светимость в конфиге (когда будет). #249
[x] определять перед нами HDR монитор или нет, если нет то блокировать vk_hdr #249
[ ] починить скриншоты для HDR (понятия не имею как, но есть инфа в #249 (comment) )

Дополнительная инфа:
https://on-demand.gputechconf.com/siggraph/2016/presentation/sig1611-thomas-true-high-dynamic-range-rendering-displays.pdf
https://developer.nvidia.com/hdr-display-sample

https://gpuopen.com/learn/using-amd-freesync-2-hdr-color-spaces/

https://developer.qualcomm.com/sites/default/files/docs/adreno-gpu/developer-guide/tutorials/android/hdr10.html

Related: #193

@0x4E69676874466F78
Copy link
Collaborator Author

0x4E69676874466F78 commented Jan 17, 2024

Заметки:
При VK_FORMAT_R16G16B16A16_SFLOAT(97)+VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT(1000104002) получается автоматическая гамма-коррекция, более того там есть откуда-то тонемаппинг! Хотя цвета от этого немного плывут в ряде сцен.
При VK_FORMAT_A2B10G10R10_UNORM_PACK32(64) VK_COLOR_SPACE_HDR10_ST2084_EXT(1000104008) нужно производить специальную коррекцию через функцию PQ, тонемаппинг сам не производится, но если его произвести мы теряем в яркости и получается LDR, то есть нужен особый тонемаппинг для HDR или после него надо домножать на что-то.
Вот картинки в архиве, здесь в 8 бит сложно передать, в наивном виде они выглядят одинаково (обрезается диапазон).
hl hdr test.zip

@0x4E69676874466F78
Copy link
Collaborator Author

0x4E69676874466F78 commented Jan 18, 2024

Я разобрался для VK_FORMAT_A2B10G10R10_UNORM_PACK32(64) VK_COLOR_SPACE_HDR10_ST2084_EXT(1000104008) как раз нужна функция applyHuePreservingShoulder, тогда вид становится правильный в ярких областях, ранее я тестировал её но не видел разницы, но с дураты разницу не там смотрел.
Пока я прихожу к выводу что тонемапперы по большей части не нужны для HDR и это прибалуда для LDR.

@0x4E69676874466F78
Copy link
Collaborator Author

Из известной информации мы ещё можем сходить в проприетарные протоколы нвидии и амд, достав максимальную яркость монитора оттуда, но код будет грязный-муторный, так что я решил что лучше через настройки указать пик яркости монитора самому.
Можно создать предустановки на HDR400, HDR600, HDR1000 помимо тонкой настройки.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request ray tracing
Projects
Status: 🏗 In progress
Development

No branches or pull requests

1 participant