我有一个像这样渲染的图像:
glDrawPixels(image->width, image->height, GL_BGR, GL_UNSIGNED_BYTE, image->imageData);有没有什么办法我可以用灰度来绘制它(而不是先把它加载到纹理中)?我并不关心,比方说,蓝色分量用于灰度值,而不是L2范数或其他什么,我只需要一个快速而肮脏的输出。
GL_LUMINANCE将是很棒的,除了它不能在3声道图像上工作。
@timday:

发布于 2009-04-14 12:10:11
这是一个让你尝试的反常想法,我不知道它是否可行:
glPixelZoom(1.0f/3.0f,1.0f);
glDrawPixels(3*width,height,GL_LUMINANCE,GL_UNSIGNED_BYTE,data);ie将您的3通道图像视为1通道(灰度)图像宽度的3倍,并通过使用x缩放因子挤压宽度来补偿这一点。我相信GL总是对缩放的glDrawPixels进行最近邻采样,所以它应该根据您的要求从每个三元组的样本中一致地挑选出相同的分量。
https://stackoverflow.com/questions/746034
复制相似问题