![]() ![]() ![]() ![]() What happens is this: A: shader output (linear) X: blending operation B: previous framebuffer color (sRGB) F: final framebuffer color (sRGB) F = (A X B.toLinear()).toSRGB() There’s nothing else in OpenGL that lets you do that. This is trivial to do manually using shader arithmetic, so that’s not too useful. Now, ARB_framebuffer_sRGB (which is what PixelFormat.withSRGB enables) provides two pieces of functionality: a) Automatically converts the shader output (assumed to be linear) to sRGB and stores that to the framebuffer. This is true in general and doesn’t have anything to do with the output technology, it’s only about being able to store a nice image in as little bits as possible. Think of it as a compression scheme from linear-space to gamma-space, in such a way the preserves more information towards the “dark” side of the visible spectrum, where the human eye is more sensitive to details. The real reason we use sRGB is because it allows us to pack more useful information in 8 bits. Modern LCD monitors simulate the same gamma response, so from our point of view nothing has changed. ![]() It was indeed convenient for CRT monitors to display sRGB images, simply because their gamma curve matched sRGB precisely. The correct model should be Presario F763NR, though. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |