2 ms·
Kind of an off-topic but recently I noticed capturing a gameplay video of an HDR-enabled video game with any kind of software (OBS, Twitch Studio, GeForce Exper
by diegoperini 6y ago
Kind of an off-topic but recently I noticed capturing a gameplay video of an HDR-enabled video game with any kind of software (OBS, Twitch Studio, GeForce Experience, FRAPS, Discord) also produces terrible results. This happens even if I capture the entire monitor or just the app window. Both OpenGL and DirectX games suffer from this.
How one can tell whether what you capture/develop is what you will see without testing it on a second monitor? What is the subject I must do research on to learn more about this?
I'm not just talking about color spaces, but also how these multiple software communicate image data in a lossless way, how window modes (fullscreen, borderless, windowed) affect these flows, where HDR stands in this.
- formerly_proven 6y agoThat's color management. A surprisingly fucky area from an application developer's perspective, because pretty much only DirectX 11/12 and Vulkan even have that concept -- and both DXGI and Vulkan are pretty limited [1]. Obviously, HDR and non-sRGB color spaces only work windowed in Windows, because DWM does scRGB, everywhere else your app needs to be in exclusive fullscreen. Note that Wayland on Linux doesn't support exclusive fullscreen, and since Wayland only does 8-bit sRGB, nothing on Wayland can use anything other than 8-bit sRGB. This might be fixed eventually (guess it'll take about as long as it took for GIMP). As a general rule of thumb, if it has anything to do with colors and comes from either computer or photography people, there's a solid 99 % chance it's broken or doesn't even know what color is. If you want to know how it's done right, you gotta look at how the "moving photos" people do it. (Note: "everything" for me means "everything that's not Apple", because I cba to care about those snowflakes) [1] Yes, yes, OpenGL has sRGB types for framebuffers, which doesn't work on half the devices in the wild (on the other half it applies the sRGB gamma function to linear sRGB data) and isn't meaningful anyway, because we _don't_ want to use sRGB. DXGI only does Rec.709 and Rec.2020, no DCI P3, and it also treats everything that's not HDR as sRGB.
- diegoperini 6y ago> If you want to know how it's done right, you gotta look at how the "moving photos" people do it. So basically, all I need is a software which can do post-capture tonemapping on captured pixels before streaming the frames.