我正在尝试将数据写入到不同平面以生成opengl纹理,这可能吗?
我尝试了以下代码
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0);
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 1, 1, GL_RED, GL_UNSIGNED_BYTE, (void*)&pixel);
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 1, 1, GL_GREEN, GL_UNSIGNED_BYTE, (void*)&pixel);
它没有按我预期的那样工作,三角形是绿色而不是黄色,像素值为255。
不它不是。缺失的通道用红色(0.0)表示红色,绿色和蓝色,分别用Alpha通道(1.0)填充。
请参见OpenGL 4.6 API核心配置文件规范-8.4.4.4最终扩展为RGBA:
[...]将每个组转换为包含4个元素的组,如下所示:如果一个组不包含A元素,则添加A并为整数分量设置为1或为浮点分量设置为1.0。如果组中缺少R,G或B中的任何一个,则将添加每个缺少的元素,并为整数分量分配0值,为浮点分量分配0.0值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句