Create heatmaps of existing JXR screenshots

I discovered today that the HDR + WCG Image Viewer on the Microsoft Store allows you to create heatmaps of existing HDR screenshots. This is especially of interest for titles where Special K can’t render anything in and the game bar (WinKey+G) needs to be relied on to take a screenshot.

The only downside seems to be that while the app has an “Export image to SDR” option, that option does not actually export the currently rendered image (e.g. the heatmap), but only the original HDR image.

This means that to take the below screenshots I had to basically open the source screenshot, configure the app to display them in the mode I wanted, and then hit H and F to hide the UI and display the app in fullscreen mode and – you might’ve guessed it – use the game bar through WinKey+G to take a new screenshot of the app (aka image) in that mode.

A bit cumbersome. :expressionless:


  • Note that some details in the clouds are lost in the HDR-to-SDR conversion… :expressionless: Compare with the heatmap to see what.

SDR as grayscale:


1 Like

By the way here’s a legend (or whatever you can call it) that I created using DisplayHDR Test as well as the same screenshot process described in the post above to be able to match colors to nits on the heatmap.

Basically black/blue/green/orange is ~350 nits or below. Red is ~350~1000 nits and purple/pink 2000~4000+ nits. White is 10000 nits.

  • On that note, due to the brightness being arguably low in the HDR + WCG Image Viewer when I captured the screenshots the resulting SDR image has “pure white” seen as grey as opposed to actual white (fire in the image above as well as the 10000 nits of the below legend).

This is interesting… though, an actual equation to derive the scale would be way more useful :slight_smile:

I’ll start working some of these features into Special K after I finish putzing around with my current framerate limiter stuff. I’ve been kicking around the idea in my head of going one step farther than this –

I think a real-time gamut map would be absolutely incredible, I’ve never seen it done before (in the context of analyzing graphics engines) but using compute shaders to do histogram calculation, I should be able to do analysis that puts this to shame. This is just luminance, but we’re ignoring that other aspect of HDR … color. Nobody ever talks about the saturation.

I want to basically implement some of those things, but make them fun for non-color scientists to play with :slight_smile:

Do you know how Evilboris creates his heatmaps of HDR video? His scale is pretty consistent and useful, but I have no idea how he creates them.