![]() |
1
8
如前所述,glTexEnv是一条路要走。 要替换纹理的RGB组件并保持其alpha不变,可以尝试以下操作(此代码使用红色作为替换颜色):
下面是一些解释。 使用GL_COMBINE时,可以完全控制如何将不同纹理阶段的输入/输出组合在一起。在本例中,我们指定要将(GL_replace)纹理阶段0的RGB组件替换为来自上一个阶段(GL_previous)的组件,在本例中,该阶段是单一颜色(用glColor4f设置)。 我们没有为alpha组件设置任何特殊的内容,因为我们需要常规的行为。 添加以下行的效果与未包含行的效果相同(默认行为):
|
![]() |
2
2
如果可以使用OpenGL ES 2.0,可以使用自定义片段明暗器来完成此操作。如果您使用的框架是基于1.1构建的,或者针对的是不支持2.0的设备,这不会有太大帮助。但如果可以的话,你可以这样做:
如果你能确保solidColor的alpha为零,你可以跳过乘法步骤。 |
![]() |
3
0
所以
第二遍(不是相反的)应该是
因为你已经在第一个过程中应用了alpha蒙版。尽管您仍然需要了解如何使用alpha而不是源纹理应用恒定颜色。 |
![]() |
pats · 在Libgdx中定位和旋转动画 7 年前 |
![]() |
harryisaac · SceneKit自定义几何体纹理错误 7 年前 |
|
user8581488 · OpenGL ES3阴影贴图问题 7 年前 |