在iOS和OS X上为OpenGL匹配颜色

在iOS和OS X上为OpenGL匹配颜色,ios,macos,opengl,colors,Ios,Macos,Opengl,Colors,我正在尝试在iOS和OS X上的OpenGL应用程序中匹配UI实体模型的颜色。当我输入颜色的RGB值时,我得到的颜色与实体模型略有不同,如屏幕截图(和视觉)所确认。通过检查这些值,似乎应用了轻微的gamma(颜色稍暗,但黑色映射为黑色,白色映射为白色),但远不如提高到2.2次方突出。这并不遥远,但足以让我注意到,我想完全理解这一点(并能够获得设计师使用的相同颜色) 我读过,它似乎建议对片段着色器中的颜色值应用sqrt,但这会导致颜色偏离 我需要采取哪些步骤将OpenGL颜色与PNG或PDF中的颜

我正在尝试在iOS和OS X上的OpenGL应用程序中匹配UI实体模型的颜色。当我输入颜色的RGB值时,我得到的颜色与实体模型略有不同,如屏幕截图(和视觉)所确认。通过检查这些值,似乎应用了轻微的gamma(颜色稍暗,但黑色映射为黑色,白色映射为白色),但远不如提高到2.2次方突出。这并不遥远,但足以让我注意到,我想完全理解这一点(并能够获得设计师使用的相同颜色)

我读过,它似乎建议对片段着色器中的颜色值应用
sqrt
,但这会导致颜色偏离


我需要采取哪些步骤将OpenGL颜色与PNG或PDF中的颜色进行匹配?

您的字面意思是匹配颜色,就像匹配屏幕上要打印的颜色一样?顺便说一下,对颜色值应用
sqrt
可以有效地对幂律2.0 gamma进行gamma校正。大多数PDF和其他此类文档的编写可能都考虑到了sRGB(大致相当于2.2 gamma)。您可以使用
pow(1.0/2.2)
来快速估算。如果你是指前者,将颜色与打印的内容相匹配,那么你需要校准显示器和/或打印机,并使用ICC配置文件。@AndonM.Coleman我只是指屏幕上的颜色。我正在尝试让我的应用程序颜色匹配PDF或PNG模型。当我做
pow(color,1.0/2.2)
时,颜色与模型相差甚远。我明白了,我刚刚完整地阅读了您链接的文章。。。当它声称“一个平方根将值提高到1除以2.2次方”时,我只是有点挠头。平方根是
^1/2
,这是基本的算术,我不知道作者在写这篇文章时有什么想法。顺便说一句,大多数流行的图像格式存储为2.2 gamma,但是当您将图像数据加载到软件中时,gamma已经被校正,并且您具有线性RGB,因此在加载JPG、PNG时,您不需要应用任何类型的校正,值得一提的是,旧版本的Mac OS X默认为1.8 gamma,2.2 gamma编码的PNG需要某种形式的校正才能正确显示。你在这里讨论的是什么版本的OSX?我认为这只是一个错误:他们的意思是
sqrt(X)
pow(X,1/2.2)
的近似值。我没有将PNG或PDF加载到我的应用程序中。相反,我在PNG中手动输入颜色作为代码中的常量。我正在使用OSX10.10.3。