我有一个我正在渲染的图像:
glDrawPixels(image->width, image->height, GL_BGR, GL_UNSIGNED_BYTE, image->imageData);
Run Code Online (Sandbox Code Playgroud)
无论如何我可以用灰度绘制它(而不是先将它加载到纹理中)?我不在乎是否只将蓝色组件用于灰度值而不是L2范数或其他东西,我只需要一个快速而肮脏的输出.
GL_LUMINANCE会很棒,除了它不适用于3通道图像.
@timday:
你尝试的一个不正确的想法,我不知道它是否会起作用:
glPixelZoom(1.0f/3.0f,1.0f);
glDrawPixels(3*width,height,GL_LUMINANCE,GL_UNSIGNED_BYTE,data);
Run Code Online (Sandbox Code Playgroud)
即将您的3通道图像视为3倍宽的1通道(灰度)图像,并使用x缩放系数通过压缩宽度来补偿这一点.我相信GL总是对缩放的glDrawPixels进行最近邻采样,因此它应该根据需要从每个三个样本中一致地挑出相同的组件.
| 归档时间: |
|
| 查看次数: |
1216 次 |
| 最近记录: |