bri*_*dir 5 textures opengl-es mask tint colors
我有alpha纹理.我想用一些颜色着色它,因此它将根据颜色的alpha值进行着色,但是总体不透明度将仅由纹理alpha定义.
这类似于多纹理,但使用颜色而不是第二纹理.怎么做?
(更新)我试图设置纹理合并器.颜色很好,但是有alpha的问题 - 它不会从纹理(如蒙版)中获取值.我的代码在这一刻:
glActiveTexture (GL_TEXTURE0); // do we need stage #1?
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE);
glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_INTERPOLATE);
glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, (GLfloat*) &tintColor_);
glTexEnvi(GL_TEXTURE_ENV, GL_SRC0_RGB, GL_TEXTURE);
glTexEnvi(GL_TEXTURE_ENV, GL_SRC1_RGB, GL_CONSTANT);
glTexEnvi(GL_TEXTURE_ENV, GL_SRC2_RGB, GL_CONSTANT);
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB, GL_SRC_COLOR);
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB, GL_SRC_COLOR);
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND2_RGB, GL_ONE_MINUS_SRC_ALPHA);
// this doesn't work for alpha:
glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA, GL_REPLACE);
glTexEnvi(GL_TEXTURE_ENV, GL_SRC0_ALPHA, GL_TEXTURE);
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA, GL_SRC_ALPHA);
Run Code Online (Sandbox Code Playgroud)
截图:
没有着色:

RGBA =(0,0.5,1,0.5)的色调:

| 归档时间: |
|
| 查看次数: |
3209 次 |
| 最近记录: |