我在使用OpenGL 1.x的安卓手机上运行我的程序,为了生成三角形渐变,我使用了以下代码:
gl11.glEnableClientState(GL10.GL_COLOR_ARRAY);
gl11.glBindBuffer(GL11.GL_ARRAY_BUFFER, colorPointerShadow);
gl11.glColorPointer(4, GL10.GL_FLOAT, 0, 0);然而,我的使用OpenGL 2.0的新手机就像,嗯,不,你不在,然后就崩溃了。那么如何在三角形上绘制基本渐变呢?可以在不涉及着色器业务的情况下完成这项工作吗?感谢您的阅读!
发布于 2012-01-22 03:28:07
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;
}如果你给每个三角形的角指定一个唯一的颜色,你会看到一个渐变。
https://stackoverflow.com/questions/8955231
复制相似问题