Open GL ES:以黑白渲染彩色纹理吗?

问题描述

| 使用ES 1.X是否可以用黑色和白色渲染彩色纹理?如果是,怎么办?     

解决方法

我唯一能想到的就是费解了-使用GL_COMBINE texEnv模式进行每个像素的点积,尽管我似乎找不到一条不涉及中间FBO并降低精度的路线RGB通道的最大长度为7位。因此,您使用的是通常用于照明的dot3功能,但是由于您不想使用负值,因此最终只能得到可用范围的一半。基本上,您只需将所有点与向量(0.299、0.587、0.114)点积,然后在所有三个通道上输出。     ,带有将颜色信息转换为灰度的片段着色器。它非常简单,只需将所有三个通道相加并除以三个即可(有更高级的方法,但即使不是全部,这种简单方法也适用于大多数情况)。