我在使用OpenGL 1.x的Android手机上运行我的程序,并使用此代码生成三角形渐变:
gl11.glEnableClientState(GL10.GL_COLOR_ARRAY);
gl11.glBindBuffer(GL11.GL_ARRAY_BUFFER, colorPointerShadow);
gl11.glColorPointer(4, GL10.GL_FLOAT, 0, 0);
然而,我使用OpenGL 2.0的新手机就像呃呃,不,你不喜欢,然后崩溃。那么如何在三角形上绘制基本渐变?可以在没有全部进入着色器业务的情况下完成吗?谢谢你的阅读!
答案 0 :(得分:2)
OpenGL ES 2.0与1.1不向后兼容。你需要编写着色器,但不要害怕。您的顶点着色器可以非常简单,如下所示:
attribute vec4 Pos, Color; // vertex shader inputs
varying vec4 vColor; // vertex shader output
uniform mat4 MVP; // model-view-projection matrix
void main() {
gl_Position = MVP * Pos;
vColor = Color;
}
您的片段着色器可以更简单:
varying lowp vec4 vColor; // vertex shader output
void main() {
gl_FragColor = vColor;
}
如果为每个三角形角分配唯一的颜色,您将看到渐变。