是否可以在不使用片段着色器的情况下仅使用固定管道 openGL 将 RGB 纹理绘制为灰度?
否则我必须创建两种版本的纹理,一种是彩色的,一种是黑白的。
我不知道如何使用 RGB 纹理和固定功能管道来做到这一点。
如果您从 RGB 源数据创建纹理但将内部格式指定为 GL_LUMINANCE,OpenGL 将为您将颜色数据转换为灰度。使用标准的白色材料和调制模式。
希望这可以帮助。
不可以。纹理环境组合器在不进行缩放/偏置操作的情况下无法执行点积。也就是说,它总是假装 [0, 1] 值被编码为 [-1, 1] 值。既然你不能把它关掉,你就不能做一个合适的点积。