gpt4 book ai didi

opengl-es - 如何在不受 glColor 影响的情况下渲染纹理?

转载 作者:行者123 更新时间:2023-12-04 08:45:44 26 4
gpt4 key购买 nike

我的纹理本身有一个透明的背景,我想按原样渲染它。

glEnable(GL_TEXTURE_2D);
glEnable(GL_BLEND);
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);

glPushMatrix();

glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

glTranslatef(x, y, 0.0f);
glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
glVertexPointer(2, GL_FLOAT, 0, undoVertCoord);
glTexCoordPointer(2, GL_FLOAT, 0, undoTexCoord);
glBindTexture(GL_TEXTURE_2D, texUndo);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);

问题出在 glColor4f 上。该函数似乎覆盖了纹理的透明度,使应该透明的部分不透明。但是如果我给 glColor4f 提供 alpha 值为 0,整个纹理就会变得透明。

那么,您可以渲染忽略 glColor4f 的纹理,按原样渲染纹理吗?或者以不影响 alpha 值的方式?

最佳答案

您的GL_TEXTURE_ENV_MODE 设置为什么?尝试将其设置为 GL_REPLACE

glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);

关于opengl-es - 如何在不受 glColor 影响的情况下渲染纹理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11656452/

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