gpt4 book ai didi

c++ - 灰度中的 glDrawPixels?

转载 作者:太空狗 更新时间:2023-10-29 20:49:22 26 4
gpt4 key购买 nike

我有一张像这样渲染的图像:

glDrawPixels(image->width, image->height, GL_BGR, GL_UNSIGNED_BYTE, image->imageData);

无论如何我可以用灰度绘制它(而不是先将它加载到纹理中)?我不在乎,比如说,蓝色分量是否用于灰度值而不是 L2 范数或其他东西,我只需要一个快速而肮脏的输出。

GL_LUMINANCE 会很棒,但它不适用于 3 channel 图像。


@timday:

最佳答案

让你尝试一个反常的想法,我不知道它是否会奏效:

glPixelZoom(1.0f/3.0f,1.0f);
glDrawPixels(3*width,height,GL_LUMINANCE,GL_UNSIGNED_BYTE,data);

即将您的 3 channel 图像视为 3 倍宽的 1 channel (灰度)图像,并通过使用 x 缩放因子压缩宽度来对此进行补偿。我相信 GL 总是对缩放的 glDrawPixels 进行最近邻采样,因此它应该根据需要从每个三重样本中始终如一地挑选出相同的组件。

关于c++ - 灰度中的 glDrawPixels?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/746034/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com