Sun*_*kas 5 android alphablending opengl-es glblendfunc
有谁知道如何在HTC Desire上启用OpenGL(android)混合.我试图绘制彩色三角形并使用颜色缓冲区的alpha值将它们与背景(或另一个三角形)混合.
它适用于模拟器(2.1)和htc英雄2.1,但不是我对2.2的愿望.英雄和欲望之间是否存在一些硬件差异?
代码中的主要内容是(不按顺序):
gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
gl.glEnable(GL10.GL_BLEND);
gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);
private final static float[] colors = {
1f, 0f, 0f, 0.5f, // point 0 red
1f, 0f, 0f, 0.5f, // point 1 red
1f, 0f, 0f, 0.5f, // point 2 red
1f, 0f, 0f, 0.5f, // point 3 red
1f, 0f, 0f, 0.5f, // point 4 red
1f, 0f, 0f, 0.5f, // point 5 red
1f, 0f, 0f, 0.5f, // point 6 red
1f, 0f, 0f, 0.5f, // point 7 red
};
Run Code Online (Sandbox Code Playgroud)
PS.如果有人需要,我可以提供更多代码......
乔纳斯,你对照明的评论似乎很正确,所以现在我想我们有了答案。OpenGL ES 1.1.12 规范指出The value of A produced by lighting is the alpha value associated with dcm,其中 dcm 是材质漫反射颜色。
如果启用COLOR_MATERIAL,则材质漫反射颜色和材质环境颜色均取自当前顶点颜色。这意味着 Desire 不正确,而模拟器是正确的。
如果您已禁用COLROR_MATERIAL(默认状态),则漫反射颜色材质将设置为glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, ptrTo4Floats)。这意味着愿望是正确的,而模拟器是不正确的。
| 归档时间: |
|
| 查看次数: |
2067 次 |
| 最近记录: |