Войти
ПрограммированиеФорумГрафика

HDR - histogram for luma(??) remapping

Страницы: 1 2 Следующая »
#0
20:23, 17 окт. 2014

кто встречал на практике?

В одной очень новой игре с очень красивым рендером
встретилось:

-рендер гистограммы кадра на GPU

-перезаливка гистограммы на CPU side (CopyResource) в staging texture

-lock полученой гистограммы на чтение (!!! со столом ???)
  unlock

-lock HDRToneCurve на запись (Dynamic texture)
  что-то считается на CPU
  результат численно похож на cdf гистограммы (не уверен что оно)
  заливка данных
unlock 


-HDR Resolve

float3 Color = Screen + Bloom;
float Luma = dot(Color, LUMA_VECTOR);
float Tone = Sample(HDRToneCurve[Luma]);


float3 Result = pow(Color / Luma, (1- Tone*Tone)) * Tone
...


#1
22:25, 17 окт. 2014

Ну я что-то такое делал. А что интересует то?

#2
22:51, 17 окт. 2014

User007

+ Показать

Только там Tone Mapping нужно сменить, но это дело вкуса.
Возможно, вопрос был гораздо глубже\
#3
2:51, 18 окт. 2014

> (!!! со столом ???)
User007, а что, у кого-то есть мнение, что чтение с GPU всегда занимает часы времени и фпс при этом резко падает падает с миллиона аж до крошечных 100 фпс и это пипец как критично?

> В одной очень новой игре с очень красивым рендером встретилось
>-рендер гистограммы кадра на GPU
User007, вроде Valve использует уже много-много лет такой подход, если не путаю.

#4
12:40, 18 окт. 2014

slava_mib
> User007, вроде Valve использует уже много-много лет такой подход, если не
> путаю.
не - они юзают occlusion query чтобы получать гистограмму.
http://www.valvesoftware.com/publications/2006/SIGGRAPH06_Course_… rceEngine.pdf

#5
13:04, 18 окт. 2014

slava_mib
> User007, а что, у кого-то есть мнение, что чтение с GPU всегда занимает часы
> времени и фпс при этом резко падает падает с миллиона аж до крошечных 100 фпс и
> это пипец как критично?

К сожалению в D3D9 это так и есть, быстрого способа чтения с RT в нем нет. Но насколько я понимаю принцип, если нет общей памяти, то это в любом случае медленная операция.

#6
18:25, 18 окт. 2014

> К сожалению в D3D9 это так и есть, быстрого способа чтения с RT в нем нет.
Osiris, к счастью, это вообще не так. И, тоже к счастью, ДХ9 давно и успешно помер, хоть он и был неплох и его немного жаль.

> не - они юзают occlusion query чтобы получать гистограмму.
Mr F, разницы ровно ноль. Есть суть техники, а приспособить её под разную конкретику (разнести между кадрами, сделать на CS, реализовать на OQ) - не есть проблема вообще ни в каком месте, ибо это чисто вопрос набивания кода.

#7
19:54, 18 окт. 2014

slava_mib
> И, тоже к счастью, ДХ9 давно и успешно помер

Как тебе сказать ... ещё выходят игрушки

#8
20:03, 18 окт. 2014

Bishop

именно преобразованиеи гистограммы в лукап?
если не сложно - опиши по шагам - что делал

потому как что я описал - ИМХО работать совсем не будет
для неконтрастных имеджей, дающих 90% всплесков в (2-3) корзинах
картинка порвется контрастами

зы

ни в одном АПИ нет возможности "Вот сейчас" получить 1 байт
с GPU на CPU


gроста alien isolation оч интерестен...

#9
20:07, 18 окт. 2014

у Valve как и у прочих
  получаем гистограмму
  считаем некие (1-3) опорные точки tonemapping-a
  передаем их в шейдер
?

#10
20:12, 18 окт. 2014

slava_mib
> Osiris, к счастью, это вообще не так.

Я бы с удовольствием узнал, как быстро считывать данные из RT, если это не военная тайна. Потому как мне приходится использовать медленный GetRenderTargetData.

#11
20:37, 18 окт. 2014

Osiris
вроде б если этот РТ не юзать, пока он не скачается, то должно быть сносно, только соответственно данные с отставанием будешь получать.

#12
20:41, 18 окт. 2014

> Как тебе сказать ... ещё выходят игрушки
innuendo, так Майкл вон под ДХ6 пишет. Я ж не говорю, что вообще никак.

> Я бы с удовольствием узнал, как быстро считывать данные из RT, если это не военная тайна. Потому как мне приходится использовать медленный GetRenderTargetData.
Osiris, да легко. Делаем РТ минимального размера, читаем только когда он 100% готов и скорее всего ничего не заблокирует (после вывода кадра и до формирования следующего например), пока не готов - делаем другую работу.

#13
21:00, 18 окт. 2014

стопить через н(3+) кадров неплохо - но в у парней лок реально
на текущем кадре(я ж кажется ясно написал).
Если PIX не врет - а ему я верю

#14
21:03, 18 окт. 2014

slava_mib
> > не - они юзают occlusion query чтобы получать гистограмму.
> Mr F, разницы ровно ноль. Есть суть техники, а приспособить её под разную
> конкретику (разнести между кадрами, сделать на CS, реализовать на OQ)

Да ну разница вообще-то есть :)

Вот когда через CS - есть там всякие GPU->CPU round ?

Страницы: 1 2 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.