- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
在 OpenGL ES 中,我可以使用扩展名为 GL_EXT_sRGB 的 OpenGL ES 3.0 或 OpenGL ES 2.0 创建 sRGB 渲染缓冲区。我创建了一个内部格式为 GL_SRGB8_ALPHA8(或 GL_SRGB8_ALPHA8_EXT)的可渲染纹理,它在支持它的 Android 设备上运行良好。
但是,我找不到任何方法让默认渲染缓冲区在 Android 上使用 sRGB。我使用的是 GLSurfaceView,所以它通过 EGL 和 eglChooseConfig,但我找不到控制 sRGB 设置的属性(如果有的话)。
我当然可以通过渲染到 sRGB 目标然后在显示之前复制到后备缓冲区来解决这个问题,但这是相当浪费的。这在 OpenGL 和 DirectX 中要容易得多,但 OpenGL ES 需要在创建渲染缓冲区/帧缓冲区时应用 sRGB 设置。
有什么想法吗?
最佳答案
您绝对是在正确的轨道上,在 OpenGL ES 中获得 sRGB 默认帧缓冲区的唯一方法是通过 EGL。现在,EGL 1.4 没有对 GL 默认帧缓冲区上不同颜色空间的内置支持,但是您的系统可能支持一个名为 EGL_KHR_gl_colorspace
的扩展。 .
如果您的 EGL 实现支持此扩展,那么您可以在创建窗口表面时将以下属性对传递给 EGL:
EGL_GL_COLORSPACE_KHR, EGL_GL_COLORSPACE_SRGB_KHR
现在,事情变得有些有趣了……常量 EGL_GL_COLORSPACE_SRGB_KHR 与 EGL 1.3 中的 EGL_VG_COLORSPACE_sRGB 具有相同的值。 EGL_VG_COLORSPACE_sRGB 在 EGL 1.2 中被称为 EGL_COLORSPACE_sRGB。如果 sRGB OpenGL 颜色空间被提升为 EGL 1.5 的核心,它可能会再次重命名 - 回到它在 EGL 1.2 中的名称;)
长话短说,如果您的实现支持此扩展,您也可以为 OpenGL 表面使用 EGL_VG_COLORSPACE... 常量。它基本上扩展了 OpenVG 对 OpenGL 的功能,一直到对常量使用完全相同的数值。
关于Android EGL sRGB 默认渲染缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20396523/
我正在为我的 pony detector 编写阴影去除功能。在我converted a PNG image from sRGB to CIE XYZ之后我删除了亮度as per instruction
我引用了以下 stackoverflow thread用于计算颜色校正矩阵。 如上述线程中所述,我想从 sRGB 颜色空间转换为线性 sRGB 空间,我正在尝试使用 pwkit colorspace
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 4 年前。 Improve this qu
我正在尝试了解图像/视频处理的基础知识,最近我了解到所有处理都应应用于图像的线性表示。因此,我为 sRGB -> RGB 和 RGB -> sRGB 编写了两个函数: void sRGB2lRGB(s
您可能知道颜色在浏览器中的显示方式不同,无论是 CSS 还是某些图像。在做了一些研究之后,Sketch、Firefox 和 Chrome(我在 OSX Yosemite 上)似乎使用了 sRGB 配置
这样用Lookup table把颜色从0.0到1.0的线性空间转换成sRGB空间的0到255是个好办法吗? 例如,在 Java 中: byte[] table; void initializeTabl
我正在尝试在 NSView 中绘制内部阴影。阴影本身不是问题,但颜色设置让我发疯:/ #define ShadowBlurRadius 10.0 #define SRGB (CGFloat [4]){
在我的渲染器中,我在多重采样的 FBO 上生成抗锯齿场景,该场景被位 block 传输到颜色附件为纹理的 FBO。然后在渲染到帧缓冲区期间读取纹理。 我想更新它,以便获得 Gamma 正确的结果。使用
在 this question ,有人问如何以十六进制表示法获取图像的平均颜色。经过一番研究,我找到了一个使用 ImageMagick 的可行解决方案: user@laptop:~$ convert
我正在尝试将值从 转换为 srgb/linear。我有这个方程式,效果很好,但我无法在 wards 之后找回它: if(C 线性转换我想以某种方式使用它作为指导来获得我的类轮 > sRGB 转换..
在 OpenGL ES 中,我可以使用扩展名为 GL_EXT_sRGB 的 OpenGL ES 3.0 或 OpenGL ES 2.0 创建 sRGB 渲染缓冲区。我创建了一个内部格式为 GL_SRG
我想使用 ffmpeg 转换 的图像序列tiff 16bit rec709 到 的图像序列JPEG sRGB . # How would I indicate ffmpeg source is rec
我最近看到了这篇博文 Yet another post about gamma correction这教会了我 D3DPMISCCAPS_POSTBLENDSRGBCONVERT 的可用性能力标志。
我正在尝试将 RGB 转换为感知统一的色彩空间 CIELAB。维基百科指出: "The RGB or CMYK values first must be transformed to a specif
OpenGL 3.3 规范似乎没有要求在线性空间中完成 mipmap 生成。我所能找到的是以下内容: The internal formats of the derived mipmap arrays
如果我要为 iPhone 或 iPad 保存图像,是否应该在 Adobe Photoshop/Illustrator 中选择“转换为 sRGB”? Why You Should Probably
这是一个非常明确的问题,但我做了很多研究,但没有找到答案。 StackOverflow 问题为 this或this是关于 jpeg 转换的。 This是关于 python 内置库的。 那么,如何将 s
我有非线性 sRGB 格式的 iphone 照片。我需要线性 RGB。我无法在 opencv(python) 中找到将它们转换为线性 RGB 的方法。 还尝试了 ImageMagick 转换: con
我想知道 OpenCV 是否具有处理 sRGB 颜色空间中非线性的函数。 假设我想将 JPEG 图像从 sRGB 色彩空间转换为 XYZ 色彩空间。如本 Wiki page 中所述,首先需要取消非线性
如果使用 SRGB 纹理格式,我假设您只能在现代 GPU 的纹理读取中通过采样器免费获得 SRGB 转换是否正确? 因此,如果我想通过具有图像加载/存储功能的图像访问相同的 SRGB 纹理,我将不得不
我是一名优秀的程序员,十分优秀!